|
你畫的彩虹
世間美好與你環環相扣
級別: 家園常客
|
要把定時器挪出來寫,不然短時間內不會錯誤,長時間運行就有問題,剛開始看不出來,親測 |
|
|---|---|---|
|
|
零度浪子001
級別: 探索解密
|
M1為true,定時器開始計時。M1為false,定時器清零,這個邏輯沒問題啊。 把定時器清零那個注釋掉,就可以計時了,說明問題應該不是把定時器寫在if語句內的問題吧 |
|---|---|
|
|
|
零度浪子001
級別: 探索解密
|
沒錯,可以這樣的,關鍵是按照我圖示的寫法為什么不行,我想找到原因 |
|---|---|
|
|
|
zmrs163
級別: 家園常客
|
圖片:
看來大家都不夠無聊,那么我來分析下這個現象產生的原因吧。首先,三菱WORKS2,WORKS3通過模擬,校驗的方式獲取編譯出來的結果,因此第一步獲取編譯結果,經過我的測試,3U,Q的編譯結果是一致的,如下圖所示 |
|---|---|
|
|
|
zmrs163
級別: 家園常客
|
圖片:
然后大膽猜測和CJ指令的運行方式有關,翻閱手冊可以看到,如果子程序中存在RST 定時器,并不能通過CJ跳過RST指令的方式取消這種狀態,手冊內容如圖所示,Q的手冊沒有這個說明,應該不存在此機制 |
|---|---|
|
|
|
zmrs163
級別: 家園常客
|
圖片:
在程序前直接觸發M1,可以計時,所以結論就是圖3所說的,一開始的M1沒有ON導致RST T2導通,T2進入復位狀態,CJ跳過并不能使其跳出復位狀態,解答完畢 |
|---|---|
|
|
|
零度浪子001
級別: 探索解密
|
這樣看,梯形圖才是王道啊。 |
|---|---|
|
|