Einrichten¶
Sowohl bei der AOI, welche die Bilder bereitstellt (Reinspect Server), als auch beim Sichtprüfplatz für die Anzeige der Bilder (Reinspect Client), sind Anpassungen notwendig.
Reinspect Server (AOI)¶
Falls noch nicht geschehen, muss bei der AOI zuerst das Reinspect server plugin aktiviert werden, z.B. über den Info-Dialog. Sollte das Plugin hier nicht gelistet sein, muss die Installation von Viper.NET geändert und Other plugins -> Reinspect mit ausgewählt werden.
Auswahl des Reinspect Server Plugins¶
Ansichten für Sichtprüfplatz¶
Für die Definition der Ansicht, also der Kombination aus Bildern und Grafiken,
die dem Anwender bei der Sichtprüfung angezeigt werden sollen, wird
der Viper.NET Standardmechanismus der User views verwendet.
Der Name der Ansichten für die Sichtprüfung muss dem Schema Reinspect_{ID} entsprechen.
Der Parameter {ID} wird später für Identifizierung die Ansicht verwendet.
Hinweis
Jede {ID} muss innerhalb eines BV Typen eindeutig sein.
Anlegen einer User-View für ReInspect¶
Kommunikation mit Sichtprüfplatz¶
Der Datenaustausch zwischen AOI und Sichtprüfplatz finden über TCP/IP, genauer gesagt über Viper.NET Streams statt. Für die AOI wird ein ConPassiveSocket mit dem ConProtGData Protokoll angelegt. Es kann ein beliebiger freier Port gewählt werden.
Vorsicht
Neben dem Streams TimeOut gibt es auch noch einen weiteren TimeOut Parameter in der Stations.xml, der angibt wie lange auf eine Telegramantwort gewartet werden soll.
Konfiguration des Server-Plugins¶
In den Globale Einstellungen müssen im Reinspect server-Tab die Konfigurationsparameter angepasst werden:
Server streams: Hier werden die vorher konfigurierten Streams für die Kommunikation mit einem oder mehreren Nacharbeitsplätzen eingetragen. Es können mehrere Streams angegeben werden, indem diese mit Trennzeichen aneinander gereiht werden. Als Trennzeichen interpretiert werden Kommata (,), Semikola (;) oder Pipes (|).
Enable downstream reinspect: Aktiviert die nachgelagerte Reinspektion: Die Ansichten werden in Dateien innerhalb des angegebenen View storage path gespeichert um sie später abrufen zu können. Mit den Checkboxen kann zusätzlich angegeben werden, dass nur Ansichten zu bestimmten Bewertungsergebnissen (Pass/ Warn / Fail) der AOI gespeichert sollen . Nur zu den aktivierten Ergebnissen werden die Ansichten gespeichert.
Vorsicht
Gespeicherte Ansichten werden nicht automatisch gelöscht. Deshalb muss für das View storage directory eine Überwachung in GEFASOFT WatchDir eingerichtet werden.
Konfiguration der BV Stationen¶
Wenn die nachgelagerte Reinspection aktiviert ist, muss für jede in der stations.xml für jede AOI Station das Reinspect-Token konfiguriert werden (siehe Nachgelagerte Reinspection):
...
<commandInterface>
<in>
...
<data varRef="VarsVisionStation1.SerialNo" id="reinspectToken" />
</in>
Reinspect Client (Sichtprüfplatz)¶
Beim Sichtprüfplatz ist mehr Konfigurationsaufwand notwendig, da hier sowohl eine Kommunikation mit der SPS als auch mit der AOI eingerichtet werden muss.
Installation Viper.NET und Projekt¶
Für den Sichtprüfplatz müssen sowohl das Vision Plugin als auch, analog zum Server, das Reinspect Plugin aktiviert sein. Sollten die beiden Plugins nicht gelistet sein, müssen sie eventuell nachinstalliert werden.
Beim Erstellen des Viper.NET Projekts für den Sichtprüfplatz kann die Vorlage Basic project verwendet werden. Im anschließenden Dialog werden dann sowohl das Vision Plugin als auch das Reinspect client plugin aktiviert. Die Vorlage Vision project könnte ebenfalls verwendet werden, enthält aber viele nicht notwendige zusätzliche Parameter und GUI Elemente.
Wenn das Vision Plugin aktiv ist, wird standardmäßig der Lizenzstatus von Cognex VisionPro geprüft. Für die Anzeige der Prüfansicht werden VisionPro-Komponenten benötigt, die ohne Lizenz verwendet werden können. Ein Dongle ist also nicht notwendig. Deshalb kann die Dongle-Prüfung in der Projektdatei deaktiviert werden:
<?xml version="1.0" encoding="utf-8"?>
<dataStore guid="81f2f63a-9ffa-4313-ae3f-39dc2a7e8a4a" name="GConfiguration" architecture="MSIL" Version="6.4.3.0">
...
<childStores>
<dataStore name="VisionPluginConfig" guid="30a23417-f978-4dbd-a2aa-054182260c4a" visionProVersion="9.6" Version="6.4.3.0">
...
<param name="disableLicenseCheckerCognex" value="True" />
...
Kommunikation mit AOI¶
Analog zur AOI werden beim Sichtprüfplatz Viper.NET Streams für die Kommunikation mit verbundenen AOIs konfiguriert. Allerdings wird hier ConClientSocket mit dem ConProtGData Protokoll angelegt. Port und IP Adresse müssen mit der AOI übereinstimmen. Außerdem sollte ein aussagekräftiger Name für den Stream vergeben werden.
Hinweis
An dieser Stelle kann die Verbindung zwischen AOI und Sichtprüfplatz getestet werden.
Kommunikation mit SPS¶
Die Kommunikation zur Steuerung wird über einen digitalen Handshake realisiert, siehe auch Stationen. Die SPS wählt dabei aus, von welcher AOI welche Ansicht abgefragt werden soll.
Zum Einrichten der Reinspect Client Station muss zuerst benötigten Daten und Bits in GInOut angelegt und die Konfigurationsdatei stations.xml angepasst werden.
<!-- ************************** -->
<!-- *******Reinspect********** -->
<!-- ************************** -->
<station id="100" name="Reinspect" type="ReinspectStation">
<!-- Name of the connection stream to use -->
<param name="streamName" value="1|PCBKleben;4|Deckel2;5|Deckel1;6|LFJetten;7|NTCJetten;8|Schutzgel;9|NTCTest"/>
<!-- Timeout to receive the reinspection view from the vision app -->
<param name="receiveViewTimeoutMs" value="20000"/>
<!-- Screen id on which the result is to be displayed. -->
<handshake>
<param name="wait4NegEdgeTrigger" value="true"/>
<param name="wait4NegEdgeTriggerTO" value="5000"/>
<param name="bitToASCII" value="false"/>
<in>
<bit bitRef="101" id="trigger"/>
</in>
<out>
<bit bitRef="101" id="ready"/>
<bit bitRef="102" id="busy"/>
<bit bitRef="103" id="error"/>
<bit bitRef="104" id="io"/>
<bit bitRef="105" id="nio"/>
</out>
</handshake>
<commandInterface>
<in>
<data dataRef="01" offset="0" length="128" id="DATA"/>
<data dataRef="01" offset="4" length="2" id="errCode" converter="System.Int16" converterParams="twistBytes=true"/>
<data dataRef="01" offset="6" length="2" id="resCode" converter="System.Int16" converterParams="twistBytes=true"/>
<!-- If value is 'x', a view is requested. If value is '99', the view is to be cleared. -->
<data varRef="ReinspectList.Command" id="cmd"/>
<!-- Contains the view number if cmd is set to 'x0'. -->
<data varRef="ReinspectList.Type" id="type"/>
<!-- Identification token for the current trigger/part. Only required for downstream reinspect. -->
<data varRef="ReinspectList.Token" id="reinspectToken" />
</in>
<out>
<data dataRef="02" offset="4" length="2" id="errCode" converter="System.Int16" converterParams="twistBytes=true"/>
<data dataRef="02" offset="6" length="2" id="resCode" converter="System.Int16" converterParams="twistBytes=true"/>
</out>
</commandInterface>
</station>
Der Handshake und die Parametrierung entsprechen weitestgehend
der Viper.NET Standard-Station.
Die Auswahl von AOI und Prüfansichts-ID wird von der SPS beim Trigger
über die Int16-Parameter cmd und type vorgegeben:
cmd: Auswahl der AOI (siehe auch Parameter streamName unten)type: Auswahl der Prüfansichts-ID, siehe auch Ansichten für Sichtprüfplatz.reinspectToken: Eindeutiges Token, dass einen Triggervorgang identifiziert. Wird bei der nachgelagerten Reinspection verwendet.
Weitere Stationsparameter:
streamName: Mapping von Kommandonummer (
cmd) auf einen Viper.NET Stream (der mit der AOI kommuniziert).Format:
{Command}|{StreamName}.Bemerkung
Wenn mehrere Streams verwendet werden soll, werden die einzelnen Einträge durch ein Semikolon getrennt:
{Command1}|{StreamName1};{Command2}|{StreamName2}Vorsicht
Einige Kommandonummern sind für spezielle Aktionen reserviert, siehe auch weiter unten.
receiveViewTimeoutMs: Empfangs-Timeout für die von der AOI angeforderte Ansicht.
Der Handshake mit der SPS gilt ist abgeschlossen, wenn die Daten für die Sichtprüfung empfangen und angezeigt worden sind. Die SPS muss danach darauf warten, bis der Bediener einen der IO/NIO Taster betätigt. Danach können folgende Kommandos verwendet werden:
Reservierte Kommandonummern
98: Speichert die Bilder, Grafiken und weitere Informationen für eine spätere Analyse ab.
99: Löscht die Ansicht für die Sichtprüfung ab.
Aufmerksamkeitsmodus¶
Nachgelagerte Reinspection¶
Mit der nachgelagerten Reinspection können Reinspect-Ansichten auf dem AOI System gespeichert und später vom Nachbewertungsplatz abgerufen werden. In Produktionslinien kann damit bspw. die Nachbewertung einer AOI Prüfung erst dann erfolgen, wenn das betroffene Bauteil am Nachbewertungsplatz angekommen ist.
Da in einem Produktionssystem viele Bauteile und damit auch viele Nachbewertungsansichten existieren, wird ein eindeutiges Reinspect-Token (String) zur Identifikation benötigt. Dieses Token kann ein existierender Identifizierer wie eine Seriennummer sein, es kann aber auch von der übergeordneten SPS generiert werden.
Bei jedem AOI Trigger muss auch das Reinspect-Token an die AOI übergeben werden. Die AOI verwendet das Token, um die Nachbewertungsansicht unter einem eindeutigen Namen abzuspeichern, sofern das Speichern aktiviert ist.
Beim Nachbewertungsplatz muss das Token dann ebenfalls beim Trigger übergeben werden. Der Nachbewertungsplatz fordert dann bei der AOI nicht die aktuelle Ansicht an, sondern die, die zu gegebenen Token gespeichert wurde.
Vorsicht
Gespeicherte Ansichten werden nicht automatisch gelöscht. Deshalb muss für das ViewStorageDirectory eine Überwachung in GEFASOFT WatchDir eingerichtet werden.