foxplc
水到渠成
級別: 家園常客
|
水處理過濾器有5只閥門,進水閥(Q0.0),出水閥(Q0.1),反洗進水閥(Q0.2),反洗出水閥(Q0.3),排污閥(Q0.4) 有三種工作狀態: (1)過濾(M0.0),開進水閥(Q0.0),出水閥(Q0.1), (2)反洗(M0.1),開反洗進水閥(Q0.2),反洗出水閥(Q0.3) (3)排污(M0.2),開進水閥(Q0.0),排污閥(Q0.4) 控制要求: 系統在自動狀態下(I0.0),過濾60秒(C0),反洗30秒(C1),排污60秒(C2),周而復始.當差壓信號(I0.1)來時,延時20秒(T37), 也反洗30秒,排污60秒,再過濾60秒(C0),反洗30秒,排污60秒,LAD如下圖 |
---|---|
|
醉湮邃虞
醉湮邃虞話老黑
級別: 略有小成
|
線圈 --( ) 的 控制方式常用的有三種 直接控制 ---( ) ,置位指令-----(S) ,復位指令----(R) 直接控制,通常用于控制脈沖轎寬的情況下,或者直接條件執行,必須條件滿足時才能輸出,只能夠保持在與控制條件相同的狀態. 復位與置位指令通常用于控制脈沖較窄的情況,任何位置執行一次即可復位或置位輸出,執行后即使控制條件不滿足,也能維持輸出. 我感覺你的問題不是出在理解上了,而是程序問題,沒太仔細分析你的程序,看了你的文字說明,主要問題出在了差壓信號不能保持,其控制的延時器也就不能定時,后續的控制也就不起作用,此時應該建立一個中間位來記憶差壓信號,程序開始運行后,再復位該中間位,實現方式有多種,在此提供給你一種作為參考. :網絡2改成下面的,M20.0替換成你需要的,復位M20.0的位置需要你自己去找,我現在放的位置是T37到達后復位,同時T37也復位了,不知道是否影響你后面的控制.此程序只是給你個參考.. LD SM0.0 LPS A I0.1 EU S M20.0, 1 LRD A M20.0 TON T37, 200 LPP A T37 R M20.0, 1 [ 此帖被醉湮邃虞在2009-02-17 13:11重新編輯 ] |
|
---|---|---|
|
醉湮邃虞
醉湮邃虞話老黑
級別: 略有小成
|
你原來的網絡2還有個弊病,這種直接控制很容易受干擾,建議網絡2保留,,把定時器換成時間短點兒的,延時時間100MS以下,比如30毫秒,這樣你原來的網絡2可以過濾掉干擾差壓信號,只有當壓差信號來臨并保持30毫秒,才啟動后續的程序,那么我提供給你參考的程序中I0.1輸入點相應的替換成你那個短時間定時器的開點.這樣應該才是一個完美的程序. |
|
---|---|---|
|
醉湮邃虞
醉湮邃虞話老黑
級別: 略有小成
|
哦,看來我審題不清,感謝樓上的朋友,讓我仔細分析了一下程序,我重新看了一下感覺問題,出在了,計數器的復原指令上,如果循環周期能正常執行完,則程序不存在問題,但是如果壓差信號是在任意時刻來臨,那么C0,C1兩個計數器就有可能沒有復原,其值就有可能大于30或60,網絡7得以執行,使得T37剛剛置位的M0.1在網絡7復位,執行排污動作1-60秒隨機數(與信號來臨時C2的計值有關),由于差壓信號已經消失,此時就會從頭開始執行排污水后的下一個動作,大概是過濾吧.. 解決方法是修改計數器復原指令的時序,不過我感覺這樣的程序使用定時器比較好,特別是TONR定時器可在程序的任意位置復原. |
|
---|---|---|
|