妗堜緥/妯℃澘璇存槑
============================


鏈烘鑷備富鎺т富鍑芥暟璇存槑
++++++++++++++++++++++++++++++++

浠ヤ笅涓烘満姊拌噦涓绘帶妯℃澘浠g爜锛屽寘鍚潗鏍囩Щ鍔ㄥ熀纭€妯℃澘銆佸潗鏍囩Щ鍔ㄤ簩娆″畾浣嶆ā鏉裤€佽建杩圭Щ鍔ㄥ悓姝ユā鏉裤€佽建杩圭Щ鍔ㄥ紓姝ユā鏉裤€�

鐢ㄦ埛闇€瑕佹牴鎹」鐩儏鍐碉紝鍙傝€冩ā鏉跨紪鍐欐満姊拌噦鍓嶅彴绋嬪簭锛岀壒鍒渶瑕佹敞鎰忓宸ユ帶鏈鸿繑鍥炵殑error_code杩涜鍒ゆ柇銆�

瀹夊窛鐨勪竴閮ㄥ垎鍏ㄥ眬鍙橀噺宸茬粡琚崰鐢紝鐢ㄦ埛涓嶅厑璁镐娇鐢ㄨ繖浜涘叏灞€鍙橀噺锛岃瑙� api鐣岄潰銆�

鍏充簬妯℃澘涓殑 API 鍙互鏌ラ槄 瀹夊窛 鐨� 鈥淎PI 璇存槑鈥� 閮ㄥ垎銆�

**璇锋敞鎰忔ā鏉垮嚱鏁板苟涓嶈兘鐩存帴杩愯锛岃涓€瀹氭牴鎹」鐩幇鍦虹幆澧冨拰娴佺▼闇€姹傝繘琛屼慨鏀�**


鍧愭爣绉诲姩鍩虹妯℃澘
--------------------------------------

``XYZCartMoveBasicTpl.JBI``

.. code-block:: 

    '
    ' XYZ CartMove Basic Template
    '
    ' 
    ' S1: 鍒濆鍖�
    '
    CALL JOB:XYZMasterInit
    DOUT OT#(1) OFF
    '
    ' S2: 杩炴帴鍒癕ax
    '
    CALL JOB:XYZMasterConnect ARGF"192.168.37.101" ARGF11111
    '
    ' 鍒囨崲浠诲姟娴佸浘锛屾牴鎹渶瑕佹坊鍔�
    '
    '  閲嶇疆浠诲姟
    CALL JOB:XYZMasterProcCmd ARGF511
    CALL JOB:XYZMasterCheckError
    '
    ' S3: 鍒囨崲鎴愬綋鍓嶅伐浠�
    '
    '   set vs_id
    SET I003 0
    '   set item_codename
    SET S002 "item1"
    CALL JOB:XYZMasterProcCmd ARGF528
    CALL JOB:XYZMasterCheckError
    '
    ' S4: 杩愬姩鍒癏ome鐐�
    '
    ' 闇€瑕佹彁鍓嶇ず鏁橦ome鐐�
    MOVJ P100 VJ=30.00 PL=0
    '
    ' 濡傛灉鏄溂鍦ㄦ墜涓婄殑妗堜緥锛屽垯璁剧疆B010涓�1锛屽惁鍒欒缃负0
    '   B010:
    '     0: eye to hand
    '     1: eye in hand
    SET B010 1
    '
    '
    *LP_MAIN
    '
    ' S5: 鐪煎湪鎵嬩笂
    '
    IFTHENEXP B010=1
        '
        ' S6: 杩愬姩鍒版媿鐓т綅濮跨偣
        ' 闇€瑕佹彁鍓嶇ず鏁欐媿鐓т綅濮�
        '
        MOVL P101 V=200.0 PL=0
        '
        ' S7: 鍙戦€佹媿鐓т綅濮�
        '
        CALL JOB:XYZMasterProcCmd ARGF513
        CALL JOB:XYZMasterCheckError
    ENDIF
    '
    ' S8: 璇锋眰鎶撳彇鐩爣鐐逛綅
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF507
    CALL JOB:XYZMasterCheckError
    ' save returned token
    SET LI000 I022
    '
    ' S9: 鑾峰彇鎶撳彇鐩爣鐐逛綅
    '
    ' set obtained token
    SET I002 LI000
    CALL JOB:XYZMasterProcCmd ARGF508
    CALL JOB:XYZMasterCheckError
    ' if no grasp pose
    IFTHENEXP I023<1
        MSG "no grasp pose"
        WAIT T=5.00
        JUMP *LP_MAIN
    ENDIF
    '
    ' S10: 杩愬姩鍒版姄鍙栫偣浣�
    '
    ' 棣栧厛璧板埌鎶撳彇鐐逛綅涓婃柟50mm澶�
    SET P105 P004
    ' offs 50mm
    SET LD000 50000
    ' get z of grasp pose
    GETE LD001 P105 (3)
    ADD LD001 LD000
    SETE P105 (3) LD001
    ' move to pre grasp pose
    MOVL P105 V=800.0 PL=2
    ' 鎶撳彇
    MOVL P004 V=200.0 PL=0
    DOUT OT#(1) ON
    '
    ' S11: 杩愬姩鍒版斁缃綅濮�
    '
    ' 棣栧厛璧板埌鎶撳彇鐐逛綅涓婃柟100mm澶�
    SET P105 P004
    ' offs 100mm
    SET LD000 100000
    ' get z of grasp pose
    GETE LD001 P105 (3)
    ADD LD001 LD000
    SETE P105 (3) LD001
    ' move to post grasp pose
    MOVL P105 V=400.0 PL=2
    ' 璧板埌鏀剧疆浣嶅Э
    ' 鏀剧疆浣嶅Э闇€瑕佹彁鍓嶇ず鏁欏ソ
    MOVL P106 V=100.0 PL=0
    DOUT OT#(1) OFF
    '
    JUMP *LP_MAIN
    ' 
    ' 
    END


