西门子博途中循环中断功能的编程示例

描述

编程

简介

在以下示例中,将读取循环中断 OB (OB31) 的相位和循环时间,并设置一个新的循环时间。

OB31 具有以下默认值:

编程

要求

互连参数:“SLI_itemiseStatus_CINT”函数   要评该估状态信息,需创建一个函数“SLI_itemiseStatus_CINT”。 在该函数中创建以下局部变量。

编程

为所有相关位创建互连。

程序段 1:

编程

程序段 2:

编程

程序段 3:

编程

互连参数:“SLI_FB_SET_CINT”函数块

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

编程

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

编程

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

编程

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

编程

互连参数:OB31

在 OB31 中创建以下互连:

编程

“QRY_CINT”的结果

通过指令“QRY_CINT”和“SET_CINT”的输入参数 OB_NR(“obNbr”),存储待调用 OB 的编号 (OB31)。

当常开触点(“executeQry”)的信号状态为“TRUE”时,执行“QRY_CINT”指令并读取 OB31 的数据。

循环时间将在输出参数 CYCLE(“qryCycle”)中输出。相位偏移在输出参数 PHASE(“qryPhase”)中输出。
输出参数 STATUS(“#statWord”)中将显示 OB31 的状态。输出参数 RET_VAL(“returnValueQry”)可用于指示该过程是否存在错误。

OB31 的当前状态信息(“#statWord”),将在程序段 3 中通过函数“SLI_itemiseStatus_CINT”进行解释,然后通过结构“itemiseStatus”进行输出。

编程

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

编程

“SET_CINT”的结果

当常开触点(“executeSet”)的信号状态为“TRUE”时,执行“SET_CINT”指令。新循环时间将通过指令“SET_CINT”的输入参数 CYCLE(“setCycle”),传送到 OB31 中。“0”值将作为相位偏移值存储在输入参数 PHASE(“setPhase”)中。

输出参数 RET_VAL(“returnValueSet”)用于指示处理无错误。

编程

“SET_CINT”指令执行后,OB31 将保留新的循环中断数据,直至 CPU 转入 STOP 模式。指令执行后,可将常开触点(“executeSet”)的信号状态再次置位为“FALSE”。“SET_CINT”指令的执行不影响 OB31 的默认属性。

OB31 的结果

当常开触点(“executeSet”)的信号状态为“TRUE”时,在 OB31 中启动 IEC 定时器“TP”。2 分钟后,该 IEC 定时器停止运行。

编程

要进行调用,需创建一个 OB31。

在全局数据块中,创建 12 个变量进行数据存储。  

编程

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

全部0条评论

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

×
20
完善资料,
赚取积分