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,如果程式不是自已寫的.......

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


2012年7月10日 星期二

PLC難不難-取料臂動作


PLC難不難-取料臂動作


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

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

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

動作分解,從動作說明文字中,找出程式寫法:
1.取料動作開始後取料臂伸出
|X0|-(Y0)
2.到伸出點後=>(Y0自保到伸出點)
|Y0|-|/X1|-(Y0)

3.開始夾料=>(到伸出點後,就夾料)
|X1|-(Y2)

4.然後縮回。(夾料後縮回)
|Y2|-(Y1)

5.到縮回點後=>(Y1自保的縮回點)
|Y1|-|/X2|-(Y1)

6.到縮回點後放料。
|X2|-(Y3)


整理以上有相同的輸出點:(PLC的基本規則,不要有兩個輸出點)
|X0|--------+-(Y0)
|Y0|-|/X1|--|

|X1|----------(Y2)

|Y2|--------+-(Y1)
|Y1|-|/X2|--|

|X2|----------(Y3)

寫PLC真的不難

2012年7月9日 星期一

寫『好』PLC不簡單-水泵自動補水範例

跟上一篇一樣:

低水位-補水(X0)
高水位-滿水(X1)

水泵起動(Y0)

當低水位時,水泵起動,水泵自保直到滿水位(X1)ON。

1.當低水位(X0)時,水泵(Y0)起動
|X0|-(Y0)

2水泵(Y0)自保直到滿水位(X1)ON。(水泵(Y0)在滿水位OFF時,持續啟動)
|Y0|-|/X1|-(Y0)

1+2=
|X0|-------+(Y0)
|Y0|-|/X1|-|

問題來了:
1.水泵補到水滿出來了................
A:滿水位沒有感應到,所以水泵不會停。寫PLC的人都知道。
但:好的PLC可以先防止此情形。可以先計算水泵運轉時間,加上逾時警報,就不會因為沒有感應到,而水溢出來。

2.沒水了,水泵還是不會動??
A:低水位沒有感應到,所以水泵不會啟動。寫PLC的人都知道。
但:好的PLC設計者,會先考慮到此種情形,會裝兩顆SENSOR,或是並聯來使用。
降低感應器故障的機率。

每種外部裝置都有故障的可能,如果能在故障發生前就先檢知,就是好的PLC設計者。
事後補救,就是普通的PLC設計者。
這也是薪水高低的區分!!好的PLC設計者5-6萬不是問題。

這也是經驗的累積丫~~


PLC難不難-水泵自動補水範例


PLC難不難-水泵自動補水範例


低水位-補水(X0)
高水位-滿水(X1)

水泵起動(Y0)


當低水位時,水泵起動,水泵自保直到滿水位(X1)ON。


1.當低水位(X0)時,水泵(Y0)起動
|X0|-(Y0)

2水泵(Y0)自保直到滿水位(X1)ON。(水泵(Y0)在滿水位OFF時,持續啟動)
|Y0|-|/X1|-(Y0)


1+2=
|X0|-------+(Y0)
|Y0|-|/X1|-|

寫PLC難不難?

寫PLC難不難?
是很多想跨入工控界的一個疑問?


寫PLC一點都不難,
只要說的出來,就寫出來了。

例1:
當這個開關(X0)ON時,那個燈(Y0)就亮。
|X0|-(Y0)

當這個開關(X0)ON,且(AND)另一個開關(X1)OFF時,燈(Y0)才會亮。
|X0|-|/X1|-(Y0)

當這兩個開關(X0\ X1)其中(OR)一個ON,燈(Y0)就會亮。
|X0|-+-(Y0)
|X1|-|

從以上的例中,就可以看到,
其實在了解動作的同時,就已經把程式寫好了。
所以說的出口,就已經寫完程式了。
難嗎??


那我怎麼知道動作??
其實動作流程,大多數是機構設計就已經想好了,
所以也不必太擔心,機構設計會講給你聽。

寫PLC真的不難!!