本章介绍了循环中断OB的功能、与循环中断OB相关的指令、执行过程以及举例说明的内容。
循环中断 OB
● 循环中断 OB 的功能
循环中断 OB 在经过一段固定的时间间隔后执行相应的中断 OB 中的程序。
S7-1500 最多支持 20 个循环中断 OB ,在创建循环中断 OB 时设定固定的间隔扫描时间。在 CPU 运行期间,可以使用“SET_CINT”指令重新设置循环中断的间隔扫描时间、相移时间;同时还可以使用“QRY_CINT”指令查询循环中断的状态。循环中断 OB 的编号必须为30~38,或大于、等于123。
● 与循环中断 OB 相关的指令功能
指令名称 | 功能说明 |
SET_CINT | 设置指定的中断 OB 的间隔扫描时间、相移时间,以开始新的循环中断程序扫描过程。 |
QRY_CINT | 使用该指令查询循环中断的状态。 |
● 循环中断 OB 的执行过程,请参见下图1:
1、PLC 启动后开始计时;
2、当到达固定的时间间隔后,操作系统将启动相应的循环中断 OB ;
3、图例中,到达固定的时间间隔后,循环中断 OB30 中断程序循环 OB1 优先执行。
循环中断的执行过程请参考下图:
图1. 循环中断 OB 执行图例
● 循环中断 OB 的使用示例:
例如:运用循环中断,使 Q0.0 500ms输出为1,500ms输出为0,即实现周期为1s的方波输出。具体实现过程如下:
1、按如下步骤创建循环中断 OB30 。如图2。
图2. 创建循环中断 OB30
2、OB30 中编程如下图,当循环中断执行时,Q0.0 以方波形式输出。如图3。
图3. OB30 中编程
3、在 OB1 中编程调用“SET_CINT”指令,可以重新设置循环中断时间,例如:CYCLE=1s(即周期为2s);调用“QRY_CINT”指令可以查询中断状态。在“指令->扩展指令->中断->循环中断”中可以找相关指令。如下图4。
图4. 调用循环中断指令
OB1 中的编程见图5:
图5. OB1 中的编程
“SET_CINT”指令参数说明:
EN | :=%M100.0 | //当 EN 端出现上升沿时,设置新参数 |
OB_NR | :=30 | //需要设置的 OB 的编号 |
CYCLE | :=1000000 | //时间间隔(微秒) |
PHASE | :=0 | //相移时间(微秒) |
RET_VAL | :=%MW0 | //状态返回值(详细信息请查看在线帮助) |
“QRY_CINT”指令参数说明:
OB_NR | :=30 | //需要查询的 OB 的编号 |
RET_VAL | :=%MW2 | //状态返回值(详细信息请查看在线帮助) |
CYCLE | :=%MD4 | //查询结果:时间间隔(微秒) |
PHASE | :=%MD8 | //查询结果:相移时间(微秒) |
STATUS | :=%MW12 | //循环中断的状态(详细信息请查看在线帮助) |
4、测试结果:程序下载后,可看到 CPU 的输出 Q0.0 指示灯0.5s亮,0.5s灭交替切换;当 M100.0 由0变1时,通过“SET_CINT”将循环间隔时间设置为1s,这时,可看到 CPU 的输出 Q0.0 指示灯1s亮,1s灭交替切换。
● 相移时间(Phase shift)功能
当使用多个时间间隔相同的循环中断事件时,设置相移时间可使时间间隔相同的循环中断事彼此错开一定的相移时间执行。请通过如下两幅图例理解相移时间的概念。
下图中,没有设置相移时间,以相同的时间间隔调用两个 OB ,则低优先级的 OB 块将不能以固定间隔时间 t 执行;何时执行受高优先级的 OB 执行时间影响,请看图6。
图6. 没有相移的循环 OB 调用
下图中,低优先级的 OB 块可以以固定间隔时间 t 执行;相移时间应大于较高优先级 OB 块的执行时间,请看图7。
图7. 有相移的循环 OB 调用
小结:如果以相同的时间间隔调用优先级较高和优先级较低的循环中断 OB ,则只有在优先级较高的 OB 完成处理后才会执行优先级较低的 OB 。低优先级 OB 的执行起始时间会根据优先级较高的 OB 的处理时间而延迟,如果希望以固定的时间间隔来执行优先级较低的 OB ,则优先级较低的 OB 需要设置相移时间,且相移时间应大于优先级较高的 OB 的执行时间。
如何设置相移时间?
请看下图的设置步骤。(请注意,如果程序中调用“SET_CINT”指令设置相移时间,则以程序中设定的时间为准)
图8. 相移的设置步骤
常见问题:
使用循环中断需要注意什么?
1、循环中断 + 延时中断数量 <= 20;
2、循环间隔时间1~60000ms,通过指令“SET_CINT”设置错误的时间将报错16#8091;
3、CPU 运行期间,可通过“SET_CINT”指令设置循环中断间隔时间、 相移时间;
4、如果“SET_CINT”指令的使能端 EN 为脉冲信号触发;则 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,循环中断间隔时间将复位为 OB 块属性中设置的数值;
5、如果循环中断执行时间大于间隔时间,将会导致时间错误。
公众号: 巨控电子( ) 西门子WINCC
博途WinCC专业版C/S架构入门指南
咔!咔!咔!自动/停止/手动 - WinCC中的三档转换
按图索数-WinCC中的“地图+数据”
WinCC与S7-1500 R/H系统通信
通过Web Service与WinCC交互数据
可缩放矢量图形(SVG)在WinCC中的应用
WinCC V7.5典型架构及选型指南
自动语音播报WinCC报警消息
西门子TIA博途
1.S7-PLCSIM Advanced使用入门
2.使用PLCSIM Advanced仿真博途PID
3.使用PLCSIM Advanced仿真博途Modbus_TCP
4.使用PLCSIM Advanced仿真博途S7-1500 OPC UA
西门子TIA博途SCL学习
1.西门子PLC用TIA博途SCL语言写的一个产生随机实数的指令块(学习1)
2.TIA博途SCL编程学习2_sin(x)
3.TIA博途SCL编程学习3_两个数的计算器
4.TIA博途SCL编程学习4_选择法排序
5.TIA博途SCL编程学习5_一串数字的加法
6.TIA博途SCL编程学习6_数组逆序
7.西门子TIA博途S7-1200/1500学习7间接寻址指令PEEK的使用
8.TIA博途SCL编程学习8_计算N天后的日期
9.TIA博途SCL编程学习9_百鸡百钱
10.TIA博途SCL编程学习10_字符串日期转换成DATE数据类型
11.TIA博途SCL编程学习11_多条件与运算
12.TIA博途SCL编程学习12_数组求和两种算法比较
13.TIA博途SCL编程学习13_电机正反转加点动
14.TIA博途SCL编程学习14_填表格
15.TIA博途SCL编程学习15_素数判断
16.TIA博途SCL编程学习16_歌德巴赫猜想验证
17.TIA博途SCL编程学习17_选择法排序
18.TIA博途SCL编程学习19_分数段人数统计
19.TIA博途SCL编程学习19_分数段人数统计
20.TIA博途SCL编程学习20_换钱
21.TIA博途SCL编程学习21_4个数字中的3个数字的排列组合
22.TIA博途SCL编程学习22_奖金计算
23.TIA博途SCL编程学习23_求最大公约数和最小公倍数
24.TIA博途SCL编程学习24_一串数字的加法
25.TIA博途SCL编程学习25_找出1-1000之间的完数
26.TIA博途SCL编程学习26_小球反弹高度
27.TIA博途SCL编程学习27_猴子吃桃
28.TIA博途SCL编程学习28_一个分数序列加法
29.TIA博途SCL编程学习29_五位数分解
30.TIA博途SCL编程学习30_捡鸡蛋
31.TIA博途SCL编程学习31_HelloWorld
32.TIA博途SCL编程学习32_幂
33.TIA博途SCL编程学习33_水仙花数
34.TIA博途SCL编程学习34_完数
35.TIA博途SCL编程学习35_另类比大小
36.TIA博途SCL编程学习36_自然数反转
37.TIA博途SCL编程学习37_数字加密
38.TIA博途SCL编程学习38_三种方法求最大公约数
39.TIA博途SCL编程学习39_友好数
40.TIA博途SCL编程学习40_平方回文数
41.TIA博途SCL编程学习40_斐波那契数列
42.TIA博途SCL编程学习41_大数乘法
43.TIA博途SCL编程学习42_三位数的组合
44.TIA博途SCL编程学习43_新娘和新郎
45.TIA博途SCL编程学习44_韩信点兵
46.TIA博途SCL编程学习45_过桥问题
47.TIA博途SCL编程学习46_分鱼问题
48.TIA博途SCL编程学习47_跳跃游戏
49.TIA博途SCL编程学习47_狼追兔子
50.TIA博途SCL编程学习50_扑克牌顺子判断
51.TIA博途SCL编程学习51_邮票组合
52.博途SCL编程实例泵顺启逆停的状态机
53.TIA博途SCL编程学习52_邮票组合抓捕交通肇事犯
54.TIA博途SCL编程学习53_求车速
55.TIA博途SCL编程学习54_公式法计算圆周率(Π的近似值)
WinCC中的画面模板应用实例及其组态实现方法
罗克韦尔AB软件学习视频下载
WinCC 输入/输出域没有所需要的预定义输出格式该怎么办?
在WinCC中如何使用VBS读取变量归档数据到EXCEL
S7-1500如何选?西门子选型工具的正确打开方式
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/gongkongxiaozhou/article/details/136220325