基于FF协议的智能阀门定位器通信接口的开发

导语:根据智能阀门定位器总线化的要求,开发了基于FF协议的通信接口,阐述了双处理器结构的OEM开发思想,给出了实现FF通信的详细步骤和开发工具。

摘  要:根据智能阀门定位器总线化的要求,开发了基于FF协议的通信接口,阐述了双处理器结构的OEM开发思想,给出了实现FF通信的详细步骤和开发工具。经测试,阀门定位器实现了FF总线通信功能,证明了开发方案的可行性。
关键字:现场总线   基金会现场总线   通信接口   圆卡   阀门定位器

1   引言
    基金会现场总线(FF)是在过程自动化领域得到广泛支持和具有良好发展前景的现场总线技术。它分低速(FF-HI)和高速(FF-HSE)两部分,并且均被现场总线国际标准IEC61158所采用。由于FF协议把通信和控制两大部分功能结合在一起,因此协议本身的体系结构非常复杂。从实现方面来说,虽然FF协议本身是公开的,但是它并不涉及协议的实现,因此有许多有关实现的工作要做。
本文讲述了FF-HI总线智能阀门定位器的通信接口的开发,对于4-20mA设备或者智能设备的基金会现场总线通信接口的开发,有一定的参考价值。

2   总体设计
2.1  开发方案
    在对不同的现场设备开发思路进行分析、比较的基础上,采用了双处理器(CPU)结构的原始设备制造商(OEM)开发方案,即智能阀门定位器的硬件部分主要由仪表卡和圆卡构成。其原理结构如图1所示。

图1  FF总线智能阀门定位器原理结构图



    仪表卡采用MSP430单片机做主芯片,实现智能阀门定位器的初始化、阀位反馈、报警、显示等基本功能,这部分软硬件的开发已经完成;通讯圆卡为数据传输和控制部分,需要完成现场总线的通信和各种控制算法,本设计使用经认证的通讯圆上学简化了圆卡的硬件开发,只需完成仪表卡CPU与圆卡CPU之间的通信接口、圆卡和FF总线通讯和设备功能块的调用等功能的软件开发。

2.2  开发工具
    本文采用了Fielbus Inc公司提供的现场设备开发工具包进行通信接口的开发。此工具包包含了设备开发和组网运行的必要元素,使用户不必对低级现场总线协议有深入的了解,就可以方便地设计出新的总线产品。该套开发工具包括:圆卡、串行编程子卡、PC机接口卡、圆卡编程工具、FF-HI通信栈软件、FI功能块应用软件、电源、电缆及工具。

    HI现场总线圆卡是开发FF兼容设备的硬件接口,采用总线供电,可接口到符合FF-HI协议的网络中。圆卡使用MC68331嵌入处理器和可编程的128KB×16闪存运行通信栈接口库、功能块壳和用户应用程序。同时有一个128KB×16SRAM提供易失性存储器,用来存储总线管理信息库参数和块参数。圆卡与仪表卡测量部件的连接通过串行编程子卡实现。子卡可以执行DIO、A/D、D/A功能,通过2×21针WI插口与圆卡连接。

3   通信方案的设计
    本文采用串行通讯接口方式实现圆卡与仪表卡的通讯。其中,圆卡担当主叫方,发起通讯,仪表卡担当从机,响应圆卡的通讯。圆过串行函数完成呼叫、发送和接收数据的功能,仪表卡采用串行中断方式实现串行通讯处理。

    串行函数在圆卡和串行设备之间提供一个传递数据的通用方式。它和用于与串行设备进行通讯的通信栈协议及功能块壳的调用功能相互独立。对于使用三线串行通讯方式的通讯,串行函数提供了两种数据格式,其中通用串行格式为通用主/从命令/响应串行协议,需要用户对命令及响应数据包进行编码和解码。

    串行函数可设置为连续发送/接收一个定义的命令序列,该序列由nihDefineSequence和nihSendCommand函数定义。nihDefineSequence定义发送给设备的序列中的命令行数,nihSendCommand定义序列中的命令。一个命令是一个串行的相互动作,它包括一个发送、一个接收或两者。当完成对序列中最后一个命令的定义后,序列按照命令定义的顺序发送所有的命令。使用nihDefineSequence或nihSendCommand函数取消序列的运行。使用函数nihDefineSequence和nihSendCommand可修改命令数据并保留命令序列中最后的响应数据。直接调用nihPutData,设置发送缓冲器中要改变数据的当前值,也可调用nihGetData,保留序列最后一次执行时,从串行设备接收到的数据包。调用nihsetparam函数可设置圆卡的通讯参数,如命令重发次数、前导码数目、超时、串行协议类型、波特率、校验类型、停止位。

4   圆卡应用开发
    圆卡执行NI专门为FF设计的且通过了FF一致性测试的通讯栈软件,可完成链路主设备LAS和基本设备的通讯任务。此外,圆卡执行NI功能块壳软件,该软件为开发FF所需的块提供一个应用程序接口。圆卡应用的开发步骤如下。

