Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem Zeitpunkt veröffentlichte Dokumentation zu verwenden.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Übersicht

Die Bibliothek "PlcHelperBC.lb6" beinhaltet einige Funktionen für den direkten Zugriff auf Speicherbereiche des SPS-Laufzeitsystems der SPS Controller (BCxxxx).

Bemerkung

Da mit den Funktionen direkt auf den physikalischen Speicher zugegriffen wird, ist bei deren Anwendung besondere Vorsicht geboten! Falsche Parameterwerte können zu einem System-Absturz oder einem Zugriff auf unerlaubte Speicherbereiche führen.

Inhalt der Bibliothek

Name | Beschreibung
MEMCMP | Die Werte der Variablen in zwei Speicherbereichen vergleichen
MEMCPY | Die Variablenwerte von einem Speicherbereich in einen anderen kopieren
MEMSET | Die Variablen in einem Speicherbereich auf einen bestimmten Wert setzen


MEMCMP

Mit der Funktion MEMCMP können die Werte der SPS-Variablen in zwei unterschiedlichen Speicherbereichen verglichen werden.

FUNCTION MEMCMP : INT

VAR_INPUT

pBuf1 :DWORD;
pBuf2 :DWORD;
n :UINT;

pBuf1: Anfangsadresse des ersten Speicherbereichs (der erste Datenpuffer).

pBuf2: Anfangsadresse des zweiten Speicherbereichs (der zweite Datenpuffer).

n: Anzahl der zu vergleichenden Bytes.

Die Funktion vergleicht die ersten n-Bytes in den beiden Datenpuffern und liefert einen Wert, der deren Verhältnis entspricht.

Rückgabeparameter | Verhältnis des ersten unterschiedlichen Bytes im ersten und zweiten Datenpuffer
-1 | pBuf1 kleiner als pBuf2
0 | pBuf1 identisch mit pBuf2
1 | pBuf1 größer als pBuf2
0xFF | Falsche Parameterwerte. pBuff1 = 0 oder pBuff2 = 0 oder n = 0

Beispiel für einen Aufruf in FUP

VAR
Buffer1 : ARRAY[0..3] OF BYTE;
Buffer2 : ARRAY[0..3] OF BYTE;
CmpResult : INT;
END_VAR

Im Beispiel werden 4 Byte Daten vom Buffer2 mit dem Buffer1 verglichen. Das erste unterschiedliche Datenbyte ist im Buffer1 größer als in Buffer2.


MEMCPY

Mit der Funktion MEMCPY können Werte der SPS-Variablen von einem Speicherbereich in einen anderen kopiert werden.

FUNCTION MEMCPY : UINT

VAR_INPUT

destAddr : DWORD;
srcAddr : DWORD;
n : UINT;

destAddr: Anfangsadresse des Ziel-Speicherbereichs.

srcAddr: Anfangsadresse des Quell-Speicherbereichs.

n: Anzahl der zu kopierenden Bytes.

Die Funktion kopiert n-Bytes ab dem Speicherbereich mit der Anfangsadresse srcAddr in den Speicherbereich mit der Anfangsadresse destAddr.

Rückgabeparameter | Bedeutung
0 | Falsche Parameterwerte. destAddr == 0 oder srcAddr==0 oder n == 0
> 0 | Bei Erfolg, die Anzahl der kopierten Bytes ( n ).

Beispiel für einen Aufruf in FUP

VAR
Buffer1 : ARRAY[0..3] OF BYTE;
Buffer2 : ARRAY[0..3] OF BYTE;
CpyResult : UINT;
END_VAR

Im Beispiel werden 4 Byte vom Buffer2 nach Buffer1 kopiert.


MEMSET

Mit der Funktion MEMSET können SPS-Variablen in einem Speicherbereich auf einen bestimmten Wert gesetzt werden.

FUNCTION MEMSET : UINT

VAR_INPUT

destAddr :DWORD;
fillByte :USINT;
n :UINT;

destAddr: Anfangsadresse des zu setzenden Speicherbereichs.

fillByte: Wert der Füll-Bytes.

n: Anzahl der zu setzenden Bytes.

Die Funktion füllt n-Bytes ab dem Speicherbereich mit der Anfangsadresse destAddr mit den Werten fillByte.

Rückgabeparameter | Bedeutung
0 | Falsche Parameterwerte. destAddr == 0 oder n == 0
> 0 | Bei Erfolg, die Anzahl der gesetzten Bytes ( n ).

Beispiel für einen Aufruf in FUP

VAR
Buffer1 : ARRAY[0..3] OF BYTE;
SetResult : UINT;
END_VAR

Im Beispiel werden 4 Byte im Buffer1 auf den Wert 0xAF gesetzt.