基于RS485物理层的MODBus_JBus现场总线通信协议

第32卷第1期 2006年1月中国测试技术

C HINA MEASUREME NT TECHNOLOGY

Vol . 32 No . 1Jan , 2006 

基于R S485物理层的MODBus JBus 现场总线通信协议

阳 军, 唐臻宇, 唐昌建

(四川大学物理科学与技术学院, 四川成都610065)

摘 要:本文描述了在现场总线控制系统中, 按照基于RS485物理层的MODBus JBus 现场总线通信协议, 采用主机 从机原理和远程终端单元(RTU ) 模式, 实现主机和从机之间的数据通信, 通过对从机上相应的内存单元的读写来适时获取和改变设备参数, 以实现工业自动化系统中对设备的适时控制。并通过实验完成了与德国JUMO 公司开发的紧凑型微处理控制器dTRON04. 1的通信, 验证了该协议的可行性和可靠性。

关键词:现场总线控制系统; MODBus JBus ; 通信协议中图分类号:TN911. 23    文献标识码:A     文章编号:1672-4984(2006) 01-0092-03

Field -bus communication protocol of JBus MODBus based on RS 485

YANG Jun , TANG Zhen -yu , TANG Chang -jian

(College of Physical Science and Technology , Sichuan University , Chengdu 610065, China )

Abstract :This paper presented a way to carry out the communication between a PC (master ) and an instrument (slave ) using

MODbus Jbus based on RS485in the FCS (Field -bus control system ) . The communication based on the master -slave principle and the transfer mode of Remote Terminal Unit (RTU ) . B y reading or writing the appropriate memory unit in the slave s EEPROM , it can obtain or change the parameters . So it can carry out the real time control of the instru ment in automation control system in industry . Also the feasibility and reliability of the protocol is validated by experiment of communicating with the compact microprocess or controller dTRON04. 1. Key words :FCS ; MODBus JBus ; Communication protocol

1 引 言

MODBus 协议是美国可编程控制器供应商Modicon 公司制定的一种工业通讯协议, 现在已经被许多工控厂商所支持, 广泛应用于智能仪表、总线控制等领域。其物理层遵循RS —485标准, 主要用于远程控制模块与主机之间的通信, 现已有大量采用MODBus JB us 通信协议的控制模块应用于国内的各种工业控制现场。本文对它们的通信时序, 数据包的格式, 发生通信错误时的处理方法, 校验方法, 主机和从机之间的查询 响应格式, 以及数据流做了详细的介绍和讨论。并利用VB 语言编制了该协议下主机的控制程序, 通过PC 机的RS232接口与一个标准的RS232 RS485转换器, 完成了对德国JUMO 公司开发的dTRON04. 1温度控制模块的控制, 验证了该协议的可行性和可靠性。

JB us , 并遵从主机 从机原理, 数据采用查询 响应的方式。主机控制数据的交换, 从机只具有响应功能。用设备地址对从机进行标识, 有255个不同的从机地址供选用。

2. 2 传输模式

传输模式采用远程终端单元(RTU ) 模式。用二进制格式(十六进制) 传输数据, 有8位、16位整数、32位浮点数。最先传输最低位(LSB ) 。JUMO 数据字节格式(被传输字节的排列形式) 中可以有或没有奇偶校验位, 外加一个停止位(1 2bit ) , 总比特数为9或10。2. 3 设备地址

通过RS422 RS485协议, 由于总线驱动能力有限, 一段总线上最多可以接入31台从机。从机的地址可以被设置为1到31, 地址0是广播地址。主机2 协议描述

2. 1 主机 从机原理

在主机和设备之间的通信采用MODBus 或者

; :16

  

第32卷第1期  

阳 军等:基于RS485物理层的MODBus JBus 现场总线通信协议

  

  93

是指通过对应的从机地址, 主机到从机的查询 响应, 被访问的从机产生应答。广播是指主机通过地

址0对所有从机发送指令, 系统中的从机不产生应答。通过这种方式主机可以把设定值传送到所有的从机, 随后通过对设定值的读出来检查数据是否被从机正确地接收了。2. 4 通信时序

数据包的结束是用传输停顿来标识的。两个连续字符之间所允许的最大时间间隔为字符传输时间(传输一个字符所需时间) 的三倍。若发送完一个字符以后, 总线空闲时间超过了字符传输时间的三倍, 则认为一个数据包已发送完毕。字符传输时间与波特率和所用的的数据字节格式有关。每次数据查询均按照图2中时序进行。

