基于PLC的Modbus通信协议的实现
随着3C 技术迅速发展, 网络集成信息自动化正迅速应用到现场设备、控制中, 现场总线控制系统正逐步取代传统的集散控制系统, 其中Modbus 现场总线协议在基于PLC 的控制系统中得到了越来越广泛的应用. 在本系统中, 以PLC 为主机、温度采集模块为从机, 完成对生产过程的自动控制、工业流程及工艺参数的显示、修改, 根据PLC 的无协议通信功能, 用Modbus 现场总线协议实现主机与从机的通讯。
本文基于某监控系统的设计, 实现了三菱FX2N 系列PLC 在无协议通信方式下与DS18b20型数字温度传感器的采集模块以Mo dbus 协议通信, 在电炉熔化工作过程中, 对电炉、电容、冷却水等100 多点的温度实现巡检。
1 系统硬件组成
温度监控部分系统的硬件由DS18b20 型数字温度传感器、采集模块、FX2N 系列PLC、FX2N-485-BD、HITECH 触摸屏组成, 其结构如图1 所示。
图1 系统硬件组成
DS18b20 是世界上首个支持单线总线接口( 1w ire bus inter face) 的数字化温度传感器, 单总线接口便于构建分布式的温度测控网络, 数字化的输出提高了信号传输的可靠性, 而且使外围电路大为简化。 DS18b20 具有很高的适应性和性价比, 其测温范围为- 55~ 125 ℃ , 测温精度为±0. 5℃ , 测温距离最大为200 m , 测温方式使用3 线制, 本系统使用的传感器排序方式为指定排序。
DS18b20 内部主要有3 个数字部件: 1 个温度传感器、1 个64 位的激光刻蚀ROM、9 字节高速暂存器Scratchpad RAM 和3 字节EERAM. ROM 上64 位数据是传感器的序列号。暂存器确保数据的完整性, 数据先被写入暂存器, 并可以被读回. 数据经校验后, 可以由拷贝暂存器命令传输到EERAM, 以确保更改存储器时数据的完整性。暂存器为9 个字节, 第0 和第1 字节是温度编码的低字节和高字节.
第2 和第3 字节是温度编码的低字节和高字节的拷贝, 第4 字节是配置寄存器, 其值决定温度转换的分辨率。
本系统采用的STA-D 温度采集模块, 是一种远程数字化温度采集系统, 有10 个通道, 每个通道最多可以挂接16 个DS18b20 型数字温度传感器,总共可以监控160 个点的温度, 以RS485 方式同上位机通讯, 通信协议为标准Modbus 协议, 波特率为9 600 bps, 与上位机通信距离最大为1 200 m, 工作电源为12 ~ 24 V, 工作温度为- 20 ~ 75 ℃。 与FX2N??485??BD 采用两线制的485 连线方式( 图2) ,接线要使用规范的屏蔽线。
图2 485 连接图
台湾HITECH 公司触摸屏PWS 系列是专为PLC 设计的互动式工作站, 用232 直接与PLC 连接, 可以直接读取PLC 的数据寄存器, 具有良好的人机界面, 操作人员通过它可设置所有参数, 控制系统自动运行。并且编程简便, 运行稳定, 可设置不同的管理权限, 适合于本系统使用。
2 Modbus 协议
标准的Modbus 口是使用RS??232C 兼容串行接口, 它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验, 控制器能直接或经由Mo dem 组网. 控制器通信使用主! 从技术, 即仅一设备( 主设备) 能初始化传输( 查询) , 其它设备( 从设备) 根据主设备查询提供的数据作出相应反应。
表1 Modbus 部分功能码定义
Modbus 通讯协议有两种传送方式? RT U 方式和ASCII 方式。 本系统使用RTU 模式, 这种方式的主要优点是: 在同样的波特率下, 可比ASCII 方式传送更多的数据。
使用RTU 模式时, 消息发送至少要以3. 5 个字符时间的停顿间隔开始, 如图3 的T1- T 2- T 3- T 4 所示。 传输的第一个域是设备地址, 可以使用的传输字符是十六进制数值。 通信期间, 网络设备不断侦测网络总线, 包括停顿间隔时间内, 当第一个域( 地址域) 接收到, 每个设备都进行解码以判断是否发往自己的。 在最后一个传输字符之后, 至少要有3. 5 个字符时间的停顿以标定消息的结束, 之后可开始新的消息传输。典型的消息帧如图3 所示。 使用RT U 模式, 消息包括了一个基于CRC 方法的错误检测域. CRC 域检测了整个消息的内容。
图3 M odbus 消息帧结构
CRC 域是两个字节, 包含一个16 位的二进制值。它由传输设备计算后加入到消息中。 接收设备重新计算收到消息的CRC, 并与接收到的CRC 域中的值比较, 如果两值不同, 则有误, 后面将具体讲述CRC 算法的实现。3 系统软件构成
考虑到操作的方便性, 在系统初次安装时, 先在PC 机上用上位机软件将所有传感器的ID 搜索出来, 然后按实际安装位置给每个传感器编号, 读温度测试传感器是否工作正常。在PLC 上使用Mo dbus协议通信时首先要对通信格式进行设定, 即对D8120 寄存器进行写操作, 在本系统条件下设置为0C87 , 即数据长度为8 位, 无校验, 无起始位与
- PLC、FCS、DCS三大控制系统区别(07-07)
- 从4G到V2V 车联网还需要哪些通信协议?(07-02)
- 用SoC设计简化可穿戴设备的开发(07-24)
- 详谈如何解决物联网应用难题(07-20)
- 计算2.4 GHz频段模块的路径损耗(09-06)
- ZigBee vs WiFi,物联网通讯协议哪个赢(12-10)