当前位置:文档之家› 多功能Modbus协议转换器设计

多功能Modbus协议转换器设计


用了三线制接法( 将导线电阻平均分配到两个支路中) 。 以上信号送入单片机的 P6. 0 ~ P6. 7 进行 A / D 转换。其 参考电压源可以由外部提供,或选择内部的 2. 5 V、1. 5 V、 单片机电源电压。通过测试,选择了精度和稳定性相对 较好的内部 2. 5 V 基准。
图 4 传感器信号形式
1 总体结构
如图 1,系统由 MSP430 单片机、液晶显示、键盘、 传感器信号检测与处理等部分组成。单片机作为主 机,通过串口读取工业测控模块的数据,将采集数据和 通信故障等信息显示在液晶屏上。
图 1 系统结构图
同时,单片机作为从机通过 RS-485 总线和上位机 连接,采用 Modbus 协议进行通信。为扩展系统功能,还 设计了外部信号采集模块,压力、液位、温度和流量等工 业传感器信号经过放大、滤波等信号处理后,送入单片 机的 A / D 转换器转换成数字量后上传到上位机中。
2013 年第 10 期
仪表技术
·15·
多功能 Modbus 协议转换器设计
潘 浩1 ,鄢志丹1 ,曾宪伟2 ( 1. 中国石油大学( 华东) 信息与控制工程学院,山东 青岛 266580;
2. 中国石化集团管道储运公司 襄阳输油处,湖北 襄阳 441002)
摘要: 以自定义通信协议仪表上位机通信需求为背景,设计了基于 MSP430F249 单片机的多功能 Modbus 协议转换器。以
reliability,accuracy and real-time performance were analyzed. Through the tests it shows that the system can read data from
industrial instruments and convert them to the Modbus RTU data format,then transfer data to the upper computers.
4. 2 设计总结 设计中着重对通信可靠性、系统稳定性、实时性和
采集信号的准确性等方面进行了优化。 ( 1) 通信可靠性 仪表在读取测控模块数据时,应根据模块特点合理
设置通信间隔,以免因为频繁读取造成通信数据重叠而 引起超时( 在和 MRL 热量表通信时,根据仪表要求最低 通信间隔应在 1 s 以上) ,同时为实现上位机的联动监 控,应将异常状态( 读取模块失败、模块数据异常等) 上 传到上位机中。另外,在使用多个 Modbus 协议转换器 构成 RS-485 总线通信网络时,应在网络节点的两端增 加 120 Ω 的终端电阻,防止由于信号反射而影响传输。
Baidu Nhomakorabea
关键词: Modbus RTU 协议; RS-485 通信; 光电隔离; A / D 转换器
中图分类号: TP216. 2
文献标识码: A
文章编号: 1006-2394( 2013) 10-0015-03
Design of Multifunctional Modbus Protocol Converter
2 硬件设计
2. 1 单片机 由图 1,单片机至少应具有两个 UART 串行通信
接口、多个定时计数器模块( 实现通信时间间隔、超时
收稿日期: 2013-07 作者简介: 潘 浩( 1979—) ,男,讲师,主要从事智能仪表设计和计算机测控系统开发方面的教学和研究工作。
·16·
仪表技术
2013 年第 10 期
图 2 单片机和 JM12864 液晶接口
2. 3 RS-485 串行通信模块 RS-485 总线支持多节点间的半双工数据通信,且
具有较强的抗干扰能力,是大多数标准现场总线的物 理层协议。如图 3,单片机通过 MAX485 芯片实现电 平转换。考虑到电机、变频器等大型功率设备对仪表 的干扰,采用光电耦合器 6N137 进行隔离。以单片机 的 UART0 为例,P3. 4、P3. 5 为串行数据收发端,P4. 0 为 MAX485 方向控制端,低电平时为总线处于接收状 态。由于 6N137 需要较大的驱动电流,若直接用单片 机管脚驱动会因输出功率过高而击穿管脚,同时会降 低系 统 的 抗 干 扰 性 能。 这 里 采 用 施 密 特 触 发 器 74HC14 间接驱动 6N137,同时实现电平翻转功能。
通过测试,上位机能够正确读取 MRL 热量表、传 感器的数据和通信状态信息。
表 2 本机上传的模块数据及寄存器地址
1 001 ~ 1 002 1 003 ~ 1 004 1 005 ~ 1 006 1 007 ~ 1 008 1 009 ~ 1 010 … 累积热量 瞬时流量 累积流量 供水温度 回水温度 …
如图 2,采用 JM12864 点阵液晶模块显示工业测 控模块的数据、通信参数等信息。LCD 由 3. 3 V 供电, 采用并行接口通信,背光由 5 V 驱动。RS、R / W、E 分 别为指令、读写和使能信号,DB0 ~ DB7 为并行数据输 入端。三极管实现背光控制功能,当 P2. 7 输出高电 平时点亮 LED 背光。
PAN Hao1 ,YAN Zhi-dan1 ,ZEN Xian-wei2
( 1. College of Information & Control Engineering,China University of Petroleum,Qingdao 266580,China;
2. Sinopec Pipeline Storage and Transportation Company of Xiangyang Oil Management Group,Xiangyang 441002,China)
图 3 单片机和 MAX485 间的通信接口
2. 4 传感器信号处理和 A /D 转换模块 工业传感器信号有 4 ~ 20 mA 电流、热电阻和电阻式
电桥电路等形式。如图 4,电流信号经过 100 Ω 精密取样 电阻转换成 0. 4 ~ 2 V 电压,再经跟随器处理后,转换成低 内阻的电压输出。热电阻接入惠斯通电桥,由 2. 5 V 电压 源驱动,电桥输出 VAB 经差动放大后,转换成单极性输出。 由对称关系有 R11 = R13,R15 = R17,R16 = R18,VO = VAB ·( R18 / R17 +1) 。同时,为减小导线电阻对测量的影响,热电阻采
3 软件设计
3. 1 Modbus 串行通信协议
( 1) Modbus RTU 协议 Modbus 通信协议主要有 Modbus ASCII 和 Modbus
RTU 两种,后者采用二进制传输,并进行 CRC16 检错, 传输效率高,检错率达 99% 以上,应用更广泛。当上
位机发送指令到 Modbus 仪表时,仪表对地址和 CRC 数据校验码进行核对,验证通过后根据要求返回规定 长度的数据,其数据格式如表 1 所示。
处理等) ,同时应集成多通道高分辨率 A / D 转换器。 MSP430F249 单片机具有 2 个 UART 模块、8 通道 12 位 A / D,2 个 16 位定时器,60 KB ROM 和 2 KB RAM。 片上还集成了 256 字节非易失性信息区,能够方便地 进行仪表参数存储,完全满足设计需要。 2. 2 液晶显示模块
测试时将仪表通信参数和 MRL 热量表一致,本机 能正常读取并正确显示热量表的瞬时、累积流量等数 据,同时所有数据和通信状态一起存入 RAM 区,等待上 位机读取。上位机采用力控软件读取本机数据,设备为 COM1 下的莫迪康->Mobus RTU,并设置通信参数和仪 表一致。如表 2 所示,寄存器地址 1 001 ~ 1 016,每两个 寄存器表示一个信息,以长整数形式上传。寄存器 1 031 ~ 1 046 依次为 8 通道的传感器数据。1 051 ~ 1 052 为状态信息,以位存储,例如 1 052 为传感器信号超量 程、通信超时、数据传输错误等状态标志。
Abstract: A Modbus protocol converter based on MSP430F249 was designed to meet the needs of instruments that adopt
user-defined communication protocols. The principle of communication with the CLR ultrasonic heat meter was introduced. It
4 系统测试与总结
4. 1 自定义协议模块测试 采用本仪表和 MRL 超声波热量表进行通信。其
具有 RS-485 通信接口,波特率 2 400、4 800、9 600 bit / s
2013 年第 10 期
仪表技术
·17·
图 5 总体设计流程
可选,8 位数据位、1 位停止位、没有奇偶校验位。采用 自定义的通信协议,格式为 2AH XXH 4AH,XX 为仪 表地址,返回格式为 26H XXH 49H LL( BCD 码) ZZH ( 校验码,将除控制外 的 所 有 字 节 累 加,数 值 不 超 过 FFH) 。数据主要以 BCD 码表示,比如数据区 5 ~ 8 代 表正累积热量。
focused on the realization processes of Modbus RTU protocol. The 8-channel analog data acquisition module based on 12-bit
A / D converter of MCU was also designed to expand the instrument functions. Finally,the keys of the design such as system
表 1 Modbus RTU 通信协议数据格式
地址 功能码 数据 1

