新手求大师分析下面程序:
:CDB5
:LKF0
:TDD21
:TDW27
:AF0.1(F0.1Always=1)
:=F1.1
:ANF1.1
:=F1.1
:OF1.1
:OD13.0
:JCM001
:LDW27
:LDW20
:>=F
:BEC
:SD21.0
:LDW27
:I1
:TDW27
问题1:既然F1.1=true,为什么后面又有:ANF1.1
:=F1.1
:OF1.1所以F1.1最终应该为trueorfalse?
问题2:DW27<DW20时,D21.0=true。DW27从0开始累加一直到DW27>DW20时,程序结束。这样理解对吗?
问题补充:
1.这段程序看样看出M1.1一个扫描周期ON,一个扫描周期OFF。所以F1.1状态就是一个扫描周期ON,一个扫描周期OFF。这样做的作用是什么?麻烦高手举个例子说明下。新手不太懂。
最佳答案
1.在S5PLC中F就是S7PLC的M,所以上面程序就是
ANM1.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是在这段程序的最末端,作为结束程序。