issac
issac

Trying to record something I have learnt in this space

WorldSkills(Mechatronics) - Introduction & Lesson 1

Banner for Mechatronics

Introduction

上年(2019)喺IG advertisement 見到一個叫「世界技能大賽」嘅活動,當中有一個比賽項目叫「機電一體化」嘅項目,而我個major 就係mechatronic Engineering(機電一體化工程學),本住學嘢嘅心態就試下去玩。呢個網址有多D關於比賽嘅資料。

留意到本身個主辦機構係IVE,因為VTC個syllabus都好practice,而CityU嗰個就比較theoretical,所以都會擔心個比賽係睇住一班好勁嘅人玩,唔知自己做緊咩。但好好彩,VTC喺比賽之前有簡介同training俾番參賽者,咁就算冇底都唔使驚,tutor 會分幾堂,逐步逐步教番你PLC同station嘅知唔。我就想喺呢度mark 番低學左D咩同少少remark俾番自己當係一個留念啦。

[Remarks: PLC: Festo; Program: FPWin]

Lesson 1: Basic Operation - Command input, Relay, Timer & Counter

每一個input/output 都會take up 一個人I/O,一般都係input係X,output係Y。同一個Input 可以有無限個,但同一個output只可以有一個。除左特別講明(e.g. 通常係station嘅stop button,會有寫明normally close),一般都係normal open。

1.1 Command input

喺FPWin入面要用keyboard 打command嘅話,要click左上面bar 個「A」字(Text input mode priority).

  • Input: "st ___", example: "st x40"
  • Output: " ot ____", example: "ot y44"
  • Relay: "st/ ot r ___", example: "st r1"
  • NOT operation: "st/ ____", example: "st/ r1"
  • 向上連:F3 ; 向橫連:F7
  • 中間插入一行: ctrl + insert

1.2 Relay

玩PLC其中一個最重要嘅function就係relay,可以當佢係一個switch/幫你lock 住一啲嘢嘅開關用, 但都要小心一時開relay 開太多,開左好多不必要嘅relay。

(A) Self hold

喺PLC入面最常會用到嘅relay function 就係佢幫你開左一個output,但因為PLC input嘅nature 係「禁就開,唔禁就閂」,而需要嘅operation可能係「禁左一下,然後長開」,咁點樣可以achieve到呢? 就係靠self hold(自保)啦。

大致上個concept 就係,禁input嘅時侯會tigger relay,而同時呢個relay都會做番relay 嘅input。當user鬆手嘅時侯,個input會閂左,但因為個relay 開住左,佢就會幫你開住個relay,咁就可以利用個relay去做其他動作啦。

下面係其中一個example: 

Relay self hold example. X40 = push button 1; Y44 = Red light bulb

喺呢個example入面,禁左push button 1(X40),就會開左R1 呢個relay output(R1)。如果relay output開左,第二行個relay input(R1)都係開左,長期keep左個relay input開住。同時左relay input都可以幫你開左red light bulb(Y44)。咁樣寫嘅話,就可以禁一次個push button,但都係長著個紅燈啦。

(B) Operation break

可能都有人問,如果係咁,咁點樣可以閂番佢?呢個都係relay另一個重要嘅function - 用replay 黎斷一個operation。

如果做operation break嘅話,會用番normal close嘅relay,加喺ladder diagram嘅中間。

Example:

Relay operation break example. X40 = push button 1;X41 = push button 2; Y44 = Red light bulb

呢個prog上半部份同上一個example一樣,唔同嘅就係第一行加左一個normal close嘅relay,同埋最後一行。最後一行係指:如果禁左push button 2(X41),咁output R2(line 6)就會開左,同時,normal close嘅R2(line 0)就會變左相反,亦即係開左。由於喺R2嗰度斷開左,circuit變為唔完整, 咁R1就唔會通電而變為閂,同自保嘅R1都會閂左。Push button 2禁一次就會閂左紅燈,如果放左手,R2就會閂番,咁normal close嘅R2就會remain close,只要再禁一次push button 1, 紅燈就會開番。因為考慮到R2只需要切斷第一行一次,所以唔需要加自保。

1.3 Timer

