使用CM1241实现MODBUS_RTU主站将数组内容送往其他设备。

本文介绍如何使用S7-1200 PLC通过MODBUS TCP协议采集运行数据,并通过485接口将数据发送到串口交换机。包括配置PLC IP地址、初始化通讯模块、设置数据块以及发送数据的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个朋友需要在追溯系统中,需要采集若干个S7-1200运行数据,通过485接口送往串口交换机。

因为他不熟悉通讯操作,我来操刀简单的完成。

PLC使用的S7-1200 DC/DC/RLY (1214C 版本4.2)214-1HG40-0XB0,模块采用CM1241(485/422 版本2.2) 241-1CH32-0XB0。

首先组态系统,设置PLC的IP地址和自己计算机一个网段(192.168.1.15),设置启动系统存储器字节(M1)和时钟存储器字节(M0),这样程序中可是用一些特殊标志(比如1S脉冲和第一次扫描等等),设置上电启动方式为暖启动-RUN模式方便调试。

新建OB块(STARTUP OB100),添加MB_COMM_LOAD初始化指令,注意版本选择2.x版本,指令表上的区分2.x版本是全部大写字母构成,4.x版本库是由大写字母冠头的指令,不能使用。

PORT端口在选择框中选用1241模块,MB_DB选择在下一步程序中使用的MB_MASTER中的DB块,暂时可以留空等后面添加,OB100为系统上电第一次扫描初始化的组织块。

新建一个数据块,用于存放传递给其他设备的数据

 数据块需要去掉优化选项,这样数据的顺序个格式不会被优化而发生的错误。

设置好数组,因为MODBUS保持寄存器是16BIT数据,所以需要设置为WORD类型。 

在MAIN(OB1)中添加 MB_MASTER指令

 EN选择初始化完成位MB_COMM_LOAD_DB.DONE,发送周期这里定义为1秒,模式选择1即写模式,按照从站地址定义MB_ADDR,按照从站目标区域定义DATA_ADDR,按照需要传输的长度定义DATA_LEN,数据指针指向上一步建立数据块中的数组。

写入测试数据

 

下载运行测试,看到1241状态灯TX周期闪烁,串口助手数据完美接收,一切OK。

若有误导之处欢迎共同探讨(xhbwork@126.com)...... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cfy_makesoft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值