|
|||
| Aufgabe 9.2 | Bandsteuerung VAR_GLOBAL S0_Band_AUS AT %IX2.0:BOOL;(*Öffner*) S1_Band_Ein AT %IX2.1:BOOL; Q1_Band1 AT %QX0.0:BOOL; END_VAR PROGRAM PLC_PRG VAR (*Global deklariert*) END_VAR BANDANL();(*Aufruf des Unterprogramms*) PROGRAM BANDANL VAR (*Instanzen*) RS_Band_1:RS; TOF_1:TOF; END_VAR (*Band 1*) RS_Band_1(SET:= S1_Band_Ein, RESET1:= NOT S0_Band_AUS); TOF_1(IN:= RS_Band_1.Q1, PT:= T#2s); Q1_Band1:= TOF_1.Q; |
||
| Aufgabe 9.3 | Behälterfüllung VAR_GLOBAL M10_Ventil_A AT %QX0.0:BOOL; M11_Ventil_B AT %QX0.1:BOOL; END_VAR PROGRAM PLC_PRG (*Behälter füllen*) VAR xStart:BOOL;(*visu. Schaltfläche*) rK :REAL:=2.0;(*Mischverhältnis VA/VB*) tTa, tTb: TIME;(*Ventilöffnungszeiten*) rTa, rTb: REAL;(*in ms*) TP_A, TP_B :TP;(*Instanzen*) END_VAR (*Öffnungszeit abhängig von k berechnen*) IF rK > 0.0 THEN rTa:= 30.0/(rK + 1.0)*rK; rTb:=30.0-rTa; tTa:=REAL_TO_TIME(rTa*1000.0); tTb:=REAL_TO_TIME(rTb*1000.0); (*Aufruf der Instanzen von TP*) TP_A(IN:=xStart , PT:=tTa); M10_Ventil_A:=TP_A.Q; TP_B(IN:=TP_A.Q , PT:=tTb); M11_Ventil_B:=TP_B.Q; END_IF; |
||
| Aufgabe 9.5 | b) Zweipunktregler, VAR_GLOBAL Temp0 AT %IW0:INT; Temp1 AT %IW1:INT; Temp2 AT %IW2:INT; Q0 AT %QX0.0:BOOL; Q1 AT %QX0.1:BOOL; Q2 AT %QX0.2:BOOL; END_VAR PROGRAM PLC_PRG (*Mehrere FBs-Zweipunktregler über eine Schleife aufrufen*) VAR i: INT; Z_REG_:ARRAY [0..2]OF Z_REG; rW:ARRAY [0..2]OF REAL:= 150.0, 120.0, 180.0; rX:ARRAY [0..2]OF REAL; rH:ARRAY [0..2]OF REAL:= 10.0, 20.0, 30.0; END_VAR (**Temperaturen lesen*) (*Instanzen des Zweipunktreglers aufrufen*) (*Heizungsschütze schalten*) FUNCTION_BLOCK Z_REG (*Zweipunktregler*) VAR_INPUT W:REAL;(*Sollwert*) X:REAL;(*Istwert*) H:REAL;(*Hysterese*) END_VAR VAR_OUTPUT Y:BOOL;(*Stellwert*) END_VAR (*Schalten*) ??? |
||
© Vogel Buchverlag |
|||