198366809 发表于 2021-4-4 10:32:23

西门子 PLC 利用CPU时间存储器和OB35做计时器

方法一、CPU时间存储器
1.1、在硬件组态完成后,双击CPU模板,选择"CYCLE\CLOCK MEMORY"选项,切换视窗后,选择底部的"CLOCK MEMORY"选项,这就是内部时钟脉冲的设置项,系统默认值是MB0,当勾选"CLOCK MEMORY"时,用户可以设置自已感兴趣的MB值.
如果设置的字节是MB100,从M100.0到M100.7为周期性改变值的存储位(脉冲占空比1:1)例如:m100.5为循环接通0.5s断开0.5s。
时钟位对应的时钟周期:https://p3-tt.byteimg.com/origin/pgc-image/ed41102de2bb41c090004a4433d059ec.png?from=pc

https://p3-tt.byteimg.com/origin/pgc-image/ecbf12b4249444f289b258cc4e2162a9.png?from=pc

1.2、仿真
编写程序,M150.5由内部时钟控制,通断周期为1S;利用整数加法指令每个脉冲的上升沿加一次。Md50中的数据就是以1s一次累计的计时器https://p3-tt.byteimg.com/origin/pgc-image/b967d5f907dc4245a7773db370e56449.png?from=pc

https://p3-tt.byteimg.com/origin/pgc-image/0698bfcc55d64a5eaa70122a574073a1.png?from=pc

方法二、利用等时中断组织块来实现等时中断,在OB35中调用存储程序块,实现等时存储,该方法较精确
2.1、在硬件组态完成后,双击CPU模板,选择“Cyclic Interrupts”,设置“OB35”循环中断时间“Execution”,1000为中断时间。https://p6-tt.byteimg.com/origin/pgc-image/8bdd57c3e46b4503a44e3306d584e0c2.png?from=pc

新建“OB35”块,并双击打开,选择累加指令“ADD DI”, 编写如下图中的程序https://p1-tt.byteimg.com/origin/pgc-image/b887485b076742cd9a32364ecabe612a.png?from=pc

https://p3-tt.byteimg.com/origin/pgc-image/ee0b78c53854453d845f110ba2727829.png?from=pc


打开PLCSIM,下载“OB35”块到仿真PLC,打开监视器,数值1s增加1。https://p6-tt.byteimg.com/origin/pgc-image/addc433b3be64ca1b329f10950eccc2a.png?from=pc

高鑫 发表于 2021-4-4 12:12:11

看完楼主的帖子,我的心情竟是久久不能平息,受教了

言与午 发表于 2021-4-5 03:03:12

真是难得给力的帖子啊。

zjs2020 发表于 2025-11-13 14:36:40

楼主辛苦啦,期待下一篇分享!

wujian_hnac 发表于 2025-11-13 15:13:27

这逻辑绝了,分析得太到位了吧

李乐斌 发表于 2025-11-13 15:14:37

求个链接 / 教程,楼主好人一生平安~

xie77520 发表于 2025-11-13 15:22:00

我先占个楼,等下再慢慢看~

文刀 发表于 2025-11-13 15:26:57

评论区人才辈出,笑到停不下来😂

wx_ICO9L7ck 发表于 2025-11-13 15:29:24

楼主太会说了,字字句句都在理~

jsjjzjg 发表于 2025-11-13 15:32:30

学到干货了,感谢分享,已火速收藏
页: [1] 2 3 4
查看完整版本: 西门子 PLC 利用CPU时间存储器和OB35做计时器