基于LabVIEW与S7-200PLC的飞机电器装置检测系统

2011-10-09 09:45阳,翠,冰,
电子设计工程 2011年23期
关键词:校验码字符上位

曹 阳, 卢 翠, 许 冰, 林 峰

(1.沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 110136;2.沈阳工业大学 软件学院,辽宁 沈阳 110023)

飞机电器装置主要是用于对机载设备进行自动化控制,其工作状态直接关系到机载系统工作的可靠性,因此对其检测及故障判断极其重要。

目前,在飞机电器装置检测系统的设计方案上,有学者提出上位机用汇编语言编程,硬件以单片机和液晶显示子系统为核心构成检测系统,该系统可扩展性好、检测效率高,但可靠性低[1];还有一些学者将Visual C++软件平台与嵌入式PC/104硬件设备结合构成检测系统,该系统界面较好、操作方便,但是费用较高[2]。针对以上方案的优缺点和LabVIEW在监控系统中的应用[3-4],文中提出了采用LabVIEW与PLC结合的方式设计飞机电器装置检测系统,这样可以将LabVIEW所具有的界面友好、编程直观、显示多样化的特点和PLC可靠性好、抗干扰能力强的优点有机结合,构成界面友好、功能完善、检测便捷的系统。

LabVIEW与PLC相结合构成的检测系统工作时有测试程序的传送和测试结果的返回,这就需要装有LabVIEW软件平台的计算机与PLC进行通信。通信方式主要有:1)采用OMRON公司的C200HG系列PLC,用RS232直接将HOST LINK模块连接到上位机,该方式通信速度快,稳定性高,但是可扩展性较差[5];2)采用OPC技术,该方式的软件开发周期短,可靠性和稳定性较好,但需要配套的软硬件设备,费用高[6]。除了以上方式,还可以在西门子S7-200 PLC的自由口模式(Free Port Mode)下自定义通信协议,进而实现串口通信[7]。S7-200PLC的自由端口通信模式有足够的灵活性,用户可以根据需要自行定义通信协议,包括计算机的发送信息格式和PLC反馈信息格式的约定。

文中应用LabVIEW8.5为开发平台,结合以S7-200 PLC为核心的硬件,提出了基于LabVIEW8.5与S7-200PLC的飞机电器装置检测系统的设计,根据实际工程应用证明,该系统性能良好,检测效率高。

1 通信协议

计算机与PLC是通过RS-232/485转接电缆通信的,为了避免通信过程中各方争用通信线路,采用主从方式,即PC机为主机,PLC为从机[8],二者连接的点对点方式如图1所示。当然,也可以是一台主机多台从机的一对多方式。

图1 PC机与PLC的通信示意图Fig.1 PC and PLC communication diagram

1.1 计算机发送信息的格式

计算机发送信息的基本格式如表1所示[9]。当通信系统中有多台PLC从机时,发送信息的格式中还应包含对目标从机地址的定义。

表1 发送信息的格式Tab.1 Format of sending information

发送信息中包含控制字符和操作数据,因此,为了统一其数据格式、防止结束字符和数据字符混淆,所有字符都采用十六进制ASCII形式输出。这样,使用ASCII码的30H到39H和41H到46H就可以表示任何数值数据了,而控制字符可以使用各自的ASCII码。

文章在上位计算机中定义一个24字符长的发送信息指令,由16字符长的控制字符和8字符长的操作数据组成。计算机每次发送一条指令给下位机,实现一次读/写操作。具体的发送信息格式如表2所示。

字符1为起始字符,采用大写“S”作为起始字符;字符2、3为目标PLC的站地址,用来标明要发送数据的目标地址,各个PLC据此判断是不是发给自己的数据;字符4~11为目标寄存器地址,其中字符4、5为寄存器类型(00H:I寄存器,01H:Q 寄存器,02H:V 存储区,04H:M 存储区),字符 6、7 为寄存器号,字符8~11为地址,如VB100为0200 0064H,是V存储区中的字节,地址是64H;字符12为指令类型,该字符说明上位机发出的是读指令还是写指令,控制PLC做相应的读/写操作,这里约定 R(52H)代表读,W(57H)代表写;字符13为读/写字节数,字符14~21为写入PLC的数据,占用8个字符;字符22、23为校验码,是运用布尔函数中的“复合运算”节点中的“异或”模式,对字符2~21中的数据做异或运算的结果;字符24为结束字符,采用大写“O”作为发送信息结束字符。

