2023-07-12
हमारे एबीबी रोबोट प्रोग्राम में मुख्य रूप से तीन मॉड्यूल मॉड्यूल शामिल हैं:
1. व्यवस्थापक
2. मशीन विशिष्ट क्रिया कार्यक्रम (हम इसे जॉब कहते हैं)
3. रेगपोस लिखें (कार्य में किसी विशिष्ट पद को निष्पादित करने के बाद मार्कर के रूप में उपयोग किया जाता है)
कार्यक्रम के उपरोक्त भाग में, हमने मुख्य रूप से 2 मॉड्यूल मॉड्यूल को संशोधित किया है, जिसमें कई नौकरियां शामिल हैं, और प्रत्येक नौकरी एक विशिष्ट कार्यक्रम है जो रोबोट स्थिति आंदोलन को कार्यान्वित करती है।
किसी भी प्रोग्राम में एक प्रोग्राम प्रवेश बिंदु होता है, और रोबोट प्रोग्राम में भी ऐसा ही होता है।और हमारे रोबोट प्रोग्राम का प्रवेश एडमिन प्रोग्राम में है।एडमिन प्रोग्राम के मुख्य() का स्रोत कोड इस प्रकार है।कृपया ध्यान दें कि हमने PROC मुख्य() देखा है।एबीबी रोबोट के लिए प्रोग्रामिंग इकाई प्रक्रिया है, जिसे संक्षेप में PROC कहा जाता है।इस एडमिन प्रोग्राम की मुख्य प्रक्रिया मूल रूप से एक नई मशीन बनाने के बाद होती है:
प्रोसी मुख्य()
IGenRobotMoving के साथ fTCPSpeedHigh कनेक्ट करें;
IGenRobotMoving के साथ fTCPSpeedLow कनेक्ट करें;
ISignalAO virt_TCPSpeed_Robot1, AIO_ABOVE_HIGH, 0.02, 0, 0, fTCPSpeedHigh;
ISignalAO virt_TCPSpeed_Robot1, AIO_BELOW_HIGH, 0.015, 0, 0, fTCPSpeedLow;
यदि OpMode()=OP_MAN_PROG तब
टीपीईरेज़;
TPReadFK FunkTaste,"मैन्युअल मोड द्वारा नौकरियों को स्थानांतरित करने का चयन करें?","","","","नहीं","हाँ";
यदि फंकटेस्ट = 5 तो
नियमावली;
अन्य
टीपीईरेज़;
टीपीराइट "रोबोट मैनुअल मोड में चल रहा है";
टीपीराइट "मास्टर-पीएलसी के साथ संचार";
अगर अंत
अन्य
टाइपनम:=0;
जॉबनम:=0;
फन्क्तस्वाद:=0;
अगर अंत
प्रारंभ करें;
गति सीमित करने वाला;
pStartingPoint:=CRobT(टूल:=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);
यदि (pPointAtStop.trans.X>=(pStartingPoint.trans.X+regTransDiff) या
pPointAtStop.trans.X<=(pStartingPoint.trans.X-regTransDiff) या
pPointAtStop.trans.Y>=(pStartingPoint.trans.Y+regTransDiff) या
pPointAtStop.trans.Y<=(pStartingPoint.trans.Y-regTransDiff) या
pPointAtStop.trans.Z>=(pStartingPoint.trans.Z+regTransDiff) या
pPointAtStop.trans.Z<=(pStartingPoint.trans.Z-regTransDiff)) या
(regStoppedAngleX>=(regStartingAngleX+regRotDiff) या
regStoppedAngleX<=(regStartingAngleX-regRotDiff) या
regStoppedAngleY>=(regStartingAngleY+regRotDiff) या
regStoppedAngleY<=(regStartingAngleY-regRotDiff) या
regStoppedAngleZ>=(regStartingAngleZ+regRotDiff) या
regStoppedAngleZ<=(regStartingAngleZ-regRotDiff)) या
pPointAtStop.robconf<>pStartingPoint.robconf फिर
DO13_RobotHasBeenMoved सेट करें;
अगर अंत
जबकि di8_HsStartMain=0 DO
SetGO DO32_39_HsStepCode,0;
वेटडीआई डीआई10_रीडजॉबकोड,1;
वेलसेट DI40_47_ओवरराइड, 7500;!गति अधिकतम पर सेट है
SetGO DO24_31_HsJobCode,DI24_31_JobCode;
SetDO DO10_HsReadJobCode,1;
waitDI DI10_ReadJobCode,0;
SetDO DO10_HsReadJobCode,0;
!जॉबप्रोग्राम पर कॉल करें
CallByVar "जॉब",DI24_31_JobCode;
अंत समय
अपनी जांच सीधे हमें भेजें