APP下载

金相试样切割机PC-PLC串行通信的实现

2010-03-01秦红星

装备制造技术 2010年12期
关键词:控件上位命令

秦红星,花 蕊

(1.唐山学院机电工程系,河北唐山 063000;2.唐山供电公司配电中心,河北唐山 063000)

可编程控制器(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~3 400 r/min无级可调,可以根据试样的材质设定切割片的转速。1台步进电机通过蜗轮蜗杆传动使摆臂摆动,以实现切割片的Z向进给(即垂直进给)。另2台步进电机分别通过丝杠和螺母副驱使工作台,可以X向(即左右方向)、Y向(即前后方向)运动。系统具备恒速切割、进三退一切割、逐层切割和连续切割等4种切割模式。

在该系统中,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所示。

图1 RS-232C电缆接线

3 VB中的MSComm通讯控件

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

CommPort——设置并返回通信连接端口代号;

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

PortOpen——设置并返回通信连接端口的状态,也可以打开和关闭端口;

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

CommEvent——在通信错误或事件发生时都会产生On Comm事件,CommEvent属性存有该错误或事件的数值码。

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

4 串行通信协议

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

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

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

图2 命令帧格式

其中,

@为帧开始标志符;

IP2、IP1为PLC的节点标识码,两位十进制数,用来指定与上位机通信的PLC,对应上位机,PLC可在DM中设置自己的通信节点码;

ID2、ID1为两字节命令码;

CT为正文内容,用以设置具体的命令参数;

F2、F1为两字节的帧校验码FCS,它是从开始符“@”到正文结束的所有字符的ASCII码按位异或的结果;

“*”和“/”两字符表示命令结束。

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

图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所示。

图4 数据通信流程图

以下给出部分通信程序:

(1)串行口初始化。

Private Sub Form_load()

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

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

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

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

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

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

Case ComEvReceive

inarr=MSComm1.Input

End Select

End Sub

6 结束语

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

[1]李 杰.基于PLC控制的大型金相试样切割机的研究[D].保定:河北农业大学,2004.

[2]杨永刚,杨继东.PLC与上位计算机串行通信的设计及研究[J].机械与电子,2004,(8):68-70.

[3]肖应旺,徐保国.PLC与上位机串行通信程序的实现[J].仪器仪表与分析监测,2003,(4):8-10.

[4]OMRON—CPM2AH系列编程手册[Z].上海欧姆龙自动化系统有眼公司.1999.

[5]李 琰,郭宗仁,王志凯,李 鹏.PLC和计算机间串行通讯方式及程序设计[J].控制工程,2002,(9):84-86.

[6]田红芳,李颖宏.PLC与上位计算机串行通信[J].微计算机信息,2001,(3):36-37.

猜你喜欢

控件上位命令
只听主人的命令
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
特斯拉 风云之老阿姨上位
移防命令下达后
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
这是人民的命令
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
Spreadsheet控件在Delphi数据库系统中的编程与应用