3 通信软件设计
计算机卞控数据传输系统软件安装在计算机端,由于数控机床数据传输软件是固化在数控机床的控制器中,不需要特别的编程,在进行数据传输时根据通信要求设置通信参数,计算机端与其设置相同,由于不同的数控机床采用的通信方式即握手信号与帧格式不一样,因此,数据传输软件设计必须根据不同的数控机床采用不同握手信号。通常实现串行通信有多种方法,如利用调用Win<lowsAPI提供的函数完成;利用Visual C++中的ActiveX控件MSComm等。木系统采用后一种方法,计算机端采用InPrise公司的C++ Builder作为开发工具,把微软公司的串行通信ActiveX控件载入C++ Builder的控件包中,用户就可以在自己的应用程序中嵌入MSComm控件,利用它可以方便地进行计算机串口的通信管理。
3.1 MSComm ActiveX控件介绍
Borland C++ Builder作为新一代的可视化编程工具,提供了大量的封装好各种功能的VCL控件库以便快速编程,遗憾的是并没有直接提供串口通信功能的VCL控件;而微软公司提供的MSCommActiveX控制将串行通信的大部分操作都封装到控件内部,为编程者提供了简化的Windows卜的串行通信编程,通过导入微软MSComm控制,C++ Builder也能方便地实现计算机串口通信编程,为应用程序提供串行通信功能。
MSComm控件提供卜列两种处理通信的方式:事件驭动通信方式和查询方式。事件驭动通信是处理串行端口交互作用的一种非常有效的方法。在许多情况卜,在事件发生时需要得到通知,例如:在CD (Carrier Detect)或RTS ( Request to Send)线上一个字符到达或一个变化发生时,可利用MSComm控件的OnComm事件捕获并处理这些通信事件。OnComm事件还可以检查和处理通信错误。查询方式是在程序的每个关键功能之后,通过检查CommEvent属性的值查询事件和错误。MSComm控件的属性InBuf'ferCount()和Out2BufferCount()就用于串口的查询方式。可通过Set2CommEvent(函数设置串口要响应的事件,当响应事件或串口错误发生时,系统会激活OnComm)事件,在OnComm)中添加相应的程序,即可实现类似DOS中断的串口处理程序。每个使用的MSComm控件对应着一个串行端口。如果应用程序需要访问多个串行端口.必须使用多个MSComm控件。可以在Windows“控制而板”中改变端口地址和中断地址。
3.2 计算机与数控机床通信程序编写
首先,把MSComm控件安装入C++ Builder的集成开发环境,通过C++ Builder菜单项的“Component"项卜的“Import ActiveX Control",装入C++ Builder控件板的AetiveX组中。其次,为了用该控件控制一个串口进行通信操作,还必须在相应程序中插入该控件。为此,在程序的某个C++ Builder的Form中插入MSComm控件,控件名为MSComml(可以更改此名),在程序中对串口的各种操作可通过MSComml实现。为了得到MSComm控件的有关参数,可以在控件上按F1键查询,或参阅有关的Visual C++与Vi-sual书籍。
数控机床通过软件、硬件握手方式与计算机进行数据的传输,为此,在计算机数据传输通信程序编制上,采用查询的通信方式。在对木次通信任务中,可通过SetCommEvent函数设置串口要响应的事件。木设计把计算机串口每接收一帧数据设置为串口要响应的事件,也即EV2RXFLAG事件。这是WindowsAPI函数中的一个基木事件。通过它去激活OnComm,在OnComm)消息处理函数中可加入处理代码,判断是否是所需要的数据,并作出相应的处理,如显示、存盘、分析等。卜而简要给出事件驭动方式接收数控机床发送数据的程序源代码。计算机串口各参数设置,如波特率、校验及数据格式等,必须与数控机床完全一致,否则两者之间的通信无法正常进行。设置计算机串口参数的初始化程序如下:
4 结语
利用RS-485网络把一台卞控计算机与多台数控机床联接在一起,可将机床中所有的数控程序、数控系统参数以及PLC程序(ASCII代码文件)都备份到卞控计算机中,从而保护了系统资源,解决了单台数控机床内存不足的问题。工作时,通过网络传输程序,既保证了数据的准确性又大大地提高了工作效率,该联网系统已成功应用于数控实习中心,取得了较好的效果。
在此基础上,卞控计算机还可通过局域网和其他计算机和工作站连接,不仅实现零件加工程序网上传输,而且实现了CAD , CAM,零件加工程序等资源的共享,为今后开展DNC控制及CIMS工程奠定了基础。