您当前的位置:五五电子网电子知识电器控制PLC工业控制西门子s7-200PLC做从站modbus与上位机通讯 正文
西门子s7-200PLC做从站modbus与上位机通讯

西门子s7-200PLC做从站modbus与上位机通讯

点击数:7722 次   录入时间:03-04 11:57:49   整理:http://www.55dianzi.com   PLC工业控制

现在要写一个西门子S7-200PLC从站的程序,用modbus与上位机通讯。程序中调用了S7-200modbus从站指令,保持寄存器的起始地址位&vb0 ,是不是仅仅调用这俩条指令即可,而不用去管什么报文格式及功能吗,校验码之类的,控制自己写好,到时候接收到主站发过来的执行操作数据存放在vw0,vw2 ,从vw0,vw2中取数据写控制。假如vw0 存放1路的具体动作数据,vw2   2路存放的具体数据。。。
 主站要求从站反馈电路状态,程序中 vw10 存放1路状态,vw 12存放2路状态,往vw10,vw12中写状态。
 到时候与上位程序编写人对地址将以下表格给他就好了吗?
 :
 40001  1路动作存放数据
 40002  2路动作存放数据
 40006   1路反馈数据
 40007   2路反馈数据。
 从站地址。。。
 以上是自己查资料后理解的,这样理解对吗?如果理解错误的话该如何理解S7-200与上位机的通讯呢??初次接触这个,请各位能人指点迷津。与上位机程序编程人员交流的时候应该做好哪些工作,以及交流时要从对方那儿获得的有哪些东西??才可以实现项目的完成。

答:HoldStart处填写的就是保持寄存器V起始地址,
 如果是&vb100, 那么保持寄存器(V)第一个地址就是VW100,
 如果是&vb1000,那么保持寄存器(V)第一个地址就是VW1000,
 
 MaxHold处填写的是可供主站读写的保持寄存器VW的数量
 
 如果HoldStart=&vb100,MaxHold=10,那么地址对应如下:
 VW100    40001   
 VW102    40002   
 VW104    40003   
 VW106    40004   
 VW108    40005   
 VW110    40006   
 VW112    40007   
 VW114    40008 
 VW116    40009   
 VW118    40010 
 共10个
 
 如果HoldStart=&vb300,MaxHold=100,那么地址对应如下:
 VW300    40001   
 VW302    40002   
 VW304    40003
 ...
 VW498    40100  
 共100个
 
 
 如果你做MODBUS从站,那么你可以将主站需要的数据,存放在保持寄存器里(HoldStart=&vb300)
 如果VW300是A相电压,VW302是B相电压,VW304是C相电压,VW306是A相电流,VW308是B相电流,VW310是C相电流,那么你告诉对方如下的通讯协议:
 40001   A相电压
 40002   B相电压
 40003   C相电压
 40004   A相电流
 40005   B相电流
 40006   C相电流
 
 其他的字符格式以及从站地址和对方约定一下即可。 

如果要分32位或浮点

32位就是要占4个字节
 假如你的起始地址是&vb1000,你的第一个变量的地址VD1000-----40001 第二个就是VD1004---40003
 跟上位机程序交流,你要提供的是:
 1.采用的通信协议。
 2.通信的波特率
 3变量对应的地址4XXXX和变量数据类型
 4.设备的地址


本文关键字:西门子  PLC工业控制电器控制 - PLC工业控制