现场总线是一种应用于生产现场,在现场设备之间、现场设备与控制装置之间实现双向、串行、多节点数字通信的技术。现场总线以其开放性、可靠性、实时性和灵活扩展等优势已成为自动控制领域的热点。
PROFIBUS是德国于上世纪90年代初指定的国家工业现场总线协议标准,在现场总线的应用中占有相当大的比例,并一直占据着先锋地位。PROFIBUS现场总线技术是开放式、数字化、多点通信的底层控制网,以现场总线为纽带,可以把单个分散的测控设备变成网络节点,形成底层现场智能设备与高层的系统信息共享,满足工业控制体系分布化、扁平化和智能化的发展要求。由于PROFIBUS适用领域的广泛性(它既适用于工业自动化中离散加工过程,也适用于流程自动化中连续和批处理过程),以及它的成熟性、先进性和标志性,开发其从站,具有重大的意义。结合现场总线技术的发展现状,开发了带PROFIBUS-DP接口的电动执行机构。
一、系统总体设计
电动执行机构又称电动执行器、电动头,它是一个执行机构,是通过控制中心给出的控制信号,来控制调节阀(或者其它)的开度。PROFIBUS2DP用于传感器和执行机构的高速数据传输,它以德国标准DIN19245的第1部分为基础。根据其所需要达到的目标对通信功能加以扩充,DP的传输速率可达12Mb/s,一般构成单主站系统,主站、从站间采用循环数据传输方式工作。根据用户的实际情况和需求,开发PROFIBUS-DP接口卡,以方便执行机构接入总线通讯网络。DP卡与主站之间以RS485总线的形式进行数据交换。原理框图如图1所示。

图1 系统总体设计框图
从站由DP卡和主板(电动执行机构)构成。DP卡的核心部分为单片机STC89C51、协议芯片SPC3和带光电隔离的IL485芯片。SPC3是PROFIBUS-DP专用的协议芯片,负责把主站送来的数据拆包,送往单片机,同时把单片机送来的数据打包,送往主站;STC89C51是主板与SPC3的桥梁,负责初始化和协议转换。同时,DP卡也保留了开关量控制和模拟控制部分,满足用户4~20mA模拟控制的需求。该方案的优点为DP卡是一块独立的印刷线路板,在接入PROFIBUS总线网络时使用。
二、系统硬件设计
在硬件设计上,采用西门子的SPC3协议芯片,DP卡设计中最主要的是STC89C51RC微处理器与SPC3的连接。协议芯片SPC3相当于处理器扩展的一个外部RAM,SPC3内部有地址锁存电路,AB5~AB10接地。通过13位地址线和8位数据线进行数据交换,在此电路中,用到AB4~AB0这5位地址线和DB7~DB0这8位数据地址复用总线。DB7~DB0可以产生低8位的地址,高5位由AB4~AB0产生。可寻址范围为0000H~1FFFH。满足SPC3内部的1.5K的空间的寻址(1000H~15FFH)。由于软件开发采用汇编语言编程,所以STC89C51内部的存储空间足够满足设计要求,无需再接外部RAM,如果采用高级语言进行软件设计,则需要考虑外部RAM。
SPC3与IL485采用串行通信,用于通信的4个引脚分别为XCTS、TXD、RXD和RTS。其中XCTS为清除发送信端,此信号低电平有效,表示允许SPC3发送数据,所以此引脚接低电平。RXD和TXD分别表示串行数据的接收和发送端口,RTS接RS485驱动器的输出使能端口,为SPC3的请求发送信号[2]。设计中,采用IL485作为总线驱动器,它的一侧与D型插座连接,另一侧与SPC3连接。由于IL485本身带有光耦,故无需再通过光耦电路。其波特率可达到35M,远远满足设计的需要,所以IL485常用来作为PROFIBUS的传输驱动使用。当信号在总线上传输时,由于阻抗不连续会形成信号反射,导致传输信号畸变。因此,必须在传输线末端加电阻来消除阻抗不连续。所加电阻其值应尽量接近传输线的特征阻抗。而且,当总线上没有其它站处于发射状态时,发射器就禁止,使其处于高阻态,此状态下总线处于“1”。设计时在D型插座的引脚上分别加一上拉电阻和一下拉电阻,使所有的接收器总是处于允许状态。因此,在空闲状态下,每个接收器收到的都是“1”。PROFIBUS2DP总线电缆一般采用屏蔽双绞线,有助于改善电磁兼容性。特征阻抗值与导线的长度无关,一般为100~165Ω[3]。EN50170标准推荐2种类型的电缆:类型A和类型B,如表1所示。本设计采用类型A。
表1 类型A和类型B的电缆比较