鍧愭爣绉诲姩浜屾瀹氫綅妯℃澘
--------------------------------------

``XYZCartMoveRepoTpl.JBI``

.. code-block:: 

    NOP
    '
    ' XYZ CartMove Repo Template
    '
    '
    ' S1: 鍒濆鍖�
    '
    CALL JOB:XYZMasterInit
    DOUT OT#(1) OFF
    DOUT OT#(2) OFF
    '
    ' S2: 杩炴帴鍒癕ax
    '
    CALL JOB:XYZMasterConnect ARGF"192.168.37.101" ARGF11111
    '
    ' 鍒囨崲浠诲姟娴佸浘锛屾牴鎹渶瑕佹坊鍔�
    '
    '  閲嶇疆浠诲姟
    CALL JOB:XYZMasterProcCmd ARGF511
    CALL JOB:XYZMasterCheckError
    '
    ' S3: 鍒囨崲鎴愬綋鍓嶅伐浠�
    '
    '   set vs_id
    SET I003 0
    '   set item_codename
    SET S002 "item1"
    CALL JOB:XYZMasterProcCmd ARGF528
    CALL JOB:XYZMasterCheckError
    '
    ' S4: 杩愬姩鍒癏ome鐐�
    '
    ' 闇€瑕佹彁鍓嶇ず鏁橦ome鐐�
    MOVJ P100 VJ=30.00 PL=0
    '
    '
    *LP_MAIN
    '
    ' S5+S6: 璇锋眰+鑾峰彇鎶撳彇鐩爣鐐逛綅
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF529
    CALL JOB:XYZMasterCheckError
    '
    ' S7: 鍒ゆ柇鏄惁璇嗗埆鍒板伐浠�
    '
    IFTHENEXP I023<1
        '
        ' S15: 娌℃湁璇嗗埆鍒板伐浠讹紝鏈烘鑷傚鐨勭浉鏈哄垏鎹㈣瘑鍒殧鏉�
        '
        ' set vs_id
        SET I003 0
        ' set item_codename
        SET S002 "board"
        CALL JOB:XYZMasterProcCmd ARGF528
        CALL JOB:XYZMasterCheckError
        '
        ' S16+S17: 璇锋眰+鑾峰彇闅旀澘鎶撳彇浣嶅Э
        '
        ' set vs_id
        SET I003 0
        CALL JOB:XYZMasterProcCmd ARGF529
        CALL JOB:XYZMasterCheckError
        IFTHENEXP I023<1
            ' 鏈瘑鍒埌闅旀澘鐨勫鐞�
            MSG "no board"
            ABORT
        ENDIF
        '
        ' S18: 杩愬姩鍒伴殧鏉挎姄鍙栦綅濮匡紝骞舵姄鍙栭殧鏉�
        '
        ' 棣栧厛璧板埌闅旀澘涓婃柟50mm
        SET P105 P004
        ' offs 50mm
        SET LD000 50000
        ' get z of grasp pose
        GETE LD001 P105 (3)
        ADD LD001 LD000
        SETE P105 (3) LD001
        ' move to pre board pose
        MOVL P105 V=800.0 PL=2
        ' 鎶撻殧鏉�
        MOVL P004 V=200.0 PL=0
        DOUT OT#(1) ON
        '
        ' S19: 杩愬姩鍒伴殧鏉跨殑鏀剧疆浣嶅Э
        '
        ' 棣栧厛璧板埌闅旀澘涓婃柟100mm
        SET P105 P004
        ' offs 100mm
        SET LD000 100000
        ' get z of board
        GETE LD001 P105 (3)
        ADD LD001 LD000
        SETE P105 (3) LD001
        ' move to post board
        MOVL P105 V=400.0 PL=2
        ' 璧板埌闅斿鏀剧疆浣嶅Э
        ' 闇€瑕佹彁鍓嶇ず鏁欏ソ鏀剧疆浣嶅Э
        MOVL P106 V=100.0 PL=0
        DOUT OT#(1) OFF
        '
        ' S20: 鏈烘鑷傚鐨勭浉鏈哄垏鎹㈡垚璇嗗埆褰撳墠宸ヤ欢
        '
        ' set vs_id
        SET I003 0
        ' set item_codename
        SET S002 "item1"
        CALL JOB:XYZMasterProcCmd ARGF528
        CALL JOB:XYZMasterCheckError
        '
        '
    ELSE
        '
        ' S8: 杩愬姩鍒版媿鐓т綅濮�
        ' 闇€瑕佹彁鍓嶇ず鏁欏ソ鎷嶇収浣嶅Э
        '
        MOVL P101 V=200.0 PL=0
        '
        ' S9: 鍙戦€佹媿鐓т綅濮�
        '
        CALL JOB:XYZMasterProcCmd ARGF513
        CALL JOB:XYZMasterCheckError
        '
        ' S10: 鏈烘鑷備笂鐨勭浉鏈哄垏鎹㈡垚璇嗗埆褰撳墠宸ヤ欢
        '
        ' set vs_id
        SET I003 1
        ' set item_codename
        SET S002 "item1"
        CALL JOB:XYZMasterProcCmd ARGF528
        CALL JOB:XYZMasterCheckError
        '
        ' S11+S12: 鏈烘鑷備笂鐨勭浉鏈鸿姹�+鑾峰彇宸ヤ欢鐨勬姄鍙栦綅濮�
        '
        ' set vs_id
        SET I003 1
        CALL JOB:XYZMasterProcCmd ARGF529
        CALL JOB:XYZMasterCheckError
        IFTHENEXP I023<1
            MSG "no object"
            ABORT
        ENDIF
        '
        ' S13: 杩愬姩鍒版姄鍙栫偣浣�
        '
        ' 棣栧厛璧板埌鎶撳彇鐐逛綅涓婃柟50mm
        SET P105 P004
        ' offs 50mm
        SET LD000 50000
        ' get z of grasp pose
        GETE LD001 P105 (3)
        ADD LD001 LD000
        SETE P105 (3) LD001
        ' move to pre grasp pose
        MOVL P105 V=800.0 PL=2
        ' 鎶撳彇 
        MOVL P004 V=200.0 PL=0
        DOUT OT#(2) ON
        '
        ' S14: 杩愬姩鍒版斁缃綅濮�
        '
        ' 鍏堣蛋鍒版姄鍙栫偣浣嶄笂鏂�100mm
        SET P105 P004
        ' offs 100mm
        SET LD000 100000
        ' get z of board
        GETE LD001 P105 (3)
        ADD LD001 LD000
        SETE P105 (3) LD001
        ' move to post grasp pose
        MOVL P105 V=400.0 PL=2
        ' move to place pose
        ' define obj place pose first!
        MOVL P107 V=100.0 PL=0
        DOUT OT#(2) OFF
        '
        '
    ENDIF
    '
    '
    JUMP *LP_MAIN
    '
    END


