2012年7月13日 星期五

PLC不難-伺服馬達控制part2

在上一篇介紹完 PLC 控制伺服馬達的基本概念後,這一篇我們再深入探討:為什麼會有 ZRN、PLSV、DRVI 等專用定位指令的產生?

如果只用傳統接點輸出...

例一:單向移動

假設 Y0 ON 一次,伺服馬達走 1 μm:

-|X0|---(Y0)

如果希望馬達走 1 mm (1 mm = 1000 μm),那 X0 就必須反覆 ON/OFF 1000 次!

例二:兩點間來回移動

如果要在兩點之間來回移動:

-|X0|-(Y0) -||X1-(Y1)

傳統寫法必須依序執行:

  1. 先把 X0 ON 1000 次(向前走 1 mm)
  2. 觸發 X1 ON(啟動方向切換,讓 Y1 = ON)
  3. X0 再 ON 1000 次(向後走 1 mm)

這樣才能完成一趟回來的動作。

😫 看完以上是不是覺得:這也太難、太複雜了吧!光是算開關次數頭就暈了。

為了解決這個痛點,伺服控制專用指令就誕生了!它們能大幅簡化這些繁瑣的控制邏輯。

專用定位指令帶來的改變

例三:DRVI 相對位置定位

-|X0|--[DRVI K1000 K10 Y0 Y5]

光是這一行,就徹底解決了例一中「X0 要反覆 ON 1000 次」的問題。在這裡,X0 只需要 ON 一次!

指令參數拆解:

  • K1000 目標輸出脈波數(移動距離)
  • K10 輸出脈波頻率(運轉快慢/速度)
  • Y0 脈波輸出端子
  • Y5 方向控制端子(控制正反轉)

例四:用伺服指令寫來回運動

-|X0|--[DRVI K1000 K10 Y0 Y5] -||X1-(Y5)

同樣是兩行程式碼,運作卻直覺非常多:

  • X0 ON 一次,正轉移動 1000 μm。
  • X1 ON 切換方向後,X0 再 ON 一次,就會反轉走 1000 μm。

完全不用再去寫計數器或手動計算 ON 了幾次!

PLC 真的不難!快來加入工業控制的行列!

2012年7月12日 星期四

PLC不難-伺服馬達控制part1

前幾篇,把一個順序、邏輯控制介紹了,PLC 真的不難入門。

這一篇要寫到伺服馬達的控制。一提到伺服馬達控制,寫 PLC 的人腦中通常會立刻浮現一些專用定位指令:ZRN、PLSV、DRVI...等等。

其實真的有必要一開始就用到那些指令嗎?
從最底層的基本原理說起,你就會知道其實非常單純!

最簡單的伺服控制程式

1. 讓伺服馬達運動

-|X0|-(Y0)-

完成了伺服馬達運動的程式了,就是這麼簡單!

2. 控制正反向運轉

-|X0|-(Y0) -|X1|-(Y1)

又完成了!這就是一個可以控制轉向的伺服馬達控制程式。真的不難啊!

回歸本質:伺服與步進在 PLC 眼中是什麼?

伺服馬達與步進馬達,對 PLC 來說本質上就只是一個或兩個輸出點(Y點)的開關控制而已。只要能控制 Y 點輸出,就能夠精準控制伺服馬達。

下圖就是伺服馬達常見的脈波控制方式:

  • 將脈波端子設為 Pulse = Y0
  • 將方向端子設為 Sign = Y1

對照「脈波列 + 符號(Pulse + Direction)」控制模式,不就正好是我前面寫的那兩行梯形圖嗎?

當 X0 由 OFF 變成 ON,發出一個脈波,伺服馬達就會精準地往前走一步!

2012年7月11日 星期三

寫『好』PLC不簡單-取料臂動作

寫『好』PLC不簡單-取料臂動作


x0=取料動作開始
x1=取料臂伸出
x2=取料臂縮回

Y0=取料臂伸出
Y1=取料臂縮回
Y2=夾料
Y3=放料

動作說明:
當取料動作開始後,取料臂伸出,到伸出點後,開始夾料,然後縮回,到縮回點後,放料,動作完成。

問題來了:
1.在取料動作開始(X0)時,取料臂的位置?夾爪是夾、放?
A:所以在動作開始的上升緣,就是檢查取料臂&夾爪的位置是否在起始狀態,不然就要警報。

|^X0|-+-|/X2|--(A0)取料臂未來縮回狀態
+-|Y2 |--(A1)在夾料狀態
+-|Y0 |--(A2)在伸出狀態

2.取料臂伸出,到伸出點後 ,如果不會到伸出點呢??
A:所以這裡可以加計時器,如果時間到了,還沒到伸出點,肯定卡住,或是SENSOR不良,位置異常等等問題。

3.開始夾料,然後縮回,夾料是否成功??
A:這是假設在測有夾料成功的SESNOR的情形下,最好是加裝夾料成功SENSOR,不然就是加計時器來延遲,畢竟機械動作是需要時間時,而PLC的SCAN TIME(掃描時間)只需要20ms以下。


4.到縮回點後,放料, 同伸出動作,如果不會到縮回點呢?
A:所以這裡可以加計時器,如果時間到了,還沒到伸出點,肯定卡住,或是SENSOR不良,位置異常等等問題。

5.最後放料,也是需要加延遲。


整合兩個範例程式,可以得到相同的結論,
1.都要預先考慮到外部裝置會有損壞、異常的可能。(包含安裝不良)


2.每一個條件,都要考慮到該成立,而不成立,應該如何處置。




或許有人會說,這麼麻煩,看PLC就知道問題在那裡了,
那需要加寫這麼多條件判斷。
但:如果機台是在國外,如果操作人員不會PLC,如果程式不是自已寫的.......

在事先多花點功夫,把條件都寫齊,警報都考慮進去,對公司而言,就是減少服務量,
減少出差的支出。