modbus协议范例6篇

modbus协议

modbus协议范文1

关键词: 实时操作系统; LwIP; Modbus/TCP; 客户端/服务器

中图分类号: TP 273文献标识码: Adoi: 10.3969

引言所谓工业以太网,是根据国际标准IEEE802.3,设计应用于工业控制系统现场的需要,它的特点主要有系统安全性高和数据实时性强等。近年来,工业以太网控制技术和网络协议设计技术快速发展,协议设计也有了突破性的进展,工业以太网技术得以迅速发展。ModbusIDA组织是由施耐德公司成立的,就是为了专门对Modbus协议进行研究和开发的。在国内,Modbus TCP/IP协议已经处于比较成熟的阶段,并对其广泛应用。为了让Modbus广泛有效地使用,提出了一种支持多线程实时应用的方案,即基于AT91R40008的微处理器,在实时操作系统uC/OSII和ARM7内核的软硬件平台上,通过移植TCP/IP协议栈[1]LwIP到ARM开发平台并结合Modbus/TCP协议实现通信处理器模块通信的功能。1Modbus/TCP协议模型Modbus/TCP协议[23]是在TCP/IP标准中,应用层采用工业领域事实标准Modbus实现的。经过国际公认,502端口被专门用于Modbus TCP/IP应用层,且其串行总线方式支持各种介质的rs232、rs422、rs485接口,网络通信模式如图1所示。

图1Modbus/TCP的网络通信模式

Fig.1The network communication mode of

Modbus/TCP

图2Modbus/TCP通信结构

Fig.2Modbus/TCP communication structure

在一个客户端与服务器的以太网TCP/IP协议为基础的网络上,Modbus报文传输服务提供商的设备之间可以进行相互的通信,且支持Modbus请求、响应、指示和证实这4 种类型的客户端/服务器模式报文。Modbus/TCP客户端首先要通过启动事务报文处理,并在网络上发送一个Modbus请求,服务器端接收到该报文请求,产生Modbus指示信号,当服务器收到该请求时,会自动产生一个Modbus响应,并向客户端发送此响应,当客户端接收到信息时,也会做出响应的反应,即产生Modbus证实来确认已经将Modbus请求发送完毕。Modbus TCP/IP的通信系统可以包括不同类型的嵌入式设备,例如TCP/IP网络可以通过网桥或交换机与串行链路子网相连,且客户端串行链路和服务器端串行链路通过TCP/IP网关连接到MODBUS TCP/IP上,最终可以相互之间进行通信,其通信结构如图2所示。光学仪器第35卷

第1期李慧燕,等:Modbus/TCP协议的通信处理器模块设计

Modbus/TCP功能组件结构模型[4]主要由四个层次组成,由下到上是TCP/IP栈、TCP管理层、通信应用层和用户应用程序。其中,在Modbus/ TCP通信的应用层中包含了Modbus客户端、Modbus服务器、Modbus客户端接口和Modbus服务器接口四个部分,是系统的核心所在。 Modbus设备可以提供客户端/服务器Modbus接口和Modbus后台接口,而后台接口包括四种数据类型:离散输入Discrete Input、离散输出Coil、寄存器输入Input Register和寄存器输出Holding Register。Modbus客户端完成对用户的远程控制和设备间的交换信息,用户发送一个Modbus请求到客户端接口,然后调用一个Modbus等待,最后再确认该事务处理。 Modbus客户端接口允许用户应用程序生成,并通过提供的Modbus服务请求接口访问Modbus应用对象。 Modbus服务器的主要功能是等待接收一个Modbus请求来读取和写入,然后生成Modbus响应。Modbus的后台接口仅仅是一个Modbus服务器的应用程序对象之间的接口。图3系统硬件开发平台框图

Fig.3The block diagram of system hardware

modbus协议范文2

关键词:现场总线;Modbus协议;Profibus-DP协议;协议转换;电气隔离

中图分类号:TP393

文献标识码:A 文章编号:1672-7800(2015)005-0148-04

作者简介:惠明坤(1989-),男,江苏徐州人,江苏大学计算机科学与通信工程学院硕士研究生,研究方向为嵌入式系统应用。

0 引言

