王君辉,尹 敏
(西北轴承股份有限公司,银川 750021)
大型立式磨床ROPC 200主要承担直径1.5 m以上大型轴承套圈的研磨工作,经过多年使用,机床的电气元件严重老化,故障率增高,研磨精度降低,已影响到正常的使用。因此,需对该机床的电气系统进行全面的数控化改造。改造后的电气系统采用840D数控单元配以S7-300 PLC进行控制。
PLC作为数控机床的重要组成部分,对机床动作的可靠执行起着至关重要的作用。PLC的用户程序在编制过程中难免会出现一些缺陷和错误,尤其是对于那些比较复杂的控制任务,因此,用户程序在设计好之后一般都需要进行调试、修改。通常情况下,调试工作直接在硬件PLC中进行,但有时程序设计好之后,硬件PLC尚未购买或控制设备不在本地,这就对程序的调试和修改带来不便。而且在实际的硬件系统中进行程序调试具有较大的风险,PLC的某个错误输出信号可能会导致机损事故甚至危及工作人员的人身安全。因此,如果能够在没有PLC硬件的条件下就可以对PLC用户程序进行仿真调试,将起到事半功倍的效果。
对于S7-300/400 PLC来说,S7-PLCSIM软件能够实现在计算机上代替硬件来仿真和调试用户程序。与传统的经验方法相比较,用S7-PLCSIM软件在计算机上仿真具有以下优点:(1) 可进行不依赖于硬件的程序测试与调试;(2) 在程序开发阶段消除大部分错误;(3) 降低开发成本,加速开发进程,提高程序质量。
1.1.1 仿真窗口
图1 S7-PLCSIM仿真窗口
1.1.2 视图对象
S7-PLCSIM用仿真PLC来模拟实际PLC的运行,所有用户程序的调试都是通过视图对象来进行的。S7-PLCSIM提供了多种视图对象,可以实现对仿真PLC内的各种变量、计数器和定时器的监视与修改。
S7-PLCSIM的视图对象包括CPU、输入变量、输出变量、位存储器、定时器、计数器、通用变量和垂直位变量等多种视图对象。其中,CPU视图对象是在打开S7-PLCSIM窗口时自动形成,其他视图对象要在仿真PLC窗口中通过“Insert”菜单生成。通过视图对象可以对PLC的输入、输出映像区和内部存储区的状态进行模拟与监视。在插入的视图对象中输入存储区地址,即可显示存储区地址及存储区数据状态,可选的数据显示格式有位、二进制、十进制、十六进制、BCD码、整数、实数等。
图1中标有“CPU”的小窗口是CPU视图对象。在CPU视图对象中,可以用单选框选择仿真PLC的运行(RUN)、停止(STOP)和RUN-P模式,分别由指示灯指示。在RUN模式和RUN-P模式下CPU均能运行用户程序,两者区别在于:在RUN-P模式下可以下载和修改程序,而在RUN模式下则不能;某些监控操作只能在RUN-P模式下进行。点击CPU视图对象上MRES(存储器复位)按钮可以复位仿真PLC的存储器,删除程序块与系统数据,复位之后CPU将自动进入STOP模式;指示灯“SF”亮表示有硬件、软件错误;“DP”指示灯则用于表示PLC与远程I/O或者分布式外设的通信状态;“DC”指示灯用来表示电源的通/断情况。用菜单“PLC”中的命令可以接通或断开仿真PLC的电源。
1.1.3 LAY文件和PLC文件
用S7-PLCSIM仿真时会自动生成LAY和PLC两种格式的文件,退出仿真软件时将会询问是否保存LAY文件或PLC文件。LAY文件用于保存仿真时各视图对象的信息,例如各视图对象选择的数据格式等;PLC文件用于保存上次仿真运行时设置的数据和动作等,包括程序、硬件组态、CPU工作方式的选择、运行周期模式(单周期或连续运行模式)的选择、I/O状态、定时器的值、符号地址、电源的通/断等。
(1)可对S7-300和S7-400 PLC的用户程序进行离线仿真与调试,可访问模拟PLC的I/O存储器、累加器和寄存器。通过在仿真运行窗口中改变输入变量的ON/OFF状态来控制程序的运行,并观察有关输出变量的状态来监视程序运行的结果。
(2)可实现定时器和计数器的监视和修改,通过程序使定时器自动运行或手动复位。
(3)可模拟对位存储器、外围输入变量区和外围输出变量区的操作,以及对存储在数据块中的数据(如DBl.DBX0.0或DBl.DBW0等)的读写。
(4)可在仿真PLC中使用中断组织块测试程序的特性,并记录一系列操作事件及回放记录,从而自动测试程序。
S7-PLCSIM可以模拟一个S7控制器,并且在仿真时可以使用表1中的资源。另外还具有对大部分组织块、系统功能块和系统功能的仿真功能。
表1 S7-PLCSIM在仿真时可以使用的存储区域
(2) 在菜单“PLC”中选择“MPI Address”,设置准备模拟的PLC的地址。
(3) 在SIMATIC Manager中将准备模拟的用户程序下载到仿真的PLC中(操作与在实际PLC上的操作一样)。
(4) 在S7-PLCSIM窗口的“Execute”菜单中选择“Scan Mode”(扫描模式),选择“Continuous Scan”(连续扫描方式),并将CPU工作方式选为“RUN-P”。
(5) 在“Insert”菜单中选择插入相应的输入变量、输出变量或定时器、计数器等,即图中CPU窗口以外的窗口。通过改变这些变量的值,便可观察PLC程序在这些量变化后的运行情况。
此时,仍可用STEP 7中的变量监控或程序块在线监视等功能来测试PLC程序,也可查看当前CPU的状态(扫描时间、存储空间等),操作方法与实际PLC的操作相同。
1.4.1 扫描方式
S7-PLCSIM可以用两种方式执行仿真程序:
(1)单次扫描。每次扫描包括读外设输入、执行程序和将结果写到外设输出。CPU执行一次扫描后处于等待状态,可以用菜单命令“Execute”→“Next Scan”执行下一次扫描。通过单次扫描可以观察每次扫描后各变量的变化。
(2)连续扫描。这种运行方式与实际的CPU执行用户程序相同,CPU执行一次扫描后又开始下一次扫描。
1.4.2 符号地址
为了在仿真软件中使用符号地址,执行菜单命令“Tools” →“Options”→“Attach Symbols…”,在出现的“Open”对话框中打开当前的项目,找到并双击符号表“Symbols”图标。执行菜单命令“Tools”→“ Options”→“Show Symbols”,可以显示或隐藏符号地址。垂直位视图对象可以显示每一位的符号地址,其他视图对象在地址区显示符号。
以ROPC 200磨床的主轴电动机调速控制为例,来说明使用S7-PLCSIM软件进行仿真的方法。主轴电动机控制要求为:按下启动按钮,主轴电动机启动,电动机自动升速到700 r/min,并保持不变;按下停止按钮,主轴电动机停止运行。使用S7-PLCSIM软件调试程序的步骤如下:
(1)首先用STEP 7软件对系统进行硬件组态,然后打开已经编好的用户程序。启动按钮为I4.0,主轴电动机启动输出信号为Q12.0,停止按钮为I4.1,程序如图2所示。
图2 仿真的用户程序段
(2)在SIMATIC Manager的菜单“Option”中选择“Simulating Modules”为ON状态,表示选择仿真调试。
(3)在S7-PLCSIM软件中新建PLC文档;选择菜单命令“PLC” →“Power ON”打开仿真PLC的电源;选择仿真PLC的工作方式为STOP状态;选择菜单命令“Execute” →“Scan Mode” →“Scan Continuous”(连续扫描方式)。
(4)选择菜单命令“PLC” →“Download”,把程序下载到仿真的CPU中。
(5)在S7-PLCSIM软件中模拟实际操作。选择仿真PLC的工作方式为RUN状态,按下启动按钮I4.0,主轴电动机开始运行,自动升速,速度值送到MW20;选择菜单命令“Debug” →“Monitor”,可以监视STEP 7软件中梯形图程序的运行情况,图3为模拟实际升速过程。
图3 实际升速过程
(6)在S7-PLCSIM软件中模拟实际操作时,如果检测到程序出错,会调用相应错误组织块。S7-PLCSIM软件支持对硬件中断组织块OB40~OB47的仿真;支持对时钟中断组织块OB10~OB17的仿真;支持对扫描周期大于最大允许循环时间的中断组织块OB80的仿真。
(7)保存生成的PLC文档,以便下次仿真时直接调用设置。
(1)PLCSIM不支持对功能模块、通信和PID程序的仿真。
(2)不支持写到诊断缓冲区的错误报文,例如不能对电池失电和EEPROM故障的仿真,但是可以对大多数I/O错误和程序错误进行仿真。
(3)工作模式的改变(例如由RUN转换STOP模式)不会使I/O进入“安全”状态。
(4)在某些情况下S7-400与只有两个累加器的S7-300的程序运行可能不同。
(5)大多数S7-300 CPU的I/O是自动组态的,模块插入物理控制器后被CPU自动识别,而仿真PLC没有这种自动识别的功能。因此,在用S7-PLCSIM仿真S7-300程序时,如果想定义CPU支持的模块,首先必须下载硬件组态。
(1)仿真的CPU中正在运行时可以用“Stop”选项中断程序,恢复“运行”时是从程序中断处开始继续处理程序,对程序状态不会有什么影响。
(2)与真实的CPU一样,仿真软件可以改变CPU的操作模式(RUN,RUN-P和STOP),但与实际CPU不同的是仿真的CPU切换到STOP模式并不会改变输出的状态。
(3)仿真软件中在目标视图中变量的每个改变,其存储区对应相关地址的内容会被同时更新,而实际的CPU要等到扫描结束时才会修改存储区的数据。
(4)可以选择单次扫描或者连续扫描。
(5)可以使定时器自动运行或手动运行,可以手动复位全部定时器或复位指定的定时器。
仿真软件S7-PLCSIM不需要硬件连接,使用方便、安全,虽然与具体的硬件PLC还有一定的区别,但不会影响对PLC用户程序的测试。通过S7-PLCSIM对用户程序进行调试和故障诊断,可以在程序开发阶段发现和排除错误,提高用户程序的质量;同时,S7-PLCSIM也是学习S7-300/400编程的有力工具。