wzbarley
好好學習,天天向上。
級別: 探索解密
|
首先了解沿的機制;將當前信號和上一周期信號進行比較;上升沿是檢測0到1的變化,下降沿是檢測1到0的變化。 以上升沿為例,當前信號和上一周期信號閉點串聯(與運算);待處理程序處理完成后,將當前信號重新賦值給上一周期信號的存儲器中。SCL和梯形圖類似。 |
|
---|---|---|
|
wingwf2000
級別: 探索解密
|
嚴格說來,這種寫法是每執行一次代碼就相當于一個上升沿,但是若是在一個掃描周期多次執行或好幾個周期才執行一次的話,就會出錯! 2樓的也是這樣,甚至于1樓的亦是如此
|
---|---|
|
wzbarley
好好學習,天天向上。
級別: 探索解密
|
你說的這種情況不在沿的使用范疇內;這種用中斷就行了。 |
|
---|---|---|
|
世界杯之殤
級別: 正式會員
|
你確定?這個應該和這兩個變量是什么變量有關系,只要不是臨時變量這個就不會出錯,我自己的程序中很多都這樣用沒出現過什么異常。 |
---|---|
|
wingwf2000
級別: 探索解密
|
如果你把代碼寫進子程序里,這個子程序是否能保證一個PLC掃描周期只調用一次?還是能保證每個周期都調用? 或者這部分代碼在一個循環里多次被執行,或者可能被跳轉指令跳過而不執行,你可能就會發現里面的貓膩了。 不過一般來說好多人都沒使用過循環或跳轉指令,而且寫的子程序都是一個掃描周期都被掃描而且一個掃描周期內只掃描一次,即使不是在子程序內,一般的這部分代碼也都是一個掃描周期只掃描一次而且每個掃描周期都被掃描。 所以上面的代碼本質上反映的就是本次執行代碼和上次執行代碼時信號有變化(只能表明這次執行代碼時的變量和上次執行這次代碼時的變量不同,也可能執行兩次代碼之間信號有若干次變化被你捕捉到,亦有可能這兩次代碼之間信號雖有若干次變化,但執行本次代碼時信號剛好恢復原狀而不能捕捉到,這樣算你倒霉)! [ 此帖被wingwf2000在2024-08-28 11:49重新編輯 ] |
---|---|
|
donxlr
級別: 正式會員
|
圖片:
源碼應該是這樣的,FB塊 [ 此帖被donxlr在2024-08-28 14:25重新編輯 ] |
---|---|
|
liaogf
級別: 正式會員
|
那個代碼就算執行1萬次也不會有問題,只要不是臨時的變量! |
---|---|
|