2023-07-12
우리의 ABB 로봇 프로그램은 주로 세 모듈 모듈로 구성됩니다 :
1. 정부
2. 기계 특정한 동작 프로그램 (우리가 그것을 일자리로 부릅니다)
3. 레그포스를 작성하세요 (일자리의 특정 위치를 실행하는 것 뒤에 마커로서 사용되)
프로그램의 위에서 말한 일부에서, 우리는 주로 많은 업무를 포함하는 2 모듈 모듈을 변경했고 각각 일자리가 로봇 위치 이동을 구현하는 특정 프로그램입니다.
어떠한 프로그램도 프로그램 엔트리 지점을 가지고,와 그래서 로봇 프로그램을 합니다. 그리고 우리의 로봇 프로그램로의 입구는 정부 프로그램에 있습니다. 정부 프로그램의 원시 코드는 main()가 다음과 같다는 것 입니다. 우리가 절차 main()를 봤다는 것에 주목하세요. ABB 로봇을 위한 프로그래밍 장치는 절차로서 생략되는 절차입니다. 이 정부 프로그램을 위한 주절차는 새로운 기계를 만든 후 근본적으로 있습니다 :
절차 main()
프트크피스피드하이와 이겐로봇무빙을 연결하세요 ;
프트크피스피드로와 이겐로봇무빙을 연결하세요 ;
이시그널아오 virt TCPSpeed Robot1, AIO_ABOVE_HIGH, 0.02, 0, 0, 프트크피스피드하이 ;
이시그널아오 virt TCPSpeed Robot1, AIO_BELOW_HIGH, 0.015, 0, 0, 프트크피스피드로 ;
면 opmode()=op_man_prog 그리고 나서
트페라스 ;
트프레드프크 풍크타스테 ", 수동 모드에 의해 이동 일자리를 선택하십시요?,,, 아니오, 동의하세요 ;
면 FunkTaste=5 그리고 나서
설명서 ;
그밖에
트페라스 ;
수동 모드로 이동하는 티피라이트 로봇 ;
숙달한 PLC와의 티피라이트 통신 ;
ENDIF
그밖에
티피누텀 :=0;
잡누텀 :=0;
풍크타스테 :=0;
ENDIF
초기화하세요 ;
스피드리미터 ;
프스타르팅폰티 :=CRobT는 (연장으로 만듭니다 :=tool0 볼브제이 :=wobj0) ;
레그스타르팅앵글스 :=EulerZYX (X, pStartingPoint.rot) ;
레그스타르틴강리 :=EulerZYX (Y, pStartingPoint.rot) ;
레그스타르팅앵글즈 :=EulerZYX (Z, pStartingPoint.rot) ;
레그스탑우프트앵글스 :=EulerZYX (X, pPointAtStop.rot) ;
레그스탑우프트앵글리 :=EulerZYX (Y, pPointAtStop.rot) ;
레그스탑우프트앵글즈 :=EulerZYX (Z, pPointAtStop.rot) ;
(pPointAtStop.trans.X>=(pStartingPoint.trans.X+regTransDiff) 면 또는
pPointAtStop.trans.X pPointAtStop.trans.Y>=(pStartingPoint.trans.Y+regTransDiff) 또는<>
pPointAtStop.trans.Y pPointAtStop.trans.Z>=(pStartingPoint.trans.Z+regTransDiff) 또는<>
pPointAtStop.trans.Z<>
(regStoppedAngleX>= (regStartingAngleX+regRotDiff) 또는
레그스탑우프트앵글스<>
regStoppedAngleY>=(regStartingAngleY+regRotDiff) 또는
레그스탑우프트앵글리<>
regStoppedAngleZ>=(regStartingAngleZ+regRotDiff) 또는
레그스탑우프트앵글즈<>
pPointAtStop.robconfpStartingPoint.robconf 그리고 나서<>
세트 do13_robothasbeenmoved ;
ENDIF
di8_hsstartmain=0이 하는 동안
셋고 do32_39_hsstepcode,0 ;
웨이트디 di10_readjobcode,1 ;
베라이셋 di40_47_override, 7500 ; !속도는 한계에 이를 예정입니다
셋고 do24_31_hsjobcode,di24_31_jobcode ;
세트도 do10_hsreadjobcode,1 ;
웨이트디 di10_readjobcode,0 ;
세트도 do10_hsreadjobcode,0 ;
!잡프로그램 부르세요
콜바이바 잡, di24_31_jobcode ;
ENDWHILE
ENDPROC
이 프로그램은 비트 길이이고 내가 또한 매우 그것을 도입하고 싶지 않습니다. 이 조항이 로봇이 어떻게 그것의 입장을 이동할 때 두번째 모듈에 일감 프로그램에게 전화하는지 이행이기 때문에, 나는 주로 프로그램 중에 지난 단락에 대해 대화하고 싶습니다. 또한 나는 이것이 로봇 프로그램에 대해 알고 싶은 대부분의 사람들이 대부분의 알고 이해하기를 원하는 것 생각합니다 :
첫째로, 첫번째 판정 동안 di8_ HsStartMain=0 DO
'di8_hsstartmain' 수단의 악수가 '행해진 주요 부분을 시작한다는 것에' 주목하세요
이것은 불이 디지털 입력의 신호 슈스타트마인은 0일 때, 그것은 주요 부분이 아직 시작되지 않는 것을 의미하는 것을 의미합니다. 우리는 실행할 필요가 있고는 동안 모든 코드를 완료하기 위해 합니다. 여기의 꽤 많은 코드가 있고 내가 두번째 것과 같은 예를 제공할 것입니다
웨이트디 di10_ 리드잡코드, 1 ; 주석 변하기 쉬운 di10_readjobcode의 의미는 PLC로부터 핸드쉐이크 신호 악수 리드 잡입니다.
좋습니다, 그렇게 얼마나 정확하게 그것이 로봇이 다양한 직업을 실행하게 합니까? 그것이 전부라는 것을 걱정하지 마세요 :
! 전화 잡프로그램은 단지 발언입니다
콜바이바 잡, DI24_ 31_ 잡코드 ; 이 판정은 본질입니다.
직접적으로 당신의 조사를 우리에게 보내세요