发送信息格式在上位机中的实现过程是,以LabVIEW8.5为开发平台,利用“连接字符串”函数将发送信息封装打包,通过VISA节点中的VISA Write节点发送给PLC。相关程序将在编程实现部分中给出。

表2 具体的发送信息格式Tab.2 Idiographic format of sending information

1.2 PLC返回信息的格式

PLC每接收到上位机的一条指令,就返回一条13字符长的反馈信息,其格式如表3所示。

表3 反馈信息的格式Tab.3 Format of feedbacking information

字符1为起始字符,标明反馈信息的开始,对于不同的从机需要定义不同的起始字符,上位机由此识别反馈信息来自哪个从机;字符2为状态信息,表明PLC对上位机传送的控制命令和数据的执行状态(01H:读取正确,02H:接收正确,03H:校验码有误,04H:非法指令);字符 3~10为数据区,是PLC要反馈给上位机的数据,占用8个字符,以十六进制ASCII形式表示;字符11、12为校验码,是对字符2~10中的数据做异或运算的结果,发送给上位机用于判断传输的状态;字符13为结束字符,标明反馈信息结束,各从机可选用同一结束字符,采用小写“o”作为反馈信息结束字符。

上位机通过LabVIEW8.5开发环境中的VISA Read节点读取下位机的反馈信息,首先对其解析,主要是用到字符串函数中的“截取字符串”,然后对解析得到的数据区的数据进行相应的分析和处理,以便监测下位机的工作状态。

2 基于LabVIEW和PLC检测系统的实现

2.1 LabVIEW中的程序设计

LabVIEW中程序设计的总体思路:首先,将发送指令中的控制字符和数据区数据通过“连接字符串”函数封装打包;然后将打包好的发送指令作为“VISA Write”节点的输入,经转接电缆发送给PLC。具体程序如图2、图3所示,其中图2为计算异或校验码、连接字符串的程序,此处封装得到的结果是要发送给下位机的信息;图3为串口通信程序。

图2 发送信息的封装Fig.2 Package of sending information

图3中的“发送给PLC的命令和数据”就是图2中的“发送信息”。在该串口通信程序中,对串口的配置是,VISA资源名称即串口号:COM1,波特率:9 600 b/s,8位数据位,无奇偶校验,1位停止位,无软件握手协议(流控制)。

完成了发送信息的封装和传送,下一步的工作是处理PLC返回的信息,LabVIEW利用“截取字符串”函数解析PLC返回的信息[10],具体过程如下。首先,截取第一个字符可以判断是哪个从机的反馈信息;然后读取第二个字符,检查PLC对命令的执行状态;若写入正确,则通过图4中的程序读取返回信息中的数据区内容,进一步作相应的分析和处理,以便对仪器设备进行实时控制。部分程序如图4所示。

2.2 PLC中的程序设计

要采用自由端口模式与上位机进行通信,PLC必须处于运行(RUN)状态,而且 PLC是通过调用发送指令(XMT)、接收指令(RCV),接收中断、发送中断来完成通信操作的,因此,为使通信正常进行,需要对PLC自由端口的控制寄存器和RCV指令进行初始化。部分程序如下:

图3 串口通信程序Fig.3 Serial communication program

图4 读取PLC返回信息Fig.4 Read returning information of PLC

以下是初始化子程序:

完成对控制寄存器和RCV指令的初始化后,还需要设置专门的缓冲区,用来存放接收到的控制命令和操作数据以及要发送的反馈信息,并定义标志位。主要包括以下几个子程序:

1)接收子程序PLC首先判断指令中的目标地址,与本机地址一致,并且指令类型为W(57H),校验码正确,则执行接收子程序,把数据存放在PLC的存储区中,并发送“接收正确(02H)”的反馈信息。

2)读取子程序PLC首先判断指令中的目标地址,与本机地址一致,并且指令类型为R(52H),校验码正确,则执行读取子程序,把要读取的数据转换为十六进制ASCII形式并存储到缓冲区,计算校验码,发送反馈信息。

3)RCV_OVER接收完成中断程序,用于把接收缓冲区的数据存放到相应的存储区,计算校验码,若无校验错误则复位校验错误指示位,若有误则置位校验错误指示位。

4)XMT_OVER发送完成中断程序,发送完成后允许新的接收,缓冲区清零,复位各个标志位。

2.3 检测系统的实现

采用上述通信协议的定义格式,文中实现了基于LabVIEW8.5开发平台的计算机与PLC的飞机电器装置检测系统。该检测系统的前面板如图5所示。