随着计算机、通信、自动化等技术的不断发展,现场总线控制系统(FCS)正逐渐成为新型工业控制系统的发展方向。相对于集散控制系统(DCS)[1],现场总线控制系统由于标准开放、可靠性高、实时性好等优点,迅速成为各大厂商和组织的研究热点,如今已成为推动工业控制系统朝着智能化、数字化、信息化方向发展的重要力量[2]。

现场总线控制系统在迅速发展的同时,也随之产生了一些问题。由于现场总线种类众多,至今仍未形成统一的标准,使得用户很难使用不同厂商、不同品牌的设备进行系统集成,这给现场总线技术的推广应用带来了很大困难[3]。因此,对不同总线集成化技术进行研究极具现实意义。

作为我国第一个现场总线技术国家标准,加上西门子等公司的大力支持,Profibus总线已成为当今使用最广泛的总线技术之一。Modbus总线由于其简单可靠、实时性强等优点,得到了众多厂商和用户的青睐,但其网络规模有限,网络处理能力较差。本文设计并实现了两种协议的转换模块,使得Modbus设备可以无缝接入Profibus-DP总线系统。模块具有较强的实时性和可靠性,有很好的推广使用价值。

1 总体设计

1.1 Modbus协议

Modbus协议是全球第一个用于工业现场的总线协议。Modbus串行链路协议采用主从通讯方式,并且提供功能码规定的服务[4]。Modbus是一种应用层报文传输协议,其传输模式分为RTU和ASCII两种。在相同的波特率下,RTU模式比ASCII模式具有更高的数据吞吐量。在RTU模式下,一个完整的报文帧最大不超过256个字节。两帧报文之间至少要有3.5个字符的时间间隔,同一报文两个字符之间的时间间隔应不大于1.5个字符时间[5],否则将认为报文帧出错。

1.2 Profibus-DP协议

Profibus是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,它是我国第一个总线技术国家标准,包括Profibus-DP、Profibus-PA、Profibus-FMS 3个子集[6]。Profibus-DP传输速率为9.6Kbps~12Mbps,每个DP系统包含3类站点:一类主站(M1)、二类主站(M2)和从站。其中,多主站系统中,主站之间采用令牌帧传递信息,得到令牌的站点可在一个事先规定的时间内拥有总线控制权,同时规定好令牌在各主站中循环一周的最长时间;主站和从站之间采用主从方式的分时轮询传输。理论上,每一段中最多可挂接126个站点。

1.3 系统总体结构

目前,对不同现场总线的集成化研究主要有以下几种方案:①采用OPC技术[7]和以太网技术集成多种总线,这种方法主要应用于过程控制级的现场总线协议转换;②采用从节点模块化实现多种总线集成,该方法主要是将多种总站的从站功能集中在一个模块上;③采用转换模块实现多种总线集成,这种方法主要是对不同总线协议转换问题的研究,适用于现场设备级的现场总线协议转换。本文采用第3种方法来实现Profibus-DP/Modbus协议转换。

设计完成的系统结构如图1所示,通过设计的协议转换模块,可以将Modbus设备无缝接入到Profibus-DP系统中,实现了协议之间的相互转换,大大降低了系统升级费用。

2 硬件实现方案

由于Profibus-DP是主站式总线控制机制,因而Profibus-DP与Modbus之间的转换是单向的,即为DP主站对Modbus从站的单向访问,或者是Modbus对DP从站的单向访问。对于前者,网关既是DP从站,同时也是Modbus主站;对于后者,网关既是Modbus从站,同时也是DP主站,本文设计的转换模块属于前者。转换模块的硬件原理如图2所示。

微处理器是整个模块的核心部分。本设计选择三星公司开发的微控制器S3C2440A,它采用了ARM920T架构核心,具备高性能、低功耗等优点,而且价格便宜,适用于嵌入式设备开发。

Profibus-DP从站的核心功能选择基于ASIC芯片的设计方案,不仅能减轻MCU的工作压力,同时也节省了系统开发时间,保证了模块运行时的稳定性和可靠性。本设计选用VPC3+C芯片,它集成了完整的DP协议。S3C2440a通过GPIO与VPC3+C芯片连接,同时,不采用数据/地址线复用的方式,以此来提高模块运行效率。S3C2440通过GPJ0-GPJ10与VPC3+C的11根地址线AB(0..10)连接,通过GPB0-GPB7与VPC3+C对应的数据线DB(0..7)连接,同时将VPC3+C的XWR、XRD、XCS、X/INT及XREADY引脚分别与MCU的GPF0-GPF4相连接。VPC3+C引脚连接如图3所示。

