1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例

readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例

时间:2023-03-31 02:01:11

相关推荐

readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例

西门子PLC-1200的基于232串口的Modbus RTU通讯实例

这里先讲一下Modbus和232,232和485串口是一种串口接法,这种接法实际能实现十几种的协议通讯,有基于串口的Modbus RTU,Modbus+,有基于以太网接口的Modbus tcp/ip和Modbus通讯协议,我们这边说的只是基于232串口通讯的Modbus RTU通信

这里要讲的是一个简单的Modbus RTU通讯的小实例,就是对通过232串口,对一个称重传感器实时读取参数,从而判断是否需要加料

1.0 直接上图,如下图就是一个通讯设置的指令MB_COMM_LOAD,简单说下这个指令的参数

2.0 如下图

REQ:上升沿触发通讯连接,这里我们设置PLC上电就触发上升沿,连接通讯

PORT: 对于1200/1500这里是填入组态的通信模块的硬件标识符,如果是300/400这里就应该填地址

BAUD:波特率,一般都是9600吧

下面几个没什么特别要求直接默认,不过也讲下:

PARITY:奇偶校验,0就是不校验

FLOW_CTRL:选择流控制

RTS_ON_DLY:RTS接通延时设置

RTS_OFF_DLY:RTS断开延时设置

RESP_TO:等待从站响应的时间设置,如果设置时间内没有响应,会重复请求直至报错

MB_DB:引用Modbus_Master或Modbus_Slave的背景数据块

DONE:当请求完成后,会置1一个周期

ERROR:当请求出现错误后,也会保持一个周期

STATUS:当ERROR=1时,会保持一个周期

以上3个状态,需要及时锁存住

3.0 在程序中加入Modbus_Master作为主站通信,如下图,这边是循环一直读取状态

3.1 这里讲下具体Modbus_Master的具体参数

REQ:当为0时无请求,当为1时,请求向Modbus从站发送数据,这里不是上升沿触发,为1就是一直处于请求状态

MB_ADDR:Modbus RTU站地址

MODE:模式选择,0为读取,1为写入还有诊断什么的,具体看下面的功能表

DATA_ADDR:指定在Modbus从站中访问的数据的起始地址,MODE和DATA_ADDR这两个参数配合来选择Modbus功能代码,如下

DATA_LEN:从Modbus从站读取的数据长度,这里写的是4,这三个参数组合起来,就是读取从站从40001开始的4个字节的寄存器数据

DATA_PTR:数据指针,指向要进行数据写入或读取的标记或者数据块地址,这里当然是读取数据的存储位置咯

DONE:如果上一个请求完成的话,就会置位1个周期

BUSY:0为无激活的命令,1为命令执行中

ERROR:错误报警

STATUS:错误代码,也只会存在一个周期

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。