APP下载

一种飞行测试远程监控系统的设计

2013-11-27范蟠果胡逸雪

机械与电子 2013年11期
关键词:工控机线程上位

范蟠果,胡逸雪

(西北工业大学自动化学院,陕西 西安710129)

0 引言

飞机在试飞过程中,需要采集物理数据并监控测试设备。同时由于试飞存在一定风险性,测试系统要减少操作人员,提高自动化水平[1]。如测试飞机的操纵性和稳定性的重心调控系统;为测试机载雷达装机性能的雷达液冷系统。这些测试系统要控制泵的通断,阀门开启角度;同时要采集流量、压力、温度信号以及测试系统的电流值等作为远程监控计算机的数据源。而传统的通信方式速度慢,硬件连接模式单一,不利于分布式监控的需要。远程监控系统使用基于TCP/IP协议的以太网传输模式,以PAC作为下位机和客户端,通过以太网交换机与远程计算机实现TCP/IP协议的通信,实现分布式监控。

1 PAC与以太网交换机

PAC(可编程自动化控制器)同时具有PC处理器、内存和软件的优势和PLC坚固性和分布特性。系统选用泓格公司的WP-8837 PAC控制器,该型使用 WindowsCE 5.0操作系统,ISaGRAF作为开发软件,可以与HMI整合,支持TCP/IP协议,具备I/O模块热插拔能力与8个扩展插槽。

以太网交换机的结构是每个端口都直接与主机相连,并且一般都工作在全双工方式。交换机能同时连通许多对端口,使每一对相互通信的主机都能像独占通信媒体那样,进行无冲突地传输数据。选用MOXA公司的EDS308,有8个端口数量,支持IEEE 802.3,802.3u和802.3x的网络标准。

2 系统概述

分布式数据监控系统由工控设备PAC及其模块、现场监控HMI、以太网交换机和远程监控计算机组成,如图1所示。

图1 系统硬件结构

PAC的扩展模块作为系统控制信号输出和测量信号输入设备。其中,计数模块I-8084W的采样频率为250 k Hz,用来接收管道流量计的计数脉冲。数字输入/输出模块I-8042 W在输入端采集罐组的液位开关信号和泵工作开关信号;输出端控制继电器通断,再由继电器控制交、直流泵的开启与关断。同时在检测到系统电流过大时关断接触器,保护监控系统电路。模拟量输入模块I9017-H的输入信号有3种:压力传感器输出0~5 V电压信号;温度传感器输入4~20 m A电流信号;电流传感器输出0~5 V电压信号。12位模拟量输出模块I-87024CW输出4~20 m A的电流信号控制活门开启角度进而控制管路流量。

PAC的主CPU模块作为下位机,主要任务有:

a.收集还原I/O模块的数据。如将A/D转换后的数字量转换为质量、压力、角度或电流等具体物理值,同时记录获得该数据的时间。

b.执行具体的自动调节规律,同时预留手动控制功能,作为获得权限后测试人员通过HMI进行人工控制的途径。

c.与上位机和HMI进行通信。HMI通过485总线与PAC通信,HMI的界面由泓格自行开发的HMI设计工具elogger编写。除了更好兼容PAC硬件外,elogger也支持工控开发软件ISaGRAF,有利于降低编程难度。执行任务不同,HMI的界面也不同,执行液冷控制任务的HMI界面如图2所示。

图2 液冷控制H MI界面

PAC经以太网交换机与作为远程监控上位机的工控机进行TCP/IP通信。工控机主要汇总各PAC采集的物理数据信息并记录,在需要时调用并分析,如电流波动。同时工控机也负责HMI界面操作权限的管理,以及PAC调节动作的记录,保证试飞结束后有测试设备的详细资料查询。

3 TCP/IP通信

工控机与PAC之间采用TCP/IP协议进行通信。TCP/IP是一种面向连接的可靠的网络通信协议,通信的双方工作在服务器/客户端(C/S)模型下[2]。TCP/IP协议是通过“三次握手”实现的,相较于另一种应用较为广泛的网络协议UDP,TCP协议传输效率低但可靠性高,由于系统上位机不负责具体调节过程,故选用TCP/IP协议。

工控机作为服务器端,各PAC作为客户端,服务器为每个客户端开放一个大于1 000整数作为端口号(小于1 000的端口可能被操作系统占用),客户端寻找该端口与服务器完成连接。因为TCP/IP为全双工通信协议,在PAC向工控机传输数据同时,工控机也可以向PAC发送指令。发送和接收的数据按照表1格式进行封装。

表1 数据封装格式

收发信息时,发送与接收方都首先检验数据长度以保证通信数据的完整性。

数据类型使接收方识别数据的属性[3]。在系统PAC发送的数据包中,1A00H代表1号管路累计流量,0031H代表3号泵当前状态等。工控机的数据类型包括管理该PAC手动操作泵与阀门的权限,以及规定PAC传输的数据类型等。

