Felder für die Kommunikation mit der SPS

Das MELSEC Communication-Plugin verwendet das MELSEC-Kommunikationsprotokoll (MC-Protokoll) für die Kommunikation mit der SPS. Die übertragenen Informationen werden über die Konfiguration des Plugins definiert. Für jede Art von Information, z. B. der angeforderte Befehl oder ein Ergebniswert, wird ein sogenanntes „Feld“ bereitgestellt. Die jeweiligen Felder werden beim Start des Plugins in eine .csv-Datei exportiert. Diese stellt die globalen „Labels“ für die SPS dar. Die exportierte .csv-Datei kann in die SPS-Programmiersoftware GX Works importiert werden, wo sie als Basis für das SPS-Programm verwendet wird.

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.

  1. Wählen Sie die gewünschte MELSEC Communication-Plugin-Instanz im linken Bereich aus, um die Konfiguration des Plugins anzuzeigen.
  2. Passen Sie Speicherort und Dateiname der zu exportierenden .csv-Datei ggf. an. Die betreffenden Parameter werden in der Parameterkategorie Global Label CSV Export bereitgestellt.
  3. 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.

  1. Öffnen Sie das Panel „Project“.
  2. 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:

  • 1 = abgeschlossen
  • 2 = in Bearbeitung
  • 3 = abgebrochen
  • 4 = fehlgeschlagen

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_INTTRUE sind, sind beide Ergebnisse des Datentyps INT verfügbar.

Verfügbare Datentypen:

  • BOOL
  • WORD
  • DWORD
  • INT
  • DINT
  • REAL
  • LREAL
  • STRING[32]

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“. Das Feld mit dem Label „gMV_Result_INT_0“ wird für den Wert des ersten Ergebnisses vom Datentyp INT verwendet, das Feld mit dem Label „gMV_Result_INT_1“ für das zweite INT-Ergebnis. Nach der Ausführung zeigen die ersten beiden Bits von „gMV_ResultUseArray_INT“ an, ob die betreffenden INT-Ergebnisse verfügbar sind.

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. Das Label eines Iterationsparameterfelds 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“. Das Feld mit dem Label „gMV_ItParam_INT_0“ wird für den Wert des ersten Iterationsparameters vom Datentyp INT verwendet, das Feld mit dem Label „gMV_ItParam_INT_1“ für den Wert des zweiten INT-Parameters. Wenn „StartSingleJob“ oder „StartContinuous“ als Befehl angefordert wird, geben die ersten beiden Bits von „gMV_ItParamUseArray_INT“ an, ob diese Werte zum Überschreiben der entsprechenden im Rezept definierten Werte verwendet werden.

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“.

3

3, 4

3, 5

3, 6

3, 7

8

24

40

72

136

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:

  • Wenn das 3. und das 4. Bit gesetzt sind, befindet sich MERLIC im Zustand „Initialized“.
  • Wenn das 3. und das 5. Bit gesetzt sind, befindet sich MERLIC im Zustand „Ready“.
  • Wenn das 3. und das 6. Bit gesetzt sind, befindet sich MERLIC im Zustand „SingleExecution“.
  • Wenn das 3. und das 7. Bit gesetzt sind, befindet sich MERLIC im Zustand „ContinuousExecution“.

1

2

Halted

Wenn dieses Bit auf 1 gesetzt ist, befindet sich MERLIC im Zustand „Halted“.

2

4

Error

Wenn dieses Bit auf 1 gesetzt ist, befindet sich MERLIC im Zustand „Error“.

3, 8

264

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.