基于变频器的一种协议转换接口设计
随着工厂自动化技术的发展,基于Profibus—DP现场总线与Modbus协议的通信技术在国内外得到了广泛的应用。然而要实现两者之间数据转换却较为困难,原因是实现两者之间数据转换的产品相对较少。本文针对采用Modbus RTU协议通信的变频器,提供了一种Prnfibus—DP现场总线与Modbus协议之间转换的通信接口,主要阐述了该接口的软硬件设计方案,并重点介绍了实现通信接口可靠性与实时性的方法。实验结果证明了该设计方案的可行性。 随着工厂自动化技术的发展,现场总线技术已经得到广泛的应用。其中过程现场总线Profibus(Process Fieldbus)是一种面向工厂自动化、流程自动化的国际性现场总线标准,以其灵活性、可靠性以及高性能价格比等优点广泛应用于制造业自动化、过程自动化、楼宇自动化以及交通电力等领域。Profibus包括Profibus-DP,Profibus-FMS等系列,其中用于设备级控制系统与分散式 I/O通信的Profibus—DP是市场占有率领先的总线技术,它是世界上仅有的几个开放式现场总线标准之一,也是我国工业自动化领域行业标准中为数不多的现场总线标准之一。 Modbus协议是广泛应用于电子控制领域的一种现场总线协议,其免费开放性受到了很多商业用户的亲睐,成为全球最为流行的现场总线协议之一。它支持多种电器接口,如RS-232,RS-485等。Modus协议包括ASCII(美国信息交换码)、RTU(远程终端设备)两种。许多工业设备,包括 PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。 我国对于Profibus-DP技术的应用和研究主要以系统集成和工程应用为主,对于实现Profibus—DP与Modbus之间数据转换的产品相对较少,且被一些公司垄断,价格昂贵,针对变频器领域的具体应用的产品更是少之又少,对于不具备DP通信能力的变频器推广与应用形成了瓶颈。 因此,目前迫切需要开发出一种装置,可以实现采用Modbus通信协议的变频器与控制系统中的Profibus—DP主站之间进行通信,使该类变频器具有Profibus-DP通信接口。 1 协议转换通信接口硬件设计 1.1 协议转换通信接口总体结构框图 图1是针对变频器的Profibus—DP与Modbus协议之间转换的通信接口总体结构框图,主要包括主控制器、SPC3通信单元、光耦隔离电路、RS-485驱动电路、5 V隔离电源、用户接口电路及相应的外围电路。 1.2 协议转换通信接口硬件电路设计 如图2所示,协议转换单元中的主控制器采用PHILIPS公司的P89C51RD2HBBD单片机,主要用于控制Profibus-DP 协议芯片SPC3收发DP主站数据,并通过执行P89C51RD2HBBD单片机相应的协议转换程序,将DP数据转换为Modbus数据发送给变频器用户端;通过用户接口电路也可将变频器返回的数据信息通过SPC3通信单元传送给DP主站;另外,在协议转换过程中,由于变频器端有4种不同的波特率,分别为 19 200bps,9 600 bps,4 800 bps,2 400 bps,而对于Profibus—DP其传输速率最高可达到12 Mbps,为防止数据在传输过程中可能产生丢失的情况,所述协议转换单元另一重要功能即解决DP与Modbus协议在转换过程中出现的通信速率不匹配问题:为实现变频器与主控制器之问具有相同的传输速率,主控制器的两个I/O口通过用户接口单元与变频器连接,在协议转换单元开始工作时,主控制器通过此接口获得变频器发送的波特率选择信号,依此设置相应的异步串行通信的波特率,使变频器与主控制器的传输速率一致。 协议转换单元中的Profibus—DP协议芯片SPC3是Siemens为智能从站开发的一款Profibus专用通信芯片,该芯片集成有完整的DP协议,能自动检测9.6 Kbps到12 Mbps范围的波特率,内部集成有1.5KB的RAM。该芯片是专为循环MS0和非循环的MS1数据交换(即Profibus DP-V0和DP-V1)设计的。利用此芯片只需要极少的外部器件就可以实现一个Profib us的站点;在本通信接口模块中,其8根数据总线、11根地址总线以及相应控制总线分别与协议转换单元中的主控制器相连;另外,SPC3芯片的数据发送信号TXD,数据接收信号RXD以及发送使能信号RTS与RS-485驱动电路相接;SPC3的外部时钟接口有24 MHz和48 MHz两种可选,本设计采用48 MHz的有源晶振,为SPC3提供时钟信号。另外,SPC3通过对48 MHz的时钟信号四分频为主控制器提供12 MHz的工作时钟。 所述RS-485通信单元,实现了本接口通信装置DP从节点的物理层功能,其中,为避免总线信号受到DP从站设备的干扰,总线A、B数据信号线接口采用50 M波特率的光耦HCPL 7101隔离,RTS信号线采用10 M波特率的光耦HCPL0601隔离;此外,为防止设备启用时,RTS信号高电平占用总线而引起总线系统错误,HCPL7101输出端先经过反相器74HC132在接入总线;另外,对于光耦隔离电源本接口设计采用芯片ADUM5000,ADUM5000为2.5 kV隔离DC/DC转换芯片,其电源输入为5 V或3.3 V,输出5 V或3.3 V;本设计中所选ADUM50 00的输入输出所选均为5 V,其中输入端电源是由变频器通过用户接口提供,其隔离出的5 V电源为RS-485驱动电路以及光耦的后级供电。 2 协议转换通信接口软件设计 2.1 主程序流程 如图3所示,主程序流程:首先初始化SPC3,由DP主站配置相应的组态报文以及参数报文,同时初始化P89C51RD2HBBD单片机的异步串行通信接口;在SPC3完成初始化后,即可与DP主站进入数据交换状态,等待主站发送命令;若主站有数据输出,单片机取得数据存入输出数据缓冲区(相对于主站),如果缓冲区无溢出,调用Modbus协议程序,把数据封装为Modbus帧格式,通过串口传送给变频器端。如果输出缓冲区有溢出,产生外部诊断,在DP主站下一次轮询从站获取诊断报文时,发送给主站,由主站给予处理。变频器端在接收到DP主站发送的命令后,返回响应数据,单片机通过串口获取该数据,并存入输入数据缓冲区(相对于主站),若输入缓冲区无溢出,存入SPC3数据缓冲区,等待轮询,与主站交换数据。若有溢出,产生外部诊断,在DP主站下一次轮询从站获取诊断报文时,发送给主站,由主站给予处理。 2.2 关键技术研究——可靠性与实时性 在协议转换过程中,由于变频器端有4种不同的波特率,分别为19 200 bps,9 600 bps,4 800 bps,2 400 bps,而对于Profibus—DP其传输速率最高可达到12 Mbps,两者的通信速率并不完全匹配,为防止由于DP主站通信速率相对变频器较高而致使发送的控制命令信息被覆盖掉,在P89C51RD2HBBD单片机中开辟输出双缓冲区,即协议转换单元接收DP主站发送数据时,先将其存储在第一个缓冲区,待数据转送给变频器后,立即清空该缓冲区,并置位第一个缓冲区的空标志位,等待下一次数据存储,在下次数据到来时,首先查看两个缓冲区的空标志位,把数据存储到已经清空的缓冲区中,再通过协议转换程序处理后及时发送至变频器,通过该双缓冲区从而避免数据信息被覆盖掉的可能性,同时,为防止在一些特殊情况下,比如DP通信速率达到最高,而变频器数据传输速率设置为最低,可能导致双缓冲区溢出而丧失避免数据信息被覆盖的功能,可利用SPC3通信单元产生数据溢出用户诊断报文,发送至DP主站,主站通过读取诊断信息获知产生错误原因,并作出相应处理。对于变频器侧数据传输速率远远大于DP通信的波特率时,在单片机中开辟输入双缓冲区,采用同样的方式达到通信接口数据传输的可靠性与实时性。 |