郝 莉
1 引言 现场总线是当今自动化领域技术发展的热点之一,现场总线技术自70年代诞生至今,由于它在减少系统线缆,简化系统安装、维护和管理,降低系统的投资和运行成本,增强系统性能等方面的优越性,导致了自动控制领域的一场革命。它是应用在生产现场,在微机化测量控制设备之间实现双向、串行、多点数字通讯的系统,在制造业、流程工业、楼宇等方面的自动化系统中具有广泛应用前景。现场总线有以下特点:(1)开放性。(2)可互操作性与可互换性。(3)全数字化。(4)双向通信。(5)智能化的现场仪表。 自80年代以来,有几种现场总线技术得到发展,逐渐形成其影响。在国际标准中,也出现了协调共存的局面,目前的IEC61158中就已存在8种总线(ControlNet, Foundation Fieldbus H1, Foundation Fieldbus HSE, Interbus, P-Net, PROFIBUS, SwiftNet及WorldFIP)。 2 PROFIBUS-DP基本特性 PROFIBUS现场总线是欧洲首屈一指的开放式现场总线技术,是成熟技术,已被全世界所接受。PROFIBUS-DP是PROFIBUS三个兼容版本之一,它是经过优化的高速、廉价的通信系统,专为自动控制系统和设备级分散I/O之间通信设计,用于分布式控制系统的高速数据传输。PROFIBUS协议结构以OSI/ISO作为参考模型,DP为了数据传输的快速和有效性,使用了第一、二层外加用户接口。PROFIBUS-DP的主要应用区域在现场层,响应时间从几百微秒到几百毫秒,它具有广阔的数据传输范围(从9.6Kbps到12Mbps),传输的数据容量为每个报文多达244字节,它不需要改变硬件就有低速和高速的传输速率。 3 PROFIBUS-DP的报文结构与从站状态机 3.1 PROFIBUS-DP的报文结构 PROFIBUS-DP采用异步不归零码的编码方式,传输的空载电平“1”,一个空载状态至少33Tbit(同步时间),在每个请求报文发送前必须保证此时间。在单个字符间所有数据传送是无缝的。报文通讯的基本顺序及报文结构如图1所示。 在PROFIBUS-DP通讯中有四种报文格式,以SD标识。SD为起始定界符,用于区分不同种类的报文,SD1为请求数据报文,SD2用于可变数据长度报文,SD3用于固定长度报文,SD4用于令牌帧。DA表示
 图1 报文通讯的基本顺序
目的站地址,SA表示源站地址,FC为功能控制码,DU表示相应的数据单元,FCS为校验码,ED为终止定界符。在SD2报文的DU中包含服务存取点SAP。PROFIBUS-DP用服务存取点SAP标明不同的数据存取服务,它提供有以下的服务存取点: SAP54:用于主-主通讯; SAP55:用于以软件方式设定从站站地址(Set_Salve_Add); SAP56:读输入数据(Read_Input); SAP57:读输出数据(Read_Output); SAP58:广播报文,全局控制(Global_Control); SAP59:读组态数据(Get_Cfg); SAP60:读诊断信息(Slave_Diag); SAP61:传送参数数据(Set_Prm); SAP62:检验组态数据(Chk_Cfg); 缺省SAP:用于数据交换(Data_Exchange)。 4 PROFIBUS-DP从站的状态机 PROFIBUS-DP从站的状态机很好地说明了DP从站是如何工作的,图2表示经过简化了的从站状态机,椭圆表示状态机的状态,垂直箭头表示从一个状态到另一状态的转换。
 图2 简化的从站状态机