数据内容的长度因数据类型而异。类型是泵的开关状态或权限时为1B,是记录时间时为2B等。

和校验在发现数据传输错误时可以要求发送方重发数据。

通信双方数据封装及解封过程如图3所示。

图3 通信流程

4 上位机软件设计

上位机程序以Lab Windows/CVI作为开发平台,该软件是NI公司推出的面向测控领域的开发软件,具有集成化开发平台,交互式编程方法,丰富的控件和库函数[4]。

传统的Socket库开发TCP网络程序需要创建一个Socket并声明使用TCP协议,初始化地址、端口并绑定Socket,收发数据,关闭网络连接。CVI将其封装为几个函数,通过调用函数实现该过程[5]。TCP的数据接收与工控机处理流程如图4所示。

图4 上位机数据传输与处理流程

首先使用Get TCPHost Addr函数获知服务器IP,调 用 Register TCPServer(port Num,-Server TCPCB,0)函数注册为服务器端。port Num表示占用的端口;Server TCPCB为端口port Num对应的服务器函数名,它包含了客户端连接、断开和发送数据后的相应处理。Server TCPCB函数片段如下:

int CVICALLBACK Server TCPCB(unsigned handle,int event,int error,void*callbackdata)

……

switch(event)

case TCP_CONNECT:

hconversation=handle;/*获取句柄*/

Get TCPPeer Addr (hconversation,addr Buf,31);/*获取对方IP*/

Status1=1;

Set TCPDisconnect Mode(hconversation,TCP_DISCONNECT_AUTO);/*自动断开连接*/

……

break;

case TCP_DATAREADY:/*读取数据*/

do

dataSize= Server TCPRead(hconversation,&receiveBuf[mSize],dataSize,1000);

mSize+=dataSize;

byte ToRead=buffer[0];

while(mSize<byte ToRead)

……

break;

case TCP_DISCONNECT:

if(handle==hconversation);

hconversation=0;

Status1=0;

……

break;

return 0;

TCP_CONNECT,TCP_DATAREADY 与TCP_DISCONNECT分别为为端口连接时、获取数据和断开连接时的操作,变量hconversation为服务器连接句柄,Server TCPRead为服务器读取客户端发送数据的函数。由于以太网读写并非一次完成,故每次读数据都将本次数据长度dataSize累加到mSize并与byteToRead作比较,直到数据接收完全。

需要注意的是当客户端连接成功时给参数Status1赋值1,此处上位机执行处理客户端1(即1号PAC)发送信息的线程程序,而当客户端断开连接Status1的值为0时,不执行该线程。数据处理线程片段如下:

int CVICALLBACK Client1(void*function-Data);

int main(int argc,char*argv[])

int Thread1;

……

CmtSchedule ThreadPool Function (DEFAULT_THREAD_POOL_HANDLE,Client1,NULL,&Thread1);//创造线程函数

Cmt Wait For Thread Pool FunctionCompletion(DEFAULT_THREAD_POOL_HANDLE,Thread1,0);//等待线程执行

Cmt Release ThreadPoolFunctionID (DEFAULT_THREAD_POOL_HANDLE,Function-ID);//释放线程

return 0;

int CVICALLBACK Client1(void*function-Data)//线程函数

while(Status1){

……

return 0;

5 结束语

系统采用以太网通信代替传统的串口通信,通过以太网交换机,实现对多个子任务系统同时监控的目的。利用PAC作为客户端与下位机系统,在完成调节任务与现场操作的同时,兼顾TCP/IP协议的数据传输,实现通信的稳定性[6]。在上位机使用多个客户端口数据同时接收处理的多线程功能,满足了系统的高效性。系统在飞机试飞中得到应用,目前运行稳定、良好。

[1] 凌 晨,吴成富,吴佳楠.基于以太网的多通道数据监控系统设计与实现[J].计算机测量与控制,2011,19(4):851-853.

[2] Richard Stevens W.TCP/IP详解(卷1:协议)[M].范建华,等译.北京:机械工业出版社,2001.

[3] 袁继敏,李小玲,古天祥.网络化数据采集系统的设计[J].燃气涡轮试验与研究,2003,16(1):41-44,56.

[4] 范蟠果,陈 雪.基于Connect ME的油田远程监控系统的设计[J].测控技术,2011,30(12):41-48.

[5] 史君成,张淑伟,律淑珍.LabWindows虚拟仪器设计[M].北京:国防工业出版社,2010.

[6] 泓格公司.泓格PAC产品数据手册[Z].深圳,2011.

猜你喜欢

工控机线程上位
定制工控机在老旧线路计算机联锁设备中的应用
中压电子束焊工控机Windows NT系统文件丢失故障的修复方法
特斯拉 风云之老阿姨上位
浅谈linux多线程协作
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
线程池技术在B/S网络管理软件架构中的应用
中国工控机市场新Style
新汉 前插拔CoreTM-i系列无风扇工控机