-> Hier kostenlos registrieren
Hallo,
ich komme wieder mal bei meinem "SCL-Selbstkurs" nicht weiter.
Folgendes Problem, versuche es mal so zu erklären daß auch jemand weiß was ich meine:
Ich habe einen FB, der mir ein EB mit einem AB bitweise vergleicht und dann verschiedene Ergebnisse und Bedienmöglichkeiten pro Bit in einer Struktur in einem Global-DB ablegt. Im Beispiel der UDT_SPS und der DB_SPS für 6 Bytes bzw. 48x Bitabfrage.
Die Schnittstelle des FB´s sieht folgendermaßen aus:
Soweit funktioniert alles und sollte nach Möglichkeit nicht verändert werden.
Jetzt möchte ich diesen Vergleich nicht für jedes Byte einzeln aufrufen sondern einen weiteren Baustein erstellen, in dem ich diesen ersten FB aufrufe und bei bei dem ich einen variablen EB/AB-Bereich abarbeiten kann, also z.B. 5 Bytes ab EB2/AB8.
Diese Schnittstelle sollte wiederum optimalerweise so (oder so ähnlich) aussehen:
INT als Datentyp habe ich jetzt einfach mal hingeschrieben, kann natürlich auch alles andere sein.
Ich schaffe es einfach nicht, mir einen Pointer auf diese Zieladresse zu basteln. Entweder weiß ich die richtige Syntax nicht oder ich mache grundsätzlich etwas falsch - keine Ahnung...
Noch eine Frage: Gibt es einen Bytetausch-Befehl in SCL, analog dem TAW in AWL (bzw. wie ist das realisierbar)?
Und, hat jemand einen Literaturvorschlag für mich mit Beispielen und Beschreibungen für Probleme in der o.g. Kategorie?
Es nimmt mir das Erfolgserlebnis wenn ich hier immer nachfragen muß...
Der Wellenreuther streift das Thema SCL nur, das Buch "Automatisieren mit STEP 7 in AWL und SCL" hab ich mir auf Amazon schon angesehen.
Ist ziemlich teuer - auch geeignet für mich? Oder gibt es Alternativen?
Gruß
momo
ich komme wieder mal bei meinem "SCL-Selbstkurs" nicht weiter.
Folgendes Problem, versuche es mal so zu erklären daß auch jemand weiß was ich meine:
Ich habe einen FB, der mir ein EB mit einem AB bitweise vergleicht und dann verschiedene Ergebnisse und Bedienmöglichkeiten pro Bit in einer Struktur in einem Global-DB ablegt. Im Beispiel der UDT_SPS und der DB_SPS für 6 Bytes bzw. 48x Bitabfrage.
Die Schnittstelle des FB´s sieht folgendermaßen aus:
Code:
VAR_INPUT
EB : BYTE;
Takt: BOOL;
END_VAR
VAR_IN_OUT
AB : BYTE;
STG : ARRAY[1..8] OF UDT_SPS;
END_VAR
Jetzt möchte ich diesen Vergleich nicht für jedes Byte einzeln aufrufen sondern einen weiteren Baustein erstellen, in dem ich diesen ersten FB aufrufe und bei bei dem ich einen variablen EB/AB-Bereich abarbeiten kann, also z.B. 5 Bytes ab EB2/AB8.
Diese Schnittstelle sollte wiederum optimalerweise so (oder so ähnlich) aussehen:
Code:
VAR_INPUT
EB: INT; (**Anfangs-EB**)
AB: INT; (**Anfangs-AB**)
BYANZ: INT; (**Byteanzahl**)
Ausw_Anf:INT; (**1. Zieladresse**)
END_VAR
Ich schaffe es einfach nicht, mir einen Pointer auf diese Zieladresse zu basteln. Entweder weiß ich die richtige Syntax nicht oder ich mache grundsätzlich etwas falsch - keine Ahnung...
Noch eine Frage: Gibt es einen Bytetausch-Befehl in SCL, analog dem TAW in AWL (bzw. wie ist das realisierbar)?
Und, hat jemand einen Literaturvorschlag für mich mit Beispielen und Beschreibungen für Probleme in der o.g. Kategorie?
Es nimmt mir das Erfolgserlebnis wenn ich hier immer nachfragen muß...
Der Wellenreuther streift das Thema SCL nur, das Buch "Automatisieren mit STEP 7 in AWL und SCL" hab ich mir auf Amazon schon angesehen.
Ist ziemlich teuer - auch geeignet für mich? Oder gibt es Alternativen?
Gruß
momo