999感冒靈
級別: 略有小成
|
圖片:
圖片:
做一個上升沿條件,內嵌不行,只能觸發一次,斷開再觸發就無效了,是我這么寫錯了嗎???,但是直接建ST的沒問題的,觸發一次執行一次 |
---|---|
|
999感冒靈
級別: 略有小成
|
FB內嵌ST,FB使能和傳送條件不能同一點位 [ 此帖被miao1988225在2019-09-23 15:13重新編輯 ] |
---|---|
|
apei2014
工控的世界,我不懂
級別: 論壇先鋒
|
ldp(true,m0) 上升沿直接這樣就行,不用再加后面那個 |
|
---|---|---|
|
999感冒靈
級別: 略有小成
|
圖片:
FB內嵌ST前面一定要加個條件除了SM400想不到其他了,但是只要FB使能后FB內SM400就不能斷開,那樣上升條件只能外部輸入們還不能跟FB使能條件一樣。不能同時要延時怎么破 |
---|---|
|
hefq
級別: 家園常客
|
這個破不了吧,內嵌ST相當于 CALL Px 只要是調用子程序,并且子程序有觸發條件,就會有上升沿問題, 因為沒調用時,程序是不被 掃到的,上升沿自然沒辦法計算, 所以簡單工程這個無解, 有一個變通的方法,你用結構化工程,建ST語言 FB塊,塊屬性里選EN控制使用MC/MCR,這個我沒測試,但大概率是可以解決你說的問題, |
---|---|
|
hefq
級別: 家園常客
|
要不就前面SM400一直常通,M10的條件寫到ST里面,這樣也可以解決,要保證子程序一直被調用,不然就沒辦法計算上升沿的 |
---|---|
|
hefq
級別: 家園常客
|
反正子程序的上升沿是調用時候的上升沿,跟你本身元件的上升沿不是同步的,除非一直調用,這樣才能同步 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
編程本身就需要注意的,IF嵌套和FB內一般盡量避免使用脈沖化指令以及雙向作用的指令比如OUT。 IF其實編譯后為跳轉或者CALL,條件不滿足時,就不會進行PLC的掃描執行,IF嵌套和FB內里面就像是被凍住一樣,可以理解為內部時間靜止,當再次條件滿足時,里面的狀態還是和不滿足時一樣。也就是條件不滿足到滿足,內部是沒有變化的。 |
---|---|
|
apei2014
工控的世界,我不懂
級別: 論壇先鋒
|
內嵌ST前面的條件直接用SM400就好了,這有什么好糾結的 |
|
---|---|---|
|