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

西门子PLC故障安全编程——ESTOP1指令

西门子故障安全PLC的编程需要使用故障安全指令。今天这篇文章,我们来介绍下用于急停按钮的ESTOP1指令。

本文包括两个主题:

  1. 指令介绍;

  2. 应用举例;

cover.png

1、指令介绍

当项目组态的CPU是故障安全型CPU时,在【基本指令】列表中会有【安全指令(Safety functions)】一栏,如下图所示:

instruction_list.PNG

安全指令的背景色为黄色,以便与普通指令进行区别。

在【安全指令】中找到"ESTOP1"指令并将其拖拽到程序块中,系统会自动提示创建背景数据块,单击【确定】使用默认名称即可。

初始添加的ESTOP1指令如下图所示:

ESTOP1_Initialize.png

该指令的主要输入参数包括:E_STOP、ACK_NEC、ACK和TIME_DEL;

主要输出参数包括:Q、Q_DELAY、ACK_REQ和DIAG;

参数具体信息请看下面的表格:

ESTOP1输入参列表
名称
数据类型
说明

E_STOP

BOOL

急停输入信号

ACK_NEC

BOOL

是否需要手动复位,1=需要,0=不需要;

ACK

BOOL

复位信号

TIME_DEL

TIME

延时的时间


ESTOP1输出参数列表
名称
数据类型
说明

Q

BOOL

急停输出(1=Enabled)

Q_DELAY

BOOL

延时的急停输出

ACK_REQ

BOOL

1=请求复位

DIAG

BYTE

诊断字节

ESTOP1指令的功能:

  • 当输入信号E_STOP的值从1变为0时,输出信号Q的值立刻变为0;

  • 当输入信号E_STOP的值从1变为0时,延时TIME_DEL的时间后,输出信号Q_DELAY的值变为0;

  • 参数ACK_NEC用来设置当故障发生后是否需要手动确认,有两种情况:

  • ACK_NEC=0表示不需要手动确认故障,这种情况下当E_STOP的值从0变为1时,输出信号Q的值将立刻置位(变为1);

  • ACK_NEC=1表示需要手动确认故障,这种情况下当E_STOP的值从0变为1时,请求复位信号ACK_REQ的值将变为1。此时需要ACK的上升沿输入信号才能将输出信号Q的值置位(1),并且将ACK_REQ的值复位;

诊断字节DIAG用来反馈指令的一些状态,其各个位的含义如下:


含义

0

TIM_DEL设置值错误,时间值应大于0

1

保留

2

保留

3

保留

4

急停信号未回复,无法确认故障

5

ACK信号错误

6

请求复位(=ACK_REQ的值)

7

急停信号输出(=Q的值)

 2、应用举例

假设急停信号连接到故障安全输入通道I12.0,复位信号为I8.0,急停输出通道为Q21.0、急停延时输出通道为Q21.1,确认故障请求信号为M10.0,诊断字节为MB9,则使用ESOP1指令代码如下:

ESTOP1_Example.PNG

也可以在急停输出Q使用中间变量(比如M10.1),然后与其它一些条件进行运算后再输出到输出通道,该信号一般用于某路电源的控制。

好了,关于ESTOP1指令就先介绍这么多。

我的微信视频号分享一些工控小知识,最近正在分享步进电机的一些内容,欢迎扫描下面的二维码查看:

取消

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

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

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

发表评论