基于PROFIBUS和以太网的嵌入式监测系统
2015-06-23王志秦
王志秦
(唐山学院 信息工程系,河北 唐山 063000)
基于PROFIBUS和以太网的嵌入式监测系统
王志秦
(唐山学院 信息工程系,河北 唐山 063000)
基于PROFIBUS和以太网的嵌入式监测系统,利用嵌入式技术和以太网技术为PROFIBUS总线监测和诊断提供了解决方案。该系统采用ARM嵌入式微处理器作为控制系统核心,利用嵌入式TCP/IP协议与PROFIBUS总线协议实现对现场设备的远程监测和诊断。
以太网;嵌入式监测系统;ARM;PROFIBUS
0 引言
PROFIBUS总线广泛应用于现场工业控制设备中,是工业现场总线标准规范之一。现有小型工业企业控制系统升级改造和信息化集成过程中,迫切需求一种低成本的、基于以太网网络的、对PROFIBUS总线控制系统进行监测和诊断的系统。现有的基于PC机和OPC技术的监测和诊断系统,技术复杂,不适应恶劣的工业现场应用场合,成本高,阻碍了监测诊断系统的应用发展[1]。
针对小型工业企业信息化集成度低,自动控制系统远程监测诊断技术复杂,设备成本高等特点,研究以太网信息融合环境下PROFIBUS总线设备的远程监测与诊断问题,将嵌入式技术、以太网技术和现场总线诊断技术相结合,设计基于PROFIBUS总线和以太网的嵌入式监测系统。系统采用ARM嵌入式微处理器作为控制系统核心,利用嵌入式TCP/IP协议与PROFIBUS总线协议实现对现场设备的远程监控和诊断。本系统能够有效地对PROFIBUS总线控制系统进行监测和诊断,将控制系统的状态和诊断信息传输给以太网的终端,具有成本低、智能化、信息集成化等特点,可以较低成本方便地实现工业控制网络与办公网络的信息化集成。
1 系统硬件设计
1.1 总体设计
基于PROFIBUS和以太网的嵌入式监测系统处于工业控制系统与局域以太网网络之间,通过解析PROFIBUS网络上传输的协议数据获得与监测和诊断有关的有效信息,通过以太网网络将数据传送至特定的终端设备。系统原理如图1所示。
图1 系统原理图
系统采用ARM处理器构建嵌入式系统硬件设备,包含PROFIBUS总线协议接口芯片和以太网控制器接口芯片。ARM处理器具有处理速度快、成本低、片上资源丰富、功能强、编程方便、抗干扰能力强等优点,适合作为嵌入式系统设备的处理器核心。PROFIBUS总线协议的物理层协议符合RS485总线协议,可采用该类器件构成接口电路,监听总线上的报文信息。以太网控制器接口器件集成了IEEE802.3协议标准的介质访问控制子层(MAC)和物理层的性能,支持以太网全双工通信方式,支持UTP,AUI和BNC自动检测,可以方便地与微处理器进行接口。由以上器件构成的系统再配以外部存储器和必要功能模块,作为系统的硬件基础。系统硬件总体结构如图2所示。
图2 系统硬件总体结构图
1.2 主控制器模块
主控制器模块的主要功能就是通过控制PROFIBUS-DP协议芯片及以太网接口芯片来实现对PROFIBUS总线进行监控,分析有效数据并转换通信,主要包括CPU,复位电路等。
CPU采用具有ARM7内核的嵌入式处理器LPC2214作为控制核心。它是由NXP半导体公司推出的一款基于ARM7TDMI-S的微控制器,具有外部RAM存储器扩展总线,可用于代码或数据存储。LPC2214微处理器是一款功能比较丰富,性能比较优异,性价比较高的芯片[2]。
1.3 PROFIBUS-DP模块
PROFIBUS-DP通信模块主要负责微控制器和现场总线的数据通信,包括参数配置和数据交换。它的硬件电路主要由协议芯片VPC3+C和RS485接口组成。
VPC3+C是SIMENS公司提供的一种用于PROFIUBS-DP开放式工业现场总线智能化接口的芯片。它集成了全部的PROFIBUS-DP协议,其中包括方式寄存器、状态寄存器、中断寄存器、各种缓冲器指针和缓冲区等,从而减轻了智能从站的压力,可用于12M波特率总线。VPC3+C支持所有8位处理机和微处理器。内部的DART接口中,可完成并行数据流和串行数据流的互换[3]。
PROFIBUS-DP接口通过RS-485传输,VPC3+C通过RTS,TXD,RXD引脚与MAX3485的引脚相连。
1.4 以太网模块
以太网控制器由CP2200以太网控制器与带有隔离变压器的RJ45接口构成。CP2200以太网控制器是SILABS公司最新生产的单芯片以太网控制器。CP2200可以提供目前应用最广泛的局域网技术,是体积较小和效能较高的以太网控制器。
1.5 其他功能模块
该系统的SDRAM部分是系统运行的主要区域,系统及用户数据、堆栈均位于此。这里选用1片512K字节的IS61LV5128,数据总线宽度也是16位,占用的地址空间为Ox0c000000h-Ox0c080000h。系统电源管理模块为系统不同模块提供稳定的电源供应。JTAG接口提供系统调试功能。指示灯和按键提供系统运行状态和参数设定功能。
2 系统软件设计
在系统硬件平台的基础上,移植嵌入式操作系统μC/OS-II以及嵌入式TCP/IP协议栈,通过软件对PROFIBUS报文进行解析,将提取出的有效信息发送给上位机终端。
2.1 嵌入式操作系统
本系统采用嵌入式操作系统实现系统任务的调度和管理。μC/OS-II是著名的、源码公开的实时内核,可用于各类8位、16位和32位单片机或DSP。它具有一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核,已有10多年应用史,在诸多领域得到广泛应用。μC/OS-II的可移植性较强,所以移植起来只需要在OS_CPU.H包含几个类型的定义和几个常数的定义;在OS_CPU_C.C和OS_CPU_A.ASM中包含几个函数的定义和时钟节拍中断服务程序的代码。
2.2 嵌入式TCP/IP协议
TCP/IP通常被认为是一个四层协议系统,分别为:链路层、网络层、传输层、应用层,每一层都有相应的协议集合来实现不同的功能,其层次结构和主要的网络协议如图3所示。
图3 TCP/IP层次结构图
为了既实现相应的功能又节省系统资源,需要对协议进行有针对性的模块化裁剪,使其变为TCP/IP协议簇的一个子集。经过裁剪后,只保留IP协议、TCP协议和UDP协议。基于PROFIBUS和以太网的嵌入式监测系统,为解决传输速率差别和冗余信息阻塞,连续一致型的系统状态信息和诊断信息采用UDP协议进行发送,变化型系统状态信息和诊断信息采用TCP协议发送,终端控制信息采用TCP协议发送[4]。
2.3 PROFIBUS-DP报文解析
基于PROFIBUS和以太网的嵌入式监测系统利用软件解析PROFIBUS总线报文,将诊断信息和控制信息发送给终端设备。PROFIBUS-DP通过数据链路层协议,在不可靠的物理链路上实现可靠的数据传输。主站与从站之间的周期性数据传输采用主从方式,主站向从站发送或索取信息。系统针对PROFIBUS-DP不同的帧格式和SAP,通过软件解析报文含义,将诊断信息发送给处理器。
2.3.1 PROFIBUS-DP数据交换
VPC3包括如下的服务访问点(服务):缺省SAP(读写数据交换),SAP55(改变站地址),SAP56(读输入),SAP57(读输出),SAP58(向DP从站发控制命令),SAP59(读组态数据),SAP60(读从站诊断信息),SAP61(发送参数设置数据),SAP62(校验组态数据)。VPC3中集成的PROFIBUS-DP状态机,用来描述PROFIBUS-DP站在每种情况下的行为。
在VPC3+C正常工作之前,需要进行初始化以配置需要的寄存器。主站和VPC3+C通过默认的服务访问点交换数据。主站和VPC3+C通过服务访问点SAP60处理诊断数据,VPC3+C需要完成的任务主要包括以下5点。
①2个缓冲区可用,VPC3+C诊断数据发送缓冲区和用户诊断缓冲区。
②用户将外部诊断数据保存在Diag buffer中。
③有NEW DIAG CMD启动诊断数据的爆发。
④用“Diag buffer changed”确认诊断数据己传达。
⑤设置Diag_Flag,下一个读写周期将有高优先权响应新的诊断请求。
2.3.2 报文解析与封装
PROFIBUS报文的一般结构为:
SDLELErSDrDASAFCDUFCSED
第一个字节SD指明报文帧结构。第二个字节LE为包括DA,SA,FC,DSAP,SSAP在内的所有数据的长度。第三个字节是LEr,通过判断LE与LEr是否一致来判断报文是否有误。第四个字节SDr作用同LEr,判断接收的报文是否有误。FCS是校验码。最后一个字节ED固定为0x16,用来标志报文的结束。
解析过程的主要部分是完成DA,SA,FC,DSAP,SSAP,DU的解析。DA为报文的目的地址,SA为源地址。如果DA的最高位为0,则表示无DSAP;如果SA的最高位为0,则表示无SSAP。FC为功能码,它标识了报文帧的类型,同时包含了传输过程和相应控制过程中的信息,如是否数据丢失或需要重复传输、站点的种类以及FDL的状态等。DU为数据单元,如果有DSAP和SSAP,则除去SAP值剩余的DU值为具体数据。
数据封装,在简单报文模块完成数据的设置之后,即报文的DA,SA,FC及DU值已经由用户或操作员输入,此时报文解析模块完成对数据报文类型的选择,进行DSAP,SSAP的值的确定,计算LE(LEr),FCS的值,加入报头SD和结束符ED,将整个报文进行完整封装,然后交由以太网转换模块进行发送[5]。
对PROFIBUS总线的各种SAP报文进行解析,将无用信息丢弃,将系统控制状态和错误诊断信息存储于数据缓冲池,并逐一发送。
3 系统实验
将基于PROFIBUS和以太网的嵌入式监测系统接入实验设备,PLC控制系统采用西门子S-300系列PLC,通过PROFIBUS-DP总线连接嵌入式监测系统,嵌入式监测系统软件预先设定IP地址和监控变量,并连接实验用计算机,计算机端通过网络测试软件接收监测数据。实验系统针对具有80个数字量I/O和10个模拟量I/O的控制系统运行状态和诊断信息进行处理和传输,当改变系统环境和参数时,需要重新设定系统软件参数。PROFIBUS-DP总线传输速率为187.5 kbit/s,以太网传输速率为2 Mbit/s,数据包长度为80至200字节,以工作20 min采集的系统传输数据为例,系统传输信息的丢包率如表1所示。实验表明,UDP数据包丢包率虽然较高,但其发送的是重复性数据,不影响关键数据接收。系统关键数据采用TCP协议发送,TCP数据包丢包率较低,系统的状态数据和诊断数据能够进行有效传输。
表1 系统丢包率
4 结论
基于PROFIBUS和以太网的嵌入式监测系统利用嵌入式技术和以太网技术为PROFIBUS总线监测诊断提供了解决方案。该系统能够有效地对PROFIBUS总线控制系统进行监测和诊断,并将控制系统的状态和错误诊断信息传输给以太网网络的终端,具有低成本、智能化、信息集成化等特点,可以方便地实现工业控制网络与办公网络的信息化集成。
[1] 周悦,于海斌.Profibus和FF现场总线的性能分析与评价[J].吉林大学学报:信息科学版,2004,22(4):434-437.
[2] 何一鸣,鲍玉军.基于LPC2214的传感器网关设计[J].南京航空航天大学学报,2012,44(6):911-915.
[3] 肖红翼,高建民.基于dsPIC的Modbus-Profibus-DP总线适配器的设计[J].自动化与仪表,2012(3):29-32.
[4] 韩光洁,赵海.Embedded Internet环境下TCP/IP协议簇的约简[J].小型微型计算机系统,2004,25(9):1602-1606.
[5] Lu Sheng, Liu Tan. Research on the communication and network organization of SIMATIC S7-300 based on PROFIBUS-DP[J]. Machine tool&Hydraulics,2007,35(9):15-19.
(责任编校:白丽娟)
A PROFIBUS and Ethernet Based Embedded Monitoring System
WANG Zhi-qin
(Department of Information Engineering, Tangshan College, Tangshan 063000, China)
The embedded monitoring system based on PROFIBUS and Ethernet combines embedded technology, Ethernet technology and field bus diagnostic technology. It uses the ARM embedded microprocessor as the core of the system. The embedded TCP/IP protocol and PROFIBUS protocol are used for monitoring and diagnostics.
Ethernet; embedded monitoring system; ARM; PROFIBUS
TP273.5
A
1672-349X(2015)03-0036-03
10.16160/j.cnki.tsxyxb.2015.03.013