Felder für die Kommunikation mit der SPS
Für jedes Feld in der .csv-Datei wird ein bestimmter Speicherblock in der SPS reserviert. Die Felder werden von der SPS und vom Plugin zum Schreiben und Lesen der erforderlichen Daten verwendet. Die Felder können im Speicher der SPS in zwei Blöcke unterteilt werden. Ein Feldblock wird von der SPS zum Anfordern von Befehlen oder zum Definieren von Argumenten für die Ausführung verwendet. Der andere Block wird vom Plugin zum Schreiben von Informationen verwendet, die vom Bildverarbeitungssystem bereitgestellt wurden, z. B. allgemeine Informationen zum Bildverarbeitungssystem oder Ergebnisse einer Ausführung. Die SPS kann die in den Feldern verfügbaren Informationen, die vom Plugin geschrieben werden, lesen und verarbeiten (das gilt auch umgekehrt). Jedes Feld weist einen vordefinierten Namen auf.
Einige Felder sind fester Bestandteil der Einrichtung und immer verfügbar, z. B. das Feld, das den aktuellen Zustand des Bildverarbeitungssystems enthält. Diese Felder werden als statische Felder bezeichnet. Im Gegensatz dazu gibt es auch einige dynamische Felder, die von der Konfiguration des Plugins abhängen und nur dann bereitgestellt werden, wenn die betreffenden Felder des Plugins entsprechend eingerichtet wurden, z. B. die Felder für Ergebniswerte. In den folgenden Abschnitten finden Sie eine Übersicht über die statischen Felder, die fester Bestandteil des Protokolls sind, sowie die dynamischen Felder, die nur hinzugefügt werden, wenn das Plugin entsprechend konfiguriert wird.
Felder für die SPS exportieren
Die jeweiligen Felder können auf der MERLIC RTE Setup-Registerkarte „Kommunikation“ exportiert werden.
- Wählen Sie die gewünschte MODICON®*-Plugin-Instanz im linken Bereich aus, um die Konfiguration des Plugins anzuzeigen.
- Passen Sie Speicherort und Dateiname der zu exportierenden .csv-Datei ggf. an. Die betreffenden Parameter werden in der Parameterkategorie Export Symbols bereitgestellt.
- Klicken Sie auf die Schaltfläche „
Plugin starten“ unten im MERLIC RTE Setup, um die Felder in die angegebene .csv-Datei zu exportieren.
Die .csv-Datei wird beim Start des Plugins automatisch exportiert, d. h., wenn Sie auf die Startschaltfläche klicken. Sie enthält Informationen zu allen erforderlichen Feldern, zum jeweiligen Datentyp und zu den zugewiesenen Speicheradressen. Die Datei kann unabhängig von der SPS erstellt werden. Für den Exportvorgang ist keine Verbindung zur SPS notwendig. Wenn noch keine Verbindung hergestellt wurde, wird jedoch ein Fehler mit der Meldung angezeigt, dass das Plugin nicht gestartet werden konnte. Sie können diesen Fehler ignorieren, wenn Sie lediglich die .csv-Datei exportieren möchten.
Bei der Implementierung des Programms für die SPS in „EcoStruxure™ Machine Expert - Basic“ dient die exportierte Datei als Referenz für die Felder und Speicherblöcke, die für die Kommunikation benötigt werden.
Datei mit den Symbolen importieren
Nachdem die ausgewählten Felder der Plugin-Konfiguration in eine .csv-Datei exportiert wurden, können Sie diese Datei in „EcoStruxure™ Machine Expert - Basic“ importieren und die jeweiligen Felder für die Implementierung des SPS-Programms verwenden. Sie können die Datei wie in den folgenden Schritten beschrieben importieren.
- Navigieren Sie zum Fenster „Programming“.
- Wählen Sie die Registerkarte „Tools“ auf der linken Seite aus, und klicken Sie auf „Symbol list“.

- Klicken Sie im Fenster „Symbol list“ auf die Schaltfläche „Import“, um den Dialog für den Import zu öffnen.

- Wählen Sie die .csv-Datei aus, und klicken Sie auf „Import“.

