1 引言
现场总线被誉为自动化领域的计算机局域网,是自动化领域的研究热点[1]。PROFIBUS-DP是应用在现场自动化仪表和设备领域的一种主要的现场总线并且已经成为国际电工委员会制定的国际标准之一(IEC61158 TYPE3)和中国国家标准(GB/T 20540-2006)。现场总线技术是电子技术,通信技术,智能仪表技术和自动控制技术相互结合的产物[2]。
PROFIBUS-DP接口的开发包括硬件部分、软件部分和电子设备数据 GSD文件部分。
2 基于 PROFIBUS-DP的自动化系统的构建
因为是开发 PROFIBUS-DP接口,所以总体结构较为简单和实用。总体体系结构如图 1所示。主站和从站通过 PROFIBUS专用网线组成一个单主站 PROFIBUS系统。主站由计算机和SST公司的总线卡 5136-PFB-PCI组成;现场设备(图中是智能控制器)和本文开发的从站总线接口卡组成 PROFIBUS-DP现场智能设备,作为 PROFIBUS-DP从站。图中的智能控制器、变频器和泵共同构成闭环系统。本文重点介绍总线接口卡的开发。
3 PROFIBUS-DP接口开发重点和难点在于:实现状态机和服务访问点。
3.1开发方案分析、比较和和选择 利用单片机的方案需要理解协议的大部分细节,实现的 PROFIBUS-DP站的传输速率受单片机晶振的限制,根本无法达到最大传输速率12Mbit/s。
通信专用芯片集成了 PROFIBUS-DP协议和状态机,并且给出了具体的服务访问点;使用专用芯片开发 PROFIBUS-DP总线接口卡,不再需要考虑的协议大部分细节,重点是熟练使用专用芯片。
与利用单片机的实现方案比较,使用专用芯片可大量地节约开发时间和成本,传输速率可以达到12Mbit/s。因此,本文使用专用芯片 SPC3进行总线接口卡的开发。
3.2 SPC3功能介绍 [4]SPC3基本上集成了完整的 PROFIBUS-DP协议。 SPC3集成有 1.5K字节的RAM,方式寄存器,状态寄存器,中断控制器,看门狗定时器(保护监控定时器)和各种缓冲区;能够自动地识别 9.6K到 12M的波特率。微顺序控制器控制着 SPC3整个处理过程。总线定时器直接控制串行总线上的总线时间。
SPC3包括如下的服务访问点(服务):缺省SAP(读写数据交换),SAP55(改变站地址),SAP56(读输入),SAP57(读输出),SAP58(向 DP从站发控制命令),SAP59(读组态数据),SAP60(读从站诊断信息),SAP61(发送参数设置数据),SAP62(校验组态数据)。
3.3硬件设计主要是选用 RS485芯片和光耦芯片,如果从站对传输速率的要求可以低于 12M波特率,那么有性能指标稍低的 RS485芯片和光耦芯片。另外本文开发的总线接口卡设计为可以选择双口 RAM或者 RS232接口将总线接口卡与现场设备连接。
3.4软件设计
3.4.1 PROFIBUS-DP状态机的实现
软件设计依据是 SPC3中集成的 PROFIBUS-DP状态机 [4],状态机用来描述 PROFIBUS-DP站在每种情况下的行为;如图 2所示。
整个程序采用了结构化、模块化的方法,依据 PROFIBUS-DP状态机提供的流程进行编写。按照对实时性的不同要求,各个服务访问点分别采用查询或者中断方式来实现。主函数主要是完成必要的初始化工作和用查询方式实现服务访问点。中断函数,主要是用中断方式实现服务访问点。
3.4.2 PROFIBUS-DP系统主-从通讯中的实时性和时间确定性
令牌是在主站之间传递总线控制权的一种特殊报文。当某个主站得到令牌时,它将在一个规定的时间段内获得总线控制权,在这段时间内该主站可依照与主站或从站的关系表和所有的主站或从站发送所需要发送的帧,当该主站的控制时间结束时,它就将令牌传递给下一个主站[3]。
在 PROFIBUS-DP主-从通讯中,如果在从站中有新的诊断信息,则在数据交换模式下,DP从站将以高优先级的报文对主站响应,以此来通知主站;在其他情况下,从站都是以低优先级的报文回答主站的。可见,从站用诊断报文的方式发送数据相比其他情况,实时性要更好。