邴 旭 于红阳 化春雷 徐兆成 林剑峰
(①沈阳机床(集团)有限责任公司,辽宁 沈阳110142;②沈阳工业大学,辽宁沈阳 110870)
手机短信是一种革新的现代通讯功能,一种全新的提升机床生产率的方法。只要选配一台GSM调制解调器以及一张SIM卡,就可以实现短信功能。无论身处何方,使用移动电话上的短信功能,即可方便地获得机床的加工状态信息。西门子公司最近新推出的两款数控系统——用于中档机床的828D系统和用于高端机床的840D sl系统,都提供了名为Easy Message的短信功能选项,让数控系统可以给人发送短信。本文将介绍如何在840D系统上DIY实现短信功能。
智能的短信功能,可以具备用户管理能力,能够将信息分类,保证正确发送到相关组内的每个人。也就是说,机床操作员可以得到有关当前加工操作状态的信息,而有关刀具磨损的信息却被直接传送到负责刀具管理的人员(如图1所示)。您还可以通过加工程序发出任意文本信息,使信息发送变得极为灵活。
此外,随着人们越来越关注机床的服务与支持,短信功能提供了一个技术平台,使得报警信息、机床维护信息能够以短信的形式自动地在第一时间发送给服务人员,从而大大缩短了客户等待服务的时间[1]。
西门子840D系统是一个开放的数控系统,其配套的人机界面HMI Advanced建立在Windows System-embed之上。针对人机界面的二次开发,西门子提供了3种开发方法[2]:扩展用户接口、HMI编程包(HMI programming package)以及西门子公司的专业组态软件WinCC Flexible。它们各自的特点请参见表1。
本文中将使用功能最为强大的HMI编程包来实现为840D系统添加短信功能。HMI编程包不是系统标配的,需要额外订购。应用HMI编程包,允许用户将VB或VC++编写的应用程序加入HMI Advanced,并可通过提供的接口实现访问NC/PLC变量、多画面的调用、NC数据管理、复杂的计算、输出加工数据等功能。
因为PCU50.3上预装的是英文XP系统,因此建议开发时也在英文Windows系统下安装HMI编程包并进行界面开发,以防止英文开发软件和中文操作系统兼容性不好而造成若干问题。开发时需要将HMI开发包提供的模块、窗体加入到创建的工程中。由于相关的模块和窗体较多,建议用户可在HMI编程包自带的Sample的基础上开发自己的oem程序。例如,可以打开HMI编程包自带的例子程序oembsp1.vbp,根据需要设计自己的界面,最后生成可执行文件oembsp1.exe。这与开发普通VB程序的过程几乎没什么区别,只是HMI提供的控件与VB标准控件的外观和属性会稍有不同。
表1 三种界面开发方法的特点比较
在840D系统上实现短信功能,在硬件方面,只需添加一个GSM模块(如图2所示),然后购买一张手机卡插到GSM模块上,最后再把GSM模块连接到 PCU50.3的串口上。需要注意,PCU50.3也有具体版本的区别,有的版本不带串口,需要另配扩展的串口接口卡。
短信发送软件的功能有两点:一是采集数控系统的信息,二是通过串口控制GSM模块,把机床的信息以短信的形式发送给相关人员。本项目程序由于要使用HMI编程包并最终嵌入到HMI Advanced,因此采用Visual Basic作为开发软件。
3.2.1 程序界面设计
运行VB,创建标准的工程项目文件。添加一个MSComm控件(默认的工具箱中没有该控件,首先要通过工程/部件菜单把它加入到工具箱中),再设置其串口通信的相关属性。再添加一个SSTab控件(需手动添加到工具箱),将SSTab选项卡的Tabs属性设置为2,即有两个选项卡,一个选项卡的标题设为“通讯信息”,用来设置通信参数;另一个选项卡的标题设为“发送短信”,用来控制发送短信。程序界面外观如图3所示。
3.2.2 程序关键代码
(1)读取NCU和PLC变量
可以利用label控件与840D数控系统进行通信,关键代码如下:
①读取NCU变量
如下代码,能够读取NCU中的R1参数。
②读取PLC变量
如下代码,能够读取PLC中的DB2.DBX180.0变量,进而判断是否有700000号用户报警。
label控件的LinkItem属性指定了变量名。变量名的写法很复杂,在HMI编程包的帮助文档中有详细说明。
(2)短信发送
GSM模块的控制是通过AT指令来实现的,与短信有关的AT指令如表2所示[3]。只需要在程序中通过串口给GSM模块发送相关的AT指令,就能够实现短信的发送。
当我们读取的变量有变化时,会触发Label1的change事件,可以在该事件的响应函数中添加发送短信的代码。主要代码如下:
表2 短信相关的AT指令
3.2.3 程序嵌入到HMI Advanced
我们开发的程序以及所需的相关配置文件,必须放置在oem、hmi_adv和mmc2中才可正常运行,如果这几个目录中的同名文件的配置不同,则oem中的文件配置生效。因此,我们要将界面相关的文件放置在oem或其子文件夹中。嵌入界面程序到HMI Advanced中需要下面几个步骤:
(1)修改oem目录中的RE_UK.ini,配置入口软键的文本,将6号软键标签修改为“SMS”:
(2)修改oem目录中的Regie.ini,配置6号软键调用我们开发的界面程序oembsp1.exe:
(3)根据需要修改在oemoembsp1目录中的两个文件:①oembsp1.mdi:定义了所有程序内部子窗口及其类型。②oembsp1.zus:定义了oem程序的状态及动作。
(4)根据需要修改在oem目录下的oembsp1.ini文件中的CONTROL字段,指定上面两个文件的位置。例如:
(5)在 oemlanguageo1_UK.dll中,定义了程序中软键的文本,可用VC++查看并修改。
本文所介绍的在840D系统上实现短信功能的方法,如果稍加修改,也可以让数控系统接收短信。如果预先定义好短信内容对数控系统变量的控制,则可以实现通过发手机短信来控制数控机床的目的。这样就可以根据实际需要来与数控机床进行“对话”,通过接收短信,让机床告诉操作者想知道的信息;发送短信,告诉机床它应该做的。不过需要注意的是,虽然发短信控制机床在技术上可以实现,但是有可能会由于异地操作造成不可预知的危险,所以最好只是让机床实现一些不会造成危险的功能。
对于数控系统是新推出的840D sl系统的机床,也可以选购相应版本的HMI编程包,则本文所说的实现短信功能的方法也可应用于840D sl系统了。
[1]德国西门子公司.SINUMERIK 828D 数控系统(OEM)[Z].2011.
[2]邴旭,化春雷,李焱,等.西门子数控系统人机界面二次开发方法研究[J].制造技术与机床,2011(10):163-167.
[3]李江全,汤智辉,朱东芹,等.Visual Basic数据采集与串口通信测控应用实战[M].北京:人民邮电出版社,2010.