[西门子] 1200PLC中的SCL沿脉冲使用方法与技巧

[复制链接]
查看127 | 回复0 | 2024-9-9 14:51:43 | 显示全部楼层 |阅读模式
导读:在前面的文章我们已经介绍了SCL的基本逻辑指令,包括点动、自锁、IF指令等程序。仅仅学习这些指令还不够,编程肯定少不了上升沿和下降沿指令,那沿指令使用SCL语言编写是怎么样的呢?
第一种方法:使用SCL指令中自带的沿脉冲指令。这种沿脉冲指令只要填写两个管脚的地址,分别是图中的CLK和Q。但是它的缺点就是,每一个沿脉冲指令就需要分配一个背景DB块。如果很多个沿脉冲指令,则需要分配很多个DB,这样的话就会浪费PLC的内存。


第二种方法:自编一个沿脉冲指令的程序块,这样就不需要每次都分配背景DB块。
上升沿指令的规律就是:本次的状态与上一次的状态对比,如果上次是0,本次的状态为1,则输出逻辑执行一个扫描周期。
下降沿指令的规律就是:本次的状态与上一次的状态对比,如果上次是1,本次的状态为0,则输出逻辑执行一个扫描周期。
那么我们就根据其规律来编写沿脉冲程序
1.新建FC4程序块,定义接口变量
2.当程序中“#I_检测信号”的值为0时,“#IO_边沿存储位”也为0时,取反后就是为1,此时执行“#O_沿输出:=FALSE;”,“#IO_边沿存储位”也为0。
而当程序中“#I_检测信号”的值为1时,“#IO_边沿存储位”为0时,取反后就是为1,则会输出#O_沿输出 :=TRUE;紧接着“#IO_边沿存储位”也为1,IF语句条件不满足,则不执行IF语句,实现了上升沿输出功能。

3.调用FC4程序块及测试

4.新建FC5程序块,定义接口变量
5. 当程序中“#I_检测信号”的值为0时,取反后就是为1 ,“#IO_边沿存储位”也为0时,此时执行“#O_沿输出:=FALSE;”,“#IO_边沿存储位”也为0。
而当程序中“#I_检测信号”的值为1时,取反后就是为0,“#IO_边沿存储位”为0时,则会输出#O_沿输出 := FALSE;紧接着“#IO_边沿存储位”也为1。
在下一次程序中“#I_检测信号”的值为0时,取反后就是为1 ,“#IO_边沿存储位”为1时,此时执行“#O_沿输出 :=TRUE;”,则会输出#O_沿输出 := TRUE。
这样就实现了从1变为0后接通一个扫描周期。

6.调用FC5程序块及测试

最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把55个实战案例全部整理出来,案例都是比较典型的,其中包括气缸控制程序、报警程序、程序框架、运动控制程序封装、模拟量控制变频器、通信等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我!!!!!!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则