Code-Beispiel: Mehrere Transportbändern
HINWEIS
Folgendes Beispiel kann im IEC-Editor importiert werden. Öffnen Sie dazu im IEC-Editor das Menü [Tools] > [Skripting] > [Scripts] > [R] und klicken Sie auf den Menüeintrag [Robotics_Examples.py].
Beim Verwenden mehrerer Transportbänder muss mittels einer CallFunction zwischen den verschiedenen Transportbändern umgeschaltet werden. Dafür muss z. B. in der Aktion USER_PRG.Init() das Interface der CallFunction verlinkt werden. Das Verwenden der Funktion CallFunction ist im Kapitel IEC-Funktionsaufruf für das SRL-Programm beschrieben.
Das Umschalten der Koordinatensysteme erfolgt in der Methode CallF.
Analog zum Vorgehen mit nur einem Transportband, werden die beiden Transportbänder in der Methode PRG_ExampleMultipleConveyorTracking.Init() parametriert.
In der Methode PRG_ExampleSingleConveyorTracking.HighPrio() werden die Positionsverläufe der beiden Transportbänder den Bausteinen afbConveyor[1, 2] zyklisch zugewiesen.
Im Deklarationsteil des User_PRG wird der Funktionsbaustein FB_ExampleMultipleConveyorTracking instanziiert.
Die beiden Methoden Init() und HighPrio() sind in den Aktionen USER_PRG.Init() und USER_PRG.HighPrio() aufzurufen und dabei der vom Anwender in MOVISUITE® vergebene Name des Roboterknotens (z. B. MyRobot) zu übergeben.
User_PRG.Init()
xInitDone := (* xInitDone AND *)
fbExampleMultipleConveyorTracking.Init() AND
MyRobot.fbProgramInterpreter.LinkICallF(
fbExampleMultipleConveyorTracking);
User_PRG.HighPrio()
fbExampleMultipleConveyorTracking.HighPrio(
rInterface_Robot := Interface_MyRobot,
rHMI_Robot := HMI_MyRobot);
Wenn in der Aktion USER_PRG.Init() weitere Init()-Signale gebildet werden (zum Beispiel die Init für die CallFunction), müssen diese alle verknüpft werden.