您当前的位置:五五电子网电子知识电工技术电工文摘基于赫优讯嵌入式模块的PROFIBUS-DP主站系 正文
基于赫优讯嵌入式模块的PROFIBUS-DP主站系

基于赫优讯嵌入式模块的PROFIBUS-DP主站系

点击数:7818 次   录入时间:03-04 11:57:28   整理:http://www.55dianzi.com   电工文摘
0引言现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现,标志着工业控制技术领域又一个新时代的开始,并将对该领域的发展产生重要影响。作为欧洲首屈一指的开放式现场总线PROFIBUS(Process Fieldbus)已经被全世界所接受,成为国际化的开放式现场总线标准,并在中国发展迅速,广泛应用于加工制造、过程等自动化领域中。目前,越来越多的国内自动化设备制造商都已开发出了带有PROFIBUS从站接口的设备,并在市场上获得广泛的认可。然而,自主开发的带有PROFIBUS主站通讯接口的设备却很少。本文介绍了一种基于嵌入式模块COM-C的PROFIBUS-DP主站系统的设计方案,基于该方案设计的产品已经在浙江中控的WebField ECS-100 DCS系统中得到成功应用。1 PROFIBUS-DP通讯协议1.1 PROFIBUS的组成PROFIBUS是由西门子公司推出的一种开放式现场总线标准,是德国标准(DIN19245)和欧洲标准(EN50170)的现场总线标准,并已纳入国际标准IEC 61158中。它是一种具有广泛应用范围的、开放的数字通信系统,特别适用于工厂自动化和过程自动化领域。PROFIBUS由相互兼容的三个部分组成,即PROFIBUS-FMS、PROFIBUS-DP、PROFIBUS-PA。PROFIBUS-FMS:用于车间级通用的控制及通信任务,是一个令牌环结构、实时多主网络。PROFIBUS-DP:是一种高速且优化的通信方案,主要用于实现现场级控制与分布式I/O及其他现场级设备之间的通信。PROFIBUS-PA:专为过程自动化而设计,符合本征安全规范,适用于防爆区的应用。PROFIBUS这三层协议使其成为能够提供制造业自动化、工程自动化、楼宇自动化以及电力自动化完整解决方案的唯一的现场总线系统。1.2 PROFIBUS-DP     PROFIBUS-DP协议设计用于现场层的快速数据交换,中央可编程控制器(如,PLC、PC或过程控制系统)通过快速串行连接与分散的现场设备(如,I/O、驱动器、阀门或变送器)进行通信。依据各种应用领域的特殊需求,已经用特殊功能逐步地扩展了DP的基本功能,目前有三种版本:DP-V0,DP-V1和DP-V2,每一种版本都有自己专用的关键特性,如图1所示。版本的这种区别,主要反映了依据不断增长的应用需求而完成的规范工作的时间顺序。

 图1 PROFIBUS-DP各版本的主要功能DP-V0提供DP基本功能,包括循环的数据交换,以及站诊断、模块诊断和特定通道的诊断。DP-V1包含依据过程自动化的需求而增加的功能,特别是用于参数赋值、操作、智能现场设备的可视化和报警处理等的非循环的数据通信。此外,DP-V1有三种附加的报警类型:状况报警,刷新报警和制造商专用的报警。DP-V2包含主要根据驱动技术的需求而增加的其它功能。由于增加的功能,如等时同步从站模式和从站与从站通信等,DP-V2也可以被实现为驱动总线,用于控制驱动轴的快速运动时序。

 

PROFIBUS是一种开放的标准,原则上,该协议可以在任何处理器上实现。目前,自动化厂商在开发PROFIBUS-DP主站设备时,主要有以下三种解决方案:1. 软PROFIBUS主站,该方案完全由软件来实现PROFIBUS协议,由微处理器来运行完整的协议堆栈。该方案开发难度和开发风险都特别大,开发周期也长,而且需要开发人员对PROFIBUS协议、框架特别熟悉。产品开发出来后,需要送欧洲进行协议。2. 专用ASIC芯片外加扩展固化程序Firmware,该方案是采用较多的一种,由专用的ASIC芯片实现PROFIBUS协议数据链路层的介质访问控制功能;而数据链路层的其他功能和应用层的功能则由微处理器运行其扩展固化程序实现。但是,目前国内市场很难购买到Firmware,如果由用户自己编写Firmware则难度增加,开发周期也长,同样需要送欧洲进行协议一致性测试和认证。3. 嵌入式模块主站,该方案是开发PROFIBUS-DP主站设备采用最多的一种,模块内部已经集成专用的ASIC芯片和固化程序Firmware。该方案开发难度和开发风险都大大减少,开发周期缩减,并且协议已经通过了一致性测试和认证。本文采用的是第三种方案——嵌入式模块主站,使用的是德国赫优讯(Hilscher)自动化系统有限公司的嵌入式模块COM-CN-DPM(PROFIBUS-DP Master),由该模块实现PROFIBUS-DP主站协议,主机系统通过嵌入式模块提供的双端口内存(Dual-Port Memory,DPM)接口与模块进行数据通信,用户不需要关心PROFIBUS协议的具体实现,只需往DPM接口读/写数据就可以,因此,该模块就像一个内存,使用起来非常方便。2 PROFIBUS-DP主站系统设计硬件设计嵌入式模块COM-CN-DPM提供给用户的硬件接口有X1X2两个排针连接头,X1连接头(50根管脚),即双端口内存接口,包含与主机通信必备的控制线、数据线和地址线。X2连接头(30根管脚),即现场总线接口,包含PROFIBUS信号线以及LED状态指示灯。嵌入式模块COM-C与主机接口电路如图2所示。由于PROFIBUS协议都由模块内部实现,因此用户应用程序只需通过提供的API接口和访问方式,对双端口内存进行读/写操作。通过现场总线接口,将PROFIBUS信号线引出,只需在母板上连接一个9D-Sub连接头,通过此接口将模块连接到PROFIBUS-DP网络中。该模块同时提供LED状态指示灯,可将LED信号线引出到母板上,方便用于诊断模块的通信状况。  

