2017年4月26日 星期三

Euler Angle 尤拉角

參考資料: 維基百科

作用:
描述一個物體的姿態(Orientation),比如說飛機在空中的姿態或者機器手臂末端點的姿態,常用到Euler angle 來表示

解釋:
旋轉卡式坐標系三個(X-Y-Z)軸的角度,的那3個旋轉角度稱為尤拉角(Euler-Angle)

通常用 ( a , b, g ) 這三個拉丁文字來表示,讀音(alpha, beta, garma)
或者用( j , q, y ) 讀音 (phi, theta, psi)

旋轉方式有分:
Extrinsic(外在的) - 順序繞固定坐標系旋轉
Intrinsic(固有的) - 順序繞動坐標系旋轉,

另外對3個軸旋轉的順序:
Proper Euler Angle (Classic Eular angle) :(3軸選2軸出來排序,1跟3同一軸)
1.  Z-X-Z
2.  X-Y-X
3.  Y-Z-Y
4.  Z-Y-Z
5.  X-Z-X
6. Y-X-Y

Tait-Bryan angle: (3個軸的排序) ( yaw, pitch, and roll )
7.   X-Y-Z
8.   Y-Z-X
9.   Z-X-Y
10. X-Z-Y
11. Y-X-Z
12. Z-Y-X (也稱為 Yaw, Pitch, Roll angles )

兩種排序方法,可以排出12種

3個角度定義: 
其實要看你是用上述的什麼定義旋轉, ( a , b, g )是不一定一樣的
 這裡必須注意

所以使用Euler anlge你必須先講你的定義是甚麼
比如說,我用 intrinsic Z-Y-X ,因此 ( a , b, g )的定義如下:

a角: 繞著Z軸旋轉的角度  X-Y-Z   => X'-Y'-Z
b角: 繞著Y'軸旋轉的角度 X'-Y'-Z => X"-Y"-Z"
g角: 繞著X"軸旋轉的角度 X"-Y"-Z"  => x-y-z



2014年5月20日 星期二

Delta 台達ASDA-B2伺服驅動器 -位置控制模式的設定注意事項



台達ASDA-B2伺服驅動器,使用位置模式控制,也就是上位控制器用脈波命令來控制驅動器的模式。
應該注意哪些參數設定? 驅動器才能正常工作,驅動馬達。

1. 配線當然要先檢查是否正確

2. 控制模式參數: P1-01 
    P1-01 = 0  (位置控制模式, PT mode)

3. 注意 DI 訊號,NL, PL,  EMGS 是否正確: P2-15, P2-16, P2-17
    CN1-30 ( DI-8 EMGS ), 
    CN1-31 ( DI-7 PL ), 
    CN1-32 ( DI-6 NL )  
    是否有接線, 若有須為常閉接點若沒有配線可透過參數disable或調整邏輯
    我個人建議調整邏輯(logic, a接點或b接點) ,  設定如下
    P2-15 ==> 0122  (DI-6)
    P2-16 ==> 0123  (DI-7)
    P2-17 ==> 0121  (DI-8)

3. 外部脈波輸入訊號設定: P1-00
     輸入脈波形式 0:4AB, 1:CW/CCW,  2:OUT/DIR, 三種, 假設使用 OUT/DIR
     若配線 CN1 接低速訊號(37,36, 41, 43):           ==> 0 0 2
     若配線 CN1 接高速差動訊號(40, 46, 29,38):    ==> 0 0 2

4. Encoder輸出訊號設定:  P1-46 (=2500, default)
    Default = 2500,  因為4倍AB編碼
    所以馬達轉一圈為  2500 * 4 = 10,000 pulse

    Note: A2編碼器最大解析度為轉一圈為1280000 pulse  (約20bit, 使用4AB)

5. 電子齒輪比設定: P1-44(N,分子)  P1-45(M,分母)

    公式: 輸入脈波 * N / M = 實際指令脈波
    
    若希望輸入脈波10000 轉一圈,則

     10000 * N / M  = 1280000

     ==>  N / M = 1280000 / 10000
     ==> N / M = 128 / 1

     所以 P1-44 設定為 128
              P1-45 設定為   1

