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提供给用户的硬件接口有X1和X2两个排针连接头,X1连接头(50根管脚),即双端口内存接口,包含与主机通信必备的控制线、数据线和地址线。X2连接头(30根管脚),即现场总线接口,包含PROFIBUS信号线以及LED状态指示灯。嵌入式模块COM-C与主机接口电路如图2所示。由于PROFIBUS协议都由模块内部实现,因此用户应用程序只需通过提供的API接口和访问方式,对双端口内存进行读/写操作。通过现场总线接口,将PROFIBUS信号线引出,只需在母板上连接一个9针D-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
本文关键字:嵌入式 电工文摘,电工技术 - 电工文摘
上一篇:我国人工晶体生长设备的发展状况