简介
在以下示例中,将读取循环中断 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 个变量进行数据存储。
-
编程
+关注
关注
88文章
3614浏览量
93685 -
中断
+关注
关注
5文章
898浏览量
41469 -
函数
+关注
关注
3文章
4327浏览量
62569
原文标题:西门子博途:循环中断功能的编程示例
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论