时间中断函数的编程示例

描述

简介

在以下示例中,将读取延时中断 OB (OB20) 的状态,设置新的延时并启动或禁用 OB20。

要求

在全局数据块中,创建有 10 个变量和一个结构进行数据存储。

中断函数

互连参数:“SLI_itemiseStatus_DINT”函数

要评该估状态信息,需创建一个函数“SLI_itemiseStatus_DINT”。

在该函数中创建以下局部变量。

中断函数

为所有相关位创建互连。

程序段 1:

中断函数

程序段 2:

中断函数

程序段 3:

中断函数

互连参数:“SLI_FB_SRT_DINT”函数块

要调用指令,可创建函数块(“SLI_FB_SRT_DINT”)。在函数块“SLI_FB_SRT_DINT”中,创建以下局部变量。

中断函数

程序段 1:互连“QRY_DINT”指令的参数,如下所示:

中断函数

程序段 2:互连“SRT_DINT”指令的参数,如下所示:

中断函数

程序段 3:互连“CAN_DINT”指令的参数,如下所示:

中断函数

程序段 4:互连将由“CAN_DINT”复位的参数,如下所示:

中断函数

程序段 5:互连“SLI_itemiseStatus_DINT”函数的参数,如下所示。

中断函数

在循环 OB (OB1) 中调用函数块“SLI_FB_SRT_DINT”。

互连参数:OB20

在 OB20 中创建以下互连:

中断函数

“QRY_DINT”的结果

这些指令通过输入参数 OB_NR(“obNbr”)接收待调用 OB 的编号 (OB20)。

程序段 1:

当常开触点(“executeQry”)的信号状态为“TRUE”时,执行“QRY_DINT”指令并读取 OB20 的数据。输出参数 STATUS(“#statWord”)中将显示 OB20 的状态。输出参数 RET_VAL(“returnValueQry”)可用于指示该过程是否存在错误。

中断函数

将变量“#statWord”的值映射到结构“itemiseStatus”中。

中断函数

“SRT_DINT”的结果

程序段 2:当常开触点(“executeSrt”)的信号状态为“TRUE”时,执行“SRT_DINT”指令。通过输入参数 DTIME(“delayTime”),将延时时间 (6 s) 传送到 OB20 中,并启用 OB20。

说明
在时间点 OB20 处,启动延时时间运行,然后再调用 OB20,除非在 CPU 的新循环周期内中再次预先接收到延时时间。

执行 OB20 后,待输出的选定标识符(值“16#0001”)将存储在输入参数 SIGN(“sign”)中。该标识符将显示在 OB20 的启动事件信息中。输出参数 RET_VAL(“returnValueSrt”)用于指示处理无错误。

SRT_DINT 成功执行后,常开触点(“executeSrt”)将返回信号状态“FALSE”,延时时间不再传送到 OB20 中。延时时间结束后,将立即再次执行 OB20。

说明
仅当当前所用的 CPU 循环时间小于 OB20 的延时时间,才能根据参数 EN 确定 OB20 中指定的响应操作。

OB20 的结果

每次调用 OB20 时,都将执行指令“ADD”,且变量“testCurrCount”的值递增“1”。SRT_DINT 中定义的延时时间结束后,仅调用 OB20 一次。OB20 调用后,将再次“禁用”。

中断函数

“CAN_DINT”的结果

程序段 3:设置和启用了 OB20(“#statWord”的值为“16#0014”)时,比较器将返回信号状态“TRUE”,同时 CAN_DINT 可以执行。

中断函数

当常开触点(“executeCan”)的信号状态为“TRUE”时,执行“CAN_DINT”指令。该指令将禁用 OB20 并删除所设置的 OB20 调用数据。
输出参数 RET_VAL(“returnValueCan”)用于指示处理无错误。

CAN_DINT 执行后,线圈(“#statMem”)将置位为“TRUE”,并执行程序段 4。

复位操作的结果

程序段 4:当常开触点(“#statMem”)的信号状态为“TRUE”时,通过指令“MOVE”可将变量“testCurrCount”的值复位为“0”。信号状态为“TRUE”时,复位操作(“executeCan”)将自动结束指令“CAN_DINT”的运行。

状态信息“#statWord”的结果

在程序段 7 中,调用函数“SLI_itemiseStatus_DINT”。将评估变量“#statWord”的有效位,并输出为带有纯文本名称的布尔型变量。当结构为“itemiseStatus”的变量信号状态为“TRUE”时,则语句正确。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分