金相切割机PCPLC串行通讯的技术实现

2016-06-07技术资料

0 引言


         可编程控制器(PLC)具有使用方便、可靠性高、抗干扰能力强等优点,因而在产业控制领域中得到了广泛应用。但是大多数中小型PLC的显示功能较差,人机交互操纵不便。在实际的控制系统中,通常将PLC与个人计算机(PC)结合起来,使PLC和PC上风互补,极大地进步了控制系统的性价比。实现PC-PLC控制系统的关键是实现两者之间可靠的数据通讯。


         本文以课题组开发设计的基于PC-PLC的大型金相试样切割机控制系统为背景,在windows环境下,利用Visual Basic 6.0中的MSComm控件设计了计算机与OMRON CPM2AH型PLC的串行通讯程序,从而实现了PC与PLC的可靠通讯,能够对大型金相试样切割机进行实时设备监控与信息治理。


         1 大型金相试样切割机控制方案


         针对国内金相试样切割设备切割范围比较小(切割直径≤100mm),且自动化程度较低,不能够对大尺寸零件进行直接取样等缺点,课题组设计了基于PC-PLC的大型金相试样切割机自动控制系统。


         该系统对三相异步电动机进行变频调速,使切割片的转速从0~3400r/min无级可调,可以根据试样的材质设定切割片的转速。一台步进电机通过蜗轮蜗杆传动使摆臂摆动,以实现切割片的Z向进给(即垂直进给)。另两台步进电机分别通过丝杠和螺母副驱使工作台可以X向(即左右方向)、Y向(即前后方向)运动。系统具备恒速切割、进三退一切割、逐层切割和连续切割等四种切割模式。


         在该系统中,PLC作为下位机,利用传感器采集监控电机、变频器等相关对象的信息,经过对输进信息的处理,综合采集器所获得的信息,反馈控制监控对象,将信息送进上位PC机;另一方面,PLC接受PC的控制指令,通过对输进和操纵指令的分析、判定、进行综合处理,输出控制信号,实现对切割机的控制。上位机对PLC进行监控、发送控制信息,同时计算机还能够接受PLC采集的信息,对监控对象进行故障报警与参数显示。该系统具有切割方式选择控制,系统的启动、停止、暂停控制,切割状态的显示,切割速度的显示,事故报警显示等功能 。


         2 PC-PLC串行通讯的硬件构成


         PC与PLC的通讯采用RS-232C接口的异步串行方式。CPM2AH与PC机的连接,首先通过CPM2AH的外围端口与RS-232C适配器连接,使用的RS-232C适配器型号为CPM1-CIF01,其模式设定开关设定为“OFF”。然后,通过XW2Z-500S电缆与计算机的串口连接。电缆接线如图1所示 。


        

金相切割机PCPLC串行通讯的实现
图1 RS-232C电缆接线图


         3 VB中的MSComm通讯控件


         综合比较各种可视化编程语言之后,将简单易学且高效的VB6.0作为上位机的编程语言,它提供有专门用于串行通讯的MSComm控件。该控件具有十分完善的串行数据发送和接收功能,只需设置和监视MSComm控件的属性和事件,就可以轻易地实现异步串行通讯。它的属性众多,对其中常用的几个主要属性说明如下:


         CommPort:设置并返回通讯连接端口代号;


         Settings:设置初始化参数,以字符串的形式设置或返回波特率、奇偶校验、数据位、停止位等4个参数;


         PortOpen:设置并返回通讯连接端口的状态,也可以打开和封闭端口;


         InputMode:设置并返回Input属性取回的数据类型,即确定以二进制方式接收数据还是以文本方式接收数据;


         CommEvent:在通讯错误或事件发生时都会产生OnComm事件,CommEvent属性存有该错误或事件的数值码 。


         MSComm控件提供了两种处理通讯的方式:一种是事件驱动,它是处理串行端口交互作用的一种非常有效的方法;另一种是查询方式,在程序的每个关键功能之后,可以通过读取CommEvent属性的值查询通讯事件和错误,并做出相应的处理。


         4 串行通讯协议


         PLC通过对数据存贮器DM区某此单元的设置实现串行通讯接口的初始化,选择上位机链接通讯方式。选择通讯协议为:9600波特,7个数据位,2个停止位,偶校验。选PC的串行口COM2作为与PLC的通讯端口。


         PC与PLC之间通讯方式采用主从应答方式,PC始终具有传送优先权,根据需要向PLC发出读写命令;PLC处于被动状态响应上位PC机的命令。PC和PLC先初始化,设置其通讯格式(主要包括波特率、奇偶校验、数据位、停止位),通讯格式必须一致 。


         从上位计算机发送命令时,程序中编写的命令数据的格式如图2所示。


        