Für diese Dokumentation wird die EcoStruxure™ Machine Expert - Basic-Version 1.2 SP1 Patch 1 build 65760 verwendet. Wenn Sie eine andere Version des Programms verwenden, können Benutzeroberfläche und Parameternamen von der Darstellung in den Beispielabbildungen abweichen. Weitere Informationen zu EcoStruxure™ Machine Expert - Basic und dessen Funktionen sowie zum Programmieren und Überwachen von Schneider Electric Modicon®*-SPS finden Sie auf der Website von Schneider Electric.
Statische Felder
Derartige Felder sind immer für die Kommunikation verfügbar. Die meisten davon werden vom Plugin verwendet, um Informationen zum Bildverarbeitungssystem oder zur aktuellen Ausführung bereitzustellen. Die SPS schreibt nur wenige statische Felder.
Statische Felder, in die das Plugin schreibt
|
Feld |
Datentyp |
Beschreibung |
|---|---|---|
|
GMV_VERSIONMAJOR |
INT |
Hauptversionsnummer des Plugins. |
|
GMV_VERSIONMINOR |
INT |
Nebenversionsnummer des Plugins. |
|
GMV_CURRENTSTATE |
INT |
Aktueller Status von MERLIC, z. B. 72 für „SingleExecution“. Weitere Informationen zu den Werten der verschiedenen Zustände und deren Codierung finden Sie im Abschnitt MERLIC-Zustände. |
|
GMV_LASTRESULTID |
DINT |
ID des letzten Ergebnisses. |
|
GMV_NUMBEROFRECIPES |
DINT |
Anzahl der verfügbaren Rezepte. |
|
GMV_PREPARERECIPEIDS |
ARRAY [0..31] OF BOOL |
Dieses Feld gibt an, welches Rezept derzeit geladen ist. Es enthält ein Array, in dem die einzelnen Einträge angeben, ob das dem Index entsprechende Rezept derzeit geladen ist. Dies funktioniert nur, wenn höchstens 32 Rezepte definiert sind. Bei Verwendung von MERLIC kann nur ein Rezept geladen sein. |
|
GMV_RUNNINGJOBID |
DINT |
ID des derzeit ausgeführten Jobs. |
|
GMV_ACQUISITIONDONECOUNT |
DINT |
Anzahl der Bildeinzüge, die für den aktuellen Job durchgeführt wurden. Der Anfangswert ist 0, d. h., es wurden noch keine Bilder eingezogen. Der Wert wird für jeden neuen Job zurückgesetzt. |
|
GMV_ACKCOMMANDCODE |
INT |
Code des angeforderten Befehls, der vom Plugin zuletzt quittiert wurde. |
|
GMV_ERRORCODE |
DINT |
Numerischer Fehlercode. Er stellt Informationen zur Art des Fehlers, zum Schweregrad und zur betroffenen Komponente bereit. Weitere Informationen zur Ausgabe von Fehlern finden Sie unter Fehlerbehandlung. |
|
GMV_ERRORCAUSE |
INT |
Code des Befehls, der einen Fehler verursacht hat. Er weist den gleichen numerischen Wert wie die Felder „GMV_REQCOMMANDCODE“ und „GMV_ACKCOMMANDCODE“ auf. Weitere Informationen zur Ausgabe von Fehlern finden Sie unter Fehlerbehandlung. |
|
GMV_DROPPEDRESULTCOUNT |
DINT |
Anzahl der gelöschten Ergebnisse bei Verwendung von „Dequeue from buffer“ als Ergebnismodus. Der Anfangswert von 0 wird für jedes gelöschte Ergebnis inkrementiert. Wenn die SPS die Ergebnisse nicht schnell genug aus der Warteschlange abruft und die Kapazität des Ergebnispuffers überschritten wird, wird das älteste Ergebnis im Puffer, d. h. das Ergebnis, das als nächstes aus der Warteschlange abgerufen worden wäre, gelöscht. |
|
GMV_RESULTID |
DINT |
ID des derzeit angezeigten Ergebnisses. |
|
GMV_RESULTRECIPEID |
DINT |
ID des Rezepts, das das angezeigte Ergebnis erzeugt hat. |
|
GMV_RESULTJOBID |
DINT |
ID des Jobs, der das angezeigte Ergebnis erzeugt hat. |
|
GMV_RESULTSTATE |
INT |
Zustand des angezeigten Ergebnisses:
|
Statische Felder, in die die SPS schreibt
|
Feld |
Datentyp |
Beschreibung |
|---|---|---|
|
GMV_REQCOMMANDCODE |
INT |
Code des angeforderten Befehls. Weitere Informationen zu den verfügbaren Befehlen und den entsprechenden Codes finden Sie unter Kommunikation zwischen Plugin und SPS. |
|
GMV_COMMANDRECIPEIDINUSE |
BOOL |
Dieses Feld gibt an, ob das in „GMV_COMMANDRECIPEID“ definierte Rezept für den in „GMV_REQCOMMANDCODE“ angeforderten Befehl verwendet werden soll. |
|
GMV_COMMANDRECIPEID |
DINT |
ID des Rezepts, das für den in „GMV_REQCOMMANDCODE“ angeforderten Befehl verwendet wird, wenn der Wert von „GMV_COMMANDRECIPEIDINUSE“ auf TRUE festgelegt ist. |
Dynamische Felder
Derartige Felder werden standardmäßig nicht verwendet. Sie werden nur dann zum SPS-Speicher hinzugefügt, wenn das Plugin entsprechend konfiguriert ist. Die Konfiguration des Plugins bestimmt daher, welche dynamischen Felder für die Kommunikation verfügbar sind. Wie bei den statischen Feldern gibt es einige dynamische Felder, in die das Plugin schreibt, und einige, in die die SPS schreibt. In den folgenden Abschnitten finden Sie eine Übersicht über die dynamischen Felder.
Dynamische Felder, in die das Plugin schreibt
|
Feld |
Beschreibung |
|---|---|
|
GMV_RESULTUSEARRAY_<TYPE>_W0 |
Dieses Feld gibt an, ob Ergebnisse des jeweiligen Datentyps für Abfragen verfügbar sind. Es enthält ein Array, in dem jedes Bit als Indikator für ein bestimmtes Ergebnis dieses Datentyps dient. Die Größe hängt von der Konfiguration des Plugins ab, d. h. von der Einstellung für den jeweiligen Ergebnisdatentyp in der Kategorie Writing Data to PLC Memory. Wenn der Plugin-Parameter „INT (signed 16-bit integer) result allocation“ beispielsweise auf 2 festgelegt ist, wird das Feld „GMV_RESULTUSEARRAY_INT_W0“ zum SPS-Speicher hinzugefügt. Wenn die beiden niederwertigsten Bits von „GMV_RESULTUSEARRAY_INT_W0“ Wenn die Plugin-Konfiguration jedoch mehr als 16 Ergebnisse für den Datentyp INT definiert, reichen die Bits im Feld „GMV_RESULTUSEARRAY_INT_W0“ nicht aus, um die Verfügbarkeit der einzelnen Ergebnisse anzugeben. In diesem Fall wird ein weiteres Feld, „GMV_RESULTUSEARRAY_INT_W1“, hinzugefügt. Dieses Feld kann dann als Indikator für die nächsten 16 Ergebnisse des Datentyps INT verwendet werden. Verfügbare Datentypen:
|
|
GMV_RESULT_<TYPE>_<INDEX> |
Dieses Feld enthält die tatsächlichen Ergebniswerte der Datentypen BOOL, INT, DINT und REAL. Jedes Ergebnis wird in ein eigenes Feld geschrieben. Das Symbol eines Ergebnisfelds besteht aus dem Präfix „GMV_RESULT_“ gefolgt vom Datentyp und vom Index des Ergebnisses. Derartige Felder werden nur zum SPS-Speicher hinzugefügt, wenn die Konfiguration des Plugins in der Kategorie Writing Data to PLC Memory entsprechend eingerichtet ist. Wenn der Plugin-Parameter „INT (signed 16-bit integer) result allocation“ beispielsweise auf 2 festgelegt ist, werden zwei Felder für die Ergebniswerte zum SPS-Speicher hinzugefügt: „GMV_RESULT_INT_0“ und „GMV_RESULT_INT_1“. |
|
GMV_RESULT_STRING80_<INDEX>_W<WORD_INDEX> |
Dieses Feld enthält die tatsächlichen Ergebniswerte für den Datentyp STRING[80]. Für ein Ergebnis des Datentyps STRING[80] werden 40 Registeradressen reserviert, weil es über eine Folge von einzelnen WORDS-Adressen zugeordnet wird. Es gibt also 40 Felder für den Wert eines einzelnen STRING[80]-Ergebnisses. Die Symbole dieser Felder sind ähnlich zusammengesetzt wie die Symbole für Ergebnisse anderer Datentypen, allerdings mit einem zusätzlichen Suffix: „W<WORD_INDEX>“. Das zusätzliche Suffix besteht aus dem Zeichen „W“ und einer Indexnummer. Diese Indexnummer gibt an, auf welche der 40 WORDS-Adressen, die den STRING[80]-Wert enthalten, d. h. auf welche Bytes, das jeweilige Feld verweist. Die Symbole der für den ersten Ergebniswert des Datentyps STRING[80] reservierten Felder sind beispielsweise: „GMV_RESULT_STRING80_0_W0“, „GMV_RESULT_STRING80_0_W1“ usw. bis „GMV_RESULT_STRING80_0_W39“. Der erste Index 0 von all diesen Symbolen gibt an, dass die Felder auf den ersten Ergebniswert des Typs STRING[80] verweisen. Der zweite Index verweist auf das jeweilige Wort in der Folge der einzelnen WORDS-Adressen. Das Feld mit dem Symbol „GMV_RESULT_STRING80_0_W0“ wird also für die ersten beiden Bytes des ersten STRING[80]-Ergebnisses verwendet. Das Feld mit dem Symbol „GMV_RESULT_STRING80_0_W1“ wird für das dritte und vierte Byte des ersten STRING[80]-Ergebnisses verwendet usw. bis zum Feld mit dem Symbol „GMV_RESULT_STRING80_0_W39“, das für die letzten beiden Bytes verwendet wird. Derartige Felder werden nur zum SPS-Speicher hinzugefügt, wenn die Konfiguration des Plugins in der Kategorie Reading Data from PLC Memory entsprechend eingerichtet ist. Wenn der Plugin-Parameter „STRING[80] result allocation“ beispielsweise auf 2 festgelegt ist, werden 80 Felder für die Ergebniswerte zum SPS-Speicher hinzugefügt: 40 Felder für den Wert des ersten STRING[80]-Ergebnisses („GMV_RESULT_STRING80_0_W0“ bis „GMV_RESULT_STRING80_0_W39“) und 40 Felder für den Wert des zweiten STRING[80]-Ergebnisses („GMV_RESULT_STRING80_1_W0“ bis „GMV_RESULT_STRING80_1_W39“). |
Dynamische Felder, in die die SPS schreibt
|
Feld |
Beschreibung |
|---|---|
|
GMV_ITPARAMUSEARRAY_<TYPE>_W0 |
Dieses Feld gibt an, ob die Rezeptparameter des jeweiligen Datentyps für die nächste Ausführung durch die Werte überschrieben werden sollen, die in den Feldern der entsprechenden Iterationsparameter definiert sind. Es enthält ein Array, in dem jedes Bit als Indikator für einen bestimmten Iterationsparameter dieses Datentyps dient. Die Größe hängt von der Konfiguration des Plugins ab, d. h. von der Einstellung für den jeweiligen Datentyp des Iterationsparameters in der Kategorie Reading Data from PLC Memory. Wenn der Plugin-Parameter „INT (signed 16-bit integer) iteration parameter allocation“ beispielsweise auf 2 festgelegt ist, wird das Feld „GMV_ITPARAMUSEARRAY_INT_W0“ zusammen mit den Feldern „GMV_ITPARAM_INT_0“ und „GMV_ITPARAM_INT_1“ für die Werte der Iterationsparameter hinzugefügt. Wenn die ersten beiden Bits von „GMV_ITPARAMUSEARRAY_INT_W0“ auf Wenn die Plugin-Konfiguration jedoch mehr als 16 Ergebnisse für den Datentyp INT definiert, reichen die Bits im Feld „GMV_ITPARAMUSEARRAY_INT_W0“ nicht aus, um den jeweiligen Iterationsparameter anzugeben, wenn der betreffende Wert für die nächste Ausführung verwendet werden soll. In diesem Fall wird ein weiteres Feld, „GMV_ITPARAMUSEARRAY_INT_W1“, hinzugefügt. Dieses kann dann als Indikator für die nächsten 16 Iterationsparameter des Datentyps INT verwendet werden. |
|
GMV_ITPARAM_<TYPE>_<INDEX> |
Die tatsächlichen Werte für Iterationsparameter der Datentypen BOOL, INT, DINT und REAL. Das Symbol der jeweiligen Felder besteht aus dem Präfix „GMV_ITPARAM_“ gefolgt vom Datentyp und vom Index des Iterationsparameters. Derartige Felder werden nur zum SPS-Speicher hinzugefügt, wenn die Konfiguration des Plugins in der Kategorie Reading Data from PLC Memory entsprechend eingerichtet ist. Wenn der Plugin-Parameter „INT (signed 16-bit integer) iteration parameter allocation“ beispielsweise auf 2 festgelegt ist, werden zwei Felder für die Ergebniswerte zum SPS-Speicher hinzugefügt: „GMV_ITPARAM_INT_0“ und „GMV_ITPARAM_INT_1“. |
|
GMV_ITPARAM_<TYPE>_<INDEX>_W<WORD_INDEX> |
Die Werte für Iterationsparameter des Datentyps STRING[80]. Für einen Iterationsparameter des Datentyps STRING[80] werden 40 Registeradressen reserviert, weil er über eine Folge von einzelnen WORDS-Adressen zugeordnet wird. Es gibt also 40 Felder für den Wert eines einzelnen STRING[80]-Parameters. Die Symbole dieser Felder sind ähnlich zusammengesetzt wie die Symbole für Iterationsparameter anderer Datentypen, allerdings mit einem zusätzlichen Suffix: „W<WORD_INDEX>“. Das zusätzliche Suffix besteht aus dem Zeichen „W“ und einer Indexnummer. Diese Indexnummer gibt an, auf welche der 40 WORDS-Adressen, d. h. auf welche Bytes, das jeweilige Feld verweist. Die Symbole der für den ersten Iterationsparameter des Datentyps STRING[80] reservierten Felder sind beispielsweise: „GMV_ITPARAM_STRING80_0_W0“, „GMV_ITPARAM_STRING80_0_W1“ usw. bis „GMV_ITPARAM_STRING80_0_W39“. Der erste Index 0 von all diesen Symbolen gibt an, dass die Felder auf den ersten Iterationsparameter des Typs STRING[80] verweisen. Der zweite Index verweist auf das jeweilige Wort in der Folge der einzelnen WORDS-Adressen. Das Feld mit dem Symbol „GMV_ITPARAM_STRING80_0_W0“ wird also für die ersten beiden Bytes des ersten STRING[80]-Parameterwerts verwendet. Das Feld mit dem Symbol „GMV_ITPARAM_STRING80_0_W1“ wird für das dritte und vierte Byte des ersten STRING[80]-Parameters verwendet usw. bis zum Feld mit dem Symbol „GMV_ITPARAM_STRING80_0_W39“, das für die letzten beiden Bytes verwendet wird. Derartige Felder werden nur zum SPS-Speicher hinzugefügt, wenn die Konfiguration des Plugins in der Kategorie Reading Data from PLC Memory entsprechend eingerichtet ist. Wenn der Plugin-Parameter „STRING[80] iteration parameter allocation“ beispielsweise auf 2 festgelegt ist, werden 80 Felder für die Ergebniswerte zum SPS-Speicher hinzugefügt: 40 Felder für den Wert des ersten STRING[80]-Parameters („GMV_ITPARAM_STRING80_0_W0“ bis „GMV_ITPARAM_STRING80_0_W39“) und 40 Felder für den Wert des zweiten STRING[80]-Parameters („GMV_ITPARAM_STRING80_1_W0“ bis „GMV_ITPARAM_STRING80_1_W39“). Wenn „StartSingleJob“ oder „StartContinuous“ als Befehl angefordert wird, geben die ersten beiden Bits von „GMV_ITPARAMUSEARRAY_STRING80_W0“ an, ob diese Werte zum Überschreiben der entsprechenden im Rezept definierten Werte verwendet werden. |
MERLIC-Zustände
Wenn das MODICON®*-Plugin verwendet wird, wird der interne Zustand von MERLIC über das Feld „GMV_CURRENTSTATE“ an die SPS überfragen.
Das Byte, das die Informationen zum aktuellen Zustand überträgt, ist wie folgt codiert:
|
Bitfeldposition |
Numerischer Wert |
MERLIC-Zustand |
Beschreibung |
|---|---|---|---|
|
0 |
1 |
Preoperational |
Wenn dieses Bit auf 1 gesetzt ist, befindet sich MERLIC im Zustand „Preoperational“. |
|
|
|
OperationalAutomaticMode Initialized Ready SingleExecution ContinuousExecution |
Wenn dieses Bit auf 1 gesetzt ist, befindet sich MERLIC im Zustand „OperationalAutomaticMode“. Das bedeutet, dass sich MERLIC im Zustand „Initialized“, „Ready“, „SingleExecution“ oder „StartContinuous“ befindet:
|
|
|
|
Halted |
Wenn dieses Bit auf 1 gesetzt ist, befindet sich MERLIC im Zustand „Halted“. |
|
|
|
Error |
Wenn dieses Bit auf 1 gesetzt ist, befindet sich MERLIC im Zustand „Error“. |
|
|
|
OperationalFrontendAccessMode |
Wenn das 3. und das 8. Bit gesetzt sind, befindet sich MERLIC im manuellen Modus Das bedeutet, dass MERLIC nur über das MERLIC Frontend gesteuert werden kann. Weitere Informationen zum manuellen Modus finden Sie unter Schreibzugriff im Frontend im MERLIC-Handbuch. |
Weitere Informationen zu den verfügbaren Zuständen von MERLIC und den jeweiligen Übergängen finden Sie unter MERLIC-Zustände im MERLIC-Handbuch.
* Modicon® is a registered trademark of Schneider Electric USA, Inc.