ProfibusDP/ Modbus协议转换模块研究与设计

时间:2022-10-11 06:55:20

ProfibusDP/ Modbus协议转换模块研究与设计

摘 要:当今现场总线种类众多,至今仍未形成统一标准,这给不同厂商的设备互联带来了诸多不便。针对该种情况,研究并设计了Profibus-DP/Modbus协议转换模块,通过该模块可以将Modbus设备无缝接入Profibus总线系统。模块以S3C2440A为核心,采用“MCU+ASIC”的硬件设计来保证传输的可靠性,电气隔离接口提高了系统的抗干扰性;同时,在程序设计方面,通过单缓冲等一系列方法来保证通信的实时性。实验表明,该模块在有效降低成本的同时,具有良好的实时性、可靠性及抗干扰性,具有进一步研究推广的价值。

关键词:现场总线;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.

[11] 莫太平,吴正高,.基于Profibus-DP的智能从站接口设计与应用[J].自动化与仪表,2012(9):29-33.

[12] 刘建昌,于洪磊,辛红,等.S7-300/400 PLC工业网络通信技术指南[M].北京:机械工业出版社,2009.

上一篇:面向课群的教学资源管理系统设计与实现 下一篇:基于MOOC的翻转课堂教学实践探讨

文档上传者
热门推荐 更多>
精品范文更多>