北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8691014

西门子故障安全编程——双手操作指令

在切割/冲压等机械加工领域,有时候需要操作人员手动上料。手动上料过程中设备应处于停止状态,当上料完毕并确认安全后,才能再次启动。如果操作人员违反操作规程(比如一只手上料的同时另一只手去启动按钮),可能造成伤害的发生。为了避免这种伤害,人们发明了双手操作按钮。双手操作按钮必须两只手同时按下按钮才能激活输出(启动设备),下面这张图是西门子3SB38双手操作按钮盒:

two-hand operation console.png

双手操作按钮盒需要配合专用控制器(双手同步控制器)才能工作。如果使用故障安全型PLC,可以通过双手操作指令来完成类似的功能。今天这篇文章,我们就来介绍下博途环境下基于故障安全的双手操作指令——TWO_H_EN。本文包括两个主题:

①指令介绍;

②应用举例;

cover.png

1、指令介绍

打开博途开发环境,新建项目。在左侧项目树双击“添加新设备”,在弹出的对话框中单击“控制器”,任意选择一款故障安全型CPU(比如:CPU 1515F-2PN)。

在新添加的PLC项目树中选择“程序块”→“添加新块”,在弹出的对话框中选择“函数块”,命名为“Test”,并勾选“Create F-block(创建安全块)”,如下图所示:

create fb.png

打开Test函数块,在右侧的指令列表中,“基本指令”→“安全指令(Safety functions)”中,可以看到“TWO_H_EN”指令(带有使能信号的双手操作指令),如下图所示:

指令列表.png

将该指令拖放到Test函数块中,会自动提示生成背景数据块,完成后如下图所示:

Two_H_EN.png

该指令有四个输入参数和两个输出参数,其中:

输入参数:

①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,在其中新建变量如下图所示:

simulation-DB.png

为了模拟双手按钮的按下动作,编写testFC,使按钮1和按钮2的触发由有200ms的差异,如下图所示:

simulation-Button.png

安全函数块Test中的代码如下图所示:

FB-Test.png

好了,关于双手操作指令就先介绍到这里,本文的示例代码可以从下面的链接获取。

链接:https://pan.baidu.com/s/1cVj6gB5AaFgL46eBGP_Ywg
提取码:ltio

下面是西门子故障安全文章的归档链接:

》》西门子故障安全文章归档《《
我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:

西门子故障安全编程——双手操作指令

来源:本站|   大小:817KB|   下载次数:827次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论