恭喜,你发布的帖子
发布于 2020-12-06 10:34:06
24楼
以前接触过S5-PLC,S5-PLC是没有沿指令的,用几条最基本语句来实现沿的发生过程,到了S7-300、400时代,西门子把判断沿封装成了一个指令,既然有了独立的沿指令,为何还要加一个中间变量呢,我们可以通过下面产生上升沿的过程来揭示:
CLR //复位RLO位
A I 0.0 //扫描本周期脉冲输入状态
AN M 20.0 //上一周期取反后的脉冲输入状态
= M 20.1 //上升沿状态
A I 0.0 //本周期脉冲输入状态
= M 20.0 //存储本周期脉冲输入状态
当I0.0脉冲信号来到时,M20.1保持了一个机器周期的高电平,M20.0是存储本周期的脉冲状态用的,是一个中间变量,所以沿指令需要用到一个中间变量。我们注意到,在本段程序执行过程中,对M20.0进行了读、写操作。如果在子程序(多次调用的)内部用到沿指令,需要把这个中间变量声明成IN_OUT类型的形参。这样就不会出现问题了。
题外话:从沿的判断过程,我们会发现,至少需要两个机器周期。
请填写推广理由:
分享
只看
楼主