西门子模块6ES7331-7HF01-0AB0参数详细
本文通过具体例子来说明S7-plcSIM软件的仿真功能。以压印机主机调速为例子。工艺要求为:按下启动按钮I4.0,主机启动Q12.0, 主机自动升速到700转/分,并保持不变, 按下启动按钮I4.1, 主机停止运行。使用S7-PLCSIM软件调试程序的步骤如下:
(1) 首先用STEP7软件对系统进行硬件组态,然后再用STEP7软件编程,允许结构化你的程序,也就是说可以将程序分解为单个的、自成体系的程序,后通过系统组织块OB1编写程序。程序如图1示:
图1 编写程序
(2) 再用STEP7软件SIMITIC 管理器菜单OPTION中选择Simulating Modules为ON状态,表示选择仿真调试,如图2示:
图2 选择仿真调试
(3) 在S7-PLCSIM软件中新建PLC文档。选择菜单命令PLC>Power on 打开仿真PLC的电源;选择仿真PLC的工作方式为STOP状态;选择菜单命令EXECUTE>Scan mode>Scan continous表示连续扫描方式。
(4) 用STEP7软件SIMITIC 管理器菜单命令PLC>Download,把程序下载到中仿真PLC中。
(5) 在S7-PLCSIM软件中模拟实际操作。选择仿真PLC的工作方式为RUN状态,按下启动按钮I4.1,主机开始运行,自动升速,速度值送到MW20。可以监视STEP7软件中梯形图程序的运行情况,选择菜单命令Debug>monitor来监视。图3模拟实际升速过程。
图3 模拟实际升速过程
(6) 当在S7-PLCSIM软件中模拟实际操作,如果检测到程序出错,会调用相应错误组织块。S7-PLCSIM软件支持对硬件中断组织块OB40—OB47的仿真;支持对时钟中断组织块OB10—OB17的仿真;支持对扫描周期大于大允许循环时间的中断组织块OB80的仿真。
(7) 保存生成的PLC文档,以便下次仿真时直接调用的设置。
S7-plcSIM Simulating Modules由西门子公司推出,可以替代西门子硬件PLC的仿真软件,当培训人员设计好控制程序后,无须PLC硬件支持,可以直接调用仿真软件来验证。
(1) 模拟PLC的寄存器。可以模拟512个计时器(T0-T511);可以模拟131072位(二进制)M寄存器;可以模拟131072位I/O寄存器;可以模拟4095个数据块;2048个功能块(FBs)和功能(FCs);本地数据堆栈64K字节;66 个系统功能块(SFB0-SFB65);128个系统功能(SFC0-SFB127);123个组织块(OB0-OB122)。
(2) 对硬件进行诊断。对于CPU,还可以显示其操作方式,如图1示。SF(system fault)表示系统报警;DP (distributed peripherals, or remote I/O)表示总线或远程模块报警;DC(power supply) 表示CPU有直流24伏供给;RUN 表示系统在运行状态;STOP表示系统在停止状态。
图1 CPU的操作方式
(3) 对变量进行监控。用菜单命令Insert>input variable监控输入变量;Insert>output variable监控输出变量,Insert>memory variable监控内部变量;Insert>timer variable监控定时器变量;Insert>counter variable监控计数器变量。图2表示上述变量表。这些变量可以用二进制、十进制、十六进制来访问,但是必须注意输出变量QB一般不强制修改。
图2 所有变量
(4) 对程序进行调试。设置/删除断点—利用“设置/删除断点”可以确定程序执行到何处停止。断点处的指令不执行。断点激活,利用“断点激活”可以激活所有的断点; 不仅包括已经设置的,也包括那些要设置的。利用“下一条指令”,可以单步执行程序。如果遇到块调用,用“下一条指令”就跳到块后的条指令。
复杂的控制系统不仅I/O点数多,功能表图也相当复杂,除包括前面介绍的功能表图的基本结构外,还包括跳步与循环控制,而且系统往往还要求设置多种工作方式,如手动和自动(包括连续、单周期、单步等)工作方式。手动程序比较简单,一般用经验法设计,自动程序的设计一般用顺序控制设计法。
1.跳步
如图5-34所示用状态器来代表各步,当步S31是活动步,并且X5变为“1"时,将跳过步S32,由步S31进展到步S33。这种跳步与S31S32S33等组成的“主序列"中有向连线的方向相同,称为正向跳步。当步S34是活动步,并且转换条件时,将从步S34返回到步S33,这种跳步与“主序列"中有向连线的方向相反,称为逆向跳步。显然,跳步属于选择序列的一种特殊情况。
图5-34 含有跳步和循环的功能表图
2.循环
在设计梯形图程序时,经常遇到一些需要多次重复的操作,如果一次一次地编程,显然是非常繁琐的。我们常常采用循环的方式来设计功能表图和梯形图,如图5-34所示,假设要求重复执行10次由步S33和步S34组成的工艺过程,用C0控制循环次数,它的设定值等于循环次数10。每执行一次循环,在步S34中使C0的当前值减1,这一操作是将S34的常开触点接在C0的计数脉冲输入端来实现的,当步S34变为活动步时,S34的常开触点由断开变为接通,使C0的当前值减1。每次执行循环的后一步,都根据C0的当前值是否为零来判别是否应结束循环,图中用步S34之后选择序列的分支来实现的。假设X4为“1",如果循环未结束,C0的常闭触点闭合,转换条件满足并返回步S33;当C0的当前值减为0,其常开触点接通,转换条件满足,将由步S34进展到步S35。
在循环程序执行之前或执行完后,应将控制循环的计数器复位,才能保证下次循环时循环计数。复位操作应放在循环之外,图5-34中计数器复位在步S0和步S25显然比较方便
一、问题提出
假设有一汽车停车场,大容量只能停车50辆。为了表示停车场是否有空位,试用PLC来实现控制。
二、硬件设计
1、I/O分配表
器件
PLC地址
功能说明
HL1
Y4、Y5
停车场已满
HL2
Y3
停车场有空位
开关0
X0
车已进入停车场信号
开关1
X1
车已离开停车场信号
D0
停车场车辆数(大50辆)
2、接线图
西门子S120连接电缆6SL3060-4AA50-0AA0
对于没有STL指令的PLC,也可以仿照STL指令的设计思路来设计顺序控制梯形图,这就是下面要介绍的仿STL指令的编程方式。
如图5-33所示为某加热炉送料系统的功能表图与梯形图。除初始步外,各步的动作分别为开炉门、推料、推料机返回和关炉门,分别用Y0、Y1、Y2、Y3驱动动作。X0是起动按钮,X1~X4分别是各动作结束的限位开关。与左侧母线相连的M300~M304的触点,其作用与STL触点相似,它右边的电路块的作用为驱动负载、转换条件和转换目标,以及使前级步的辅助继电器复位
由于这种编程方式用辅助继电器代替状态器,用普通的常开触点代替STL触点,因此,与使用STL指令的编程方式相比,有以下的不同之处:
1)与代替STL触点的常开触点(如图5-33中M300~M304的常开触点)相连的触点,应使用AND或ANI指令,而不是LD或LDI指令。
2)在梯形图中用RST指令来完成代表前级步的辅助继电器的复位,而不是由系统程序自动完成。
3)不允许出现双线圈现象,当某一输出继电器在几步中均为“1"状态时,应将代表这几步的辅助继电器常开触点并联来控制该输出继电器的线圈。
《案例》PLC环系列按钮步进彩灯电路——set切动分离方案
1.PLC实验接线简图
2.SFC图→(译为)梯形图→(译为)指令表
转换为中心的编程方式设计的梯形图与功能表图的对应关系。图中要实现Xi对应的转换必须同时满足两个条件:前级步为活动步(Mi-1=1)和转换条件满足(Xi=1),所以用Mi-1和Xi的常开触点串联组成的电路来表示上述条件。两个条件同时满足时,该电路接通时,此时应完成两个操作:将后续步变为活动步(用SET Mi指令将Mi置位)和将前级步变为不活动步(用RST Mi-1 指令将Mi-1复位)。这种编程方式与转换实现的基本规则之间有着严格的对应关系,用它编制复杂的功能表图的梯形图时,更能显示出它的优越性。
图5-29 以转换为中心的编程方式
如图5-30所示为某信号灯控制系统的时序图、功能表图和梯形图。初始步时仅红灯亮,按下起动按钮X0,4s后红灯灭、绿灯亮,6s后绿灯和黄灯亮,再过5s后绿灯和黄灯灭、红灯亮。按时间的先后顺序,将一个工作循环划分为4步,并用定时器T0~T3来为3段时间定时。开始执行用户程序时,用M8002的常开触点将初始步M300置位。按下起动按钮X0后,梯形图第2行中M300和X0的常开触点均接通,转换条件X0的后续步对应的M301被置位,前级步对应的辅助继电器M300被复位。M301变为“1"状态后,控制Y0(红灯)仍然为“l"状态,定时器T0的线圈通电,4s后T0的常开触点接通,系统将由第2步转换到第3步,依此类推。
图5-30 某信号灯控制系统
a)时序图 b)功能表图 c)以转换为中心编程的梯形图
使用这种编程方式时,不能将输出继电器的线圈与SET、RST指令并联,这是因为图5-30中前级步和转换条件对应的串联电路接通的时间是相当短的,转换条件满足后前级步马上被复位,该串联电路被断开,而输出继电器线圈至少应该在某一步活动的全部时间内接通
(2)转换实现应完成的操作 转换的实现应完成两个操作:
1)使所有由有向连线与相应转换符号相连的后续步都变为活动步;
2)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。
2.绘制功能表图应注意的问题
1)两个步不能直接相连,必须用一个转换将它们隔开。
2)两个转换也不能直接相连,必须用一个步将它们隔开。
3)功能表图中初始步是的,它一般对应于系统等待起动的初始状态,这一步可能没有什么动作执行,因此很容易遗漏这一步。如果没有该步,无法表示初始状态,系统也无法返回停止状态。
4)只有当某一步所有的前级步都是活动步时,该步才有可能变成活动步。如果用无断电保持功能的编程元件代表各步,则PLC开始进入RUN方式时各步均处于“0"状态,因此必须要有初始化信号,将初始步预置为活动步,否则功能表图中永远不会出现活动步,系统将无法工作。
西门子S120连接电缆6SL3060-4AB40-0AA0
许多PLC厂家都设计了专门用于编制顺序控制程序的指令和编程元件,如美国GE公司和GOULD公司的鼓形控制器、日本东芝公司的步进顺序指令、三菱公司的步进梯形指令等。
步进梯形指令(Step Ladder Instruction)简称为STL指令。FX系列就有STL指令及RET复位指令。利用这两条指令,可以很方便地编制顺序控制梯形图程序。
FX2N系列PLC的状态器S0~S9用于初始步,S10~S19用于返回原点,S20~S499为通用状态,S500~S899有断电保持功能,S900~S999用于报警。用它们编制顺序控制程序时,应与步进梯形指令一起使用。FX系列还有许多用于步进顺控编程的特殊辅助继电器以及使状态初始化的功能指令IST,使STL指令用于设计顺序控制程序更加方便。
使用STL指令的状态器的常开触点称为STL触点,它们在梯形图中的元件符号如图5-31所示。图中可以看出功能表图与梯形图之间的对应关系,STL触点驱动的电路块具有三个功能:对负载的驱动处理、转换条件和转换目标。
图5-31 STL指令与功能表图
除了后面要介绍的并行序列的合并对应的梯形图外,STL触点是与左侧母线相连的常开触点,当某一步为活动步时,对应的STL触点接通,该步的负载被驱动。当该步后面的转换条件满足时,转换实现,即后续步对应的状态器被SET指令置位,后续步变为活动步,同时与前级步对应的状态器被系统程序自动复位,前级步对应的STL触点断开。
使用STL指令时应该注意以下一些问题:
1)与STL触点相连的触点应使用LD或LDI指令,即LD点移到STL触点的右侧,直到出现下一条STL指令或出现RET指令,RET指令使LD点返回左侧母线。各个STL触点驱动的电路一般放在一起,后一个电路结束时—定要使用RET指令。
2)STL触点可以直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈,STL触点也可以使Y、M、S等元件置位或复位。
3)STL触点断开时,CPU不执行它驱动的电路块,即CPU只执行活动步对应的程序。在没有并行序列时,任何时候只有一个活动步,因此大大缩短了扫描周期。
4)由于CPU只执行活动步对应的电路块,使用STL指令时允许双线圈输出,即同一元件的几个线圈可以分别被不同的STL触点驱动。实际上在一个扫描周期内,同一元件的几条OUT指令中只有一条被执行。
5)STL指令只能用于状态寄存器,在没有并行序列时,一个状态寄存器的STL触点在梯形图中只能出现一次。
6)STL触点驱动的电路块中不能使用MC和MCR指令,但是可以使用CJP和EJP指令。当执行CJP指令跳人某一STL触点驱动的电路块时,不管该STL触点是否为“1"状态,均执行对应的EJP指令之后的电路。
7)与普通的辅助继电器一样,可以对状态寄存器使用LD、LDI、AND、ANI、OR、ORI、SET、RST、OUT等指令,这时状态器触点的画法与普通触点的画法相同。
8)使状态器置位的指令如果不在STL触点驱动的电路块内,执行置位指令时系统程序不会自动将前级步对应的状态器复位。
如图5-32所示小车一个周期内的运动路线由4段组成,它们分别对应于S31~S34所代表的4步,S0代表初始步。
图5-32 小车控制系统功能表图与梯形图
假设小车位于原点(左端),系统处于初始步,S0为“1"状态。按下起动按钮X4,系统由初始步S0转换到步S31。S31的STL触点接通,Y0的线圈“通电",小车右行,行至右端时,限位开关X3接通,使S32置位,S31被系统程序自动置为“0"状态,小车变为左行,小车将这样一步一步地顺序工作下去,后返回起始点,并停留在初始步。图5-32中的梯形图对应的指令表程序如表5-3所示.。