PCI-DMC-A01_ProgrammingManual_TC v1.11.1

Size: px
Start display at page:

Download "PCI-DMC-A01_ProgrammingManual_TC v1.11.1"

Transcription

1 台達電子工業股份有限公司 PCI-DMC-A01 PCI-DMC-B01 高速通訊型 PCI 介面 12 軸運動控制卡 程式開發手冊 版本 :1.11.1

2

3 PCI-DMC-A01/B01 程式開發手冊 關於此手冊 使用者須知請將本手冊置於安全的地方 由於可能因產品種類的新增 技術的改善與異動 或是文案數據和表的變更, 敝公司將保留本手冊更新的權利, 恕不另行通知 未經台達電子公司書面同意, 請勿複印 複製本手冊的任一章節內文 商標 Windows NT/2000/XP, Visual Studio, Visual C++, Visual BASIC 的註冊商標屬於 Microsoft 所有 BCB (Borland C++ Builder) 的註冊商標屬於 Borland 公司所有 其它產品名稱均僅作識別之用, 其註冊商標均屬該原公司所有 技術支持與服務假若您需要技術支援 服務與相關訊息, 或者您對於在使用本產品過程中有任何問題, 歡迎您連結至我們的網站 ( 或與我們聯絡 我們期待能夠依照您的需求, 提供我們最的支持與服務給您 可以透過以下方式聯絡我們 ASIA DELTA ELECTRONICS, INC. Taoyuan Plant , XINGBANG ROAD, GUISHAN INDUSTRIAL ZONE, TAOYUAN COUNTY 33370, TAIWAN, R.O.C. TEL: FAX: JAPAN DELTA ELECTRONICS (JAPAN), INC. Tokyo Office DELTA SHIBADAIMON BUILDING SHIBADAIMON, MINATO-KU, TOKYO, , JAPAN TEL: FAX: NORTH/SOUTH AMERICA DELTA PRODUCTS CORPORATION (USA) Raleigh Office P.O. BOX DAVIS DRIVE, RESEARCH TRIANGLE PARK, NC 27709, U.S.A. TEL: FAX: EUROPE DELTRONICS (THE NETHERLANDS) B.V. Eindhoven Office DE WITBOGT 15, 5652 AG EINDHOVEN, THE NETHERLANDS TEL: FAX: Revision February, 2012 i

4 PCI-DMC-A01/B01 程式開發手冊 目錄 第一章 API 函式庫介紹 函式庫的使用 開始編輯新的專案 使用 VC 使用 Borland C 使用 VB 使用 Delphi 使用 VB.Net 使用 C# 第二章命令傳回值與訊息描述 錯誤傳回值一覽 錯誤代碼回傳 第三章操作原理 介面卡初始化 函式列表 應用 讀取 / 寫入驅動器參數 函式列表 應用 CANopen 協定的操作 函式列表 應用 原點復歸操作運動控制 概述 函式列表 應用 轉矩運動控制 函式列表 應用 速度運動控制 ( 一 ) 函式列表 應用 ii Revision February, 2012

5 PCI-DMC-A01/B01 程式開發手冊 3.7 速度運動控制 ( 二 ) 函式列表 應用 點對點運動控制 概述 函式列表 應用 線性補間運動控制 概述 函式列表 應用 圓弧補間運動控制 概述 函式列表 應用 螺旋補間運動控制 -Helix 函式列表 應用 連續補間運動控制 概述 函式列表 應用 軟體極限操作 函式列表 應用 同步運動控制 函式列表 應用 延遲指令設置 函式列表 應用 位置置換操作 函式列表 應用 速度置換操作 函式列表 應用 二段速度操作 函式列表 應用 Revision February, 2012 iii

6 PCI-DMC-A01/B01 程式開發手冊 3.19 遠端擴充 IO 模組應用 -IO 埠操作 函式列表 應用 遠端擴充 IO 模組應用 - 手輪操作 ( 一 ) 函式列表 應用 遠端擴充 IO 模組應用 - 手輪操作 ( 二 ) 函式列表 應用 遠端擴充脈波介面模組應用 -Mode 1 操作 函式列表 應用 遠端擴充脈波介面模組應用 -Mode 2 操作 函式列表 應用 取得 ( 計算 ) 圓弧相關資訊 函式列表 應用 中斷操作 Interrupt 函式列表 應用 主控介面卡安全機制操作 Master Security 函式列表 應用 遠端擴充類比輸入 / 輸出模組應用 函式列表 應用 螺旋補間運動控制 -Spiral 函式列表 應用 位置比較 Compare 函式列表 應用 Axis Group 函式列表 應用 連續速度操作 Speed Continue 函式列表 應用 螺旋補間 Helix 應用 -Sp1_ Normal Follow iv Revision February, 2012

7 PCI-DMC-A01/B01 程式開發手冊 函式列表 應用 歷程記錄器 函式列表 應用 第四章控制 API 資料型別與範疇 函數描述 第五章硬體初始化 API _DMC_01_open _DMC_01_close _DMC_01_get_CardNo_seq _DMC_01_pci_initial _DMC_01_get_card_version 第六章介面卡操作 API _DMC_01_initial_bus _DMC_01_start_ring _DMC_01_get_device_table _DMC_01_get_node_table _DMC_01_check_card_running _DMC_01_reset_card _DMC_01_check_nodeno _DMC_01_get_master_connect_status _DMC_01_get_mailbox_Error _DMC_01_get_mailbox_cnt _DMC_01_get_dsp_cnt _DMC_01_set_dio_output _DMC_01_get_dio_output _DMC_01_get_dio_input _DMC_01_get_cycle_time _DMC_01_initial_bus _DMC_01_motion_cnt 第七章伺服驅動器參數讀取 / 寫入 API _DMC_01_read_servo_parameter _DMC_01_write_servo_parameter Revision February, 2012 v

8 PCI-DMC-A01/B01 程式開發手冊 第八章使用 SDO 協定 API CANopen SDO 協定 _DMC_01_check_canopen_lock _DMC_01_get_canopen_ret _DMC_01_set_pdo_mode _DMC_01_send_message _DMC_01_send_message _DMC_01_read_message _DMC_01_read_message _DMC_01_get_message _DMC_01_reset_sdo_choke _DMC_01_get_sdo_retry_history 第九章點對點運動控制使用封包協定 API _DMC_01_set_sdo_driver_speed_profile _DMC_01_start_sdo_driver_r_move _DMC_01_start_sdo_driver_a_move _DMC_01_start_sdo_driver_new_position_move 第十章原點復歸運動控制使用封包協定 API _DMC_01_set_home_config _DMC_01_set_home_move _DMC_01_escape_home_move 第十一章速度運動控制使用封包協定 API _DMC_01_set_velocity_mode _DMC_01_set_velocity _DMC_01_set_velocity_stop _DMC_01_set_velocity_torque_limit 第十二章轉矩運動控制使用封包協定 API _DMC_01_set_torque_mode _DMC_01_set_torque _DMC_01_set_torque_stop _DMC_01_set_torque_velocity_limit 第十三章使用 PDO 協定 API _DMC_01_ipo_set_svon _DMC_01_get_buffer_length _DMC_01_command_buf_clear vi Revision February, 2012

9 PCI-DMC-A01/B01 程式開發手冊 13.4 _DMC_01_buf_dwell _DMC_01_set_group 第十四章停止運動控制 API _DMC_01_emg_stop _DMC_01_sd_stop _DMC_01_sd_abort _DMC_01_set_sd_mode 第十五章運動狀態 API _DMC_01_motion_done _DMC_01_motion_status 第十六章運動計數值 API _DMC_01_get_command _DMC_01_set_command _DMC_01_get_position _DMC_01_set_position _DMC_01_get_target_pos _DMC_01_get_torque _DMC_01_get_current_speed _DMC_01_get_current_speed_rpm 第十七章軟體極限 API _DMC_01_set_soft_limit _DMC_01_enable_soft_limit _DMC_01_disable_soft_limit _DMC_01_get_soft_limit_status 第十八章單軸運動控制 API _DMC_01_start_tr_move _DMC_01_start_sr_move _DMC_01_start_ta_move _DMC_01_start_sa_move _DMC_01_p_change _DMC_01_v_change _DMC_01_start_tr_move_2seg _DMC_01_start_sr_move_2seg _DMC_01_start_ta_move_2seg _DMC_01_start_sa_move_2seg Revision February, 2012 vii

10 PCI-DMC-A01/B01 程式開發手冊 _DMC_01_start_tr_move_2seg _DMC_01_start_sr_move_2seg _DMC_01_start_ta_move_2seg _DMC_01_start_sa_move_2seg _DMC_01_feedrate_overwrite _DMC_01_start_v3_move 第十九章二軸線性補間運動控制 API _DMC_01_start_tr_move_xy _DMC_01_start_sr_move_xy _DMC_01_start_ta_move_xy _DMC_01_start_sa_move_xy _DMC_01_start_v3_move_xy 第二十章二軸圓弧補間運動控制 API _DMC_01_start_tr_arc_xy _DMC_01_start_sr_arc_xy _DMC_01_start_ta_arc_xy _DMC_01_start_sa_arc_xy _DMC_01_start_tr_arc2_xy _DMC_01_start_sr_arc2_xy _DMC_01_start_ta_arc2_xy _DMC_01_start_sa_arc2_xy _DMC_01_start_tr_arc3_xy _DMC_01_start_sr_arc3_xy _DMC_01_start_ta_arc3_xy _DMC_01_start_sa_arc3_xy _DMC_01_start_spiral_xy _DMC_01_start_spiral2_xy _DMC_01_start_v3_arc_xy _DMC_01_start_v3_arc2_xy _DMC_01_start_v3_arc3_xy _DMC_01_start_v3_spiral_xy _DMC_01_start_v3_spiral2_xy 第二十一章三軸線性補間運動控制 API _DMC_01_start_tr_move_xyz _DMC_01_start_sr_move_xyz _DMC_01_start_ta_move_xyz _DMC_01_start_sa_move_xyz viii Revision February, 2012

11 PCI-DMC-A01/B01 程式開發手冊 21.5 _DMC_01_start_v3_move_xyz 第二十二章三軸螺旋補間運動控制 API _DMC_01_start_tr_heli_xy _DMC_01_start_sr_heli_xy _DMC_01_start_ta_heli_xy _DMC_01_start_sa_heli_xy _DMC_01_start_v3_heli_xy 第二十三章速度運動控制 API _DMC_01_tv_move _DMC_01_sv_move 第二十四章同步運動控制 API _DMC_01_sync_move _DMC_01_sync_move_config 第二十五章遠端模組控制 API _DMC_01_get_rm_input_value _DMC_01_set_rm_input_filter _DMC_01_set_rm_input_filter_enable _DMC_01_set_rm_output_value _DMC_01_set_rm_output_value_error_handle _DMC_01_get_rm_output_value _DMC_01_get_rm_output_value_error_handle _DMC_01_set_rm_output_active 第二十六章電子手輪與 JOG 操作 API _DMC_01_set_rm_mpg_axes_enable _DMC_01_set_rm_mpg_axes_enable _DMC_01_set_rm_jog_axes_enable 第二十七章四組脈波介面專用 API _DMC_01_set_rm_04pi_ipulser_mode _DMC_01_set_rm_04pi_opulser_mode _DMC_01_set_rm_04pi_svon_polarity _DMC_01_set_rm_04pi_DO _DMC_01_set_rm_04pi_homing_ratio _DMC_01_04pi_set_poweron _DMC_01_rm_04PI_get_buffer Revision February, 2012 ix

12 PCI-DMC-A01/B01 程式開發手冊 第二十八章四組脈波介面 ( 模式 1) 運動控制 API _DMC_01_rm_04pi_md1_start_move _DMC_01_rm_04pi_md1_v_move _DMC_01_rm_04pi_md1_start_line _DMC_01_rm_04pi_md1_start_line _DMC_01_rm_04pi_md1_start_line _DMC_01_rm_04pi_md1_start_arc _DMC_01_rm_04pi_md1_start_arc _DMC_01_rm_04pi_md1_start_arc _DMC_01_rm_04pi_md1_start_heli _DMC_01_rm_04pi_md1_p_change _DMC_01_rm_04pi_md1_v_change _DMC_01_rm_04pi_md1_set_gear _DMC_01_rm_04pi_md1_set_soft_limit _DMC_01_rm_04pi_md1_get_soft_limit_status _DMC_01_rm_04pi_md1_set_sld _DMC_01_rm_04pi_md1_get_mc_error_code _DMC_01_set_rm_04pi_ref_counter 第二十九章四組類比輸出遠端擴充模組 API _DMC_01_rm_04da_set_output_value _DMC_01_rm_04da_get_output_value _DMC_01_rm_04da_get_return_code _DMC_01_rm_04da_set_output_range _DMC_01_rm_04da_set_output_enable _DMC_01_rm_04da_set_output_overrange _DMC_01_rm_04da_set_output_error_clear _DMC_01_rm_04da_read_data _DMC_01_rm_04da_set_output_error_handle _DMC_01_rm_04da_set_output_offset_value _DMC_01_rm_04da_get_output_offset_value 第三十章四組類比輸入遠端擴充模組 API _DMC_01_set_04ad_input_range _DMC_01_get_04ad_input_range _DMC_01_set_04ad_zero_scale _DMC_01_get_04ad_zero_scale_status _DMC_01_set_04ad_full_scale _DMC_01_get_04ad_full_scale_status _DMC_01_set_04ad_conversion_time x Revision February, 2012

13 PCI-DMC-A01/B01 程式開發手冊 30.8 _DMC_01_get_04ad_conversion_time _DMC_01_get_04ad_data _DMC_01_set_04ad_average_mode _DMC_01_get_04ad_average_mode _DMC_01_set_04ad_input_enable 第三十一章 Slave 資訊 API _DMC_01_get_devicetype _DMC_01_get_slave_version 第三十二章監控參數 API _DMC_01_set_monitor _DMC_01_get_monitor _DMC_01_get_servo_command _DMC_01_get_servo_DI _DMC_01_get_servo_DO 第三十三章警報訊息 API _DMC_01_set_ralm _DMC_01_get_alm_code _DMC_01_master_alm_code _DMC_01_slave_error 第三十四章多軸運動控制 API _DMC_01_multi_axes_move _ DMC_01_liner_speed_master _DMC_01_start_v3_multi_axes 第三十五章緩衝區操作 API _DMC_01_set_trigger_buf_function 第三十六章 Interrupt API _DMC_01_ set_int_factor _DMC_01_ int_enable _DMC_01_ int_disable _DMC_01_ get_int_count _DMC_01_ get_int_status _DMC_01_link_ interrupt 第三十七章 Security API _DMC_01_ read_security Revision February, 2012 xi

14 PCI-DMC-A01/B01 程式開發手冊 37.2 _DMC_01_ read_security_status _DMC_01_write_security _DMC_01_ write_security_status _DMC_01_ check_userpassword _DMC_01_write_ userpassword _DMC_01_check_verifykey _DMC_01_write_verifykey _DMC_01_ read_serialno misc_slave_check_userpassword _misc_slave_write_userpassword _misc_slave_get_serialno _misc_security _misc_slave_write_verifykey _misc_slave_check_verifykey _misc_slave_user_data_buffer_read _misc_slave_user_data_buffer_write _misc_slave_user_data_to_flash 第三十八章極限反向 API _ DMC_01_rm_04pi_set_MEL_polarity _ DMC_01_rm_04pi_get_MEL_polarity _ DMC_01_rm_04pi_set_PEL_polarity _ DMC_01_rm_04pi_get_PEL_polarity 第三十九章 Compare API _ DMC_01_set_compare_channel_position _DMC_01_get_compare_channel_position _DMC_01_set_compare_ipulser_mode _DMC_01_set_compare_channel_direction _DMC_01_set_compare_channel_trigger_time _DMC_01_set_compare_channel_one_shot _DMC_01_set_compare_channel_source _DMC_01_channel0_position_cmp _DMC_01_channel1_output_enable _DMC_01_channel1_output_mode _DMC_01_channel1_get_io_status _DMC_01_channel1_set_gpio_out _DMC_01_channel1_position_compare_table _DMC_01_channel1_position_compare_table_level _DMC_01_channel1_position_compare_table_cnt _DMC_01_set_compare_channel_polarity _DMC_01_channel0_position_cmp_by_gpio xii Revision February, 2012

15 PCI-DMC-A01/B01 程式開發手冊 _DMC_01_channel1_position_re_compare_table _DMC_01_channel1_position_re_compare_table_level 第四十章直線 圓弧補間運動控制 API _DMC_01_start_rline_xy _DMC_01_start_rline_xyz _DMC_01_start_v3_rline_xy _DMC_01_start_v3_rline_xyz 第四十一章連續速度 API _DMC_01_speed_continue _DMC_01_speed_continue_mode _DMC_01_speed_continue_combine_ratio 第四十二章其它 API _misc_app_get_circle_endpoint _misc_app_get_circle_center_point _misc_set_record_debuging _misc_open_record_debuging_file _DMC_01_enable_dda_mode _DMC_01_set_dda_data _DMC_01_get_dda_cnt Revision February, 2012 xiii

16

17 第一章 API 函式庫介紹 第一章 API 函式庫介紹 PCI-DMC-A01 提供可操作的函式庫與動態連結 (DLL). 您可以藉由呼叫這些函式庫來完成您所需 完成的各項功能 以下各小節將告訴您如何將這些函式庫導入您的開發環境 1.1 函式庫的使用 當您將安裝程式安裝完成, 您能在 lib 的資料夾中找到 2 個函式庫, 該函式庫分別是給 Visual Studio C 與 Borland 開發環境下使用 表 1.1 PCI_DMC_01.lib Visual Studio C 函式庫 BCBPCI_DMC_01.lib Borland C 函式庫 1.2 開始編輯新的專案 使用 VC 1. 在您的專案中加入以下指令 : # include..\inc\vc\pci_dmc_01.h # include..\inc\vc\pci_dmc_01_err.h 2. 在 Visual C 開發環境下選擇 Project / Setting / Link 在 Object / Library modules 中鍵入..\lib\PCI_DMC_01.lib 3. 設置完成, 你可以開始使用 API 來操作 PCI-DMC-A 使用 Borland C 1. 在您的專案中加入以下指令 : # include..\inc\bcb \PCI_DMC_01.h # include..\inc\bcb\pci_dmc_01_err.h Revision November,

18 第一章 API 函式庫介紹 2. 在 Borland C++ Build 的開發環境下選擇 View/ Project Manger 並在新專案中加入..\lib\BCBPCI_DMC_01.lib 此函式庫在您的新專案中 3. 設置完成, 你可以開始使用 API 來操作 PCI-DMC-A 使用 VB 在安裝目錄..\ \PCI-DMC-A01\inc\VB 中, 您可將 PCI_DMC_01.bas 與 PCI_DMC_01_Err.bas 兩個檔案加入您創建的專案中, 您就可以立即使用 API 來操作 PCI-DMC-A01 了 使用 Delphi 在安裝目錄..\ \PCI-DMC-A01\inc\Delphi 中, 您可將 PCI_DMC_01.pas 加入您創建的 專案中, 您就可以立即使用 API 來操作 PCI-DMC-A01 了 使用 VB.Net 在安裝目錄..\ \PCI-DMC-A01\inc\VB.Net 中, 您可將 PCI_DMC_01.vb 與 PCI_DMC_01_ERR.vb 兩個檔案加入您創建的專案中, 您就可以立即使用 API 來操作 PCI-DMC-A01 了 使用 C# 在安裝目錄..\ \PCI-DMC-A01\inc\C# 中, 您可將 PCI_DMC_01.cs 與 PCI_DMC_01_ERR.cs 兩個檔案加入您創建的專案中, 您就可以立即使用 API 來操作 PCI-DMC-A01 了 1-2 Revision November, 2011

19 第二章命令傳回值與訊息描述 第二章命令傳回值與訊息描述 2.1 錯誤傳回值一覽 當您在使用 PCI-DMC-A01 的 API 函式庫時,API 函式多半會回傳一個錯誤代碼, 如表 2.1 若該 API 函式傳回的值為 0 時, 這表示此 API 函式是成功地被執行 ; 反之, 若此 API 函式回傳其它的錯誤代碼, 這表示可能在操作程序或者是硬體連結方面產生問題 請依該錯誤代碼的描述進行問題排解 表 2.1 錯誤傳回代碼 ( 十進制 ) 錯誤碼標示名稱 錯誤問題描述 0 ERR_NoError API 成功運作 3 ERR_CardNoError 卡號錯誤請確認卡片上的 DIP Switch 調整的號碼 5 ERR_bootmodeErr 無法啟動 DSP 數位程序 6 ERR_downloadcode DSP 記憶體程序讀 / 寫錯誤 7 ERR_downloadinit DSP 記憶體資料讀 / 寫錯誤 8 ERR_PCI_boot_first _DMC_01_pci_initial API 函式必須先運作 11 ERR_AxisNoError 軸數目設置錯誤 ( 過大 ) 12 ERR_IPO_First 需要為 IPO 模式 13 ERR_Target_reach Mode 1 運行時, 需 Target 到達 14 ERR_Servo_on_first 需要先 servo on 15 ERR_MPG_Mode 在手輪模式下無法清除位置 16 ERR_PDO_TG 使用 PDO 模式下指令給模組, 無法回傳收到 17 ERR_ConfigFileOpenError 創建存放除錯資訊的檔案錯誤 18 ERR_Ctrl_value 使用控制指令錯誤 19 ERR_Security_Fifo 使用 Security Fpga write Error 20 ERR_Security_Fifo_busy 使用 Security Fpga busy 21 ERR_SpeedLimitError 設置的速度大於最大速度 22 ERR_Security_Page 使用 Security page 需要小於 ERR_Slave_Security_op 使用 Security slave_operate 指令無效 24 ERR_channel_no channel no 錯誤 25 ERR_start_ring_first _DMC_01_start_ring API 函式必須先運作 Revision November,

20 第二章命令傳回值與訊息描述 錯誤傳回代碼 ( 十進制 ) 錯誤碼標示名稱 錯誤問題描述 26 ERR_NodeIDError NodeID 不存在 27 ERR_MailBoxErr DSP 忙碌, 指令無法下達 28 ERR_SdoData SDO 資料有送出但無回應 29 ERR_IOCTL 作業系統無法處理此 IRP 30 ERR_SdoSvonFirst 使用 SDO 操作軸控時, 需先 Servo On 31 ERR_SlotIDError Slave 模組 (GA or RM) 無此 Slot 號碼 32 ERR_PDO_First 使用 PDO 協定操作, 必須先啟動 PDO 模式 33 ERR_Protocal_build Protocal, 電氣尚未建立 34 ERR_Maching_TimeOut 模組配對 time Out 35 ERR_Maching_NG 模組配對 NG 40 ERR_Master_Security_Wr 使用 Security Master Write 指令無效 41 ERR_Master_Security_Rd 使用 Security Master Read 指令無效 42 ERR_Master_Security_Pw 需要先輸入正確的 password 50 ERR_NonSupport_CardVer Master Card 的版本錯誤, 請連繫代理商, 購買正確 Master Card 51 ERR_Compare_Source Ver Type : B Compare Source 選擇錯誤 52 ERR_Compare_Direction Compare 的方向錯誤 dir 需為 1 或 0 1:ccw,0:cw 2-2 Revision November, 2011

21 第二章命令傳回值與訊息描述 錯誤傳回 代碼 ( 十進 錯誤碼標示名稱 錯誤問題描述 制 ) 112 ERR_RangeError 設定軸的號碼錯誤 114 ERR_MotionBusy Motion 的命令重疊 116 ERR_SpeedError 設置最大速度為 ERR_AccTimeError 加 / 減速時大於 1000 秒 124 ERR_PitchZero 操作螺旋位移, 參數 pitch 的值為 ERR_BufferFull Motion 命令緩衝區己滿 128 ERR_PathError Motion 命令錯誤 130 ERR_NoSupportMode 不支持速度變化 132 ERR_FeedHold_support Feedhold Stop 啟動, 無法接收新的命令 133 ERR_SDStop_On 執行減速停止命令, 無法接收新的命令 134 ERR_VelChange_supper 無法執行速度變化功能 (Feddhold, 同動與減速 ) 135 ERR_Command_set 無法連續執行 FeedHold 的功能 136 ERR_sdo_message_choke Sdo 指令回傳有誤, 請檢查網路線接線是否接妥 137 ERR_VelChange_buff_feedhold Feedhold 功能須先啟動, 無法速度變化 138 ERR_VelChange_sync_move 正在等待同動命令, 無法速度變化 139 ERR_VelChange_SD_On 正在等待減速命令, 無法速度變化 140 ERR_P_Change_Mode 單軸點對點模式, 加速段, 速度等於 0, 非單軸點對點模式 當模式在 141 ERR_BufferLength _Path_p_change,_Path_velocity_change_onfly, _Path_Start_Move_2seg 時 Buffer Length 需要為 ERR_2segMove_Dist 距離需要同向 143 ERR_CenterMatch 經過反向運算圓心要一致 144 ERR_EndMatch 經過反向運算圓心要一致 145 ERR_AngleCalcu 經過計算角度錯誤 146 ERR_RedCalcu 經過半徑錯誤 147 ERR_GearSetting Gear 的分子或分母為 ERR_CamTable Table Setting First Arrary Point Error 設定 table 不能到負值 table[-1] 沒有這種設定 149 ERR_AxesNum 多軸設定值必須要兩軸以上 150 ERR_SpiralPos 最終位置會到達螺旋圓心 Revision November,

22 第二章命令傳回值與訊息描述 2.2 錯誤代碼回傳 下述的為一個傳回的函式, 您可參考其作用, 並對於你的控制需求, 創建新的函式來滿 足您的需求 Void error(unsigned short rc) // 傳回錯誤代碼的函數,rc 為代入的傳回值 { Switch(rc) { Case 3: printf( Card No. Error, Please check Card No. again. ); break; default: break; } 2-4 Revision November, 2011

23 第三章操作原理 第三章操作原理 3.1 介面卡初始化 函式列表 表 3.1 函式名稱 _DMC_01_open _DMC_01_get_CardNo_seq _DMC_01_check_card_running _DMC_01_reset_card _DMC_01_close _DMC_01_pci_initial _DMC_01_initial_bus _DMC_01_start_ring _DMC_01_get_device_table _DMC_01_get_node_table 應用 程式外觀 圖 3.1 Revision February,

24 第三章操作原理 1) 開啟介面卡 圖 3.2 按壓 Open card 鍵開始執行以下程序 : /* gdmcexistcards 變數會被填入 PC 上 PCI-DMC-A01 的數量 */ rt = _DMC_01_open(&gDMCExistCards); 2) 初始化介面卡 圖 3.3 按壓 Card init 鍵開始執行以下程序: for(i=0; i<gdmcexistcards; i++) { /* 取得 PC 上第 i 張介面卡號, 卡號即 Switch 指撥開關對應的數值 */ rt = _DMC_01_get_CardNo_seq(i, &CardNo); gpdmccardnolist[i] = CardNo; /* 檢查介面卡是否已被初始化, 值為 0 時, 表示介面卡尚未初始化 */ rt = _DMC_01_check_card_running(gpDMCCardNoList[i], &running); if(running == 0) { rt = _DMC_01_pci_initial(gpDMCCardNoList[i]); // 初始化介面卡 if(rt!= 0) AfxMessageBox("Can't boot PCI_DMC_01 Master Card!"); } rt = _DMC_01_initial_bus(gpDMCCardNoList[i]); // 通訊協定初始化 gbpdspboot[gpdmccardnolist[i]] = true; } 3-2 Revision February, 2012

25 3) 建立通訊 第三章操作原理 圖 3.4 按壓 Find slave 鍵開始執行以下程序: rt = _DMC_01_start_ring(gDMCCardNo, 0); // 開始進行通訊 rt = _DMC_01_get_device_table(gDMCCardNo, &gpdeviceinfo[gdmccardno]); rt = _DMC_01_get_node_table(gDMCCardNo, &gpslavetable[0][gdmccardno]); 上述程序執行完成後, 顯示找尋到的 Slave 裝置於 Slave num 欄位 NOTE _DMC_01_get_device_table 取得使用 PDO 協定的 Slot ID 例如 :gpdeviceinfo[gdmccardno] 為一資料型別為 WORD 的變數, 若其值為 7, 以二進制表示為 , 即表示存在的 Slot ID 為 1, 2, 3 的 Slave 裝置 _DMC_01_get_node_table 取得使用 SDO 定的 Node ID 例如 :gpslavetable[0][gdmccardno] 為一資料型別為 DWORD 的變數, 若其值為 7, 以二進制表示為 ,, 即表示存在的 Node ID 為 1, 2, 3 的 Slave 裝置 您可以使用下列的演算法來找出 SDO 的站號 (Node ID) lmask = 0x1; for(i=0; i<32; i++) { /* 第 i 個 bit 值為 1 時, 條件式成立.*/ if((gpslavetable[0][gdmccardno]>>i) & lmask) { /* 取得的 i 值 +1 即為站號 (Node ID), 對應驅動器參數 P3-00 */ gpnodeid[gnodenum] = (unsigned short)(i+1); gnodenum++; } } Revision February,

26 第三章操作原理 4) 離開程序 圖 3.5 按壓 Exit 鍵開始執行以下程序: for(i=0; i<gdmcexistcards; i++) { rt = _DMC_01_reset_card(gpDMCCardNoList[i]); } _DMC_01_close(); // 終止 PCI-DMC-A01 運行 // 將介面卡重置 3-4 Revision February, 2012

27 第三章操作原理 3.2 讀取 / 寫入驅動器參數 函式列表 表 3.2 函式名稱 _DMC_01_set_pdo_mode _DMC_01_read_servo_parameter _DMC_01_write_servo_parameter 應用 程式外觀 圖 3.6 1) 介面卡初始化與切換操作模式 圖 3.7 按壓 Open card 鍵開始執行介面卡初始化與 SDO 模式設置兩部分 關於初始化詳細說明, 請參閱 3.1 節 開啟介面卡 到 建立通訊 的函式運用 關於 SDO 模式設置, 它將使用下列 API 函式 : Revision February,

28 第三章操作原理 /* 將 Slave 的通訊設置為 SDO 模式 */ rt = _DMC_01_set_pdo_mode(gDMCCardNo, gpnodeid[i], SlotID, 0); 最後一個引數 [Enable], 此引數是用來設置在進行 slave 通訊時是否使用 PDO 模式 關於此引數詳細說明請參考該函式對應的章節 以上例來說, 此引數的值為, 這表示在進行 salve 通訊時 PDO 模式是關閉狀態 當您將 PDO 模式設置為關閉, 此時 salve 通訊時將會使用 SDO 協定進行 slave 通訊若您需要使用 SDO 協定來操作 salve, 您務必將此引數的值設置為零 2) 填入欲變更的驅動器 ( 包含驅動器站號 參數群組號, 與索引值 ) 圖 3.8 以例子來說, 您可填入以下數值如圖 3.8. 第 1 個欄位 Node ID : 若值填入 1, 表示將操作站號為 1 的驅動器 第 2 個欄位 Slot ID : 此欄位無法變更, 它會顯示目前 Slave 裝置 ( 驅動器的 Slot ID 值為 0) 第 3 個欄位 Group : 指該裝置 ( 通常為驅動器 ) 的群組編號, 關於該編號功能詳細的說明, 請參閱 ASDA-A2 使用手冊 如圖 3.8 群組值設置為 0, 表示將設置 P0-xx 的驅動器參數值 (xx 的值請見下方 index 的說明 ) 第 4 個欄位 Index : 如上述, 此數值需與 Group 的值搭配使用 如圖 3.8,index 的值為 0, 是故, 此圖將會對 Node ID 為 1 的驅動器的 P0-00 參數 ( 驅動器版本 ) 進行讀取 / 寫入 3) 讀取驅動器參數 圖 3.9 按壓 Read 鍵開始執行以下程序: rt = _DMC_01_read_servo_parameter(gDMCCardNo, NodeID, SlotID, group, idx, &data); // 將傳回 data 值, 該值即為此驅動器的驅動器參數目前設置的值 // rt 的值將顯示在 RC 欄位,data 的值將顯示在 Data 欄位 3-6 Revision February, 2012

29 4) 寫入驅動器參數 第三章操作原理 圖 3.10 如圖 3.10, 若您欲在驅動器中寫入參數值, 您必須在 edit box 的欄位中填入欲寫入的值, 接著按壓 Write 鍵開始執行以下程序: rt = _DMC_01_write_servo_parameter(gDMCCardNo, NodeID, SlotID, group, idx, data); // 該值會寫入您設置的驅動器群組參數中, 詳細設置請參閱上述說明 5) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

30 第三章操作原理 3.3 CANopen 協定的操作 函式列表 表 3.3 函式名稱 _DMC_01_set_pdo_mode _DMC_01_send_message _DMC_01_read_message _DMC_01_get_message 應用 程式外觀 圖 ) 介面卡初始化並將 Slave 通訊設置為 SDO 模式 按壓圖 3.11 中的 Open card 鍵開始執行介面卡初始化與 SDO 模式設置操作 關於此按鍵的相關敘述, 可參考第 節 介面卡初始化與切換操作模式 說明 3-8 Revision February, 2012

31 2) 送出 SDO 協定的命令 第三章操作原理 圖 3.12 您必須填入 NodeID 的值, 該值會參照到您欲設置的 slave 裝置 關於 Index Sub 與 Type 設定的值, 請參考 CANopen 手冊 (DS 402) D0 到 D3 的值, 這些值是用來鍵入您欲設定的 SDO 命令資料 ( 有效資料 :Byte). 當您完成上述資料的填入動作, 按壓 Send 鍵即開始執行以下 API 函式 : rt = _DMC_01_send_message(gDMCCardNo, NodeID, SlotID, Index, SubIdx, DataType, Value0, Value1, Value2, Value3); 3) 讀取 SDO 協定的命令 圖 3.13 按壓 Read 鍵開始執行以下程序: /* 取得您送出最近一筆 SDO 命令所傳回的資料 */ rt = _DMC_01_read_message(gDMCCardNo, &Cmd, & COBID, &DataType, &Value0, &Value1, &Value2, &Value3); 您可以建立一些變數來存放這些 SDO 命令回傳的資料, 關於此傳回資料的詳細說明, 請參閱第 8.8 節敘述 4) 取得 SDO 協定的命令 圖 3.14 您需填入對應的 Node ID Object Dictionary(OD) index 與 sub-index, 以取得您欲知道 CANopen 介面協定的相關資訊 當您完成資料的填入, 按壓 Get 鍵執行: rt = _DMC_01_get_message(gDMCCardNo, NodeID, SlotID, Index, SubIndex, &COBID, &Cmd, &DataType, &Value0, &Value1, &Value2, &Value3); 您可以建立一些變數來存放這些 SDO 命令回傳的資料, 關於此傳回資料的詳細說明, 請參閱第 8.9 節敘述 5) 離開程序 按壓 Exit 鍵開始執行程序的離開與關閉 Revision February,

32 第三章操作原理 3.4 原點復歸操作運動控制 概述 大部分的應用程式利用增量式編碼器 (incremental encoder) 來取得 position feedback 在運行任何正確地運動控制前, 進行原點復歸的操作是必要的 當電源被開啟後, 機台上的 position 的狀況將出現 3 種可能, 其一,position 停在一般原復歸設置的位置上等待下一個命令 ; 其二,position 停在 ORG 感測器的位置 ; 其三,position 停留在 ORG 與 Limit Switch(PEL 與 MEL) 之間的位置 請參考下方圖 3.15 M PEL ORG MEL 圖 3.15 PCI-DMC-A01 針對上述條件有不同函式的支持 在一般 position 原點復歸的情況下, PCI-DMC-A01 提供多達 35 種原點復歸模式的支持 ( 包含預留的部分 ) 使用者僅需使用軟件進行相關設置, 該硬件即可完成使用者指定之原點復歸的操作 當完成原點復歸的動作時, 對應之命令 (command) 與反饋位置 (feed back position) 將會清除為零值, 但目標位置 (target position) 並不會被清除為零 下圖示意原點復歸執行條件 : 圖 Revision February, 2012

