导读:在前面的文章我们已经介绍了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程序块及测试
最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把SCL核心编程实战案例全部整理出来,案例都是比较典型的,其中包括SCL的语法结构、气缸控制程序、报警程序、运动控制程序、模拟量控制变频器、V90伺服通信等实战案例。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |