oscat.lib > oscat.lib fuer Step 7
Soll Verhalten Blind_Input im Handbetrieb
DOD666:
Steht ja immer das Kürzel des erstellers unten in der Historie. :-D
Ansonsten ändern hier rein stellen und schauen wie das feedback ist.
Gruß
Jens
fu_zhou:
Gibts hier keinen SCL Spezi, der sich der Sache mal annimmt? Ich teste dann gerne...
mattsches:
Die Step 7-Variante der OSCAT Building habe ich gerade nicht greifbar, nur Codesys. Aber in SCL sollte das Ganze auch gehen.
1. Deklarationsteil: In Codesys gibt es VAR_INPUT CONSTANT bei Step 7 vermutlich VAR_INPUT:
--- Code: --- PositionReachedDelay : TIME := t#5s;
--- Ende Code ---
2. Code (Auszug, logisch):
--- Code: --- 134: (* manual operation single click up *)
QU := TRUE;
QD := FALSE;
PO := POS; AO := ANG;
IF POS < 255 THEN TimePositionReached := tx; END_IF;
IF tx - last >= max_runtime OR tx - TimePositionReached >= PositionReachedDelay THEN status := 131; END_IF;
135: (* manual operation single click dn *)
QU := FALSE;
QD := TRUE;
PO := POS; AO := ANG;
IF POS > 0 THEN TimePositionReached := tx; END_IF;
IF tx - last >= max_runtime OR tx - TimePositionReached >= PositionReachedDelay THEN status := 131; END_IF;
--- Ende Code ---
Das ergibt eine Nachlaufzeit von standardmäßig 5 Sekunden nach Erreichen der errechneten Endposition. Hab's nicht ausprobiert, sollte aber eigentlich gehen. Der Initialisierungslauf nach Neustart der SPS müsste auch weiterhin funktionieren. Soweit ich das sehe, wird der im Automatikmodus abgearbeitet und nicht über den Handbetrieb.
Grüße,
mattsches
fu_zhou:
mattsches ist der Knüller, muss ich heute Abend mal probieren...
fu_zhou:
Obwohl ich TimePositionReached: TIME; noch unter VAR definiert habe, kommt beim Übersetzen der Zeile
IF POS < 255 THEN TimePositionReached := tx; END_IF; (*1.8*)
"Unzulässige Operandentypen" und
"der Ausdruck mus vom Datentyp BOOL sein"
[gelöscht durch Administrator]
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln