Anpassungen bei nachträglicher Änderung der Schnittstelle für C-Baustein oder C++-Baustein (Deprecated)

Falls Sie die bereits erstellte Schnittstelle eines C-Bausteins oder C++-Bausteins nach dem ersten Speichern der ST-Schnittstelle mit {extern_c} oder {extern_cxx} ändern, müssen Sie einige Anpassungen durchführen. Diese Anpassungen unterscheiden sich – je nach Art der Änderung.

Der Name eines C-Bausteins oder C++-Bausteins wurde geändert.

Beachten Sie Folgendes, falls Sie den Namen eines C- oder C++-Funktionsbausteins bzw. einer C- oder C++-Funktion ändern, nachdem Sie die geänderte ST-Schnittstelle mit {extern_c} oder {extern_cxx} gespeichert haben:

Deklaration in ST-SchnittstelleVorhandene Dateien nach dem Speichern
Beispiel: Ursprüngliche Deklaration
FUNCTION_BLOCK MyCFB
...
END_FUNCTION_BLOCK

für den Baustein in C: LCfu___MyCFB.c und LCfu___MyCFB.h
für den Baustein in C++: LCfu___MyCFB.cpp und LCfu___MyCFB.h 

Beispiel: Umbenannte Deklaration
FUNCTION_BLOCK TestMotor
...
END_FUNCTION_BLOCK

für den Baustein in C: LCfu___MyCFB.c ("Rest"-Datei für die ursprüngliche Deklaration), LCfu___TestMotor.c und LCfu___TestMotor.h
für den Baustein in C++: LCfu___MyCFB.cpp ("Rest"-Datei für die ursprüngliche Deklaration), LCfu___TestMotor.cpp und LCfu___TestMotor.h 

Für dieses Beispiel führen Sie die folgenden Schritte durch:

  1. Falls Sie in der ursprünglichen Datei bereits C-Code oder C++-Code erstellt haben, kopieren Sie diesen Code von der Datei LCfu___MyCFB.c oder LCfu___MyCFB.cpp in die Datei LCfu___TestMotor.c oder LCfu___TestMotor.cpp.
  2. Anschließend können Sie die Datei LCfu___MyCFB.c oder LCfu___MyCFB.cpp im Projektexplorer löschen, da diese für das Laden auf die SPS nicht mehr benötigt wird.


Hintergrund-Information: Beim Speichern der ST-Schnittstelle mit {extern_c} oder {extern_cxx} werden die C- bzw. C++-Datei und die H-Datei pro Funktionsbaustein und Funktion erstellt. Bereits bestehende H-Dateien werden überschrieben, bereits bestehende C- bzw. C++-Dateien jedoch nicht.

Ein deklarierter C-Baustein oder C++-Baustein wurde gelöscht.

Falls Sie einen deklarierten C- oder C++-Funktionsbaustein oder eine deklarierte C- oder C++-Funktion löschen, nachdem Sie die geänderte ST-Schnittstelle mit {extern_c} oder {extern_cxx} gespeichert haben, führen Sie den folgenden Schritt durch:

Löschen Sie die C- oder C++-Datei, die noch für den gelöschten C-Baustein oder C++-Baustein im Projektexplorer vorhanden ist, da diese für das Laden auf die SPS nicht mehr benötigt wird.

Die Variablen bzw. Ein-/Ausgänge einer C-Funktion oder C++-Funktion wurden geändert.

Falls Sie neue Variablen, Ein-/Ausgänge erstellen oder bestehende löschen/ändern, müssen Sie die folgenden Schritte durchführen:

Geänderte Schnittstellen für C-/C++-Funktionen ohne Anpassungen verursachen Fehler beim Laden auf SPS.

Ohne diese Anpassungen wird die geänderte Schnittstelle beim Laden auf die SPS nicht berücksichtigt, stattdessen verhindern Fehler das Laden. Beachten Sie, dass diese Anpassungen nur für C-Funktionen oder C++-Funktionen erforderlich sind (für C-Funktionsbausteine oder C++-Funktionsbausteine sind sie nicht erforderlich).

  1. Doppelklicken Sie auf die Datei LCfu___name.c oder LCfu___name.cpp im Projektexplorer, die für die C-Funktion oder die C++-Funktion erstellt wurde.

  2. Selektieren und kopieren Sie in der geöffneten Datei den Code, der von Ihnen erstellt wurde. Fügen Sie den kopierten Code in eine beliebige Textdatei ein. Sie benötigen diese Textdatei bis zum Beenden dieser Anleitung.
  3. Löschen Sie die Datei LCfu___name.c oder oder LCfu___name.cpp.
  4. Speichern Sie die geänderte ST-Schnittstelle mit {extern_c} oder {extern_cxx}, damit die Datei LCfu___name.c oder LCfu___name.cpp neu erzeugt wird. Dadurch enthält diese Datei den entsprechenden Code für die geänderte Schnittstelle.
  5. Kopieren Sie den Code, der von Ihnen erstellt wurde, aus der Textdatei in die neu erzeugte Datei LCfu___name.c oder LCfu___name.cpp.
  6. Speichern Sie die angepasste Datei LCfu___name.c oder LCfu___name.cppLöschen Sie die Textdatei.

Hintergrund-Information:

  • Für →Funktionsbausteine wird die Schnittstelle vollständig in die Header-Datei gespeichert. Da die Header-Datei beim Speichern der ST-Schnittstelle mit {extern_c} oder {extern_cxx} überschrieben wird, müssen Sie bei einer geänderten Schnittstelle eines C-/C++-Funktionsbausteins nichts anpassen.
  • Für →Funktionen wird die Schnittstelle in die Header-Datei als auch in die C-/C++-Datei gespeichert. Die Header-Datei müssen Sie bei einer geänderten Schnittstelle einer C-/C++-Funktion nicht anpassen. Allerdings müssen Sie die C-/C++-Datei wie oben angeführt anpassen, da eine bestehende C-/C++-Datei beim Speichern der ST-Schnittstelle mit {extern_c} oder {extern_cxx} nicht überschrieben wird.