圖片:
今晚寫了個實驗程序:
用for 里面寫
a【6】++,
執行完for后,
把a【6】的值送到輸出端(沒寫a[6]的初始化),
執行完輸出語句 下一行
用if語句把fff的值置1,進行輸出(目的是把調用他的塊en端關掉,結束掃描)
、、、、、、、、、、、、、、、、、、
最后實際輸出的值就根理論相同了。。。。
也就是1:scl的單步調試,不是按照cpu掃描周期走的,也就是你每走一步,cpu也許掃描了上萬次。(根Java不太一樣,java單步調試只輸出一次)
2:plc的scl進入掃描,由于沒有高級語言中的“return”進行返回,所以他執行完語句的最后一條后,還會從頭再掃描。。。。也就造成了cpu每掃一次,for語句的就重復執行一次,這cpu如此掃描,就使for如此進入重復執行的死循環,,,,,,
thanks各位愛心大哥