FC403 – V00/00.00.00 vom 05.10.2009
ANY-Pointer erstellen
Die Leistungen der heutigen SPS-Systeme sind mit den Kundenansprüchen gestiegen. Heute werden in den SPS-Programmen nicht nur die Sensoren/Aktoren ausgewertet/angesteuert (Endschalter, Schalter, Magnetventile, Motoren, usw.), sondern auch Regelungen, Kommunikation und Datenverarbeitung programmiert. Mit den neuen Anforderungen erhielten die SPS-Steuerungen weitere Datentypen.
Einige Datentypen, wie der ANY-Pointer, können nicht mit einer Lade-/Transferanweisung (in FUB: MOVE, in AWL: L bzw. T) verarbeitet werden, weil die Lade-/Transferanweisungen maximal vier Byte gleichzeitig verarbeiten. Der ANY Datentyp benötigt mindestens 10 Byte.
Allgemeines
Der Typ ANY verweist auf einen Datenbereich, der auch als Pointer bezeichnet wird. Um den ANY-Pointer zu erstellen, sind einige SPS-Programmanweisungen nötig. Für die Fehlervermeidung, schnellere Programmentwicklung und übersichtlicheren Programmcodes wurde der FC403 von uns entwickelt. Aufgrund der einfachen Parametrierung ist die Funktion einfach anzuwenden.
Der FC403 wurde speziell auf den Datenzugriff von Datenbausteinen ausgelegt, mit Speicherung des ANY-Pointers in Lokaldatenbereich. Die Übergabewerte werden nicht überprüft. Da der Programmcode offen gelegt ist, kann der SPS-Programmierer diesen entsprechend seinen Vorstellung/Wünschen optimieren.
FC403 Beschaltung INPUT
Die folgende Aufstellung gibt einen Überblick der Beschaltung:
- ii_db_nr INT DB Nummer zum eintragen in ANY-Pointer
- ii_db_adr INT DB Anfangsadresse vom Datenbereich zum eintragen in ANY-Pointer
- ii_anz_byte INT Anzahl der Byte vom Datenbereich, zum eintragen in ANY-Pointer
- dii_ref_lb_adr DINT Referenzadresse vom Lokalbereich, von der Position vom ANY-Pointer
Beschreibung zu der Beschaltung
ii_db_nr / ii_db_adr / ii_anz_byte / INT
Diese INT Werte werden benötigt um den ANY-Pointer zu erstellen. Diese Werte werden im FC nicht geprüft, auf Korrektheit.
dii_ref_lb_adr / DINT
Der FC hat kein Rückgabewert, weil im Lokalbereich der ANY-Pointer angelegt sein muss, der als Rückgabewert vom FC fungiert. Auf dem Speicherort im Lokalbereich des aktuellen Bausteins wird indirekt darauf zugegriffen, wozu eine Referenzadresse benötigt wird, die diesen Übergabeparameter beschaltet.
Die Referenzadresse kann wie folgt erstellt werden:
L P##any_pointer
In den Bildschirmausschnitten sehen Sie ein Beispiel wie der FC403 angewendet werden kann. An einem weiteren Beispiel mit dem SFC20 wird gezeigt, wie die ANY-Pointer als Variable oder absolute Adressierung angewendet werden kann.


