Last update 2018.12.27

來分享一下這次的經驗

凌華(ADLINK) 軸卡其實滿多的,會選這張是因為我跟他們提到要旋轉控制,

因此推薦幾張讓我選擇,我選了這張PCIe-8154借測

PCIe-8154 這張軸卡是能控制4軸運動控制

軸卡能從實體的switch去設定ID,軸卡上面有四個指撥開關,因此ID有16種變化

如果電腦能無限擴充pcie的話,能接到16張卡,共64軸的控制,用PCIe-8158應該就128軸的控制了。

另外凌華借了我DIN-814-GP、DIN-68S-01端子台,在透過 ACL-102100-1連接軸卡與端子台,

 

ACL-102100-1

DIN-68S-01就很單純的把軸卡上那100bit 變成端子台,依自己的運用去接線,

但要自己想辦法做線,去連接伺服驅動器

 

DIN-814-GP

有現成的線能從DIN-814-GP接到安川伺服(26Pin 轉 50Pin)連接線,

目前我是用現成的線這樣接的,

然後在CN2接24V給板子,EMG沒有接

然後安裝驅動程式PCIe-8154_WDM_x64_R2.1.180419

官網下載驅動程式需要先註冊為會員,

驅動程式我選擇下載64位元的,

看了安川伺服驅動器的手冊K書兩天,設定參數

雖然借了有旋轉控制的功能,

但後來是使用位置控制,因為旋轉控制是給速度的,

我是要角度定位,速度給了就一直轉...我怎麼知道現在幾度,因此選擇位置控制。

再來就是要去搜尋馬達的資訊了,

這顆從倉庫借來的馬達SGM7G-13AFA61,

馬達型號辨別說明

重點再那個F的位置,如果是2、C,表示Encoder 是17bit

如果是3、D,表示Encoder 是20bit

7、F的話,是24bit,因此這顆馬達一圈的解析度是2的24次方,16777216 pulse 為1圈,實際還要看電子齒輪比與回授訊號

 

接線圖 : 

 

update 2018.12.27

安裝完WDM後,安裝路徑下就有所有需要的資源,驅動程式(雖然安裝X64,但還是有X86在)、Library、範例、測試程式、手冊

雖然我是64位元電腦,但我習慣編譯成Any CPU,所以我選擇使用X86的Library

範例中只有兩種語言,VC與VB

雖然我是一路用BCB走過來的,最近才轉C#,但沒有BCB與C#範例這點問題是難不倒我的。

打開使用手冊,第六章開始就是介紹函式的部分

內文提到,『Delphi 開發,就要轉pci_8154.h這個檔案』,C#當然不例外

但我沒有全轉,我只轉我可能會用到的部分:

 

    public class PCIe_8154
    {
        //初始化
        [DllImport("8154.dll")]
        public static extern short _8154_initial(out ushort CardID_InBit, short Manual_ID);
        [DllImport("8154.dll")]
        public static extern short _8154_close();

        //取得命令位置Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_get_command(short AxisNo, out int Cmd);
        //設定命令位置Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_set_command(short AxisNo, int Cmd);
            
        //取得回授位置Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_get_position(short AxisNo, out double Pos);
        //設定回授位置Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_set_position(short AxisNo, double Pos);

        //取得錯誤Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_get_error_counter(short AxisNo, out short error);
        //清除錯誤Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_reset_error_counter(short AxisNo);

        //取得目標Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_get_target_pos(short AxisNo, out double TargetPos);
        //清除目標Pulse數
        [DllImport("8154.dll")]
        public static extern short _8154_reset_target_pos(short AxisNo, double TargetPos);

        //絕對位置移動T曲線
        [DllImport("8154.dll")]
        public static extern short _8154_start_ta_move(short AxisNo, double Pos, double StrVel, double MaxVel, double Tacc, double Tdec);
        //絕對位置移動S曲線
        [DllImport("8154.dll")]
        public static extern short _8154_start_sa_move(short AxisNo, double Pos, double StrVel, double MaxVel, double Tacc, double Tdec, double SVacc, double SVdec);

        //相對位置移動T曲線
        [DllImport("8154.dll")]
        public static extern short _8154_start_tr_move(short AxisNo, double Dist, double StrVel, double MaxVel, double Tacc, double Tdec);
        //相對位置移動S曲線
        [DllImport("8154.dll")]
        public static extern short _8154_start_sr_move(short AxisNo, double Dist, double StrVel, double MaxVel, double Tacc, double Tdec, double SVacc, double SVdec);
        
        //速度運動模式T曲線
        [DllImport("8154.dll")]
        public static extern short _8154_tv_move(short AxisNo, double StrVel, double MaxVel, double Tacc);
        //速度運動模式S曲線
        [DllImport("8154.dll")]
        public static extern short _8154_sv_move(short AxisNo, double StrVel, double MaxVel, double Tacc, double SVacc);

        //Servo ON
        [DllImport("8154.dll")]
        public static extern short _8154_set_servo(short AxisNo, short on_off);

        //停止
        [DllImport("8154.dll")]
        public static extern short _8154_sd_stop(short AxisNo, double Tdec);

        //Alarm Logic
        [DllImport("8154.dll")]
        public static extern short _8154_set_alm(short AxisNo, short alm_logic, short alm_mode);

        public PCIe_8154()
        {             
        }
    }

 

 

 

arrow
arrow
    創作者介紹
    創作者 史克威爾凱特 的頭像
    史克威爾凱特

    史克威爾凱特的部落格

    史克威爾凱特 發表在 痞客邦 留言(0) 人氣()