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

    T    dit_zsp_01

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.

Download SPS-Programm: FC403

Kommentieren ist momentan nicht möglich.