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-Schnittstelle |
Vorhandene Dateien nach dem Speichern |
||
---|---|---|---|
|
für den Baustein in C: |
||
|
für den Baustein in C: Für dieses Beispiel führen Sie die folgenden Schritte durch:
|
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). |
-
Doppelklicken Sie auf die Datei
LCfu___name.c
oderLCfu___name.cpp
im Projektexplorer, die für die C-Funktion oder die C++-Funktion erstellt wurde. -
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.
-
Löschen Sie die Datei
LCfu___name.c
oderLCfu___name.cpp
. -
Speichern Sie die geänderte ST-Schnittstelle mit
{extern_c}
oder{extern_cxx}
, damit die DateiLCfu___name.c
oderLCfu___name.cpp
neu erzeugt wird. Dadurch enthält diese Datei den entsprechenden Code für die geänderte Schnittstelle. -
Kopieren Sie den Code, der von Ihnen erstellt wurde, aus der Textdatei in die neu erzeugte Datei
LCfu___name.c
oderLCfu___name.cpp
. -
Speichern Sie die geänderte Datei
LCfu___name.c
oderLCfu___name.cpp
. Lö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.