Kommunikation Beckhoff <-> In-Sight Explorer

SPS_metzger

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

für eine Projektarbeit muss ich eine Verbindung zwischen Beckhoff und der Cognex Software In-Sight Explorer herstellen.
Die Beckhoff Bausteine (SocketSend, SocketReceive, ClientServerConnection) habe ich in der Hilfe gefunden, weiß aber nicht so genau, was ich jetzt mit denen anstellen soll, bzw. wie ich meinen System Manager einzurichten habe.
Habe vorher noch nie mit Beckhoff gearbeitet und bin deshalb etwas hilflos.
Außerdem muss ich doch im In-Sight Explorer irgendwie deklarieren, damit TwinCat genau auf das gewünschte Feld im In-Sight zugreift???

Hat von euch schon jemand eine solche Kommunikation aufgebaut und kann mir ein paar Tipps geben??

Vielen Dank im voraus euer SPS_metzger ;)
 
Die FBs benötigen den TwinCAT TCP/IP Connection Server von Beckhoff (der muss auf der Steuerung installiert sein). Dieses Supplement ist kostenpflichtig (30Tage freie Demo).
Ich kenne diesen In-Sight Explorer nicht aber auf deren Seite bieten die auch dieses Congnex Connect an, das mehrere Bussysteme unterstützt.
 
Ja die nötigen FBs habe ich mir bei Beckhoff heruntergeladen. Bei diesem Cognex Connect findet man aber keine weiteren Informationen, außer welche Bussysteme unterstützt werden...

In-Sight Explorer und TwinCat sollen über Ethernet kommunizieren, während sich die Kamera im Live-Modus befindet. Amgeblich soll es irgendwo nen Befehlssatz geben, um auf die einzelnen Zellen des In-Sight Explorers zuzugreifen.
Native Commands??? :confused:
 
InSight+TwinCat

InSight und TwinCat über Netzwerk kommunizieren zu lassen sollte mit den angegebenen Bausteinen möglich sein. Das InSight bietet prinzipiell mehrere Kommunikationsmöglichkeiten - eine davon ist, wie bereits erwähnt der sog. Native-Mode-Kommandosatz. Hiermit ist es möglich, über einfache ASCII-Befehle (siehe Cognex-Hilfe unter "Native-Mode") z. B. Zellen im Spreadsheet (Tabelle) zu beschreiben und zu lesen. Man kann das z. B. über eine Telnet-Verbindung (oder seriell) ausführen - einfach mal die Kamera (oder den InSight-Explorer) starten und per Kommandozeile eine Telnet-Sitzung eröffnen. Es erscheint dann üblicherweise "Welcome to InSight" oder so ähnlich und die Abfrage nach einem Benutzernamen und Passwort - standardmäßig "admin" als Benutzer und kein Pwd. War der Login erfolgreich, kann man Native-Mode-Kommandos absetzen (z. B. LFabc.job, um das Prüfprogramm abc.job zu laden). Cognex antwortet dann immer mit einem Statuswert + je nach Kommando z. B. dem Inhalt einer Zelle (siehe Cognex-Hilfe). Anstatt nun dieses ganze Prozedere per Kommandozeile abzuhandeln, kann man auch eine SPS nehmen, baut mittels eines TCP-Client-Treibers (wie bereits erwähnt) eine Verbindung zum Port 23 (=Telnet) der Kamera auf (kann auch im InSight auf anderen Port umgestellt werden) und sendet dann die gewünschten Native-Mode-Kommandos (ein Kommando endet immer mit CR/LF!). Achtung: sobald die Verbindung besteht, sendet die Kamera sofort den Login-String (siehe oben) zurück - man muss dann selber in der SPS das korrekte Login handeln (senden von Benutzernamen und Passwort). Erst nach diesem Login folgen die NM-Kommandos! Ebenso muss man sich natürlich um das Bearbeiten der Empfangsdaten von der Kamera kümmern (Statuscode + Ergebnis, je nach NM-Kommando). Weiterhin sei noch darauf hingewiesen, dass zum Beschreiben einer Zelle der Tabelle diese z. B. als "EditInt" oder "EditFloat" deklariert sein muss - dann ist der Zugriff z. B. per NM-Kommando SI (Set Integer) möglich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du musst wie edqw schreibt den Telnet Login nachbilden.
Wenn das steht sind weitere wichtige Commandos:
Weitere wichtige Native Commands:
SE8 - Bild Trigger (nur wichtig wenn du auch eine Kamera hast und nicht den Emulator verwendets)
SW8 - Bild Trigger und warten bis der Insight Job fertig ist.
GV"Zelle" - liefert dir den Zellen Inhalt.

