西门子PLC维修市场发展现状分析
西门子PLC维修随着中国工业经济的发展,西门子PLC维修在中小型自动化设备的日益普及应用,对于设备制造厂商或生产技术管理部门来说,如何以zui快捷的方式响应现场设备维护方面的需求,迅速检测生产现场运行设备的状态,及时解决生产现场反映的问题,已是多数上位技术管理者的切实需求。如何采用经济实用的方式来实施远程西门子PLC维修设备数据采集或测控,这也是探索解决此问题的初衷。
1 系统组成概述
西门子PLC维修系统硬件主要由上位计算机、TC35iGSM MODEM无线通讯模块和远程Siemens S7—200 PLC 3部分组成,具体结构如图1所示。系统软件分为上位PC和下位西门子PLC维修两部分,上位PC部分提供人机交互操作界面和相应的数据选择、处理等;下位西门子PLC维修则通过自由口通讯,以中断方式快速响应上位机对PLC变量存储器数据的读写操作或对I/0口读写操作需求。由于上位计算机与远程西门子PLC维修的通讯载体是通过TC35i建立在GSM网络基础上的,从而打破了地域的限制,即便远端西门子PLC维修设备在千里之遥,实施数据采集、测控的如同咫尺。
2 西门子PLC维修系统硬件设计
2.1 TC35i无线通讯模块
系统组成如图1所示,系统硬件主要是TC5i无线通讯模块的应用。TC35i是Siemens公司推出的新一代无线通信GSM模块,TC35i双频工作(EGSM900/GSMl800),电源范围在3.3~4.8 V,发送功率分别为2W(Class4 EGSM900)和lW(Classl GSMl800 MHz),TC35i的数据接口采用串行异步收发,符合ITU-TRS-232接口电路标准。数据接口配置为8位数据位、1位停止位、无校验位,可以在300~115 kb/s的波特率下运行,支持的自动波特率为4.8~115 kb/s,西门子PLC维修符合ETSI标准GSM0707和GSM0705,且易于升级为GPRS模块。该模块集射频电路和基带于一体,向用户提供标准的AT命令接口。为数据、语音和短消息提供快速、可靠、安全的传输,方便用户的应用开发及设计。TC35i有40个引脚,通过ZIF连接器引出。这些引脚可划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。
西门子PLC维修系统硬件连接
系统硬件的连接可参考图1可知,上位计算机的串口输出与由TC35i构成的GSM MODEM中的9芯RS232口直接连接;远程的GSM MODEM与PLC连接时则必须通过RS232到RS485的转换,这是Siemens PLC的通讯口数据和PPI编程电缆连接的必要条件。另一方面必须注意的是,在与远程GSM MODEM的RS-232串口连接时,还必须将RS232串口中的RXD和TXD对换连接,否则将不能正常通讯。
2.3 西门子PLC维修的选型
该系统选用西门子S7—200 PLC,在西门子PLC中SIMATIC S7—200是一个系列,其中包括多种型号的CPU,这里选用CPU-222,由于CPU不提供模拟量的输入输出,为检测对模拟量数据的远程读写。因此在远程西门子PLC维修系统中扩展一型号为EM-235的4输入1输出模拟量模块。
3 系统软件设计
3.1 系统上位计算机人机界面
系统上位的人机界面是用VB编程,提供人机交互操作界面及数据选择和相应的数据处理等功能。系统上位的操作界面如图4所示。在操作界面的左上部是通讯链接控制框,这里只需要正确选择PC的串口并输入远程PLC所连接的后即可拨号链接,远程的无线GSM MODEM模块摘机响应一般设置为铃响后自动摘机,通讯链接建立后,当上位PC检测到串口端的数据载波DCD信号后,通讯链接控制框中的“链接状态”指示灯由红变绿,表示通讯链路已成功建立。拨号或挂机的操作均是通过对GSM MODEM模块发送AT指令执行的。
西门子PLC维修数据的读写操作
西门子PLC维修数据的读写是依据约定的数据类型实施操作的。对于字节、字、双字、实数及I/0端口各自有约定的数据类型特征字,在下位西门子PLC维修程序中通过对数据类型特征字的解析后来确定读取数据的字节数。对I/0端口的读写操作则是根据约定的地址编码直接读写出相应的状态信息。每组收发数据的存储单元从VBl00到VBll7共18个字节。由前述的数据发送量的约定可知,每组数据的Byte5~Byte8表示PLC数据的地址,由于每次读写的地址是不同的,所以Byte5~Byte8字节给定的就是地址指针,在西门子PLC维修编程中就要以此指针采用间接寻址的方式,假设Byte5~Byte8存放在PLC的VB104~VBl07单元,其间址指令则为:
MOVD &VBl04,ACl读取该地址内容时则根据数据类型的不同而有所区别,假如读写字节时指令为:MOVB*ACl,VBl60;则读写字的指令为:MOVW *ACl,VWl60;读写双字的指令为:MOVD *ACl,VDl60;读写实数的指令则为:MOVR *ACl,VDl60。