全球旧事资料 分类
ModbusRTU主站指令
西门子ModbusRTU主站协议库如下图:
在上图中,需要安装Modbus指令库,安装完成会在S7200编程软件中出现。安装以及使用环境要求:ModbusRTU主站库对CPU的版本有要求。CPU的版本必须为200或者201(即订货号为6ES721-230BA),122版本之前(包括122版本)的S7200CPU不支持。
下面以实际工程作说明,指令每个管脚的定义不在赘述,自行查阅资料;以油气分离工程为例讲述:
1打开S7200编程软件,首先为Modbus通讯协议分配数据区,如下图;
点击树目录中的“程序块”菜单,点击右键选择“库存储区”弹出如上图所示对话框;可以自定义起始地址,也可直接使用建议地址。这里是自定义起始地
f址为VB3000,占用存储区直至VB3283说明:分配存储区地址是关键一步,否则程序编译时会出现相同的错误,提示未分配存储区地址;且此地址在程序中其它地方不能被占用。
2地址分配完成进入程序编写阶段
首先,在第一个扫描周期复位个起始位和标志位。在做如下程序
上图中网络1为Modbus主站通讯的初始化程序;Baud波特率选择9600,Parity为校验,选择0无校验,Timeout超时用默认值1000;网络2为主程序重点说明:1)First2)Slave3)RW4)Addr每一个新的读写请求必须使用脉冲触发;从站地址(根据工程实际情况填写);0读,1写;读写从站的数据地址:00001至0xxxx10001至1xxxx30001至3xxxx40001至4xxxx开关量输出开关量输入模拟量输入保持寄存器
f上面为Modbus地址,起始位为数据类型代号,后面为偏移地址,及与实际从站数据地址相对应。以上为常用的Modbus功能代号,若要用其他自行学习;以下为现成带Modbus通讯口的流量计的数据存储区:
对应关系:若要通过Modbus主站指令读取瞬时流量,则Addr应该写为47063,Cou
t写为:2;因为仪表寄存器地址表中注明:70627063对应瞬时流量。规则:仪表寄存器地址140000(Modbus数据地址已经写为40001,故其他地方也有说明是直接40001仪表寄存器地址);选择功能码:例子程序用4xxxx及读取保持寄存器数据;选择功能码要根据现场仪表支持的功能选择,主要是选择3xxxx还是4xxxx流量计明确说明为寄存器地址;
例子中工程要求读取流量计多参数,因此从起始地址开始读取,即:47053;5)Cou
t数据个数(位或者字的个数);例子中均为读取实数,且每个指定占用两个地址,因此Cou
t为16;6)DataPtr数据指针;读或者写的数据保存在这个数据区中VBxxxx代表数据区的起始地址;
f说明:此数据区占用地址区不能与Modbus指令分配r
好听全球资料 返回顶部