在切割/冲压等机械加工领域,有时候需要操作人员手动上料。手动上料过程中设备应处于停止状态,当上料完毕并确认安全后,才能再次启动。如果操作人员违反操作规程(比如一只手上料的同时另一只手去启动按钮),可能造成伤害的发生。为了避免这种伤害,人们发明了双手操作按钮。双手操作按钮必须两只手同时按下按钮才能激活输出(启动设备),下面这张图是西门子3SB38双手操作按钮盒:
双手操作按钮盒需要配合专用控制器(双手同步控制器)才能工作。如果使用故障安全型PLC,可以通过双手操作指令来完成类似的功能。今天这篇文章,我们就来介绍下博途环境下基于故障安全的双手操作指令——TWO_H_EN。本文包括两个主题:
①指令介绍;
②应用举例;
1、指令介绍
打开博途开发环境,新建项目。在左侧项目树双击“添加新设备”,在弹出的对话框中单击“控制器”,任意选择一款故障安全型CPU(比如:CPU 1515F-2PN)。
在新添加的PLC项目树中选择“程序块”→“添加新块”,在弹出的对话框中选择“函数块”,命名为“Test”,并勾选“Create F-block(创建安全块)”,如下图所示:
打开Test函数块,在右侧的指令列表中,“基本指令”→“安全指令(Safety functions)”中,可以看到“TWO_H_EN”指令(带有使能信号的双手操作指令),如下图所示:
将该指令拖放到Test函数块中,会自动提示生成背景数据块,完成后如下图所示:
该指令有四个输入参数和两个输出参数,其中:
输入参数:
①IN1:布尔型,按钮1的输入信号;
②IN2:布尔型,按钮2的输入信号;
③ENABLE:布尔型:使能信号;
④DISCTIME:TIME型,差异时间(由于两个按钮不可能绝对同步,因此允许它们之间的动作在短时间内存在差异),取值范围1~500ms,超出这个范围诊断字节会报错;
输出参数:
①Q:布尔型,输出信号;
②DIAG:字节型,诊断信息。诊断字节的每个位表示相应的含义,具体见下面的表格;
位编号 | 含义(当值=1时) |
---|---|
位0(bit0) | 差异时间错误(小于0或大于500) |
位1(bit1) | 按钮不同步 |
位2(bit2) | 保留 |
位3(bit3) | 保留 |
位4(bit4) | 一个按钮未释放 |
位5(bit5) | 未使能(ENABLE=0) |
位6(bit6) | 保留 |
位7(bit7) | Q的输出状态 |
该指令的工作原理如下:
当按钮1的输入信号IN1和按钮2的输入信号IN2在差异时间内从0变为1并保持时,并且使能信号ENABLE的值为1时,Q输出为1;
当IN1或者IN2或者ENABLE中任何一个信号为0时,Q输出为0;
当按钮输入信号IN1或者IN2未在差异时间内激活时(比如仅按下了其中一个按钮),必须先将按钮松开,然后再次同步按下两个按钮才能再次激活Q的输出;
2、应用举例
下面我们创建一个功能安全函数块Test来测试TWO_H_EN指令。为了进行仿真,我们创建F-DB,名称为simulation,在其中新建变量如下图所示:
为了模拟双手按钮的按下动作,编写testFC,使按钮1和按钮2的触发由有200ms的差异,如下图所示:
安全函数块Test中的代码如下图所示:
好了,关于双手操作指令就先介绍到这里,本文的示例代码可以从下面的链接获取。
链接:https://pan.baidu.com/s/1cVj6gB5AaFgL46eBGP_Ywg
提取码:ltio
下面是西门子故障安全文章的归档链接:
》》西门子故障安全文章归档《《
我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:
来源:本站| 大小:817KB| 下载次数:753次
发表评论