Eventuell noch Online/Offline schalten und andere Jobs laden.

Das ganze ist recht aufwendig, aber wenn es einmal steht läuft es sehr gut.
 
Hallo,

du kannst alternativ alle gängigen Kameras mit der PatSwitch -Software ansprechen, und mit LUA der integrierten Scripsprache während der Datenerfassung die
Bildauswertung im Scripteditor gestallten. Ergebnisse können an das Wago-Busklemmensystem geleitet werden.
Also eine echte alternative sieh dort:

http://www.flexxvision.de/konnektivitaet.html

Gruß Karsten
 
Ja vielen Dank, die Telnet Kommunikation über die Kommandozeile habe ich ausprobiert und funktioniert einwandfrei.
Nutze jetzt die Beckhoff-Bausteine FB_ClientServerConnection, FB_SocketSend und FB_SocketReceive.
Allerdings weiß ich nicht, welcher Variablen ich den Benutzername, PW und den Befehl mitgeben muss, kann mir da noch jemand weiterhelfen?? Die Erklärung, was doe Variable hSocket genau macht, ist auch ziemlich verwirrend....

Gruß sps_metzger :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
InSight+TwinCAT

Viele Infos zu den Bausteinen und deren Verwendung findet man im http://infosys.beckhoff.de.
Ansonsten empfiehlt sich ein Schrittablauf, etwa in folgender Form:
1) Mit dem FB_ClientServerConnection eine Verbindung zur Kamera aufbauen. Dieser Baustein liefert ein Socket-Handle (eindeutige Identifikationsnummer des Betriebssystems) zurück, welches man sich in eine Variable speichert, da es nun für die Sende- und Empfangsfunktionen der FB_SocketSend bzw. FB_SocketReceive wieder als Inputparameter benötigt wird.
2) Steht die Verbindung (FB_ClientServerConnection.eState=eSOCKET_CONNECTED), so muss man, wie bereits erwähnt, mittels FB_SocketReceive den Willkommensstring der Kamera einlesen. Diesen prüft man auf die Zeichenkette "User:".
3) Nun ist der Benutzername mittels FB_SocketSend abzusenden. Der FB_SocketSend erwartet einen Pointer auf die Sendedaten (pSrc), welche in diesem Falle hier vorteilhaft als STRING deklariert werden.
4) Man wartet nun mittles FB_SocketReceive auf den String "Password:" und sendet genauso das Passwort für die Kamera ab.
5) Als nächstes ist abzuprüfen, ob man "User Logged In" empfangen hat. Ist das der Fall, so kann mit dem Senden der erwähnten NM-Kommandos fortgefahren werden.
6) Es ist zu beachten, dass die Kamera - je nach Kommando - entweder mit einer oder zwei Zeilen Empfangsdaten antwortet. Dies ist selber über das Zeilenumbruchzeichen zu handeln.
Sicherlich erfordert der beschriebene Ablauf etwas Programmieraufwand, läuft aber, wie schon beschrieben, dann zuverlässig und stabil - ein Test der Kamera ist ebenso leicht über die Kommandozeile möglich.
 
Zurück
Oben