<<<放大絕>>>
PS. 參數重置: P2-8
如果參數被調爛了,可以用大絕招,Reset all parameters to default
P2-8 => 寫入10後, 電源重啟後Reset

2013年5月30日 星期四

什麼是OPC?

OPC 發展至經已經有15~6年的歷史了,主要被應用在工業自動化(industrial automation)上。

OPC 在一開始的定義是 OLE for Process Control。亦即採用OLE技術(Windows COM/DCOM) 
完成對硬體裝置的通訊控制。其最初的構想是想要定義一個統一的軟體介面,來存取各家硬體廠的IO裝置。

因為開發 I/O devices 的廠商很多,每家廠商都有自行開發的 device driver, 來存取自家的硬體裝置。然而這對系統廠或整合商來說就很麻蠻,必須要去學習各家的操作方式。

OPC 定義了一系列標準的軟體介面。系統廠可以透過這一系列的標準介面撰寫控制程(OPC Client),若要換或整合不同廠商的硬體,只要該廠商有提供此一標準介面(OPC server)即可。

又因為是採用OLE(COM/DCOM)技術來實作此介面,所以OPC只能在運用在Windows作業系統之上。

** 隨著時間的前進,OPC也與時俱進 **
到2006年 OPC 協會定義 OPC為 "OPC is open connectivity via open standards.", 是一系列的開放標準應用於通訊上。這一系列的標準如下面所列。其中,第一項是最早的OPC spec. 後面都是後來發展出來的。 
  OPC Data Access (這是最早的OPC spec.)
  OPC Alarms & Events
  OPC Batch
  OPC Data eXchange
  OPC Historical Data Access
  OPC Security
  OPC XML-DA
  OPC Complex Data
  OPC Commands
  OPC Unified Architecture (cross-platform capability)

甚至是最後一項新的Spec. 是定義跨平台的,已不單單只是運用在Windows上了。
在Wiki上查到現在OPC的定義已更改成:Open Platform Communications

所以OPC 現在所指是"一系列的工業通訊界面",但是大家目前在談的OPC還是比較偏向是 OPC Data aceess (OPC DA) 這個部分。( 因為大家都沒Update 到最新阿~~XD,看了我這篇之後應該要說OPC DA, 這樣就專業了! )

OPC DA 就是包含了大家所熟悉的 OPC Server 和 OPC Client 這兩個部分。
所以硬體廠商如果要提供OPC給客戶,就是必須把OPC DA server 這個部分給實做出來。
而客戶端就可以用OPC DA client來 access 硬體廠商的Hardware devices.


Reference:[1] wiki[2] OPC foundation[3] 淺談OPC Server之開發

2013年2月25日 星期一

Yaskawa Sigma-5 SGDV-xxx 三相 220V 改成 單相220V 電源



Yaskawa Sigma-5 Servo pack, 有吃 100V 的電壓和 200V 的電壓兩種規格,購買時要選。

其中 200V 電壓是同時支援 三相200V 和單向200V,不過原廠預設是要接三相 220V 電源

若你接單向 200V 驅動器還是可以運作,但面板會顯示Alarm ( Alarm code = F10 )

因為面板只有一碼顯示,所以你會看到 A -> F -> 1 -> 0  循環,Alarm的意思是"電壓過低"

Solution:

    只要使用人機 SigmaWin+ 去修改參數 Pn00B,將設定值修改 0000 => 0100 亦即
    將 第3 digital 改成1 (Single-phase power) 即可。




2013年2月23日 星期六

Delta 台達ASDA-A2伺服驅動器 -位置控制模式的設定注意事項

台達ASDA-A2伺服驅動器,使用位置模式控制,也就是上位控制器用脈波命令來控制驅動器的模式。
應該注意哪些參數設定? 驅動器才能正常工作,驅動馬達。

1. 配線當然要先檢查是否正確

