『7x24小时有问必答』
   SCL语言之上升沿和下降沿指令,用SCL语言做程序时经常使用上升沿和下降沿指令,对于这个指令有两种写法,本文简单介绍一下这两种写法,大家根据自己的需要,看看适合自己那种写法

一、系统标准块:R_TRIG(上升沿) / F_TRIG(下降沿)
引脚含义
CLK边沿检测输入信号
Q边沿脉冲输出,仅1个扫描周期=1
内部自带历史寄存器,不用自己定义前一周期变量.
工作原理:PLC每个周期自动保存上一周期  CLK  状态,

- R_TRIG:上周期0→本周期1 → Q=1(1周期)

- F_TRIG:上周期1→本周期0 → Q=1(1周期)

  优缺点
优点:代码整洁、不易写错、标准化、便于阅读,项目首选
缺点:每个边沿占用一个DB/背景数据块,点位极多时略占资源

以下是实例:

二、前后周期对比法(自写边沿,最底层原理)

原理公式
  
- 上升沿脉冲:  P_UP := 当前信号 & !上周期信号  
- 下降沿脉冲:  P_DOWN := !当前信号 & 上周期信号  

关键:最后把当前值存入历史变量,留给下个周期对比

优缺点

优点:不生成额外FB背景块、省存储、大量点位批量处理方便

缺点:每个信号多1个BOOL变量,新手容易刷新顺序写错失效

以下是实例:

三.做了一个简单的传送带控制功能块

1.调用系统功能块 R_TRIG(上升沿) / F_TRIG(下降沿)编写的程序

2.前后周期对比法编写的程序

3.两者相互比较

  对于上升沿和下降沿指令,除了以上两种写法,还有别的方法,例如,可以通过数组+FOR循环写,但个人觉得不如以上两种方法简单易懂,个人觉得日常使用还是使用以上两种比较好.
数组+FOR循环实例:

FOR i:=0 TO 9 DO
      Puls:=Sig AND NOT Sig_Last;
      Sig_Last:=Sig;
END_FOR;

好了,本文就介绍到这里,这些都是个人自己学习SCL语言时总结,只想记录总结一下,把这些知识分享出来仅供大家参考,希望也能对您们有所帮助,不对的地方,欢迎留言讨论,感谢大家的阅读,谢谢大家啦!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

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

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码