Ergebnismodi
Das MODICON®*-Plugin bietet zwei verschiedenartige Ergebnismodi: „Free-running“ und „Dequeue from buffer“. Sie müssen den gewünschten Modus in der Konfiguration des Plugins unter der Kategorie „Result Handling Behavior“ festlegen.
Unabhängig vom Ergebnismodus gibt das Feld „GMV_LASTRESULTID“ immer an, ob ein neues Ergebnis verfügbar ist. Es enthält die ID des letzten Ergebnisses und wird immer aktualisiert, wenn ein neues Ergebnis verfügbar wird. Die ID wird deswegen immer monoton erhöht, bis das Bildverarbeitungssystem zwischenzeitlich neu gestartet wird. Der Anfangswert ist 0, d. h., es ist noch kein Ergebnis verfügbar. Die ID des ersten Ergebnisdatensatzes ist 1, weil Ergebnis-IDs immer positiv sind.
Abhängig vom ausgewählten Modus werden die Ergebnisse wie nachstehend beschrieben unterschiedlich bereitgestellt.
Verfügbare Ergebnismodi
Modus „Free-running“
Bei Auswahl dieses Modus wird ein neues Ergebnis in das entsprechende Ergebnisfeld geschrieben, sobald es verfügbar wird. Dies ist für bestimmte Überwachungsanwendungen zusammen mit einer kontinuierlichen Ausführung praktisch, insbesondere wenn der Ausführungszyklus unabhängig synchronisiert wird, z. B. durch einen Hardwaretrigger, oder wenn das Timing der Anwendung ausreichend unkritisch ist.
Im Allgemeinen kann die Konsistenz eines bestimmten Ergebnisdatensatzes im Freilaufmodus nicht garantiert werden. Dies liegt daran, dass ein neues Ergebnis unabhängig davon, ob die Verarbeitung des betreffenden Datensatzes von der SPS beendet wurde, das vorhandene Ergebnis sofort überschreibt. Daher ist es möglich, dass einige Ergebnisse verloren gehen.
Modus „Dequeue from buffer“
Bei Auswahl dieses Modus wird eine interne FIFO-Warteschlange des MODICON®*-Plugins zum Speichern eingehender Ergebnisse verwendet. Der Puffer ist ein internes Element des MODICON®*-Plugins. Seine Kapazität wird durch den Parameter „Result buffer capacity“ in der Plugin-Konfiguration definiert. Diese darf nicht mit „ResultBufferSize“ in der INI-Datei von MERLIC verwechselt werden. Dieser Wert bezieht sich auf den Ergebnispuffer in MERLIC.
Sobald ein neues Ergebnis verfügbar ist, wird es zuerst in die entsprechende Pufferwarteschlange gestellt. Die SPS kann dann mit dem Befehl „DequeueResult“ anfordern, dass der älteste Ergebnisdatensatz in die entsprechenden Felder geschrieben wird. Der angeforderte Ergebnisdatensatz wird danach sofort aus der Warteschlange entfernt. 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 gelöscht. Das bedeutet, dass das Ergebnis, das als nächstes aus der Warteschlange abgerufen werden soll, bei einem Pufferüberlauf verloren geht. In diesem Fall wird das Feld „GMV_DROPPEDRESULTCOUNT“ für jedes gelöschte Ergebnis ausgehend von einem Anfangswert von 0 inkrementiert. Dieses Feld enthält also die Anzahl der gelöschten Ergebnisse bei Verwendung von „Dequeue from buffer“ als Ergebnismodus.
Der reguläre Befehlshandshake sorgt für die notwendige Synchronisierung, damit der Ergebnisdatensatz konsistent bleibt. Weitere Informationen finden Sie unter Kommunikation zwischen Plugin und SPS.
Ergebnisdatensatz
Der Ergebnisdatensatz wird nach einer Ausführung zurückgegeben und umfasst die folgenden Felder im Speicher der SPS. Sie stellen das derzeit angezeigte Ergebnis dar und werden zusammen aktualisiert, sobald ein neues Ergebnis verfügbar wird (im Modus „Free-running“) bzw. wenn ein Ergebnis aus der Pufferwarteschlange abgerufen wird (im Modus „Dequeue from buffer“).
|
Feld |
Beschreibung |
|---|---|
|
GMV_RESULTID |
ID des derzeit angezeigten Ergebnisses. |
|
GMV_RESULTRECIPEID |
ID des Rezepts, das das angezeigte Ergebnis erzeugt hat. |
|
GMV_RESULTJOBID |
ID des Jobs, der das angezeigte Ergebnis erzeugt hat. |
|
GMV_RESULTSTATE |
Zustand des angezeigten Ergebnisses:
|
|
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 einem bestimmten Ergebnis dieses Datentyps als Indikator zugewiesen ist. 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 ersten beiden Bits von „GMV_RESULTUSEARRAY_INT_W0“ |
|
GMV_RESULT_<TYPE>_<INDEX> |
Dieses Feld enthält die tatsächlichen Ergebniswerte der jeweiligen Datentypen. Jedes Ergebnis wird in ein eigenes Feld geschrieben. Derartige Felder werden nur zum SPS-Speicher hinzugefügt, wenn die Konfiguration des Plugins entsprechend festgelegt 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“. Nach der Ausführung zeigen die ersten beiden Bits von „GMV_RESULTUSEARRAY_INT_W0“ an, ob die betreffenden INT-Ergebnisse verfügbar sind. |
* Modicon® is a registered trademark of Schneider Electric USA, Inc.