DP主站若要和DP从站建立循环数据通讯,必须经历以下几个状态: ― 请求诊断(Slave_Diag1); ― 参数化从站(Set_Prm); ― 检查从站组态(Chk_Cfg); ― 再次请求诊断(Slave_Diag2)。 即:DP主站若想与DP从站进行循环数据通讯,主站必须检查从站的准备情况,首先DP主站向DP从站请求诊断数据,从站处于Slave_Diag1状态,如果从站用诊断数据响应主站且该从站没有被其他主站占据,DP主站将对该从站设置参数,从站进入Set_Prm状态,以短应答E5H响应主站报文,接着主站传送组态数据,从站进入Chk_Cfg状态,同样以E5H响应主站报文,另一方面,从站对主站传送的参数数据、组态数据分析、比较、判断,注册诊断信息的相应位;然后主站再次向从站请求诊断数据,确认参数化和组态正确与否,若正确且从站已经做好了进入数据交换的准备,则进入循环数据交换阶段,若参数化和组态数据有误,则主站重新请求诊断,从站进入Slave_Diag1状态,若从站数据未准备好,则从站一直处于Slave_Diag2状态接受主站查询,直到准备就绪。这便是DP主从站间的建立通讯的过程。 进入数据交换阶段后,DP主从站间主要进行I/O数据的交换,若从站有诊断信息,会利用数据交换的机会以高优先级报文的形式通知主站,主站会临时使从站进入诊断状态(Slave_Diag2),然后再恢复数据交换(Data_Exch)。 另外,在进入数据交换阶段后,主站也可以发参数化报文,改变从站用户参数的设置;主站也可以请求诊断数据、组态数据、输入输出数据。 5 PROFIBUS-DP从站的软件实现方案 PROFIBUS-DP从站的实现可采用专用协议芯片,称为硬件实现。文中给出的DP从站实现方案采用软件方式,即本软件实现方案采用51系列单片机,集成PROFIBUS-DP从站协议,外加总线接口及驱动装置,实现DP从站,波特率可达500Kbps,满足大多数工业应用领域,实现了PROFIBUS-DP从站智能I/O模块的自主开发。 该软件实现的DP从站,可自动适应网上波特率,站地址由拨码开关设置,不支持软件上对站地址的修改。 采用8051单片机集成DP从站协议,软件的核心部件是从站自动机。从站是被动站,只是响应主站的请求,而不向主站请求数据。从站接收到主站的请求报文后分析报文类型,根据报文类型做相应的数据处理,在相应的自动机上行走,响应主站的请求。按照从站自动机,从站要经历诊断、参数设置、组态检查、再诊断几个阶段,如果上述几步完全正确,从站进入与主站的循环数据交换,否则,重复自动机的前四步,直到初始化完全正确。

图3 数据管理子程序流程图
在主程序中主要完成初始化工作、对网上波特率的适应,也即查找网上波特率、采集处理输入输出数据,通讯状态监测等工作。采集处理输入输出数据是主程序的主要工作,通讯状态监测定期查看通讯状态,在通讯出现故障时,要及时复位单片机。在适应网上波特率后,开串口中断,接收总线数据。在串口中断服务程序中主要的工作是接收总线数据、分析管理数据,维护从站自动机并将相应的数据发送到总线上。其核心部分数据管理子程序流程图见图3所示。 6 结语 文中详细阐述了PROFIBUS-DP的工作方式,介绍了软件实现DP从站所需具备的一些基础知识,并给出了软件主要部件的程序流程图。由于从站的实现只需要PROFIBUS-DP协议的一小部分,因此实施起来特别经济。采用软件方式实现DP从站,是一种简单有效的方法,用它代替专用协议芯片,可降低开发成本,实现自主开发。
参考文献: [1] 阳宪惠. 现场总线技术及应用[M]. 清华大学出版社, 1999, (6). [2] TechnicalBrochure-v99[S]. www.profibus.com 1999-6, (17). [3] Manfred Popp. The Rapid Way to PROFIBUS-DP[R]. Germany PROFIBUS Interface Center/Lab. 1997,(23). [4] Profibus Specification (En50170)[S]. www.profibus.com 1998-3, (122).
|