2 嵌入式模块与主机接口电路由于该模块已经集成实现PROFIBUS协议的所有必备电路,因此在外围电路设计的时候非常简单方便,其电路连接与MCU和内存的连接相似。在该主站系统中,同时还设计了以太网接口,方便远程文件的下载。2.2 软件设计嵌入式模块COM-C提供的主机接口是双端口内存DPM,用户应用程序通过DPM接口来访问该模块。同时,为了提高整个系统的实时性和可靠性,主机系统使用的是实时多任务操作系统Linux。因此,在进行软件设计时,主要完成驱动程序以及应用程序的编写。2.2.1双端口内存DPM结构嵌入式模块COM-C提供的双端口内存DPM接口是8KByte的地址空间,其具体结构如图3所示。

 图3 双端口内存地址空间用户应用程序通过双端口内存DPM来访问PROFIBUS-DP主站嵌入式模块COM-C,该双端口内存分为两个部分,协议无关(循环数据地址空间)与协议相关(非循环数据地址空间)。循环数据包含PROFIBUS-DP主站与从站之间相互交换的过程映像输入输出数据,非循环数据包含与PROFIBUS-DP协议相关的参数、报文、命令、状态等数据。          过程映像输出数据:主机用户程序发送给PROFIBUS-DP从站的输出数据。          过程映像输入数据:PROFIBUS-DP从站发送给主机用户程序的输出数据。         发送邮箱:主机用户程序发送给PROFIBUS-DP从站的非循环报文信息,命令、诊断、配置文件下载等。         接收邮箱:PROFIBUS-DP从站发送给主机用户程序的非循环报文信息,从站报警、状态、配置文件上传等。          协议参数:PROFIBUS-DP协议参数信息,波特率、看门狗时间、循环时间等。          协议状态:PROFIBUS-DP网络状态信息,网络状态、错误、超时等。         系统状态:嵌入式模块COM-C中运行的操作系统的状态信息和模块的基本信息。          状态/握手标志:设备初始化状态信息,过程映像输入输出数据和邮箱报文同步位,模块写,主机应用程序读。          命令/握手标志:用户应用程序状态信息,过程映像输入输出数据和邮箱报文同步位,主机应用程序写,模块读。2.2.2 驱动程序的设计赫优讯提供基于PCI接口、Compact-PCI接口和ISA接口的Linux设备驱动,在该系统中,主机CPU直接对嵌入式模块COM-C进行访问,因此可以借鉴提供的Linux设备驱动代码,进行移植。Linux设备驱动主要完成对嵌入式模块COM-C双端口内存的访问,提供一个通用的驱动程序接口,用户程序通过调用接口函数来访问PROFIBUS主站嵌入式模块COM-C。Linux设备驱动的框架如图4所示,这样做的好处就是,如果以后要使用赫优讯公司的其它类型的现场总线(如DeviceNet、CANopen)嵌入式模块COM-C, Linux设备驱动不需要改变,直接可用。 

  图4 设备驱动框架Linux设备驱动主要实现的函数如表1。函数集函数备注初始化DevOpenDriver()建立应用程序与驱动的连接DevCloseDriver()断开应用程序与驱动的连接DevInitBoard()建立应用程序与嵌入式模块COM-C的连接DevExitBoard()断开应用程序与嵌入式模块COM-C的连接设备控制DevReset()复位嵌入式模块COM-CDevSetHostState()置位/清除HOST运行标志位DevTriggerWatchDog()触发嵌入式模块看门狗功能报文数据传输DevPutMessage()写报文给嵌入式模块COM-CDevGetMessage()读嵌入式模块COM-C发送来报文IO数据传输DevExchangeIO()读/写IO数据DevExchangeIOErr()/IO数据状态信息设备信息DevGetBoardInfo()读嵌入式模块COM-C的信息DevGetBoardInfoEx()读嵌入式模块COM-C的扩展信息系统功能DevDownload()Firmware/配置文件下载表1 Linux设备驱动函数表2.2.3 应用程序的设计应用程序主要实现的功能:配置文件的远程接收和下载,与远程监控系统网络数据的收发,网络监控等等。由网络配置工具SyCon生成的网络配置文件,可导出成DBM格式的文件,然后通过Mailbox(报文的形式)下载到嵌入式模块的Flash中。配置文件下载流程如图5所示。   

 图5 配置文件下载流程部分代码如下:/***** 下载配置文件 *****/memset(&txMsg.data, 0, sizeof(txMsg.data));/* 读出DBM文件中的相关信息 */fseek(pfFile, 40, SEEK_SET);fread(&ul, 1, 4, pfFile);…….usFileLength=*(unsigned short*)&txMsg.data[9];usFileLength=(unsigned short)usFileLength*2;memcpy(&txMsg.data[17], &abTemp[0], 34);    /* 建立第一个报文 */txMsg.rx = 0x00;txMsg.tx = 0xff;txMsg.ln = 51;txMsg.nr = ++bNo;txMsg.a = 0;txMsg.f = 0;txMsg.b = 6;txMsg.e = 4;txMsg.data[0] = 3; if ( SendReceiveMessage(&txMsg, &rxMsg, 10000L)) goto LeaveProgram;fseek(pfFile, 44, SEEK_SET);iRead=fread(&txMsg.data[0], 1, DOWNLOAD_LEN, pfFile);usTransmittedLength = 0;/* 超过一个报文的最大长度,进入循环,连续发送报文*/txMsg.ln = (unsigned char)(iRead);txMsg.nr = ++bNo;txMsg.e = 8;do{    usTransmittedLength+=(unsigned short)iRead;    if ( SendReceiveMessage(&txMsg, &rxMsg, 1000L)) goto LeaveProgram;    iRead=fread(&txMsg.data[0], 1, DOWNLOAD_LEN, pfFile);    txMsg.ln = (unsigned char)iRead;    txMsg.nr = ++bNo;    txMsg.e = 8;} while (iRead = = DOWNLOAD_LEN);/* 发送最后一个报文 */txMsg.e = 0xc;usTransmittedLength += (unsigned short)iRead;if ( SendReceiveMessage(&txMsg, &rxMsg, 15000L)) goto LeaveProgram;/***** 下载配置文件结束 *****/3 PROFIBUS-DP主站模块在DCS系统中的应用WebField系列控制系统是浙江中控技术股份有限公司为适应网络技术的发展,特别是Internet、Web技术的发展而推出的基于网络技术的控制系统。该系统融合了最新的现场总线技术、嵌入式软件技术、先进控制技术与网络技术,实现了多种总线兼容和异构系统综合集成。各种国内外DCS、PLC及现场智能设备都可以接入到WebField系列控制系统中,实现企业内过程控制设备信息的共享。WebField系列控制系统结构如图6所示。 图6 系统结构图由图可见,WebField系列控制系统包含管理信息网、操作网、过程控制网和I/O总线4层网络。管理信息网采用通用的以太网技术,用于工厂级的信息传送和管理,是实现全厂综合管理的信息通道。操作网采用快速以太网技术,实现C/S模式下服务器与客户端的数据通讯及操作网节点的时间同步。过程控制网(SCnetII网)实现操作站节点与控制站的连接,完成信息、控制命令的传输与发送,采用双重化冗余设计,使得信息传输可靠、高速。I/O总线是控制站内部通信网络,包括SBUS、PROFIBUS、Modbus、DeviceNet等现场总线。基于COM-C模块设计的PROFIBUS-DP主站系统是WebField系列DCS中过程控制网节点之一。它解决了系统与其他厂家测控系统和智能设备的互联问题,用于将标准PROFIBUS-DP从站设备连入系统,通过链接器和耦合器还可以接入PROFIBUS-PA设备。通过SCNetⅡ通讯协议,其他厂家测控系统和智能设备的过程参数可成功地与系统内控制站、操作站等进行信息双向通信,实现组态、管理、显示、操作及运算等功能,从而使异种设备成为WebField系列DCS的一部分。PROFIBUS网络配置工具SyCon可安装于工程师站,通过SyCon组态软件提供的API函数,可实现PROFIBUS组态到DCS组态软件的完全信息共享,从而实现整个控制系统的一体化组态。基于PROFIBUS-DP主站模块开发的主站卡已经成功应用于WebField系列DCS中,并且在过程控制网、PROFIBUS-DP网络都可以进行冗余配置,保证了PROFIBUS网络信息传输的可靠性。截至目前,该PROFIBUS-DP主站卡已经在现场有几百个成功的应用。4 结束语    本文在研究PROFIBUS-DP现场总线通讯协议的基础上,提出了高可靠性的PROFIBUS-DP主站设计方案,并且在DCS系统中成功应用,已投入现场运行,稳定可靠,取得很好的实效。目前,国内厂家多限于对国外产品的系统集成及PROFIBUS-DP从站产品的开发,对PROFIBUS-DP主站产品的研究开发甚少,因此本文对开发PROFIBUS-DP主站产品具有借鉴作用。 参考文献:[1] 中国现场总线专业委员会(CPO)秘书处。现场总线PROFIBUS基础知识及用户安装、投运导则[M].[2] PROFIBUS International Business Office. PROFIBUS Specification EN 50170 Vol 2. 1998[3] Hilscher Gesellschaft für Systemautomation mbH. Toolkit Manual [EB/OL]. http://www.hilscher.com/support_manuals.html[4] Hilscher Gesellschaft für Systemautomation mbH. Device Driver Manual [EB/OL]. http://www.hilscher.com/support_manuals.html[5] Hilscher Gesellschaft für Systemautomation mbH. PROFIBUS-DPmasterProtocol Interface Manual [EB/OL]. http://www.hilscher.com/support_manuals.html

本文关键字:嵌入式  电工文摘电工技术 - 电工文摘

《基于赫优讯嵌入式模块的PROFIBUS-DP主站系》相关文章>>>