本文介紹台達人機巨集之使用方式:
1.為何要用巨集
2.巨集的分類
1.為何要用巨集:
巨集可以分擔plc之程式負擔,可以直接將程式寫入人機處理資料,
注意:單一巨集長度只能有512行,每行註解128字.
且可以將重覆使用的程序寫在子巨集中,以便重覆呼叫,子巨集可以寫512個
2.巨集的分類
台達人機巨集種類有11種,四大類
[第一類] ON/OFF巨集(input元件資料型態為bit,皆可寫ON/OFF巨集):當按鈕ON或OFF時會執行的巨集
舉例:
我門寫一個簡易計算機當例子,當數字輸入完,選擇+-*/鈕,最後按下=計算出結果
選擇"=鈕"再開屬性視窗,點編輯 ON 巨集,就會跳出ON巨集的編輯視窗
範例畫面 |
=鍵的ON巨集 |
巨集編輯器功能條 |
[第二類] 執行前/後巨集
此巨集附加再按鈕或是數值輸入元件,按鈕或數值輸入元件執行前或執行後才開始執行巨集.
舉例:
新增一個頁面,放入文數字輸入元件($20)我們用它來輸入密碼,元件屬性之字串長度設成4,按下執行後巨集,就會出現巨集編輯頁. 我們預設密碼為1234. 因為文數字輸入元件將輸入值放進每個內鍵$_記憶體,一個$_只能存2個ASCII字元.故超過2個字元就會放在下一個記憶體位置.
如:將文數字輸入元件的字串長度設為4,並將其寫入記憶體設為$20,那麼文數字輸入元件將會佔$20 $21 之記憶體位置.
另外,放進記憶體裡的ASCII字元也會被顛倒喔!像是:輸入1234=>會變成2143,輸入AB會變BA.依此類推
文數字元件屬性設定 |
執行後巨集 |
如果你不確定輸入元件存進記憶體的數值到底是什麼的時候,建議你拉一個數值顯示元件,並將該元件的設定值中數值格式調為16進顯示(2進也ok)看看到底該元件是怎麼將你輸入的數值存入記憶體的.
密碼確認範例執行圖片 |
開啟巨集就是再畫面開啟就彙執行,關閉巨集就是畫面關閉前執行,Cycle巨集則是在畫面開啟後就依照畫面屬性/畫面設定 中所設定之Cycle巨集延遲時間,執行完一次cycle再等待一個時間一直重負執行
(1).我們用上一個例子來介紹畫面開啟巨集.再開啟該頁面之前可能因為之前已經輸入過密碼導致記憶體裡面已經有值了,所以在進入頁面前要洗掉文數字輸入元件對應的記憶體的值與警報訊息走馬燈的值 .
畫面開啟巨集程式將相關記憶體清空 |
(3).我們再新開頁面,在頁面新增動態線條,記憶體位置$50,Cycle巨集延遲時間設為100ms,表示每執行完一次Cycle巨集程式100ms之後才會執行下一次
動態線條設定 |
**動態線條的記憶體配置請參考圖形顯示這篇文的介紹.
[第四類]初始/背景/時鍾巨集 與子巨集
(1)初始巨集: 在人機中只有一個,為人機一啟動時會執行的程式,常用於初始化人機中的記憶體.
(2)背景巨集:在人機中只有一個,人機執行時會依值重覆執行該程式,並不用擔心背景巨集會與Cycle巨集有所衝突而導致其中一個不執行,因為人機會使用多工方式執行這兩個程式.
(3)時鍾巨集:在人機中只有一個,依照所設定之Clock時間重覆執行該巨集,可以在選項=>模組參數中設定Clock巨集延遲時間.
(4)子巨集: 子巨集最多可以寫512個,每個可以寫512行.他就像程式裡面的function一樣,遇到重複的動作可以將他寫在子巨集中.呼叫子巨集的方法也很簡單,若要呼叫編號為1的子巨集,就寫'CALL 1'就ok了.
因為初始/背景/時鍾巨集與前面介紹之畫面開啟/關閉/Cycle巨集為相同概念,只有其執行時間不同故不在多講,直接介紹子巨集的範例.
點選 選項=>子巨集,我們在新增一個頁面執行一連串動範例的動作.
我想請問 近日學習台達人機 有用到水管圖 他 可以用巨集編寫流動 但是不能控制
回覆刪除請問你可以教我嗎? 如何編寫巨集控制他 的流動狀態
請問一下,CYCLE模式下自動歸零重新計數寫法為何?比如說我現在顯示數值跳到100,到100值後要自動歸零並且重新計數
回覆刪除IF $0 >= 100 THEN
刪除$0 = 0
ENDIF
感謝回復
刪除感謝回復
回覆刪除請問,若把$1、$2、$3用來比較年月日,該用哪個巨集及撰寫
回覆刪除