现在要写一个西门子S7-200PLC从站的程序,用modbus与上位机通讯。程序中调用了S7-200modbus从站指令,保持寄存器的起始地址位&vb0,是不是仅仅调用这俩条指令即可,而不用去管什么报文格式及功能吗,校验码之类的,控制自己写好,到时候接收到主站发过来的执行操作数据存放在vw0,vw2,从vw0,vw2中取数据写控制。假如vw0存放1路的具体动作数据,vw22路存放的具体数据。。。主站要求从站反馈电路状态,程序中vw10存放1路状态,vw12存放2路状态,往vw10,vw12中写状态。到时候与上位程序编写人对地址将以下表格给他就好了吗?:400011路动作存放数据400022路动作存放数据400061路反馈数据400072路反馈数据。从站地址。。。以上是自己查资料后理解的,这样理解对吗?如果理解错误的话该如何理解S7-200与上位机的通讯呢??初次接触这个,请各位能人指点迷津。与上位机程序编程人员交流的时候应该做好哪些工作,以及交流时要从对方那儿获得的有哪些东西??才可以实现项目的完成。
答:HoldStart处填写的就是保持寄存器V起始地址,如果是&vb100,那么保持寄存器(V)第一个地址就是VW100,如果是&vb1000,那么保持寄存器(V)第一个地址就是VW1000,MaxHold处填写的是可供主站读写的保持寄存器VW的数量如果HoldStart=&vb100,MaxHold=10,那么地址对应如下:VW10040001VW10240002VW10440003VW10640004VW10840005VW11040006VW11240007VW11440008VW11640009VW11840010共10个如果HoldStart=&vb300,MaxHold=100,那么地址对应如下:VW30040001VW30240002VW30440003...VW49840100共100个如果你做MODBUS从站,那么你可以将主站需要的数据,存放在保持寄存器里(HoldStart=&vb300)如果VW300是A相电压,VW302是B相电压,VW304是C相电压,VW306是A相电流,VW308是B相电流,VW310是C相电流,那么你告诉对方如下的通讯协议:40001A相电压40002B相电压40003C相电压40004A相电流40005B相电流40006C相电流其他的字符格式以及从站地址和对方约定一下即可。
如果要分32位或浮点
32位就是要占4个字节假如你的起始地址是&vb1000,你的第一个变量的地址VD1000-----40001第二个就是VD1004---40003跟上位机程序交流,你要提供的是:1.采用的通信协议。2.通信的波特率3变量对应的地址4XXXX和变量数据类型4.设备的地址
——此文章转载于互联网,文中观点与本网站无关,如有侵权请联系删除