TIA SCL: WORD in 16 Bit lange STRUCT schreiben

Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

AT geht nur mit nicht-optimierten Bausteinen... dies ist nicht zu empfehlen. Warum? Frag HelleBarde... er hat schon viele nützliche Sache Performance und Laufzeit geschrieben... :-) Wird übrigens von big S. auch nicht empfohlen...

oh weh, bin ich schon so berühmt :eek:


Also danube möchte einen Frequenzumrichter dessen Daten im E liegen in einen UDT wuppen. Ich empfehle einen UDT zu definieren, der enthält, was dieser Umrichter so als Ausgänge zu bieten hat. (Des Umrichters Ausgänge sind der Simatic Eingänge). Und dann schreibe man einen FC, der das Wuppen erledigt. Z.B. so

Code:
FUNCTION ReadMyConverter : VOID
VAR INPUT[INDENT]in : WORD[/INDENT]
VAR INOUT[INDENT]converter : MyConverter[/INDENT]
BEGIN[INDENT]#converter.on := #in.x0;
#converter.off := #in.x1;
#converter.ccw := #in.x3;
#converter.fast := #in.x4;
...[/INDENT]
END

Den Baustein kann man denne mehrfach im OB1 (oder einem Zyklischen oder einem HardwareInterrupt) verwenden

Code:
[INDENT]ReadMyConverter( in := %EW10, converter := "aDataBlock".containing.some.converters[ 3 ]);
ReadMyConverter( in := %EW14, converter := "aDataBlock".containing.some.converters[ 4 ]);[/INDENT]

Wenn man das so eingibt, dann zwingt einen TIA dazu zu %EW10 ein Symbol zu definieren ... dann machen wir das eben :rolleyes:

Für die Ausgänge des Programms, die Eingänge des Converters kann man das ganz ähnlich machen. Der oben gewählte Name ist dann vielleicht nicht der kleverste. Und sollten da ein paar Analogwerte herum hängen, dann macht man die mit an die Schnittstelle. Z.B.

Code:
     WriteMyConverterIn( ConverterIn := "aDataBlock".containing.some.converters[ 4 ]; outBools => %AW48, outAnalogValue1 => %AW50, outAnalogValue2 => %AW52 );


Ich gebe ja zu, dass das nicht so voll symbolisch ist, aber es begrenzt den Schaden auf genau diese Funktionen. Das restliche Programm bleibt sauber, "selbst dokumentierend" :razz: :oops: und schnell.


'n schön' Tach auch
HB
 
Zuletzt bearbeitet:
Zurück
Oben