图5 检测系统前面板Fig.5 Front panel of detection system

控件“测试目录选择”被按下后,界面切换到测试目录选择主菜单界面,用于选择要检测的电器装置;“开始”、“确认”、“单步测试”、“暂停”按钮用于控制检测过程的开始、单步测试、暂停等操作。右侧是检测结果显示界面:标准值中以指示灯的不同颜色来表示不同的测试功能;测试值中,指示灯“绿色”表明测试值与标准值一致,“红色”表示有故障,同时以对话框形式给出故障信息,用户可以根据需要选择退出检测或是忽略故障继续进行下一步检测。

实验表明,检测系统的通信正常,能够完成检测工作,操作方便、界面友好。

3 结 论

以LabVIEW8.5为软件开发平台、S7-200系列PLC为底层硬件,在自由端口模式下定义通信协议,实现了二者的串行通信。其优点是:1)LabVIEW作为软件平台,提供了丰富的用于开发用户界面的对象,包括图形、图表、按钮与开关、指示灯等,用户可以编制友好的人机界面,添加报警功能,进行系统的监控和管理,弥补了PLC不易实时显示图表和曲线、无良好界面、不便于监控等缺陷。2)PLC有良好的可扩展能力和适应性,以其为核心构成的控制系统具有可靠性高、编程简单灵活、抗干扰能力强的特点,可以执行可靠有效的分散控制。3)采用自由端口模式下的通信,不用购买软件,可以读取PLC中任意存储区的数据,成本低,灵活性好,特别适合于小规模的控制系统。自由端口模式下通信协议的设计还可以结合Internet实现PLC控制系统的远程监测,具有较大的推广空间和较好的应用前景。

[1]贾承军,张先勇.航空器机载继电器盒测试仪的设计[J].机电产品开发与创新,2009,22(4):134-135.

JIA Cheng-jun.ZHANG Xian-yong.The design of aero-relay box testing instrument[J].Development&Innovation of Machinery&Electrical Products,2009,22(4):134-135.

[2]张树勇.飞机继电器盒综合检查仪研制[D].沈阳:东北大学,2007.

[3]WANC Chun-chieh,Hsia K H,SU Kuo-lan,et al.Application of a remote image surveillance system in a robotic weapon[J].Artif Life Robotics,2010,15:284-290.

[4]HlaM T,MarlarK,Zaw M N.Development of process monitoring system in drilling process using fuzzy rules[J].Int J Syst Assur Eng Manag,2011,2(1):78-83.

[5]谢建君,王洪猛,徐春梅.基于LabVIEW与PLC的串级控制系统设计[J].工业仪表与自动化装置,2005(2):54-56.

XIE Jian-jun,WANG Hong-meng,XU Chun-mei.The design of a cascade control system based on LabVIEW and PLC[J].Industrial Instrument&Automation, 2005(2):54-56.

[6]罗文锋.基于LabVIEW与PLC的船舶电站监控系统的研究[D].武汉:武汉理工大学,2009.

[7]汤光华,吴青.自由口模式下S7200PLC与上位机的通信[J].微计算机信息,2008,24(5-1):62-64.

TANG Guang-hua,WU Qing.Communication between host computer and S7200 PLC under Free-port mode[J].Microcomputer Information,2008,24(5-1):62-64.

[8]王晋杰.基于LabVIEW的PC与PLC实时监控的实现[J].武汉理工大学学报,2006,28(11):53-55.

WANG Jin-jie.Implementation of PC and PLC real-time control based on LabVIEW[J].Journal of WUT,2006,28(11):53-55.

[9]马振锋,刘献礼,王鹏,等.基于LabVIEW7.1的PC机与PLC通信[J].哈尔滨理工大学学报,2005,10(5):30-36.

MA Zhen-feng,LIU Xian-li, WANG Peng,etal.Serial communication between PLC and PC based on LabVIEW7.1[J].Journal of Harbin UNIV:SCI.&TECH,2005,10(5):30-36.

[10]柳剑,陈於学,杨曙年.基于编程口的三菱PLC与PC机串行通信实现[J].自动化仪表,2010,31(11):31-37.

LIU Jian,CHEN Yu-xue,YANG Shu-nian.Implementing serial communication between PC and MITSUBISHI PLC based on self-contained programming port[J].Process Automation Instrumentation,2010,31(11):31-37.

猜你喜欢
校验码字符上位
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
基于Excel实现书号校验码的验证
基于FPGA的循环冗余校验码设计
身份证号码中的数学