本节我们来讲一下西门子S7-1200的上升沿和下降沿指令,通过一个实例来学习上升沿/下降沿指令如何使用。
上升沿/下降沿指令包括P触点、N触点、P线圈、N线圈、P触发器、N触发器。
P触点、N触点指令如图所示,其中bit处为BOOL型变量,上升沿/下降沿指令就是要检测该变量的跳变沿。M_bit处为BOOL型变量,用于保存前一个输入状态的存储器位。当P触点指令检测到bit处的位数据值由0变1的正跳变时,该触点接通一个扫描周期;当N触点指令检测到bit处的位数据值由1变0的负跳变时,该触点接通一个扫描周期。
P线圈、N线圈指令如图所示,其中bit处为BOOL型变量,指示检测到跳变沿的输出位。M_bit处为BOOL型变量,用于保存前一个输入状态的存储器位。当P线圈指令检测到它前面的逻辑状态由0变1的正跳变时,将bit处的位数据值在一个扫描周期内设置为1;当N线圈指令检测到它前面的逻辑状态由1变0的负跳变时,将bit处的位数据值在一个扫描周期内设置为1。
P触发器、N触发器指令如图所示,其中M_bit处为BOOL型变量,用于保存前一个输入状态的存储器位。当P触发器指令检测到CLK输入的逻辑状态由0变1的正跳变时,在一个扫描周期内Q输出为1;当N触发器指令检测到CLK输入的逻辑状态由1变0的负跳变时,在一个扫描周期内Q输出为1。
下面我们通过一个实例来说明升沿/下降沿指令的使用,按一下瞬动按钮I0.6,Q0.0接通,再按一下I0.6,Q0.0断开,如此反复。
一、编写程序。首先在项目树中打开PLC下面的程序块文件夹,双击MAIN打开程序编辑器,在项目视图右侧的指令中,打开位逻辑运算文件夹选择SR指令,双击或拖放到编程区域,输入地址M0.0,用于存储置位或复位的结果,编辑器自动为M0.0生成了变量名称TAG_1,可以在PLC变量表中修改,在Q输出端插入一个输出线圈,输入地址Q0.0,在S输入端插入一个P触点,输入地址I0.6和M0.1,用来捕捉I0.6被按下时的正跳变,再串联一个Q0.0的常闭触点,用于实现Q0.0为0时按一下I0.6,Q0.0置位为1,同样在R1输入端插入一个P触点,输入地址I0.6和M0.2,再串联一个Q0.0的常开触点,以实现Q0.0为1时按下I0.6,Q0.0复位为0,这样控制程序就编写完成了,单击保存项目按钮保存项目。
二、编译、下载程序到PLC。选中项目树中的PLC_1,单击编译按钮编译项目,单击下载按钮将所有块下载到PLC。
三、查看程序运行情况。单击监控按钮,观察程序的执行情况,按一下按钮I0.6,Q0.0接通,再按一下I0.6,Q0.0断开,如此反复。