Felder für die Kommunikation mit der SPS

Das MODICON®*-Plugin verwendet das Modbus-Kommunikationsprotokoll 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 Symbole dar, die von der SPS verwendet werden können. Die exportierte CSV-Datei kann beim Erstellen der Variablenliste im SPS-Programm als Referenz verwendet werden.

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 MODICON®*-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 Export Symbols bereitgestellt.
  3. Klicken Sie auf die Schaltfläche „ Plugin starten“ unten im MERLIC RTE Setup, um die Felder in die angegebene Datei zu exportieren.

Die Felder werden beim Start des Plugins automatisch in die angegebene Datei exportiert, d. h., wenn Sie auf die Startschaltfläche klicken. Die exportierte Datei enthält Informationen zu allen erforderlichen Feldern, zum jeweiligen Datentyp und zu den zugewiesenen Speicheradressen.

Die Felder können unabhängig von der SPS exportiert 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. Dazu können Sie die Datei wie im nächsten Abschnitt beschrieben importieren.

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.

Für diese Dokumentation wird die EcoStruxure™ Machine Expert - Basic EcoStruxure™ Machine Expert - Basic ist eine SPS-Programmiersoftware von Schneider Electric, mit der Modicon®* SPS von Schneider Electric konfiguriert, programmiert und überwacht werden können.-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.

In „EcoStruxure™ Machine Expert - Basic“ können Sie die Datei wie in den folgenden Schritten beschrieben importieren.

  1. Navigieren Sie zum Fenster „Programming“.
  2. Wählen Sie die Registerkarte „Tools“ auf der linken Seite aus, und klicken Sie auf „Symbol list“.

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

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

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

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:

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

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

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:

  • BOOL
  • INT
  • DINT
  • REAL
  • STRING[80]

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

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 des Arrays 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 1 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.

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“. Das Feld mit dem Symbol „GMV_ITPARAM_INT_0“ wird für den Wert des ersten Iterationsparameters vom Datentyp INT verwendet, das Feld mit dem Symbol „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_W0“ an, ob diese Werte zum Überschreiben der entsprechenden im Rezept definierten Werte verwendet werden.

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

3

8

OperationalAutomaticMode

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:

3, 4

24

Initialized

Wenn das 3. und das 4. Bit gesetzt sind, befindet sich MERLIC im Zustand „Initialized“.

3, 5

40

Ready

Wenn das 3. und das 5. Bit gesetzt sind, befindet sich MERLIC im Zustand „Ready“.

3, 6

72

SingleExecution

Wenn das 3. und das 6. Bit gesetzt sind, befindet sich MERLIC im Zustand „SingleExecution“.

3, 7

136

ContinuousExecution

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 finden Sie unter MERLIC-Zustandsmaschine.


* Modicon® is a registered trademark of Schneider Electric USA, Inc.