您好,欢迎进入上海香川电子衡器有限公司网站!
全国服务热线:13661782675
上海香川电子衡器有限公司
产品搜索
PRODUCT SEARCH
产品分类
PRODUCT CLASSIFICATION
您现在的位置:首页 > 技术文章 > 运用ModBus通信协议与PLC的实时通信

运用ModBus通信协议与PLC的实时通信

浏览次数:4801发布日期:2012-07-10

运用 ModBus 通信协议,实现电子秤 与 PLC 的实时通信

 

上海彩信电子科技有限公司 陈东富

 

【摘 要】 本文介绍了在工业控制系统中广泛使用的 ModBus 通信协议。以 ModBus 的 ASCII 方

 

式为例,剖析了 ModBus 的指令结构,着重说明基于 ModBus 通信协议的设备之间如何进行数据通 信、如何使用 ModBus 通信协议把衡器接入 PLC 系统,并简单介绍了 PLC 系统与局域网的互联。 【关键词】 ModBus 通信协议;PLC 可编程控制器;衡器

 

在衡器行业中,但凡涉及串行通信时,工程师们都会有一种无奈,就是通信协议问题。由于我 国衡器厂众多,各自采用自己的通信协议,使得通信协议五花八门,互不兼容。由于是自成一体, 也为后续与其他系统联网、维修、仪表配件互换等留有后遗问题。若采用一种工业控制领域的主流 协议,各衡器厂的通信协议都与这个主流协议兼容,那么上述问题自然迎刃而解。这个主流协议首 推 ModBus。

一、什么是 ModBus

 

ModBus 是一种通信协议,是由 Modicon 公司发表于 1979 年,主要用于 PLC(可编程逻辑控 制器)系统。目前,在工业自动化设备通信连接中,ModBus 已是相当常见的一种连接方式。

二、ModBus 与其他通信协议比较

 

1、物理层简单、价廉:ModBus 可以在常用且廉价的 RS232、RS485 等物理媒介上运行,不像

 

CanBus、ProfiBus、BitBus 等需昂贵的芯片支持。

 

2、免费:ModBus 是一种公开的,可以无偿使用的协议。而使用 ProfiBus 则需要向有关组

 

织登记缴费。

 

3、使用普及:ModBus 是当前工业控制中使用zui广的一种通信协议,基于这点,具有 ModBus

 

的设备接入工控系统相对容易。

 

4、维护方便:由于接入 ModBus 总线相对其他工控总线而言,比较简单。一般具有 RS232、 RS485 等串行口的 PC 机都可以接入,使用 PC 机自带的超级终端软件或其他串行控制软件,就能 观察 ModBus 通信过程,可以很方便地查出故障站点。

三、ModBus 的主要型式

 

ModBus 主要有四种型式:ASCII、RTU、TCP/IP 和 Plus。

 

1、ASCII 型式:采用 ASCII 码进行数据交换,使用纵向冗余校验的校验和(LRC)进行数据

 

校验。

 

2、RTU 型式:采用二进制码进行数据交换,使用循环冗余校验的校验和(CRC)进行数据校

 

验。

 

3、TCP/IP 型式:主要用于以太网,不使用校验和进行数据校验。

 

4、Plus 型式:该型式为 Modicon 公司专有,采用专门的协处理器进行数据处理。 目前,使用zui广泛的型式是 ASCII 和 RTU,主要采用 RS232、RS422、RS485 进行物理连接,

 

其中 RS485 使用zui多。

 

四、ModBus 的结构

 

ModBus 协议是一个 master(主)/slave(从)架构的协议。有一个节点是 master 节点,其他使 用 Modbus 协议参与通信的节点是 slave 节点。每一个 slave 设备都有一个*的地址。ModBus 的 通信比较简单,由 master 发通信指令,指令中含有欲于之通信的 slave 站号。当 master 发指令时, 所有 slave 都处于收听状态,一旦 slave 收听到与自己地址相同的站号时,立刻执行指令的内容,并

回传执行的结果。

 

五、ASCII 型式的 ModBus 通信协议的格式

 

在 ModBus 上通信时,各站点的通信参数必须一致,如:波特率、奇偶校验。 通信时,一个信息字节中的每 8 位分为两个 ASCII 字符进行传输,允许字符传输间隔在 1 秒之

内。

 

1、ASCII 型式每一字节的格式

 

16 进制编码,ASCII 字符(0-9、A-F),即:0x30-0x39、0x41-0x46。

 

1 位开始位、7 位数据位(先低后高)、1 位奇偶校验(无奇偶校验时为 0)、1 位停止位。

 

2、数据错误校验采用纵向冗余校验(LRC)

 

3、通信帧格式(ModBus 命令格式)

 

开始

地址(站号)

功能

数据

校验(LRC)

结束

 

 

 

 

 

 

:(0x3a)

xx

xx

x...

xx

CR、LF(0x0d、0x0a)

 

 

 

 

 

 

1 字符

2 字符

2 字符

N 字符

2 字符

2 字符

 

 

 

 

 

 

 

一个基本的 ModBus 命令,除了开始、校验、结束字符外,还必须有地址项及功能项。地址—

 

