通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2021-10-25
跳转到指定楼层
1#
发表于 2021-11-10 11:25:03 |只看该作者 |倒序浏览
实例中是PN转Modbus设备、PLC1200、Modbus slave(模拟下端仪表)之间的通讯测试实例,本例我们PN转Modbus设备作主站,型号:SG-PN-MOD-221,下端仪表作从,下端仪表用Modbus slave模拟。PLC侧用04H指令读,10H指令写,
实际接线:PN出两个网线连接电脑和PLC, 再用485转usb将PN和电脑连接。(如果用户没有485转usb也没关系,只要认真看懂这个最简单的实例,明白设备的运行机理,就可以直接不用slave软件模拟采集设备,直接通过485线连接实际采集设备调试)
测试准备:打开电脑软件Simens(博图),新建工程,加载主站GSD(SG-PNMB-MS),硬件组态,选择相应的模块,本例选择04H Read2Word_1和10H write2Word_1,会看到PLC为俩模块自动分配了输入地址4…7输出地址4…7,建立相应的监控表。
通讯参数配置:选择好相应的模块后,最重要的是给模块设置通讯参数,可以看到读写模块栏上面Control and Status模块,这是GSD自带用来处理通讯做的模块,匹配采集仪表的的通讯参数配置需在此块的属性下设置,本例slave的基本通讯参数为 9600 8 n 1,设置好Control and Status参数后,还需要设置04H Read2Word_1和10H write2Word_1属性下的Modbus No和Start address这俩个参数,Modbus No即下端仪表的地址,Start address 即从下端仪表的哪个寄存器开始读写数据。本例中读写的起始地址都从0开始,即Modbus slave建立的俩个弹窗输入或读取的地址也从0开始,这样数据位置就对应上了。
注:在Modbus slave中的0其实对应的是Modbus的寄存器地址40001,而博图03H模块Start address设置为0,意思就是从下端设备的40001开始读俩个字。如果我想读取下端仪表寄存器地址从40031以后的变量数据,那么我博图模块起始地址可以设置为30,在slave软件中我就从30开始输入俩个数据,这样就可以在博图的监控表看到相应的数据。如果连接实际现场仪表给的寄存器地址是16进制,则需要先转换成十进制将对应的数填入03H模块的起始地址里,比如寄存器地址是0X0014,那么它对应的十进制为20,那我们把20相应的填入03H起始地址一栏即可。

测试:选择PLC设备转至在线。ModBusSlave选择对应的串口连接,连接成功后,Slave 04对话0、1寄存器改数据,在博图监控03对应的变量IW4、IW6会有相应的数据变化,在博图10H对应的变量QW4、QW6输出数据,Slave 03H对话框 0、1寄存器会有相应的数据变化。至此,用Slave模拟下端采集仪表过PN转MOD设备与PLC通讯测试成功。
11.png 12.png
注2:本例用04H指令读,10H指令写,当然也可以读03H指令,写10H指令,但是在Modbus协议中03H和10H指令的寄存器地址都是从40001开始,所以03H和10H同时用于slave时,需要将地址错开,即把PLC博图设置界面的03H和10H的Start address设置为不同的地址即可。
另外,需要注意的是若采集变量是浮点型,则一个浮点数占用俩个寄存器,即俩个字,比如温度。
13.png

举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-15 23:59 , Processed in 0.117571 second(s), 18 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部