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 MELSEC Communication-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 Global Label CSV Export 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 GX Works2 dient die exportierte Datei als Eingabe, welche Felder und Speicherblöcke für die Kommunikation benötigt werden. Dazu können Sie die Datei wie im nächsten Abschnitt beschrieben importieren.
„Global Label“-Datei importieren
Nachdem die ausgewählten Felder der Plugin-Konfiguration im .csv-Format in die „Global Label“-Datei exportiert wurde, können Sie diese Datei in GX Works importieren und die jeweiligen Felder für die Implementierung des SPS-Programms verwenden.
Für diese Dokumentation wird die GX Works2-Version 1.612N verwendet. Wenn Sie GX Works3 oder eine andere Version von GX Works2 verwenden, können Benutzeroberfläche und Parameternamen von der Darstellung in den Beispielabbildungen abweichen. Weitere Informationen zu GX Works im Allgemeinen und dessen Funktionen sowie zum Programmieren und Überwachen von speicherprogrammierbaren Steuerungen (SPS) der MELSEC-Serie mit GX Works finden Sie auf der Website von Mitsubishi Electric.
In GX Works2 können Sie die Datei wie in den folgenden Schritten beschrieben importieren.
- Öffnen Sie das Panel „Project“.
- Klicken Sie mit der rechten Maustaste auf „Global Label“ und wählen Sie den Menüeintrag „Read from CSV File...“ aus.

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 |
WORD |
Hauptversionsnummer des Plugins. |
|
gMV_VersionMinor |
WORD |
Nebenversionsnummer des Plugins. |
|
gMV_Heartbeat |
WORD |
Zähler, der für den Heartbeat-Modus verwendet wird. Der Wert wird laufend aktualisiert, solange das Plugin ausgeführt wird. Damit kann überprüft werden, ob die Verbindung noch aktiv ist, um bei einer unerwarteten Trennung der Verbindung geeignet zu reagieren. |
|
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 |
DWORD |
ID des letzten Ergebnisses. |
|
gMV_NumberOfRecipes |
DINT |
Anzahl der verfügbaren Rezepte. |
|
gMV_PreparedRecipeIds |
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 |
DWORD |
ID des derzeit ausgeführten Jobs. |
|
gMV_AcquisitionDoneCount |
DWORD |
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 |
DWORD |
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 |
DWORD |
ID des derzeit angezeigten Ergebnisses. |
|
gMV_ResultRecipeId |
DINT |
ID des Rezepts, das das angezeigte Ergebnis erzeugt hat. |
|
gMV_ResultJobId |
DWORD |
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. |
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> |
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“ zum SPS-Speicher hinzugefügt. Wenn die beiden niederwertigsten Bits von „gMV_ResultUseArray_INT“ TRUE sind, sind beide Ergebnisse des Datentyps INT verfügbar. Verfügbare Datentypen:
|
|
gMV_Result_<TYPE>_<INDEX> |
Dieses Feld enthält die tatsächlichen Ergebniswerte der jeweiligen Datentypen. Jedes Ergebnis wird in ein eigenes Feld geschrieben. Das Label 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“. |
Dynamische Felder, in die die SPS schreibt
|
Feld |
Beschreibung |
|---|---|
|
gMV_ItParamUseArray_<TYPE> |
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“ 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“ auf TRUE festgelegt sind, werden die ersten beiden Rezeptwerte des Datentyps INT für die nächste Ausführung durch die in „gMV_ItParam_INT_0“ und „gMV_ItParam_INT_1“ definierten Werte überschrieben. |
|
gMV_ItParam_<TYPE>_<INDEX> |
Werte für die Iterationsparameter der jeweiligen Datentypen. 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“. |
MERLIC-Zustände
Wenn das MELSEC Communication-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.