为了提高模块的抗干扰性,系统选择了带磁耦隔离的RS485收发芯片ADM2486,其速率高达20Mb/S,完全满足Profibus-DP的通信要求。与传统的光耦隔离相比,其简化了模块电路设计,同时大大降低了模块功耗。AMD2486的引脚TxD、RxD及RTS分别与VPC3+C的TxD、RxD及RTS引脚相连接。

3 软件实现方案

转换模块的作用是将Profibus-DP协议数据转换成Modbus协议数据,实现使用不同协议的设备之间的通信,完成生产控制要求。在实际工作时,当转换模块初始化完成后,即进入数据转换状态。每次通信都由Profibus-DP主站发起,然后发送到转换模块中的VPC3+C芯片上,由于VPC3+C集成了完整的Profibus-DP协议,因此对DP数据的处理并不需要MCU的参与[8]。VPC3+C处理完数据后,通知MCU取走数据。MCU收到主站数据后,将其转换成Modbus协议格式,然后发送给从站并等待从站响应。

从整个控制系统来看,主要包含3种通信过程:Profibus-DP主站与模块从站侧的通信、模块内部的数据转换,以及模块Modbus主站侧与现场从设备的通信。在主程序设计中,主要是对3种通信过程进行合理控制,以保证系统的可靠性和实时性。MCU及VPC3+C的初始化工作应当在数据交换之前完成。对VPC3+C的操作主要包括:允许中断、写入从站地址、设置模式寄存器、诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区以及缓冲区的长度,最后设置输入输出缓冲区并取得其指针。主程序流程如图4所示。

由该流程图可以看出,MCU采用轮询方式读取VPC3+C中的数据。相对于中断的方式,轮询方式可以减少对Modbus侧通信的影响,有助于提高模块的转换效率。

由硬件设计部分可知,VPC3+C协议芯片通过X/INT引脚与S3C2440A芯片的GPC3引脚相连。在遇到异常情况时,VPC3+C将通过此引脚通知MCU。MCU通过读取中断寄存器的内容确定中断源的类型,然后调用相应的处理程序进行处理。VPC3+C的中断服务流程如图5所示。

转换模块中,Modbus和Profibus-DP之间的协议数据转换通过映射关系建立。转换模块中,设置了两块数据缓冲区,一块是Profibus-DP数据输入缓冲区,另一块是Profibus-DP输出缓冲区。Modbus主站侧将读取的数据写入到网络输入缓冲区,供Profibus-DP网络读取;Modbus写命令从网络输出缓冲区取出数据并发送到相应的Modbus从设备。在从缓冲区取用数据时,为了保证所使用的数据是最新的,采用单个缓冲的设计方式,以此来保证数据转换的实时性。同时,Modbus从设备取得数据后直接填充到协议芯片的输入缓冲区,转换模块读取Profibus协议数据后直接转换成Modbus协议数据进行输出,通过这种方式,数据转换效率有所提升。

在转换模块中,Modbus协议通过软件方式实现[9-10]。Modbus主站侧一方面将DP主站发送的数据通过Modbus协议格式发送给从站;另一方面将Modbus现场从设备的响应信息报告给DP主站。对于从站的响应信息,采取中断设计方式。由于工业现场对可靠性和实时性要求较高,而且数据量很大,采取中断的方式可以大大减轻MCU的负担[11]。数据输入中断服务流程如图6所示。

4 实验验证

本文采用西门子公司的S7300 PLC作为Profibus-DP主站[12],利用PC端的Commix串口调试工具模拟Modbus从站设备进行实验。通过验证,转换模块能够有效地完成数据转换功能,达到了设计要求。

(1)在PLC创建数据区DB1、DB2。其中DB1为数据发送区,DB2为数据接收区。

(2)数据的发送和接收分别通过SFC15 “DPWR_DAT”和SFC14“DPRD_DAT”完成。

将DB1数据打包发送:

CALL "DPRD_DAT" //调用SFC14

LADDR :=W#16#0 //接收输入起始地址

RET_VAL:=MW2 //错误代码

RECORD :=P#DB2.DBX 0.0 WORD 8

将收数据存放到DB2:

CALL "DPWR_DAT" //调用SFC15

LADDR :=W#16#0 //发送输出起始地址

