Übertragungsfunktionen: Lade- und Transferfunktionen, Akkumulatorfunktionen

Übertragungsfunktionen werden genutzt, um beispielsweise Daten von einer Adresse zur anderen Adresse zu übertragen. Dabei werden die Daten in den Akkumulator der CPU geladen danach in ein anderes Ziel transferiert. Der Datentransfer kann dabei zwischen den verschiedensten Betriebsmitteln der Steuerung stattfinden, z.B. zwischen Eingängen, Ausgängen, Merkern oder Datenbausteinen.

Eine andere Möglichkeit besteht darin, zwischen den Akkumulatoren ein Datenaustausch stattfinden zu lassen. Das wird bei folgenden digitalen Operationen benötigt:

Da hierbei Daten zwischen den Akkumulatoren ausgetauscht werden, sind mindestens zwei Akkmulatoren nötig. Je mehr Akku's eine CPU besitzt, umso besser ist das natürlich. Denn dann können diese für Zwischenergebnisse oder Zwischenspeicherung genutzt werden.

Lade- und Transferfunktionen

Wenn Sie Daten von einer Adresse zu einer anderen transferieren möchten, benötigen Sie dafür die Lade- und Transferfunktionen. Dabei werden die Daten zuerst in den Akku 1 geladen, danach aus dem Akku ausgelesen und zu einem definierten Ziel transferiert. Beim Laden der Daten in den Akku 1 wird der ursprüngliche Inhalt von Akku 1 in den Akku 2 transferiert und verbleibt dort. Der ursprüngliche Inhalt von Akku 2 geht bei diesem Vorgang verloren. Der Zustand des VKE oder Statusbits spielt beim Laden und Transferieren keine Rolle

Folgende Werte können geladen werden:

  • Eingänge
  • Ausgänge
  • Merker
  • Zeiten
  • Zählwerte
  • Konstanten
  • Datenbausteine
  • Peripherie
  • Variablen

Sie können folgende Adressen laden und transferieren:

Der Datentyp kann dabei folgendes Format haben:

  • INT
  • DINT
  • REAL

Ein Schaubild zur Verdeutlichung der Vorgänge beim Laden und Transferieren:

Lade- und Transferfunktion
Vorgänge während einer Lade- und Transferfunktion

Die Belegung des Akkus beim Laden und Transferieren

Es ist wichtig zu verstehen, wie die Akkus oder das Adressregister beim Laden und Transferieren belegt werden, welche Bytes auf der rechten Seite und welche auf der linken Seite stehen. Grundsätzlich gilt: Die höhere Byteadresse wird rechtsbündig geladen und die restlichen Bytes werden mit 0 gefüllt.

Wenn ein Byte geladen und transferiert wird, wird der Akku oder das Adressregister rechtsbündig mit einem Byte belegt, da das Byte bereits die höchste Adresse ist. Ein Schaubild wie der Akku belegt wird, wenn ein Byte geladen wird.

Ein Byte laden
Belegung des Akkus beim Laden von ein Byte

Dementsprechend gilt beim Laden und Transferieren von ein Wort: Das höhere Byte steht auf der rechten Seite, das niedrigere auf der linken Seite. Der Rest wird wieder mit 0 gefüllt. Ein Schaubild beim Laden von ein Wort in den Akku.

Ein Wort laden
Das höhere Byte steht auf der rechten Seite

Beim Laden und Transferieren eines Doppelworts werden alle 4 Bytes des Akku 1 belegt. Die höchste Byteadresse steht dabei wieder ganz rechts. Auch hier wieder ein Schaubild.

Laden eines Doppelworts
Laden eines Doppelworts in den Akku

Beim Transferieren verhält es sich analog wie beim Laden in den Akku. Das bedeutet, dass der Inhalt, der ganz links im Akku steht, zur kleinsten Byteadresse transferiert und die weiter rechts stehenden Bytes jeweils zur höheren Byteadresse transferiert werden.

Die MOVE-Box in FUP

Laden und Transferieren mit MOVE
MOVE-Box

Das Laden und Transferieren wird in FUP über die MOVE-Box realisiert. Dabei werden die am Eingang IN anstehenden Daten wie zuvor dargestellt in den Akku 1 geladen und danach an die am OUT-Ausgang definierte Byteadresse transferiert.

Zusätzlich besitzt die MOVE-Box den Eingang EN, an den ein Freigabesignal zur Bedingung gemacht werden kann. ENO ist der Freigabeausgang und führt das Signal 1, wenn der Baustein fehlerlos abgearbeitet wird.