当前位置:首页 >> 信息与通信 >>

基于ARM平台Modbus RTU协议的研究与实现


第 27 卷第 1 期 2011 年 1 月







学 与





V o l . 27, N o . 1 J a n . , 2011

E l e c t r i cP o we rS c i e

n c ea n dE n g i n e e r i n g

  23

基于 A R M平台 Mo d b u s R T U 协议的研究与实现
张  桂 , 金国强 , 李  辉
1 2 1

( 1. 上海电力学院 电力与自动化工程学院 , 上海 200090; 2.西安热工研究院有限公司 , 陕西 西安 710032) 摘要 :Mo d b u s 协议以其高效性 , 可靠性 , 广泛应用于 电力行 业 。 分析了 Mo d b u sR T U的协议 构成及 其通 信规约 , 基于 A R M9 平台和嵌入式实时操作系统 L i n u x 分别实 现了 Mo d b u s R T U的主站和从站通信 程序的 开发 。 通过将从站采集的电压值传输至主站实时 显示验证了该方案 , 实验表明该 方案有效地 实现了 M o d b u s R T U协议 , 可用于电站等现场数据传输 。 关键词 :Mo d b u sR T U ;嵌入式 A R M;L i n u x ;数据传输 中图分类号 :T P 23  文献标识码 :A

M o d b u s 协议定义了一个控制器能够识别使用

0 引  言
各种工业现场总线被应用于电站生产过程控 制中 , 提 高了 电 站 设 备 的 运 行 效 率 和安 全 性 。 M o d b u s 协议由于其开放性 , 各种控制设备都可通 过其连成工业网络 , 有效地对电站生产过程中各 种参数进行实时监控 , 在电力行业中得到了广泛 应用 。 利用嵌入式系统运算速度快 、 体积小 、 功 耗低及其对工业 现场特殊环 境高适应 性的特点 , 开发高效的 、 嵌入式数据采集及通信系统具有较 高研究价值和实用价值 。 本文围绕 M o d b u s 适用于 嵌入式设备 的 实时 通 信特 点 , 在基 于 微处 理 器 S 3C 2410 的 A R M9 嵌入式系统上 , 以嵌入式实 时 操作系统 L i n u x 为软件平台 , 完成了 M o d b u sR T U 的主站和从站应用通信程序的开发和系统测试 。

的消息结构 , 而无论 是经何种 网络进行 通信 。 采用 M a s t e r /S l a v e 技术 , 是一种 主从应答 方式的 通信协议 , 协议简单 , 容易实现 , 一个主站可以 对应一个或多个从站 。 该文中 M o d b u s 协议应用于 点对多点通信 , 物理层采用 R S 485 串行通信标准 来实现 。 1. 2 Mo d b u s R T U 消息帧 在 M o d b u s 系统中有 3 种传输模式可选择 : 分 别是 R T U模式 、 A S C I I 模式以及 T C P 模式 。 下面 主要介绍 R T U 模式 。 当在 M o d b u s 网络上通信时 , 此协议要求每个 控制器必须知道它们的设备地址 , 决定要产生何 种动作 。 如果需要响应 , 控制器将生成反馈信息 [ 4] 并用 M o d b u s 协议发出 。 网络传输采用主 — 从技 术 , 主设备能主动查询 , 从设备根据主设备查询 提供的数据作出响应 。 [ 5] 典型的 M o d b u s R T U 消息帧结构如图 1 示 。
起始位 设备地址 功能代码 1B y t e 数据 C R C 校验 结束符 T 1T 2T 3T 4 1B y t e aB y t e 2B y t e T 1T 2T 3T 4

[ 3]

1 Mo d b u s 协议介绍
1. 1 Mo d b u s 协议概述 M o d b u s 协议是一种工业通信和分布式控制系 [ 1, 2] 统协议 。 在此协议上 , 控制器相互之间可以经 过网络 ( 以太网 )和其他设备通信 。 现在 M o d b u s 已经是工业领域全球最流行的通信协议之一 。
收稿日期 : 2010 -07 -18。