RECORD :=P#DB1.DBX 0.0 WORD 8 RET_VAL:=MW4 //错误代码

(3)调用SFC21将DB1和DB2中的数据初始化。

(4)保存组态信息后进行测试。

(5)通过转换模块发送数据01 03 00 00 00 08 44 0C,串口可以收到周期性发来的信息,如图7所示。

(6)在发送区输入响应数据帧,如图8所示。

(7)DB2数据块可以正确接收串口发送的信息,如图9所示。

5 结语

随着现代工业的不断发展,对生产控制的要求越来越高,现场总线因其标准开放、可靠性高、实时性强等优点,已成为自动控制发展的新方向。而总线标准不统一给用户系统集成带来了很大困难,因此对不同总线设备的集成化研究尤为重要。本文设计的Modbus/Profibus-DP转换模块所需要的硬件简单、稳定、可靠,且成本相对较低,同时在软件方面对协议数据转换的可靠性和实时性进行了优化,从而在硬件和软件两方面保证了通信的实时性和可靠性,具有一定的实用价值。

参考文献:

[1] 侯维岩,费敏锐.Profibus协议分析和系统应用[M].北京:清华大学出版社,2006.

[2] 章民融,秦艳华,徐亚锋.基于SPC3的Profibus-DP的研究与开发[J].计算机应用与软件,2008,2(8):184-186.

[3] 张大海.Profibus-DP与CAN协议转换研究及其网关开发[D].武汉:武汉大学,2005.

[4] 华F.从Modbus到透明就绪:施耐德电气工业网络的协议、设计、安装和应用[M].北京:机械工业出版社,2009.

[5] 潘志刚,胡景泰,李强.基于Modbus的串口通信实现[J].工业控制计算机,2012,25(7):79-80.

[6] 王建国,孙丰祥,李红梅,等.基于软件协议的Profibus-DP从站实现[J].化工自动化及仪表,2010,37(1):66-69.

[7] 赵玮,金亚萍,张胜.基于OPC技术的应用程序实现[J].机电产品开发与创新,2009(3):100-101.

[8] 夏琳琳,邱超,富兆龙,等.基于VPC3协议芯片的Profibus-DP接口适配卡的设计研究[J].化工自动化及仪表,2012(1):1323-1327.

[9] 许波.Modbus通信协议的研究与实现[D].合肥:安徽大学,2010.

[10] 翁建年,张浩,彭道刚,等.基于嵌入式ARM的MOBUS/TCP协议的研究与实现[J].计算机应用与软件,2009,26(10):36-39.

modbus协议范文3

【关键词】称重仪;电阻应变片;C8051F410单片机;MODBUS协议

【Abstract】The design is Weighing Device based on MUDBUS Protocol. We use the microcontroller C8051F410 as the key controller of the entire design system. The hardware circuit design including minimum system of the C8051F410 microcontroller, A/D converter, weighing sensor , LED display circuit, ±5V power supply circuit ,communication circuit and so on.

【Key words】Weighing Device; Resistance strain gauge; C8051F410; MODBUS; LED

0 引言

压力是现代工业生产过程中的一个重要参数,在生产过程中经常需要对压力进行检测和监控。压力测量有许多种方法,本文介绍的是一种压电转换装置,压力变化使传感器发生形变,从而使阻抗发生变化,同时输出一个变化的模拟电压信号。该信号经放大电路放大后输出至A/D转换器。使之转换成便于处理的数字信号,该数字信号传送给单片机,最终LED显示压力大小。

1 系统概述

本设计是一个基于C8051F410单片机的压力测量系统。本设计由称重传感器,放大电路,A/D转换电路,单片机电路,显示电路,通讯接口电路,稳压电源电路等设计内容组成。当物体放在秤盘上时,压力变化使传感器发生形变,从而使阻抗发生变化,同时输出一个变化的模拟电压信号。该信号经放大电路放大后输出至A/D转换器。使之转换成便于处理的数字信号,该数字信号传送到CPU。数据经过处理、程序运行后在LED上显示出来。同时该设计是一款测量精度高、支持RS485硬件接口和MODBUS工业现场总线协议的压力控制模块。该压力控制模块能够对压力进行实时采集,采用支持MODBUS工业现场总线协议的RS485串行接口与PC机连接。

2 主要电路模块设计

2.1 主控电路