金相切割机PCPLC串行通讯的实现
图2 命令帧格式


         其中:@为帧开始标志符;IP2、IP1为PLC的节点标识码,两位十进制数,用来指定与上位机通讯的PLC,对应上位机,PLC可在DM中设置自己的通讯节点码;ID2、ID1为两字节命令码;CT为正文内容,用以设置具体的命令参数;F2、F1为两字节的帧校验码FCS,它是从开始符“@”到正文结束的所有字符的ASCII码按位异或的结果;“*”和“/”两字符表示命令结束。


         命令帧成功传送后,PLC立即向PC传送一个响应帧,格式如图3所示。


        

金相切割机PCPLC串行通讯的实现
图3 响应帧格式


         其中:@为帧开始标志符;TP2、TP1为与主机通讯的PLC节点标识码;ID2、ID1为两字节命令码;E2、E1为命令结束状态码,00表示正常结束,01表示RUN模态下无法完成;CT为正文内容,仅在收到读数据命令时产生;P2、P1为两字节的帧校验码FCS,它是从开始符“@”到正文结束的所有字符的ASCII码按位异或的结果;“*”和“/”两字符表示命令结束 。


         5 PC-PLC串行通讯程序设计


         在PC与PLC通讯过程中,采用PC优先权,向PLC发送命令启动通讯,PLC自动返回响应的通讯方式。读数据时,PC通过串行口向PLC发出读数据命令,PLC响应并将数据预备好,这时PC再次读串行口就可读到需要的数据。写数据时,PC通过串行口向PLC发出写命令及数据,PLC接收。数据传送流程如图4所示。


        

金相切割机PCPLC串行通讯的实现
图4 数据通讯流程图


         以下给出部分通讯程序 :


         (1)串行口初始化


         Private Sub Form_load ()


         MSComm1.CommPort=2 ‘选择COM2口通讯


         MSComm1.Settings=“9600,E,7,2” ‘设置通讯格式,9600波特,偶校验,7位数据,2个停止位


         MSComm1.InputLen=0 ‘读取缓存区中的全部数据


         MSComm1.InputMode=ComInputModeBinaiy ‘设置通讯格式为一进制


         MSComm1.PortOpen=True ‘打开端口


         End Sub


         (2)发送数据程序


         Private Sub Send_Click ()


         Dim outarr As Byte


         MSComm1.Output= Outarr ‘发送数据


         End Sub


         (3)接收数据程序


         Private Sub MSComm1_OnComm ()


         Dim buffer As Variant ‘由缓冲区读取的数据用Variant变量接受


         Dim inarr As Byte


         Select Case MSComm1. CommEvent ‘由ComEvReceive事件引发后,将数据存进相应的数组,并且调用工作状态显示子程序


         Case ComEvReceive


         inarr=MSComm1.Input


         End Select


         End Sub


         6 结束语


         利用VB6.0的MSComm控件设计了PC和PLC的串行通讯,从而实现了大型金相试样切割机远间隔实时监控与数据治理。实际运行证实切割机的PC-PLC控制系统稳定可靠、操控简单,且具有灵活、实时性强、性能价格比高等优点,不仅使切割工件直径达到150mm,而且进步了制样效率,具有广阔的应用远景。


         本文作者创新点:


         将PC-PLC串行通讯技术应用于大型金相试样切割机中,使PLC强大的控制功能和PC高效的信息治理功能有机结合,实现了切割机远间隔实时监控与数据治理。运用可视化的高级编程语言VB6.0中MSComm控件,设计了串行通讯程序,程序简洁且功能强大。实验证实,该系统能对直径150mm的大型零件直接取样,在国内同行业中占据领先的地位。

出自: 金相切割机PCPLC串行通讯的技术实现 http://www.ygxwj.com/info/1639/