oscat.lib > oscat.lib fuer Step 7

Soll Verhalten Blind_Input im Handbetrieb

<< < (2/4) > >>

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