2. 控制模式參數: P1-01
    P1-01 = 0  (位置控制模式, PT mode)

3. 注意 DI 訊號,NL, PL,  EMGS 是否正確: P2-15, P2-16, P2-17
    CN1-30, 31, 32 是否有接線, 若有須為常閉接點,若沒有配線可透過參數disable或調整邏輯
    我個人建議調整邏輯(logic), 設定如下
    P2-15 ==> 0122
    P2-16 ==> 0123
    P2-17 ==> 0121

3. 外部脈波輸入訊號設定: P1-00
     輸入脈波形式 0:4AB, 1:CW/CCW,  2:OUT/DIR, 三種, 假設使用 OUT/DIR
     若配線 CN1 接低速訊號(37,36, 41, 43):           ==> 0002
     若配線 CN1 接高速差動訊號(40, 46, 29,38):   ==> 1002

4. Encoder輸出訊號設定:  P1-46 (=2500, default)
    Default = 2500,  因為4倍AB編碼
    所以馬達轉一圈為  2500 * 4 = 10,000 pulse
 
    Note: A2編碼器最大解析度為轉一圈為1280000 pulse  (約20bit, 使用4AB)

5. 電子齒輪比設定: P1-44(N,分子)  P1-45(M,分母)
 
    公式: 輸入脈波 * N / M = 實際指令脈波
   
    若希望輸入脈波10000 轉一圈,則

     10000 * N / M  = 1280000

     ==>  N / M = 1280000 / 10000
     ==> N / M = 128 / 1

     所以 P1-44 設定為 128
              P1-45 設定為   1


PS. 參數重置: P2-8
如果參數被調爛了,可以用大絕招,Reset all parameters to default
P2-8 => 寫入10後, 電源重啟後Reset

三菱 MRJ3A AC servo drive 速度模式控制(Speed control mode) 設定方式

此篇記錄,使用三菱 J3A  AC servo, 設定為速度模式控制時,需注意的地方:


 PA19: parameter write protected. (參數寫入鎖定)
 若參數無法寫入,請檢查 PA19 是否有設定保護


 速度模式 (Speed control mode) 參數設置:

   PA01 (control mode)  => 0002  (speed control mode)
  其他參數都保持預設值,輸入控制電壓時,馬達應該可以轉動

 如果有問題,檢查步驟如下:

  先檢查是否有 Alarm, 若有,驅動器面板會閃爍顯示 alarm, 請檢閱手冊排除之。

  如果不會轉動(完全不會動)請檢查配線 (可使用人機介面 MRZJW3-SETUP 211E 輔助檢查 )
  下列 Digital Input (CN1) 配線注意

  1. 安全開關 (全部接地, Normal close)
    EMG CN1-42  ( 緊急停止)
    LSP  CN1-43   ( Forward stroke end)
    LSN CN1-44   ( Reverse stroke end)
    這 3個訊號要接地 (Close )

   2.  選轉方向選擇 (ST1 或 ST2 選一條接地)
    ST1 CN1-17
    ST2 CN1-18

     A. ST1  ON (Close)   /    ST2 OFF (Open)    => 正電壓正轉, 負電壓反轉
     B. ST1  OFF (Open)  /    ST2 ON (Close)     => 正電壓反轉, 負電壓正轉
     C. ST1  OFF (Open)  /    ST2 OFF (Open)    =>  停止
     D. ST1  ON (Close)  /    ST2 ON (Close)       =>  停止

    3. SP 速度選擇( 基本上不接就可以了)
        SP1  CN1-41
        SP2  CN1-16
        (SP3) 這個訊號default 沒有mapping 到 CN1 上,故視為 off (0)
       這兩個訊號要Open (不接地)
       SP1 = SP2 = SP3 = 0 : 速度command 來源為類比輸入腳位 ( VC CN1 -2 )


     4. 用 J3-A 人機,看一下電壓值是否有正確輸入

如果參數回復成初始值,經常都是配線的問題,搭配UI 檢查一下是好方法。