现在要写一个西门子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工业控制
上一篇:PLC中工程量转换基本方法