金相切割机PC-PLC串行通信的实现(河北农业大学,河北保定071001)秦红星李纪刚孙维连花蕊Qin,HongxingLi,JigangSun,WeilianHua,Rui摘要:本文以大型金相试样切割机的PC-PLC控制系统为应用背景,在PC与PLC串行通信协议的基础上,具体解释了OMRONCPM2AH系列PLC与计算机间通信的命令帧和响应帧格式,利用VB6.0中的MSComm控件实现了PC与PLC的串行通信,并给出了相应的数据通讯程序。关键词:PC-PLC;控制系统;串行通信;MSComm控件中图分类号:TP391.8;TN915.04文献标识码:ATherealizationofPC-PLCserialcommunicationinmetallographicspecimencutterQin,HongxingLi,JigangSun,WeilianHua,Rui(AgricultureUniversityofHebei,Baoding071001,China)Abstract:ThispaperregardsPC-PLCcontrolsystemofthelargemetallographicspecimencutterasthebackground.OnthebasisofPCandPLCserialcommunicationprotocol,itexplainstheorderframeandtheresponseframeofcommunicationbetweenPLCandcomputerspecifically.MakinguseofVBMSCommcontrol,itrealizestheserialcommunicationofPCandPLC.Intheend,thedatacommunicationprocedureisprovided.Keywords:PC-PLC;controlsystem;serialcommunication;MSCommcontrol0引言可编程控制器(PLC)具有使用方便、可靠性高、抗干扰能力强等优点,因而在工业控制领域中得到了广泛应用。但是大多数中小型PLC的显示功能较差,人机交互操作不便。在实际的控制系统中,通常将PLC与个人计算机(PC)结合起来,使PLC和PC优势互补,极大地提高了控制系统的性价比。实现PC-PLC控制系统的关键是实现两者之间可靠的数据通信。本文以课题组开发设计的基于PC-PLC的大型金相试样切割机控制系统为背景,在windows环境下,利用VisualBasic6.0中的MSComm控件设计了计算机与OMRONCPM2AH型PLC的串行通信程序,从而实现了PC与PLC的可靠通信,能够对大型金相试样切割机进行实时设备监控与信息管理。1大型金相试样切割机控制方案针对国内金相试样切割设备切割范围比较小(切割直径≤100mm),且自动化程度较低,不能够对大尺寸零件进行直接取样等缺点,课题组设计了基于PC-PLC的大型金相试样切割机自动控制系统。该系统对三相异步电动机进行变频调速,使切割片的转速从0~3400r/min无级可调,可以根据试样的材质设定切割片的转速。一台步进电机通过蜗轮蜗杆传动使摆臂摆动,以实现切割片的Z向进给(即垂直进给)。另两台步进电机分别通过丝杠和螺母副驱使工作台可以X向(即左右方向)、Y向(即前后方向)运动。系统具备恒速切割、进三退一切割、逐层切割和连续切割等四种切割模式。在该系统中,PLC作为下位机,利用传感器采集监控电机、变频器等相关对象的信息,经过对输入信息的处理,综合采集器所获得的信息,反馈控制监控对象,将信息送入上位PC机;另一方面,PLC接受PC的控制指令,通过对输入和操作指令的分析、判断、进行综合处理,输出控制信号,实现对切割机的控制。上位机对PLC进行监控、发送控制信息,同时计算机还能够接受PLC采集的信息,对监控对象进行故障报警与参数显示。该系统具有切割方式选择控制,系统的启动、停止、暂停控制,切割状态的显示,切割速度的显示,事故报警显示等功能[1]。2PC-PLC串行通信的硬件构成PC与PLC的通信采用RS-232C接口的异步串行方式。CPM2AH与PC机的连接,首先通过CPM2AH的外围端口与RS-232C适配器连接,使用的RS-232C适配器型号为CPM1-CIF01,其模式设定开关设定为“OFF”。然后,通过XW2Z-500S电缆与计算机的串口连接。电缆接线如图1所示[2]。3VB中的MSComm通讯控件综合比较各种可视化编程语言之后,将简单易学且高效的VB6.0作为上位机的编程语言,它提供有专门用于串行通信的MSComm控件。该控件具有十分完善的串行数据发送和接收功能,只需设置和监视MSComm控件的属性和事件,就可以轻易地实现异步串行通信。它的属性众多,对其中常用的几个主要属性说明如下:CommPort:设置并返回通信连接端口代号;Settings:设置初始化参数,以字符串的形式设置或返回波特率、奇偶校验、数据位、停止位等4个参数;PortOpen:设置并返回通信连接端口的状态,也可以打开和关闭端口;InputMode:设置并返回Input属性取回的数据类型,即确定以二进制方式接收数据还是以文本方式接收数据;CommEvent:在通信错误或事件发生时都会产生OnComm事件,CommEvent属性存有该错误或事件的数值码[3]。MSComm控件提供了两种处理通信的方式:一种是事件驱动,它是处理串行端口交互作用的一种非常有效的方法;另一种是查询方式,在程序的每个关键功能之后,可以通过读取CommEvent属性的值查询通信事件和错误,并做出相应的处理。4串行通信协议PLC通过对数据存贮器DM区某此单元的设置实现串行通信接口的初始化,选择上位机链接通信方式。选择通信协议为:9600波特,7个数据位,2个停止位,偶校验。选PC的串行口COM2作为与PLC的通信端口。PC与PLC之间通信方式采用主从应答方式,PC始终具有传送优先权,根据需要向PLC发出读写命令;PLC处于被动状态响应上位PC机的命令。PC和PLC先初始化,设置其通信格式(主要包括波特率、奇偶校验、数据位、停止位),通信格式必须一致[4]。从上位计算机发送命令时,程序中编写的命令数据的格式如图2所示。其中:@为帧开始标志符;IP2、IP1为PLC的节点标识码,两位十进制数,用来指定与上位机通信的PLC,对应上位机,PLC可在DM中设置自己的通信节点码;ID2、ID1为两字节命令码;CT为正图1RS-232C电缆接图2命令帧格式文内容,用以设置具体的命令参数;F2、F1为两字节的帧校验码FCS,它是从开始符“@”到正文结束的所有字符的ASCII码按位异或的结果;“*”和“/”两字符表示命令结束。命令帧成功传送后,PLC立即向PC传送一个响应帧,格式如图3所示。其中:@为帧开始标志符;TP2、TP1为与主机通信的PLC节点标识码;ID2、ID1为两字节命令码;E2、E1为命令结束状态码,00表示正常结束,01表示RUN模态下无法完成;CT为正文内容,仅在收到读数据命令时产生;P2、P1为两字节的帧校验码FCS,它是从开始符“@”到正文结束的所有字符的ASCII码按位异或的结果;“*”和“/”两字符表示命令结束[5]。5PC-PLC串行通信程序设计在PC与PLC通信过程中,采用PC优先权,向PLC发送命令启动通信,PLC自动返回响应的通信方式。读数据时,PC通过串行口向PLC发出读数据命令,PLC响应并将数据准备好,这时PC再次读串行口就可读到需要的数据。写数据时,PC通过串行口向PLC发出写命令及数据,PLC接收。数据传送流程如图4所示。以下给出部分通信程序[6]:(1)串行口初始化PrivateSubForm_load()MSComm1.CommPort=2‘选择COM2口通信MSComm1.Settings=“9600,E,7,2”‘设置通信格式,9600波特,偶校验,7位数据,2个停止位MSComm1.InputLen=0‘读取缓存区中的全部数据MSComm1.InputMode=ComInputModeBinaiy‘设置通讯格式为一进制MSComm1.PortOpen=True‘打开端口EndSub(2)发送数据程序PrivateSubSend_Click()DimoutarrAsByteMSComm1.Output=Outarr‘发送数据EndSub(3)接收数据程序PrivateSubMSComm1_OnComm()DimbufferAsVariant‘由缓冲区读取的数据用Variant变量接受DiminarrAsByteSelectCaseMSComm1.CommEvent‘由ComEvReceive事件引发后,将数据存入相应的数组,并且调用工作状态显示子程序CaseComEvReceive图3响应帧格式图4数据通信流程图inarr=MSComm1.InputEndSelectEndSub6结束语利用VB6.0的MSComm控件设计了PC和PLC的串行通信,从而实现了大型金相试样切割机远距离实时监控与数据管理。实际运行证明切割机的PC-PLC控制系统稳定可靠、操控简单,且具有灵活、实时性强、性能价格比高等优点,不仅使切割工件直径达到150mm,而且提高了制样效率,具有广阔的应用前景。本文作者创新点:将PC-PLC串行通信技术应用于大型金相试样切割机中,使PLC强大的控制功能和PC高效的信息管理功能有机结合,实现了切割机远距离实时监控与数据管理。运用可视化的高级编程语言VB6.0中MSComm控件,设计了串行通信程序,程序简洁且功能强大。实验证明,该系统能对直径150mm的大型零件直接取样,在国内同行业中占据领先的地位。参考文献:[1]李杰.基于PLC控制的大型金相试样切割机的研究[D].保定:河北农业大学,2004,6[2]杨永刚,杨继东.PLC与上位计算机串行通信的设计及研究[J].机械与电子,2004,8:68-70[3]肖应旺,徐保国.PLC与上位机串行通信程序的实现[J].仪器仪表与分析监测,2003,4:8-10[4]OMRON—CPM2AH系列编程手册[Z].上海欧姆龙自动化系统有眼公司.1999[5]李琰,郭宗仁,王志凯,李鹏.PLC和计算机间串行通讯方式及程序设计[J].控制工程,2002,9(3):84-86[6]田红芳,李颖宏.PLC与上位计算机的串行通信[J].微计算机信息,2001,17(3):36-37基金项目:河北省教育厅基金项目,课题编号:2003232作者简介:秦红星(1980-),男,汉族,硕士研究生,专业:机械制造及其自动化,研究方向:机电一体化;李纪刚(1958-),男,汉族,副教授,硕士研究生导师,研究方向:机电一体化、机械设计及理论;孙维连(1957-),男,汉族,教授,博士研究生导师,研究方向:机电一体化;花蕊(1981-),女,汉族,硕士研究生,专业:农业电气化与自动化,研究方向:人工智能在电力系统的应用Authorbriefintroduction:QinHong-xing(1980-),man,Han,master,MechanicalManufacture&Automation,Mechanical&ElectricalIntegration;LiJi-gang(1958-),man,Han,associateprofessor,Mechanical&ElectricalIntegration;SunWei-lian(1957-),man,Han,professor,Mechanical&ElectricalIntegration;HuaRui(1981-),woman,Han,master,Agriculturalelectrification&automation,AIanditsapplicationinElectricPowerSystem.联系方式:秦红星,E