C8051F410单片机是整个系统的控制核心。C8051F410基本接口电路是保证系统正常工作的辅助电路,包括C8051F410片上系统工作所需要的JATG接口、电源退耦、基准滤波、上电复位等基本电路。

2.2 称重传感器的设计

称重传感器实际上是一种将质量(压力)信号转变为可测量的电信号输出的装置。称重传感器主要由弹性体、电阻应变片、电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出电压正比于应变片发生应变时产生的电阻变化量。

2.3 信号采集调理电路

数据采集模块分为3个部分:称重传感器、前级放大器和A/D转换器传感器选用压力传感器,为双孔悬臂梁形式。前级放大器用AD620内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单,且放大器的增益是可以改变的。压力传感器的输出信号输入至AD620同相和反相输入端,AD620可对差模信号进行放大,放大倍数由AD620的1脚与8脚并接了的一个可调电阻RG决定。由于AD620在单极性电源供电时有零点漂移,因此本电路设计采用双极性电源供电,同时在电源两端加上滤波电容,确保供电稳定。选用12位逐次比较式ADC,此方案经小信号放大、调理电路,可直接连接单片机,也可以可满足精度要求,而C8051F410单片机的ADC0子系统集成了一个27通道的模拟多路选择器和一个200ksps的12位逐次逼近寄存器型ADC。ADC中集成了跟踪保持电路、可编程窗口检测器和硬件累加器。经过计算满足精度要求。故本设计选用C8051F410单片机内部A/D。

3 MODBUS协议

MODBUS通讯系统是一种用于工业通讯的分布式控制系统。该系统可靠性高,适应性强,可以在任何工业领域内控制各种生成过程和作业。其数据通讯系统协议控制着网络内一切设备所共用的语言结构或报文格式。协议是系统操作的关键,协议决定如何建立或中断主从设备之间的关系,如何使发送和接收装置协调一致,如何井然有序地交换报文,如何检测错误。

MODBUS通讯协议有两种消息帧格式:ASCII和RTU帧格式。ASCII消息以冒号字符开始,以回车换行符结束,其它域使用的传输字符为十六进制;RTU消息则以传递一段空闲时间为开始和结束,这段时间不小于3.5倍的字符发送时间T,一般取4T。本设计在通讯协议中只用了两个命令,03号命令和06号命令。他们都属于公共功能码。03号命令要求发送数据,06号命令代表要求从机原样数据发回作为应答。

4 调试处理

数据处理是将A/D采集的数据进行处理,A/D转换所得的值的精确性与很多因素有关,包括A/D元件的精度、电路的焊接情况、环境温度的变化等。这些因素的影响直接导致了A/D转换的数据围绕着某个中心值上下波动。这就需要对采集的数据进行软件滤波。

为了能够使变送器的输出和被测量对应上,要对信号进行归一化处理,也就是标定。具体的做法是使用二次差值法对标准信号进行定标。要实现高的拟合精度,拟合多项式的次数要很高,对于单片机来说,由于速度和存储容量等原因,实现这样的运算很难。这里采用朗格朗日二次插值的方法对信号数据进行处理。

5 总结

本设计是基于MODBUS通讯协议的称重仪设计。在设计过程中以压力采集及检测为主要目标,利用电阻应变片阻值随压力变化而变化的性质,对压力进行采集调理经由单片机的控制传出,将采集的压力通过单片机的处理后传输给数码管显示,同时也支持RS-485硬件接口通过MODBUS通讯协议传给上位机。测量压力误差不大于5g。该设计系统具有操作方便、控制灵活、移植性强等优点。

【参考文献】

[1]康华光,陈大钦,等.电子技术基础(模拟部分)[M].北京:高等教育出版社,2000.22-48.

modbus协议范文4

随着计算机技术和网络技术的迅速发展,监控系统出现了多种新的实现方式,与此同时,我国经济的迅速发展,能源需求不断增长与能源相对不足的矛盾日益严重,节能成为了全社会共同关注的话题。利用RS-485将建筑物内的智能电表数据采集出来,以Modbus协议与上位机PC进行通讯,使得建筑物内不同位置的智能电表组成一个网络,构成一个监控系统,操作人员利用上位机PC监控软件即可对整个建筑物内的用电情况进行采集,处理,实现控制目的。

1 Modbus协议

1.1 Modbus简介

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。不同厂商生产的控制设备可以通过该协议连接成一个工业网络,来完成集中监控。