其中, t 0为结束标志, 等于传输3个字符的时间; t 1为从机对数据查询进行处理的时间, 由内部处理程序的需要决定, 但不能超过250ms ; t 2由设备用来将传输状态切换回接收状态, 主机必须等待这段时间然后才能进行新的数据查询。即使是对不同地址的设备进行新的数据查询时, 这段时间也必须维持。一般情况下, t 2≥20ms

识所发生的错误的类型。共有五种错误码对发生的错误情况进行描述:(1) 无效的命令; (2) 无效的参数地址; (3) 参数超出有效值的范围之外(参数的合理性未经测试) ; (4) 从机未准备好; (5) 对被保护的参数的写操作。出错情况下从机的应答数据包结构见表2。

表2地址域1字节

功能域XX OR 80h 1字节

错误码1字节

校验域CRC16

2字节

  此时, 功能码是与0x80做逻辑“或”运算得到的结果, 即它的最高位是被设置为“1”的。在发生以下错误时从机不产生应答:(1) 校验和(CRC16) 错误; (2) 主机的指令不完整或者是未被定义的指令; (3) 字数或比特数是零。2. 7 MODBus 与JBus 的区别

MODBus 协议与JBus 协议是兼容的, 它们的数据包的结构是相同的。唯一的区别在于它们对数据存储的物理地址的表示相差为“1”。JBus 地址与绝对地址相同, 例如它为1时, MODB us 地址为0。2. 8 校验和(CRC16)

校验和(CRC16) 是用来识别传输错误的。如果在过程中发现了错误, 对应的设备不产生应答。在数据传输时最先传送的是校验和的最低位。CRC 算法NS 图见图3。

在从机进行内部处理和应答期间, 禁止主机进行任何数据查询, 否则数据查询将被从机忽略, 或者将导致在总线上的数据发生冲突。2. 5 数据包的格式

所有的数据包都具有相同的结构, 由四个部分组成, 如表1所示。

  表1

地址域

读取n 个字的

命令读取n 个字的

响应写入一个字的命令 响应写入n 个字的命令写入n 个字的响应

1字节

功能域1字节0x03或0x040x03或0x040x060x100x10

首字地址2字节所读字数1字节字地址2字节2字节首字地址2字节数据域n 字节

所读字数(最多为6)

2字节字的值n 字节字的值2字节

字的值n 字节

1字节写入字数校验域2字节

3 数据类型

所支持的数据类型有四种, 分别为:(1) 字符型数据(Char ) :原则上说只有ASCII 字符能被传送。

它们按照在存储器中的存储的先后顺序被传送。(2) 整型数据(Int ) :整型数用2个字节(即1个字) 来表示。在传送时, 高位最先被传送。(3) 浮点型数据(Float ) :浮点数用4个字节(即2个字) 来表示。

首字地址写入字数字节数

2. 6 错误处理

,

    94

当主机运行在IEEE -754格式时, 在传送一个浮点数之前, 高字与低字将被交换位置, 以使它们的顺序与MODBus 模式下的表示一致。(4) 字节型数据(B yte ) :此种类型的数据用于表示状态标识符, 它们只能用8bit 的数据来进行传送, 并且在传送时, 要在前面添加一个为零的字节(0x00) 。

  

中国测试技术  

2006年1月

4 主机通信程序

由于JUMO 通信协议简单易行, 用VB 语言编程即可很容易地实现主机的功能。利用VB 的MSC OMM 控件就能很好地监听总线的状态, 完成二进制数据的收发; 利用TI MER 控件可以实现数据帧的识别, 然后交给主控制程序分析。在此仅介

绍一个简单的监控程序, 以实现对总线上数据流的监控, 也可以用其模仿主机向从机发送命令以得到想要的数据或者实现简单的控制。程序NS 图见图4。

题, 使所有设备都能稳定地运行。

参考文献

[1] 张 冰, 苏燕辰. 基于RS485总线技术的微机与智能

仪表的双向通信设计[J ]. 中国测试技术, 2005, 31(1) :84-91.

[2] 王锦标. 现场总线和现场总线控制系统[J ]. 化工自动化及仪表, 1997, 24(2) :3-7. [3] 谢希仁. 计算机网络(第二版) [M ]. 北京:电子工业出

版社, 1999.

[4] JUMO 温度控制器使用手册.

