新手求大师分析下面程序:
:C DB5
: L KF 0
:T DD 21
:T DW 27
:A F 0.1 (F0.1 Always=1)
: = F 1.1
: AN F 1.1
: = F 1.1
: O F 1.1
: O D 13.0
: JC M001
: L DW 27
: L DW 20
: >=F
: BEC
: S D 21.0
: L DW 27
: I 1
: T DW 27
问题1:既然F1.1=true,为什么后面又有: AN F 1.1
: = F 1.1
: O F 1.1 所以F1.1最终应该为true or false?
问题2:DW27<DW20时,D21.0=true。DW27从0开始累加一直到DW27>DW20时,程序结束。这样理解对吗?
问题补充:
1.这段程序看样看出M1.1一个扫描周期ON,一个扫描周期OFF 。所以F1.1状态就是一个扫描周期ON,一个扫描周期OFF。这样做的作用是什么?麻烦高手举个例子说明下。新手不太懂。
最佳答案
1.在S5PLC中F就是S7PLC的M,所以上面程序就是
AN M1.1
= M1.1
这段程序看样看出M1.1一个扫描周期ON,一个扫描周期OFF 。所以F1.1状态就是一个扫描周期ON,一个扫描周期OFF。
2. 你的理解基本正确。如果DB5.DW27>DB5.DW20,就结束块扫描。如果DB5.DW27<=DB5.DW20,程序继续向下执行。只要DB5.DW27数值不大于DB5.DW20的数值,每个扫描周期DB5.DW27数值会加一,直到DB5.DW27数值大于DB5.DW20数值停止加一,执行到BEC指令时,就结束块扫描了。但是,还存在一个问题,就是跳转指令,当条件满足执行跳转,会跳转到M001处。由于你的程序不完整,没有写出跳转标签M001在何处,所以分析的时候要考虑到这一点。
提问者对于答案的评价:
.1.这段程序看样看出M1.1一个扫描周期ON,一个扫描周期OFF 。所以F1.1状态就是一个扫描周期ON,一个扫描周期OFF。这样做的作用是什么?麻烦高手举个例子说明下。新手不太懂。
2.M001是在这段程序的最末端,作为结束程序。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc125672.html