这个协议定义了一个用来认识所使用的消息结构的控制器,不需要了解消息是经过何种网络进行通讯的。Modbus协议描述了一控制器对其他设备的请求与回应过程,以及如何侦测错误并记录,Modbus协议制定了消息域格局和内容的公共格式。

Modbus协议在网络上进行通讯时,决定了每个控制器必须了解它们的设备地址,通过识别按地址发送来的消息,决定是否应答,控制器使用Modbus协议发送反馈信息,这个消息转换成其他网络所使用的数据帧或者包结构。

1.2 Modbus传输方式

控制器可以设置成两种传输模式(ASCII或RTU),。当设备以ASCII 模式进行通信时,消息中的每一个8 位的字节作为两个ASCII 字符传输。当设备以RTU 模式进行通信时,消息中的每一个8 位的字节分成两个4 位的16 进制的字符传输[2]。因此在相同的波特率下RTU 模式有更高的传输密度,可以传播更多数据(相比ASCII),应用也更广。用户可以选择想要的模式,包括串口通讯参数(波特率,比特率,校验方式),同一个网络上的所有设备必须使用相同的传输模式和串口参数。

1.3 Modbus报文

本建筑能耗监控系统使用的是RTU传输模式。

在Modbus协议中,RTU模式与ASCII不同,没有起始符和结束符,具体格式如表1所示,要进行一次消息发送,至少要以3.5个字符时间(T1-T2-T3-T4) 作为停顿间隔表示开始,同样的,也至少要以3.5个字符时间作为停顿间隔表示消息结束。

在Modbus(RTU)数据帧之中,地址码表示主机发往的从机的地址,同一个485总线中最多能有255个从机地址,数据码之中包含主机对从机进行的功能命令,功能代码分成三类:公共功能代码、用户定义的功能代码和保留的功能代码[1]。数据码根据功能码的不同而改变,包含了主机的执行命令或者从机的反馈数据,CRC校验码是2个字节的错误检测码,用于让主机或从机判断收到的信息是否发生错误,增加了系统的安全和效率。

2 系统的整体设计

本系统主要由一台PC上位机,多台监控仪表下位机,以及RS-485转以太网转换器以及一个局域网环境组成,系统原理图如图1所示。

上位机PC通过现有网络环境,经过RS-485转以太网转换器后,与由下位机组成的RS485总线相连,与下位机进行数据通讯。

为了避免RS-485总线通讯竞争以及冲突,系统采用比较常用的主从通讯控制方法,即在每一个RS-485的总线系统中,每一台下位机都拥有唯一的地址码,采用的通讯方式是上位机轮询,下位机应答。

因为每一个RS-485的总线系统中,下位机的个数最多只能由255个,所以通过RS485转以太网转换器,配合建筑已有的网络环境,可以进行设备数量的扩充,并且利用已有的网络环境,可以省去大部分位RS485总线进行布线的步骤,增加系统的兼容性。

3 系统的硬件设备

本系统所需的硬件设备并不需要特别指定型号与厂家,根据实际需要,现场设备,智能电表可以根据使用者的相应情况,选择具有RS-485接口的智能电表即可。

RS458以太网转换器,采用济南有人科技有限公司的USR-TCP232-500多功能串口转以太网转换器,转换器的硬件原理图,如图2所示。可以将TCP网络数据包或UDP数据包与RS232/RS422/RS485接口数据实行透明传输,内部集成了TCP/IP协议栈,可以利用它完成嵌入式设备的网络功能,模块集成10/100M自适应以太网接口,串口最高波特率支持460800,功耗低,搭载ARMCortex-M3处理器。

4 系统的软件设计

4.1 通讯程序

本系统上位机PC采用Socket通讯方式,将符合Modbus协议的Modbus报文传给串口服务器,再由串口服务器转发到RS-485总线,最终由下位机设备接收并反馈信息,Socket连接方式为UDP连接,因为网络环境是在局域网中使用,UDP连接出错概率极低,系统开销小,传输速度大,对网络资源利用率高。

上位机使用通讯程序与以太网转换器建立起UDP连接,向RS-485以太网转换器发送Modbus协议报文,通过下位机的反应,判断下位机是否存在,确认下位机的存在后,向下位机发送信息查询命令,具体流程如图3所示,然后下位机返回反馈信息,上位机对返回的Modbus协议报文进行分析,经过报文分析以后,上位机提取出相应的数据,然后存入数据库,具体流程如图4所示。下位机程序流程如图5所示。

