User Documentation

Anhang: Tutorial - C-Funktionen aus der IEC aufrufen
Systemhandbuch
2696780000/02/04.2020
129
22 Anhang: Tutorial - C-Funktionen aus der IEC aufrufen
Das u-create System bietet die Möglichkeit, im u-create studio C++ erstellte
C-Funktionen in der IEC aufzurufen.
Dazu existiert im u-create studio C++ ein Template mit einer vordefinierten
Schnittstelle zum Datenaustausch. Es wird empfohlen, in der IEC eine eige-
ne Funktion zu erstellen, die sich um einen Aufruf der C-Funktion mit der
korrekten Datenübergabe kümmert. Der Datenaustausch selbst erfolgt über
Zugriffe auf einen gemeinsam definierten Speicherbereich. Aus diesem
Grund werden lediglich Adressen auf diesen Speicherbereich übergeben.
Da die Datentypen in der IEC und in C nicht vergleichbar sind, muss bei der
Übergabe der Parameter auf eine korrekte Typkonvertierung geachtet wer-
den.
Information
Es gibt keine automatische Typüberprüfung. Der Anwender ist selbst für ei-
ne richtige Zuordnung verantwortlich. Stimmt z.B. die Größe der Datenty-
pen nicht überein, wird auf einen falschen Speicherbereich zugegriffen.
Das Beispiel in diesem Kapitel beschreibt das Erstellen einer C-Funktion im
u-create studio C++ und den Aufruf dieser in einer im u-create studio erstell-
ten IEC-Applikation.
22.1 Voraussetzungen und benötigte Komponenten
Folgende Komponenten werden benötigt:
u-create studio C++
u-create studio
u-create studio-Projekt mit einer lauffähigen IEC-Applikation
Dazu passende Hardware
Die Erstellung dieses Beispiels setzt Grundkenntnisse im Umgang mit u-
create studio und u-create studio C++ voraus.
22.2 Aufgabenstellung
In dieser Beispielapplikation soll eine selbst erstellte C-Funktion über eine
IEC-Funktion in der IEC-Applikation aufgerufen werden. Die IEC-Funktion
stellt der C-Funktion 3 lokale Variablen mit verschiedenen Datentypen
(DWORD, STRING[106] und REAL) und einer globalen Variable des Typs
DWORD zur Vefügung. Die Werte der Variablen sollen in der C-Funktion fol-
gendermaßen verändert werden:
Die globale Variable des Typs DWORD soll mit der Variable des Typs
DWORD addiert werden
Die Variable des Typs REAL soll mit 3 multipliziert werden
Der Variable des Typs STRING[106] sollen Zeichen hinzugefügt werden