数据 n
CRC 高字节
CRC 低字节
( 2) Modbus 协议的编码与解码 单片机对数据进行编码和解码实现 Modbus 协议 所规定的格式的数据包组帧与解析。由表 1 知,用于 检查数据正确性的是 CRC 校验码,实现方法有公式法 和查表法两种,后者除了占用部分 ROM 外,计算简单 且速度快。功 能 码 主 要 有 01、05 开 关 量 读 写 和 03、 04、06、16 模拟量读写两类。数据区主要分为上位机 读和仪表返回两种,分别为寄存器首地址 +寄存器格 式; 数据总数+所有数据。 3. 2 总体设计 如图 5,系统先对两个 UART 模块、LCD 模块等进 行初始化,再对传感器信号进行 A / D 转换,然后按照仪 表预先设置的时间间隔和工业测控模块进行数据通信, 继而将数据转换成 Modbus 通信协议所规定的数据格式 存入单片机的 RAM 中,并不断刷新。当上位机进行读 写时,由仪表响应返回相应数据。当仪表和热量表通信 失败时给出故障提示,并由上位机读取故障状态。
Key words: Modbus RTU protocol; RS-485 communication; photoelectric isolation; A / D converter
0 引言
Modbus 通信协议具有严格的数据校验和传输控 制机制,被广泛应用于工业设备间的数据通信,并且已 成为现场总线协议中的一员。目前不少仪器仪表及装 置都支持该协议,但仍有部分仪表采用的是自定义协 议。这些仪表在和三维力控等工业组态软件通信时, 必须开发专门的驱动,不仅增加成本,数据可靠性也很 难得到保障。为此,本文基于 MSP430F249 单片机开 发了一款 Modbus 协议转换器,并以 MRL 超声波热量 表为例,阐述转换器的设计过程。
MRL 热量表为例,介绍了仪表和热量表间的数据通信方法,阐述了 Modbus RTU 通信协议的具体实现过程; 为扩展系统功能,基于
单片机自带的 12 位 A / D 转换器设计了 8 通道的模拟量信号采集模块; 最后分析了提高系统可靠性、准确性和实时性等设计关键技
术。测试表明系统能够和工业测控模块实现对接,同时将数据转换成 Modbus RTU 格式上传到上位机中。
相关主题