Profinet Kommunikation

HORST verf�gt �ber eine Profinet-Kommunikationsschnittstelle, �ber welche es m�glich ist, Daten zwischen einer SPS und dem Roboter auszutauschen. Profinet (Process Field Network) ist ein echtzeitf�higes Industrial-Ethernet-Protokoll.

Mittels der Profinet-Kommunikation kann der Roboter von der SPS gesteuert und �berwacht werden. Dabei �bernimmt HORST die Rolle des Client (Slave) und wird von der SPS (Server bzw. Master) gesteuert. Dadurch kann HORST leicht in eine bestehende Produktionslinie integriert werden und mit unterschiedlichen Peripherieger�ten kommunizieren. Neben dem Ausf�hren von spezifischen Befehlen, stehen frei beschreibbare Speicherbereiche zur Verf�gung, in denen Int-, Float- und Bool-Datentypen ausgetauscht werden k�nnen.

1. Datentypen

16-Bit Ganzzahl

Speicherbedarf : 16Bit

Wertebereich: -32768 bis 32767

32-Bit, Ganzzahl

Speicherbedarf : 32Bit

Wertebereich: -2147483648 bis 2147483647

32-Bit, Gleitkommazahl

Speicherbedarf : 32Bit

Wertebereich: 3.402823e+38 bis -1.175 495e-38

Boolean (Bool)

Speicherbedarf : 1Bit

Wert 0: false

Wert 1: true

Char

2. Profinet Output Daten

In den folgenden Kapiteln wird die Einteilung der Ausgangs (Output)-Daten beschrieben. Die Output-Daten beinhalten Daten, die vom Roboter �ber PROFINET an die SPS �bertragen werden. Die Eingangs- und Ausgangs-Daten werden innerhalb von Modulen �bertragen. Diese Module m�ssen bei der Ger�tekonfiguration im TIA-Portal angelegt werden, siehe Anlegen der Profinet-Module.

2.1 Speicherzuordnung

Die Speicherzuordnung beschreibt, wie die zu �bertragenden Daten roboterintern gespeichert sind. Der Speicherbereich wird dabei in 11 Module mit jeweils 64 Byte aufgeteilt.

  1. Modul (Zeile 0-3): Zeit, Version, Initialisierungsstatus, Programmstatus, Roboterstatus, PopUps
  2. Modul (Zeile 4-7): Inputs, Outputs
  3. Modul (Zeile 8-b): Gelenkwinkel-Positon(Joints), TCP-Position(Pose)
  4. Modul (Zeile c-f): TCP-Position
  5. Modul (Zeile 10-13): Float-Register
  6. Modul (Zeile 14-17): Float-Register
  7. Modul (Zeile 18-1b): Int-Register
  8. Modul (Zeile 1c-1f): Int-Register
  9. Modul (Zeile 20-23): Bool-Register, Tool
  10. Modul (Zeile 24-27): Aktuelle Aktivit�t, Fehler beim Aktivit�t wechseln
  11. Modul (Zeile 28-2b): nextJoints, nextPose

Speicherzuordnung �bersicht:


2.2 CurrentTime

Gibt das aktuelle Datum und die aktuelle Uhrzeit an. Das Datum wird in einer 16-Bit Ganzzahl gespeichert. Diese Zahl gibt an, wie viele Tage seit dem 01.01.1990 vergangen sind. Da der Maximalwert einer 16-Bit Ganzzahl (mit Vorzeichen)  betr�gt 32.767,  k�nnen somit ca. 90 Jahre abdecken werden.

Die Uhrzeit wird �ber eine 32-Bit Ganzzahl angegeben. Darin werden die Millisekunden seit Tagesbeginn gez�hlt. Da der Maximalwert einer 32-Bit Ganzzahl (mit Vorzeichen) bei 2.147.483.647 liegt, lassen sich alle 86.400.00 Millisekunden eines Tages abbilden.

2.3 HorstFx Version

F�r die Version von horstFX ist ein Speicherbereich von 30 Bytes reserviert. Ist der Name k�rzer als 30 Zeichen, so werden die restlichen Stellen mit �0� gef�llt. Ist der Name l�nger als 30 Zeichen, so wird nach 30 Zeichen abgeschnitten.

2.4 Initialisierungsstatus

Jedes der Initialisierungsbits gibt R�ckschluss auf den Initialisierungsstatus der einzelnen Achsen. Tr�gt das Initialisierungs-Bit den Wert 1 (true) ist die Achse Initialisiert, beim Wert 0 (false) ist die jeweilige Achse nicht Initialisiert.
Tr�gt das Bit 6 den Wert 1 (true) ist gerade eine Initialisierung aktiv.

Ab horstFX Relesase 2021.07 verf�gbar: Das letzte Bit gibt an, ob sich horstFX im Initialisierungs-Interface befindet und bereit f�r die Initialisierung �ber die externe Schnittstelle ist (=true). Dieses Bit muss gesetzt sein, bevor der Befehl f�r die Ausf�hrung der Initialisierung aus den Profinet Input Daten geschickt werden kann.

2.5 Programmstatus

Gibt die auf dem Roboter eingestellt Bewegungsgeschwindigkeit und den Programmstatus aus. Ist das Bit ProgrammCall_aktiv gesetzt, k�nnen ProgrammCalls (Start,Stop,Pause) ausgef�hrt werden, andernfalls werden diese nicht ausgef�hrt.
�ber die Bits "isRunning" und "isInExecutingMode" kann der aktuelle Programmstatus ermittelt werden. Die folgende Tabelle gibt die m�glichen Kombinationen an:

 

2.6 Roboterstatus 

Der Operationsmodus gibt Aufschluss dar�ber, welcher Operationsmodus am Roboter eingestellt ist. Der Operationsmodus wird �ber eine Ganzzahl angegeben und kann die folgenden Zust�nde annehmen:

  • 0 ? Automatik Modus
  • 1 ? T1
  • 2 ? T2
  • 3 ? isFloatingMode

Die einzelnen Bits des Roboterstatus-Bytes geben Aufschluss dar�ber, ob ein Fehler vorliegt. Tr�gt das jeweilige Bit den Wert 1 (true) liegt ein entsprechender Fehler vor.
Der folgenden Tabelle kann entnommen werden, welche Fehler auftreten k�nnen:

2.7 PopUp

W�hrend des Roboterbetriebs, k�nnen unterschiedliche PopUps auftreten. Die PopUp-ID gibt an, welches PopUp aktiv ist. Ist kein PopUp aktiv, wird der Wert 0 zur�ckgegeben.
Unter dem Link Dokumentation Pop-up-Fenster, k�nnen der angezeigten PopUp-ID das dazugeh�rige PopUps entnommen werden.

Die PopUp-ID kann verwendet werden, um ein bestimmtes PopUp abzufragen und �ber die PopUpConfirmations-Bits in den Profinet Input Daten zu best�tigen. Zu besseren Taktung kann �ber die PopUp-ID au�erdem abgefragt werden, welches PopUpConfirmation-Bit gerade gesetzt ist (vgl. Dokumentation Pop-up-Fenster ID 1-7). Um aufeinander folgende PopUp's zu quittieren, solle bei jedem PopUp abgefragt werden, ob alle PopUpConfirmation-Bits wieder zur�ckgesetzt wurden.

Dieses Vorgehen wird im  Beispielprogramm Initialisieren, Programm laden und starten n�her beschrieben.