33 第三章操作原理 函式列表 表 3.4 函式名稱 _DMC_01_set_home_config _DMC_01_set_home_move _DMC_01_escape_home_move 應用 程式外觀 圖 3.17 Revision February,

34 第三章操作原理 1) 介面卡開啟與初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 填入運動控制的引數內容值 圖 3.18 NodeID 項目 :API 函式的引數變數 NodeID Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 Vel. 項目 : 每秒送出的脈衝值 API 函式的引數變數 MaxVel Acc. 項目 : 達到最大速度所花費時間 API 函式的引數變數 acc 3) 設置原點復歸配置參數 ( 原點復歸模式與偏移量 ) 圖 3.19 Mode 項目 : 原點復歸模式 1 至 35 API 函式的引數變數 home_mode Offset 項目 : 原點復歸偏移量 API 函式的引數變數 home_offset 4) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.20 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 3-12 Revision February, 2012

35 第三章操作原理 5) 原點復歸操作如圖 3.20 按壓 Move 鍵開始執行以下程序: /* 設置原點復歸模式 :1~35 偏移量與速度參數 */ rt = _DMC_01_set_home_config(gDMCCardNo, NodeID, SlotID, home_mode, home_offset, StrVel, MaxVel, acc); /* 啟動原點復歸運動 */ rt = _DMC_01_set_home_move(gDMCCardNo, NodeID, SlotID); 6) 停止原點復歸運動當您欲停止原點復歸運動操作, 您必須按壓 STOP 鍵執行以下程序: /* 中斷原點復歸運動 */ rt = _DMC_01_escape_home_move(gDMCCardNo, NodeID, SlotID); 7) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

36 第三章操作原理 3.5 轉矩運動控制 函式列表 表 3.5 函式名稱 _DMC_01_set_torque_mode _DMC_01_set_torque _DMC_01_set_torque_stop _DMC_01_get_torque 應用 程式外觀 圖 Revision February, 2012

37 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.22 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函式的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入 slope 與 ratio 值 圖 3.23 Slop 項目 : 由 0 至 100% 額定扭力所需時間 ( 單位 : 毫秒 ) Ratio 項目 : 額定扭力值千分比 舉例來說, 若此值為 100 時表示 10% 額定扭力 4) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.24 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon (gdmccardno, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON Revision February,

38 第三章操作原理 5) 轉矩運動控制按壓 或 鍵執行以下程序: /* 配置轉矩參數 (slope 值 ) */ rt = _DMC_01_set_torque_mode(gDMCCardNo, NodeID, SlotID, slope); /* 啟動轉矩運動 */ rt = _DMC_01_set_torque(gDMCCardNo, NodeID, SlotID, ratio); // 若 ratio 值大於 0, 表示馬達將正轉運動 ; 值小於 0 則是反轉運動 Press the STOP button to excute torque stop or not. /* 馬達轉矩運動停止與否, 當 stop 值為 1 時, 表示轉矩運動停止 */ rt = _DMC_01_set_torque_stop(gDMCCardNo, NodeID, SlotID, stop); 6) 顯示目前 torque 的值 rt = _DMC_01_get_torque(gDMCCardNo, NodeID, SlotID, &torque); // torque 變數將傳回目前的 torque 值 7) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-16 Revision February, 2012

39 第三章操作原理 3.6 速度運動控制 ( 一 ) 函式列表 表 3.6 函式名稱 _DMC_01_set_velocity_mode _DMC_01_set_velocity _DMC_01_set_velocity_stop _DMC_01_get_rpm 應用 程式外觀 圖 3.25 Revision February,

40 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.26 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函式的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入加減速時間的值和每分鐘旋轉速度 (RPM) 值 圖 3.27 Tacc 項目 :API 函式的引數變數 Tacc. Tdec item: API 函式的引數變數 Tdec. RPM item: API 函式的引數變數 rpm. 實際 RPM 值為變數 rpm 的 0.1 倍 4) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.28 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 3-18 Revision February, 2012

41 第三章操作原理 5) 速度運動控制按壓 或 鍵執行以下程序: /* 配置速度模式參數 ( 加速時間與減速時間的值 ) */ rt = _DMC_01_set_velocity_mode(gDMCCardNo, NodeID, SlotID, Tacc, Tdec); /* 啟動速度模式運動 */ rt = _DMC_01_set_velocity(gDMCCardNo, NodeID, SlotID, rpm); // 若 rpm 的值大於 0 時, 驅動器馬達正轉 ; 反之, 值小於 0 為反轉 Press the STOP button to excute velocity stop or not. /* 設置是否停止速度運動控制 若 stop 的值為 1, 速度運動停止 */ rt = _DMC_01_set_velocity_stop(gDMCCardNo, NodeID, SlotID, stop); 6) 顯示目前 rpm 的值 rt = _DMC_01_get_rpm (gdmccardno, NodeID, SlotID, & rpm); // rpm 變數所傳回的值 實際運動 RPM 值為 rpm 變數值的 0.1 倍 7) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

42 第三章操作原理 3.7 速度運動控制 ( 二 ) 函式列表 表 3.7 函式名稱 _DMC_01_tv_move _DMC_01_sv_move _DMC_01_emg_stop 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 3-20 Revision February, 2012

43 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 第三章操作原理 圖 3.30 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入運動控制的引數內容值 圖 3.31 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 4) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 5) 開始進行速度運動控制按壓 或 鍵執行以下程序: /* S-curve 速度曲線 */ rt = _DMC_01_sv_move(gDMCCardNo, NodeID, SlotID, StrVel, MaxVel, acc, 0); /* T-curve 速度曲線 */ rt = _DMC_01_tv_move(gDMCCardNo, NodeID, SlotID, StrVel, MaxVel, acc, 0); Revision February,

44 第三章操作原理 6) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 7) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-22 Revision February, 2012

45 第三章操作原理 3.8 點對點運動控制 概述 點對點位移運動控制可在單軸與多軸上作應用 對於單軸或是多軸之點對點位移運動控制,PCI-DMC-A01 可支持 S-curve 或 T-curve 速度剖面下的絕對座標或相對座標運動模式 P0 P1 圖 3.32 如圖 3.37 例, 其為一個從 P0 到 P1 的單軸點對點運動位移 您可以選擇操作在相對位 置座標與絕對位置座標的 T-curve 或 S-curve 之運動模式下進行運動位移 函式列表 表 3.8 函式名稱 _DMC_01_ipo_set_svon _DMC_01_start_tr_move _DMC_01_start_sr_move _DMC_01_start_ta_move _DMC_01_start_sa_move _DMC_01_sd_stop _DMC_01_set_command _DMC_01_set_position _DMC_01_get_command _DMC_01_get_position _DMC_01_get_current_speed _DMC_01_motion_status DMC_01_motion_done Revision February,

46 第三章操作原理 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.34 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3-24 Revision February, 2012

47 3) 填入運動控制的引數內容值 第三章操作原理 圖 3.35 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 4) 選擇運動模式與設置運動行程 圖 3.36 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Dist. 項目 : 運動行程 API 函數的引數變數 Distance 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.37 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON Revision February,

48 第三章操作原理 6) 開始進行點對點運動控制按壓 或 鍵執行以下程序: rt = _DMC_01_start_sa_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_sr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行運動位移 rt = _DMC_01_start_tr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行運動位移 7) 重置運動位移計數值 (Command 與 Feedback) 圖 3.38 按壓 RESET 鍵開始執行重置命令: /* 若您欲重置 command 與 feedback 計數值, 您必須先將驅動器馬達 servo off */ if(gbissvon) rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, 0); /* 確認馬達已 servo off 後, 才開始清除運動產生的計數值 */ rt = _DMC_01_set_command(gDMCCardNo, NodeID, SlotID, 0); // Clear command rt = _DMC_01_set_position(gDMCCardNo, NodeID, SlotID, 0); // Clear feedback /* 清除完 command 與 feedback 計數值後, 再將驅動器馬達再一次 servo on */ if(gbissvon) rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, 1); 3-26 Revision February, 2012

49 第三章操作原理 運動計數值 : rt = _DMC_01_get_command(gDMCCardNo, NodeID, SlotID, &cmd); // 取得命令計數值 rt = _DMC_01_get_position(gDMCCardNo, NodeID, SlotID, &pos); // 取得命令反饋計數值 運動狀態 :Motion status: rt = _DMC_01_get_current_speed(gDMCCardNo, NodeID, SlotID, &speed); // 取得運動運行的速度值 rt = _DMC_01_motion_status(gDMCCardNo, NodeID, SlotID, &MC_status); // 取得目前的狀態 rt = _DMC_01_motion_done(gDMCCardNo, NodeID, SlotID, &MC_done); // 取得目前馬達動作的狀態 8) 停止運動 圖 3.39 按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

50 第三章操作原理 3.9 線性補間運動控制 概述 當您欲操作 CANopen PDO 協定進行運動控制時, 必須操作在 CANopen 的 IP 模式 PCI-DMC-A01 支持在 S-curve 或 T-curve 速度剖面下的絕對座標或相對座標運動模式下進行 2~ 3 軸的線性補間 2 軸線性補間如圖 3.30 所示 : 此為一條在二維座標上從 P0 開始位移到結束點 P1 的直線 該速率為沿著 X 軸與 Y 軸各別速度 (vector speed) (dx:dy) 表示如圖 3.37 所示 : Y P1(X1,Y1) dy P0(X0,Y0) dx X 圖 函式列表 表 3.9 函式名稱 _DMC_01_start_tr_move_xy _DMC_01_start_sr_move_xy _DMC_01_start_ta_move_xy _DMC_01_start_sa_move_xy _DMC_01_start_tr_move_xyz _DMC_01_start_sr_move_xyz _DMC_01_start_ta_move_xyz _DMC_01_start_sa_move_xyz _DMC_01_sd_stop 3-28 Revision February, 2012

51 第三章操作原理 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 取得 Slot ID 值並啟用顯示運動狀態 圖 3.42 勾選 Timer 核選方塊啟用顯示運動狀態 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 Revision February,

52 第三章操作原理 3) 填入運動控制的引數內容值 圖 3.43 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 4) 選擇運動模式與設置運動行程 圖 3.44 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Dist. 項目 : 運動行程 API 函數的引數變數 Distance 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.45 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 3-30 Revision February, 2012

53 6) 開始進行 2 軸或 3 軸線性補間運動控制 按壓 或 鍵執行以下程序 : 第三章操作原理 2 軸線性補間 : rt = _DMC_01_start_sa_move_xy(gDMCCardNo, gline2, gslot2, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行線性補間運動 rt = _DMC_01_start_ta_move_xy(gDMCCardNo, gline2, gslot2, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行線性補間運動 rt = _DMC_01_start_sr_move_xy(gDMCCardNo, gline2, gslot2, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行線性補間運動 rt = _DMC_01_start_tr_move_xy(gDMCCardNo, gline2, gslot2, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行線性補間運動 3 軸線性補間 : rt = _DMC_01_start_sa_move_xyz(gDMCCardNo, gline3, gslot3, Distance, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行線性補間運動 rt = _DMC_01_start_ta_move_xyz(gDMCCardNo, gline3, gslot3, Distance, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行線性補間運動 rt = _DMC_01_start_sr_move_xyz(gDMCCardNo, gline3, gslot3, Distance, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行線性補間運動 rt = _DMC_01_start_tr_move_xyz(gDMCCardNo, gline3, gslot3, Distance, Distance, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行線性補間運動 Revision February,

54 第三章操作原理 7) 停止運動 圖 3.46 按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 8) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-32 Revision February, 2012

55 第三章操作原理 3.10 圓弧補間運動控制 概述 PCI-DMC-A01 支持在 S-curve 或 T-curve 速度剖面下的絕對座標或相對座標運動模式下進行 2 軸的圓弧補間 圖 3.44 為任 2 軸進行圓弧補間之示意圖 該起始點 P0 (X0,Y0), 終止點 P1(X1,Y1) 從 P0 到 P1 的路徑連結為一個弧形 (arc), 最大速度為其切線速度 P0 Cent P1 圖 函式列表 表 3.10 函式名稱 _DMC_01_start_tr_arc_xy _DMC_01_start_sr_arc_xy _DMC_01_start_ta_arc_xy _DMC_01_start_sa_arc_xy _DMC_01_start_tr_arc2_xy _DMC_01_start_sr_arc2_xy _DMC_01_start_ta_arc2_xy _DMC_01_start_sa_arc2_xy _DMC_01_start_tr_arc3_xy _DMC_01_start_sr_arc3_xy _DMC_01_start_ta_arc3_xy _DMC_01_start_sa_arc3_xy Revision February,

56 第三章操作原理 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 取得 Slot ID 值並啟用顯示運動狀態 圖 3.49 勾選 Timer 核選方塊啟用顯示運動狀態 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3-34 Revision February, 2012

57 3) 填入運動控制的引數內容值 第三章操作原理 圖 3.50 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 5) 選擇進行 2 軸圓弧補間的方式並填入對應的引數值 ➊ ➋ ➌ 圖 3.51 Arc 1: 第 1 種補間方式 須填入中心座標 (X, Y) 和角度 (0 o 到 359 o ) ➊ Cen_X 項目 : 中心座標 X 軸 API 函數的引數變數 arc1_cen_x Cen_Y 項目 : 中心座標 Y 軸 API 函數的引數變數 arc1_cen_y Angle 項目 : 角度 API 函數的引數變數 arc1_angle Arc 2: 第 2 種補間方式 須填入終點座標 (X, Y) 和角度 (0 o 到 359 o ) ➋ End_X 項目 : 終點座標 X 軸 API 函數的引數變數 arc2_end_x. End_Y 項目 : 終點座標 Y 軸 API 函數的引數變數 arc2_end_y. Angle 項目 : 角度 API 函數的引數變數 arc2_angle. Arc 3: 第 3 種補間方式 須填入中心座標 (X, Y) 終點座標(X, Y) 與方向 ➌ Cen_X 項目 : 中心座標 X 軸 API 函數的引數變數 arc3_cen_x Cen_Y 項目 : 中心座標 Y 軸 API 函數的引數變數 arc3_cen_y End_X 項目 : 終點座標 X 軸 API 函數的引數變數 arc3_end_x End_Y 項目 : 終點座標 Y 軸 API 函數的引數變數 arc3_end_y Dir item: 方向性 API 函數的引數變數 arc3_dir 當此值為 0 時, 伺服馬達將正轉 (CW) 運動 當此值為 1 時, 伺服馬達將反轉 (CCW) 運動 Revision February,

58 第三章操作原理 6) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.52 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 7) 開始進行 2 軸圓弧補間運動控制按壓 或 鍵執行以下程序: 第 1 種補間方式 (Arc1) 進行 2 軸圓弧補間 : rt = _DMC_01_start_sa_arc_xy(gDMCCardNo, garcnode, gslot2, arc1_cen_x, arc1_cen_y, arc1_angle, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行圓弧補間運動 rt = _DMC_01_start_ta_arc_xy(gDMCCardNo, garcnode, gslot2, arc1_cen_x, arc1_cen_y, arc1_angle, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行圓弧補間運動 rt = _DMC_01_start_sr_arc_xy(gDMCCardNo, garcnode, gslot2, arc1_cen_x, arc1_cen_y, arc1_angle, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行圓弧補間運動 rt = _DMC_01_start_tr_arc_xy(gDMCCardNo, garcnode, gslot2, arc1_cen_x, arc1_cen_y, arc1_angle, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行圓弧補間運動 第 2 種補間方式 (Arc2) 進行 2 軸圓弧補間 : rt = _DMC_01_start_sa_arc2_xy(gDMCCardNo, garcnode, gslot2, arc2_end_x, arc2_end_y, arc2_angle, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行圓弧補間運動 rt = _DMC_01_start_ta_arc2_xy(gDMCCardNo, garcnode, gslot2, arc2_end_x, arc2_end_y, arc2_angle, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行圓弧補間運動 rt = _DMC_01_start_sr_arc2_xy(gDMCCardNo, garcnode, gslot2, arc2_end_x, arc2_end_y, arc2_angle, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行圓弧補間運動 rt = _DMC_01_start_tr_arc2_xy(gDMCCardNo, garcnode, gslot2, arc2_end_x, arc2_end_y, arc2_angle, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行圓弧補間運動 3-36 Revision February, 2012

59 第三章操作原理 第 3 種補間方式 (Arc3) 進行 2 軸圓弧補間 : rt = _DMC_01_start_sa_arc3_xy(gDMCCardNo, garcnode, gslot2, arc3_cen_x, arc3_cen_y, arc3_end_x, arc3_end_y, arc3_dir, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行圓弧補間運動 rt = _DMC_01_start_ta_arc3_xy(gDMCCardNo, garcnode, gslot2, arc3_cen_x, arc3_cen_y, arc3_end_x, arc3_end_y, arc3_dir, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行圓弧補間運動 rt = _DMC_01_start_sr_arc3_xy(gDMCCardNo, garcnode, gslot2, arc3_cen_x, arc3_cen_y, arc3_end_x, arc3_end_y, arc3_dir, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行圓弧補間運動 rt = _DMC_01_start_tr_arc3_xy(gDMCCardNo, garcnode, gslot2, arc3_cen_x, arc3_cen_y, arc3_end_x, arc3_end_y, arc3_dir, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行圓弧補間運動 8) 停止運動 圖 3.53 按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

60 第三章操作原理 3.11 螺旋補間運動控制 -Helix 函式列表 表 3.11 函式名稱 _DMC_01_start_tr_heli_xy _DMC_01_start_sr_heli_xy _DMC_01_start_ta_heli_xy _DMC_01_start_sa_heli_xy 應用 程式外觀 圖 Revision February, 2012

61 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 取得 Slot ID 值並啟用顯示運動狀態 圖 3.55 勾選 Timer 核選方塊啟用顯示運動狀態 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 在運狀狀態下方有一 RESET 鍵, 按壓 RESET 鍵開始執行重置命令: /* 若您欲重置 command 與 feedback 計數值, 您必須先將驅動器馬達 servo off */ if(gbissvon) rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, 0); /* 確認馬達已 servo off 後, 才開始清除運動產生的計數值 */ rt = _DMC_01_set_command(gDMCCardNo, NodeID, SlotID, 0); // Clear command rt = _DMC_01_set_position(gDMCCardNo, NodeID, SlotID, 0); // Clear feedback /* 清除完 command 與 feedback 計數值後, 再將驅動器馬達再一次 servo on */ if(gbissvon) rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, 1); 運動計數值 : rt = _DMC_01_get_command(gDMCCardNo, NodeID, SlotID, &cmd); // 取得命令計數值 rt = _DMC_01_get_position(gDMCCardNo, NodeID, SlotID, &pos); // 取得命令反饋計數值運動狀態 :Motion status: rt = _DMC_01_get_current_speed(gDMCCardNo, NodeID, SlotID, &speed); // 取得運動運行的速度值 rt = _DMC_01_motion_status(gDMCCardNo, NodeID, SlotID, &MC_status); // 取得目前的狀態 rt = _DMC_01_motion_done(gDMCCardNo, NodeID, SlotID, &MC_done); // 取得目前馬達動作的狀態 Revision February,

62 第三章操作原理 3) 填入運動控制的引數內容值和速度剖面選擇 圖 3.56 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Cen_X 項目 : 中心座標 X 軸 API 函數的引數變數 helix_cen_x Cen_Y 項目 : 中心座標 Y 軸 API 函數的引數變數 helix_cen_y Depth 項目 : 第 3 軸總行程 ( 如圖 3.55) Pitch 項目 : 當第 1 軸與第 2 軸完成一個圓時, 第 3 軸的行程 Dir 項目 : 第 1 軸與第 2 軸的圓弧路徑方向 (0: 順時針 ;1: 逆時針 ) Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 圖 Revision February, 2012

63 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 第三章操作原理 圖 3.58 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 6) 開始進行螺旋補間運動控制按壓 或 鍵執行以下程序: rt = _DMC_01_start_sa_heli_xy(gDMCCardNo, ghelix, gslot3, helix_cen_x, helix_cen_y, helix_depth, helix_pitch, helix_dir, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行螺旋補間運動 rt = _DMC_01_start_ta_heli_xy(gDMCCardNo, ghelix, gslot3, helix_cen_x, helix_cen_y, helix_depth, helix_pitch, helix_dir, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行螺旋補間運動 rt = _DMC_01_start_sr_heli_xy(gDMCCardNo, ghelix, gslot3, helix_cen_x, helix_cen_y, helix_depth, helix_pitch, helix_dir, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行螺旋補間運動 rt = _DMC_01_start_tr_heli_xy(gDMCCardNo, ghelix, gslot3, helix_cen_x, helix_cen_y, helix_depth, helix_pitch, helix_dir, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行螺旋補間運動 7) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 8) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

64 第三章操作原理 3.12 連續補間運動控制 概述 透過連續下達運動指令, 描繪出一正方形且四角為弧角的路徑 PCI-DMC-A01 支持於 Motion ASIC 內部有 20 組軟件構成之 FIFO 來運行連續補間的運動控制 請參考下方示意圖 主機 Command 馬達 程式 重新載入 位移 獲取緩衝 區長度 FIFO No 19 FIFO No 18 FIFO No 1 執行 FIFO No 0 圖 函式列表 表 3.12 函式名稱 _DMC_01_start_ta_move_xy _DMC_01_start_ta_arc_xy 3-42 Revision February, 2012

65 第三章操作原理 應用 當您欲如下圖演示連續補間運動, 您必須執行以下的程序步驟, 完成 ➀~➇ 的命令 : 圖 3.60 程式外觀 圖 3.61 Revision February,

66 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 取得 Slot ID 值並啟用顯示運動狀態 圖 3.62 勾選 Timer 核選方塊啟用顯示運動狀態 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入運動控制的引數內容值 圖 3.63 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 4) 填入邊長與弧角半徑 圖 3.64 Edge 項目 : 邊長 ( 單位 : 脈波數 ),API 函數的引數變數 edge Radius 項目 : 弧角半徑 ( 單位 : 脈波數 ),API 函數的引數變數 radius 3-44 Revision February, 2012

67 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 第三章操作原理 圖 3.65 按壓 SVON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 6) 按壓 Move 鍵開始執行連續補間運動如下列程序 ➀~➇, 這些程序將能實作如圖 3.60 呈現之連續補間運動 t ➀ rt = _DMC_01_start_ta_move_xy(gDMCCardNo, gline2, gslot2, 0, edge, 0, radius, 0.1, 0); // 減速度設置為 0 ➁ rt = _DMC_01_start_ta_arc_xy(gDMCCardNo, gline2, gslot2, radius, edge, 90, 0, radius, 0, 0); // 加速與減速度設置為 0 ➂ rt = _DMC_01_start_ta_move_xy(gDMCCardNo, gline2, gslot2, edge + radius, edge + radius, 0, radius, 0, 0); // 加速與減速度設置為 0 ➃ rt = _DMC_01_start_ta_arc_xy(gDMCCardNo, gline2, gslot2, edge + radius, edge, 90, 0, radius, 0, 0); // 加速與減速度設置為 0 ➄ rt = _DMC_01_start_ta_move_xy(gDMCCardNo, gline2, gslot2, edge + radius*2, 0, 0, radius, 0, 0); // 加速與減速度設置為 0 ➅ rt = _DMC_01_start_ta_arc_xy(gDMCCardNo, gline2, gslot2, edge + radius, 0, 90, 0, radius, 0, 0); // 加速與減速度設置為 0. ➆ rt = _DMC_01_start_ta_move_xy(gDMCCardNo, gline2, gslot2, radius, 0 - radius, 0, radius, 0, 0); // 加速與減速度設置為 0 ➇ rt = _DMC_01_start_ta_arc_xy(gDMCCardNo, gline2, gslot2, radius, 0, 90, 0, radius, 0, 0.1); // 加速度設置為 0 Revision February,

68 第三章操作原理 X 軸實際運作的 V-T 圖 : 圖 ) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 8) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-46 Revision February, 2012

69 第三章操作原理 3.13 軟體極限操作 函式列表 表 3.13 函式名稱 _DMC_01_start_sr_move _DMC_01_start_tr_move _DMC_01_start_sa_move _DMC_01_start_ta_move _DMC_01_set_soft_limit _DMC_01_enable_soft_limit _DMC_01_disable_soft_limit _DMC_01_get_soft_limit_status 應用 程式外觀 圖 3.67 Revision February,

70 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.68 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 2) 填入運動控制的引數內容值 圖 3.69 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 3) 選擇運動模式與設置運動行程 圖 3.70 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Dist. 項目 : 運動行程 API 函數的引數變數 Distance 3-48 Revision February, 2012

71 5) 設定正 / 負極限值 停止運動模式與是否啟用軟體極限 第三章操作原理 圖 3.71 N-Limit 項目 : 負極限值 API 函數的引數變數 NLimit P-Limit 項目 : 正極限值 API 函數的引數變數 PLimit Stop mode 下拉選單 : 停止的方式 API 函數的引數變數 action Soft-limit 核取方塊 : 啟動 / 關閉軟體極限 6) 若您欲啟用軟體極限功能, 您必須將 Soft-limit Enable 核取方塊勾選, 並執行以下程序 : /* 啟動設定軟體極限 */ rt = _DMC_01_enable_soft_limit(gDMCCardNo, NodeID, SlotID, action); // action 引數表示碰觸到極限時, 使用的停止方式 值為 1 時, 表示立即停止 ; 值為 2 時, 表示使用減速停止 /* 正極限與負極限的設定值 */ rt = _DMC_01_set_soft_limit(gDMCCardNo, NodeID, SlotID, PLimit, NLimit); // PLimit 引數表示正極限的設定值 ;NLimit 則為負極限的設定值 7) 若您欲關閉軟體極限功能時, 您必須使用以下程序關閉軟體極限 : rt = _DMC_01_disable_soft_limit(gDMCCardNo, NodeID, SlotID); 8) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.72 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON Revision February,

72 第三章操作原理 9) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 或 鍵執行以下程序: rt = _DMC_01_start_sa_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_sr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行運動位移 rt = _DMC_01_start_tr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行運動位移 10) 若您欲觀察進行點對點運動時, 碰觸正 / 負極限的狀態, 您能執行以下程序進行觀察 : /* 觀察碰觸正 / 負極限所回應的狀態 */ rt = _DMC_01_get_soft_limit_status(gDMCCardNo, NodeID, SlotID, &PLimit_sts, &NLimit_sts); 如下圖所示, 左圖表示此運動期間尚未碰觸到正極限與負極限 ; 中間的圖表示此運動 期間有碰觸到正極限 ; 而右圖表示此運動期間有碰觸到負極限 圖 ) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 12) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-50 Revision February, 2012

73 第三章操作原理 3.14 同步運動控制 函式列表 表 3.14 函式名稱 _DMC_01_sync_move _DMC_01_sync_move_config 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 Revision February,

74 第三章操作原理 2) 選擇是否啟動同步運動控制 圖 3.75 Sync. Enable 核取方塊 : 啟動馬達運動同步與否 您可以執行以下程序啟用同步運動 : rt = _DMC_01_sync_move_config(gDMCCardNo, gpnodeid[i], SlotID, enable); // 若 enable 引數值為 1, 啟動同步運動 3) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.76 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 4) 填入運動控制的引數內容值 圖 3.77 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 3-52 Revision February, 2012

75 5) 選擇運動模式與設置運動行程 第三章操作原理 圖 3.78 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Dist. 項目 : 運動行程 API 函數的引數變數 Distance 6) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON. 7) 按壓 或 鍵開始執行點對點單軸運動命令 由於您僅設置一軸作運動, 此 時 motion 仍尚未動作, 您必須回到 3) 設置驅動器的 Node ID 的步驟開始設置其它 軸的運動命令, 待設置完成後, 按壓 Syn. Move 鍵開始執行同動命令 圖 3.79 此同動命令如下列函數動作執行 : rt = _DMC_01_sync_move(gDMCCardNo); // 當同步運動完成, 同動的設置即會回復到關閉的狀態 如您欲再次使用同動命令, 則必須重新啟動設置同動命令 Revision February,

76 第三章操作原理 8) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-54 Revision February, 2012

77 第三章操作原理 3.15 延遲指令設置 函式列表 表 3.15 函式名稱 _DMC_01_start_ta_move _DMC_01_buf_dwell 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.81 Revision February,

78 第三章操作原理 NodeID 項目 :API 函數的引數變數 NodeID. SlotID 項目 :API 函數的引數變數 slotid. Dwell cnt. 項目 : 輸入兩個 API 函數執行間欲延遲的時間 (Mini Sec) 3) 以下, 可在連續運動指令間加入 dwell 指令, 可確保連續運動指令執行 : rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_buf_dwell(CardNo, NodeID, SlotID, dwell_cnt); // 設定 dwell buffer 間隔, 若 dwell_cnt 值為 0, 延遲時間為 4ms; 此例的值為 3, 延遲時間為 2*3+2=8ms rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 4) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 3.82 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 5) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 Move 鍵執行以下程序: rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 6) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 7) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-56 Revision February, 2012

79 第三章操作原理 3.16 位置置換操作 函式列表 表 3.16 函式名稱 _DMC_01_start_ta_move _DMC_01_p_change 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 Revision February,

80 第三章操作原理 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.84 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入運動控制的引數內容值 圖 3.85 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Dist 項目 : 設定運動距離 API 函數的引數變數 Distance 4) 輸入欲改變的新位置數值 圖 3.86 New Position 項目 : 輸入欲改變的新位置數值 API 函數的引數變數 NewPos 3-58 Revision February, 2012

81 第三章操作原理 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 6) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 或 鍵執行以下程序: rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 7) 若您欲將運動中的位置置換為新的位置, 您必須按壓 P change 執行以下程序 : rt = _DMC_01_p_change (CardNo, NodeID, SlotID, NewPos); // 以新的位置值置換目前的位置 8) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

82 第三章操作原理 3.17 速度置換操作 函式列表 表 3.17 函式名稱 _DMC_01_start_ta_move _DMC_01_v_change 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 3-60 Revision February, 2012

83 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 第三章操作原理 圖 3.88 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入運動控制的引數內容值 圖 3.89 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Dist 項目 : 設定運動距離 API 函數的引數變數 Distance 4) 輸入欲改變的新速度數值 圖 3.90 New Velocity 項目 : 輸入欲改變的新速度數值 API 函數的引數變數 NewSpeed Revision February,

84 第三章操作原理 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 6) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 或 鍵執行以下程序: rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 7) 若您欲將運動中的速度置換為新的速度, 您必須按壓 V change 執行以下程序 : rt = _DMC_01_v_change (CardNo, NodeID, SlotID, NewSpeed, sec); // 以新的速度值置換目前的速度 8) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-62 Revision February, 2012

85 第三章操作原理 3.18 二段速度操作 函式列表 表 3.18 函式名稱 _DMC_01_start_sa_move_2seg _DMC_01_start_ta_move_2seg _DMC_01_start_sr_move_2seg _DMC_01_start_tr_move_2seg 應用 程式外觀 圖 3.91 Revision February,

86 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 3.92 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入運動控制的引數內容值 圖 3.93 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 4) 選擇運動模式與設置運動行程 圖 3.94 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Dist. 項目 : 運動行程 API 函數的引數變數 Distance 3-64 Revision February, 2012

87 5) 設定二次運動距離及速度值 第三章操作原理 圖 nd dist 項目 : 二次運動距離值 API 函數的引數變數 Dist2 2 nd vel 項目 : 二次運動速度值 API 函數的引數變數 MaxVel2 6) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 7) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 或 鍵執行以下程序: rt = _DMC_01_start_sa_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行運動位移 8) 若您欲以新設定之速度置換目前運動之速度, 請按壓 2 nd seg., 即執行以下程序 : rt = _DMC_01_start_sa_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); // 參照 S-curve 速度剖面下的絕對座標進行二段速度運動位移 rt = _DMC_01_start_ta_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); // 參照 T-curve 速度剖面下的絕對座標進行二段速度運動位移 rt = _DMC_01_start_sr_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); // 參照 S-curve 速度剖面下的相對座標進行二段速度運動位移 rt = _DMC_01_start_tr_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); // 參照 T-curve 速度剖面下的相對座標進行二段速度運動位移 Revision February,

88 第三章操作原理 9) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 10) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-66 Revision February, 2012

89 第三章操作原理 3.19 遠端擴充 IO 模組應用 -IO 埠操作 函式列表 表 3.19 函式名稱 _DMC_01_set_rm_input_filter _DMC_01_set_rm_input_filter_enable _DMC_01_set_rm_output_value_error_handle _DMC_01_get_slave_version _DMC_01_get_devicetype _DMC_01_set_rm_output_value _DMC_01_get_rm_input_value 應用 程式外觀 圖 3.96 Revision February,

90 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) ASD-DMC-RM32MN 模組初始化參數設定 您必須執行以下程序 : rt = _DMC_01_set_rm_input_filter(gDMCCardNo, gpnodeid[gnodenum], 0, port, filter); // port 變數表示可設置 remote 模組上的 2 組 Port, 當其值為 0, 將會操作模組上的 Port 0; 值若為 1, 表示將操作在 Port 1 filter 變數是設定軟體濾波器的等級, 當您將值設置為 0 時, 軟體濾波時間為 1ms; 值為 1 時, 濾波時間為 2ms, 依此類推 rt = _DMC_01_set_rm_input_filter_enable(gDMCCardNo, gpnodeid[gnodenum], 0, port, filter_enable); // filter_enable 變數的值範圍為 0~0xFFFF, 其是用來控制 Port 上 bit 0 到 bit 15 的軟體濾波遮罩 3) ASD-DMC-RM32NT 模組初始化參數設定 您可以執行以下程序 : rt = _DMC_01_get_rm_output_value(gDMCCardNo, gpntnode[gntnodenum], 0, port, &value); // value 變數的值表示目前此 RM32NT 模組在該埠輸出的訊號數 4) 取得 slave 裝置類型當您欲取得此 slave 裝置的類型, 您必須執行以下程序 : rt = _DMC_01_get_devicetype(gDMCCardNo, NodeID, SlotID, &DeviceType, &IdentityObject); 關於此函數的詳細說明, 請參閱 Slave 資訊 API 章節敘述 5) 數位輸入 (DI) 與數位輸出 (DO) 操作當您欲操作數位輸出時, 您必須使用 ASD-DMC-RM32NT 模組, 並執行以下程序 : /* 設定數位輸出 Port 0 的值 */ rt = _DMC_01_set_rm_output_value(gDMCCardNo, NodeID, SlotID, 0, output_value[0]); // Output_value[0] 變數將存放 Port 0 的 bit 0 到 bit 15 欲輸出的值 /* 設定數位輸出 Port 1 的值 */ rt = _DMC_01_set_rm_output_value(gDMCCardNo, NodeID, SlotID, 1, output_value[1]); // Output_value[1] 變數將存放 Port 1 的 bit 0 到 bit 15 欲輸出的值 3-68 Revision February, 2012

91 第三章操作原理 /* 輸出致能啟動 */ rt = _DMC_01_set_rm_output_active(gDMCCardNo, NodeID, SlotID, Enable); // 此功能必須啟動後, 上述設置的輸出值才會從輸出埠輸出 當您欲從數位輸入端取得您在數位輸出模組所送出的資料, 您需要使用 ASD-DMC-RM32MN 模組, 並執行以下程序 : /* 取得數位輸入 Port 0 的值 */ rt = _DMC_01_get_rm_input_value(gDMCCardNo, NodeID, SlotID, 0, &input_value[0]); // Input_value[0] 變數將會回覆從 Port 0 的 bit 0 到 bit 15 所取得的資料 /* 取得數位輸入 Port 1 的值 */ rt = _DMC_01_get_rm_input_value(gDMCCardNo, NodeID, SlotID, 1, &input_value[1]); // Input_value[1] 變數將會回覆從 Port 1 的 bit 0 到 bit 15 所取得的資料 如下圖表示 ASD-DMC-RM32MN 模組上 Port 0 無取得任何資料 ; 而 Port 1 的 bit 0 為 ON, 其餘的 bit 為 OFF 圖 ) 保留輸出埠的輸出狀態 ( 值 ) 當您欲將當前的輸出, 在模組電源尚未關閉前持續保留, 須使用下列程序 : rt = _DMC_01_set_rm_output_value_error_handle(gDMCCardNo, gpnodeid[gnodenum], 0, port, gerrorhandle); // port 變數表示可設置 remote 模組上的 2 組 Port, 當其值為 0, 將會操作模組上的 Port 0; 值若為 1, 表示將操作在 Port 1 而 gerrorhandle 變數的值是設置當錯誤發生時, 系統是否保留該錯誤輸出的值 當其值為 1 時, 系統將保留該輸出值, 直到模組的電源關閉或移除 ; 若其值為 0, 則錯誤輸出值將被重置為 0 Revision February,

92 第三章操作原理 3.20 遠端擴充 IO 模組應用 - 手輪操作 ( 一 ) 函式列表 表 3.20 函式名稱 DMC_01_get_rm_input_value _DMC_01_set_rm_mpg_axes_enable _DMC_01_set_rm_mpg_axes_enable 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 3-70 Revision February, 2012

93 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 第三章操作原理 圖 3.99 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入手輪控制的參數內容值 圖 MN ID 項目 :API 函數的引數變數 MNNodeID Ratio 項目 : 手輪每轉馬達圈數比率 API 函數的引數變數 ratio Slope 項目 : 手輪速度斜率 API 函數的引數變數 slop Deno 項目 : 手輪每轉馬達圈數分母 API 函數的引數變數 denominator Pulse ratio 項目 : 手輪每格輸出脈波數比率值 API 函數的引數變數 pulser_ratio 4) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON Revision February,

94 第三章操作原理 5) 若您欲執行 手輪運動控制一 時, 您必須勾選 MPG 核取方塊, 執行以下程序 : rt = _DMC_01_get_rm_input_value(CardNo, NodeID, SlotID, Port, &Value); // 取得遠端擴充模組輸入埠 bit 0 到 bit 15 的值 rt = _DMC_01_set_rm_mpg_axes_enable(CardNo, MasterNodeID, MasterSlotID, NodeID, SlotID, enable, pulser_ratio, ratio, slop); // 手輪運動控制一若您欲執行 手輪運動控制二 時, 您必須勾選 MPG2 核取方塊, 執行以下程序 : rt = _DMC_01_set_rm_mpg_axes_enable2(CardNo, MasterNodeID, MasterSlotID, NodeID, SlotID, enable, pulser_ratio, ratio, slop, denominator); // 手輪運動控制二 ratio 為每轉馬達圈數比率分子 ;denominator 為每轉馬達圈數比分母 ; 藉由這兩個參數值的設定, 可任意調整手輪輸出值 6) 停止手輪運動控制 若您欲停止手輪的操作, 請將上述步驟中勾選的 MPG 或 MPG2 核取方塊勾選 取消即可停止手輪運動控制 7) 重置 SERVON 目前的狀態若您欲將 SERVON 狀態資料清除, 必須將上述步驟 MPG 或 MPG2 核取方塊勾選取消後, 按壓 RESET 鍵, 執行以下程序 : rt = _DMC_01_set_command(gDMCCardNo, NodeID, SlotID, 0); // 將 Command 清為零 rt = _DMC_01_set_position(gDMCCardNo, NodeID, SlotID, 0); // 將 Position 清為零 8) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-72 Revision February, 2012

95 第三章操作原理 3.21 遠端擴充 IO 模組應用 - 手輪操作 ( 二 ) 函式列表 表 3.21 函式名稱 _DMC_01_get_rm_input_value _DMC_01_set_rm_mpg_axes_enable _DMC_01_set_rm_jog_axes_enable 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 Revision February,

96 第三章操作原理 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. NNID 項目 :API 函數的引數變數 SlotID. Timer 命令方塊 : 按壓它將會顯示運動的狀態, 反之, 則不顯示 3) 填入手輪控制的參數內容值 圖 MN ID 項目 :API 函數的引數變數 MNNodeID Ratio 項目 : 手輪每轉馬達圈數比率 API 函數的引數變數 ratio Slope 項目 : 手輪速度斜率 API 函數的引數變數 slop Pulse ratio 項目 : 手輪每格輸出脈波數比率值 API 函數的引數變數 pulser_ratio 4) 填入 Jog 控制的引數內容值 圖 Jog spd 項目 :Jog 速度設定 API 函數的引數變數 jog_speed Jog mode 項目 :JOG 軸選擇方式 API 函數的引數變數 jog_mode 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 3-74 Revision February, 2012

97 第三章操作原理 6) 若您欲執行手輪功能時, 您必須勾選 MPG 核取方塊, 執行以下程序 : rt = _DMC_01_get_rm_input_value(CardNo, NodeID, SlotID, Port, &Value); // 取得遠端擴充模組輸入埠 bit 0 到 bit 15 的值 rt = _DMC_01_set_rm_mpg_axes_enable(CardNo, MasterNodeID, MasterSlotID, NodeID, SlotID, enable, pulser_ratio, ratio, slop); 7) 若您欲執行 JOG 功能時, 您必須勾選 Jog 核取方塊, 執行以下程序 : rt = _DMC_01_set_rm_jog_axes_enable (CardNo, MasterNodeID, MasterSlotID, NodeID, SlotID, enable, jog_mode, jog_speed, sec); // 執行 JOG 運動控制 8) 停止手輪 JOG 運動控制 若您欲停止手輪或 JOG 的運動控制 請將上述步驟中勾選的 MPG 或 JOG 核 取方塊勾選取消即可停止相關的運動控制 9) 重置 SERVON 目前的狀態若您欲將 SERVON 狀態資料清除, 必須將上述步驟 MPG 或 JOG 核取方塊勾選取消後, 按壓 RESET 鍵, 執行以下程序 : rt = _DMC_01_set_command(gDMCCardNo, NodeID, SlotID, 0); // 將 Command 清為零 rt = _DMC_01_set_position(gDMCCardNo, NodeID, SlotID, 0); // 將 Position 清為零 10) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 Revision February,

98 第三章操作原理 3.22 遠端擴充脈波介面模組應用 -Mode 1 操作 函式列表 表 3.22 函式名稱 _DMC_01_get_buffer_length _DMC_01_get_servo_DI _DMC_01_get_servo_DO _DMC_01_rm_04pi_md1_get_soft_limit_status _DMC_01_set_rm_04pi_ipulser_mode _DMC_01_set_rm_04pi_opulser_mode _DMC_01_rm_04pi_md1_set_soft_limit _DMC_01_set_rm_04pi_svon_polarity _DMC_01_rm_04pi_md1_v_move _DMC_01_rm_04pi_md1_start_move _DMC_01_set_rm_04pi_DO2 _DMC_01_rm_04pi_md1_p_change _DMC_01_rm_04pi_md1_v_change 3-76 Revision February, 2012

99 第三章操作原理 應用 程式外觀 圖 ) 介面卡初始化 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 Revision February,

100 第三章操作原理 3) 填入運動控制的引數內容值 圖 Dist 項目 : 設定運動距離 API 函數的引數變數 Distance StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Continue 核取方塊 : 若您欲使用 Continue 運動模式, 必須勾選它 4) 選擇運動模式與設置運動行程 圖 Power On 核取方塊 : 按 Power On 啟動該軸電源 H/L 核取方塊 : 選擇運行電位 Output Mode 項目 : 輸出相位分 ABphase 及 CW/CCW 兩種 Ralm 項目 : 可以清除運行過程中產生得異常代碼 Reset 項目 : 可以清除 Command 及 feedback 等相關顯示資料 3-78 Revision February, 2012

101 5) 設定回 Home 運動模式的類別及位移植 : 第三章操作原理 圖 Mode 項目 : 選擇回 Home 運動模式的類別 API 函數的引數變數 home_mode Offset 項目 : 設定回 Home 運動的位移植 API 函數的引數變數 home_offset 6) 設定正 / 負極限值 是否啟用軟體極限與顯示是否碰觸軟體極限 : 圖 P-Limit 項目 : 正極限值 API 函數的引數變數 PLimit N-Limit 項目 : 負極限值 API 函數的引數變數 NLimit Soft-limit 核取方塊 : 啟動 / 關閉軟體極限 P Limit 項目 : 碰觸軟體正極限顯示 ON N Limit 項目 : 碰觸軟體負極限顯示 ON 7) 設定欲置換的新位置值及置換啟動 : 圖 New Pos 項目 : 新位置值 API 函數的引數變數 NewPos PCh 項目 : 置換啟動 Revision February,

102 第三章操作原理 8) 設定欲置換的新速度值 加 減速時間及置換啟動 : 圖 New Vel 項目 : 設定新速度值 API 函數的引數變數 NewSpeed sec 項目 : 設定加 減速時間 API 函數的引數變數 sec PCh 項目 : 置換啟動 9) 設定伺服馬達動力 ON/OFF(servo on/servo off) 圖 按壓 POWERON 鍵開始執行以下程序 : rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 10) 開始進行運動控制 ( 此處以點對點運動為例 ) 圖 按壓 或 鍵執行以下程序 : rt = _DMC_01_rm_04pi_md1_start_move (CardNo, NodeID, SlotID, Dist, StrVel, MaxVel, Tacc, Tdec, m_curve, m_r_a); // 進行運動位移 3-80 Revision February, 2012

103 11) 啟用軟體極限功能 第三章操作原理 圖 若您欲使用軟體極限功能時, 必須先 P Limit 與 N Limit 的值, 並勾選 Soft-limit Enable 核取方塊, 執行以下程序 : /* 啟動設定軟體極限 */ rt = _DMC_01_rm_04pi_md1_set_soft_limit(CardNo, NodeID, SlotID, PLimit, NLimit, Enable); // PLimit 引數表示正極限的設定值 ;NLimit 則為負極限的設定值 關於軟體極限的詳細敘述, 請參閱 3.13 軟體極限 一節 12) Countine 運動控制若您欲進行 Countine 運動時, 請勾選 Countine 核取方塊, 再按壓 或 鍵執行以下程序 : /* Countine 運動 */ rt = _DMC_01_rm_04pi_md1_v_move(CardNo, NodeID, SlotID, StrVel, MaxVel, Tacc, Tdec, dir, m_curve); 13) 原點復歸運動控制若您欲進行回 Home 運動時, 請按壓 Home 鍵執行以下程序: /* 設置原點復歸模式 :1~35 偏移量與速度參數 */ rt = _DMC_01_set_home_config(gDMCCardNo, NodeID, SlotID, home_mode, home_offset, StrVel, MaxVel, acc); /* 啟動原點復歸運動 */ rt = _DMC_01_set_home_move(gDMCCardNo, NodeID, SlotID); 14) 位置置換 RM04PI 在模式 1 下, 將設定的新位置值替換目前的位置, 您必須按壓 Pch 鍵執行以下程序 : /* P Change */ rt = _DMC_01_rm_04pi_md1_p_change(CardNo, NodeID, SlotID, NewPos); Revision February,

104 第三章操作原理 15) 速度置換 RM04PI 在模式 1 下, 將設定的新速度值替換目前的速度, 您必須按壓 Vch 鍵執行以下程序 : /* P Change */ rt = _DMC_01_rm_04pi_md1_v_change(CardNo, NodeID, SlotID, NewsPeed,sec); 16) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 17) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-82 Revision February, 2012

105 第三章操作原理 3.23 遠端擴充脈波介面模組應用 -Mode 2 操作 函式列表 表 3.23 函式名稱 _DMC_01_start_sa_move _DMC_01_start_ta_mov _DMC_01_start_sr_move _DMC_01_start_tr_move _DMC_01_set_rm_04pi_ipulser_mode _DMC_01_set_rm_04pi_opulser_mode _DMC_01_set_rm_04pi_svon_polarity _DMC_01_set_monitor _DMC_01_get_monitor _DMC_01_send_message 應用 程式外觀 圖 Revision February,

106 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 選擇控制的引數內容值 圖 AB phase 項目 : 輸入 / 輸出模式為 AB phase 模式 CW/CCW 項目 : 輸入 / 輸出模式為 CW/CCW 模式 High active 項目 : 高準位時觸發 Low active 項目 : 低準位時觸發 3-84 Revision February, 2012

107 4) 填入運動控制的引數內容值 第三章操作原理 圖 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Dist 項目 : 設定運動距離 API 函數的引數變數 Distance 5) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 6) 若設定了 AB Phase CW/CCW 及 High active Low active 後按按壓 Set 鍵開始執行以下程序 : rt =_DMC_01_set_rm_04pi_ipulser_mode(CardNo, NodeID, SlotID, mode); // 設定脈波介面模組輸入相位模式 rt = _DMC_01_set_rm_04pi_opulser_mode(CardNo, NodeID, SlotID, mode); // 設定脈波介面模組輸出相位模式 rt = _DMC_01_set_rm_04pi_svon_polarity(CardNo, NodeID, SlotID, polarity); // 設定 POWER ON(SVON) 的準位 Revision February,

108 第三章操作原理 7) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 或 鍵執行以下程序: rt = _DMC_01_start_sa_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_sr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行運動位移 rt = _DMC_01_start_tr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行運動位移 8) 停止運動按壓 STOP 鍵開始執行緊急停止: rt = _DMC_01_emg_stop (gdmccardno, NodeID, SlotID); 此例中使用緊急停止的方式停止運動位移, 此方式是將減速時間設為 0, 快速地停止運動 關於停止運動的詳細內容, 請參閱後敘相關 停止運動控制 API 的章節說明 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 欲跳脫函式必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於此兩個 API 函式應用, 請參閱 節 離開程序 的函式操作 3-86 Revision February, 2012

109 第三章操作原理 3.24 取得 ( 計算 ) 圓弧相關資訊 函式列表 表 3.24 函式名稱 _misc_app_get_circle_endpoint _misc_app_get_circle_center_point 應用 程式外觀 圖 Revision February,

110 第三章操作原理 1) 介面卡初始化按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 2) 取得 Slot ID 值並啟用顯示運動狀態 圖 勾選 Timer 核選方塊啟用顯示運動狀態 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入已知條件並選擇使用的計算方式 ➊ ➋ 圖 ➌ ➊ 若您已知起始座標 XY 值 中心座標 XY 值和對應的角度值, 然後即可藉由計算式取得終點座標 XY 值 故當您按壓 Calc. 鍵開始執行以下程序: /* 取得 X 軸與 Y 軸的終點座標值 */ rt = _misc_app_get_circle_endpoint(start_x, Start_Y, Center_X, Center_Y, Angle, &End_X, &End_Y); ➋ 若您已知起始座標 XY 值 終點座標 XY 值和對應的角度值, 然後即可藉由計算式取得中心座標 XY 值 故當您按壓 Calc. 鍵開始執行以下程序: /* 取得 X 軸與 Y 軸的中心座標值 */ rt = _misc_app_get_circle_center_point(start_x, Start_Y, End_X, End_Y, Angle, &Center_X, &Center_Y); ➌ 當您完成執行程序 ➊ 或程序 ➋, 計算式計算出來的結果將顯示在區塊 ➌ 3-88 Revision February, 2012

111 第三章操作原理 4) 當您完成圓弧計算, 取得您所需的圓弧補間運動相關數據後, 您將可以開始進行圓弧補間運動控制, 如圖 3.90 所示, 填入相關圓弧補間所需資訊, 選擇你欲進行的圓弧補間運動, 關於圓弧補間的詳細說明, 請參閱 二軸圓弧補間運動控制 API 圖 Revision February,

112 第三章操作原理 3.25 中斷操作 Interrupt 函式列表 表 3.26 函式名稱 _DMC_01_int_enable _DMC_01_int_disable _DMC_01_set_int_factor _DMC_01_get_int_count 應用 程式外觀 圖 Revision February, 2012

113 第三章操作原理 1) 介面卡初始化 : 按壓 Initial 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 設置驅動器的 Node ID 並啟用顯示運動狀態 圖 填入 Node ID 並勾選 Timer 核取方塊啟用顯示運動狀態 NodeID 項目 :API 函數的引數變數 NodeID. Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) 填入運動控制的引數內容值 圖 StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec 4) 選擇運動模式與設置運動行程 圖 Revision February,

114 第三章操作原理 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Dist. 項目 : 運動行程 API 函數的引數變數 Distance 5) 設定 Normal Stop Interrupt 是否啟用 圖 Enable 項目 : 啟動 / 關閉 Normal Stop Interrupt Normal Stop Counter 項目 : 啟動 Normal Stop Interrupt 後累計觸發數 6) 若您欲啟用 Normal Stop Interrupt 功能, 您必須將 Enable 鍵按下, 並執行以下程序 : /* 啟動 Interrupt 功能 */ rt = _DMC_01_int_enable(gDMCCardNo, NodeID); /* 關閉 Interrupt 功能 */ rt = _DMC_01_int_disable(gDMCCardNo, NodeID); /* 設定 Interrupt 功能為 Normal Stop Interrupt*/ rt = _DMC_01_set_int_factor(gDMCCardNo, NodeID,1); /* 1: Normal Stop: 任一運動結束後會觸發 (Mode2) */ /* 2: Next Buffer: 執行 Buffer 動作時會觸發 (Mode2) */ /* 3: Acceleration End: 在加速結束時觸發 (Mode2) */ /* 4: Deceleration Start: 在減速開始時觸發 (Mode2) */ /* 5: Sdo Finish:( 此功能尚未開放 ) */ /* 6: DMC Cycle Start: 進入 DMC Cycle 時觸發 */ /* 7: RM04PI-FIFO: 進入 04PI FIFO 時觸發 (Mode1) */ /* 8: User define:( 此功能尚未開放 ) */ 7) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 3-92 Revision February, 2012

115 第三章操作原理 8) 開始進行運動控制 ( 此處以點對點運動為例 ) 按壓 或 鍵執行以下程序: rt = _DMC_01_start_sa_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_ta_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_sr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 S-curve 速度剖面下的相對座標進行運動位移 rt = _DMC_01_start_tr_move(gDMCCardNo, NodeID, SlotID, Distance, StrVel, MaxVel, acc, dec); // 參照 T-curve 速度剖面下的相對座標進行運動位移 9) 設定 Interrupt 功能為 Normal Stop Interrupt: 當進行運動的距離完成時或於中途按下 Stop 鍵, 用下列 API 去讀取 Int_Count 值會較之前增加 1 如上圖 Normal Stop Counter 所示 rt = _DMC_01_get_int_counter(gDMCCardNo, NodeID, &Int_Count); 10) 停止運動按壓 STOP 鍵開始執行點對點運動進行減速停止: rt = _DMC_01_sd_stop(gDMCCardNo, NodeID, SlotID, dec); 此例中使用減速的方式停止運動位移, 此方式是根據設定的減速時間, 逐漸地將速度減速至零 關於停止運動的詳細說明請參閱 第十四章停止運動 API 11) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February,

116 第三章操作原理 3.26 主控介面卡安全機制操作 Master Security 函式列表 表 3.26 函式名稱 _DMC_01_check_userpassword _DMC_01_write_userpassword _DMC_01_read_serialno _DMC_01_write_verifykey _DMC_01_check_verifykey _DMC_01_read_security _DMC_01_read_security_status _DMC_01_write_security _DMC_01_write_security_status _misc_security 3-94 Revision February, 2012

117 第三章操作原理 應用 程式外觀 圖 ) 介面卡初始化 : 按壓 Open Card 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 Revision February,

118 第三章操作原理 2) 進行軸卡登入動作 (SerialNo Verifykey Memory Read/Write 均需要 Check Password Pass 才能運作 ) 圖 Password 項目 : 輸入兩組 1~8 位 0~F 的 16 進制值, 軸卡預設密碼 (Password1:FFFFFFFF Password2:FFFFFFFF) Login 項目 : 進行密碼確認動作 狀態列項目 : 如果密碼正確, 下方狀態列出現 Pass., 如果密碼錯誤, 狀態列出現 Failed. 3) 變更軸卡密碼 : 圖 Change Password 項目 : 輸入兩組 1~8 位 0~F 的 16 進制值 Repeat 項目 : 重複輸入兩組 1~8 位 0~F 的 16 進制值 ( 與 Change Password 輸入值相同 ) Change 項目 : 按下 Change 鍵則進行密碼變更 狀態列項目 : 如果 Change Password 與 Repeat 輸入的密碼是相同的, 則按下 Change 鍵後, 變更密碼成功, 狀態列出現 Pass, 如果 Change Password 與 Repeat 輸入的密碼是不同的, 狀態列會出現 Please rewrite it., 請重新進行密碼變更動作 3-96 Revision February, 2012

119 4) 建立 Verifykey 動作 第三章操作原理 圖 SerialNo. 顯示 : 軸卡出廠的製造序號, 顯示於此 Read Serial No 項目 : 進行讀取軸卡製造序號的動作 Input User Key 項目 : 輸入客戶端自訂的兩組 1~8 位 0~F 的 16 進制的 Key 值 Verify key 顯示 : 產生的 verifykey 值顯示於此 Make Verify Key 項目 : 將 SerialNo 及客戶輸入的 Userkey, 經加密程序, 產生成四組 VerifyKey Write Verify Key 項目 : 將產生的 Verifykey 值寫入軸卡中 狀態列項目 : 如果 Verifykey 寫入成功, 狀態列出現 Write Done., 寫入失敗, 出現 Failed. 5) 檢查 Verify key 是否正確 圖 Input Verify key 項目 : 輸入要檢查軸卡的 Verify key 值 Sync 項目 : 可將上個程序產生的 Verify key 值複製於 Input Verify key 欄位 Check Verify key 項目 :Check Verify Key,Key 值正確, 狀態列顯示 Check Pass. Key 值錯誤, 狀態列顯示 Lock. Revision February,

120 第三章操作原理 6) 檢查 Verify key 是否正確 圖 Page 項目 : 輸入要讀取或寫入的 Memory Page(0~9) 值 Read 項目 : 執行讀取指定 Memory Page 動作, 並顯示於 讀取 位置 Write Enable 項目 : 在執行寫入動作前, 需將 Write Enable 選項打勾, 這時於 Status 狀態列會出現 Write/Read Sync 項目 : 按 Sync 鍵可以將 讀取 位置的值複製到 寫入 位置 Write 項目 : 執行將 寫入 位置的值寫入 Memory 中 Status 項目 :Default 值為 Read Only,Write Enable 選項打勾, 顯示 Write/Read 7) 若按下圖 的 login 鍵則執行下列程序 : /* 檢查 Password 功能 */ rt = _DMC_01_check_userpassword(gDMCCardNo, Password(0),state); 若按下圖 的 Change 鍵則執行下列程序 : /* 進行變更密碼動作 */ rt = _DMC_01_write_userpassword(gDMCCardNo, chpassword(0)); 若按下圖 的 Read Serial Noe 鍵則執行下列程序 : /* 讀取 Serial No 動作 */ rt = _DMC_01_read_serialno(gDMCCardNo, serial(0)); 若按下圖 的 Make Verify Key 鍵則執行下列程序 : /* 進行加密製作 Verify Key 動作 */ rt = _misc_security(userkey(0),userkey(1),serialno(0),serialno(1),verifykey(0), verifykey(1),verifykey(2),verifykey(3)); 若按下圖 的 Write Verify Key 鍵則執行下列程序 : /* 將 Verify Key 寫入 Memory 中 */ rt =_DMC_01_write_verifykey(gDMCCardNo,verifykey(0)); 若按下圖 的 Check Verify Key 鍵則執行下列程序 : /* 檢查 Verify Key 值是否正確 */ rt =_DMC_01_check_verifykey(gDMCCardNo,verifykey(0),state); 3-98 Revision February, 2012

121 第三章操作原理 若按下圖 的 Read 鍵則執行下列程序 : /* 讀取指定 Page 的資料顯示於 讀取 位置 */ rt =_DMC_01_read_security(gDMCCardNo,page,ary(0)); 若按下圖 的 Write 鍵則執行下列程序 : /* 將 寫入 位置的資料寫入指定 Page 的 Memory 中 */ rt =_DMC_01_write_security(gDMCCardNo,page,ary(0)); 若勾選圖 的 WriteEnable 則執行下列程序 : /* 將 寫入 位置的資料寫入指定 Page 的 Memory 中 */ rt =_DMC_01_write_security_status(gDMCCardNo,on_off); 8) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February,

122 第三章操作原理 3.27 遠端擴充類比輸入 / 輸出模組應用 函式列表 表 3.27 函式名稱 _DMC_01_rm_04da_set_output_value _DMC_01_rm_04da_get_output_value _DMC_01_rm_04da_get_return_code _DMC_01_rm_04da_read_data _DMC_01_rm_04da_set_output_range _DMC_01_rm_04da_set_output_enable _DMC_01_rm_04da_set_output_overrange _DMC_01_rm_04da_set_output_error_clear _DMC_01_rm_04da_set_output_error_handle _DMC_01_rm_04da_set_output_offset_value _DMC_01_rm_04da_get_output_offset_value _DMC_01_set_04ad_input_range _DMC_01_get_04ad_input_range _DMC_01_set_04ad_zero_scale _DMC_01_get_04ad_zero_scale _DMC_01_set_04ad_full_scale _DMC_01_get_04ad_full_scale _DMC_01_set_04ad_conversion_time _DMC_01_get_04ad_conversion_time _DMC_01_get_04da_data _DMC_01_set_04ad_average_mode _DMC_01_get_04ad_average_mode _DMC_01_set_04ad_input_enable Revision February, 2012

123 第三章操作原理 應用 程式外觀 圖 Revision February,

124 第三章操作原理 1) 介面卡初始化 : 按壓 Initial 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) DA Channel 選擇及顯示模式選擇 : 圖 Channel 項目 : 輸入欲使用之 DA Channel 編號 (0~3) Mode 項目 : 選擇 DA 顯示範圍模式,API 函數的引數變數 mode Appro 項目 : 根據選擇範圍模式及拉把位置顯示預估電壓或電流值 Read 項目 : 顯示實際輸出的電壓或電流值 Apply 項目 : 按壓 Apply 鍵, 會將 Appro 的預估電流或電壓值轉為實際輸出 3) DA Data Choice: 圖 Error Handle 項目 : 勾選本項目, 可在重新執行本程式時保留上次離開時的狀態 Over Range 項目 : 勾選本項目, 可使電壓或電流輸出值增加 10% Set Offset 項目 : 設定 DA 的偏差量 ClearError 項目 : 將 Rtn Code 所顯示之 Error 狀態清除 Revision February, 2012

125 4) AD Conversion Time 模式選擇 : 第三章操作原理 圖 Conversion Time 項目 : 選擇 Conversion Time 的模式 5) 選擇 AD Channel / 顯示模式 / Average 等相關資料 : 圖 Channel 項目 : 選擇 AD 致能輸入之 Channel 位置 Mode 項目 : 選擇 AD 顯示範圍模式 Average 項目 : 選擇波形顯示計算頻率 Data 項目 : 輸入 AD 之電壓或電流值顯示位置 Revision February,

126 第三章操作原理 6) AD 歸零及最大值調校 : 圖 Zero 項目 : 按下此鍵會進行歸零動作 ( 例如 : 先選擇 DA Mode -5~5 後, 將拉把置於 0 的位置, 按下 Zero 鍵完成歸零調校動作 ) Full 項目 : 按下此鍵會進行最大值調校動作 ( 例如 : 先選擇 DA Mode -10~10 後, 將拉把置於 10 的位置, 按下 Full 鍵完成最大值調校動作 ) 7) 若選擇圖 的 Mode 選項, 則執行下列程序 : /* 先將 Offset 值歸 0 */ rt = _DMC_01_rm_04da_set_output_offset_value(gDMCCardNo,DANodeID,SlotID, ChannelDA,0); /* 再將 Output Disable */ rt = _DMC_01_rm_04da_set_output_enable(gDMCCardNo,DANodeID,SlotID, ChannelDA,0); /* 設定 DA 選擇模式 */ rt = _DMC_01_rm_04da_set_output_range(gDMCCardNo,DANodeID,SlotID, ChannelDA,DAmode); 若選擇圖 的 Apply 選項, 則執行下列程序 : /* 設定 DA 輸出值 */ rt = _DMC_01_rm_04da_set_output_value(gDMCCardNo,DANodeID,SlotID, ChannelDA,AppValue); 若勾選圖 的 Error Handle 選項, 則執行下列程序 : /* Enable Error Handle 功能 */ rt =_DMC_01_rm_04da_set_output_error_handle(gDMCCardNo,DANodeID,SlotID, ChannelDA,1); 若勾選圖 的 Over Range 選項, 則執行下列程序 : /* Enable Over Range 功能 */ rt =_DMC_01_rm_04da_set_output_overrange(gDMCCardNo,DANodeID,SlotID, ChannelDA,1); Revision February, 2012

127 第三章操作原理 若點選圖 的 Set Offset 選項, 則執行下列程序 : /* 將輸入之 Offset 值設定進去 DA */ rt =_DMC_01_rm_04da_set_output_offset_value(gDMCCardNo,DANodeID,SlotID, ChannelDA,offset); 若點選圖 的 Clear Error 選項, 則執行下列程序 : /* 將 Error 狀態清除 */ rt =_DMC_01_rm_04da_set_output_error_clear(gDMCCardNo,DANodeID,SlotID, ChannelDA,1); 若選擇圖 的 Conversion Time 選項, 則執行下列程序 : /* 設定 Conversion Time 模式 */ rt =_DMC_01_set_04ad_conversion_time(gDMCCardNo,ADNodeID,SlotID,mode); 若選擇圖 的 Mode 選項, 則執行下列程序 : /* 設定 AD 輸入範圍模式 */ rt =_DMC_01_set_04ad_input_range(gDMCCardNo,ADNodeID,SlotID,ChannelAD, mode); 若選擇圖 的 Average 選項, 則執行下列程序 : /* 設定 AD 波形輸出計算頻率 */ rt =_DMC_01_set_04ad_average_mode(gDMCCardNo,ADNodeID,SlotID, ChannelAD,mode); 圖 的 Data 顯示, 則執行下列程序 : /* 顯示 AD 輸入電壓或電流值 */ rt =_DMC_01_get_04ad_data(gDMCCardNo,ADNodeID,SlotID,ChannelAD,data); 若點選圖 的 Zero 選項, 則執行下列程序 : /* 將選擇的 Channel 歸零 */ rt =_DMC_01_set_04ad_zero_scale(gDMCCardNo,ADNodeID,SlotID,Channel); rt =_DMC_01_get_04ad_zero_scale_status(gDMCCardNo,ADNodeID,SlotID, Channel,flag); /* flag=1 表示設定尚未完成,flag=0 表示設定完成 */ 若點選圖 的 Full 選項, 則執行下列程序 : /* 調校選擇 Channel 的最大值 */ rt =_DMC_01_set_04ad_full_scale(gDMCCardNo,ADNodeID,SlotID,Channel); rt =_DMC_01_get_04ad_full_scale_status(gDMCCardNo,ADNodeID,SlotID, Channel,flag); /* flag=1 表示設定尚未完成,flag=0 表示設定完成 */ Revision February,

128 第三章操作原理 8) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February, 2012

129 第三章操作原理 3.28 螺旋補間運動控制 -Spiral 函式列表 表 3.28 函式名稱 _DMC_01_start_spiral_xy _DMC_01_start_spiral2_xy 應用 程式外觀 圖 Revision February,

130 第三章操作原理 1) 介面卡初始化 : 按壓 Initial 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 啟用顯示運動狀態 圖 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) Spiral 動作參數設定 : 圖 Center_X 項目 :Spiral 運動中心點 X 軸位置,API 函數的引數變數 Center_X Center_Y 項目 :Spiral 運動中心點 Y 軸位置,API 函數的引數變數 Center_Y Pitch 項目 :Spiral 運動圓圈與圓圈之間距,API 函數的引數變數 Pitch Angle 項目 :Spiral 運動總角度數例如 :720 度為兩圈,API 函數的引數變數 Angle StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Revision February, 2012

131 4) Spiral2 動作參數設定 : 第三章操作原理 圖 Center_X 項目 :Spiral 運動中心點 X 軸位置,API 函數的引數變數 Center_X Center_Y 項目 :Spiral 運動中心點 Y 軸位置,API 函數的引數變數 Center_Y StrVel 項目 : 初始速度 API 函數的引數變數 StrVel MaxVel 項目 : 最大速度 API 函數的引數變數 MaxVel Acc 項目 : 達到最大速度所花費時間 API 函數的引數變數 acc Dec 項目 : 從最大速度減至 0 值所花費的時間 API 函數的引數變數 dec Dir 項目 :Spiral 運動的方向,0: 順時針方向,1: 逆時針方向,API 函數的引數變數 Dir Cir_Num 項目 :Spiral 運動圈數,API 函數的引數變數 Cir_Num End_X 項目 :Spiral 運動終止點 X 軸位置,API 函數的引數變數 End_X End_Y 項目 :Spiral 運動終止點 Y 軸位置,API 函數的引數變數 End _Y 5) 選擇運動模式 圖 Abs. 核取方塊 : 若您欲參照絕對座標的方式進行運動位移, 必須勾選它 S-Curve 核取方塊 : 若您欲使用 S-curve 速度曲線, 必須勾選它 Revision February,

132 第三章操作原理 6) 選擇 Spiral 運動模式 圖 Spiral 項目 : 欲進行 Spiral 運動請點選它 Spiral2 項目 : 欲進行 Spiral2 運動請點選它 7) 設定伺服馬達動力 ON/OFF(servo on/servo off) 按壓 SVON 鍵開始執行以下程序: rt = _DMC_01_ipo_set_svon(gDMCCardNo, NodeID, SlotID, ON_OFF); // ON_OFF: 0 伺服動力 OFF;1 伺服動力 ON 8) 開始進行運動控制, 按壓 MOVE 鍵執行以下程序: rt = _DMC_01_start_spiral_xy(gDMCCardNo, gline2, gslot2, Center_X, Center_Y, StrVel, MaxVel, acc, dec, 2, 1); // 參照 S-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_spiral_xy(gDMCCardNo, gline2, gslot2, Center_X, Center_Y, StrVel, MaxVel, acc, dec, 1, 1); // 參照 T-curve 速度剖面下的絕對座標進行運動位移 rt = _DMC_01_start_spiral_xy(gDMCCardNo, gline2, gslot2, Center_X, Center_Y, StrVel, MaxVel, acc, dec, 2, 0); // 參照 S-curve 速度剖面下的相對座標進行運動位移 rt = _DMC_01_start_spiral_xy(gDMCCardNo, gline2, gslot2, Center_X, Center_Y, StrVel, MaxVel, acc, dec, 1, 0); // 參照 T-curve 速度剖面下的相對座標進行運動位移 9) 停止運動按壓 STOP 鍵開始執行點對點運動進行減速停止: rt = _DMC_01_sd_stop(gDMCCardNo, NodeID, SlotID, dec); 此例中使用減速的方式停止運動位移, 此方式是根據設定的減速時間, 逐漸地將速度減速至零 關於停止運動的詳細說明請參閱 第十四章停止運動 API 10) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February, 2012

133 第三章操作原理 3.29 位置比較 Compare 函式列表 表 3.29 函式名稱 _DMC_01_set_compare_channel_position _DMC_01_get_compare_channel_position _DMC_01_set_compare_ipulser_mode _DMC_01_set_compare_channel_direction _DMC_01_set_compare_channel_trigger_time _DMC_01_set_compare_channel_one_shot _DMC_01_set_compare_channel_source _DMC_01_channel0_position_cmp _DMC_01_channel1_output_enable _DMC_01_channel1_output_mode _DMC_01_channel1_get_io_status _DMC_01_channel1_get_gpio_out _DMC_01_channel1_get_fifo_status _DMC_01_channel1_get_fifo_counter _DMC_01_channel1_position_compare_table _DMC_01_channel1_position_compare_table_level _DMC_01_channel1_position_compare_table_cnt _DMC_01_set_compare_channel_polarity Revision February,