图 1 Mo d b u sR T U消息帧格式 F i g . 1 F r a mef o r ma t o f Mo d b u sR T U

设备地址 : 允许的从设备地址范围是 0 ~ 247 ( 十进制 ) 。 主设备通过将要通信的从设备地址放

基金项 目 : 上 海 市 教 育 委 员 会 “ 晨 光 计 划 ” 资 助 ( 09C G 61) ;上 海 高 校 选 拔 培 养 优 秀 青 年 教 师 科 研 专 项 基 金 ( s d l 09001) 。 作者简介 :张桂 ( 1985) , 男 , 硕士研 究生 , 主要研 究方 向为 工业 网络 与嵌 入式 技术 及应 用 , E m a i l : c t z g s t e p h e n @y a h o o . c o m . c n 。

  24

电 力 科

学 与

工 程

2011 年

入消息帧的地址域来选通从设备 。 功能代码 :取值范 围是 1 ~ 255 ( 十进制 ) 。 每个功能代码代表不同的操作 。 例如 03H表示读 寄存器值 。 从设备的正确应答是发送相同的报文 帧 , 以便让主设备确认 , 如果从设备发送的 功能 代码最高位为 1, 则表明从机接收或者发送错误 。 数据域 : 可变长的字段 , 具体格式和功 能码 密切相关 。 一般来说 , 主设备发送请求 数据为 2

2. 1 嵌入式 L i n u x 操作系统 选择 L i n u x 作为 底层 操作系 统 , 在 P C端和 A R M 9 平台上 分别实现 M o d b u sR T U主从 站的设 计 , 完成信号采集和接 收的通信过程 。 嵌入式操 作系统引入工业现场测控装置 , 不仅可以合理地 分配和调度测控装置内的硬件资源 , 提高实时性 和可靠性 , 而且还可降低功耗 , 丰富功能 。 而嵌

入 M o d b u s 协议 , 使采集盒可以支持组态王 、 力控 字节寄存器起始地址和 2 字节的寄存器个数 ;从 等流行软件 , 能与 A B B 、 西门子 、 施耐德等多个 设备应答响应为 1 字节的被操作 寄存器个数和 n 国际设备及系统之间实现数据通 信 , 是构建 、 扩 个字节的寄存器状态值 。 建 D C S 系统的理想功能部件 。 错误检测 :2 字节 , 称为 C R C 校验 。 其内容 采用从 L i n u x 2. 4 内核派生而来的 A R M L i n u x 是通过对消息内容进行循环冗余计算出来的 。 操作系 统 , 沿 袭了 主流 L i n u x 的绝 大部 分 特性 , 1. 3 Mo d b u s R T U 通信结构模型 为硬件平台更好地运行各种程序提供了保证 。 而 以 A R M硬件平台和 L i n u x 软件开发平台为基 以 L i n u x 作为底层操作 系统 , 可以 直接应用于现 础 , 用底层数据采 集系统为 依托建立 通信平台 , 场的嵌入式 设 备中 , 从 而大 大节 省 了程 序 开发 通过采集 标准的电 压信号 , 在 A R M9 与 计算机 、 过程 。 计算机与计算机之间进行数据通信 , 实现 M o d b u s 2. 2 Mo d b u s R T U 主站的设计 R T U 数据采集系统 , 使其具有更强的通用性 、 可 在 P C 端, L i n u x 操作系统为设计环境 , 编程 靠性和实时性 。 实验室组网方案如图 2所示 。 实现主站服务程序 , 主 要涉及功能选择模块 、 功 能处理模块和处理答应模块 。 功能选择模块是根 据用户输入 , 决定 M o d b u s 从站的操作行为 ;功能 处理模块是核心模块 , 包括串口初始化 、 消息帧 构造和解析以及发送消息帧等功能 ; 处理应答模 块是对反馈的数据进行处理 , 验证从站的服务是 否处理成功 , 收到的 数据是否正确 , 然后将结果 通过标准输出设备打印出来 , 接收错误的话 , 也会
图 2 系统组网方案 F i g . 2 N e t w o r kp r o g r a ms y s t e m