三、系统软件设计
软件的设计主要是完成STC89C51自身和SPC3的初始化,启动SPC3,进行数据的接收和发送(这里的接收和发送有2部分,一是单片机与SPC3之间的数据传递,二是单片机与主板之间的数据传递,即从主板读入数据,然后传递给SPC3,SPC3协议芯片对数据进行处理,发送到PROFIBUS2DP总线上由主站接收),还有完成处理诊断事务、中断的处理、用户接口数据的处理等。程序主循环流程如图2所示[4]。

图2 DP卡程序主循环流程图
由于STC89C51有内部扩展,而单片机要访问外部RAM,即协议芯片SPC3,故在单片机初始化完成之后,要禁止内部扩展。
通信主要包括2个部分,主站与DP卡和DP卡与主板。主站与DP卡采用主从方式通讯。在上电后对单片机和SPC3都进行了初始化,之后程序进入主循环,主循环主要是从站和主站进行数据交换,诊断变化的处理。DP卡与主板之间通过串口进行通信。DP卡或主板在发送报文前,要先送握手信号,并且在报文发送过程中,握手信号一直有效,直到报文发送完成才可以取消握手信号。DP卡送给主板的握手信号高电平有效,主板送给DP卡的握手信号低电平有效。通过软件主要实现4个功能,协议功能如表2所示。1号功能(F1)为参数报文的发送与响应,2号功能(F2)为地址的发送与响应,这2个报文是通过中断子程序处理进入报文数据交换子程序。3号功能(F3)为动作命令的发送与响应,4号功能(F4)为状态发送与响应,这2个数据的传输都在主循环程序中用查询中断进入数据交换子程序。
表2 协议功能

四、抗干扰部分的设计
为提高电动执行机构的抗干扰性,DP卡从硬件和软件上做了如下工作:
(1)做PCB线路板时,应考虑接地抗干扰的问题,见参考文献[5]中的“PCB板的接地问题”。
(2)输入/输出通道上采用电气隔离,如采用光电隔离的IL485芯片。电源的电气隔离,采用IB0505LS这种5V到5V的隔离转换电源。
(3)采用CD4538芯片做外部看门狗,如图3所示,此接法是上升沿触发的可重触发单稳态电路。单片机STC89C51的P1.4口设计成输出口,由STC89C51的CPU向看门狗电路发送喂狗信号—正脉冲,在2个正脉冲间隔内,P1.4保持为低电平(此功能要结合软件才能实现)。当系统正常工作时,每隔0.5s来一个正脉冲,芯片10脚的信号始终保持低电平,从而使看门狗电路对单片机不起作用。若由于程序跑飞或进入死循环,则CD4538得不到P1.4口送来的喂狗信号,芯片的10脚就会输出一个脉宽为5ms的高电平信号,使单片机复位。

图3 看门狗硬件电路图
五、PROFIBUS2DP通信实验
实验采用单主站,2台从站的方式进行通讯。选用SIEMENS公司S72300PLC系列CPU315-2DP,配置一个通信处理器CP34225作为PROFIBUS-DP系统的主站,DP卡与电动执行机构为从站。在计算机上安装SIMATICSTEP 7V5.2软件,使用SIEMENS的GSD2EditorV211(可以从PROFIBUS用户组织的网站下载http://www.profibus.com),建立从站的GSD文件,可以减少编写GSD的周期,并能保证文件格式的正确性,然后下载到模块中,如图4所示。理论上波特率在9.6kb/s~12Mb/s,但在实际应用中,要考虑传输距离和抗干扰的问题。一般工业上采用19.2kb/s,波特率的高低直接影响着传输距离。若传输距离不够,可加中继器(最多可以加9个)。

图4 组网测试时的硬件组态架构

图5 通过PLC操纵执行器和获取执行器状态数据的数据表界面
如图5所示,通过此界面,可以同时操作2台执行器,并且能实时监测反馈状态,及时了解执行器的运行情况。在实验中,执行了动作到全开、全关、到指定位置及立即停止4个命令,达到了预期效果。在状态反馈中,常见的综合报警如电源掉电、电源缺相、阀位溢出、开关过矩、电机过热和电机失速等,都能在实验中准确反应出来[8]。
六、结论
本文介绍了适用于电动执行机构的PROFIBUS-DP接口卡,成功地接入PROFIBUS总线网络,达到了控制和反馈的预期目标。实验证明STC89C51单片机的性价比较高,能够满足DP卡的通信要求。开发过程也证明利用SPC3专用芯片进行从站开发,能使开发简化,节省时间和人力。由于工厂工作的连续性,有必要进一步开发冗余的DP卡,以保证通信的可靠性,同时也便于检修。目前来说,分散控制系统(DCS)已经比较成熟,而现场总线控制系统(FCS)自身还存在一些局限性,但是,从长远来看,总线在经济性、精确性、开放性、灵活性和可维护性上,都有很大的优势。因此,开发总线产品具有广阔的市场前景。
