轮胎成型机计算机监控系统设计TheDesignofTyreMouldingMachine‘sComputerControlSystem(天津工业大学计算机与自动化学院原晋辉)(TianjinpolytechnicuniversityComputerandAutomationSchoolYuanJinhui)摘要:本文介绍了轮胎成型机计算机控制系统的组成,工作原理以及工艺程序编译软件和监控软件的编制原理及方法.关键词:winccVB编译软件Abstract:ThispaperdescribetheTyreMouldingMachine‘sComputerControlSystemprincipleandmaincomposition,atsametimeThePrincipleandMethodofTechnologyCompileSoftwareandSCADASoftwarearepresent.Keyword:WinccVisualBasicCompileSoftware1.引言全钢丝载重子午线轮胎一次法成型机是轮胎生产过程中的关键设备,结构复杂,在可靠性以及控制精度方面有很高的要求。其中,计算机控制部分是其大脑和灵魂,在系统的设计中,选用了先进的SIEMENS集成自动化系统,以保证该控制系统的可靠性和足够的控制精度.2.控制系统配置:本系统从上到下可分为监视层、控制层、现场层三个层次,由SIMATICPC670工控机和S7400PLC以及SIMODRIVE611伺服系统组成.SIMATICPC670SIMATICS7-CPU-400PROFIBUSET200SIMODRIVE611U图1硬件结构图2.1监视层配置:监视层采用SIMENS的SIMATICPANELPC:PC670,通过它实现对整台成型机的所有报警点和各工段工况的监视.2.2控制层配置:监视层采用S7400PLC,配置如下:(1)电源:采用PS40710A电源模板(2)中央处理模块:采用414-4HCPU,内置256K字节的RAM,使用存储卡可扩展到64M.(3)数字量输入模板:采用SM421:DI32×24VDC,输入点数32点,3块.(4)数字量输出模板:采用SM422:DI32×24VDC/0.5A,输出点数32点,2块.(5)通讯模板:采用PROFIBUS-DP主站接口IM467,1块,来完成PLC和伺服系统的通讯.2.3现场层配置:现场层由SIMODRIVE611U伺服驱动单元,10台1FK伺服电机,和两台步进电机组成.伺服电机是供料架,传递环,主轴等部分的传动电机,两台步进电机用以驱动主鼓和辅鼓灯标的移动.2.4通讯配置:在本系统中上位工控机和S7400PLC之间的通讯采用MPI(Multi-PointInterface)协议来实现.PLC和伺服系统之间的通讯是由PROFIBUS-DP现场总线来完成的.2.4.1MPI(Multi-PointInterface)协议:MPI网络是一种令牌总线式对等网络,其物理介质是RS485。利用MPI网可以建立PLC到PLC,或PLC到PC之间的通讯,通讯速率最高可达187.5Kbps。2.4.2PROFIBUS-DP现场总线:PROFIBUS是一种国际化、开放式、不依赖于设备生产商的现场总线标准。广泛适用于制造业自动化、流程工业自动化和楼宇、交通、电力等其他领域自动化,它由三个兼容部分组成,即PROFIBUS-DP(DecentralizedPeriphery)、PROFIBUS-PA(ProcessAutomation)、PROFIBUS-FMS(FieldbusMessageSpecification)。而PROFIBUS-DP是一种高速低成本通信,用于设备级控制系统与分散式I/O的通信。使用PROFIBUS-DP可取代24VDC或4-20mA信号传输。3软件配置3.1编译软件3.1.1VB6.0的特点VB语言简单易学,只要稍有语言基础即可很快掌握并进而精通.可视化的用户界面设计功能,把编程人员从繁重的界面设计的任务中解放出来.利用它用户可以轻松的开发出WINDOWS95/98应用程序.它的丰富的字符串处理函数能够容易的完成编译软件所须的语法检查功能,这是我选用VB语言编写编译软件的重要原因.4.1.2软件编译原理编译软件所要完成的任务是将源程序翻译成等价的计算机能够识别的目标程序,这项工作是一个复杂的整体过程.从概念上讲,一个编译程序的整个工作过程是分阶段进行的,每一阶段将源程序的一种表示形式转换成另一种表示形式,各阶段进行的操作在逻辑上是紧密结合在一起的.表格管理词法分析语法分析语义分析中间代码生成代码优化目标代码生成出错处理源程序图2编译的各个阶段图2将编译过程划分为词法分析、语法分析、词义分析、中间代码生成、代码优化和目标代码生成六各阶段,其中,词法分析阶段担负对输入的源程序字符流进行扫描分解,从而识别出一个个单词的作用;语法分析的任务是在词法分析的基础上将单词分解成各类语法短语,如“程序”,“语句”,“表达式”等;语义分析阶段完成的是审查有无语义错误,为代码的生成收集类型信息的任务;中间代码是程序的一种内部表示形式,设计的形式多样,设计原则为两点:一是易生成;二是易将其翻译成目标代码。经过优化,它会使目标代码更为高效。目标代码生成的任务是把中间代码转换成特定的指令代码或可重新定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与硬件系统结构和指令含义有关,涉及硬件系统功能部件的运用、机器指令的选择、各种数据类型变量的存储空间的分配以及寄存器和后援寄存器的调度。3.1.2软件编译部分的实现我所编译的源程序是轮胎工艺人员使用特定语言编写的工艺程序,具有结构简单、基本字(也称关键字)少,的特点,整个工艺程序结构为:手动部分+自动单元1(U1)+自动单元2(U2),其中每个自动单元由若干工步构成。它的程序语句格式如下:行号+空格+指令码+参数(+中文注释)。编译软件的第一步工作就是打开*.txt格式的工艺程序,把它读到FORM1的TEXT1中。这部分程序如下:PrivateSubopenfile_Click()OnErrorGoToerrhandlerCommonDialog1.Filter=文档文件(*.txt)|*.txt|所有文件(*.txt)|*.txtCommonDialog1.ShowOpenOpenCommonDialog1.FileNameForInputAs#1Text1.Text=StrConv(InputB$(LOF(1),1),vbUnicode)Close#1ExitSub随后通过LineInput#filenumber,str语句把整个文本文件分解成每个独立的易处理的语句。对于每条要进行语法检查的工艺语句,使用Mid$(str,i,1)及Left$(str,1)函数扫描输入的每个字符,然后判断每个字符的ASCII码,若AscB(char)=48)And(AscB(char)=57)则该字符为数字;若AscB(char)=65)And(AscB(char)=90)则该字符为英文字母。按照行号,指令代码,参数的顺序进行词法检查,若这些字符串满足逻辑上紧密相连,有集体含义的要求,即认为在格式上满足要求,通过这样的词法检查过程,识别出了一个个行号,指令代码,参数代码。接下来的语法分析部分是检查这些单词是否满足特定的语法规则。主要是检查指令码是否满足特定的要求,有关参数是否越界,对指令码的检查通过检索一个特定的表格,若在其中,则认为指令码正确,否则就给出错误提示。对于通过语法检查的代码,则根据上下位机约定好的格式转换为下位机能够识别和执行的十六进制代码。种类工艺程序字节分配1UTXX占2字节,UT:16#F1XX:16#00-16#022GBxx占2字节,GB:16#F2xx:16#00-16#633HE占1字节,HE:16#F34WT占1字节,WAIT:16#F45TExxx占3字节,TE:16#F5xxx:16#1000-16#13E7(1表示时基,不变)6TMxxxxx占4字节,TM:16#F6xx:16#01-16#32xxx:16#0000-16#FFFF(0表示时基,不变)7VAxxxxxxxx占6字节,VA:16#F7xx:16#01-16#0Axxxxxx.xx:16#00000000-16#FFFFFFFFFF8VMxxxxxxxxxx占7字节,VM:16#F8xx:16#01-16#0Axx:16#01-16#0Fxxxxxx:16#00000000-16#FFFFFFFF9QAxxxxxxxx占6字节,QA:16#F9xx:16#01-16#0Axxxxxx:16#x0000000-16#xFFFFFFFF,高位有符号位,x是0表示正,x是1表示负10QMxxxxxxxxxx占7字节,QM:16#FAxx:16#01-16#0Axx:16#01-16#0Fxxxxxx:16#00000000-16#FFFFFFFFFFF11STxxx占2字节,S:16#FBxxx:16#00-16#FF12RSxxx占2字节,R:16#FCxxx:16#00-16#FF13SP占1字节,SP:16#FD14ED占1字节,ED:16#FE表1指令代码及转换规则根据转换规则:每条工艺语句须转换成1到7位长度不等的十六进制代码,格式简单的语句转换方式也简单,比如UT、GB、ST、RS等工艺语句,按约好的规则直接转换成双字节的代码即可,如UT01直接转换成F1;01即可;而结构复杂的工艺语句如QM0101000000,后面的参数分别代表电机号,速度等级和速度设定值,则须把整个参数分解成相应的三部分,分别送到相应的数组中并对其转换,举例如下:如QM直接转换成FA,而参数0101000000则须分解成01,01,000000,分别送到代表电机号,速度等级,速度设定值的三个数组MATER(2),CLASS(2),SPEED(6)中,其中对MATER,CLASS直接转换成所对应的指定地址的占1BYTE字长的代码即可,而SPEED则须把转换成地址相邻的占4个BYTE字长的十六进制代码.上面的例子转换结果如下:FA;01;01;00;00;00;00;随后,所有的转换结果被放到了一个长度足够长的大的数组RESLUT(35000)中,等待下传到PLC指定的数据区中.:开始YES新建?错误?YES错误?YES错误?YES结束?YES打开工艺程序文件新建工艺程序文件逐行读入工艺语句词法检查程序语法检查程序参数越界检查错误处理代码转换程序代码下传程序程序结束图3程序框图3.1.3代码下载代码的下传是通过WINCC作桥梁来实现的,整个过程包括从VB到WINCC变量和WINCC变量到PLC数据块两个过程:从VB到WINCC通过调用MCP对象中的setvalue(str1,data)函数来实现.Str1-----WINCC变量Data-----数据.程序如下:OptionExplicitRemsettagvalueinwincc-projectPrivateSubCommand1_Click()Setmcp=CreateObject(wincc-runtime-project)DimmcpAsObjectDimdataAsVariantDimstr1asStringDimIasInteger,SetasIntegerForI=0TO35000Data(I)=RESULT(I)Set=mcp.setvalue(str1,data(i))NextIEndSub从WINCC到PLC数据区的数据传送不须编程,只须在WINCC变量管理器中建变量时指定好地址即可.3.2WINCC监控软件的设计WINCC监控软件担负着工艺程序下载、各工段工况显示、用户管理等任务.另外,它还要有在线修改工艺程序和诊断机械故障的功能.监控画面由轮胎成型机的总体主视图、俯视图、主供料架及辅供料架的俯视图组成,通过C脚