将错误信息打印出来 。 主站设计流程如图 3 所示 。 功能选择模块 : 该模块主要决定从站的地址 , 执行何种功能 , 以及执 行行为的详细指示 。 具体 实现过程中可以使用一个结构体来配置 : s t r u c t f u ni n f o { u n s i g n e dc h a r s l a v ea d d r ;  u n s i g n e dc h a r f u n ;  u n s i g n e ds h o r t s t a r t a d d r ;  u n s i g n e ds h o r t l e n t h ; } ; 其中 s l a v e a d d r 是从 设备地址 ;f u n 是功能 代码选择 ;s t a r t a d d r 是所选从设 备中相应操作 的起始地址 , 传输过程中需要分两个 8 位字符来 实现 。 l e n t h 指操作的数据量 , 传输与 s t a r t a d d r 相同 。 功能处 理模块 :根据功 能选择 模块地 输入 ,

通信系统设计包括两方面工作 :一是分别在 P C 端和 A R M端实现主从站的设计 , 通过 A R M端 将采集的电压信号传输出去 。 二是将数据通过可 选的功能代码进行相应的操作 , 在 P C 机上将收集 的数 据 显 示 出 来 , 验 证 软 件 设 计 的 R T U协 议 可行 。

2 Mo d b u s R T U主站和从站的实现
M o d b u s R T U 协议采用 M a s t e r /S l a v e 通信模型 。 该文是在 L i n u x 操作系统软件平台上 , 实现 M o d b u s R T U 中 P C 端主站和 A R M端从站 。

第 1期

张  桂 , 等 基于 A R M平台 Mo d b u sR T U协议的研究与实现

  25

图 4 Mo d b u sR T U从站实现流程图 F i g . 4 De s i g nf l o wo f Mo d b u s RT Us l a v e

  u n s i g n e ds h o r t t e m p A d r ;/ / 要 写线圈的首地址
图 3 Mo d b u sR T U主站设计流程图 F i g . 3 D e s i g nf l o wo f Mo d b u sR T U ma s t e r

s w i t c h(*( s o u r c ep + 1))// 功能码 { c a s e 0x 05; f o r ( t m p 1= 0; t e m p 1< b y t e C o u n t ; t e m p 1 ++ ) { s h i f t = 1; f o r ( t e m p 2= 0; t e m p 2< 8; t e m p 2 ++ ) { *( C o i l + t e m p A d r + t e m p 1* 8 + t e m p 2 )=* ( d e s t p + 2+ i ) &s h i f t ; s h i f t = s h i f t >> 1 s h i f t << 7; // 循环左移 }   }  } } 程序中利用 8 位数据 s h i f t 进行循环左移对写 入值进行筛选 , 设置对蜂鸣器的状态 。 信息反馈 :如果是错误信息 , 显示出错误信 息 , 并将错误信息报文 发送给主设备 ;如果正确 响应了主设备的请求 , 将生成的消息帧发送给主 设备 。 2. 4 系统通信参数 M o d b u s R T U 基于串口传输数据 。 同一 M o d b -

构造消息帧并解析生成 C R C 校验 , 然后将消息帧 发送出去 。 处理应答模块 :如果程序在规定的延时内接 收到响应 , 那么对接收到的数据进行处理 , 进行 C R C 校验判断接收到的数据是否正确 , 然后将结 果通过标准 输出设 备打印出 来 , 接收 错误的话 , 也会将错误信息打印出来 。 2. 3 Mo d b u s R T U 从站的设计 M o d b u s R T U 协议是一主多从的通信协议 , 所 以对每 个从 设备 都 要分 配 不同 的 地址 。 M o d b u s R T U 从设备主要实现消息帧的接收和存储 , 根据 接收到的消息帧执行相应的行为 , 给出响应并将 响应的反馈发送给主设 备 。 主要设计包括 :功能 处理 、 信息反馈 。 设 计环境也是在 L i n u x 实时 操 作系统下编程实现 , 设计流程如图 4 所示 。 功能处理 :解析 消息帧 , 读取 出功能 代码 , 跳转执行相应操作 , 生成反馈消息帧 。 下面 以功 能 05H 写线圈为例 , 介绍相应功能处理过程 。

