Acasă > forum > Programare IEC 61131 (LogicLab) > Gestionarea histerezisului la controlul încălzitorului
- Acest subiect are 5 răspunsuri, 2 participanți și a fost actualizat ultima dată 8 ani, acum 2 luni da Sergio Bertana.
-
AutorPost
-
Noiembrie 18, 2015 la 2: 19 pm #35879AnonimInactiv
Am făcut un program simplu de scară care gestionează controlul unui încălzitor la achiziția de temperatură de la Pt100. Pentru a evita oscilațiile pe controlul încălzitorului am reușit o histerezis asupra valorii temperaturii.
Nu este foarte practică în limba ST, după ce se raportează acest subiect Am făcut totul pe scară, aici este captura de ecran a programului. Mă întrebam dacă era posibil să am un exemplu în ST, deci poate fi util și pentru mine să mă apropii de utilizarea limbajului.
Noiembrie 18, 2015 la 2: 30 pm #39195Sergio BertanaAdministrator al forumuluiAvând în vedere că managementul histerezisului pe care l-ați făcut este corect, schema pe care ați creat-o nu are nimic din scară și este mai potrivită pentru limbajul FBD (screenshot). Atât de mult încât în noua versiune a LogicLab 4 editorul de scară a fost revizuit pentru „costringere„Dezvoltatorul urmează regulile dictate de standardul IEC 61131. Dar nu vă faceți griji, este întotdeauna posibil să folosiți în continuare compatibilitatea cu editorul curent. Acum să vedem cum să scriem programul în ST.
AnInp.Address:=0; (* Module address *)
AnInp.Channel:=0; (* Module channel *)
AnInp.Mode:=AD_VOLT_0_10_COMMON; (* Acquisition mode *)
AnInp(); (* Execute the analog acquisistion *)IF (AnInp.Value < Minimum) THEN Heating:=TRUE; END_IF; (* If the value drops below minimum set the command *)
IF (AnInp.Value >= Maximum) THEN Heating:=FALSE; END_IF; (* If the value reach the maximum reset the command *)
IF (AnInp.Fault) THEN Heating:=FALSE; END_IF; (* On FB fault reset the command *)Chiar și pentru cei care nu au experiență de programare în limbaj ST, cred că programul este lizibil, în prima parte achiziția este gestionată. Apoi, valoarea dobândită este comparată cu instrucțiunea IF cu valorile minime și maxime și dacă condiția este adevărată, se efectuează operațiile scrise după THEN.
Noiembrie 18, 2015 la 3: 40 pm #39196Sergio BertanaAdministrator al forumuluiDesigur, este convenabil să creați o funcție pentru a gestiona histerezisul. În acest program (presa) Am creat două funcții pentru gestionarea histerezisului, una scrisă în ST și cealaltă în FBD (Descărcați programul).
Noiembrie 20, 2015 la 2: 00 pm #39198AnonimInactivAr trebui să fac o verificare că:
Temperatura <din SetPoint -> valva deschisă A (căldură)
Temperatura> a SetPoint -> deschide supapa B (rece)
-2 ° din SetPoint> Temperatură <+ 2 ° din SetPoint -> închideți ambele supape A și BÎn acest fel, dacă debitul de căldură sau de frig (pentru pompe sau supape supradimensionate) este prea mare, oprirea acestora înainte de punctul de referință nu tinde să o depășească.
Noiembrie 20, 2015 la 2: 15 pm #39199Sergio BertanaAdministrator al forumuluiÎntre timp, să spunem că, cu o reglementare On / Off, este dificil să se evite depășirile, sistemul tinde întotdeauna să depășească puțin valorile punctului de setare, doar o reglementare PID permite evitarea acestei probleme. Dar pentru a realiza un control PID ar trebui să aveți pompe și / sau supape care pot fi gestionate analog (viteză / debit variabil).
Cu toate acestea, este o soluție bună pentru a crea o bandă moartă în jurul valorii de SetPoint (ați fixat ± 2 grade), dar puteți avea o valoare variabilă care să fie setată experimental pe baza testelor reale din sistem. Prin mărirea benzii moarte puteți opri acțiunea înainte de a ajunge la SetPoint, lăsând inerției termice sarcina de a aduce temperatura la valoarea SetPoint fără a depăși.
Aici este screenshot simulând pe SimuLab un încălzitor simplu cu dublă acțiune cu bandă moartă (Descărcați programul).
Februarie 3, 2016 la 8: 15 am #39330Sergio BertanaAdministrator al forumuluiAtasez FB OnOffRegulation pe care l-am făcut pentru a gestiona reglarea încălzitoarelor unității în cadrul companiei. FB gestionează pragul de temperatură cu o bandă moartă pentru a evita pendulurile de pe comandă (presa, bibliotecă).
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.