[5] 孟开元. Modbus 通信协议中CRC 校验的快速C 语言算

法[J ]. 福建电脑, 2004, 11:63-64.

[6] 段德权. 现场总线与现场总线控制技术[J ]. 信息技

术, 2003, 27(3) :25-29.

5 结 论

JUMO 通信协议的特点在于对设备参数的读取

和修改是通过直接对相应的存储地址进行操作来完成的, 而且它利用传输停顿来标志帧的结束, 所以该协议简单易行, 很容易实现。另外, 它采用短帧结构, 传输时间短, 受干扰的概率低, 且具有较好的检错效果。采用CRC 校验检错措施, 保证了数据出错率极低。实验证明利用JUMO 通信协议, 能将位于控制系统中心的主站与从站高效、稳定、可靠地连接在一起, 并确保它们之间的通讯和数据交换毫无问

第32卷第1期 2006年1月中国测试技术

C HINA MEASUREME NT TECHNOLOGY

Vol . 32 No . 1Jan , 2006 

基于R S485物理层的MODBus JBus 现场总线通信协议

阳 军, 唐臻宇, 唐昌建

(四川大学物理科学与技术学院, 四川成都610065)

摘 要:本文描述了在现场总线控制系统中, 按照基于RS485物理层的MODBus JBus 现场总线通信协议, 采用主机 从机原理和远程终端单元(RTU ) 模式, 实现主机和从机之间的数据通信, 通过对从机上相应的内存单元的读写来适时获取和改变设备参数, 以实现工业自动化系统中对设备的适时控制。并通过实验完成了与德国JUMO 公司开发的紧凑型微处理控制器dTRON04. 1的通信, 验证了该协议的可行性和可靠性。

关键词:现场总线控制系统; MODBus JBus ; 通信协议中图分类号:TN911. 23    文献标识码:A     文章编号:1672-4984(2006) 01-0092-03

Field -bus communication protocol of JBus MODBus based on RS 485

YANG Jun , TANG Zhen -yu , TANG Chang -jian

(College of Physical Science and Technology , Sichuan University , Chengdu 610065, China )

Abstract :This paper presented a way to carry out the communication between a PC (master ) and an instrument (slave ) using

MODbus Jbus based on RS485in the FCS (Field -bus control system ) . The communication based on the master -slave principle and the transfer mode of Remote Terminal Unit (RTU ) . B y reading or writing the appropriate memory unit in the slave s EEPROM , it can obtain or change the parameters . So it can carry out the real time control of the instru ment in automation control system in industry . Also the feasibility and reliability of the protocol is validated by experiment of communicating with the compact microprocess or controller dTRON04. 1. Key words :FCS ; MODBus JBus ; Communication protocol

1 引 言

MODBus 协议是美国可编程控制器供应商Modicon 公司制定的一种工业通讯协议, 现在已经被许多工控厂商所支持, 广泛应用于智能仪表、总线控制等领域。其物理层遵循RS —485标准, 主要用于远程控制模块与主机之间的通信, 现已有大量采用MODBus JB us 通信协议的控制模块应用于国内的各种工业控制现场。本文对它们的通信时序, 数据包的格式, 发生通信错误时的处理方法, 校验方法, 主机和从机之间的查询 响应格式, 以及数据流做了详细的介绍和讨论。并利用VB 语言编制了该协议下主机的控制程序, 通过PC 机的RS232接口与一个标准的RS232 RS485转换器, 完成了对德国JUMO 公司开发的dTRON04. 1温度控制模块的控制, 验证了该协议的可行性和可靠性。

JB us , 并遵从主机 从机原理, 数据采用查询 响应的方式。主机控制数据的交换, 从机只具有响应功能。用设备地址对从机进行标识, 有255个不同的从机地址供选用。

2. 2 传输模式

传输模式采用远程终端单元(RTU ) 模式。用二进制格式(十六进制) 传输数据, 有8位、16位整数、32位浮点数。最先传输最低位(LSB ) 。JUMO 数据字节格式(被传输字节的排列形式) 中可以有或没有奇偶校验位, 外加一个停止位(1 2bit ) , 总比特数为9或10。2. 3 设备地址

通过RS422 RS485协议, 由于总线驱动能力有限, 一段总线上最多可以接入31台从机。从机的地址可以被设置为1到31, 地址0是广播地址。主机2 协议描述

2. 1 主机 从机原理

在主机和设备之间的通信采用MODBus 或者

