In diesem Artikel wird Einrichtung des Systems beschrieben. Das 2D System ist einfach und intuitiv in der Nutzung �ber die EYE+ Studio Web-Oberfl�che.
1. Einleitung
Die Kombination aus einem Asycube und dem EYE+ Smart Control System erm�glicht es, bei der Zuf�hrung, Vereinzelung und Ausrichtung der als Sch�ttgut gelieferten Teile an Effizienz zu gewinnen. Der Asycube ist dank seiner mit TCP/IP und Modbus TCP kompatiblen Kommunikation mit allen HORSTs und mit jeder SPS kompatibel. F�r die Einrichtung und Nutzung von EYE+ sind keine Vorkenntnisse in der Bildverarbeitung erforderlich. Es ist einfach und intuitiv zu bedienen. Folgen Sie einfach den Schritten in der EYE+ Studio Web-Oberfl�che.
2. Einrichtung des Systems
Die Einrichtung des Systems ist sehr gut in den Dokumenten von asyril beschrieben. Der Web-Wizard von Asyril leitet einen sehr intuitiv durch die verschiedene Schritte um Bauteile einzulernen sowie die ben�tigten Rezepte zu erstellen. Weitere Informationen findet man auch in folgender Dokumentation https://doc.eyeplus.asyril.com/de/2.1/index.html
3. Kommunikation
Die Teilnehmer m�ssen sich im selben Bereich des Netzwerks befinden. Wie man die IP-Adresse des Roboters einstellt ist in folgendem Artikel beschrieben: IP-Adresse �ndern
Folgend wird die Kommunikation mittels TCP IP beschrieben. Weitere Informationen dazu findet man unter Sockets
Auf der EYE+ Weboberfl�che muss unter dem Tab configuration ? robot ? TCP/IP Configuration der End of line character auf Carriage Return und Line Feed eingestellt werden.
3.1. Aufbau der Verbindung
// TCP/IP Socket Communication
var IP = "192.168.0.50"; // IP asyril EYE+
var Port = 7171; // Port IP asyril EYE+
var Terminator = "\r\n"; // Zeilenumbruch Carriage Return + Linefeed. Muss in asyril EYE+ Web HMI unter "configuration" konfiguriert werden
//********************************************* Programm *********************************************
// Aufbau der Verbindung zu asyril EYE+
try
{
var socket = new java.net.Socket();
socket.connect(new java.net.InetSocketAddress(IP, Port), 10000); //10s timeout
// 10 sek Timeout beim Einlesen der Nachricht ueber einen Socket
socket.setSoTimeout(10000);
}
catch (e)
{
show_info("A connection with the Asyril EYE+ could not be established!");
}
3.2. Schreiben einer Nachricht
// Nachricht ueber Socket schreiben
function writeMessage(socket, message)
{
var printWriter =
new java.io.PrintWriter(
new java.io.OutputStreamWriter(
socket.getOutputStream()));
printWriter.print(message += Terminator);
printWriter.flush();
}
3.3. Lesen einer Nachricht
// Nachricht ueber Socket lesen
function readMessage(socket)
{
var bufferedReader =
new java.io.BufferedReader(
new java.io.InputStreamReader(
socket.getInputStream()));
var charArrayType = Java.type("char[]");
var buffer = new charArrayType(1000);
try {
var amountCharacters = bufferedReader.read(buffer, 0, 1000);
var message = new java.lang.String(buffer);
} catch (e) {
var message = "Timeout: Keine Nachricht erhalten";
}
return message;
}
4. asyril EYE+ Befehle
Folgend findet man Beispiele wie die asyril EYE+ Befehle in horstFX verwendet werden k�nnen. Es werden die Hauptbefehle zur Programmausf�hrung beschrieben. Sollten weitere Befehle gebraucht werden, k�nnen diese analog dazu umgesetzt werden. Die zur Verf�gung stehende Befehle findet man unter https://doc.eyeplus.asyril.com/de/2.1/integration/tcp_programming_guide/commands.html
// Asyril EYE+ Status herausfinden
function getState()
{
var Message = "get_parameter state";
writeMessage(socket, Message);
var cam_result = readMessage(socket);
show_info(cam_result);
}
// Asyril EYE+ Rezeptidentifikator herausfinden
function getReceptIndicator()
{
var Message = "get_recipe_list";
writeMessage(socket, Message);
var cam_result = readMessage(socket);
show_info(cam_result);
}
// Asyril EYE+ Rezept starten
function startRecept()
{
var Message = "start production 1813";
writeMessage(socket, Message);
var cam_result = readMessage(socket);
show_info(cam_result);
}
// Asyril EYE+ Teileposition erhalten
function getPartPositions()
{
var Message = "get_part";
writeMessage(socket, Message);
var Cam_result = readMessage(socket);
show_info(Cam_result);
// Nachricht aufteilen
var Splitted = Cam_result.split(" ");
var State = Splitted[0];
var CamCoordX = parseFloat(Splitted[1].replace("x=", ""));
var CamCoordY = parseFloat(Splitted[2].replace("y=", ""));
var CamCoordRZ = parseFloat(Splitted[3].replace("rz=", ""));
show_info("X = " + CamCoordX + " Y = " + CamCoordY + " RZ = " + CamCoordRZ);
}
// Asyril EYE+ neue Teile vorbereiten und erkennen
function prepareNewPart()
{
var Message = "prepare_part";
writeMessage(socket, Message);
var cam_result = readMessage(socket);
show_info(cam_result);
}
// Asyril EYE+ Produktion stoppen
function stopProduction()
{
var Message = "stop production";
writeMessage(socket, Message);
var cam_result = readMessage(socket);
show_info(cam_result);
}
Die Funktionen k�nnen wie nachfolgend beschrieben aufgerufen werden:
// Asyril EYE+ Status herausfinden
getState();
// Asyril EYE+ Rezeptidentifikator herausfinden
getReceptIndicator();
// Asyril EYE+ Rezept starten
startRecept();
// Asyril EYE+ Teileposition erhalten
getPartPositions();
// Asyril EYE+ Neue Teile vorbereiten und erkennen
prepareNewPart();
// Asyril EYE+ Produktion stoppen
stopProduction();
5. Beispielprogramme
5.1. Beispielprogramm welches die Kommunikation und EYE+ Befehle beinhaltet
5.2. Beispielprogramm mit Aufnahme eines Objekts und Abwurf �ber einem Beh�lter