134 第三章操作原理 應用 程式外觀 圖 Revision February, 2012

135 第三章操作原理 1) 介面卡初始化 : 首先確認您安裝的為 PCI-DMC-B01 介面卡 按壓 Open Card 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 卡號 站號及 QEP 選擇 : 圖 Card 項目 : 輸入欲使用之 PCI_DMC_B01 卡片編號 Node 項目 : 選擇使用站號, 應與 QEP1 與 QEP2 選擇一致 QEP1 項目 : 例如 : 選擇使用 Channel0, 站號應選擇 Node1 QEP2 項目 : 例如 : 選擇使用 Channel1, 站號應選擇 Node2 3) Compare Type Select 及 Polarity 設定 : 圖 High 項目 : 勾選本項目, 執行以下設定 : 0: High rt = _DMC_01_set_compare_channel_polarity(CpCardNo,0); Low 項目 : 勾選本項目, 執行以下設定 : 1: Low rt = _DMC_01_set_compare_channel_polarity(CpCardNo,1); Type 項目 : 選擇 Comapre1 或是 Compare2 功能 rt = _DMC_01_set_compare_channel_source(CpCardNo,Compare_Type,CpQEP); //Compare_type:0=COMP1,1=COMP2 TCount 項目 :Trigger 實際執行次數 Revision February,

136 第三章操作原理 4) MPC 參數設定 : 圖 Inpulse Type 項目 : 選擇 AB Phase 或是 CW/CCW 的模式 執行以下設定 : rt = _DMC_01_set_compare_ipulser_mode(CpCardNo,mode); // 0: AB Phase 1: CW/CCW Reset 項目 : 按下此鍵, 將 QEP1 及 QEP2 的 MPC Count 清除, 執行以下設定 rt = _DMC_01_set_compare_channel_position(CpCardNo,channel,0); QEP1 Inverse 項目 : 反向, 按下此鍵, 執行以下設定 : rt = _DMC_01_set_compare_channel_direction(CpCardNo,0,dir); // dir:0 or 1 QEP2 Inverse 項目 : 反向, 按下此鍵, 執行以下設定 : rt = _DMC_01_set_compare_channel_direction(CpCardNo,1,dir); // dir:0 or 1 5) Operate 相關資料設定 : 圖 Trigger Time 項目 : 輸入一個 Trigger 致能時間 Trigger count 項目 : 輸入 Trigger 總致能次數 Start Position 項目 : 輸入 Trigger 致能起始位置 Interval 項目 : 輸入 Trigger 致能頻率, 例如 : 輸入 10 表示每 10 個 Pulse 致能一次 Abs 核取方塊 : 若您欲參照絕對座標的方式進行 Trigger 致能, 必須勾選它 Level 核取方塊 : 勾選它, 執行以下設定 : rt = _DMC_01_channel1_output_mode(CpCardNo,mode); // mode: 0 表示 Normal 型態, 1 表示自訂型態 ( 詳見 39 章 Compare API 說明 ) Revision February, 2012

137 第三章操作原理 One Shot 項目 : 按下此鍵, 只打一個 Trigger, 執行以下設定 : rt = _DMC_01_set_compare_channel_trigger_time(CpCardNo,compare_channel, time_us); // time_us=trigger time rt = _DMC_01_set_compare_channel_one_shot(CpCardNo,compare_channel); Set 項目 : 可選擇 >>> 及 <<< 這兩個方向, 按下此鍵, 執行以下設定 : rt = _DMC_01_get_compare_channel_position(CpCardNo,compare_channel, position); rt = _DMC_01_set_compare_channel_trigger_time(CpCardNo,compare_channel, time_us); // time_us = Trigger time If CompareType=CMP1 //Compare1 rt = _DMC_01_channel0_position_cmp(CpCardNo,start,dir,interval); // dir->0:cmp1,1:cmp2 Else //Compare2 先將 output disable rt = _DMC_01_channel1_output_enable(CpCardNo,0); // 0:off 1:on 若 Level 核取方塊是勾選的, 則執行下列設定 : rt = _DMC_01_channel1_position_compare_table(CpCardNo,pos_table,tab_size); 若未勾選, 則執行下列設定 : rt = _DMC_01_channel1_position_compare_table_level(CpCardNo,pos_table, level_table,tab_size); 最後將 output enable rt = _DMC_01_channel1_output_enable(CpCardNo,1); // 0:off 1:on 6) Command 顯示及測試操作區 : 圖 Reset 項目 : 按下此鍵會進行 Motion 歸零動作 P2PMove 項目 : 按下此鍵會進行 Motion 正向或負向動作 STOP 項目 : 按下此鍵會將 Motion 動作停止 Command 項目 : 顯示 Motion 動作目前的位置 9) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February,

138 第三章操作原理 3.30 Axis Group 函式列表 _DMC_01_set_group 表 3.30 函式名稱 應用 程式外觀 圖 Revision February, 2012

139 第三章操作原理 1) 介面卡初始化 : 按壓 Open Card 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 卡號 站數顯示 : 圖 Card num 項目 : 顯示卡片張數 Slave num 項目 : 顯示站數 3) Group 設定及解除 : 圖 Nodexx 項目 : 顯示站號詳細資料 Set Group 項目 :1. 一張卡最多可以設定六個群組 2. 假設設定 Node7,Node8 為一個群組, 表示當連線是在 Node7, Node8 鄰近發生異常,Node7,8 會一起停止, 其他 Node1,4,5,6 則不受影響, 可維持正常運作 3. 當選好要設為同一群組的 Node 目標時, 點選 Set Group 將執行以下設定 rt = _DMC_01 DMC_01_set_group (gdmccardno, NodeID, SlotID, NodeNum, 1); //1: 表示將所選擇的 Node 設定為同一群組 Revision February,

140 第三章操作原理 Clear All Group 項目 : 當點選 Clear All Group 將執行以下設定 rt = _DMC_01_set_group(gDMCCardNo, (U16*)1, 0, 1, 0); //0: 表示將本卡所有的群組設定都清除 4) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February, 2012

141 第三章操作原理 3.31 連續速度操作 Speed Continue 函式列表 表 3.31 函式名稱 _DMC_01_speed_continue _DMC_01_speed_continue_mode _DMC_01_speed_continue_combine_ratio 應用 程式外觀 圖 Revision February,

142 第三章操作原理 1) 介面卡初始化 : 按壓 Open Card 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 卡號 站數顯示及 Timer 設定 : 圖 Card num 項目 : 顯示卡片張數 Slave num 項目 : 顯示站數 Timer 核取方塊 : 勾選它將會顯示運動的狀態, 反之, 則不顯示 3) Speed Continue 參數設定 : 圖 S.CEnable 核取方塊 : 勾選它將會進入 Speed Continue 模式並執行以下設定 rt = _DMC_01_speed_continue(gDMCCardNo,gpNodeID[0], 0, flag); //flag=1 表示設定為 Speed Continue 模式,flag=0 表示取消 Speed Continue 模式 S.CCombine Ratio 項目 : 設定連續速度合成百分比, 當點選 Set 鍵將執行以下設定 rt = _DMC_01_speed_continue_combine_ratio(gDMCCardNo, gpnodeid[0], 0, Ratio); //Ratio: 表示連續速度合成百分比 ( 可參考 41.3 Speed Continue API 說明 ) S.C Mode 項目 : 當點選 S.C Mode 將執行以下設定 rt = _DMC_01_speed_continue_mode(gDMCCardNo, gpnodeid[0], 0, Mode); //Mode=0 設定為等加速模式 //Mode=1 設定為加 減速模式 //Mode=2 設定為等最大速度模式 //( 可參考 41.2 Speed Continue API 說明 ) Revision February, 2012

143 4) 展示 : 第三章操作原理 圖 Example 1 項目 : 點選它將會進行一段入 Speed Continue 示範程式, 將依照圖 所選擇之 Speed Continue 參數依序執行以下程序 rt = _DMC_01_start_tr_move_xy(gDMCCardNo, NodeID, SlotID, 0, 10000, 0, 5000, 0.1, 0.1); rt = _DMC_01_start_tr_arc_xy(gDMCCardNo, NodeID, SlotID, 2000, 0, 90, 0, 2500, 0.1, 0.1); rt = _DMC_01_start_tr_move_xy(gDMCCardNo, NodeID, SlotID, 10000, 0, 0, 5000, 0.1, 0.1); rt = _DMC_01_start_tr_arc_xy(gDMCCardNo, NodeID, SlotID, 0, -2000, 90, 0, 2500, 0.1, 0.1); rt = _DMC_01_start_tr_move_xy(gDMCCardNo, NodeID, SlotID, 0, , 0, 5000, 0.1, 0.1); rt = _DMC_01_start_tr_arc_xy(gDMCCardNo, NodeID, SlotID, -2000, 0, 90, 0, 2500, 0.1, 0.1); rt = _DMC_01_start_tr_move_xy(gDMCCardNo, NodeID, SlotID, , 0, 0, 5000, 0.1, 0.1); rt = _DMC_01_start_tr_arc_xy(gDMCCardNo, NodeID, SlotID, 0, 2000, 90, 0, 2500, 0.1, 0.1); 5) 離開程序按壓 Exit 鍵開始執行程序的離開與關閉 Exit 函數必須操作 _DMC_01_reset_card 與 _DMC_01_close, 關於兩個 API 詳細說明, 請參閱 節 4) 離開程序 Revision February,

144 第三章操作原理 3.32 螺旋補間 Helix 應用 -Sp1_ Normal Follow 函式列表 表 3.32 函式名稱 _DMC_01_start_tr_heli_xy 應用 程式外觀 圖 Revision February, 2012

145 第三章操作原理 1) 介面卡初始化 : 按壓 Open Card 鍵開始執行介面卡初始化 關於介面卡初始化詳細說明, 請參閱第 節 -1) 開啟介面卡 2) 卡號 站數顯示 : 圖 Card num 項目 : 顯示卡片張數 Slave num 項目 : 顯示站數 3) Example 參數設定及操作 : 圖 Select example 項目 : 有 Example1 及 Example2 可供選擇 Select follow type 項目 : 設有 Normal 及 Tangent 可供選擇 Speed 項目 : 選擇預定速度倍率 Start 項目 : 當點選 Start 鍵將執行以下設定 _DMC_01_start_tr_heli_xy(CardNo,NodeID,SlotID,CenterX,CenterY, Depth,Pitch, Dir, StartVel, MaxVel, Tacc, Tdec); 參數 : CardNo: 卡號 NodeID:3 軸站號的陣列 SlotID:3 軸號的陣列 CenterX:X,Y 軸圓弧動作時的圓心 (X 座標 ) CenterY:X,Y 軸圓弧動作時的圓心 (Y 座標 ) Depth:Z 軸移動的距離 ( 等於圓弧的角度除以 360 再乘上 Pitch) Revision February,

146 第三章操作原理 Pitch:Z 軸旋轉一圈的距離淨量 ( 恆為正數 ) Dir: 圓弧動作的方向,0 為順時針,1 為逆時針 備註 : 若是 Z 軸走 Pitch 的距離為順時針旋轉一圈, 則如果 Dir = 0,Depth 也為正數, Dir = 1 則 Depth 為負數 ; 若 Z 軸走 pitch 的距離為逆時針旋轉一圈, 則反之 當選擇 Example1 及 Normal 時, 執行結果如下圖 : 圖 Revision February, 2012

147 當選擇 Example2 及 Tangent 時, 執行結果如下圖 : 第三章操作原理 圖 例子 1: 此例是透過 X 軸與 Y 軸, 使得工具繞圓角及直線移動, 並且讓 Z 軸的工具始 終與圖形外緣垂直 (Normal) 或切線 (Tangent) ( 以下解說使用 C 語言, 並且使用狀態機型式來執行, 詳情請參考 Sample) Revision February,

148 第三章操作原理 /* MotionStep1. 為將三軸平移至加工起始點 */ _DMC_01_start_sa_move(CardNo, NodeID3[0], SlotID3[0], 0, 0, MaxVel, 0.1, 0.1); _DMC_01_start_sa_move(CardNo, NodeID3[1], SlotID3[1], 0, 0, MaxVel, 0.1, 0.1); _DMC_01_start_sa_move(CardNo, NodeID3[2], SlotID3[2], , 0, MaxVel, 0.1, 0.1); /* MotionStep2. 等待 Motion Done, 並確定 Step1 完成 */ for(i=0;i<3;i++) { rt[i] = _DMC_01_get_command(CardNo, NodeID3[i], SlotID3[i], &Cmd[i]); } if((rt[0] + rt[1] + rt[2] == 0) && (Cmd[0] == 0) && (Cmd[1] == 0) && (Cmd[2] == )) { MotionStep = 3; } /* MotionStep3. 開始加工 */ _DMC_01_start_tr_move_xy(CardNo, NodeID2, SlotID2, 40000, 40000, MaxVel/2, MaxVel, 0.1, 0.1); _DMC_01_start_tr_heli_xy(CardNo, NodeID3, SlotID3, , 10000, -Pitch*(180.0/360), Pitch,1, MaxVel/2, MaxVel, 0.1, 0.1); _DMC_01_start_tr_move_xy(CardNo, NodeID2, SlotID2, , , MaxVel/2, MaxVel, 0.1,0.1); _DMC_01_start_tr_heli_xy(CardNo, NodeID3, SlotID3, 10000, , - Pitch *(180.0/360), Pitch, 1, MaxVel/2, MaxVel,0.1,0.1); Revision February, 2012

149 第三章操作原理 例子 2: 此例是透過 X 軸與 Y 軸, 使得工具沿圓角及直線移動, 並且讓 Z 軸的工具始終與圖形保持垂直 (Normal) 或切線 (Tangent) ( 下例解說使用 C 語言, 並且使用狀態機型式來執行, 詳情請參考 Sample) /* MotionStep1. 為將三軸平移至加工起始點 */ _DMC_01_start_sa_move(CardNo, NodeID3[0], SlotID3[0], 0, 0, MaxVel, 0.1, 0.1); _DMC_01_start_sa_move(CardNo, NodeID3[1], SlotID3[1], 0, 0, MaxVel, 0.1, 0.1); _DMC_01_start_sa_move(CardNo, NodeID3[2], SlotID3[2], 0, 0, MaxVel, 0.1, 0.1); /* MotionStep2. 等待 Motion Done, 並確定 Step1 完成 */ for(i=0;i<3;i++) { rt[i] = _DMC_01_get_command(CardNo, NodeID3[i], SlotID3[i], &Cmd[i]); } if((rt[0] + rt[1] + rt[2] == 0) && (Cmd[0] == 0) && (Cmd[1] == 0) && (Cmd[2] == 0)) { MotionStep = 3; } /* MotionStep3. 開始加工第一步 ( 直線 ) */ _DMC_01_start_ta_move_xy(CardNo, NodeID2, SlotID2, 30000, 0, MaxVel/2, MaxVel, 0.1, 0.1); Revision February,

150 第三章操作原理 /* MotionStep4. 等候加工第一步執行結束 */ rt[0] = _DMC_01_get_command(CardNo, NodeID3[0], SlotID3[0], &Cmd[0]); rt[1] = _DMC_01_get_command(CardNo, NodeID3[1], SlotID3[1], &Cmd[1]); if ((rt[0] + rt[1] == 0) && (Cmd[0] == 30000) && (Cmd[1] == 0)) { MotionStep = 5; } /* MotionStep5. 旋轉 Z 軸使工具保持切線 ( 或法線 ) */ rt[0] = _DMC_01_start_tr_move(CardNo, NodeID3[2], SlotID3[2], -Pitch*(90.0/360.0), MaxVel/2, MaxVel, 0.1, 0.1); /* MotionStep6. 等候 Z 軸工具定位 ( 動作結束 ) */ rt[2] = _DMC_01_get_command(CardNo, NodeID3[2], SlotID3[2], &Cmd[2]); if ((rt[2] == 0) && (Cmd[2] == TempSaveData)) { MotionStep = 7; } /* MotionStep7. 開始加工第二步 ( 直線 ) */ _DMC_01_start_ta_move_xy(CardNo, NodeID2, SlotID2, 30000, 30000, MaxVel/2, MaxVel, 0.1, 0.1); /* MotionStep8. 等候加工第二步執行結束 */ rt[0] = _DMC_01_get_command(CardNo, NodeID3[0], SlotID3[0], &Cmd[0]); rt[1] = _DMC_01_get_command(CardNo, NodeID3[1], SlotID3[1], &Cmd[1]); if ((rt[0] + rt[1] == 0) && (Cmd[0] == 30000) && (Cmd[1] == 30000)) { MotionStep = 9; } /* MotionStep9. 旋轉 Z 軸使工具保持切線 ( 或法線 ) */ _DMC_01_start_tr_move(CardNo, NodeID3[2], SlotID3[2], -Pitch*(90.0/360.0), MaxVel/2, MaxVel, 0.1, 0.1); Revision February, 2012

151 第三章操作原理 /* MotionStep10. 等候 Z 軸工具定位 ( 動作結束 ) */ rt[2] = _DMC_01_get_command(CardNo, NodeID3[2], SlotID3[2], &Cmd[2]); if ((rt[2] == 0) && (Cmd[2] == TempSaveData)) { MotionStep = 11; } /* MotionStep11. 開始加工 ( 連續圓弧 ) */ _DMC_01_start_tr_heli_xy(CardNo, NodeID3, SlotID3, 0, , -Pitch*(90.0/360.0), Pitch, 1, MaxVel/2, MaxVel, 0.1, 0.1); _DMC_01_start_tr_heli_xy(CardNo, NodeID3, SlotID3, , 0, Pitch *(90.0/360.0), Pitch, 0, MaxVel/2, MaxVel, 0.1, 0.1); _DMC_01_start_tr_heli_xy(CardNo, NodeID3, SlotID3, 0, , - Pitch *(90.0/360.0), Pitch, 1, MaxVel/2, MaxVel, 0.1, 0.1) Revision February,

152 第三章操作原理 3.33 歷程記錄器 函式列表 表 3.99 函式名稱 _misc_set_record_debuging _misc_open_record_debuging_file 應用 程式外觀 圖 ) 介面卡初始化 : 按壓 Initial 鍵開始執行介面卡的開啟與初始化 關於初始化介面卡的詳細說明, 請參閱第 節 開啟介面卡 和 初始化介面卡 Revision February, 2012

153 2) Debug 的功能啟動與否 第三章操作原理 圖 當您欲啟動 debug 功能, 您必須執行以下程序 : rt = _misc_set_record_debuging(enable); // enable 引數值為 1 時, 表示 debug 功能開啟 3) 填入記錄表存放的路徑, 並選擇該記錄的輸出方式 圖 當您欲觀察運動控制產生的歷程記錄, 您必須執行以下程序 : rt = _misc_open_record_debuging_file(file_name, open); // file_name 為一個用來存放 debug 產生的記錄輸出的檔案路徑的字元陣列變數 而另一個 open 變數則是用來決定該 debug 記錄是否輸出至您所設置檔案路徑的文件裡 即當 open 的值為 1 時,debug 記錄將會輸出存放至您設定的檔案路徑文件中 ; 反之, 若其值為 0, 則該記錄僅會顯示在 visual studio 6 集成開發環境下的 debug 窗口 Revision February,

154 第三章操作原理 4) 開始操作任一在 PDO 模式下運行的運動控制 5) 歷程記錄的輸出圖 表示運動控制所使用的函數與值變化的歷程顯示在 visual studio 6 集成開發環境的 debug 窗口 另外, 圖 表示該函數與值變化的歷程記錄將輸出到 log_output.txt 的文件中 圖 圖 Revision February, 2012

155 第四章控制 API 第四章控制 API 4.1 資料型別與範疇 在安裝目錄 inc\vc\ 資料夾中, 存放一 TYPE_DEF.H 檔案, 此檔案定義了一般的資料型別 如下表 4.1, 其標示該檔案中定義的型別 名稱 表示的意義 與值的範疇 表 4.1 名稱 描述 值的範疇 U8 8-bit ASCII 字符 0 到 255 I16 16-bit 有號整數 到 U16 16-bit 無號整數 0 到 I32 32-bit 有號長整數 到 U32 32-bit 無號長整數 0 到 F32 32-bit 單精度浮點數 E38 到 E38 F64 64-bit 雙精度浮點數 E308 到 E309 Boolean 布林值 TRUE, FALSE Revision November,

156 第四章控制 API 4.2 函數描述 表 4.2 硬體初始化 API _DMC_01_open 當應用程式啟動時, 初始化系統資源 _DMC_01_close 釋放所有系統資源 _DMC_01_get_CardNo_seq 取得主機上所有 PCI-DMC-A01 介面卡號 _DMC_01_pci_initial 初始此 PCI 介面卡 _DMC_01_get_card_version 取得軸卡版號 介面卡操作 API _DMC_01_initial_bus 初始外部匯流排 (External Bus) _DMC_01_start_ring 起始 ring 的通訊 _DMC_01_get_device_table 取得裝置列表 _DMC_01_get_node_table 取得站號列表 _DMC_01_check_card_running 查驗該介面卡是否有被啟用 _DMC_01_reset_card 重置該介面卡 _DMC_01_check_nodeno 查驗該站號是否已存在 _DMC_01_get_master_connect_status 取得 Master Card 與擴充模組目前的連線狀態 _DMC_01_get_mailbox_Error 取得 MailBox 報錯的次數 _DMC_01_get_mailbox_cnt 取得 MailBox 計數值 _DMC_01_get_dsp_cnt 取得中斷計數值 _DMC_01_set_dio_output 設置 GPIO 輸出腳位狀態 _DMC_01_get_dio_output 取得 GPIO 輸出腳位狀態 _DMC_01_get_dio_input 取得 GPIO 輸入腳位狀態 _DMC_01_get_cycle_time 取得當前查找裝置的循環時間 _DMC_01_initial_bus2 初始外部所有匯流排 (External Bus) _DMC_01_motion_cnt 取得 MailBox 及 DSP 計數值 伺服驅動器參數讀取 / 寫入 API _DMC_01_read_servo_parameter 讀取伺服驅動器參數資料 _DMC_01_write_servo_parameter 寫入伺服驅動器參數資料 使用 SDO 協定 API _DMC_01_check_canopen_lock SDO 模式下, 檢查是否可以再執行下一筆命令 _DMC_01_get_canopen_ret 取得 CANOPEN 傳回的資訊 (SDO 相關數據 ) _DMC_01_set_pdo_mode 設置使用的 CANopen 協定 (PDO 或 SDO) _DMC_01_send_message 發送 SDO 命令信息至資料緩衝區 _DMC_01_send_message3 發送 SDO 命令信息至資料緩衝區, 但發出命令後立即離開資料緩衝區 _DMC_01_read_message 讀取最後一筆 SDO 命令信息至資料緩衝區 4-2 Revision November, 2011

157 第四章控制 API _DMC_01_read_message2 讀取最後一筆 SDO 命令信息至資料緩衝區, 並傳回已完成的次數值 _DMC_01_get_message 取得 SDO 命令信息至資料緩衝區 _DMC_01_reset_sdo_choke 當 SDO 命令因故阻塞時, 重置 SDO _DMC_01_get_sdo_retry_history 取得 SDO 重新發送的次數 點對點運動控制使用封包協定 API _DMC_01_set_sdo_driver_speed_profile 使用封包協定的速度參數配置 _DMC_01_start_sdo_driver_r_move 起始一個相對性的運動位移 _DMC_01_start_sdo_driver_a_move 起始一個絕對性的運動位移 _DMC_01_start_sdo_driver_new_position_move 變換新的 position 值進行運動位移 原點復歸運動控制使用封包協定 API _DMC_01_set_home_config 設置原點復歸各項配置 _DMC_01_set_home_move 設置開始運行原點復歸運動 _DMC_01_escape_home_move 停止原點復歸運動 速度運動控制使用封包協定 API _DMC_01_set_velocity_mode 速度運動控制參數配置 _DMC_01_set_velocity 設置開始運行速度運動 _DMC_01_set_velocity_stop 停止速度運動控制 _DMC_01_set_velocity_torque_limit 在 velocity 模式時設定最大 torque 限制 轉矩運動控制使用封包協定 API _DMC_01_set_torque_mode 轉矩運動控制參數配置 _DMC_01_set_torque 設置開始運行轉矩運動 _DMC_01_set_torque_stop 停止轉矩運動 _DMC_01_set_torque_velocity_limit 在 torque 模式時設定最大 velocity 限制 使用 PDO 協定 API _DMC_01_ipo_set_svon 在 PDO 協定下 Servo ON/OFF 設置 _DMC_01_get_buffer_length 取得仍未實行的運動命令 _DMC_01_command_buf_clear 清除間隔時間 (buffer dwell 計數值 ) _DMC_01_buf_dwell 兩個運動命令之間的間隔時間 _DMC_01_set_group 設定關連性群組 停止運動控制 API _DMC_01_emg_stop Buffer 內所有運動指令將立即停止 _DMC_01_sd_stop Buffer 內所有運動指令將依減速時間減速停止 _DMC_01_sd_abort 當前正在執行的運動指令將依減速時間停止 _DMC_01_set_sd_mode Sd_stop 的模式設定 運動狀態 API _DMC_01_motion_done 傳回 Master Card 目前實行的運動階段 _DMC_01_motion_status 傳回 Master Card 目前的運動狀態 Revision November,

158 第四章控制 API 運動計數值 API _DMC_01_get_command _DMC_01_set_command _DMC_01_get_position _DMC_01_set_position _DMC_01_get_target_pos _DMC_01_get_torque _DMC_01_get_current_speed _DMC_01_get_current_speed_rpm 軟體極限 API _DMC_01_set_soft_limit _DMC_01_enable_soft_limit _DMC_01_disable_soft_limit _DMC_01_get_soft_limit_status 單軸運動控制 API _DMC_01_start_tr_move _DMC_01_start_sr_move _DMC_01_start_ta_move _DMC_01_start_sa_move _DMC_01_p_change _DMC_01_v_change _DMC_01_start_tr_move_2seg _DMC_01_start_sr_move_2seg _DMC_01_start_ta_move_2seg _DMC_01_start_sa_move_2seg _DMC_01_start_tr_move_2seg2 _DMC_01_start_sr_move_2seg2 _DMC_01_start_ta_move_2seg2 _DMC_01_start_sa_move_2seg2 _DMC_01_feedrate_overwrite _DMC_01_start_v3_move 取得 command 計數值 設置新的 command 計數值 取得目前 position 計數值 設置新的 position 計數值 取得位置的 position 值 取得傳回目前的轉矩計數值 取得目前的運動分量速度 取得目前每分鐘的轉速乘上 10 倍的值 設置軟體正 / 負極限的參考值 設置啟用極限開啟與否和碰觸極限後的停止方式 關閉軟體極限 取得運動期間軟體正 / 負極限的狀態 參照 T-curve 速度剖面下的相對座標進行運動位移 參照 S-curve 速度剖面下的相對座標進行運動位移 參照 T-curve 速度剖面下的絕對座標進行運動位移 參照 S-curve 速度剖面下的絕對座標進行運動位移 以新的位置值替換目前的位置設置 以新的速度值設置替換目前的運動速度參照 T-curve 速度剖面下的相對座標進行二段速度運動位移參照 S-curve 速度剖面下的相對座標進行二段速度運動位移參照 T-curve 速度剖面下的絕對座標進行二段速度運動位移參照 S-curve 速度剖面下的絕對座標進行二段速度運動位移參照 T-curve 速度剖面下的相對座標進行二段速度運動位移參照 S-curve 速度剖面下的相對座標進行二段速度運動位移參照 T-curve 速度剖面下的絕對座標進行二段速度運動位移參照 S-curve 速度剖面下的絕對座標進行二段速度運動位移 改變運動向量速度或向量速度比率 增加 EndVel 的單軸運動位移 4-4 Revision November, 2011

159 第四章控制 API 二軸線性補間運動控制 API _DMC_01_start_tr_move_xy 參照 T-curve 速度剖面相對座標進行兩軸線性補間運動 _DMC_01_start_sr_move_xy 參照 S-curve 速度剖面相對座標進行兩軸線性補間運動 _DMC_01_start_ta_move_xy 參照 T-curve 速度剖面絕對座標進行兩軸線性補間運動 _DMC_01_start_sa_move_xy 參照 S-curve 速度剖面絕對座標進行兩軸線性補間運動 _DMC_01_start_v3_move_xy 增加 EndVel 的兩軸線性補間運動 二軸圓弧補間運動控制 API _DMC_01_start_tr_arc_xy 參照 T-curve 速度剖面相對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 角度 ) _DMC_01_start_sr_arc_xy 參照 S-curve 速度剖面相對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 角度 ) _DMC_01_start_ta_arc_xy 參照 T-curve 速度剖面絕對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 角度 ) _DMC_01_start_sa_arc_xy 參照 S-curve 速度剖面絕對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 角度 ) _DMC_01_start_tr_arc2_xy 參照 T-curve 速度剖面相對座標進行兩軸圓弧補間運動 ( 已知條件 : 終點座標 角度 ) _DMC_01_start_sr_arc2_xy 參照 S-curve 速度剖面相對座標進行兩軸圓弧補間運動 ( 已知條件 : 終點座標 角度 ) _DMC_01_start_ta_arc2_xy 參照 T-curve 速度剖面絕對座標進行兩軸圓弧補間運動 ( 已知條件 : 終點座標 角度 ) _DMC_01_start_sa_arc2_xy 參照 S-curve 速度剖面絕對座標進行兩軸圓弧補間運動 ( 已知條件 : 終點座標 角度 ) _DMC_01_start_tr_arc3_xy 參照 T-curve 速度剖面相對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 終點座標 ) _DMC_01_start_sr_arc3_xy 參照 S-curve 速度剖面相對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 終點座標 ) _DMC_01_start_ta_arc3_xy 參照 T-curve 速度剖面絕對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 終點座標 ) _DMC_01_start_sa_arc3_xy 參照 S-curve 速度剖面絕對座標進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 終點座標 ) _DMC_01_start_spiral_xy 兩軸螺旋運動 ( 已知條件 :X Y 軸中心座標 ) _DMC_01_start_spiral2_xy 兩軸螺旋運動 ( 已知條件 :X Y 軸中心座標,X Y 軸終點座標 ) _DMC_01_start_v3_arc_xy 增加 EndVel 的兩軸圓弧補間運動 ( 已知條件 : 中心座標 角度 ) _DMC_01_start_v3_arc2_xy 增加 EndVel 的兩軸圓弧補間運動 ( 已知條件 : 終點座標 角度 ) _DMC_01_start_v3_arc3_xy 增加 EndVel 的兩軸圓弧補間運動 ( 已知條件 : 中心座標 終點座標 ) _DMC_01_start_v3_spiral_xy 增加 EndVel 的兩軸螺旋運動 ( 已知條件 :X Y 軸中心座標 ) _DMC_01_start_v3_spiral2_xy 增加 EndVel 的兩軸螺旋運動 ( 已知條件 :X Y 軸中心座標,X Y 軸終點座標 ) Revision November,

160 第四章控制 API 三軸線性補間運動控制 API _DMC_01_start_tr_move_xyz 參照 T-curve 速度剖面相對座標進行三軸線性補間運動 _DMC_01_start_sr_move_xyz 參照 S-curve 速度剖面相對座標進行三軸線性補間運動 _DMC_01_start_ta_move_xyz 參照 T-curve 速度剖面絕對座標進行三軸線性補間運動 _DMC_01_start_sa_move_xyz 參照 S-curve 速度剖面絕對座標進行三軸線性補間運動 _DMC_01_start_v3_move_xyz 增加 EndVel 的三軸線性補間運動 三軸螺旋補間運動控制 API _DMC_01_start_tr_heli_xy 參照 T-curve 速度剖面相對座標進行三軸螺旋補間運動 _DMC_01_start_sr_heli_xy 參照 S-curve 速度剖面相對座標進行三軸螺旋補間運動 _DMC_01_start_ta_heli_xy 參照 T-curve 速度剖面絕對座標進行三軸螺旋補間運動 _DMC_01_start_sa_heli_xy 參照 S-curve 速度剖面絕對座標進行三軸螺旋補間運動 _DMC_01_start_v3_heli_xy 增加 EndVel 的三軸螺旋補間運動 速度運動控制 API _DMC_01_tv_move 參照 T-curve 速度剖面下的速度運動控制 _DMC_01_sv_move 參照 S-curve 速度剖面下的速度運動控制 同步運動控制 API _DMC_01_sync_move 設置開始運行同步運動 _DMC_01_sync_move_config 設置同步運動功能是否啟動 遠端擴充模組控制 API _DMC_01_get_rm_input_value 取得遠端擴充模組輸入埠 bit 0 到 bit 15 的值 _DMC_01_set_rm_input_filter 設定遠端擴充模組輸入埠的軟體濾波等級 _DMC_01_set_rm_input_filter_enable 設定遠端擴充模組輸入埠 bit 0 到 bit 15 軟體遮罩開啟 _DMC_01_set_rm_output_value 設定遠端擴充模組輸出埠 bit 0 到 bit 15 的值 _DMC_01_set_rm_output_value_error_handle 設定遠端擴充模組的發生錯誤時獲取的輸出值 _DMC_01_get_rm_output_value 取得遠端擴充模組的輸出值 _DMC_01_get_rm_output_value_error_handle 取得遠端擴充模組的輸出值, 在發生錯誤時, 系統是否將該值保留或重置 _DMC_01_set_rm_output_active 設定遠端擴充模組輸出是否啟動 電子手輪與 JOG 操作 API _DMC_01_set_rm_mpg_axes_enable 設定手輪運動控制 _DMC_01_set_rm_mpg_axes_enable2 手輪運動控制 ( 可設定馬達圈數比例分母值 ) _DMC_01_set_rm_jog_axes_enable 設定 JOG 運動控制 四組脈波介面專用 API _DMC_01_set_rm_04pi_ipulser_mode 設定脈波介面模組輸入相位模式 _DMC_01_set_rm_04pi_opulser_mode 設定脈波介面模組輸出相位模式 _DMC_01_set_rm_04pi_svon_polarity 設定 POWER ON(SVON) 的準位 _DMC_01_set_rm_04pi_DO2 設定 DO2 埠啟動 _DMC_01_set_rm_04pi_homing_ratio 原點復歸的額定扭力增量設置 _DMC_01_04pi_set_poweron 設定 POWER ON(SVON) 的啟用與否 _DMC_01_rm_04PI_get_buffer 取得仍未執行的運動命令 4-6 Revision November, 2011

161 第四章控制 API 四組脈波介面 ( 模式 1) 運動控制 API _DMC_01_rm_04pi_md1_start_move RM04PI 在模式 1 下, 進行單軸運動位移 _DMC_01_rm_04pi_md1_v_move RM04PI 在模式 1 下, 進行速度運動控制 _DMC_01_rm_04pi_md1_start_line2 RM04PI 在模式 1 下, 進行兩軸線性補間運動 _DMC_01_rm_04pi_md1_start_line3 RM04PI 在模式 1 下, 進行三軸線性補間運動 _DMC_01_rm_04pi_md1_start_line4 RM04PI 在模式 1 下, 進行四軸線性補間運動 _DMC_01_rm_04pi_md1_start_arc RM04PI 在模式 1 下, 進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 角度 ) _DMC_01_rm_04pi_md1_start_arc2 RM04PI 在模式 1 下, 進行兩軸圓弧補間運動 ( 已知條件 : 終點座標 角度 ) _DMC_01_rm_04pi_md1_start_arc3 RM04PI 在模式 1 下, 進行兩軸圓弧補間運動 ( 已知條件 : 中心座標 終點座標 ) _DMC_01_rm_04pi_md1_start_heli RM04PI 在模式 1 下, 進行三軸螺旋補間運動 _DMC_01_rm_04pi_md1_p_change RM04PI 在模式 1 下, 將設定的新位置值替換目前的位置 _DMC_01_rm_04pi_md1_v_change RM04PI 在模式 1 下, 將設定的新速度值替換目前的速度 _DMC_01_rm_04pi_md1_set_gear RM04PI 在模式 1 下, 設定 Gear 功能啟動與其參數設置 _DMC_01_rm_04pi_md1_set_soft_limit RM04PI 在模式 1 下, 設定是否啟動軟體極限 _DMC_01_rm_04pi_md1_get_soft_limit_status RM04PI 在模式 1 下, 取得目前 4 軸碰撞軟體極限的狀態 _DMC_01_rm_04pi_md1_set_sld 設定 SLD 埠 (DI3) 開啟與其相關配置 _DMC_01_rm_04pi_md1_get_mc_error_code 當 alarm code 為 299 時, 取得該 RM04PI 在模式 1 下, 發生運動控制錯誤的訊息 _DMC_01_set_rm_04pi_ref_counter RM04PI 在模式 1 下, 選擇重新連線參考的位置 四組類比輸出遠端擴充模組 API _DMC_01_rm_04da_set_output_value 設定 DA 輸出數值 _DMC_01_rm_04da_get_output_value 讀取 DA 輸出數值 _DMC_01_rm_04da_get_return_code 讀取 DA 狀態值 _DMC_01_rm_04da_set_output_range 設定 DA 輸出範圍 _DMC_01_rm_04da_set_output_enable 設定腳位輸出開啟 / 關閉 _DMC_01_rm_04da_set_output_overrange 設定輸出範圍增加 10% _DMC_01_rm_04da_set_output_error_clear 清除錯誤狀態 _DMC_01_rm_04da_read_data 取得目前 DA 設定的數值 _DMC_01_rm_04da_set_output_error_handle 斷線保持 DA 原本設定狀態 _DMC_01_rm_04da_set_output_offset_value 設定 DA offset 數值 _DMC_01_rm_04da_get_output_offset_value 讀取 DA offset 數值 四組類比輸入遠端擴充模組 API Revision November,

162 第四章控制 API _DMC_01_set_04ad_input_range _DMC_01_get_04ad_input_range _DMC_01_set_04ad_zero_scale _DMC_01_get_04ad_zero_scale_status _DMC_01_set_04ad_full_scale _DMC_01_get_04ad_full_scale_status _DMC_01_set_04ad_conversion_time _DMC_01_get_04ad_conversion_time _DMC_01_get_04ad_data _DMC_01_set_04ad_average_mode _DMC_01_get_04ad_average_mode _DMC_01_set_04ad_input_enable Slave 資訊 _DMC_01_get_devicetype _DMC_01_get_slave_version 監控參數 API _DMC_01_set_monitor _DMC_01_get_monitor _DMC_01_get_servo_command _DMC_01_get_servo_DI _DMC_01_get_servo_DO 警報訊息 API _DMC_01_set_ralm _DMC_01_get_alm_code _DMC_01_master_alm_code _DMC_01_slave_error 多軸運動控制 API _DMC_01_multi_axes_move _ DMC_01_liner_speed_master _DMC_01_start_v3_multi_axes 緩衝區操作 API _DMC_01_set_trigger_buf_function Interrupt API _DMC_01_set_int_factor _DMC_01_int_enable _DMC_01_int_disable _DMC_01_get_int_count _DMC_01_get_int_status 設定 AD 的 Input 範圍取得目前 AD 的 Input 設定範圍設定 AD 零點準位, 作為範圍校正使用判斷 AD 零點準位是否校正完成設定 AD 最大準位, 作為範圍校正使用判斷 AD 最大準位是否校正完成設定 AD 轉換速度取得目前 AD 所設定的轉換速度讀取輸入之電壓數值設定 AD 平均功能之模式讀取 AD 平均功能之模式設定 AD Channel 是否致能 Input 獲取 slave 裝置類型獲取 slave 裝置韌體版本設定欲監控的參數取得監控的參數獲取的值取得伺服驅動器發送的命令值取得伺服驅動器 DI 訊號的值取得伺服驅動器 DO 訊號的值輸出的伺服驅動器警示訊息重置取得 Slave 的錯誤資訊取得 Master Card 連線的錯誤資訊取得 slave 通訊中連續錯誤次數設置 2 軸以上的運動控制多軸直線運動運動速度設定增加 EndVel 的多軸 (2 軸以上 ) 的運動控制使用 DI3(SLD) 觸發, 以取得緩衝區資料設定中斷模式, 共有 8 種模式 中斷設定致能 中斷設定解除 中斷累計次數查詢目前設定中斷的模式 4-8 Revision November, 2011

163 _DMC_01_Link_interrupt Security API _DMC_01_read_security _DMC_01_read_security_status _DMC_01_write_security _DMC_01_write_security_status _DMC_01_check_userpassword _DMC_01_write_ userpassword _DMC_01_check_verifykey _DMC_01_write_ verifykey _DMC_01_read_serialno _misc_slave_check_userpasswaord _misc_slave_write_userpasswaord _misc_slave_get_serialno _misc_security _misc_slave_write_verifykey _misc_slave_check_verifykey _misc_slave_user_data_buffer_read _misc_slave_user_data_buffer_write _misc_slave_user_data_to_flash 極限反向 API _DMC_01_rm_04pi_set_MEL_polarity _DMC_01_rm_04pi_get_MEL_polarity _DMC_01_rm_04pi_set_PEL_polarity _DMC_01_rm_04pi_get_PEL_polarity Compare API _DMC_01_set_compare_channel_position _DMC_01_get_compare_channel_position _DMC_01_set_compare_ipulser_mode _DMC_01_set_compare_channel_direction _DMC_01_set_compare_channel_trigger_time _DMC_01_set_compare_channel_one_shot _DMC_01_set_compare_channel_source _DMC_01_channel0_position_cmp _DMC_01_channel1_output_enable 第四章控制 API 連結一處理程序, 當設定之中斷發生就導入處理 Master Card 讀取指定記憶體區塊中的安全驗證資料 Master Card 獲取目前的記憶體是處於讀 / 寫的狀態 Master Card 將指定的安全資料寫入指定的記憶體區塊 Master Card 寫入安全資料前, 將記憶體寫入功能致能 Master Card 確認使用者對 Memory 讀 / 寫的權限 Master Card 變更密碼 Master Card 驗證碼驗證 Master Card 寫入驗證碼 Master Card 讀取產品序號 Slave(04PI) 確認使用者對 Memory 讀 / 寫的權限 Slave(04PI) 變更密碼 Slave(04PI) 讀取產品序號使用者 Key+SerialNo 經加密產生驗證碼 Slave(04PI) 寫入驗證碼 Slave(04PI) 驗證碼驗證 Slave(04PI) 讀取指定記憶體區塊中的資料 Slave(04PI) 將指定的資料寫入指定的記憶體區塊 Slave(04PI) 將資料由 Bufeer 寫入 Flash 中設定負極限正向 / 反向取得負極限目前的狀態設定正極限正向 / 反向取得正極限目前的狀態設定該 Channel 新的 Position 計數值讀取該 Channel 目前的 Position 計數值設定脈波介面模組輸入相位模式設定該 Channel 脈波方向設定 Trigger 致能持續時間設定為執行一次 Trigger 致能狀態設定其比較來源執行 Compare Type 為 Compare0 設定 Compare1 輸出開啟 / 關閉 Revision November,

164 第四章控制 API _DMC_01_channel1_output_mode Compare1 設定輸出模式 _DMC_01_channel1_get_io_status 讀取 Compare1 狀態 _DMC_01_channel1_set_gpio_out 設置 GPIO 輸出腳位狀態 _DMC_01_channel1_position_compare_table Compare1 設定一般 Compare 相關資料 _DMC_01_channel1_position_compare_table_level _DMC_01_channel1_position_compare_table_cnt _DMC_01_set_compare_channel_polarity _DMC_01_channel0_position_cmp_by_gpio _DMC_01_channel1_position_re_compare_table _DMC_01_channel1_position_re_compare_table_level 直線 圓弧補間運動控制 API _DMC_01_start_rline_xy _DMC_01_start_rline_xyz _DMC_01_start_v3_rline_xy _DMC_01_start_v3_rline_xyz 連續速度 API Compare1 設定自訂 Compare 相關資料讀取已 Compare 計數次數設定 Compare 的準位設定 Compare 的觸發條件由 GPIO 控制用上次的 Compare 條件, 重新執行一次 Channel1 的 Compare 用上次的 Compare 條件, 重新執行一次 Channel1(Level 模式 ) 的 Compare 兩軸直線 圓弧 R 角補間運動控制三軸直線 圓弧 R 角補間運動控制增加 EndVel 的兩軸直線 圓弧補間運動控制增加 EndVel 的三軸直線 圓弧補間運動控制 _DMC_01_speed_continue 獲取圓弧補間所需之終點座標 (X, Y) _DMC_01_speed_continue_mode 獲取圓弧補間所需之中心座標 (X, Y) _DMC_01_speed_continue_combine_ratio Debug 記錄功能是否啟動 其它 API _misc_app_get_circle_endpoint 獲取圓弧補間所需之終點座標 (X, Y) _misc_app_get_circle_center_point 獲取圓弧補間所需之中心座標 (X, Y) _misc_set_record_debuging Debug 記錄功能是否啟動 _misc_open_record_debuging_file 設置輸出 Debug 記錄存放位置 _DMC_01_enable_dda_mode 啟動 DDA 填表功能 _DMC_01_set_dda_data 填入 DDA Table 資料 _DMC_01_get_dda_cnt 取得目前 DDA Table 尚存的資料筆數 4-10 Revision November, 2011

165 第五章硬體初始化 API 第五章硬體初始化 API 函數名稱 _DMC_01_open _DMC_01_close _DMC_01_get_CardNo_seq _DMC_01_pci_initial _DMC_01_get_card_version 表 5.1 描述當應用程式啟動時, 初始化系統資源釋放所有系統資源取得主機上所有 PCI-DMC-A01 介面卡號初始此 PCI 介面卡取得軸卡版號 Revision November,

166 第五章硬體初始化 API 5.1 _DMC_01_open I16 PASCAL _DMC_01_open (I16* existcard) 當應用程式啟動時, 初始化系統資源 參數 名稱 資料型別 單位 描述 Existcard I16* 片 取得系統中掛載之該介面卡數量 I16 existcards; I16 status = _DMC_01_open (&existcards); 5.2 _DMC_01_close Void PASCAL _DMC_01_close () 釋放所有系統資源 參數 無引用的參數 U16 CardNo=0; _DMC_01_close (); 5-2 Revision November, 2011

167 第五章硬體初始化 API 5.3 _DMC_01_get_CardNo_seq I16 PASCAL _DMC_01_get_CardNo_seq(U16 CardNo_seq,U16* CardNo) 取得主機上所有 PCI-DMC-A01 介面卡號 參數名稱 資料型別 單位 描述 CardNo_seq U16 編號單位 序列數 CardNo U16* 編號單位 介面卡號 CardNo 為 0~15, 藉由 SW1 設置 /* 當僅一張 PCI-DMC-A01 於主機上, 且 SW1 設置為 3, 此時取得該介面卡號為 3 當兩張或多張 PCI-DMC-A01 接於主機時, 介面卡號將依系統掃描到之第 1 張 PCI-DMC-A01 介面卡上 SW1 的值, 並依序取得其它介面卡的卡號 SW1 的設置, 請參閱 PCI-DMC-A01 使用手冊 - 第 節敘述 */ 一張 PCI-DMC-A01 安裝於主機時 : U16 CardNo_seq = 0; U16 CardNo; U16 status = _DMC_01_get_CardNo_seq(CardNo_seq, &CardNo); 兩張或多張 PCI-DMC-A01 安裝於主機時 : U16 CardNo_seq = 0; U16 CardNo; U16 status; I16 existcards; // 此 existcards 的值參閱 _DMC_01_open 的 API, 詳述參閱程式手冊第 5.1 節 for(cardno_seq=0; CardNo_seq <existcards; CardNo_seq ++) { status = _DMC_01_get_CardNo_seq(CardNo_seq, &CardNo); } Revision November,

168 第五章硬體初始化 API 5.4 _DMC_01_pci_initial I16 PASCAL _DMC_01_pci_initial (U16 CardNo) 初始此 PCI 介面卡 參數 名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 U16 CardNo = 0; _DMC_01_pci_initial (CardNo); 5.5 _DMC_01_get_card_version I16 PASCAL _DMC_01_get_card_version (U16 CardNo, U16 *ver) 取得軸卡版號 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 Ver U16* 數值單位 軸卡版號資料 0X6x 是 PCI_DMC_A01 0X7x 是 PCI_DMC_B01 PCI_DMC_A01 軸卡版號 0x64 開始提供 GPIO 為 Input x 8/Output x 4 U16 CardNo = 0; U16 ver; _ DMC_01_get_card_version (CardNo,&ver); 5-4 Revision November, 2011

169 第六章介面卡操作 API 第六章介面卡操作 API 函數名稱 _DMC_01_initial_bus _DMC_01_start_ring _DMC_01_get_device_table _DMC_01_get_node_table _DMC_01_check_card_running _DMC_01_reset_card _DMC_01_check_nodeno _DMC_01_get_master_connect_status _DMC_01_get_mailbox_Error _DMC_01_get_mailbox_cnt _DMC_01_get_dsp_cnt _DMC_01_set_dio_output _DMC_01_get_dio_output _DMC_01_get_dio_input _DMC_01_get_cycle_time 表 6.1 描述初始外部匯流排 (External Bus) 起始 ring 的通訊取得裝置列表取得站號列表查驗該介面卡是否有被啟用重置該介面卡查驗該站號是否已存在取得 Master Card 與擴充模組目前的連線狀態取得 MailBox 報錯的次數取得 MailBox 計數值取得中斷計數值設置 GPIO 輸出腳位狀態取得 GPIO 輸出腳位狀態取得 GPIO 輸入腳位狀態取得當前查找裝置的循環時間 Revision February,

170 第六章介面卡操作 API 6.1 _DMC_01_initial_bus I16 PASCAL _DMC_01_initial_bus (U16 CardNo) 初始外部匯流排 (External Bus) 參數 名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 U16 CardNo = 0; I16 status = _DMC_01_initial_bus (CardNo); 6.2 _DMC_01_start_ring I16 PASCAL _DMC_01_start_ring (U16 CardNo, U8 RingNo) 起始 ring 的通訊 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 RingNo U8 編號單位 欲運行的 Ring 編號 U16 CardNo = 0; U8 RingNo = 0; I16 status = _DMC_01_start_ring (CardNo, RingNo); 6-2 Revision February, 2012

171 第六章介面卡操作 API 6.3 _DMC_01_get_device_table I16 PASCAL _DMC_01_get_device_table (U16 CardNo, U16* value) 取得裝置列表 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 value U16* 編號單位 裝置編號列表 U16 CardNo=0; U16 value=0; I16 status = _DMC_01_get_device_table (CardNo, &value); 6.4 _DMC_01_get_node_table I16 PASCAL _DMC_01_get_node_table (U16 CardNo, U32* NodeIDTable) 取得站號列表 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeIDTable U32* 編號單位 站號列表 U16 CardNo=0; U32 NodeIDTable=0; I16 status= _DMC_01_get_node_table( CardNo, &NodeIDTable); Revision February,

172 第六章介面卡操作 API 6.5 _DMC_01_check_card_running I16 PASCAL _DMC_01_check_card_running (U16 CardNo, U16* running) 查驗該介面卡是否有被啟用 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 running U16* 選項單位 0: 沒有被執行 1:: 已經被執行 U16 CardNo=0; U16 running=0; I16 status= _DMC_01_check_card_running (CardNo, &running) 6.6 _DMC_01_reset_card I16 PASCAL _DMC_01_reset_card (U16 CardNo) 重置該介面卡 參數 名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 U16 CardNo=0; I16 status = _DMC_01_reset_card (CardNo); 6-4 Revision February, 2012

173 第六章介面卡操作 API 6.7 _DMC_01_check_nodeno I16 PASCAL _DMC_01_check_nodeno(U16 CardNo, U16 NodeID,U16 SlotID,U16* exist) 查驗該站號是否已存在 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID exist U16* 選項單位 0: 站號不存在 1: 站號已存在 U16 CardNo=0; U16 NodeID =1; U16 SlotID =0; // 插槽 ID 值設定為 0, 表示操作的 slave 為伺服驅動器 U16 exist =0; I16 status= _DMC_01_check_nodeno (CardNo, NodeID, SlotID, &exist); Revision February,

174 第六章介面卡操作 API 6.8 _DMC_01_get_master_connect_status I16 PASCAL _DMC_01_get_master_connect_status (U16 CardNo, U16* Protocol) 取得 Master Card 與擴充模組目前的連線狀態 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 Protocol U16* 選項單位 1: 未接 Node1 模組 3: 與模組 Node1 連線正常 4: 與模組 Node1 斷線 U16 CardNo=0; U16 Protocol =0; I16 status = _DMC_01_get_master_connect_status (CardNo, &Protocol); 6-6 Revision February, 2012

175 第六章介面卡操作 API 6.9 _DMC_01_get_mailbox_Error I16 PASCAL _DMC_01_get_mailbox_Error (U16 CardNo, U32* error_cnt) 取得 MailBox 報錯的次數 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 error_cnt U32* 編號單位 MailBox 報錯的計數值 U16 CardNo=0; U32 error_cnt =0; I16 status= _DMC_01_get_mailbox_Error (CardNo, &error_cnt); 6.10 _DMC_01_get_mailbox_cnt I16 PASCAL _DMC_01_get_mailbox_cnt (U16 CardNo, U32* PC_cnt, U32* DSP_cnt) 取得 MailBox 計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 PC_cnt U32* 次數 由 PC 端取得的 MailBox 計數值 DSP_cnt U32* 次數 由 DSP 端取得的 MailBox 計數值 U16 CardNo = 0; U32 PC_cnt = 0, DSP_cnt = 0; I16 status = _DMC_01_get_mailbox_cnt (CardNo, &PC_cnt, &DSP_cnt); Revision February,

176 第六章介面卡操作 API 6.11 _DMC_01_get_dsp_cnt I16 PASCAL _DMC_01_get_dsp_cnt (U16 CardNo, U32* int_cnt, U32* main_cnt) 取得中斷計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 int_cnt U32* 次數 當通訊建構時發出的中斷計數值 main_cnt U32* 次數 當 DSP 建構時發出的中斷計數值 U16 CardNo=0; U32 int_cnt =0, main_cnt=0; I16 status= _DMC_01_get_dsp_cnt (CardNo, &int_cnt, &main_cnt); 6-8 Revision February, 2012

177 第六章介面卡操作 API 6.12 _DMC_01_set_dio_output I16 PASCAL _DMC_01_set_dio_output (U16 CardNo, U16 On_Off) 設置 GPIO 輸出腳位狀態 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 On_Off U16 選項單位 0: 關閉 1: 開啟 U16 CardNo=0; U16 On_Off =1; I16 status= _DMC_01_set_dio_output (CardNo, On_Off); 6.13 _DMC_01_get_dio_output I16 PASCAL _DMC_01_get_dio_output (U16 CardNo, U16* On_Off) 取得 GPIO 輸出腳位狀態 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 On_Off U16* 選項單位 0: 關閉 1: 開啟 U16 CardNo = 0; U16 On_Off = 0; I16 status = _DMC_01_get_dio_output (CardNo, &On_Off); Revision February,

178 第六章介面卡操作 API 6.14 _DMC_01_get_dio_input I16 PASCAL _DMC_01_get_dio_input (U16 CardNo, U16* On_Off) 取得 GPIO 輸入腳位狀態 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 On_Off U16* 選項單位 0: 關閉 1: 開啟 U16 CardNo=0; U16 On_Off =0; I16 status= _DMC_01_get_dio_input (CardNo, &On_Off); 6-10 Revision February, 2012

179 第六章介面卡操作 API 6.15 _DMC_01_get_cycle_time I16 PASCAL _DMC_01_get_cycle_time (U16 CardNo, I32 *time) 取得當前查找裝置的循環時間, 該時間必須小於 1000us 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 time I32* 數值單位 該 time 的值必須小於 1000 U16 CardNo=0; I32 tasktime=0; /* 取得裝置的循環時間, tasktime 的值必須小於 1000 */ I16 status= _DMC_01_get_cycle_time (CardNo, &tasktime); 6.16 _DMC_01_initial_bus2 I16 PASCAL _DMC_01_initial_bus2 ( ) 初始外部所有匯流排 (External Bus) 參數 此函式無任何參數 I16 status= _DMC_01_initial_bus2 ( ); Revision February,

180 第六章介面卡操作 API 6.17 _DMC_01_motion_cnt I16 PASCAL _DMC_01_motion_cnt (U16 CardNo, U16 NodeID, U16 SlotID, U16 *pc_mc_cnt, U16 *dsp_mc_cnt) 取得 MailBox 及 DSP 計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID pc_mc_cnt U16* 數值單位 PC 端入 MailBox Command 總數值 dsp_mc_cnt U16* 數值單位 DSP 由 MailBox 取得 Command 總數值 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U16 pc_mc_cnt; U16 dsp_mc_cnt; I16 status= _DMC_01_motion_cnt (CardNo, NodeID, SlotID, &pc_mc_cnt, &pc_mc_cnt); 6-12 Revision February, 2012

181 第七章伺服驅動器參數讀取 / 寫入 API 第七章伺服驅動器參數讀取 / 寫入 API 函數名稱 _DMC_01_read_servo_parameter _DMC_01_write_servo_parameter 表 7.1 描述讀取伺服驅動器參數資料寫入伺服驅動器參數資料 Revision November,

182 第七章伺服驅動器參數讀取 / 寫入 API 7.1 _DMC_01_read_servo_parameter I16 PASCAL _DMC_01_read_servo_parameter (U16 CardNo, U16 NodeID, U16 SlotID, U16 group,u16 idx,u32* data) 讀取伺服驅動器參數資料 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID group U16 數值 裝置 ( 驅動器 ) 群組編號 idx U16 數值 驅動器參數群組的索引值 data U32* 數值 該群組索引所傳回的資料 U16 CardNo=0; U16 NodeID =1; U16 SlotID = 0; U16 group = 3; U16 idx = 0; // 當您設定此例的群組與索引值, 表示您欲讀取驅動器參數 P3-00 U32 data; I16 status= _DMC_01_read_servo_parameter(CardNo, NodeID, SlotID, group, idx, &data); 7-2 Revision November, 2011

183 7.2 _DMC_01_write_servo_parameter 第七章伺服驅動器參數讀取 / 寫入 API I16 PASCAL _DMC_01_write_servo_parameter (U16 CardNo, U16 NodeID, U16 SlotID, U16 group,u16 idx,u32 data) 寫入伺服驅動器參數資料 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID group U16 數值 裝置 ( 驅動器 ) 群組編號 idx U16 數值 驅動器參數群組的索引值 data U32 數值 欲寫入該群組索引的資料 U16 CardNo=0; U16 NodeID =1; U16 SlotID = 0; U16 group = 3; U16 idx = 0; // 當您設定此例的群組與索引值, 表示您將把資料寫入驅動器參數 P3-00 U32 data = 1; I16 status= _DMC_01_write_servo_parameter(CardNo, NodeID, SlotID, group, idx, data); Revision November,

184 第七章伺服驅動器參數讀取 / 寫入 API ( 此頁有意留為空白 ) 7-4 Revision November, 2011

185 第八章使用 SDO 協定 API 第八章使用 SDO 協定 API 表 8.1 函數名稱 描述 _DMC_01_check_canopen_lock SDO 模式下, 檢查是否可以再執行下一筆命令 _DMC_01_get_canopen_ret 取得 CANopen 傳回的資訊 (SDO 相關數據 ) _DMC_01_set_pdo_mode 設置使用的 CANopen 協定 (PDO 或 SDO) _DMC_01_send_message 發送 SDO 命令信息至資料緩衝區 _DMC_01_send_message3 發送 SDO 命令信息至資料緩衝區, 但發出命令後立即離開資料緩衝區 _DMC_01_read_message 讀取最後一筆 SDO 命令信息至資料緩衝區 _DMC_01_read_message2 讀取最後一筆 SDO 命令信息至資料緩衝區, 並傳回已完成的次數值 _DMC_01_get_message 取得 SDO 命令信息至資料緩衝區 _DMC_01_reset_sdo_choke 當 SDO 命令因故阻塞時, 重置 SDO _DMC_01_get_sdo_retry_history 取得 SDO 重新發送的次數 Revision November,

186 第八章使用 SDO 協定 API 8.1 CANopen SDO 協定 CANopen 的 SDO 封包範列 1 Index 讀取 / 寫入成功 當讀取 Index 為 成功, 該封包傳回值如下表 : 表 8.2 欄位名稱 Datatype Index low Index high Sub index Data1 Data2 Data3 Data4 命令 0x40 0x64 0x60 0x00 0x00 0x00 0x00 0x00 回傳 0x43 0x64 0x60 0x00 0x11 0x22 0x33 0x44 表格說明 : (1) 讀取 Feedback PUU( 此時 CANopen 的 Index 值填入 0x6064,SubIdx 值填入 0x00) (2) 當 Datatype 值填入 0x40, 表示讀取 (3) 隨後回傳的 Datatype 值為 0x43, 若回傳之 Datatype 值為 0x43 表示收到的資料為 32bit [Data1~Data4 均為有效 ], 值為 0x4b 表示收到的資料為 16bit [Data1~Data2 有效 ], 值為 0x4f 表示收到的資料為 8bit [Data1 有效 ] (4) Data1~Data4 的欄位為低 Word 優先讀取, 而無效的高位 Data 則為 0, 因此上述表格陳列之回傳值表示收到的 Feedback PUU 為 0x 當寫入 Index 為 成功, 該封包傳回值如下表 : 表 8.3 欄位名稱 Datatype Index low Index high Sub index Data1 Data2 Data3 Data4 命令 0x2b 0x40 0x60 0x00 0x08 0x00 0x00 0x00 回傳 0x60 0x40 0x60 0x00 0x00 0x00 0x00 0x00 表格說明 : (1) 寫入控制碼 ControlWord( 此時 CANopen 的 Index 值填入 0x6040,SubIdx 的值填入 0x00) (2) Datatype 填入 0x2b, 表示寫入 (3) 若填入 Datatype 的值為 0x23 表示寫入的資料為 32bit [Data1~Data4 均為有效 ], 填入值為 0x2b 表示寫入的資料為 16bit [Data1~Data2 有效 ], 填入值為 0x2f 表示寫入的資料為 8bit [Data1 有效 ] (4) 其回傳的 Datatype 值為 0x60, 表示寫入成功 ; 此時回傳的 Data1~Data4 無意義 (5) Data1~Data4 的欄位為低 Word 優先, 而無效的高位 Data 請以 0 遞補 因此上述陳列之回傳值表示寫入的控制碼 ControlWord 為 0x (6) 該 Index 的資料長度請參考台達 ASDA-A2 CANopen Technical Guide 8-2 Revision November, 2011

187 第八章使用 SDO 協定 API CANopen 的 SDO 封包範列 2 Index 讀取 / 寫入失敗 當讀取 Index 為 失敗 ( 即查無此索引 ), 該封包傳回值如下表 : 表 8.4 欄位名稱 Datatype Index low Index high Sub index Data1 Data2 Data3 Data4 命令 0x40 0x59 0x60 0x00 0x00 0x00 0x00 0x00 回傳 0x80 0x59 0x60 0x00 0x00 0x00 0x02 0x06 表格說明 : (1) 讀取一個無效的索引 ( 此時 CANopen 的 Index 值填入 0x6059,SubIdx 的值填入 0x00) (2) 當 Datatype 值填入 0x40, 表示讀取 (3) 當驅動器內無此索引, 故此讀取失敗, 隨後回傳的 Datatype 值為 0x80, 表示回傳讀取失敗 (4) 上表格欄位表示回傳之 Data1~Data4 組成的資料為 0x [ 無此索引 ] 錯誤碼 (5) 詳細說明, 請參考台達 ASDA-A2 CANopen Technical Guide 中的 SDO Abort Code 當寫入 Index 為 失敗 ( 即寫入的數值超出設置範圍 ), 該封包傳回值如下表 : 表 8.5 欄位名稱 Datatype Index low Index high Sub index Data1 Data2 Data3 Data4 命令 0x2f 0x60 0x60 0x00 0x0F 0x00 0x00 0x00 回傳 0x80 0x60 0x60 0x00 0x30 0x00 0x09 0x06 表格說明 : (1) 寫入操作模式 ( 此時 CANopen 的 Index 值填入 0x6060,SubIdx 的值填入 0x00) (2) Datatype 填入 0x2f, 表示寫入的資料為 8bit [Data1 有效 ] (3) 因操作模式的範圍為 0x00~0x07, 故此命令寫入失敗, 隨後回傳的 Datatype 值為 0x80, 表示回傳寫入失敗 (4) 上表格欄位表示回傳之 Data1~Data4 組成的資料為 0x [ 寫入數值超出範圍 ] 錯誤碼 (5) 該 index 的資料長度請參考台達 ASDA-A2 CANopen Technical Guide 其它詳細說明, 請參考台達 ASDA-A2 CANopen Technical Guide 中的 SDO Abort Code. Revision November,

188 第八章使用 SDO 協定 API CANopen 的 SDO 封包範列 3 讀取 / 寫入 ASDA-A2 參數 當欲讀取 ASDA-A2 參數, 該封包傳回值如下表 : 表 8.6 欄位名稱 Datatype Index low Index high Sub index Data1 Data2 Data3 Data4 命令 0x40 0x00 0x23 0x00 0x00 0x00 0x00 0x00 回傳 0x4b 0x00 0x23 0x00 0x7F 0x00 0x00 0x00 表格說明 : (1) 可用標準 CANopen SDO 讀取 A2 參數 (2) P3-00[ 站號 ] (CANopen 的 Index 值填入 0x2300 SubIdx 的值填入 0x00) :P- [ 驅動器參數 ] 0x2 [Index 值 ] ( 為 的 16 進制表示 ) 即若 Index 值設置為 0x2300, 表示讀取 P3-00 的參數若 Index 值設置為 0x212D, 表示讀取 P1-45 的參數 (2D 為 45 的 16 進制表示 ) (3) SubIdx 的值均為 0x00 當欲寫入 ASDA-A2 參數, 該封包傳回值如下表 : 表 8.7 欄位名稱 Datatype Index low Index high Sub index Data1 Data2 Data3 Data4 命令 0x2b 0x00 0x23 0x00 0x7F 0x00 0x00 0x00 回傳 0x60 0x00 0x23 0x00 0x00 0x00 0x00 0x00 表格說明 : (1) 可用標準 CANopen SDO 寫入 A2 參數 (2) P3-00[ 站號 ] (CANopen 的 Index 值填入 0x2300 SubIdx 的值填入 0x00) :P- [ 驅動器參數 ] 0x2 [Index 值 ] ( 為 的 16 進制表示 ) (3) SubIdx 的值均為 0x00 (4) ASDA-A2 參數的資料長度為 16bit 或 32bit (5) 您可參考 ASDA-A2 的 EDS 檔, 尋找對應參數 Index 的 DataType 若 DataType 為 3, 此時資料長度為 16bit, 命令寫入的 DataType 應填入值為 0x2b 若 DataType 為 4, 此時資料長度為 32bit, 命令寫入的 DataType 應填入值為 0x Revision November, 2011

189 第八章使用 SDO 協定 API 8.2 _DMC_01_check_canopen_lock I16 PASCAL _DMC_01_check_canopen_lock (U16 CardNo, U16 *lock) 在 SDO 模式下, 檢查是否可以再執行下一筆命令 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 lock U16* 選項單位 0: 未栓鎖, 可執行下一筆命令 1: 已栓鎖, 須等候目前命令執行完成 U16 CardNo=0; U16 lock; I16 status = _DMC_01_check_canopen_lock (CardNo, &lock); Revision November,

190 第八章使用 SDO 協定 API 8.3 _DMC_01_get_canopen_ret I16 PASCAL _DMC_01_get_canopen_ret (U16 CardNo, U16* COBID, U8* value) 取得 CANOPEN 傳回的資訊 (SDO 相關數據 ) 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 COBID U16* 數值 CAN 物件的 ID value U8* 數值 物件的數據內文 Value[0]:SDO 信息回覆數據內文長度為 32-bit, 值為 43 數據內文長度為 16-bit, 值為 4b 數據內文長度為 8-bit, 值為 4f 數據寫入成功, 值為 60 報錯, 值為 80 Value[1]:Index( 低位元組 ) Value[2]:Index( 高位元組 ) Value[3]:Subindex Value[4]:Data low word( 低位元組 ) Value[5]:Data low word( 高位元組 ) Value[6]:Data high word( 低位元組 ) Value[7]:Data high word( 高位元組 ) U16 CardNo=0; U16 COBID=0; U8 value[8]={0}; I16 status= _DMC_01_get_canopen_ret (CardNo, &COBID, value); 8-6 Revision November, 2011

191 第八章使用 SDO 協定 API 8.4 _DMC_01_set_pdo_mode I16 PASCAL _DMC_01_set_pdo_mode (U16 CardNo, U16 NodeID, U16 SlotID, U16 Enable) 設置使用的 CANopen 協定 (PDO 或 SDO) 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Enable U16 選項單位 0: PDO 關閉 PDO, 使用 SDO 1: PDO 開啟 PDO U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; // 插槽 ID 值設定為 0, 表示操作的 slave 為伺服驅動器 U16 Enable=1; I16 status= _DMC_01_set_pdo_mode (CardNo, NodeID, SlotID, Enable); Revision November,

192 第八章使用 SDO 協定 API 8.5 _DMC_01_send_message I16 PASCAL _DMC_01_send_message (U16 CardNo, U16 NodeID,U16 SlotID, U16 Index,U16 SubIdx,U16 DataType,U16 Value0,U16 Value1,U16 Value2,U16 Value3) 發送 SDO 命令信息至資料緩衝區 ( 此 API 函式會等待發送命令完成才離開 ) 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Index U16 數值 物件字典的索引值 SubIdx U16 數值 物件字典的子索引值 DataType U16 數值 物件字典的資料類型 Value0 U16 信息緩衝區 ( 數據 1) index( 低位元組 ), 數值 CMD ( 高位元組 ) Value1 U16 信息緩衝區 ( 數據 2) Sub-Idx ( 高位元組 ), 數值 index 高位 ( 低位元組 ) Value2 U16 數值 信息緩衝區 ( 數據 3) 數據 ( 低位元 ) Value3 U16 數值 信息緩衝區 ( 數據 4) 數據 ( 高位元 ) /* CardNo:Card No;NodeID: 站號 ID;SlotID: 插槽 ID; Index:SDO 索引值 ; SubIdx: SDO 子索引值 ; DataType:( 讀取命令 ) 讀取數據資料, 填入值 0x40; ( 寫入命令 ) 寫入 8-bit 資料, 填入值 0x2f;( 寫入命令 ) 寫入 16-bit 資料, 填入值 0x2b;( 寫入命令 ) 寫入 32-bit 資料, 填入值為 0x23; Value0:SDO data low word( 低位元組 ), Value1:SDO data low word( 高位元組 ); Value2:SDO data high word( 低位元組 ), Value3:SDO data high word( 高位元組 ); */ U16 CardNo=0, NodeID=1, SlotID=0; U16 Index=0x6060, SubIdx=0, DataType=0x2f, value0=0x1, value1=0, value2=0, value3=0; I16 status= _DMC_01_send_message (CardNo, NodeID, SlotID, Index, SubIdx, DataType, value0, value1, value2, value3); 8-8 Revision November, 2011

193 第八章使用 SDO 協定 API 8.6 _DMC_01_send_message3 I16 _DMC_01_send_message3 (I16 CardNo, U16 Index,U16 SubIdx,U16 DataType, U16 Value0,U16 Value1,U16 Value2,U16 Value3) 發送 SDO 命令信息至資料緩衝區, 但發出命令後立即離開資料緩衝區 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 Index U16 數值 物件字典的索引值 SubIdx U16 數值 物件字典的子索引值 DataType U16 數值 物件字典的資料類型 Value0 U16 信息緩衝區 ( 數據 1) index( 低位元組 ), 數值 CMD ( 高位元組 ) Value1 U16 信息緩衝區 ( 數據 2) Sub-Idx ( 高位元組 ), 數值 index 高位 ( 低位元組 ) Value2 U16 數值 信息緩衝區 ( 數據 3) 數據 ( 低位元 ) Value3 U16 數值 信息緩衝區 ( 數據 4) 數據 ( 高位元 ) U16 CardNo=0; U16 lock; U16 Index=0x6060, SubIdx=0, DataType=0x2f, value0=0x1, value1=0, value2=0, value3=0; I16 status= _DMC_01_send_message3 (CardNo, Index, SubIdx, DataType, value0, value1, value2, value3); status = _DMC_01_check_canopen_lock (CardNo, &lock); while(lock){ }; value0=0x2; status= _DMC_01_send_message3 (CardNo, Index, SubIdx, DataType, value0, value1, value2, value3); Revision November,

194 第八章使用 SDO 協定 API 8.7 _DMC_01_read_message I16 PASCAL _DMC_01_read_message (I16 CardNo, U16* Cmd, U16* COBID, U16* DataType,U16* Value0,U16* Value1,U16* Value2,U16* Value3) 讀取最後一筆 SDO 命令信息至資料緩衝區 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 Cmd U16* 數值 物件字典的索引值 COBID U16* 數值 CAN 物件 ID(0x580 + 目前的 Node ID) DataType U16* 數值 物件字典的資料類型 Value0 U16* 數值 信息緩衝區 ( 數據 1) Idx low ( 高位元組 ) CMD ( 低位元組 ) Value1 U16* 數值 信息緩衝區 ( 數據 2) Sub-Idx ( 高位元組 ) Idx high ( 低位元組 ) Value2 U16* 數值 信息緩衝區 ( 數據 3) 數據 ( 低位元 ) Value3 U16* 數值 信息緩衝區 ( 數據 4) 數據 ( 高位元 ) /* CardNo:Card No;NodeID: 站號 ID; Index:SDO 索引值 ; SubIdx:SDO 子索引值 ; DataType:( 讀取命令 ) 讀取數據資料, 填入值 0x40; ( 寫入命令 ) 寫入 8-bit 資料, 填入值 0x2f; ( 寫入命令 ) 寫入 16-bit 資料, 填入值 0x2b;( 寫入命令 ) 寫入 32-bit 資料, 填入值為 0x23; Value0:SDO data low word( 低位元組 ), Value1:SDO data low word( 高位元組 ); Value2:SDO data high word( 低位元組 ), Value3:SDO data high word( 高位元組 ); */ U16 CardNo=0, U16 Cmd, COBID, DataType, Value0, Value1, Value2, Value3; I16 status= _DMC_01_read_message(CardNo, &Cmd, & COBID, &DataType, &Value0, &Value1, &Value2, &Value3); 8-10 Revision November, 2011

195 第八章使用 SDO 協定 API 8.8 _DMC_01_read_message2 I16 PASCAL _DMC_01_read_message2 (I16 CardNo, U16 NodeID, U16 *Cmd, U16 *COBID,U16 *DataType,U16 *Value0,U16 *Value1,U16 *Value2,U16 *Value3,U16 *cnt) 讀取最後一筆 SDO 命令信息至資料緩衝區, 並記錄已完成的次數 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID Cmd U16* 數值 物件字典的索引值 COBID U16* 數值 CAN 物件 ID(0x580 + 目前的 Node ID) DataType U16* 數值 物件字典的資料類型 Value0 U16* 數值 信息緩衝區 ( 數據 1) Idx low ( 高位元組 ) CMD ( 低位元組 ) Value1 U16* 數值 信息緩衝區 ( 數據 2) Sub-Idx ( 高位元組 ) Idx high ( 低位元組 ) Value2 U16* 數值 信息緩衝區 ( 數據 3) 數據 ( 低位元 ) Value2 U16* 數值 信息緩衝區 ( 數據 3) 數據 ( 低位元 ) cnt U16* 數值 目前記錄已完成的次數值 U16 CardNo=0, Cmd, COBID, Value0, Value1, Value2, Value3, cnt, temp; U16 Index=0x6060, SubIdx=0, DataType=0x2f, value0=0x1, value1=0, value2=0, value3=0; I16 status= _DMC_01_read_message2(CardNo, NodeID, &Cmd, &COBID, &DataType, &Value0, &Value1, &Value2, &Value3, &cnt) temp = cnt; status= _DMC_01_send_message3 (CardNo, Index, SubIdx, DataType, value0, value1, value2, value3); status= _DMC_01_read_message2(CardNo, NodeID, &Cmd, &COBID, &DataType, &Value0, &Value1, &Value2, &Value3, &cnt) if(cnt-temp) status= _DMC_01_send_message3 (CardNo, Index, SubIdx, DataType, value0, value1,value2, value3); Revision November,

196 第八章使用 SDO 協定 API 8.9 _DMC_01_get_message I16 PASCAL _DMC_01_get_message (I16 CardNo, U16 NodeID, U16 SlotID, U16 Index, U16* Cmd, U16* COBID, U16* DataType, U16* Value0, U16* Value1, U16* Value2, U16* Value3) 取得 SDO 命令信息至資料緩衝區 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Index U16 數值 物件字典的索引值 SubIdx U16 數值 物件字典的子索引值 Cmd U16* 數值 物件字典的索引值 COBID U16* 數值 CAN 物件 ID DataType U16* 數值 物件字典的資料類型 Value0 U16* 數值 信息緩衝區 ( 數據 1) Idx low ( 高位元組 ) CMD ( 低位元組 ) Value1 U16* 數值 信息緩衝區 ( 數據 2) Sub-Idx ( 高位元組 ) Idx high ( 低位元組 ) Value2 U16* 數值 信息緩衝區 ( 數據 3) 數據 ( 低位元 ) Value3 U16* 數值 信息緩衝區 ( 數據 4) 數據 ( 高位元 ) U16 CardNo=0, NodeID=1, SlotID=0, Index=0x6060, SubIdx=0; U16 Cmd, COBID, DataType, Value0, Value1, Value2, Value3; I16 status= _DMC_01_get_message(CardNo, NodeID, SlotID, Index, SubIndex, &Cmd, &COBID, &DataType, &Value0, &Value1, &Value2, &Value3); 8-12 Revision November, 2011

197 第八章使用 SDO 協定 API 8.10 _DMC_01_reset_sdo_choke I16 PASCAL _DMC_01_reset_sdo_choke (U16 CardNo) 當 SDO 命令因故阻塞時, 重置 SDO 參數 名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 U16 CardNo=0; I16 status= _DMC_01_reset_sdo_choke (CardNo); Revision November,

198 第八章使用 SDO 協定 API 8.11 _DMC_01_get_sdo_retry_history I16 PASCAL _DMC_01_get_sdo_retry_history (U16 CardNo, U32* cnt) 取得 SDO 重新發送的次數 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 cnt U32* 次數 傳回 SDO 重新發送信息的次數 U16 CardNo=0; U32 cnt=0; I16 status= _DMC_01_get_sdo_retry_history (CardNo, &cnt); 8-14 Revision November, 2011

199 第九章點對點運動控制使用封包協定 API 第九章點對點運動控制使用封包協定 API 表 9.1 函數名稱 描述 _DMC_01_set_sdo_driver_speed_profile 使用封包協定的速度參數配置 _DMC_01_start_sdo_driver_r_move 起始一個相對性的運動位移 _DMC_01_start_sdo_driver_a_move 起始一個絕對性的運動位移 _DMC_01_start_sdo_driver_new_position_move 變換新的 position 值進行運動位移 Revision November,

200 第九章點對點運動控制使用封包協定 API 9.1 _DMC_01_set_sdo_driver_speed_profile I16 PASCAL _DMC_01_set_sdo_driver_speed_profile (U16 CardNo, U16 NodeID, U16 SlotID, U32 MaxVel, F64 acc, F64 dec) 使用封包協定的速度參數配置 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID MaxVel U32 脈波數 / 秒 最大速度參數 acc F64 秒 指定的加速時間 dec F64 秒 指定的減速時間 U16 CardNo=0; U16 NodeID =1; U16 SlotID = 0; // 插槽 ID 值設定為 0, 表示操作的 slave 為伺服驅動器 U16 MaxVel = ; F64 acc=0.1; F64 dec=0.1; I16 status= _DMC_01_set_sdo_driver_speed_profile (CardNo, NodeID, SlotID, MaxVel, acc, dec); 9-2 Revision November, 2011

201 9.2 _DMC_01_start_sdo_driver_r_move 第九章點對點運動控制使用封包協定 API I16 PASCAL _DMC_01_start_sdo_driver_r_move (U16 CardNo, U16 NodeID, U16 SlotID, I32 Distance) 起始一個相對性的運動位移 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Distance I32 脈波數 相對性的運動行程 U16 CardNo=0; U16 NodeID =1; U16 SlotID = 0; // 插槽 ID 值設定為 0, 表示操作的 slave 為伺服驅動器 I32 Distance = ; I16 status= _DMC_01_start_sdo_driver_r_move (CardNo, NodeID, SlotID, Distance); Revision November,

202 第九章點對點運動控制使用封包協定 API 9.3 _DMC_01_start_sdo_driver_a_move I16 PASCAL _DMC_01_start_sdo_driver_a_move (I16 CardNo, U16 NodeID, U16 SlotID, I32 Position) 起始一個絕對性的運動位移 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Position I32 脈波數 絕對性的運動位置 U16 CardNo=0; U16 NodeID =1; U16 SlotID = 0; // 插槽 ID 值設定為 0, 表示操作的 slave 為伺服驅動器 I32 Position = ; I16 status= _DMC_01_start_sdo_driver_a_move (CardNo, NodeID, SlotID, Position); 9-4 Revision November, 2011

203 第九章點對點運動控制使用封包協定 API 9.4 _DMC_01_start_sdo_driver_new_position_move I16 PASCAL _DMC_01_start_sdo_driver_new_position_move (I16 CardNo, U16 NodeID, U16 SlotID, I32 Position,U16 abs_rel) 變換新的 position 值進行運動位移 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Position I32 數值 新的 position 值 abs_rel U16 選項單位 0: 參考絕對座標 1: 參考相對座標 U16 CardNo=0; U16 NodeID =1; I32 Position = ; U16 abs_rel =1; // 參考相對座標進行運動位移 I16 status= _DMC_01_start_sdo_driver_r_move (CardNo, NodeID, SlotID, Position, abs_rel); Revision November,

204 第九章點對點運動控制使用封包協定 API ( 此頁有意留為空白 ) 9-6 Revision November, 2011

205 第十章原點復歸運動控制使用封包協定 API 第十章原點復歸運動控制使用封包協定 API 函數名稱 _DMC_01_set_home_config _DMC_01_set_home_move _DMC_01_escape_home_move 表 10.1 描述設置原點復歸各項配置設置開始運行原點復歸運動停止原點復歸運動 Revision November,

206 第十章原點復歸運動控制使用封包協定 API 10.1 _DMC_01_set_home_config I16 PASCAL _DMC_01_set_home_config (U16 CardNo,U16 NodeID,U16 SlotID, U16 Mode,I32 offset,u16 lowspeed,u16 highspeed,f64 acc) 設置原點復歸各項配置 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Mode U16 選項單位 原點復歸模式 :1~35 ( 參考後頁 note 說明 ) offset I32 脈波數 原點復歸偏移量 lowspeed U16 轉速 / 分 尋找各極限位置所使用的速度參數 ( 範圍 :1~500) highspeed U16 轉速 / 分 歸回零所使用的速度參數 ( 範圍 :1~2000) acc F64 秒 原點復歸參照的加速時間 lowspeed 與 highspeed 參數的單位, 會因連結的 Slave 模組有所區別 伺服驅動器 (ASDA-A2F) 轉速 / 分脈波介面模組 (RM04PI, GE01PI, GE01PH) Pulse/Sec 線性馬達 um/sec U16 CardNo=0, NodeID =1, SlotID=0, Mode=1; I32 offset =200; U16 lowspeed=200, highspeed=2000; F64 acc=0.1; /* 使用原點復歸模式 */ I16 status= _DMC_01_set_home_config (CardNo, NodeID, SlotID, Mode, offset, lowspeed, highspeed, acc); 10-2 Revision November, 2011

207 第十章原點復歸運動控制使用封包協定 API NOTE #1. 以負極限與索引脈波信息之原點復歸模式 使用此方法, 若負極限開關為無效 ( 為低電位 ) 時, 初始方向為向左進行位移運動 此原點位 置為當觸碰負極限開關時即往右方之索引脈衝位移 圖 10.1 #2. 以正極限與索引脈波信息之原點復歸模式 使用此方法, 若正極限開關為無效 ( 為低電位 ) 時, 初始方向為向右進行位移運動 此原點位 置為當觸碰正極限開關時即往左方之索引脈衝位移 圖 10.2 Revision November,

208 第十章原點復歸運動控制使用封包協定 API #3 and 4. 以原點開關正向電位與索引脈波信息之原復歸模式使用方法 3 或方法 4, 其初始位移的方向是依循原點開關當前的狀態 此原點位置取決於該原點開關改變狀態時, 向左或向右任一方的索引脈衝 若進行原點復歸的初始位置為索引脈衝, 將必須迴轉位移的方向 該點在迴轉位移方向後發生的任何變化, 取決於原點開關當前的狀態 圖 10.3 #5 and 6. 以原點開關負向電位與索引脈波信息之原復歸模式使用方法 5 或方法 6, 其初始位移的方向是依循原點開關當前的狀態 此原點位置取決於該原點開關改變狀態時, 向左或向右任一方的索引脈衝 若進行原點復歸的初始位置為索引脈衝, 將必須迴轉位移的方向 該點在迴轉位移方向後發生的任何變化, 取決於原點開關當前的狀態 圖 Revision November, 2011

209 第十章原點復歸運動控制使用封包協定 API #7 to 14. 基於索引脈波與原點開關之原點復歸模式這些方法使用一個僅在位移中的一部分啟用的原點開關 事實上, 在該軸 posistion 通過此開關, 其可 瞬間 被啟用 使用方法 7 到方法 10, 其初始位移的方向是向右, 使用方法 11 到方法 14, 其初始位移的方向是向左 此外, 若原點開關在位移起始處己為啟用狀態 此時其初始位移的方向是依找尋到的邊緣 (edge) 而定 此歸回原點的位置為在正緣或負緣任一方的原點開關上的索引脈衝信號 於下方兩張圖顯示, 若初始位移方向並未觸碰到原點開關時, 此作動需觸碰到極限開關時, 方才迴轉位移方向 圖 10.5 圖 10.6 Revision November,

210 第十章原點復歸運動控制使用封包協定 API #15 和 16. 保留 此為保留給原點復歸模式未來擴充使用 #17 to 30. 與索引脈波無關之原點復歸模式這些方法類似方法 1 到 14, 兩造的區別在於此類歸回原點位置不需依賴索引脈衝 其僅依賴與原點或極限開關的切換來進行原復歸 例 : 方法 19 與方法 20 類似方法 3 和方法 4 之原點復歸模式, 如下圖 11.7 所示 圖 10.7 #31 和 32. 保留 此為保留給原點復歸模式未來擴充使用 #33 and 34. 與索引脈波相關之原點復歸模式 使用方法 33 或方法 34, 其歸回原點正向或負向的區別, 在於其歸原回原點選擇的方向位 置取決於查找到的索引脈衝 #35. 依當前 positin 位置進行原點復歸的模式 圖 10.8 模式 35 是將目前位置作為原點復歸的位置 10-6 Revision November, 2011

211 10.2 _DMC_01_set_home_move 第十章原點復歸運動控制使用封包協定 API I16 PASCAL _DMC_01_set_home_move (U16 CardNo, U16 NodeID, U16 SlotID) 設置開始運行原點復歸運動 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; // 插槽 ID 值設定為 0, 表示操作的 slave 為伺服驅動器 I16 status= _DMC_01_set_home_move (CardNo, NodeID, SlotID); NOTE 如果下達 _DMC_01_set_home_move 後, 運用 _DMC_01_motion_status API 回傳的 Mc_status 之 MDS0 來判斷回 Home 狀態, 請於下達 _DMC_01_set_home_move 後延遲 30~100ms( 此值依 CPU 性能及程式撰寫方式調整 ) 後再下 _DMC_01_motion_status, 以確保資料正確性 Revision November,

212 第十章原點復歸運動控制使用封包協定 API 10.3 _DMC_01_escape_home_move I16 PASCAL _DMC_01_escape_home_move (U16 CardNo, U16 NodeID, U16 SlotID) 停止原點復歸運動 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; I16 status= _DMC_01_escape_home_move (CardNo, NodeID, SlotID); 10-8 Revision November, 2011

213 第十一章速度運動控制使用封包協定 API 第十一章速度運動控制使用封包協定 API 表 11.1 函數名稱 _DMC_01_set_velocity_mode _DMC_01_set_velocity _DMC_01_set_velocity_stop _DMC_01_set_velocity_torque_limit 描述速度運動控制參數配置設置開始運行速度運動停止速度運動控制在 velocity 模式時設定最大 torque 限制 Revision November,

214 第十一章速度運動控制使用封包協定 API 11.1 _DMC_01_set_velocity_mode I16 PASCAL _DMC_01_set_velocity_mode (U16 CardNo, U16 NodeID, U16 SlotID, F64 Tacc,F64 Tdec) 速度運動控制參數配置 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Tacc F64 秒 指定的加速時間 Tdec F64 秒 指定的減速時間 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; F64 Tacc=0.1, Tdec=0.1; /* 設定速度模式參數 ( 加速時間與減速時間的值 ) */ I16 status = _DMC_01_set_velocity_mode (CardNo, NodeID, SlotID, Tacc, Tdec); 11-2 Revision November, 2011

215 第十一章速度運動控制使用封包協定 API 11.2 _DMC_01_set_velocity I16 PASCAL _DMC_01_set_velocity (U16 CardNo, U16 NodeID, U16 SlotID,I32 rpm) 設置開始運行速度運動 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID rpm I32 數值 實際轉速為此變數 (rpm) 值的 1/10 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; I32 rpm =-1000; // 此例速度運動將會是反轉運動, 該實際轉速的值為 / 10 => 100RPM I16 status= _DMC_01_set_velocity (CardNo, NodeID, SlotID, rpm); Revision November,

216 第十一章速度運動控制使用封包協定 API 11.3 _DMC_01_set_velocity_stop I16 PASCAL _DMC_01_set_velocity_stop (U16 CardNo,U16 NodeID,U16 SlotID,U16 stop) 停止速度運動控制 參數 名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID stop U16 選項單位 0: 速度運動操作保持目前的運動狀態 1: 停止速度運動 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U16 stop=1; I16 rpm=2000; // 此例速度運動將會是正轉運動, 該實際轉速的值為 2000 / 10 => 200RPM /* 啟動速度運動的操作 */ I16 status= _DMC_01_set_velocity (CardNo, NodeID, SlotID, rpm); /* 停止目前運行的速度運動 */ status = _DMC_01_set_velocity_stop (CardNo, NodeID, SlotID, stop); 11-4 Revision November, 2011

217 11.4 _DMC_01_set_velocity_torque_limit 第十一章速度運動控制使用封包協定 API I16 PASCAL _DMC_01_set_velocity_torque_limit (U16 CardNo, U16 NodeID, U16 SlotID, U32 torque_limit) 在 velocity 模式時設定最大 torque 限制 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID torque_limit U32 數值 轉矩最大限制量 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U32 torque_limit =50; I16 status= _DMC_01_set_velocity_torque_limit (CardNo, NodeID, SlotID, torque_limit); Revision November,

218 第十一章速度運動控制使用封包協定 API ( 此頁有意留為空白 ) 11-6 Revision November, 2011

219 第十二章轉矩運動控制使用封包協定 API 第十二章轉矩運動控制使用封包協定 API 表 12.1 函數名稱 _DMC_01_set_torque_mode _DMC_01_set_torque _DMC_01_set_torque_stop _DMC_01_set_torque_velocity_limit 描述轉矩運動控制參數配置設置開始運行轉矩運動停止轉矩運動在 torque 模式時設定最大 velocity 限制 Revision November,

220 第十二章轉矩運動控制使用封包協定 API 12.1 _DMC_01_set_torque_mode I16 PASCAL _DMC_01_set_torque_mode (U16 CardNo, U16 NodeID, U16 SlotID, U16 slope) 轉矩運動控制參數配置 (slope 的值 ) 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID slope U16 毫秒 0 至 100% 額定扭力所需時間 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U16 slope=500; // 500 毫秒 I16 status= _DMC_01_set_torque_mode (CardNo, NodeID, SlotID, slope); 12-2 Revision November, 2011

221 第十二章轉矩運動控制使用封包協定 API 12.2 _DMC_01_set_torque I16 PASCAL _DMC_01_set_torque (U16 CardNo, U16 NodeID, U16 SlotID, I16 ratio) 設置開始運行轉矩運動 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 Number Uint 插槽 ID ratio I16 數值 額定扭力值千分比 ( 值小於 0 反轉, 大於 0 正轉 ) U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; I16 ratio=-50; // ratio 值為 -50, -50 除以 1000, 表示額定扭力值為 5% 且馬達反轉 /* 設置 ratio 值並開始進行轉矩運動 */ I16 status=_dmc_01_set_torque(cardno, NodeID, SlotID, ratio); // 若 ratio 的值小於 0 時, 馬達反轉 ; 值大於 0 時, 馬達正轉 Revision November,

222 第十二章轉矩運動控制使用封包協定 API 12.3 _DMC_01_set_torque_stop I16 PASCAL _DMC_01_set_torque_stop (U16 CardNo, U16 NodeID, U16 SlotID, U16 stop) 停止轉矩運動 參數 名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID stop U16 選項單位 0: 目前的運動狀態 1: 停止轉矩運動 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U16 stop=1; I16 ratio=100; // ratio 值為 100,100 除以 1000, 表示額定扭力值為 10% 且馬達正轉 /* 設置 ratio 值並開始進行轉矩運動 */ I16 status=_dmc_01_set_torque(cardno, NodeID, SlotID, ratio); /* 停止轉矩運動 */ status= _DMC_01_set_torque_stop(CardNo, NodeID, SlotID, stop); 12-4 Revision November, 2011

223 12.4 _DMC_01_set_torque_velocity_limit 第十二章轉矩運動控制使用封包協定 API I16 PASCAL _DMC_01_set_torque_velocity_limit (U16 CardNo, U16 NodeID, U16 SlotID, U32 velocity_limit) 在 torque 模式時設定最大 velocity 限制 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID velocity_limit U32 數值 速度最大限制量 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U32 velocity_limit =2000; /* 設置 Velocity 最大限制量, velocity_limit 的值不得大於 */ I16 status=_dmc_01_set_torque_velocity_limit (CardNo, NodeID, SlotID, velocity_limit); Revision November,

224 第十二章轉矩運動控制使用封包協定 API ( 此頁有意留為空白 ) 12-6 Revision November, 2011

225 第十三章使用 PDO 協定 API 第十三章使用 PDO 協定 API 表 13.1 函數名稱 描述 _DMC_01_ipo_set_svon 在 PDO 協定下 Servo ON/OFF 設置 _DMC_01_get_buffer_length 取得仍未實行的運動命令 _DMC_01_command_buf_clear 清除間隔時間 (buffer dwell 計數值 ) _DMC_01_buf_dwell 兩個運動命令之間的間隔時間 _DMC_01_set_group 設定關連性群組 Revision November,

226 第十三章使用 PDO 協定 API 13.1 _DMC_01_ipo_set_svon I16 PASCAL _DMC_01_ipo_set_svon (U16 CardNo, U16 NodeID, U16 SlotID, U16 ON_OFF) 在 PDO 協定下 Servo ON/OFF 設置 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID ON_OFF U16 選項單位 0:Servo OFF 1:Servo ON U16 CardNo=0; U16 NodeID =1; U16 SlotID =0; U16 ON_OFF=1; I16 status= _DMC_01_ipo_set_svon (CardNo, NodeID, SlotID, ON_OFF); 13-2 Revision November, 2011

227 第十三章使用 PDO 協定 API 13.2 _DMC_01_get_buffer_length I16 PASCAL _DMC_01_get_buffer_length (U16 CardNo, U16 NodeID, U16 SlotID, U16* bufferlength) 取得仍未實行的運動命令 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID bufferlength U16* 個數 未實行的運動命令 U16 CardNo=0; U16 NodeID =1; U16 SlotID =0; U16 bufferlength; I16 status; /* 啟用同步運動命令 */ status= _DMC_01_sync_move(CardNo); /* 取得各個站號中尚未執行的運動命令 */ status= _DMC_01_get_buffer_length (CardNo, NodeID, SlotID, &bufferlength); Revision November,

228 第十三章使用 PDO 協定 API 13.3 _DMC_01_command_buf_clear I16 PASCAL _DMC_01_command_buf_clear (U16 CardNo, U16 NodeID, U16 SlotID) 清除間隔時間 (buffer dwell 計數值 ) 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; I32 dwell_cnt=3; I16 status=_dmc_01_buf_dwell(cardno, NodeID, SlotID, dwell_cnt); // 設定 dwell buffer 間隔 status= _DMC_01_command_buf_clear (CardNo, NodeID,SlotID); // 清除 dweel buffer 間隔 13-4 Revision November, 2011

229 第十三章使用 PDO 協定 API 13.4 _DMC_01_buf_dwell I16 PASCAL _DMC_01_buf_dwell (I16 CardNo, U16 NodeID, U16 SlotID, I32 dwell_cnt) 兩個運動命令之間的間隔時間 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID dwell_cnt I32 次數 Dewell buffer 間隔 ( 延遲時間為 2 x dwell_cnt + 2) U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; I32 dwell_cnt=3; // 若 dwell_cnt 值為 0, 延遲時間為 4ms; 此例的值為 3, 延遲時間為 2*3+2=8ms I16 status=_dmc_01_buf_dwell (CardNo, NodeID, SlotID, dwell_cnt); Revision November,

230 第十三章使用 PDO 協定 API 13.5 _DMC_01_set_group I16 PASCAL _DMC_01_set_group (U16 CardNo, U16* NodeID,U16* SlotID, U16 NodeID_Num, U16 enable) 設定關連性群組 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID NodeID_Num U16 數值單位 群組站數 Enable U16 編號單位 0: 解除群組設定 1: 設定為群組 U16 CardNo=0; U16 NodeID[4] ={1,3,5}; U16 SlotID[4]={0,0,0}; U16 NodeID_Num=3; // 設定為同一群組個數為 3 個 U16 enable=1; I16 status=_dmc_01_set_group (CardNo, NodeID, SlotID, NodeID_Num, enable); 13-6 Revision November, 2011

231 第十四章停止運動控制 API 第十四章停止運動控制 API 函數名稱 _DMC_01_emg_stop _DMC_01_sd_stop _DMC_01_sd_abort _DMC_01_set_sd_mode 表 14.1 描述 Buffer 內所有運動指令將立即停止 Buffer 內所有運動指令將依減速時間減速停止當前正在執行的運動指令將依減速時間停止 Sd_stop 的模式設定 Revision November,

232 第十四章停止運動控制 API 14.1 _DMC_01_emg_stop I16 PASCAL _DMC_01_emg_stop (U16 CardNo, U16 NodeID, U16 SlotID) Buffer 內所有運動指令將立即停止 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID U16 CardNo=0;U16 NodeID =1; U16 SlotID=0; I16 status= _DMC_01_emg_stop (CardNo, NodeID, SlotID); 14-2 Revision November, 2011

233 第十四章停止運動控制 API 14.2 _DMC_01_sd_stop I16 PASCAL _DMC_01_sd_stop (U16 CardNo, U16 NodeID,U16 SlotID,F64 Tdec) Buffer 內所有的運動指令將依減速時間減速停止 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Tdec F64 秒 指定的減速時間 U16 CardNo=0, U16 NodeID =1, SlotID=0; F64 Tdec=0.1; I16 status= _DMC_01_sd_stop (CardNo, NodeID, SlotID, Tdec); Revision November,

234 第十四章停止運動控制 API 14.3 _DMC_01_sd_abort I16 PASCAL _DMC_01_sd_abort (U16 CardNo, U16 NodeID, U16 SlotID, F64 Tdec) 當前正在執行的運動指令將依減速時間停止 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Tdec F64 秒 指定的減速時間 U16 CardNo=0, U16 NodeID =1, SlotID=0; F64 Tdec=0.1; I16 status= _DMC_01_sd_abort (CardNo, NodeID, SlotID, Tdec); 14-4 Revision November, 2011

235 第十四章停止運動控制 API 14.4 _DMC_01_set_sd_mode I16 PASCAL _DMC_01_set_sd_mode (U16 CardNo, U16 NodeID, U16 SlotID, U16 mode) Sd_stop(slow down stop) 的模式設定 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Mode U16 選項單位 0:position 值與 command 值相同 ( 預設值 ) 1:position 值可超過 command 值 描述 B 當在 B 點處下達 Slow down 指令, 始依減速時間停止, 停止處的 Position = Command 圖 14.1 Sd Mode 設定說明 (Mode=0) B 當在 B 點處下達 Slow down 指令, 始依減速時間停止, 停止處的 Position > Command 圖 14.2 Sd Mode 設定說明 (Mode=1) Revision November,

236 第十四章停止運動控制 API U16 CardNo=0; U16 NodeID =1, SlotID=0; U16 Mode=1; F64 Tdec=0.1; I16 status= _DMC_01_set_sd_mode (CardNo, NodeID, SlotID, Mode); 14-6 Revision November, 2011

237 第十五章運動狀態 API 第十五章運動狀態 API 表 15.1 函數名稱 _DMC_01_motion_done _DMC_01_motion_status 描述 傳回 Master Card 目前實行的運動階段 傳回 Master Card 目前的運動狀態 Revision November,

238 第十五章運動狀態 API 15.1 _DMC_01_motion_done I16 PASCAL _DMC_01_motion_done (U16 CardNo, U16 NodeID, U16 SlotID, U16* MC_status) 傳回 Master Card 目前實行的運動階段 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID MoSt U16* 選項單位 0: 運動位移動作停止 1: 依加速時間進行運動位移 2: 依最大速度進行運動位移 3: 依減速時間進行運動位移 U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; U16 MoSt=0; I16 status= _DMC_01_motion_done (CardNo, NodeID, SlotID, &MoSt); 15-2 Revision November, 2011

239 第十五章運動狀態 API 15.2 _DMC_01_motion_status I16 PASCAL _DMC_01_motion_status (U16 CardNo, U16 NodeID, U16 SlotID, U32* MC_status) 傳回 Master Card 目前的運動狀態 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID 運動狀態 (bit0~bit15) 位元標誌描述 0 ~ 3 Mode0 ~ Mode3 啟用選擇模式 4 DI3 DI3(SLD) 狀態映射 5 WR 警報訊息 6 DR 資料錯誤訊息 7 TG 觸發模式位元 MoSt U32* 選項單位 8 PWRON 馬達激磁啟動位元 9 DriverErr 驅動器錯誤位元 10 Target 抵達目標位元 11 N/A 保留, 預設值為 0 12 MDS0 Mode specific 13 MDS1 Mode specific 14 PEL 正極限位元 15 MEL 負極限位元 圖 15.1 運動狀態內容 Revision November,

240 第十五章運動狀態 API 關於 具體模式 (Mode specific) 位元 ( 位元 12 和位元 13) 相關敘述, 請參考表 15.2 在模式選擇位元 ( 位元 0~ 位元 3) 中, 僅有 2 種模式供使用者選擇, 模式分別為 MODE1 ( 位元 0 為 ON) 和 MODE6( 位元 1 與位元 2 為 ON) 表 15.2 運動狀態的具體模式 (Mode specific) 位元敘述 模式項目 具體模式位元 13 為 1 位元 12 為 1 原點復歸模式 (MODE6) 復歸動作有誤 可實行復歸動作 DMCNET 模式 (MODE1) 無定義 模式啟用 U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; U32 MoSt=0; I16 status= _DMC_01_motion_status (CardNo, NodeID, SlotID, &MoSt); 15-4 Revision November, 2011

241 第十六章運動計數值 API 第十六章運動計數值 API 表 16.1 函數名稱 _DMC_01_get_command _DMC_01_set_command _DMC_01_get_position _DMC_01_set_position _DMC_01_get_target_pos _DMC_01_get_torque _DMC_01_get_current_speed _DMC_01_get_current_speed_rpm 描述取得 command 計數值設置新的 command 計數值取得目前 position 計數值設置新的 position 計數值取得位置的 position 值取得傳回目前的轉矩計數值取得目前的運動分量速度取得目前每分鐘的轉速乘上 10 倍的值 Revision November,

242 第十六章運動計數值 API 16.1 _DMC_01_get_command I16 PASCAL _DMC_01_get_command (U16 CardNo, U16 NodeID, U16 SlotID, I32* cmd) 取得 command 計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID cmd I32* 脈波數 目前 Command 的計數值 U16 CardNo=0, NodeID=1, SlotID=0; I32 cmd; I16 status= _DMC_01_get_command (CardNo, NodeID, SlotID, &cmd); 16.2 _DMC_01_set_command I16 PASCAL _DMC_01_set_command (U16 CardNo, U16 NodeID, U16 SlotID, I32 cmd) 設置新的 command 計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID cmd I32 脈波數 欲設置的 Command 計數值 U16 CardNo=0, NodeID =1, SlotID=0; I32 cmd= ; I16 status= _DMC_01_set_command (CardNo, NodeID, SlotID, cmd); 16-2 Revision November, 2011

243 第十六章運動計數值 API 16.3 _DMC_01_get_position I16 PASCAL _DMC_01_get_position (U16 CardNo, U16 NodeID, U16 SlotID, I32* pos) 取得目前 position 計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID pos I32* 脈波數 目前反饋的 position 計數值 U16 CardNo=0, NodeID =1, SlotID=0; I32 pos; I16 status= _DMC_01_get_position (CardNo, NodeID, SlotID, &pos); 16.4 _DMC_01_set_position U16 PASCAL _DMC_01_set_position (U16 CardNo, U16 NodeID, U16 SlotID, I32 pos) 設置新的 position 計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID pos I32 脈波數 設置 position 計數值 U16 CardNo=0, NodeID =1, SlotID=0; I32 pos =500000; I16 status= _DMC_01_set_position (CardNo, NodeID, SlotID, pos); Revision November,

244 第十六章運動計數值 API 16.5 _DMC_01_get_target_pos I16 PASCAL _DMC_01_get_target_pos (U16 CardNo, U16 NodeID, U16 SlotID, I32* pos) 取得位置的 position 值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID pos I32* 脈波數 位置的 position 計數值 ( 請參閱下方 note 說明 ) U16 CardNo=0; U16 NodeID =1; U16 SlotID = 0; I32 pos=0; I16 status= _DMC_01_get_target_pos (CardNo, NodeID, &pos); NOTE 下達任一運動指令後, 如果須依賴 _DMC_01_get_target_pos 指令的回傳值 pos 來判斷下 一個步驟, 請於下達運動指令後, 延遲 10~100ms( 此值依 CPU 性能與程式撰寫方式調整 ) 後, 再下達 _DMC_01_get_target_pos 指令, 以確保資料正確性 16-4 Revision November, 2011

245 第十六章運動計數值 API 16.6 _DMC_01_get_torque I16 PASCAL _DMC_01_get_torque (U16 CardNo, U16 NodeID, U16 SlotID, U16* torque) 取得傳回目前的轉矩計數值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID torque U16* 數值 目前的轉矩值 U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; U16 torque; I16 status= _DMC_01_get_torque (CardNo, NodeID, SlotID, &torque); Revision November,

246 第十六章運動計數值 API 16.7 _DMC_01_get_current_speed I16 PASCAL _DMC_01_get_current_speed (U16 CardNo, U16 NodeID, U16 SlotID, I32* speed) 取得目前的運動分量速度 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID speed I32* 脈波數 / 秒 取得目前的運動分量速度 U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; I32 speed; I16 status= _DMC_01_get_current_speed (CardNo, NodeID, SlotID, &speed); 16-6 Revision November, 2011

247 第十六章運動計數值 API 16.8 _DMC_01_get_current_speed_rpm I16 PASCAL _DMC_01_get_current_speed_rpm (U16 CardNo, U16 NodeID, U16 SlotID, I32 *rpm) 取得目前每分鐘的轉速乘上 10 倍的值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID rpm I32* 轉速 / 秒 實際轉速值為此變數 (rpm) 值的 1/10 U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; I32 rpm; I16 status= _DMC_01_get_current_speed_rpm (CardNo, NodeID, SlotID, &rpm); // 若您取得到的轉速值為 1000, 實際轉速值為 100RPM. Revision November,

248 第十六章運動計數值 API ( 此頁有意留為空白 ) 16-8 Revision November, 2011

249 第十七章軟體極限 API 第十七章軟體極限 API 函數名稱 _DMC_01_set_soft_limit _DMC_01_enable_soft_limit _DMC_01_disable_soft_limit _DMC_01_get_soft_limit_status 表 17.1 描述設置軟體正 / 負極限的參考值設置啟用極限開啟與否和碰觸極限後停止方式關閉軟體極限取得運動期間軟體正 / 負極限的狀態 Revision November,

250 第十七章軟體極限 API 17.1 _DMC_01_set_soft_limit I16 PASCAL _DMC_01_set_soft_limit (U16 CardNo, U16 NodeID, U16 SlotID, I32 PLimit, I32 NLimit) 設置軟體正 / 負極限的參考值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID PLimit I32 數值 軟體正極限的值 NLimit I32 數值 軟體負極限的值 U16 CardNo=0; U16 NodeID =1; U16 SlotID =0; I32 PLimit =8000; I32 NLimit =2000; I16 status= _DMC_01_set_soft_limit (CardNo, NodeID, SlotID, PLimit, NLimit); 17-2 Revision November, 2011

251 第十七章軟體極限 API 17.2 _DMC_01_enable_soft_limit I16 PASCAL _DMC_01_enable_soft_limit (U16 CardNo, U16 NodeID, U16 SlotID, I16 Action) 設置啟用極限開啟與否和碰觸極限後的停止方式 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Action I16 選項單位 1: 碰觸極限後立即停止 2: 碰觸極限後減速停止 U16 CardNo=0, NodeID =1, SlotID=0; I16 Action=1; // 選擇碰觸極限後立即停止 I16 status= _DMC_01_enable_soft_limit (CardNo, NodeID, SlotID, Action); 17.3 _DMC_01_disable_soft_limit I16 PASCAL _DMC_01_disable_soft_limit (U16 CardNo, U16 NodeID,U16 SlotID) 關閉軟體極限 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID U16 CardNo=0, NodeID=1, SlotID=0; I16 status = _DMC_01_disable_soft_limit(CardNo, NodeID, SlotID); Revision November,

252 第十七章軟體極限 API 17.4 _DMC_01_get_soft_limit_status I16 PASCAL _DMC_01_get_soft_limit_status (U16 CardNo, U16 NodeID, U16 SlotID, U16* PLimit_sts,U16* NLimit_sts) 取得運動期間軟體正 / 負極限的狀態 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID PLimit_sts U16* 旗標 0: 未碰觸到軟體正極限 1: 已碰觸到軟體正極限 NLimit_sts U16* 旗標 0: 未碰觸到軟體負極限 1: 已碰觸到軟體負極限 U16 CardNo=0; U16 NodeID=1; U16 SlotID=0; U16 PLimit_sts, NLimit_sts; I16 status= _DMC_01_get_soft_limit_status(CardNo, NodeID, SlotID, &PLimit_sts, &NLimit_sts) 17-4 Revision November, 2011

253 第十八章單軸運動控制 API 第十八章單軸運動控制 API 函數名稱 _DMC_01_start_tr_move _DMC_01_start_sr_move _DMC_01_start_ta_move _DMC_01_start_sa_move _DMC_01_p_change _DMC_01_v_change _DMC_01_start_tr_move_2seg _DMC_01_start_sr_move_2seg _DMC_01_start_ta_move_2seg _DMC_01_start_sa_move_2seg _DMC_01_start_tr_move_2seg2 _DMC_01_start_sr_move_2seg2 _DMC_01_start_ta_move_2seg2 _DMC_01_start_sa_move_2seg2 _DMC_01_feedrate_overwrite _DMC_01_start_v3_move 表 18.1 描述參照 T-curve 速度剖面下相對座標進行運動位移參照 S-curve 速度剖面下相對座標進行運動位移參照 T-curve 速度剖面下絕對座標進行運動位移參照 S-curve 速度剖面下絕對座標進行運動位移以新的位置值替換目前的位置設置以新的速度值設置替換目前的運動速度參照 T-curve 速度剖面下的相對座標進行二段速度運動位移參照 S-curve 速度剖面下的相對座標進行二段速度運動位移參照 T-curve 速度剖面下的絕對座標進行二段速度運動位移參照 S-curve 速度剖面下的絕對座標進行二段速度運動位移參照 T-curve 速度剖面下的相對座標進行二段速度運動位移參照 S-curve 速度剖面下的相對座標進行二段速度運動位移參照 T-curve 速度剖面下的絕對座標進行二段速度運動位移參照 S-curve 速度剖面下的絕對座標進行二段速度運動位移改變運動向量速度或向量速度比率增加 EndVel 的單軸運動位移 Revision November,

254 第十八章單軸運動控制 API 18.1 _DMC_01_start_tr_move I16 PASCAL _DMC_01_start_tr_move(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 StrVel, I32 MaxVel, F64 Tacc, F64 Tdec) 參照 T-curve 速度剖面下的相對座標進行運動位移, 請參閱敘述中圖 18.1 示意 設置 StrVel 的值時, 該值務必設定小於 MaxVel 的值 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的相對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 最大速度 Tacc F64 秒 指定的加速時間 Tdec F64 秒 指定的減速時間 敘述 圖 18.1 T-curve 速度剖面下相對座標運動 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=100000, StrVel=0, MaxVel=50000; F64 Tacc=0.1, Tdec=0.1; I16 status= _DMC_01_start_tr_move (CardNo, NodeID, SlotID, Dist, StrVel, MaxVel, Tacc, Tdec); 18-2 Revision November, 2011

255 第十八章單軸運動控制 API 18.2 _DMC_01_start_sr_move I16 PASCAL _DMC_01_start_sr_move(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 StrVel, I32 MaxVel, F64 Tacc, F64 Tdec) 參照 S-curve 速度剖面下的相對座標進行運動位移, 請參閱敘述中圖 18.2 示意 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的相對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 最大速度 Tacc F64 秒 指定的加速時間 Tdec F64 秒 指定的減速時間 敘述 圖 18.2 S-curve 速度剖面下相對座標運動 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=100000, StrVel=0, MaxVel=30000; F64 Tacc=0.1, Tdec=0.1; I16 status= _DMC_01_start_sr _move (CardNo, NodeID, SlotID, Dist, StrVel, MaxVel, Tacc, Tdec); Revision November,

256 第十八章單軸運動控制 API 18.3 _DMC_01_start_ta_move I16 PASCAL _DMC_01_start_ta_move(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 StrVel, I32 MaxVel, F64 Tacc, F64 Tdec) 參照 T-curve 速度剖面下的絕對座標進行運動位移 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的絕對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 最大速度 Tacc F64 秒 指定的加速時間 Tdec F64 秒 指定的減速時間 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=100000; I32 StrVel=0, MaxVel=50000; F64 Tacc=0.1, Tdec=0.1; I16 status= _DMC_01_start_ta_move (CardNo, NodeID, SlotID, Dist, StrVel, MaxVel, Tacc, Tdec); 18-4 Revision November, 2011

257 第十八章單軸運動控制 API 18.4 _DMC_01_start_sa_move I16 PASCAL _DMC_01_start_sa_move(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 StrVel, I32 MaxVel, F64 Tacc, F64 Tdec) 參照 S-curve 速度剖面下的絕對座標進行運動位移 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的絕對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 最大速度 Tacc F64 秒 指定的加速時間 Tdec F64 秒 指定的減速時間 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=100000; I32 StrVel=0, MaxVel=30000; F64 Tacc=0.1, Tdec=0.1; I16 status= _DMC_01_start_sa_move (CardNo, NodeID, SlotID, Dist, StrVel, MaxVel, Tacc, Tdec); Revision November,

258 第十八章單軸運動控制 API 18.5 _DMC_01_p_change I16 PASCAL _DMC_01_p_change (U16 CardNo, U16 NodeID, U16 SlotID, I32 NewPos) 以新的位置值替換目前的位置設置 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID NewPos I32 脈波數 欲替換的位置參數 U16 CardNo=0;U16 NodeID =1, SlotID=0; I32 NewPos=100000; I16 status= _DMC_01_p_change (CardNo, NodeID, SlotID, NewPos); 18-6 Revision November, 2011

259 第十八章單軸運動控制 API 18.6 _DMC_01_v_change I16 PASCAL _DMC_01_v_change (U16 CardNo, U16 NodeID, U16 SlotID, I32 NewSpeed, F64 sec) 以新的速度值設置替換目前的運動速度 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID NewSpeed I32 脈波數 / 秒 欲替換速度參數 sec F64 秒 速度轉換時, 指定的加 / 減速時間 描述 T-Curve S-Curve 圖 18.3 更換新的速度參數 U16 CardNo=0;U16 NodeID =1, SlotID=0; I32 NewSpeed=3000; F64 sec=0.1; I16 status= _DMC_01_v_change (CardNo, NodeID, SlotID, NewSpeed, sec); Revision November,

260 第十八章單軸運動控制 API NOTE 在單軸及多軸運動下, 都可以進行 V-change 的指令, 多軸運動請對主控軸下達指令即可 18-8 Revision November, 2011

261 第十八章單軸運動控制 API 18.7 _DMC_01_start_tr_move_2seg I16 PASCAL _DMC_01_start_tr_move_2seg(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 Dist2, I32 StrVel, I32 MaxVel, I32 MaxVel2, F64 Tacc, F64 Tsec, F64 Tdec) 參照 T-curve 速度剖面下的相對座標進行二段速度運動位移 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的第 1 段相對座標行程 Dist2 I32 脈波數 指定的第 2 段相對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 第 1 段行程中設置的最大速度 MaxVel2 I32 脈波數 / 秒 第 2 段行程中設置的最大速度 Tacc F64 秒 指定的加速時間 Tsec F64 秒 第 1 段行程切換到第 2 段行程的加速 / 減速時間 Tdec F64 秒 減速時間 描述 圖 18.4 T-curve 速度剖面下相對座標運動 ( 灰色區塊表示為 Dist, 白色區塊則表示為 Dist2) Revision November,

262 第十八章單軸運動控制 API U16 CardNo=0; U16 NodeID =1; U16 SlotID=0; I32 Dist=500000; I32 Dist2= I32 StrVel=1000; I32 MaxVel=10000; I32 MaxVel2=30000; F64 Tacc=0.1; F64 Tsec=0.1; F64 Tdec=0.1; I16 status= _DMC_01_start_tr_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); 請務必注意, 此 API 參數中的 Dist 與 Dist2 必須 同向, 如圖 18.5 表示一個錯誤的設置 圖 18.5 錯誤圖例 - Dist 與 Dist2 不同向 Revision November, 2011

263 第十八章單軸運動控制 API 18.8 _DMC_01_start_sr_move_2seg I16 PASCAL _DMC_01_start_sr_move_2seg(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 Dist2, I32 StrVel, I32 MaxVel, I32 MaxVel2, F64 Tacc, F64 Tsec, F64 Tdec) 參照 S-curve 速度剖面下的相對座標進行二段速度運動位移 在操作該函式前,Motion Buffer 會先被清除 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的第 1 段相對座標行程 Dist2 I32 脈波數 指定的第 2 段相對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 第 1 段行程中設置的最大速度 MaxVel2 I32 脈波數 / 秒 第 2 段行程中設置的最大速度 Tacc F64 秒 指定的加速時間 Tsec F64 秒 第 1 段行程切換到第 2 段行程的加速 / 減速時間 Tdec F64 秒 減速時間 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=500000, Dist2= I32 StrVel=1000; I32 MaxVel=10000, MaxVel2=30000; F64 Tacc=0.1; F64 Tsec=0.1; F64 Tdec=0.1; I16 status= _DMC_01_start_sr_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); Revision November,

264 第十八章單軸運動控制 API 18.9 _DMC_01_start_ta_move_2seg I16 PASCAL _DMC_01_start_ta_move_2seg(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 Dist2, I32 StrVel, I32 MaxVel, I32 MaxVel2, F64 Tacc, F64 Tsec, F64 Tdec) 參照 T-curve 速度剖面下的絕對座標進行二段速度運動位移 在操作該函式前,Motion Buffer 會先被清除 參數 名稱資料型別單位描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的第 1 段絕對座標行程 Dist2 I32 脈波數 指定的第 2 段絕對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 第 1 段行程中設置的最大速度 MaxVel2 I32 脈波數 / 秒 第 2 段行程中設置的最大速度 Tacc F64 秒 指定的加速時間 Tsec F64 秒 第 1 段行程切換到第 2 段行程的加速 / 減速時間 Tdec F64 秒 減速時間 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=500000, Dist2= I32 StrVel=1000; I32 MaxVel=10000, MaxVel2=30000; F64 Tacc=0.1; F64 Tsec=0.1; F64 Tdec=0.1; I16 status= _DMC_01_start_ta_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); Revision November, 2011

265 第十八章單軸運動控制 API _DMC_01_start_sa_move_2seg I16 PASCAL _DMC_01_start_sa_move_2seg(U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 Dist2, I32 StrVel, I32 MaxVel, I32 MaxVel2, F64 Tacc, F64 Tsec, F64 Tdec) 參照 S-curve 速度剖面下的絕對座標進行二段速度運動位移 在操作該函式前,Motion Buffer 會先被清除 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的第 1 段絕對座標行程 Dist2 I32 脈波數 指定的第 2 段絕對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 第 1 段行程中設置的最大速度 MaxVel2 I32 脈波數 / 秒 第 2 段行程中設置的最大速度 Tacc F64 秒 指定的加速時間 Tsec F64 秒 第 1 段行程切換到第 2 段行程的加速 / 減速時間 Tdec F64 秒 減速時間 U16 CardNo=0, NodeID =1, SlotID=0; I32 Dist=500000, Dist2= I32 StrVel=1000; I32 MaxVel=10000, MaxVel2=30000; F64 Tacc=0.1; F64 Tsec=0.1; F64 Tdec=0.1; I16 status= _DMC_01_start_sa_move_2seg (CardNo, NodeID, SlotID, Dist, Dist2, StrVel, MaxVel, MaxVel2, Tacc, Tsec, Tdec); Revision November,

266 第十八章單軸運動控制 API _DMC_01_start_tr_move_2seg2 I16 PASCAL _DMC_01_start_tr_move_2seg2 (U16 CardNo, U16 NodeID,U16 SlotID, I32 Dist, I32 Dist2, I32 StrVel, I32 MaxVel, I32 MaxVel2, F64 Tacc, F64 Tsec, F64 Tdec) 參照 T-curve 速度剖面下的相對座標進行二段速度運動位移 在操作該函式前,Motion Buffer 會先被清除 參數名稱 資料型別 單位 描述 CardNo U16 編號單位 介面卡號 CardNo 為 0~15 NodeID U16 編號單位 站號 ID SlotID U16 編號單位 插槽 ID Dist I32 脈波數 指定的第 1 段相對座標行程 Dist2 I32 脈波數 指定的第 2 段相對座標行程 StrVel I32 脈波數 / 秒 初始速度 MaxVel I32 脈波數 / 秒 第 1 段行程中設置的最大速度 MaxVel2 I32 脈波數 / 秒 第 2 段行程中設置的最大速度 Tacc F64 秒 指定的加速時間 Tsec F64 秒 第 1 段行程切換到第 2 段行程的加速 / 減速時間 Tdec F64 秒 減速時間 描述 圖 18.5 T-curve 速度剖面下相對座標運動 ( 灰色區塊表示為 Dist, 白色區塊則表示為 Dist2) Revision November, 2011

-i-

-i- -i- -ii- -iii- -iv- -v- -vi- -vii- -viii- -ix- -x- -xi- -xii- 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1-11 1-12 1-13 1-14 1-15 1-16 1-17 1-18 1-19 1-20 1-21 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11

More information

Microsoft Word - 强迫性活动一览表.docx

Microsoft Word - 强迫性活动一览表.docx 1 1 - / 2 - / 3 - / 4 - / 5 - I. 1. / 2. / 3. 4. 5. 6. 7. 8. 9 10 11. 12. 2 13. 14. 15. 16. 17. 18. 19. 20 21. 22 23. 24. / / 25. 26. 27. 28. 29. 30. 31. II. 1. 2 3. 4 3 5. 6 7 8. 9 10 11 12 13 14. 15.

More information

1 2 6 8 15 36 48 55 58 65 67 74 76 150 152 1 3 1 2 4 2 2001 2000 1999 12 31 12 31 12 31 304,347 322,932 231,047 14,018 16,154 5,665 (i) 0.162 0.193 0.082 (ii) 0.165 0.227 0.082 (iii) 10.08 13.37 6.47 0.688

More information

Microsoft Word - Entry-Level Occupational Competencies for TCM in Canada200910_ch _2_.doc

Microsoft Word - Entry-Level Occupational Competencies for TCM in Canada200910_ch _2_.doc 草 稿 致 省 級 管 理 單 位 之 推 薦 書 二 零 零 九 年 十 月 十 七 日 加 拿 大 中 醫 管 理 局 聯 盟 All rights reserved 序 言 加 拿 大 中 醫 管 理 局 聯 盟, 於 二 零 零 八 年 一 月 至 二 零 零 九 年 十 月 間, 擬 定 傳 統 中 醫 執 業 之 基 礎 文 件 由 臨 床 經 驗 豐 富 之 中 醫 師 教 育 者 及

More information

全唐诗28

全唐诗28 ... 1... 1... 1... 2... 2... 2... 3... 3... 4... 4... 4... 5... 5... 5... 5... 6... 6... 6... 6... 7... 7... 7... 7... 8... 8 I II... 8... 9... 9... 9...10...10...10...11...11...11...11...12...12...12...13...13...13...14...14...14...15...15...15...16...16...16...17...17

More information

智力测试故事

智力测试故事 II 980.00 ... 1... 1... 1... 2... 2... 2... 3... 3... 3... 3... 4... 4... 5... 5... 6... 6... 7... 7... 8... 8... 8... 9... 9...10...10...10 I II...11...11...11...12...13...13...13...14...14...14...15...15...15...16...16...17...17...18...18...19...19...19...19...20...20...21...21...21

More information

II II

II II I I II II III 1. 2. 3. III 4. IV 5. 6. 8. 9. 10. 12. IV V V VI VI VII VII VIII VIII IX IX X X XI XI XII XII 1 1 2 2 3 3 4 33 35 4 5 5 6 6 7 ( ) 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17

More information

奇闻怪录

奇闻怪录 ... 1... 1... 2... 3... 3... 4... 4... 5... 5... 6... 8... 9... 10... 10... 11... 11... 13... 13... 14... 14... 15... 16... 17... 21 I ... 22... 23... 23... 24... 25... 25... 26... 27... 28... 29 UFO...

More information

一、

一、 ... 1...24...58 - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - i. ii. iii. iv. i. ii. iii. iv. v. vi. vii. viii. ix. x. - 9 - xi. - 10 - - 11 - -12- -13- -14- -15- C. @ -16- @ -17- -18- -19- -20- -21- -22-

More information

30,000,000 75,000,000 75,000, (i) (ii) (iii) (iv)

30,000,000 75,000,000 75,000, (i) (ii) (iii) (iv) 30,000,000 75,000,000 75,000,000 24 (i) (ii) (iii) (iv) # * 1,800,000 1,800,000 15% 3,400,000 3,400,000 15% 4,200,000 4,200,000 10% 8,600,000 8,600,000 10% 12,600,000 12,600,000 88% 10% 16,000,000 16,000,000

More information

Microsoft Word - MP2018_Report_Chi _12Apr2012_.doc

Microsoft Word - MP2018_Report_Chi _12Apr2012_.doc 人 力 資 源 推 算 報 告 香 港 特 別 行 政 區 政 府 二 零 一 二 年 四 月 此 頁 刻 意 留 空 - 2 - 目 錄 頁 前 言 詞 彙 縮 寫 及 注 意 事 項 摘 要 第 一 章 : 第 二 章 : 第 三 章 : 第 四 章 : 附 件 一 : 附 件 二 : 附 件 三 : 附 件 四 : 附 件 五 : 附 件 六 : 附 件 七 : 引 言 及 技 術 大 綱 人

More information

南華大學數位論文

南華大學數位論文 1 i -------------------------------------------------- ii iii iv v vi vii 36~39 108 viii 15 108 ix 1 2 3 30 1 ~43 2 3 ~16 1 2 4 4 5 3 6 8 6 4 4 7 15 8 ----- 5 94 4 5 6 43 10 78 9 7 10 11 12 10 11 12 9137

More information

李天命的思考藝術

李天命的思考藝術 ii iii iv v vi vii viii ix x 3 1 2 3 4 4 5 6 7 8 9 5 10 1 2 11 6 12 13 7 8 14 15 16 17 18 9 19 20 21 22 10 23 24 23 11 25 26 7 27 28 12 13 29 30 31 28 32 14 33 34 35 36 5 15 3 1 2 3 4 5 6 7 8 9 10 11

More information

皮肤病防治.doc

皮肤病防治.doc ...1...1...2...3...4...5...6...7...7...9...10... 11...12...14...15...16...18...19...21 I ...22...22...24...25...26...27...27...29...30...31...32...33...34...34...36...36...37...38...40...41...41...42 II

More information

性病防治

性病防治 ...1...2...3...4...5...5...6...7...7...7...8...8...9...9...10...10... 11... 11 I ...12...12...12...13...14...14...15...17...20...20...21...22...23...23...25...27...33...34...34...35...35 II ...36...38...39...40...41...44...49...49...53...56...57...57...58...58...59...60...60...63...63...65...66

More information

中国南北特色风味名菜 _一)

中国南北特色风味名菜 _一) ...1...1...2...3...3...4...5...6...7...7...8...9... 10... 11... 13... 13... 14... 16... 17 I ... 18... 19... 20... 21... 22... 23... 24... 25... 27... 28... 29... 30... 32... 33... 34... 35... 36... 37...

More information

全唐诗24

全唐诗24 ... 1... 1... 2... 2... 3... 3... 4... 4... 5... 5... 6... 6... 7... 7... 8... 8... 9... 9...10...10...10...11...12...12...12...13...13 I II...14...14...14...15...15...15...16...16...16...17...17...18...18...18...19...19...19...20...20...20...21...21...22...22...23...23...23...24

More information

509 (ii) (iii) (iv) (v) 200, , , , C 57

509 (ii) (iii) (iv) (v) 200, , , , C 57 59 (ii) (iii) (iv) (v) 500,000 500,000 59I 18 (ii) (iii) (iv) 200,000 56 509 (ii) (iii) (iv) (v) 200,000 200,000 200,000 500,000 57 43C 57 (ii) 60 90 14 5 50,000 43F 43C (ii) 282 24 40(1B) 24 40(1) 58

More information

I. 1-2 II. 3 III. 4 IV. 5 V. 5 VI. 5 VII. 5 VIII. 6-9 IX. 9 X XI XII. 12 XIII. 13 XIV XV XVI. 16

I. 1-2 II. 3 III. 4 IV. 5 V. 5 VI. 5 VII. 5 VIII. 6-9 IX. 9 X XI XII. 12 XIII. 13 XIV XV XVI. 16 125-0834I/1405/GH I. 1-2 II. 3 III. 4 IV. 5 V. 5 VI. 5 VII. 5 VIII. 6-9 IX. 9 X. 10-11 XI. 11-12 XII. 12 XIII. 13 XIV. 14-15 XV. 15-16 XVI. 16 I. * ++p ++ p ++ ++ * ++p ++ ++ ++p 1 2 ++ ++ ++ ++ ++ I.

More information

_Chi.ps, page Preflight ( _Chi.indd )

_Chi.ps, page Preflight ( _Chi.indd ) on conviction3 5 1. / 2. 14 3. 2 2 3 4. 372 12 5. 6. 1 7. 1 2 i ii iii iv 8. 9. 1 12 2 2 i ii iii i ii iii 3 iv http://www.pcpd.org.hk v i ii iii 4 i ii i / ii 5 1. 2. 3. i ii iii iv v vi 4. 5. 6 6. 7.

More information

