2 系统功能实现
本文所述刀具自动识别系统主要包括两个功能模块:数据转换模块和PLC监控模块。数据转换模块主要是利用RS232串口实现数据在射频设备和数控系统之问的传递。加工中心换刀时,PLC监控模块发送触发信号给数据转换模块,更新射频编码块内存储的刀具寿命信息。系统功能模块视图如图2所示。
图2 系统功能模块
2.1 数据交换模块
本文所述数据转换模块的串口通信软件主要应用Visual Basic 6.0(以下简称VB)进行编制。VB运用MSComm进行串口通信,DDE进行数据交换。DDE中的Linkitem属性与Linktopic属性结合使用,确定服务器应用程序与客户控件的完整数据链接。在DDE的各个属性中,LinkMode、Linktopic与Linkitem这三个属性的设置如下:
LinkMode:
Automatic(数据从射频编码块读出时)
Manual(数据写入射频编码块时)
Linktopic:NCDDE f NCU840d
Linkitem:变量名称
上述Linkitem的变量名是根据系统传递的数据在
西门子840D数控系统刀具管理模块中表示的系统变量进行设置的。本文所使用的6个系统变量如表3所示,其中寿命信息的单位均为分钟。
表3 各数据的变量名
MSComm控件是VB 6.0中的一个ActiveX控件,其提供了两种处理通信的方式:一种为事件驱动方式,另一种为查询方式。该控件常用属性和方法有:Commport(设置或返回串口号)、Setting(以字符串的形式设置或返回串口通信参数)、Portopen(设置或返回串口状态)、InputMode(设置或返回接收数据的类型)、Output(设置或返回发送缓冲区中等待计算机发送的字符数)、CommEvent(依据产生事件和错误,MSComm控件为CommEven属性赋不同的代码,同时产生OnComm事件)等。
VB中,利用MSComm控件实现串口通信,发送命令主要程序语句如下:
MSeomml.CommPort=1
MSComml.OutBufferCount=0
MSComml,Output=命令
MSComml.InBufferCount=0
接收数据主要程序语句如下:
Dim lnbyte() As Byte
Select Case MSComml.CommEvent
Case comEvReceive
Inbyte=MSComml.Input
Case comEvSend
End Select