欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2024/9/19 73 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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:错误代码,也只会存在一个周期

总结

以上是生活随笔为你收集整理的readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。