西门子1200-CB1241进行MODBUS RTU 通信

项目采用的是西门子1214C中插入了CB1241-RS485模块,通讯的对象是一个电能表,采集功率和电能数据。因中间没有通讯成功,使用了一个USB转485通讯线,在电脑上装了MODBUS通讯软件作为从站和PLC进行了测试通讯,接线图如下:

PLC-RS485A--------->电能表RS485B

PLC-RS485B--------->电能表RS485A

接线不要弄错!!!!!!!!!!!

首先是PLC端,组态CB1241模块后设置波特率、奇偶校验、数据位和停止位。

电能表参数需和以上参数一致,电能表的从站地址为001,如下图,

PLC的MODBUS-RTU通讯有两个,新版比旧版多出一些功能,但对于本项目来说都可以使用。

首先初始化MODBUS通讯端口

其次是进行主站通讯,因本项目需要2个MODBUS地址位置不同的数据,采用了两个主站块进行轮询。程序如下:

因本项目需要采集电压功率数据,电能表的电压MODBUS地址为2000H(16进制),转换为十进制为8192,在加上西门子MODBUS的偏移量40001,所以要写入的地址为48193,

以上完成了和电能表的MODBUS通讯。

用电脑测试软件作为MODBUS从站和PLC通讯,可用来查找通讯不正常的原因。下载地址为Modscan和Modsim 两种Modbus调试工具使用说明-CSDN博客中。

采用了USB转RS485

接线图如下,1接PLC-RS485B,2接PLC-RS485A

首先把串口连接电脑,在设备管理器中查看串口对应的端口号,本机是COM4口。打开Modsim32软件,点击“连接设置”->“连接”->“端口4”,设置如下参数与PLC一致后确认。

点击文件-->新建,如下图设置

双击地址下的数据,就是为PLC主站读取PC测试软件从站的数据

将PLC程序DATA_ADDR修改为40001,长度为6,就可在DB23数据块中读到测试软件中的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值