; :16

  

第32卷第1期  

阳 军等:基于RS485物理层的MODBus JBus 现场总线通信协议

  

  93

是指通过对应的从机地址, 主机到从机的查询 响应, 被访问的从机产生应答。广播是指主机通过地

址0对所有从机发送指令, 系统中的从机不产生应答。通过这种方式主机可以把设定值传送到所有的从机, 随后通过对设定值的读出来检查数据是否被从机正确地接收了。2. 4 通信时序

数据包的结束是用传输停顿来标识的。两个连续字符之间所允许的最大时间间隔为字符传输时间(传输一个字符所需时间) 的三倍。若发送完一个字符以后, 总线空闲时间超过了字符传输时间的三倍, 则认为一个数据包已发送完毕。字符传输时间与波特率和所用的的数据字节格式有关。每次数据查询均按照图2中时序进行。

其中, t 0为结束标志, 等于传输3个字符的时间; t 1为从机对数据查询进行处理的时间, 由内部处理程序的需要决定, 但不能超过250ms ; t 2由设备用来将传输状态切换回接收状态, 主机必须等待这段时间然后才能进行新的数据查询。即使是对不同地址的设备进行新的数据查询时, 这段时间也必须维持。一般情况下, t 2≥20ms

识所发生的错误的类型。共有五种错误码对发生的错误情况进行描述:(1) 无效的命令; (2) 无效的参数地址; (3) 参数超出有效值的范围之外(参数的合理性未经测试) ; (4) 从机未准备好; (5) 对被保护的参数的写操作。出错情况下从机的应答数据包结构见表2。

表2地址域1字节

功能域XX OR 80h 1字节

错误码1字节

校验域CRC16

2字节

  此时, 功能码是与0x80做逻辑“或”运算得到的结果, 即它的最高位是被设置为“1”的。在发生以下错误时从机不产生应答:(1) 校验和(CRC16) 错误; (2) 主机的指令不完整或者是未被定义的指令; (3) 字数或比特数是零。2. 7 MODBus 与JBus 的区别

MODBus 协议与JBus 协议是兼容的, 它们的数据包的结构是相同的。唯一的区别在于它们对数据存储的物理地址的表示相差为“1”。JBus 地址与绝对地址相同, 例如它为1时, MODB us 地址为0。2. 8 校验和(CRC16)

校验和(CRC16) 是用来识别传输错误的。如果在过程中发现了错误, 对应的设备不产生应答。在数据传输时最先传送的是校验和的最低位。CRC 算法NS 图见图3。

在从机进行内部处理和应答期间, 禁止主机进行任何数据查询, 否则数据查询将被从机忽略, 或者将导致在总线上的数据发生冲突。2. 5 数据包的格式

所有的数据包都具有相同的结构, 由四个部分组成, 如表1所示。

  表1

地址域

读取n 个字的

命令读取n 个字的

响应写入一个字的命令 响应写入n 个字的命令写入n 个字的响应

1字节

功能域1字节0x03或0x040x03或0x040x060x100x10

首字地址2字节所读字数1字节字地址2字节2字节首字地址2字节数据域n 字节

所读字数(最多为6)

2字节字的值n 字节字的值2字节

字的值n 字节

1字节写入字数校验域2字节

3 数据类型

所支持的数据类型有四种, 分别为:(1) 字符型数据(Char ) :原则上说只有ASCII 字符能被传送。

它们按照在存储器中的存储的先后顺序被传送。(2) 整型数据(Int ) :整型数用2个字节(即1个字) 来表示。在传送时, 高位最先被传送。(3) 浮点型数据(Float ) :浮点数用4个字节(即2个字) 来表示。

首字地址写入字数字节数

2. 6 错误处理

,

    94

当主机运行在IEEE -754格式时, 在传送一个浮点数之前, 高字与低字将被交换位置, 以使它们的顺序与MODBus 模式下的表示一致。(4) 字节型数据(B yte ) :此种类型的数据用于表示状态标识符, 它们只能用8bit 的数据来进行传送, 并且在传送时, 要在前面添加一个为零的字节(0x00) 。

  

中国测试技术  

2006年1月

4 主机通信程序

由于JUMO 通信协议简单易行, 用VB 语言编程即可很容易地实现主机的功能。利用VB 的MSC OMM 控件就能很好地监听总线的状态, 完成二进制数据的收发; 利用TI MER 控件可以实现数据帧的识别, 然后交给主控制程序分析。在此仅介