4.2 数据统计程序

上位机通过与下位机的数据通讯,获得了由下位机采集而来的数据,并将这些数据存入数据库,之后可以对采集而来的数据进行统计,整理,分析,本系统可运用数据统计程序,可以将这些数据归类整理,绘制成所需要的图示。

可使用JAVA编程,对数据库进行访问,提取出其中所需要的数据,绘制成图表,如分类查询以及能耗数据统计图,统计表以及相关的用户管理等。对处理后的数据用图像,表格等形式通过客户端实时显示。

5 结束语

Modbus协议是一种标准,通用的总线协议,其免费,支持多接口,帧格式简单,紧凑,通俗易懂等优点,使得其在工业现场中获得了广泛的应用,该文基于Modbus协议设计了一套建筑能耗监控系统,通过对Modbus协议,RS-485通讯,以及Socket通讯,UDP连接等分析,设计了系统硬件之间的通讯连接和程序,并给出部分程序示例。本系统对不同厂商的硬件具有较高兼容性,扩展性,不仅能完成对电器设备的能耗监控,还可拓展应用于其他智能设备,具有不错的推广前景。

参考文献:

[1] MODBUS Application Protocol Specification V1.1a[DB/OL].http://Modbus-IDA.org,2004. (下转第5194页)

(上接第5184页)

modbus协议范文5

关键词:PLC,modbus,自动化

 

1、引言

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。论文参考,modbus。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

因此,Modbus协议具有适用性广泛,使用灵活,同时还具备实时纠错等多种优点,应用在打印适配板与PLC通讯中可以自如的设定其数据格式,并有效防止打印乱码等打印故障的产生。

2、设计方法

本设计采用打印适配板作为主站,S7-200 PLC做从站的方式,由打印适配板主动读取PLC中的数据,并根据数据内容来决定打印的格式、时间、打印字符内容。

2.1 modbus通讯帧的结构

本设计采用消息帧采用RTU模式,其结构如下:

① 因其消息发送至少要以3.5个字符时间的停顿间隔开始,所以其起始位为T1-T2-T3-T4。

② 设备地址标示主机下从站的地址,如可以将从站S7-200地址 设为16(如右图)。

③ 功能代码为该消息所要实现的功能

例如:一从主设备发往从设备的消息要求读一组保持寄存 器,将产生如下功能代码:

0 0 0 0 0 0 11 (十六进制03H)

对正常回应,从设备仅回应同样的功能代码。对异议回应,它返回:

1 0 0 0 0 0 11 (十六进制83H)

除功能代码因异议错误作了修改外,从设备将一独特的代码放到回应消息的数据域中,这能告诉主设备发生了什么错误。

④从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为。这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数。

⑤当选用RTU模式作字符帧,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC的高位字节是发送消息的最后一个字节。

2.2 modbus协议的通讯周期

查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。论文参考,modbus。论文参考,modbus。

如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。

2.3 PLC modbus库初始化的设置

其中:

Mode: 输入数值1将端口0指定给Modbus协议并启用协议;将输入数值0指定给PPI,并禁用Modbus协议。

Addr:S7-200作为从站的地址。论文参考,modbus。

Baud:通讯的波特率。

Parity: 0-无奇偶校验,1-奇数奇偶校验,2-偶数奇偶校验。

Delay: 数通过将指定的毫秒数增加至标准Modbus讯息超时的方法延长标准Modbus讯息结束超时条件。

MaxIQ: 参数将供Modbus地址00xxxx和01xxxx使用的I和Q点数设为0至128之间的数值。数值0禁用所有向输入和输出的读取。

MaxAI: 参数将供Modbus地址03xxx使用的字输入(AI)寄存器数目设为0至32之间的数值。数值0禁用模拟输入的读数。

MaxHold: 参数设定供Modbus地址04xxx使用的V内存中的字保持寄存器数目。

HoldStart:即打印适配板存取V内存中保持寄存器的起始地址。设置为&VB100,而MaxHold为25,所以VB100-VB200将被打印适配板所使用,编程时需避免与其冲突。

2.4 打印适配板的控制

打印适配板会持续读取VB100-200中所储存的信息,以做出其动作判断。因此,向规定地址中写入数据,就可以控制打印系统的运行。