i n t r t ur e p l y ( u n s i g n e dc h a r *d e s tp , u n s i g n e d u s 网络上所有设备都必须设置相同的传输模式以 c h a r *s o u r c ep , i n t s t rl e n t h ) 及串口参数 , 表 1 给出了设计中配置的串口通信 { u n s i g n e ds h o r t b y t e C o u n t ;// 要写的字节数 参数 。

  26

电 力 科

学 与

工 程

2011 年

表 1 串口通信参数 T a b . 1 S e r i a l c o mmu n i c a t i o np a r a me t e r s 通信参数 串口 波特率 /b p s 奇偶校验 数据长度 / 位 停止位 / 位 P C端 C O M1 9 600 无 ( n o n e ) 8 1 A R M端 R S485 R T U 9 600 无 ( n o n e ) 8 1

试程序 ;下位端分别在多台 A R M运行从站 , 这样 组成一个小型的数据采集通信网络 。 为了检验该 通信网络能否正常可靠运行 , 程序编译调试成功 之后 , 本文采用在数据的接收端和发送端连接逻 辑分析 L A 1032 仪 , 可以 直观观 察 M o d b u s 报文 。 现以写线圈 05H为例 , 通过写线圈操作来改变蜂 鸣器的状态 , 控制其响和不响 。 M o d b u s R T U 请求 :01 05 00 00 F F00 3A 8C 用 L A 1032 逻辑分析仪可观察 M o d b u s 从机的 接收帧 和发送 帧的情况 。 经过波 特率 、 校 验位 、 传输模式 、 信号名称和 M o d b u s 功能码等的设置后 就可以 把 L A 1032 接 在 A R M 9 上的 R S 485 触点 , 测量经过的信号 , 其中逻辑分析仪得到如图 5, 6 所示的 2 个解码图 。

3 Mo d b u s 协议测试
M o d b u s R T U测试 是 P C机 通过 串口 线 经 过 R S 232到 R S 485 转换接口 , 与多台 A R M相连 。 上 位端在 P C 机上运行 L i n u x 操作系统 , 进入主站调

   通过图 5 及图 6 逻辑分 析仪显示 可以看出 , 写线圈操作成功完成 。 放大显示可以看到链路帧 的格式 , 进而分析出从机地址 0x 01, 上层 M o d b u s 协议 的 P D U , C R C 校验 码等 。 通过查 看 M o d b u s 的协议层 , 进而分析出 M o d b u s 协议的功能 、 响应 类型等 。 同时 , 该 文还 模 拟 采 集 标准 电 压 值 , 应 用 M o d b u s R T U通信 , 将采集 到的电 压值传 输给 主 站 , 并实时显示电压值 , 如图 7 所示 。 在该工作的基础上 , 可通过实时数据库服务 器存储由 M o d b u sR T U 传 输的现场数 据 。 基于 该 数据库 , 其他软件可对实时数据和历史数据进行 分析和处理 , 有效地分析和诊断设备状态 , 实时

监控工作站的工作状况 , 避免故障的发生 。

图 7 Mo d b u s R T U数据通信 F i g . 7 D a t ac o mmu n i c a t i o no fMo d b u s RT U

第 1期

张  桂 , 等 基于 A R M平台 Mo d b u sR T U协议的研究与实现

  27

模块 的 设 计 [ J ] . 机 电 工 程 技 术 . 2007,

36

4 结  论
基于 M o d b u sR T U协议的数 据采集 模块 , 将 A R M 2410开发板 作为从站配置于 R S 485 总线上 , 经由 P C 机作为通信主站 , 成功利用串口技术实现 了数据采集与传输通信 , 并在逻辑分析仪上验证 了数据采集和通信功能 , 取得了良好效果 。 通过实验 测试 , 本文所 介 绍的 M o d b u sR T U 协议主从通讯 , 可以较好地应用于工业现场的设 备参数的通讯传输 。 本文设计不仅仅只针对电力 应用场合 , 只需要对系统进行较少的改动就能很 好地适用于其他工业场合对大型设备进行通信的 要求 , 具有很强的技术适用性和广阔的开发前景 。
参考文献 : [ 1] Mo d i c o nI n c .Mo d i c o nMo d b u s P r o t o c o l R e f e r e n c eG u i d e P I M B U S -300 R e v .J[ E B /O L ] .J u n e1996. [ 2] 黄育和 , 程韬波 .基于 Mo d b u sR T U协议 在数字 智能

( 5) : 1-2. H u a n gY u h e , C h e nT a o b o .D e s i g no f t h ed i g i t a l a n di n t e l l i g e n tm o d u l eb a s e do nm o d b u sR T Up r o t o c o l[ J ]. M e c h a n i c a l &E l e c t r i c a lE n g i n e e r i n gT e c h n o l o g y , 2007, 36 ( 5) : 1-2. [ 3] 潘长 清 , 蒋大 明 , 欧阳 劲松 .基于 S 3C44B 0X处理 器 MO D B U S 通信协 议的 实 现 [ J ] . 仪器 仪表 标 准化 与 计量 , 2007, ( 2) : 2-3. P a nC h a n g q i n g , J i a n gD a mi n g , O u y a n gJ i n s o n g .I mp l e me n t a t i o n o f m o d b u s c o m mu n i c a t i o n p r o t o c o l o n S 3C44B 0X   mi c r o p r o c e s s o r[ J ] .I n s t r u me n t S t a n d a r d i z a t i o n& Me t r o l o g y , 2007, ( 2) : 2-3. [ 4] 李正军 .现场总 线及其 应用技术 [ M] .北京 :机 械 工业出版社 . 2005. [ 5] 封亚斌 .采 用 串 口 通 信 技术 实 现 Mo d b u s 数据通信 [J ] .自动化仪表 , 2004, 25 ( 10) : 3-4. F e n gY a b i n .Mo d b u s d a t ac o mm u n i c a t i o ni mp l e me n t e db y u s i n gs e r i a l p o r t c o m m u n i c a t i o nt e c h n o l o g y[ J ] .P r o c e s s A u t o m a t i o nI n s t r u m e n t a t i o n , 2004, 25 ( 10) : 3-4.

R e s e a r c ha n dI mp l e me n t a t i o no f Mo d b u s R T UP r o t o c o l B a s e do nA R M
Z h a n gG u i , J i nG u o q i a n g, L i H u i
( 1. C o l l e g eo f E l e c t r i cP o w e ra n dA u t o m a t i o nE n g i n e e r i n g , S h a n g h a i U n i v e r s i t yo f E l e c t r i cP o w e r , S h a n g h a i 200090, C h i n a ; 2. X i ? a nT h e r m a l P o w e r R e s e a r c hI n s t i t u t eC o . , L t d , X i ? a n710032, C h i n a )
1 2 1

A b s t r a c t :Mo d b u sp r o t o c o l i sw i l d l ya p p l i e di ne l e c t r o n i cf i e l d , d u et oi t sa d v a n t a g e ss u c ha se f f i c i e n t , r e l i a b l e a n df r e e .R e s p e c t i v e l yb a s e do na nA R M9 h a r d w a r ep l a t f o r ma n de m b e d d e dr e a l t i m eo p e r a t i o ns y s t e m L i n u x . T h i sp a p e r ma i n l y a n a l y z e s t h ep r o t o c o l c o m p o s i t i o na n da r c h i t e c t u r eo f Mo d b u s R T U , i m p l e m e n t s ma s t e r a n ds l a v e o f M o d b u sR T U , r e a l i z e ss i g n a l a c q u i s i t i o na n dr e c e p t i o nb ys a m p l i n gt h ev a l u e so f v o l t a g e , s e n d i n gt h e mi nt h e f o r mo f d i g i t a l s i g n a l s a n ds h o w e di nr e a l t i m e .T h er e s u l t h a ss h o w e dt h a t i t c a ne f f e c t i v e l ya c h i e v et h e g o a l o f i n d u s t r i a l d a t aa c q u i s i t i o n , c o mm u n i c a t i o na n dp r o c e s s i n gf u n c t i o n s . Ke ywo r d s :Mo d b u sR T U;e m b e d d e dA R M;L i n u x ;d a t at r a n s m i s s i o n


相关文章:
ModBus RTU通讯协议与ModBus通讯协议有什么区别
ModBus RTU通讯协议与ModBus通讯协议有什么区别_信息与通信_工程科技_专业资料。生动、详细的解释ModBus通讯协议 modbus RTU 常见问题汇总 2013 年 04 月 22 日 ...
modbus_RTU协议详解
MODBUS_RTU 通讯规约 MODBUS_RTU 通讯规约(本协议采用主从问答方式) PDM 系列仪表/变送器:PDM 系列仪表/变送器采用全新的设计,革命性地改变了传统电 表的概念;...
MODBUS RTU通信协议
MODBUS RTU通信协议_信息与通信_工程科技_专业资料。在线设备通讯MODBUS RTU 通信协议 本通信协议采用标准 ModBus 协议,采用 RTU(十六进制数)传输模式。ModBus 协议是...
MODBUS_RTU通讯协议_图文
? 百特工控 福州福光百特自动化设备有限公司 MODBUS 通讯协议 使用手册 1. RTU 方式通讯协议 1.1. 硬件采用 RS-485,主从式半双工通讯,主机呼叫从机地址,从机...
VB编写的Modbus RTU协议通讯源程序
VB编写的Modbus RTU协议通讯源程序_计算机软件及应用_IT/计算机_专业资料。modbus rtu 协议可以算是一种事实上的工业标准协议,为许多仪表、PLC 等所支持。以前 有...
modbus 协议 及 modbus RTU 的 C51 单片机 程序
modbus 协议modbus RTU 的 C51 单片机 程序 Modbus 通讯协议 Modbus 协议最初由 Modicon 公司开发出来, 1979 年末该公司成为施耐德自动化(Schneider 在 ...
MODBUS通讯协议-RTU
Modbus 通讯协议传输模式) (RTU 传输模式) 本说明仅做内部参考,详细请参阅英文版本。 Modbus 通讯协议(RTU 传输模式) 传输模式) 第一章 Modbus 协议简介 Modbus...
ModbusRTU协议在Delphi编程环境中软件实现的具体方法
18 期 摘要:本文在 Modbus RTU 通信协议的应用范围内,对 Modbus RTU 协议的基本工作原 理进行了研究,同时分析了 ModbusRTU 协议在 Delphi 编程环境中软件实现的...
modbus rtu通信协议串口通讯
三、DLL 函数说明 modbus.DLL 是王俊于 2007 年最新开发的基于施耐得 modbus rtu 通讯协议的串口通讯链接库。modbus.DLL 专业版实现了对保持寄存 器 40001~4...
MODBUS协议(功能码及报文解析)
MODBUS协议(功能码及报文解析)_信息与通信_工程科技_专业资料。MODBUS协议(功能码及报文解析)MODBUS 协议 Modbus 是一种串行通信协议,是 Modicon 于 1979 年,为使...
更多相关标签:
modbus rtu通讯协议 | modbus rtu协议 | modbus rtu协议格式 | 标准modbus rtu协议 | modbus rtu协议规范 | modbus rtu通信协议 | modbus rtu协议 01 02 | modbus rtu协议程序 |