zl1351766396
級別: 正式會員
|
圖片:
初學ST語言編程,在某個資料中看到定時器應用,資料中說定時器輸出Q要放在定時器前面。我自己在GXworks3中測試了一下,輸出Q放在定時器后面計數也是正常的是我哪里理解有誤嗎麻煩各位大佬指點一下 |
---|---|
|
宿遷電工
級別: 論壇先鋒
|
你照著寶馬車的維保手冊去試奔馳,能測試出正確結果嗎? |
|
---|---|---|
|
有魚丶
勿以獨見而違眾,勿以辯說為必然
級別: 略有小成
|
他說的這個Q是定時器的條件滿足后輸出點 |
---|---|
|
有魚丶
勿以獨見而違眾,勿以辯說為必然
級別: 略有小成
|
這里面的圖2,定時器的使能點是用的Q點的反接點,也就是說當定時器定時完成瞬間,輸出了Q后,第二個掃描周期會把定時器給停掉,然后在刷新執行時,定時器斷開,定時器的Q就沒使能了,所以不會執行加法邏輯。就相當于是執行1次的上升沿。而且他還用了特定的功能 "TON.TON()",通常我們只用ton。 學習ST語言后,盡量少用PLC品牌方封裝的指令。有得選就只用IEC標準的指令 [ 此帖被有魚丶在2024-11-27 13:24重新編輯 ] |
---|---|
本帖最近評分記錄: |
有魚丶
勿以獨見而違眾,勿以辯說為必然
級別: 略有小成
|
你把定時器換成置位復位就能理解。 實在理解不了也不用糾結,不用就是。 項目要用到定時以后執行1個上升沿的話,就用R_TRIG |
---|---|
|
有魚丶
勿以獨見而違眾,勿以辯說為必然
級別: 略有小成
|
IF b模式選用 THEN T_01(IN:=NOT(T_01.q) , PT:=T#2S , Q=> , ET=> ); IF T_01.Q THEN var1:=var1+1; END_IF END_IF; IF b模式選用=FALSE THEN IF T_01.Q THEN var1:=var1+1; END_IF T_01(IN:=NOT(T_01.q) , PT:=T#2S , Q=> , ET=> ); END_IF; 這種寫法就是,上下都能用的 |
---|---|
|
zl1351766396
級別: 正式會員
|
感謝大佬指點,我又重新研究了下PLC刷新機制,再看到你的解答我應該算是明白了 |
---|---|
|