绍一个简单的监控程序, 以实现对总线上数据流的监控, 也可以用其模仿主机向从机发送命令以得到想要的数据或者实现简单的控制。程序NS 图见图4。

题, 使所有设备都能稳定地运行。

参考文献

[1] 张 冰, 苏燕辰. 基于RS485总线技术的微机与智能

仪表的双向通信设计[J ]. 中国测试技术, 2005, 31(1) :84-91.

[2] 王锦标. 现场总线和现场总线控制系统[J ]. 化工自动化及仪表, 1997, 24(2) :3-7. [3] 谢希仁. 计算机网络(第二版) [M ]. 北京:电子工业出

版社, 1999.

[4] JUMO 温度控制器使用手册.

[5] 孟开元. Modbus 通信协议中CRC 校验的快速C 语言算

法[J ]. 福建电脑, 2004, 11:63-64.

[6] 段德权. 现场总线与现场总线控制技术[J ]. 信息技

术, 2003, 27(3) :25-29.

5 结 论

JUMO 通信协议的特点在于对设备参数的读取

和修改是通过直接对相应的存储地址进行操作来完成的, 而且它利用传输停顿来标志帧的结束, 所以该协议简单易行, 很容易实现。另外, 它采用短帧结构, 传输时间短, 受干扰的概率低, 且具有较好的检错效果。采用CRC 校验检错措施, 保证了数据出错率极低。实验证明利用JUMO 通信协议, 能将位于控制系统中心的主站与从站高效、稳定、可靠地连接在一起, 并确保它们之间的通讯和数据交换毫无问


相关文章

  • 工业上的几种通讯协议
  • 每个仪表都有自己独特的通讯协议,常见的有modbus通讯协议.RS-232通讯协议.RS-485通讯协议.HART通讯协议等等,那么这些通讯协议究竟是怎么工作的,有哪些优缺点呢?本文将重点介绍目前常见的几种通讯协议!帮助仪表人学习. 通讯协 ...查看


  • 光伏电站监控系统分析
  • 墼竺竺竺竺竺一: 一:... 笪幽 光伏电站监控系统分析 东方立(成都)电控设备有限公司■张巍彭良平杜毅张黎曾捷El 摘要:综合论述了目前国内具有实际工程意义的大型光伏电站及分布式光伏系统的几种监控系统方 案.光伏监控系统采用的通讯手段主要 ...查看


  • 变电站自动化技术综述
  • 第20卷第1期2000年2月电力自动化设备Eiectric Power Automation Eguipment Voi.20No.1Feb.2000 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ...查看


  • 串口通信基本接线方法
  • 串口通信基本接线方法 龚建伟 2001.6.20 目次:1.DB9和DB25的常用信号脚说明 2.RS232C 串口通信接线方法 3. 串口调试中要注意的几点 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时( ...查看


  • 基于NRF905的无线温度采集系统的设计
  • 目录 中英文摘要 . ................................................................ II 引言 . .................................... ...查看


  • 600个毕业设计题目
  • 1 实验室排课系统 2 电子技术题库系统升级设计及打包发布 3 电子技术基础辅助学习系统设计 4 电子技术基础辅助学习系统功能实现 5 检察院语音门户网站设计 6 185邮政客户服务中心构架分析 7 无纸水文信息记录仪研究与设计 8 中文语 ...查看


  • 基于ATmega8的猪舍氨气自动排气装置的设计
  • 摘要:针对猪舍中氨气积累和排放等问题,提出了一种新型的智能化解决方案.根据组网传感器检测的猪舍内氨气浓度,自动开启和关闭排气风扇,使猪舍内氨气浓度维持在一定水平内,为猪的生长提供一个优良环境. 关键词:氨气检测:ATmega8:RS485 ...查看


  • 现场总线论文
  • 前言 根据国际电工委员会(IEC)和美国仪表协会(ISA)的定义,现场总线是连接智能现场设备和自动化系统的数字式.双向传输.多分支结构的通信网络,它的关键标志是能支持双向.多节点.总线式的全数字通讯.目前,国际上各种各样的现场总线有几百种之 ...查看


  • 华为硬件题目
  • 一 选择(13个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原 理,网络,数字信号处理) 1.微分电路 2.CISC,RISC 答:CISC(复杂指令集计算机)和RISC(精简指令集计算机)是前CPU 的两种 ...查看


热门内容