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功能介绍
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从站将以高优先级的报文对主站响应,以此来通知主站;在其他情况下,从站都是以低优先级的报文回答主站的。可见,从站用诊断报文的方式发送数据相比其他情况,实时性要更好。
如果主站的令牌持有时间为零或负(即主站没有时间处理从站的信息),则 DP从站在主-从通讯中仍然可以用诊断报文的方式发送一个高优先级信息;这样,在任何情况下都可以保证来自 DP从站的数据至少可以以一个诊断报文的方式得以发送。这种机制保证了PROFIBUS-DP主-从通讯有很好的时间确定性。
3.4.3 服务访问点以及对应的 PROFIBUS-DP服务的实现举例
服务访问点实现也就是对应的 PROFIBUS-DP服务的实现。只要是熟练使用专用芯片并熟练掌握 PROFIBUS-DP的一些必要的知识,就可以实现所有的服务访问点。鉴于“读从站诊断信息”这项服务对于实时性和时间确定性的重要性,下面以服务访问点 60即服务“读从站诊断信息”的实现来举例说明。
在使用专用芯片 SPC3实现服务访问点 60的时候,以下问题需要重点考虑:
(1) 诊断缓冲区的结构 [3]
程序开发者向 SPC3传递诊断缓冲区的数据。在诊断缓冲区中,由程序开发者在第 1个字节(字节0)中的位0、位 1和位 2这三个位的位置分别储存 “外部诊断”位、“静态诊断”位和“外部诊断溢出”位。诊断缓冲区的前 6个字节中除了上述 3个位,其它都是固定空间;当发送诊断缓冲区的数据时,SPC3按照 PROFIBUS-DP标准预处理前 6个字节。字节6-243是程序开发者输入的外部诊断数据。
(2) 诊断处理流程 [3]
当两个缓冲区被交换时,内部 04H单元的“诊断标志”被置位,这时称“诊断标志”被激活。对于一个激活的“诊断标志”,SPC3在下一个“读写数据报文”期间,用高优先级响应数据来响应,通知相关的主站现在从站有新的诊断数据。在主站用“读从站诊断信息”报文取得新的诊断数据以后,“诊断标志” 被复位。接着程序可以查询状态寄存器中的“诊断标志”,以便发现在原有的诊断数据被交换为新的诊断数据以前,主站是否已经取得原有的诊断数据。
(3) 本文中针对现场智能设备通信软件中相应的程序设计
将“外部诊断”位设置为“0”,从系统的观点看,就可以将数据理解为状态信息。当现场智能设备中的测量参数达到某值时,将此值作为一个状态信息送往诊断缓冲区中的字节6-243,当上升一个百分比时,再送出状态信息,供系统远程监控。所以,现场智能设备通信软件设计为测量参数的状态信息可远程监控。相应的外部诊断处理程序程序框图见图3。
即使主站没有时间处理从站的信息,程序仍然可以在重要的参数超过某个值时,用诊断报文的方式发送一个高优先级信息给主站。
3.5 GSD文件编制以及与软件开发的关系
GSD文件的精确定义保证所有标准从站和所有标准主站通信 [5]。GSD文件由设备的开发者准备,并以电子数据单形式向最终用户提供。
在 GSD文件的编制过程中的重点和难点在于:除了精确地理解了 GSD文件的规格说明,最重要的是将 GSD文件和 PROFIBUS-DP通信软件中的有关参数对应起来,否则程序运行将出错,甚至 PROFIBUS-DP系统不能识别通信软件对应的从站。
通信软件的开发和 GSD文件的编制必须相互配合,有些参数必须完全一致,这样才能保证 PROFIBUS通信单元的开发成功。这些参数包括:是否支持冻结模式,是否支持同步模式,是否支持传输速率的自动识别,是否支持改变从站地址,在 CLEAR模式是否接收数据消息,诊断数据的最大长度,参数数据的最大长度,用户参数数据的长度,用户参数数据。
4 总结
在深入剖析 PROFIBUS-DP状态机和 PROFIBUS-DP服务流程的基础上,开发了应用于现场智能设备的包括硬件、通信软件和电子设备数据文件的总线接口卡。
创新点在于:在满足 PROFIBUS-DP主-从通讯有很好的时间确定性的基础上,实现了能满足 PROFIBUS-DP主-从通讯有很好的时间确定性的服务访问点SAP60,并且实现了 SPC3其它的服务访问点,编制了与 PROFIBUS-DP通信软件完全匹配的电子设备数据文件。本文中开发的接口已经应用于多个现场智能设备。
上一篇:基于RS485接口Modbus协议的PLC与多机通讯
下一篇:基于PROFIBUS-DP的FCS诊断软件的开发
推荐阅读最新更新时间:2024-03-30 21:31