杞ㄨ抗绉诲姩鍚屾妯℃澘
--------------------------------------

``XYZTrajMoveSyncTpl.JBI``

.. code-block:: 
    
    NOP
    '
    ' XYZ TrajMove Sync Template
    '
    ' 
    ' S1: 鍒濆鍖�
    '
    CALL JOB:XYZMasterInit
    DOUT OT#(1) OFF
    '
    ' S2: 杩炴帴鍒癕ax
    '
    CALL JOB:XYZMasterConnect ARGF"192.168.37.101" ARGF11111
    '
    ' 鍒囨崲浠诲姟娴佸浘锛屾牴鎹渶瑕佹坊鍔�
    '
    '  閲嶇疆浠诲姟
    CALL JOB:XYZMasterProcCmd ARGF511
    CALL JOB:XYZMasterCheckError
    '
    ' S3: 鍒囨崲鎴愬綋鍓嶅伐浠�
    '
    '   set vs_id
    SET I003 0
    '   set item_codename
    SET S002 "item1"
    CALL JOB:XYZMasterProcCmd ARGF528
    CALL JOB:XYZMasterCheckError
    '
    ' S4: 杩愬姩鍒癏ome鐐�
    '
    ' 闇€瑕佹彁鍓嶇ず鏁橦ome鐐�
    MOVJ P100 VJ=30.00 PL=0
    '
    '
    *LP_MAIN
    '
    ' S5: 璇锋眰鎶撳彇鍜屾斁缃鍒�
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF517
    CALL JOB:XYZMasterCheckError
    '
    ' S6: 鑾峰彇 pick-in 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF518
    CALL JOB:XYZMasterCheckError
    '
    ' S7: 妫€鏌ユ槸鍚﹁瘑鍒埌宸ヤ欢
    '
    ' I023: way_point_num
    IFTHENEXP I023<1
        MSG "no way_points"
        ABORT
    ENDIF
    '
    ' S8: 鎵ц pick-in 杞ㄨ抗 
    '
    CALL JOB:XYZMasterExecPickIn
    DOUT OT#(1) ON
    '
    ' S9: 鑾峰彇 pick-out 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF519
    CALL JOB:XYZMasterCheckError
    '
    ' S10: 鎵ц pick-out 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecPickOut
    '
    ' S11: 鑾峰彇 place-in 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF520
    CALL JOB:XYZMasterCheckError
    '
    ' S12: 鎵ц place-in 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecTraj
    DOUT OT#(1) OFF
    '
    ' S13: 鑾峰彇 place-out 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF521
    CALL JOB:XYZMasterCheckError
    '
    ' S14: 鎵ц place-out 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecTraj
    '
    JUMP *LP_MAIN
    ' 
    ' 
    END