—也就是站号,想要被操作的对象(slave 站号);功能——想要被操作的对象完成的任务。ModBus

 

命令可以没有数据项。

 

 

被操作的对象,在完成所要求的操作后,必须回传一帧信息,传递操作结果。回传信息的格式

与命令格式相同,只是数据内容为操作的结果。

 

六、利用 ModBus,实现 PLC 与电子称重设备的通信

 

为了使大家对 Modbus 有更进一步的了解,下面用例子方式说明如何把电子称重设备接入 PLC 控制系统的 Modbus 总线网络。例子中的称重仪表为上海彩信电子科技有限公司生产的 XK311 增强型仪表。本例中,1 台 PLC 作为主机(master),10 台电子秤作为从机(slave),使用 XK311 增强型仪表作为电子秤显示仪表,从机地址为 70、71、72、....79。通过 RS485 连接 PLC 和各仪 表,采用 ModBus ASCII 通信协议。PLC 可以对各台仪表进行置零、去皮、读取重量等多项操作。 称重系统示意图如图 1 所示,图中的计算机是在系统调试时接入 RS485 总线的,用以观察 RS485

中传输的数据,正常工作时是移除的。

 图 1 称重系统示意图

 

上述系统可实现以下功能:

 

1、正常工作时,PLC 每隔 10 秒轮询一次,获取每台秤的重量。

 

2、当秤台上重量异常时,PLC 会发出警告信息,提示控制室人员注意。

 

3、控制人员可以通过 PLC,对某台秤发出置零、去皮等操作指令。

 

4、PLC 可对各台秤的称量,进行各项统计,生成必要的统计报表。

 

七、ModBus 与局域网互连

 

现在,很多 PLC 都具有局域网接口,通过该接口,就可以远程控制称重系统了。当然,也可 以通过接在 Modbus 总线上的 PC 机,利用 PC 机的软、硬件资源,编制相应的软件,将重量信号传 送到局域网上。若局域网通过路由器接入因特网,很显然重量数据就可以在因特网上传输了。本系 统是通过 PLC 的 DH+网络接入局域网的。当然,网络部分使用的协议,* TCP/IP、NetBEUI。 Modbus 也有相关的 TCP/IP 型式,这里就不再赘述了,大家可以参考相关的书籍。

 

上述的称重系统只是 PLC 的一个子系统,是后期改造的一个项目。其整个 PLC 系统(见图 2) 是采用美国 ROCKWELL 公司的 PLC,共有 5 台 PLC 机箱(采用 PLC5 系列)、4 台工控机和 2 台 服务器、若干台 PC 组成的。PLC 采用 ROCKWELL 公司的 DH+网络连接,使用 DF1 协议;其中 1

 

附录:

 

XK311 增强型仪表的 ModBus 协议格式

 

说明

报头

站号

功能码

首址

数据量

数据值

校验码

报尾

 

 

 

 

 

 

 

 

 

 

 

指令

:

xx

xx

xxxx

xxxx

xxxx

LRC

\CR\ LF

 

 

 

 

 

 

 

 

 

 

 

回传

:

xx

xx

 

xx

xxxx

LRC

\CR

 

 

\ LF

 

 

 

 

 

 

 

 

 

 

出错

:

xx

xx

 

 

xx

LRC

\CR

 

回传

 

zui高位置 1

 

 

错误码

\ LF

 

 

 

 

 

 

 

 

报头、报尾:所有指令均以冒号(:)开始,以回车符、换行符结束。 站号:2 个 ASCII 码,范围为 01-90(16 进制:0x01-0x)。 功能码:2 个 ASCII 码。

 

02:读继电器输出状态;

 

04:读称量状态(显示值、皮重等);

 

05:置零操作;

 

06:皮重操作;

 

07:通信测试;

 

08:读定值;

 

09:写定值。

 

首址:4 个 ASCII 码,读写数据的位置。

 

数据量:4 个 ASCII 码,读写数据的数量。

 

数据值:读写的数据。

 

校验码:2 个 ASCII 码,采用 LRC 校验。

 

LRC 校验码运算:报头(:)不参与运算,LRC 在数据之后,在\CR\LF 之前。参加运算的是报 头之后,LRC 之前的所有数据。LRC 为参加运算的数据之和的补码,舍去进位。

 

当仪表执行指令出错时,会回传错误码,并将功能码的zui高位置 1。

 

错误码: 00--接收到的功能码出错; 01--数据地址错; 02--数据数量错;

 

03--数据值错,如:预置皮重大于zui大称量 FS;

 

04--称量为负时去皮;

 

05--不在称重状态时置零;

销售代表:郭晓金       

:      

:      

公司:www.shxcltd.com  

电子:taizhiheng@foxmail.com

公司地址:上海市松江区沈砖公路5599号

Contact Us
  • 联系QQ:190390019
  • 联系邮箱:190390019@qq.com
  • 传真:
  • 联系地址:上海市松江区九亭镇顾戴路

扫一扫  微信咨询

©2026 上海香川电子衡器有限公司 版权所有  备案号:沪ICP备09098494号-32  技术支持:化工仪器网    sitemap.xml    总访问量:1109141 管理登陆