由於有啲parts本身冇sensor幫手預測components嘅位置/某啲動作係需要做到計時間,timer就好幫到手啦。喺PLC入面嘅driver default有冇1008個timer,由編號0到啦1007。即使單位唔同,編號都唔可以重複,否則會error,但只要唔重複,點樣set都得,冇順序之分。Timer有分4種,分別計唔同digit嘅單位,佢地係TMX(0.1s), TMY(1s), TMR(0.01s), TML(0.001s)。每個timer揀左單位之後,都要set一個constant定番個秒數。

  • Timer: "tmx _(timer number)_";"K _(constant)_", example: "tmx 0";"K 2" = 0.2s 嘅0 號timer

計完特定嘅時間之後可以用timer input去tigger番其他動作。

  • Timer input: "st t_(timer number)_", example: "st t0"
  • Timer NOT input:"st/ _(timer number)_", example:"st/ t0"

因為set timer嘅時候唔可以set小數,所以要用兩個timer,或者用細一個單位嘅timer但用大嘅constant。例如:想計0.25s,有兩種方法可以做。第一,1個tmx計0.2s("tmx 0", "k 2"),計完後tigger一個tmr計0.05s("tmr 1","k 5")。第二,直接set 一個tmr嘅timer但multiple係25("tmr 0","k 25")。留意番,如果喺ladder diagram度,俾timer嘅電斷左,個timer就會自己reset架啦,直到再俾電又會重新再計過。

用timer其中一個最常見嘅function嘅係令到燈根據frequency咁閃,一般係1 Hz同2 Hz。1 Hz即係指1 秒完成一個cycle(一開一閂);2 Hz就係指1 秒完成2個cycle,i.e.0.5s 完成一個cycle,咁所以係每0.25s開;每0.25s閂。

Example: Red light flashing at 2 Hz after pushing the button

Light flashing example. X40 = push button 1, Y44 = Red light bulb

禁左push button之後,因為開左R1, 會同時開左紅燈同自動開t0(line 4),開始計0.25s。計完t0嗰0.25s之後, normal close嘅t0(line 3)就會變為閂,咁Y44就會斷同閂左,同時t0 input (line 12)就會開左,開始數t1嗰0.25s。 t1數完之後,因為斷左normal close嘅t1(line 4),t0會重新計0.25s,以及開番燈,完成一個cycle。(i.e. 頭嗰0.25s - 由t0數,會係開燈,之後嗰0.25s - 由t1數,會係閂燈,而t1嘅作用就係用黎cut t0令到燈閂 同reset t0)

1.4 Counter

Counter,顧名思義,用黎計下一個動作進行左幾多次。同timer一樣,counter都有編號,由1008開始,唔記得到幾多,但如果順序用/隔唔太多個用一般都唔會入唔到嘅;counter都要打constant,即係想計嘅次數,當數到0就可以tigger counter input。Timer 比較特別嘅地方係有兩個input,下面個input係要打reset condition。

  • counter: "ct _(counter number)_","k 3", example: "ct 1008","k 3"
  • counter input: "st c_(counter number)_", example: "st c1008"
  • counter NOT input: "st/ c_(counter number)_", example: "st/ c1008"

Counter 最常用嘅地方就係計成個cycle自動行左幾次。例如,喺station嘅題目,做完一連串嘅operation做完,就會要求自動行左step幾到step幾 三次。呢一種類嘅做法,就係數佢最後個relay開左幾次,就知個cycle行左幾多次啦。不過喺呢度,就先俾個簡單啲嘅example啦。

Scenario: Press the button once turn on the red light, and the light will keep lighting on even when the hand was released. If the button was pressed for 5 times, the light will off. A reset button was used.

Counter operation example. X40 = push button 1;X41 = push button 2; Y44 = Red light bulb

呢個example當中有好多component都同上面有重疊嘅地方,我就唔多提啦。比較特別嘅係,呢度有兩個codition會閂燈,就係timer數夠數或者禁左reset button。當然,因為input可以有無數個,所以你亦都可以用X41取代所有R2。

Remarks: 做到一樣動作嘅PLC program都有好多種寫法,最重要都係自己方便,睇得舒服又容易debug。

https://button.like.co/ceognnwz 
CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论