| Übung: |
Kapitel 10
Schreiben Sie einen bibliotheksfähigen
Baustein in ST. Rufen Sie diesen im Main-Programm,
das alle 10 ms aufgerufen wird, z.B. in der
Sprache FUP auf.
Der Baustein soll ablauforientiert programmiert
werden.

P1_Freigabe mit S1
speichernd ein, mit S0 speichernd
aus.
Instanzen initialisieren |
| iStep_no |
Aktionen |
Weiterschaltbedingungen |
| 0 |
Q2_zur aus
CTUD1.R |
S1 |
| 1 |
Q1_vor ein,
wenn P1_Freigabe |
B1 |
| 2 |
Q1_vor ein,
wenn P1_Freigabe
CTUD1.CU mit B3 |
CTUD1.CV=15 |
| 3 |
Q1_vor ein,
wenn P1_Freigabe
Q3_schleich ein,
wenn P1_Freigabe
CTUD1.CU mit B3 |
CTUD1.CV=18 |
| 4 |
Q1_vor aus
TON1.IN |
TON1.Q |
| 5 |
Q2_zur ein,
wenn P1_Freigabe,
TON1.IN:=FALSE
|
B1 |
|
|
 |
|
VAR_GLOBAL
S0_visu, S1_visu:BOOL;
S0 AT %IX2.0:BOOL;(*Öffner*)
S1 AT %IX2.1:BOOL;(*vor*)
B1_hinten AT %IX2.4:BOOL;
B3_Inkr AT %IX2.6:BOOL;
P1_Freigabe AT%QX0.0:BOOL;
Q1_vor AT %QX0.4:BOOL;
Q2_zur AT %QX0.5:BOOL;
Q3_schleich AT %QX0.6:BOOL;
Schritt_Nr:USINT;
END_VAR |
|
PROGRAM
MAIN
VAR
Band1:BAND_POS;
END_VAR
Band1(ON:= S1 OR S1_visu,
STOP:= S0 OR S0_visu,
INKR:= B3_Inkr,
REF:= B1_hinten,
POS1:= 5,
POS2:= 7,
WAIT:= T#3s,
AKTION_EN=> P1_Freigabe,
FORWARD=> Q1_vor,
BACKWARD=>Q2_zur ,
SLOW=> Q3_schleich,
STEP_NO=>Schritt_Nr); |
FUNCTION_BLOCK BAND_POS
VAR_INPUT
ON, STOP, INKR, REF:BOOL;
POS1, POS2:INT;
WAIT:TIME;
END_VAR
VAR_OUTPUT
AKTION_EN, FORWARD, BACKWARD, SLOW:BOOL;
STEP_NO:USINT;
END_VAR
VAR
usiStep_no:USINT;
RS_Enable:RS; CTUD1:CTUD; TON_wait:TON;
END_VAR
(*Freigabe*)
RS_Enable(SET:= ON, RESET1:= STOP, Q1=> AKTION_EN);
(*Instanzen
initialisieren*)
TON_wait(); CTUD1();
(*Schrittkette*)
CASE usiStep_no OF
0:(*Aktionen*)BACKWARD:=FALSE; CTUD1.RESET:=TRUE;
(*Weiterschaltbedingungen*)IF ON THEN usiStep_no:=usiStep_no+1; END_IF;
1: FORWARD:= RS_Enable.Q1;
IF REF THEN usiStep_no:=usiStep_no+1; END_IF;
2: CTUD1.RESET:=FALSE; FORWARD:= RS_Enable.Q1; CTUD1.CU:=INKR;
IF CTUD1.CV = POS1 THEN usiStep_no:=usiStep_no+1; END_IF;
3: SLOW:= RS_Enable.Q1; FORWARD:= RS_Enable.Q1;
CTUD1.CU:=INKR;
IF CTUD1.CV = POS2 THEN usiStep_no:=usiStep_no+1; END_IF;
4: SLOW:=FALSE; FORWARD:=FALSE; TON_wait(IN:= TRUE,
PT:= WAIT);
IF TON_wait.Q THEN usiStep_no:=usiStep_no+1; END_IF;
5: BACKWARD:= RS_Enable.Q1; CTUD1.CD:=INKR; TON_wait(IN:=FALSE);
IF REF THEN usiStep_no:=0; END_IF;
END_CASE;
STEP_NO:=usiStep_no;
Erstellen Sie eine
Webvisualisierung PLC_VISU um mit Hilfe des WAGO-WebVisu-App
über ein Smartphone, Tablet oder über einen
Webbrowser den Motor zu steuern.
Vergessen Sie nicht die Zielsystemeinstellungen-
Web-Visualisierung zu aktivieren.
Beachten Sie die Hinweise im Kapitel 17.Laden
Sie das Projekt nach dem Testen
in die Steuerung. Passen Sie eventuell die IP-Adresse
und die Subnetzmaske an. Vergessen Sie nicht die Kommunikationsparameter
über Menü- Online... einzustellen. Beachten Sie
die Hinweise im Anhang des Buches.
|
|
 |
|