杞ㄨ抗绉诲姩寮傛妯℃澘
--------------------------------------

``XYZTrajMoveAsyncTpl.JBI``

.. code-block:: 
    
    NOP
    '
    ' XYZ TrajMove Async Template
    '
    ' 
    ' S1: 鍒濆鍖�
    '
    CALL JOB:XYZMasterInit
    DOUT OT#(1) OFF
    '
    ' S2: 杩炴帴鍒癕ax
    '
    CALL JOB:XYZMasterConnect ARGF"192.168.37.101" ARGF11111
    '
    ' 鍒囨崲浠诲姟娴佸浘锛屾牴鎹渶瑕佹坊鍔�
    '
    '  閲嶇疆浠诲姟
    CALL JOB:XYZMasterProcCmd ARGF511
    CALL JOB:XYZMasterCheckError
    '
    ' S3: 鍒囨崲鎴愬綋鍓嶅伐浠�
    '
    '   set vs_id
    SET I003 0
    '   set item_codename
    SET S002 "item1"
    CALL JOB:XYZMasterProcCmd ARGF528
    CALL JOB:XYZMasterCheckError
    '
    ' S4: 杩愬姩鍒癏ome鐐�
    '
    ' 闇€瑕佹彁鍓嶇ず鏁橦ome鐐�
    MOVJ P100 VJ=30.00 PL=0
    '
    ' S5: 璇锋眰鎶撳彇鍜屾斁缃鍒�
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF517
    CALL JOB:XYZMasterCheckError
    '
    '
    *LP_MAIN
    '
    ' S6: 鑾峰彇 pick-in 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF518
    CALL JOB:XYZMasterCheckError
    '
    ' S7: 妫€鏌ユ槸鍚﹁瘑鍒埌宸ヤ欢
    '
    ' I023: way_point_num
    IFTHENEXP I023<1
        MSG "no way_points"
        ABORT
    ENDIF
    '
    ' S8: 鎵ц pick-in 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecPickIn
    DOUT OT#(1) ON
    '
    ' S9: 鑾峰彇 pick-out 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF519
    CALL JOB:XYZMasterCheckError
    '
    ' S10: 鎵ц pick-out 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecPickOut
    '
    ' S11: 璇锋眰涓嬩竴娆$殑鎶撳彇鍜屾斁缃鍒�
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF517
    CALL JOB:XYZMasterCheckError
    '
    ' S12: 鑾峰彇鏈 place-in 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF520
    CALL JOB:XYZMasterCheckError
    '
    ' S13: 鎵ц鏈 place-in 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecTraj
    DOUT OT#(1) OFF
    '
    ' S14: 鑾峰彇鏈 place-out 杞ㄨ抗
    '
    ' set vs_id
    SET I003 0
    CALL JOB:XYZMasterProcCmd ARGF521
    CALL JOB:XYZMasterCheckError
    '
    ' S15: 鎵ц鏈 place-out 杞ㄨ抗
    '
    CALL JOB:XYZMasterExecTraj
    '
    JUMP *LP_MAIN
    ' 
    ' 
    END