图5
1.3 开发检测下降沿指令
与开发检测上升沿指令类似,新建FC并定义接口变量,这里不再一一赘述。在编程上两者有所不同,其编程思想如下:
当#signal由1变成0时,此时作为边沿存储位的#thirdVariable仍保留#singal信号上一周期的状态,#thirdVariable为True,此时满足IF语句,FallingEdgeDetection被赋值为True。
当#signal由1变成0后的下一周期,#thirdVariable上个周期已被#signal赋值为相同状态,即#thirdVariable和#signal都为False,则不再满足IF语言,FallingEdgeDetection被赋值为False。
FallingEdgeDetection输出持续一个周期。
程序代码如图6所示:
图6
1.4 功能测试
使用开发完成的功能块,检测Q0.0的上升沿和下降沿,编程代码如图7所示,Trace时序图如图8所示。
图7
图8
其中:
Data.thirdVariable1为检测上升沿指令所用到的第三方变量;
RisingEdgeDetection为输出上升沿;
Data.thirdVariable2为检测下降沿指令所用到的第三方变量;
FallingEdgeDetection为输出下降沿。
1.5 效果比对
为了更好的说明该自行开发沿指令的优势,我们分别使用R_TRIG指令和RisingEdgeDetection指令编写相同的工艺功能程序,通过对比两者所占用工作存储区大小的差异,加以说明。
工艺功能要求:利用S7-1214C,使用SCL编程语言编程,在FB1中实现1000个Bool信号的上升沿检测。
1.5.1 使用R_TRIG实现相关工艺功能
从上述分析中,我们可以得出自行开发的沿指令RisingEdgeDetection、FallingEdgeDetection比R_TRIG、F_TRIG指令占用更少的工作存储区空间,且适用于SIMATIC S7-1200及S7-1500 PLC。
源:网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
机器人学习资料免费领取↓
机器人学习资料免费领取↓
机器人学习资料免费领取↓
戳”阅读原文“,报名咨询机器人课程
点个「在看」 你最好看查看