如将”20”送入VB125,即可启动打印板的数据记录

VD136,VD140,VD144即为数据被打印适配板所读取的地址。

打印适配板将打印报表的格式固化在打印板中,接受到数据采集结束信号以后,会将本次数据储存,并在接到打印信号以后将其打印在报表的固定位置。论文参考,modbus。

3、结束语

Modbus工业协议因其适用性广泛、简单易用,通讯较为可靠等优点,在现代自动化设备与工业控制领域得到了广泛的应用。而在传统的PLC数据打印方式中,数据受到干扰时微打无法判断接收的是否正确,经常造成打印异常,表现为乱码、微打不打印等故障。论文参考,modbus。采用Modbus协议以后,就可以有效的避免这些问题的产生,使得需严格数据保存的自动化设备的可靠性得以保证。

参考文献

[1]SIEMENSSIMATICS7-200可编程序控制器

[2]MODBUSoverseriallinespecificationandimplementationguideV1.0modbus.org

[3]华镕编著从Modbus到透明就绪—施耐德电气工业网络的协议、设计、安装和应用机械工业出版社2009

[4]中国国家标准化管理委员会基于Modbus协议的工业自动化网络规范中国标准出版社2004

modbus协议范文6

关键词: DeviceNet; ModBus; 嵌入式I/O模块; LPC2129

中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2013)11?0134?05

0 引 言

DeviceNet是一种基于CAN总线技术的符合全球工业标准的开放型现场总线通信网络,它用于控制,配置和数据采集等方面。CAN总线具有布线简单、典型的总线型结构、稳定可靠、实时、抗干扰能力强、传输距离远、布线成本低等特点。由于具备了这些特点,DeviceNet总线被广泛应用于工业自动化控制,它不仅可以接入更多,更复杂的设备,还可以为上层提供更多的信息和服务。在很多欧美国家,越来越多的系统方案设计采用DeviceNet来实现。

ModBus协议是应用于电子控制器上的一种通用语言,是全球第一个真正用于工业现场的总线协议,由于该协议的产生,使控制器之间、控制器经由网络和其他设备之间实现相互通信。ModBus协议现在已经成为一种通用的工业标准,应用该协议技术可以使不同厂商生产的控制设备连成一个工业网络,进行集中监控管理。此协议定义了一个控制器能认识使用的消息结构体,从而使用户不需要关心它们使用哪种网络进行通信。它描述了一个控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

本文主要解决DeviceNet与ModBus之间的协议转换问题。标准的ModBus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。基于DeviceNet的嵌入式I/O模块通过I/O口发送和接收数据,ModBus通过串口与嵌入式I/O模块进行通信。通过此过程完成DeviceNet与ModBus之间的协议转换问题。

1 嵌入式I/O模块的设计与实现

DeviceNet是一种上层的应用层协议,其物理层和数据链路层采用CAN总线技术,ModBus协议只是用于数据链路层上的协议[1]。这两种现场总线是异构的,因此要实现两种协议之间的通信,必须要进行协议转换。协议转换的转换过程是分层次进行的。首先把总线设备发送过来的设备逐层解包,得到需要的数据,然后再把数据按另一协议所需的方式打包,发送到相应的设备上。

DeviceNet与ModBus协议都采用主从通信模式,所以它们之间的通信只能是单向的,主站发送命令报文而从站被动接收命令报文。本设计中的嵌入式I/O模块既是DeviceNet从站,又是ModBus的主站。通过该模块可以实现DeviceNet主站的数据与ModBus从站的数据进行传输。

嵌入式I/O模块的功能是把DeviceNet格式的报文转换为ModBus的报文命令,再传给底层的ModBus设备,设备在接收到ModBus命令之后,会向报文转换模块发送ModBus格式的响应报文,最后经协议转换模块将报文转换为DeviceNet格式的报文传输给DeviceNet主站。本嵌入式I/O模块既是DeviceNet的从站实现接收主站报文并做出响应的功能,同时又可以作为ModBus的主站向其他ModBus设备发送报文并接收响应报文。

本设计采用的处理器为LPC2129,硬件结构如图1所示。它是NXP公司的32位工业级ARM7处理器,其内部集成了两个CAN控制器,在一片处理器内首先将主站端的DeviceNet协议数据转换成中间协议数据,之后转换成ModBus可以识别的协议数据。