2. 我 沒 有 說 實 話, 因 為 我 的 鞋 子 其 實 是 [ 黑 色 / 藍 色 / 其 他 顏 色.]. 如 果 我 說 我 現 在 是 坐 著 的, 我 說 的 是 實 話 嗎? [ 我 說 的 對 還 是 不 對 ]? [ 等 對 方 回 答 ] 3. 這 是 [ 實 話 / 對 的

2. 我 沒 有 說 實 話, 因 為 我 的 鞋 子 其 實 是 [ 黑 色 / 藍 色 / 其 他 顏 色.]. 如 果 我 說 我 現 在 是 坐 著 的, 我 說 的 是 實 話 嗎? [ 我 說 的 對 還 是 不 對 ]? [ 等 對 方 回 答 ] 3. 這 是 [ 實 話 / 對 的 附 錄 美 國 國 家 兒 童 健 康 與 人 類 發 展 中 心 (NICHD) 偵 訊 指 導 手 冊 I. 開 場 白 1. 你 好, 我 的 名 字 是, 我 是 警 察 [ 介 紹 房 間 內 的 其 他 人, 不 過, 在 理 想 狀 態 下, 房 間 裡 不 該 有 其 他 人 ] 今 天 是 ( 年 月 日 ), 現 在 是 ( 幾 點 幾 分 ) 我 是 在 ( 地 點 ) 問 你

More information

2015年廉政公署民意調查

2015年廉政公署民意調查 報 告 摘 要 2015 年 廉 政 公 署 周 年 民 意 調 查 背 景 1.1 為 了 掌 握 香 港 市 民 對 貪 污 問 題 和 廉 政 公 署 工 作 的 看 法, 廉 政 公 署 在 1992 至 2009 年 期 間, 每 年 均 透 過 電 話 訪 問 進 行 公 眾 民 意 調 查 為 更 深 入 了 解 公 眾 對 貪 污 問 題 的 看 法 及 關 注, 以 制 訂 適 切

More information

Page i

Page i 况 1 1.1.1 1.1.2 1.1.3 2 2.1 2.1.1 2.1.2 2.1.3 2.1.4 Page i 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.3 2.3.1 Page ii 2.3.2 2.3.3 2.3.4 2.4 2.4.1 2.4.2 2.4.3 Page iii 2.5 2.5.1 2.6 2.6.1 2.6.2 3 3.1 3.1.1

More information

Microsoft Word - Paper on PA (Chi)_2016.01.19.docx

Microsoft Word - Paper on PA (Chi)_2016.01.19.docx 立 法 會 發 展 事 務 委 員 會 二 零 一 六 年 施 政 報 告 及 施 政 綱 領 有 關 發 展 局 的 措 施 引 言 行 政 長 官 在 二 零 一 六 年 一 月 十 三 日 發 表 題 為 創 新 經 濟 改 善 民 生 促 進 和 諧 繁 榮 共 享 的 二 零 一 六 年 施 政 報 告 施 政 報 告 夾 附 施 政 綱 領, 臚 列 政 府 推 行 的 新 措 施 和

More information

<4D6963726F736F667420576F7264202D203938BEC7A67EABD7B942B0CAC15AC075B3E6BF57A9DBA5CDC2B2B3B92DA5BFBD542E646F63>

<4D6963726F736F667420576F7264202D203938BEC7A67EABD7B942B0CAC15AC075B3E6BF57A9DBA5CDC2B2B3B92DA5BFBD542E646F63> 98 年 3 月 11 日 依 本 校 98 學 年 度 招 生 委 員 會 第 1 次 會 議 核 定 大 同 技 術 學 院 98 學 年 度 重 點 運 動 項 目 績 優 學 生 單 獨 招 生 簡 章 大 同 技 術 學 院 招 生 委 員 會 編 印 校 址 :600 嘉 義 市 彌 陀 路 253 號 電 話 :(05)2223124 轉 203 教 務 處 招 生 專 線 :(05)2223124

More information

(Microsoft Word - \261d\260\267\244\244\244\345\253O\263\346_201403)

(Microsoft Word - \261d\260\267\244\244\244\345\253O\263\346_201403) 香 港 德 輔 道 中 71 號 永 安 集 團 大 廈 九 樓 9/F., Wing On House, 71 Des Voeux Road C., Hong Kong. Tel: 2867 0888 Fax: 3906 9906 康 健 住 院 現 金 保 險 計 劃 保 單 投 保 人 以 一 份 投 保 書 及 聲 明 謹 向 中 銀 集 團 保 險 有 限 公 司 ( 下 稱 本 公 司

More information

穨學前教育課程指引.PDF

穨學前教育課程指引.PDF i 1 1.1 1 1.2 1 4 2.1 4 2.2 5 2.3 7 2.4 9 2.5 11 2.6 1 2 1 5 3.1 1 5 3.2 1 5 19 4.1 19 4.2 19 4.3 2 1 4.4 29 4.5 38 4.6 4 3 4.7 47 50 5.1 5 0 5.2 5 0 5.3 6 2 5.4 9 4 5.5 1 2 6 ( ) 1 2 7 ( ) 1 31 ( ) 1

More information

Microsoft Word - John_Ch_1202

Microsoft Word - John_Ch_1202 新 约 圣 经 伴 读 约 翰 福 音 目 录 说 明..I 序 言 : 圣 经 中 神 圣 启 示 的 三 层.II 按 时 分 粮 的 原 则..VIII 纲 目 XI 第 一 章..1 第 二 章 13 第 三 章 25 第 四 章 37 第 五 章 49 第 六 章 61 第 七 章 73 第 八 章 85 第 九 章 97 第 十 章..109 第 十 一 章..121 第 十 二 章..133

More information

國立中山大學學位論文典藏.PDF

國立中山大學學位論文典藏.PDF I II III IV V VI VII VIII IX X 苷 XI XII 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

More information

眼病防治

眼病防治 ( 20 010010) 787 1092 1/32 498.50 4 980 2004 9 1 2004 9 1 1 1 000 ISBN 7-204-05940-9/R 019 1880.00 ( 20.00 ) ...1...1...2...3...5...5...6...7...9... 11...13...14...15...17...18...19...20...21 I II...21...22...23...24...25...27...27...28...29...30...31...33...33...34...36...38...39...40...41...42...43...45

More information

中国南北特色风味名菜 _八)

中国南北特色风味名菜 _八) ( 20 010010) 7871092 1/32 356.25 4 760 2004 8 1 2004 8 1 11 000 ISBN 7-204-05943-3/Z102 1026.00 ( 18.00 ) ...1...2...2...4...6...7...8...9... 10... 11... 12... 13... 13... 14... 15... 17... 18... 19...

More information

Microsoft Word - Final Chi-Report _PlanD-KlnEast_V7_ES_.doc

Microsoft Word - Final Chi-Report _PlanD-KlnEast_V7_ES_.doc 九 龍 東 商 業 的 統 計 調 查 - 行 政 摘 要 - 2011 年 5 月 統 計 圖 行 政 摘 要...1 圖 I: 在 不 同 地 區 及 樓 宇 類 別 的 數 目 及 比 例...9 圖 II: 影 響 選 擇 地 點 的 因 素 的 重 要 程 度 對 比 就 現 時 所 在 地 點 各 項 因 素 的 滿 意 程 度...20 圖 III: 影 響 選 擇 樓 宇 的 因 素

More information

全唐诗50

全唐诗50 ... 1... 1... 2... 2... 3... 3... 3... 4... 4... 5... 5... 6... 6... 6... 7... 7... 7... 8... 8... 8... 9 I II... 9...10...10...10...11...11...11...12...12...12...13...14...14...15...15...16...16...16...17,...17...18...18...19...19...19

More information

穨ecr2_c.PDF

穨ecr2_c.PDF i ii iii iv v vi vii viii 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 26 27 2 28 29 30 31 32 33 34 35 36 37 38 39 40 3 4 41 42 43 5 44 45 46 6 47 48 49 50 51 52 1 53 2 54 55 3 56

More information

電腦相關罪行跨部門工作小組-報告書

電腦相關罪行跨部門工作小組-報告書 - ii - - iii - - iv - - v - - vi - - vii - - viii - (1) 2.1 (2) (3) 13.6 (4) 1.6 (5) 21 (6) (7) 210 (8) (9) (10) (11) ( ) ( 12) 20 60 16 (13) ( ) (

More information

i

i i ii iii iv v vi vii viii ===== 1 2 3 4 5 6 7 8 9 10 ==== 11 12 13 14 15 16 17 18 19 ==== ==== 20 .. ===== ===== ===== ===== ===== ======.. 21 22 ===== ===== ===== ===== 23 24 25 26 27 28 29 ==== ====

More information

发展党员工作手册

发展党员工作手册 发 展 党 员 工 作 问 答 目 录 一 总 论...9 1. 发 展 党 员 工 作 的 方 针 是 什 么? 如 何 正 确 理 解 这 个 方 针?... 9 2. 为 什 么 强 调 发 展 党 员 必 须 保 证 质 量?... 9 3. 如 何 做 到 慎 重 发 展?... 10 4. 如 何 处 理 好 发 展 党 员 工 作 中 的 重 点 与 一 般 的 关 系?...11 5.

More information

i

i 9 1 2 3 4 i 5 6 ii iii iv v vi vii viii 1 1 1 2 3 4 2 5 6 2 3 2.10 ( 2.11 ) ( 2.11 ) ( 2.9 ) 7 8 9 3 10 5% 2% 4 11 93% (2001 02 2003 04 ) ( ) 2,490 (100%) 5 12 25% (2.57% 25%) 6 (2001 02 2003 04 ) 13 100%

More information

39898.indb

39898.indb 1988 4 1998 12 1990 5 40 70.................................................. 40.............................................................. 70..............................................................

More information

目 录 院 领 导 职 责... 1 院 长 职 责... 1 医 疗 副 院 长 职 责... 1 教 学 副 院 长 职 责... 2 科 研 副 院 长 职 责... 2 后 勤 副 院 长 职 责... 3 主 管 南 院 区 副 院 长 职 责... 3 党 委 书 记 职 责... 4

目 录 院 领 导 职 责... 1 院 长 职 责... 1 医 疗 副 院 长 职 责... 1 教 学 副 院 长 职 责... 2 科 研 副 院 长 职 责... 2 后 勤 副 院 长 职 责... 3 主 管 南 院 区 副 院 长 职 责... 3 党 委 书 记 职 责... 4 目 录 院 领 导 职 责... 1 院 长 职 责... 1 医 疗 副 院 长 职 责... 1 教 学 副 院 长 职 责... 2 科 研 副 院 长 职 责... 2 后 勤 副 院 长 职 责... 3 主 管 南 院 区 副 院 长 职 责... 3 党 委 书 记 职 责... 4 纪 委 书 记 职 责... 5 院 长 办 公 室... 6 院 长 办 公 室 工 作 职 责...

More information

(b) 3 (a) (b) 7 (a) (i) (ii) (iii) (iv) (v) (vi) (vii) 57

(b) 3 (a) (b) 7 (a) (i) (ii) (iii) (iv) (v) (vi) (vii) 57 (i) (ii) (iii) A. 123 2 3(1) (2) (i) 41 (ii) (iii) 121 4(3) (i) (ii) (iii) 123A 3 (a) 56 (b) 3 (a) (b) 7 (a) (i) (ii) (iii) (iv) (v) (vi) (vii) 57 (viii) (ix) (x) 4B(2)(d) (e) (f) (xi) (xii) (b) (a) (i)

More information

款 及 赔 偿 限 额 及 限 制 给 付 下 述 保 险 金, 但 有 关 医 疗 费 用 及 受 保 服 务 必 须 是 : i. 医 学 上 合 适 及 必 须 的, 及 ii. 由 医 疗 服 务 提 供 者 开 单 收 费 的, 及 iii. 符 合 通 常 惯 性 及 合 理 水 平 的

款 及 赔 偿 限 额 及 限 制 给 付 下 述 保 险 金, 但 有 关 医 疗 费 用 及 受 保 服 务 必 须 是 : i. 医 学 上 合 适 及 必 须 的, 及 ii. 由 医 疗 服 务 提 供 者 开 单 收 费 的, 及 iii. 符 合 通 常 惯 性 及 合 理 水 平 的 富 德 财 产 保 险 股 份 有 限 公 司 留 学 美 国 学 生 医 疗 综 合 保 险 条 款 总 则 第 一 条 合 同 构 成 本 保 险 合 同 由 保 险 条 款 投 保 单 保 险 单 批 单 或 其 他 保 险 凭 证 组 成 凡 涉 及 本 保 险 合 同 的 约 定, 均 应 采 用 书 面 形 式 第 二 条 被 保 险 人 及 被 保 险 资 格 任 何 身 体 健 康

More information

C160832199Ann.indd

C160832199Ann.indd 718 (I)(1) (2) 1.00 (II) TAI Capital LLC 3,002,000,000 1.00 3,002,184,872 871,643,074 58.07% 1,743,286,148 1,743,286,148 1 2,988,000,000 0.99 1,245,000,000 (i)659,000,000(ii) 586,000,000 1,778,000,000(i)586,000,000

More information

(i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (xi) 60.99%39.01%

(i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (xi) 60.99%39.01% 48.55% 1998 19986 30%20086 2009 2009 200 (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (xi) 60.99%39.01% 200820092010 772 928960200820092010 1512928 201 1. 20091222(2009)7267 20042008 16,980,954.02

More information

Microsoft Word - NCH final report_CHI _091118_ revised on 10 Dec.doc

Microsoft Word - NCH final report_CHI _091118_ revised on 10 Dec.doc 十 八 區 區 議 會 的 簡 介 會 (1) 東 區 區 議 會 (2008 年 4 月 24 日 ) III. 中 環 新 海 濱 城 市 設 計 研 究 第 二 階 段 公 眾 參 與 ( 東 區 區 議 會 文 件 第 51/08 號 ) 10. 主 席 歡 迎 發 展 局 副 秘 書 長 ( 規 劃 及 地 政 ) 麥 駱 雪 玲 太 平 紳 士 規 劃 署 副 署 長 / 地 區 黃 婉

More information

<4D6963726F736F667420576F7264202D205B345DB5D8AE4CACD732303135AECAAFC5C1C9C1DCBDD0AB48A4CEB3F8A657AAED>

<4D6963726F736F667420576F7264202D205B345DB5D8AE4CACD732303135AECAAFC5C1C9C1DCBDD0AB48A4CEB3F8A657AAED> 華 夏 盃 全 國 全 國 數 學 奧 林 匹 克 邀 請 賽 ( 華 南 賽 區 ) 晉 級 賽 比 賽 詳 情 : 一 比 賽 對 象 : 小 學 一 至 六 年 級 中 學 一 二 年 級 二 比 賽 日 期 及 時 間 : 年 2 月 15 日 ( 星 期 日 ) 小 學 組 小 一 級 小 二 級 小 三 級 小 四 級 小 五 級 小 六 級 時 間 13:10~1:20 13:10~1:20

More information

施 的 年 度 維 修 工 程 已 於 4 月 15 日 完 成, 並 於 4 月 16 日 重 新 開 放 給 市 民 使 用 ii. 天 水 圍 游 泳 池 的 年 度 維 修 工 程 已 於 3 月 31 日 完 成, 並 於 4 月 1 日 重 新 開 放 給 市 民 使 用 iii. 元

施 的 年 度 維 修 工 程 已 於 4 月 15 日 完 成, 並 於 4 月 16 日 重 新 開 放 給 市 民 使 用 ii. 天 水 圍 游 泳 池 的 年 度 維 修 工 程 已 於 3 月 31 日 完 成, 並 於 4 月 1 日 重 新 開 放 給 市 民 使 用 iii. 元 地 委 會 文 件 2016/ 第 25 號 ( 於 6.5.2016 會 議 討 論 ) 康 樂 及 文 化 事 務 署 在 元 朗 區 內 舉 辦 的 康 樂 體 育 活 動 及 設 施 管 理 綜 合 匯 報 (2016 年 5 月 號 報 告 ) 目 的 本 文 件 旨 在 向 各 委 員 匯 報 康 樂 及 文 化 事 務 署 ( 康 文 署 ) 於 2016 年 2 月 至 5 月 在

More information

群科課程綱要總體課程計畫書

群科課程綱要總體課程計畫書 核 准 文 號 :102 年 4 月 22 日 臺 教 國 署 高 字 第 1020036237 號 國 立 曾 文 高 級 農 工 職 業 學 校 群 科 課 程 綱 要 總 體 課 程 計 畫 書 (102 學 年 度 入 學 學 生 適 用 ) 中 華 民 國 102 年 04 月 22 日 國 立 曾 文 高 級 農 工 職 業 學 校 群 科 課 程 綱 要 總 體 課 程 計 畫 書 核

More information

对联故事

对联故事 980.00 ... 1... 1... 2... 3... 3... 4... 4... 5... 5... 6... 7... 7... 8... 9...10...10...11...12...13...13...14...15...15...16...17 I II...18...18...19...19...20...21...21...22...22...23...24...25...25...26...26...27...28...29...29...30...30...31...32...32...33...34...34...35

More information

前 言 根 据 澳 门 特 别 行 政 区 第 11/1999 号 法 律 第 三 条 规 定, 审 计 长 执 行 其 职 责, 已 经 对 财 政 局 提 交 的 2011 年 度 澳 门 特 别 行 政 区 总 帐 目 ( 总 帐 目 ) 进 行 了 审 计 与 2010 年 度 相 同, 本 年 度 的 总 帐 目 由 政 府 一 般 综 合 帐 目 及 特 定 机 构 汇 总 帐 目, 两

More information

我 非 常 希 望 该 小 组 的 建 议 尤 其 是 其 执 行 摘 要 能 受 到 将 于 2000 年 9 月 来 纽 约 参 加 千 年 首 脑 会 议 的 所 有 领 导 人 的 注 意 这 次 历 史 性 的 高 级 别 会 议 提 供 了 一 个 独 特 的 机 会 使 我 们 能 够

我 非 常 希 望 该 小 组 的 建 议 尤 其 是 其 执 行 摘 要 能 受 到 将 于 2000 年 9 月 来 纽 约 参 加 千 年 首 脑 会 议 的 所 有 领 导 人 的 注 意 这 次 历 史 性 的 高 级 别 会 议 提 供 了 一 个 独 特 的 机 会 使 我 们 能 够 联 合 国 A/55/305 大 会 安 全 理 事 会 Distr.: General 21 August 2000 Chinese Original: English 大 会 第 五 十 五 届 会 议 临 时 议 程 项 目 87 整 个 维 持 和 平 行 动 问 题 所 有 方 面 的 全 盘 审 查 安 全 理 事 会 第 五 十 五 年 2000 年 8 月 21 日 秘 书 长 给

More information

第 二 輯 目 錄.indd 2 目 錄 編 寫 說 明 附 : 香 港 中 學 文 憑 中 國 語 文 科 評 核 模 式 概 述 綜 合 能 力 考 核 考 試 簡 介 及 應 試 技 巧 常 用 實 用 文 文 體 格 式 及 寫 作 技 巧 綜 合 能 力 分 項 等 級 描 述 練 習 一

第 二 輯 目 錄.indd 2 目 錄 編 寫 說 明 附 : 香 港 中 學 文 憑 中 國 語 文 科 評 核 模 式 概 述 綜 合 能 力 考 核 考 試 簡 介 及 應 試 技 巧 常 用 實 用 文 文 體 格 式 及 寫 作 技 巧 綜 合 能 力 分 項 等 級 描 述 練 習 一 作 出 發 者 : 劉 梓 淩 版 : 精 工 出 版 社 行 : 精 工 印 書 局 香 港 銅 鑼 灣 道 168 號 電 話 :2571 1770 2554 1247 傳 真 :2806 0974 2873 2412 網 二 O 一 一 年 址 :http://www.jingkung.com 初 版 版 權 所 有, 翻 版 必 究 如 未 獲 得 本 公 司 同 意, 不 得 用 任 何

More information

兒 童 會 4 摩 爾 門 經 本 教 材 專 為 8-11 歲 的 兒 童 設 計 耶 穌 基 督 後 期 聖 徒 教 會 台 北 發 行 中 心 印 行

兒 童 會 4 摩 爾 門 經 本 教 材 專 為 8-11 歲 的 兒 童 設 計 耶 穌 基 督 後 期 聖 徒 教 會 台 北 發 行 中 心 印 行 兒 童 會 4 摩 爾 門 經 8-11 歲 兒 童 會 4 摩 爾 門 經 本 教 材 專 為 8-11 歲 的 兒 童 設 計 耶 穌 基 督 後 期 聖 徒 教 會 台 北 發 行 中 心 印 行 1997, 1997 by Intellectual Reserve, Inc. 1997 耶 穌 基 督 後 期 聖 徒 教 會 版 權 所 有 台 北 發 行 中 心 印 行 英 語 核 准 日

More information

中国石化齐鲁股份有限公司

中国石化齐鲁股份有限公司 2004 2004 3 4 6 9 13 14 15 22 24 26 49 1 2004 9 2 2004 SINOPEC QILU COMPANY LTD. 0533-3583728 lifan@qilu.com.cn 0533-7512530 baoweisong@163.net 0533-3583718 255086 qlsh600002@126.com http://www.qilu.com.cn

More information

就財務委員會委員審核2015至16年度開支預算所提出初步問題的答覆

就財務委員會委員審核2015至16年度開支預算所提出初步問題的答覆 索 引 財 務 委 員 會 審 核 二 零 一 五 至 一 六 年 度 節 會 議 綜 合 檔 案 名 稱 :DEVB(W)-2-c1.docx 問 題 編 號 委 員 姓 名 總 目 綱 領 DEVB(W)001 2007 陳 恒 鑌 159 - DEVB(W)002 0152 陳 偉 業 159 (4) 起 動 九 龍 東 DEVB(W)003 0701 陳 婉 嫻 159 (2) 文 物 保

More information

「保險中介人資格考試」手冊

「保險中介人資格考試」手冊 目 錄 內 容 頁 次 1. 引 言.. 1 2. 考 試.. 1 3. 報 考 詳 情.. 3 4. 註 冊 手 續.. 3 5. 考 試 費.. 4 6. 准 考 證.. 5 7. 選 擇 考 試 時 間.. 5 8. 電 腦 或 系 統 出 現 問 題..... 5 9. 考 試 規 則.. 5 10. 取 消 資 格.. 6 11. 核 實 考 生 身 分.. 6 12. 發 出 成 績 通

More information

Microsoft Word - Panel Paper on T&D-Chinese _as at 6.2.2013__final_.doc

Microsoft Word - Panel Paper on T&D-Chinese _as at 6.2.2013__final_.doc 二 零 一 三 年 二 月 十 八 日 會 議 討 論 文 件 立 法 會 CB(4)395/12-13(03) 號 文 件 立 法 會 公 務 員 及 資 助 機 構 員 工 事 務 委 員 會 公 務 員 培 訓 及 發 展 概 況 目 的 本 文 件 介 紹 公 務 員 事 務 局 為 公 務 員 所 提 供 培 訓 和 發 展 的 最 新 概 況, 以 及 將 於 二 零 一 三 年 推 出

More information

江苏宁沪高速公路股份有限公司.PDF

江苏宁沪高速公路股份有限公司.PDF - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - 33.33% ( ) ( ) ( ) 33.33% ( ) ( ) ( ) 1 1 1992 8 3200001100976 1997 6 27 H 12.22 2001 1 16 A 1.5 2001 12 3 503,774.75 14,914,399,845.00 13,445,370,274.00

More information

绝妙故事

绝妙故事 980.00 III... 1... 1... 4... 5... 8...10...11...12...14...16...18...20...23...23...24...25...27...29...29...31...34...35...36...39...41 IV...43...44...46...47...48...49...50...51...52...54...56...57...59...60...61...62...63...66...67...68...69...70...72...74...76...77...79...80

More information

5498 立 法 會 2013 年 3 月 27 日 李 國 麟 議 員, S.B.S., J.P. 林 健 鋒 議 員, G.B.S., J.P. 梁 君 彥 議 員, G.B.S., J.P. 黃 定 光 議 員, S.B.S., J.P. 湯 家 驊 議 員, S.C. 何 秀 蘭 議 員 李

5498 立 法 會 2013 年 3 月 27 日 李 國 麟 議 員, S.B.S., J.P. 林 健 鋒 議 員, G.B.S., J.P. 梁 君 彥 議 員, G.B.S., J.P. 黃 定 光 議 員, S.B.S., J.P. 湯 家 驊 議 員, S.C. 何 秀 蘭 議 員 李 立 法 會 2013 年 3 月 27 日 5497 會 議 過 程 正 式 紀 錄 2013 年 3 月 27 日 星 期 三 上 午 11 時 正 會 議 開 始 出 席 議 員 : 主 席 曾 鈺 成 議 員, G.B.S., J.P. 何 俊 仁 議 員 李 卓 人 議 員 涂 謹 申 議 員 陳 鑑 林 議 員, S.B.S., J.P. 梁 耀 忠 議 員 劉 皇 發 議 員, 大 紫

More information

(i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (i) (ii)(iii) (iv) (v)

(i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (i) (ii)(iii) (iv) (v) 1948 12 1 1986 1 1995 1995 3 1995 5 2003 4 2003 12 2015 82015 10 1 2004 2 1 (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (i) (ii)(iii) (iv) (v) (vi) (vii)(viii) (ix) (x) (xi) 2013 8 15 (i) (ii) (iii)

More information

榫 卯 是 什 麼? 何 時 開 始 應 用 於 建 築 中? 38 中 國 傳 統 建 築 的 屋 頂 有 哪 幾 種 形 式? 40 大 內 高 手 的 大 內 指 什 麼? 42 街 坊 四 鄰 的 坊 和 街 分 別 指 什 麼? 44 北 京 四 合 院 的 典 型 格 局 是 怎 樣 的

榫 卯 是 什 麼? 何 時 開 始 應 用 於 建 築 中? 38 中 國 傳 統 建 築 的 屋 頂 有 哪 幾 種 形 式? 40 大 內 高 手 的 大 內 指 什 麼? 42 街 坊 四 鄰 的 坊 和 街 分 別 指 什 麼? 44 北 京 四 合 院 的 典 型 格 局 是 怎 樣 的 目 錄 中 華 醫 藥 以 醫 術 救 人 為 何 被 稱 為 懸 壺 濟 世? 2 什 麼 樣 的 醫 生 才 能 被 稱 為 華 佗 再 世? 4 中 醫 如 何 從 臉 色 看 人 的 特 質? 6 中 醫 怎 樣 從 五 官 看 病? 8 中 醫 看 舌 頭 能 看 出 些 什 麼 來? 10 中 醫 真 的 能 靠 一 個 枕 頭, 三 根 指 頭 診 病 嗎? 12 切 脈 能 判 斷

More information

尿路感染防治.doc

尿路感染防治.doc ...1...1...2...4...6...7...7...10...12...13...15...16...18...19...24...25...26...27...28 I II...29...30...31...32...33...34...36...37...37...38...40...40...41...43...44...46...47...48...48...49...52 III...55...56...56...57...58

More information

心理障碍防治(下).doc

心理障碍防治(下).doc ( 20 010010) 787 1092 1/32 498.50 4 980 2004 9 1 2004 9 1 1 1 000 ISBN 7-204-05940-9/R 019 1880.00 ( 20.00 ) ...1...2...2...3...4...5...6...7...8...9...10... 11...12...13...15...16...17...19...21 I ...23...24...26...27...28...30...32...34...37...39...40...42...42...44...47...50...52...56...58...60...64...68

More information

Microsoft Word - COC HKROO App I _Chi_ Jan2012.doc

Microsoft Word - COC HKROO App I _Chi_ Jan2012.doc 附 錄 I 目 錄 項 目 貨 品 描 述 頁 數 (I) 活 動 物 ; 動 物 1 (II) 植 物 2 (III) 動 物 或 植 物 脂 肪 及 油 及 其 分 化 後 剩 餘 的 ; 經 處 理 可 食 的 脂 肪 ; 動 物 或 植 物 蠟 2 (IV) 經 配 製 的 食 品 ; 飲 料 酒 及 醋 ; 煙 草 及 製 成 的 煙 草 代 替 品 2 (V) 礦 產 5 (VI) 化

More information

14A 0.1%5% 14A 14A.52 1 2 3 30 2

14A 0.1%5% 14A 14A.52 1 2 3 30 2 2389 30 1 14A 0.1%5% 14A 14A.52 1 2 3 30 2 (a) (b) (c) (d) (e) 3 (i) (ii) (iii) (iv) (v) (vi) (vii) 4 (1) (2) (3) (4) (5) 400,000 (a) 400,000300,000 100,000 5 (b) 30% (i)(ii) 200,000 400,000 400,000 30,000,000

More information

(Chi)_.indb

(Chi)_.indb 1,000,000 4,000,000 1,000,000 10,000,000 30,000,000 V-1 1,000,000 2,000,000 20,000,00010,000,0005,000,000 3,000,000 30 20% 35% 20%30% V-2 1) 2)3) 171 10,000,00050% 35% 171 V-3 30 V-4 50,000100,000 1) 2)

More information

穨_2_.PDF

穨_2_.PDF 6 7.... 9.. 11.. 12... 14.. 15.... 3 .. 17 18.. 20... 25... 27... 29 30.. 4 31 32 34-35 36-38 39 40 5 6 : 1. 2. 1. 55 (2) 2. : 2.1 2.2 2.3 3. 4. ( ) 5. 6. ( ) 7. ( ) 8. ( ) 9. ( ) 10. 7 ( ) 1. 2. 3. 4.

More information

捕捉儿童敏感期

捕捉儿童敏感期 目弽 2010 捕捉儿童敏感期 I a mao 2010-3-27 整理 早教资料每日分享 http://user.qzone.qq.com/2637884895 目弽 目彔 目弽... I 出版前言... - 1 竨一章 4 丢孝子癿敂感朏敀乞... - 1 - 妞妞 0 4 岁 海颖 妞妞癿妈妈... - 1 黑白相亝癿地斱... - 1 斵转... - 2 就丌要新帰子... - 2 小霸王...

More information

世界名画及画家介绍(四).doc

世界名画及画家介绍(四).doc II...1...2...2...3...4...5...7...7...8...9...9...10... 11...12...13...14...15...15...16...18...18...19...20 III...21...21...22...24...24...25...26...27...28...29...30...30...31...33...33...34...35...36...36...37...38...39...40...41...42...43

More information

飞行模拟设备的鉴定和使用规则

飞行模拟设备的鉴定和使用规则 中 国 民 用 航 空 总 局 民 航 总 局 令 第 141 号 飞 行 模 拟 设 备 的 鉴 定 和 使 用 规 则 (2005 年 3 月 7 日 公 布 ) CCAR-60 中 国 民 用 航 空 总 局 令 第 141 号 飞 行 模 拟 设 备 的 鉴 定 和 使 用 规 则 已 经 2005 年 2 月 5 日 中 国 民 用 航 空 总 局 局 务 会 议 通 过, 现 予 公 布,

More information

歡 迎 您 成 為 滙 豐 銀 聯 雙 幣 信 用 卡 持 卡 人 滙 豐 銀 聯 雙 幣 信 用 卡 同 時 兼 備 港 幣 及 人 民 幣 戶 口, 讓 您 的 中 港 消 費 均 可 以 當 地 貨 幣 結 算, 靈 活 方 便 此 外, 您 更 可 憑 卡 於 全 球 近 400 萬 家 特

歡 迎 您 成 為 滙 豐 銀 聯 雙 幣 信 用 卡 持 卡 人 滙 豐 銀 聯 雙 幣 信 用 卡 同 時 兼 備 港 幣 及 人 民 幣 戶 口, 讓 您 的 中 港 消 費 均 可 以 當 地 貨 幣 結 算, 靈 活 方 便 此 外, 您 更 可 憑 卡 於 全 球 近 400 萬 家 特 歡 迎 您 成 為 滙 豐 銀 聯 雙 幣 信 用 卡 持 卡 人 滙 豐 銀 聯 雙 幣 信 用 卡 同 時 兼 備 港 幣 及 人 民 幣 戶 口, 讓 您 的 中 港 消 費 均 可 以 當 地 貨 幣 結 算, 靈 活 方 便 此 外, 您 更 可 憑 卡 於 全 球 近 400 萬 家 特 約 商 戶 簽 賬, 尊 享 種 種 購 物 飲 食 及 娛 樂 消 費 優 惠 如 需 查 詢 滙

More information

樹 木 管 理 專 責 小 組 報 告 人 樹 共 融 綠 滿 家 園

樹 木 管 理 專 責 小 組 報 告 人 樹 共 融 綠 滿 家 園 樹 木 管 理 專 責 小 組 報 告 人 樹 共 融 綠 滿 家 園 序 言 我 們 都 愛 樹, 愛 那 鬱 鬱 葱 葱 的 綠 意, 愛 那 股 清 新 的 氣 息, 更 愛 那 溽 暑 中 遍 地 搖 曳 的 斑 斕 樹 蔭 人 與 樹 本 應 是 那 麼 近, 但 去 年 8 月 赤 柱 塌 樹 意 外, 卻 令 我 們 赫 然 發 現, 樹 木 原 來 也 可 以 潛 藏 著 危 險,

More information

中国民用航空规章

中国民用航空规章 135 2004 12 16 CCAR-141 1 135 2 A...5 141.1...5 141.3...5 141.5...5 141.7...5 141.9...6 141.11...6 141.13...6 141.15...7 141.17...7 141.19...8 141.21...8 141.23...8 141.25...8 141.27...9 141.29...9 141.31...9

More information

緒 言 董 事 會 宣 佈, 為 能 更 具 效 率 調 配 本 集 團 內 的 資 金 有 效 降 低 集 團 的 對 外 貸 款, 並 促 進 本 集 團 內 公 司 間 的 結 算 服 務, 於 2016 年 9 月 30 日, 本 公 司 中 糧 財 務 與 管 理 公 司 訂 立 財 務

緒 言 董 事 會 宣 佈, 為 能 更 具 效 率 調 配 本 集 團 內 的 資 金 有 效 降 低 集 團 的 對 外 貸 款, 並 促 進 本 集 團 內 公 司 間 的 結 算 服 務, 於 2016 年 9 月 30 日, 本 公 司 中 糧 財 務 與 管 理 公 司 訂 立 財 務 香 港 交 易 及 結 算 所 有 限 公 司 及 香 港 聯 合 交 易 所 有 限 公 司 對 本 公 告 的 內 容 概 不 負 責, 對 其 準 確 性 或 完 整 性 亦 不 發 表 任 何 聲 明, 並 明 確 表 示, 概 不 對 因 本 公 告 全 部 或 任 何 部 分 內 容 而 產 生 或 因 倚 賴 該 等 內 容 而 引 致 的 任 何 損 失 承 擔 任 何 責 任 JOY

More information

Teaching kit_A4_part4.indd

Teaching kit_A4_part4.indd 4 ( 學 生 ) i. 認 識 專 題 研 習 甚 麽 是 專 題 研 習? 專 題 研 習 是 學 會 學 習 的 其 中 一 個 關 鍵 項 目 學 生 根 據 自 己 或 老 師 所 訂 立 的 主 題, 依 照 本 身 的 興 趣 和 能 力, 在 老 師 的 指 導 下, 擬 定 研 習 題 目, 設 定 探 討 的 策 略 和 方 法, 進 行 一 系 列 有 意 義 的 探 索 歷

More information

RDEC-RES

RDEC-RES RDEC-RES-089-005 RDEC-RES-089-005 VI I II III 6 IV 7 3 V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX 1 2 3 4 5 6 7 8 躰 ( 9 10 躰 11 12 躰 1 13 14 躰 15 16 躰 17 18 19 1 20 21 22 2 23 24 25 26

More information

<4D6963726F736F667420576F7264202D20A4A4B0EAB371AB4FB3E65FA4A4A4E5AAA95F5F32303133>

<4D6963726F736F667420576F7264202D20A4A4B0EAB371AB4FB3E65FA4A4A4E5AAA95F5F32303133> 香 港 德 輔 道 中 71 號 永 安 集 團 大 廈 9 樓 電 話 :2867 0888 傳 真 :3906 9906 查 詢 熱 線 :3187 5100 中 國 通 意 外 急 救 醫 療 計 劃 保 單 投 保 人 以 一 份 投 保 書 及 聲 明 謹 向 中 銀 集 團 保 險 有 限 公 司 ( 下 稱 本 公 司 ) 申 請 下 述 保 險 該 份 投 保 書 及 聲 明 已 被

More information

(譯本)

(譯本) 檔 號 : LD SMW 86-1/2(C) 立 法 會 參 考 資 料 摘 要 最 低 工 資 條 例 ( 第 608 章 ) 僱 傭 條 例 ( 第 57 章 ) 2015 年 最 低 工 資 條 例 ( 修 訂 附 表 3) 公 告 2015 年 僱 傭 條 例 ( 修 訂 附 表 9) 公 告 引 言 A 在 二 零 一 五 年 一 月 六 日 的 會 議 上, 行 政 會 議 建 議, 行

More information

商丘职业技术学院

商丘职业技术学院 国 家 骨 干 高 等 职 业 院 校 建 设 项 目 ( 中 央 财 政 重 点 支 持 专 业 ) 二 〇 一 二 年 六 月 畜 牧 兽 医 专 业 建 设 指 导 委 员 会 主 任 委 员 : 朱 金 凤 ( 河 南 省 高 等 学 校 教 学 名 师 ) 副 主 任 委 员 : 王 居 强 ( 河 南 省 肉 牛 工 程 技 术 开 发 中 心 ) 潘 书 林 ( 中 牟 县 奶 业 科

More information

中医疗法(下).doc

中医疗法(下).doc ( 20 010010) 787 1092 1/32 498.50 4 980 2004 9 1 2004 9 1 1 1 000 ISBN 7-204-05940-9/R 019 1880.00 ( 20.00 ) ...1...2...3...4...13...15...17...17...24...25...26...26...28...28...29...31...31...33...33

More information

[ ] [ ] Sino-French Life Insurance Co., LTD. ( ) ( ) ( )

[ ] [ ] Sino-French Life Insurance Co., LTD. ( ) ( ) ( ) Sino French Life Insurance Company Limited 2014 [ ] [ ] Sino-French Life Insurance Co., LTD. ( ) 2 8 1206 100022 ( ) 2005 12 23 ( ) 1 2 010-85288588-8 1 2014 12 31 ( ) 31/12/2014 31/12/2013 5 10,739,871.24

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

vi 黃 帝 內 經 即 學 即 用 別 做 反 自 然 的 事 053 成 年 人 應 該 斷 奶 055 吃 肉 吃 素 因 人 而 異 057 要 分 清 飢 和 餓 058 生 活 現 代 化 與 本 能 退 化 061 調 神 就 是 調 節 奏 063 想 冬 泳, 先 問 問 自 己

vi 黃 帝 內 經 即 學 即 用 別 做 反 自 然 的 事 053 成 年 人 應 該 斷 奶 055 吃 肉 吃 素 因 人 而 異 057 要 分 清 飢 和 餓 058 生 活 現 代 化 與 本 能 退 化 061 調 神 就 是 調 節 奏 063 想 冬 泳, 先 問 問 自 己 目 錄 001 第 一 講 道 法 自 然 養 生 首 先 要 找 對 方 向 003 健 身 不 同 於 健 體 006 隨 順 自 然 的 節 拍 008 調 和 的 重 要 013 吃 飯 的 講 究 017 飲 水 的 學 問 021 喝 適 合 自 己 的 茶 025 起 居 作 息 要 規 律 029 形 與 神 俱 靠 甚 麼 031 還 原 現 場 033 039 第 二 講 背 道

More information

1956 12 1955 101 1 1957 443 1956 237 s s i 39 424 401 iii 9 ix 31 iv 15 iii 2 Vi 46 i 24 VI iii 25 III i 7 III viii 9 I V 1 I vi 8 225 1480 I ii 10 IV viii 4 639 559 113 [ 384 322 ] III

More information

nbqw.PDF

nbqw.PDF 1 2 3 . 1. 2. 4. 7. 10. 11. 13. 25. 28. 30. 67 2002 1 1. : Tianjin Tianyao Pharmaceutical Co., Ltd. TJPC 2. 3. 109 300171 022-24160861 022-24160910 tjpc600488@vip.sina.com 4. B 109 300171 tjpc600488@vip.sina.com

More information

(b)

(b) 1. (a) (b) (c) 22 85155 (i) (ii) 2200 5 35% 20% 500 3,000 3015 50% 30 (i) (ii) (iii) (iii) 30% QFII 15% H (20)(5) (iv) (i)(ii) (iii) (iv) (v) 10 30 (vi) 5% (vii) (1) (1) 25%(1) (viii) (ix) 10% 20 45 20

More information

中華民國 年 月 日

中華民國  年  月  日 104 年 12 月 8 日 本 校 105 學 年 度 研 究 所 招 生 委 員 會 第 1 次 會 議 通 過 本 校 研 究 所 招 生 委 員 會 編 製 國 立 屏 東 科 技 大 學 105 學 年 度 碩 士 班 暨 碩 士 在 職 專 班 招 生 簡 章 本 簡 章 請 自 行 下 載 不 另 販 售 考 生 一 律 採 網 路 報 名 國 立 屏 東 科 技 大 學 研 究 所

More information

1. 2285 155 2200 35% 30 3015 50% 30 (i) (ii) (iii) [][]15% H (20)(5) (i)(ii) (iii)(iv) 30 5% (1) (1) 25% (1) 10% 2045 20 5% 20 50% 50% 151 20 10% 50% 25% 10% 10% (1)(2)(4)(5)15 1060 3045 H H H (i)(ii)

More information

65746.indb

65746.indb CHINA HUIYUAN JUICE GROUP LIMITED 1886 (1) (2) 3 9 10 11 19 ( ) 20 21 48 * ........................................................................ 1 I.................................................................

More information

(iii) ,

(iii) , 279 20 20 88 12 12 250,000 2 89 (iii) 1 6 50,000 1 90 45 50,000 1 279F 2004 7 1 (a) (b) 91 (c) (iii) (iv) (v) (vi) (d) (a) 5 E E (b) 92 (c) (d) (e) (iii) (f) (g) 47 52 (g) (f) 200 XII 579 (iii) 10,000

More information

<4D6963726F736F667420576F7264202D20B6ABD0CBD6A4C8AFB9C9B7DDD3D0CFDEB9ABCBBECAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5202032303134C4EA33D4C23131C8D5B1A8CBCDA3A92E646F63>

<4D6963726F736F667420576F7264202D20B6ABD0CBD6A4C8AFB9C9B7DDD3D0CFDEB9ABCBBECAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5202032303134C4EA33D4C23131C8D5B1A8CBCDA3A92E646F63> 东 兴 证 券 股 份 有 限 公 司 ( 住 所 : 北 京 市 西 城 区 金 融 大 街 5 号 ( 新 盛 大 厦 )12 15 层 ) 首 次 公 开 发 行 股 票 招 股 说 明 书 ( 申 报 稿 ) 保 荐 人 ( 主 承 销 商 ) 瑞 银 证 券 有 限 责 任 公 司 住 所 : 北 京 市 西 城 区 金 融 大 街 7 号 英 蓝 国 际 金 融 中 心 12 层 15

More information

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的 財 務 委 員 會 人 事 編 制 小 組 委 員 會 討 論 文 件 2015 年 11 月 4 日 總 目 158- 政 府 總 部 : 運 輸 及 房 屋 局 ( 運 輸 科 ) 分 目 000 運 作 開 支 請 各 委 員 向 財 務 委 員 會 提 出 下 述 建 議, 即 由 財 務 委 員 會 批 准 當 日 起, 在 運 輸 及 房 屋 局 運 輸 科 機 場 擴 建 工 程 統

More information

<4D F736F F D20D6D0B9FACCFABDA8B9C9B7DDD3D0CFDEB9ABCBBECAD7B4CEB9ABBFAAB7A2D0D041B9C9B9C9C6B1D5D0B9C9D2E2CFF2CAE92E646F63>

<4D F736F F D20D6D0B9FACCFABDA8B9C9B7DDD3D0CFDEB9ABCBBECAD7B4CEB9ABBFAAB7A2D0D041B9C9B9C9C6B1D5D0B9C9D2E2CFF2CAE92E646F63> China Railway Construction Corporation Limited ( 北 京 市 海 淀 区 复 兴 路 40 号 东 院 ) 保 荐 人 ( 主 承 销 商 ) 中 信 证 券 股 份 有 限 公 司 深 圳 市 罗 湖 区 湖 贝 路 1030 号 海 龙 王 大 厦 中 国 铁 建 股 份 有 限 公 司 发 行 股 票 类 型 : 本 次 发 行 股 数 : 每

More information

untitled

untitled CHONGQING INTERNATIONAL ENTERPRISE INVESTMENT CO.,LTD. I II III IV V VI ...7...10...11...13...13...14...15...15...21...32...50...53...54...56...56...56.59...61...61...66...69...72...74...74...75...75...75...77

More information

明 德 厚 沉 毅 笃 行

明 德 厚 沉 毅 笃 行 硕 士 研 究 生 培 养 方 案 ( 应 用 型 ) 南 京 工 业 大 研 究 生 部 二 一 三 年 九 月 明 德 厚 沉 毅 笃 行 南 京 工 业 大 文 件 南 工 校 研 [2010]20 号 南 京 工 业 大 应 用 型 研 究 生 培 养 模 式 改 革 试 点 工 作 实 施 方 案 教 育 部 决 定 自 2009 年 起, 扩 大 招 收 以 应 届 本 科 毕 业 生

More information

cgn

cgn 3654 ( 571 ) 88(4) 2014 3 31 10766 10778 2014 3 31 ( ) 2 21 ( ) 2014 3 31 10768 10778 6 9 1. ( ) 2. 3. 4. 5. 2014 6 3 ( ) 10768 10778 ( ) 2014 3 31 ( 622 ) 11 80 2014 3 31 2014 6 3 10 8 2014 3 31 ( ) 2014

More information

財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月

財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月 香 港 特 別 行 政 區 立 法 會 財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月 財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月 章 節 目 錄 頁 數 I 序 言 1-2 II 公 務 員 事 務 3-9 III 司 法 及 法 律 事 務 10-19 IV 財 經 事

More information

untitled

untitled 1 a. 2008 2009 1 1 23 27 321 39 1 27 2 3 7 8 15 16 17 18 1 2009 1 12009 7 1 1 Cash Flow Statement Statement of Cash Flows 3 27 8 14 2 132 1. a. 200840 2009 7 1 2009 2 2010 3 24 4 32 5 1 6 1 7 8 2 6 9 7-14

More information