2023-07-12
Unser ABB-Roboterprogramm besteht hauptsächlich aus Dreimodulmodulen:
1. Admin
2. spezifisches Aktionsprogramm der Maschine (wir nennen es Job)
3. schreiben Sie RegPos (verwendet als Markierung nach der Durchführung einer spezifischen Position im Job)
Im oben genannten Teil des Programms, änderten wir hauptsächlich das Modul 2module, das viele Jobs einschließt, und jeder Job ist ein spezifisches Programm, das Roboterpositionsbewegung einführt.
Jedes mögliches Programm hat einen ProgrammEingang und also tun Sie Roboterprogramme. Und der Eingang zu unserem Roboterprogramm ist im Admin-Programm. Der Quellcode des Haupt Admin-Programms () ist wie folgt. Bitte Anmerkung, der wir Haupt PROC gesehen haben (). Die Programmiereinheit für ABB-Roboter ist das Verfahren, abgekürzt als PROC. Das Hauptverfahren für dieses Admin-Programm ist im Allgemeinen, nachdem es eine neue Maschine hergestellt hat:
PROC hauptsächlich ()
SCHLIESSEN Sie fTCPSpeedHigh MIT IGenRobotMoving an;
SCHLIESSEN Sie fTCPSpeedLow MIT IGenRobotMoving an;
ISignalAO virt_TCPSpeed_Robot1, AIO_ABOVE_HIGH, 0,02, 0, 0, fTCPSpeedHigh;
ISignalAO virt_TCPSpeed_Robot1, AIO_BELOW_HIGH, 0,015, 0, 0, fTCPSpeedLow;
WENN OpMode () =OP_MAN_PROG DAMALIG
TPErase;
TPReadFK FunkTaste, „ausgewählte Bewegungsjobs durch manuellen Arbeitsmodus? “, "", "", "", „nein“, „ja“;
WENN FunkTaste=5 DANN
Handbuch;
SONST
TPErase;
TPWrite „Roboter, der in manuellen Arbeitsmodus“ sich bewegt;
TPWrite „Kommunikation mit Meister-PLC“;
ENDIF
SONST
TypNum: =0;
JobNum: =0;
Funktaste: =0;
ENDIF
Initialisieren Sie;
SpeedLimiter;
pStartingPoint: =CRobT (Werkzeug: =tool0 WObj: =wobj0);
regStartingAngleX: =EulerZYX (X, pStartingPoint.rot);
regStartingAngleY: =EulerZYX (Y, pStartingPoint.rot);
regStartingAngleZ: =EulerZYX (Z, pStartingPoint.rot);
regStoppedAngleX: =EulerZYX (X, pPointAtStop.rot);
regStoppedAngleY: =EulerZYX (Y, pPointAtStop.rot);
regStoppedAngleZ: =EulerZYX (Z, pPointAtStop.rot);
WENN (pPointAtStop.trans.X>= (pStartingPoint.trans.X+regTransDiff) ODER
pPointAtStop.trans.X pPointAtStop.trans.Y>= (pStartingPoint.trans.Y+regTransDiff) ODER<>
pPointAtStop.trans.Y pPointAtStop.trans.Z>= (pStartingPoint.trans.Z+regTransDiff) ODER<>
pPointAtStop.trans.Z (regStoppedAngleX>=<>
(regStartingAngleX+regRotDiff) ODER
regStoppedAngleX<>
regStoppedAngleY>= (regStartingAngleY+regRotDiff) ODER
regStoppedAngleY<>
regStoppedAngleZ>= (regStartingAngleZ+regRotDiff) ODER
regStoppedAngleZ<>
pPointAtStop.robconfpStartingPoint.robconf DANN<>
Stellen Sie DO13_RobotHasBeenMoved ein;
ENDIF
WÄHREND di8_HsStartMain=0 TUN
SetGO DO32_39_HsStepCode, 0;
WaitDI DI10_ReadJobCode, 1;
VelSet DI40_47_Override, 7500; ! Geschwindigkeit wird auf maximales eingestellt
SetGO DO24_31_HsJobCode, DI24_31_JobCode;
SetDO DO10_HsReadJobCode, 1;
WaitDI DI10_ReadJobCode, 0;
SetDO DO10_HsReadJobCode, 0;
! Anruf Jobprogram
CallByVar „Job“, DI24_31_JobCode;
ENDWHILE
ENDPROC
Dieses Programm ist ein Stückchen lang, und ich möchte nicht es vorstellen zu viel. Ich möchte hauptsächlich über den letzten Abschnitt des Programms sprechen, weil dieser Abschnitt die Durchführung ist von, wie der Roboter das Jobprogramm im zweiten Modul nennt, wenn er seine Position bewegt. Ich denke, dass dieses auch ist, was die meisten Leute, die über Roboterprogramme lernen möchten, die die meisten kennen und verstehen wünschen:
Erstens der erste Satz, WÄHREND di8_ HsStartMain=0 TUN
Anmerkung das der Händedruck ‚Anfangshauptleitung ‚DI8_HsStartMain-‘ Durchschnitte getan‘
Dies heißt, dass, wenn das Bool-Signal HsStartMain des digitalen Input 0 ist, es bedeutet, dass die Hauptleitung nicht noch angestellt worden ist. Wir müssen durchführen während zu tun, um den ganzen Code abzuschließen. Es gibt durchaus einige Codes hier, und ich nenne ein Beispiel, wie zweite
WaitDI DI10_ ReadJobCode, 1; Die Bedeutung der Anmerkungsvariable „DI10_ReadJobCode“ ist der Händedrucksignal Händedruck „gelesener Job“ vom PLC.
O.K., so wie genau stellt es Roboter her, verschiedene Jobs durchzuführen? Sorgen Sie sich nicht, das ist es:
! Anruf Jobprogram ist gerade ein Kommentar
CallByVar „Job“, _JobCode DI24_ 31; Dieser Satz ist das Wesentliche.
Schicken Sie uns Ihre Untersuchung direkt