4.1  写设备模板,并将设备模板转换为C代码
    设备模板是一个ASCⅡ码文件,包括设备辩识、设备中的物理快和功能块,以及设备的参数等内容。模板文件包括若干部分,每一部分均由一关键字及其描述组成。次序如下:VFD,UDER_TYPE,BLOCKS,TRENDS,VARLISTS。根据阀门定位器的功能,本设计选用了PID功能块和AO功能块。

    设备模板由设备代码生成器转换为C代码。设备代码生成器codegen.exe的命令行为:
    codegen devicetemplate.dat outputfile.c nifb.sym其中devicetemplate.dat为设备模板文件名,outputfile.c为转换完的输出文件名。

4.2  写用户应用文件
    用户应用程序为实现定位器功能的主要部分。它利用功能快壳所提供的与FF通讯栈的高级接口,处理有关网络通讯的参数读写,完成总线通讯功能。并通过注册回调(callback)函数和执行功能快具体算法实现FF标准功能快功能。用户应用程序的程序框图如图2所示。

图2  用户应用程序框图



    (1)写功能块的回调函数,userStart函数以及注册回调函数。
    回调函数完成以下两种功能:执行功能块算法以及处理报警确认和辩识。当功能快被调度执行时,功能块壳调用开发设备所定义的回调执行函数,在回调执行(CB_EXE)函数中编写算法以完成需要功能块执行的动作。CB_EXE函数的定义格式为:void(CB_EXE(HDL_BLOCK hBlock)。

    userStart函数在通讯栈启动时被自动调用,可以初始化功能块壳并通过它注册开发设备的Callback函数。功能快应用进程使用注册函数以通知功能块壳用户应用的特性,包括用户定义的数据类型、物理块、变送块、功能块、块参数等。在userStart中调回用shRegistCallback函数注册Callback函数。

    (2)指定系统时钟和RAM大小,定义和安装中断处理器。
    在圆卡应用程序和源代码中声明并定义两个全局变量: SystemCleckSpeed和Ramsize,其初始化有效值分别为: SystemCleckSpeed,选择1代表4MHz的时钟;Ramsize,选择2代表256KB。

    圆卡提供优先级数为3、4、6的中断引脚,它们可为圆卡的任何中断源所使用,同时还能使用CPU的内部模块产生必要的中断。如在设备应用中使用中断,则必须在用户应用程序中安装中断处理器,并用niInstallIntHandler作栈功能调用。本设计中未使用中断处理器。

4.3  生成设备组态并将设备组态转换为C代码
    设备组态文件包括数据链路组态和系统管理组态,它们对设备类型(基本设备或链路主设备)、节点地址、设备ID号、设备位号、设备调度时间单位、调度时间表进行了定义。

    运行组态生成器,将ini文件转换成为可链接的.e文件。其命令行为:
      efggen device.ini devicecfg.c
    其中,device.ini表示设备组态文件,devicecfg为输出的.c文件的名称。

4.4  编辑、链接并下载程序
    在调试环境下,下载链接器输出文件到RAM进行调试,全调试后,生成二进制格式,使用biBum.exe命令,将程序代码下载到闪存中。第一步是编辑,将设备代码生成器生成的.c文件、组态生成器生成的.c文件(包括userStart函数,callbacks函数)转化到.o格式,第二步,将它们与NI的通信栈软件nistack.lib相链接。该圆卡库文件包含通讯栈协议和功能块壳。最后用户应用与库链接完成后,从链接器的输出文件中提出对象字节,并将它们转换为二进制的格式。这样便可将它们下载到目标处理器的存储器中。

4.5  烧写内存
    圆卡使用niBurn.exe命令通过主机上的RS-232口和串行编程子卡上的串口烧写内存,而无需外部PROM烧写器。

5   结论
    使用开发工具包括提供的NI-FBUS组态器和NI-FBUS监视器,采用AT-FBUS板作为链路主设备对圆卡进行整机测试,测试结果表明,自主开发的阀门定位器与圆卡连接之后,在实现电气智能阀门定位器功能的同时,可能与总线设备互操作,可以接受链路主设备的功能块调度、参数读写、参数传递,这表明仪表能正常运行于FF总线之上,具备了FF总线仪表的功能,同时证明了整体设计方案和所采用的开发方法是可行的。

参考文献
1. 阳宪慧.现场总线技术及其应用[M] 北京:清华大学出版社,1999:70~186
2. National Instruments Corporation.MC68331-BasedFieldbusRoundCardUserManual[R] .USA:1998
3. 庞彦斌,王胜,程炜.基于FF协议的智能气动阀门定位器开发[J] .仪器仪表学报,2001,22(3):34~37

猜你喜欢

推荐排行

  • 厨房用品 - 微波炉尺寸选择指南如何找到合适的家庭用具
  • 高配版阻干态微生物穿透试验仪
  • 纳米机器人技术未来医疗的精准治疗者
  • 微波炉使用技巧如何快速安全地烹饪食物