一.概述
東莞某電鍍設備公司為一家電鍍設備專業制造商,原有設備上使用的控制系統采用工業PC做為上位機,PLC為下位機,上位機PC不但做為系統的界面,同時也起到對輸入指令和PLC反饋指令的解碼和編碼工作,鑒于HMI功能日益強大以及HMI更符合工業現場環境,客戶提出了使用MT5000替換工業PC機的方案,具體要求及實現在本文中有詳細描述。
二.系統要求
在PLC程序不改動的情況下,觸摸屏的輸入界面按下面的格式設計:
程序的執行順序為1->2->3->4->5->6…->50, 每步根據界面設定的對應步數的“目的缸號”、“吊車互鎖”、“機車升降”、“等待時間”、“滴水時間”等數據執行動作,基于每步的數據共5個,總長度小于2字(4byte), 故我們在設計時將每步的數據使用PLC中對應的兩個控制字來定義,針對用戶的PLC,我們定義這50步的數據為DM1000~DM1100, 如第1步對應DM1000和DM1001,第2步對應DM1002和DM1003。
三.實現步驟
用第1步舉例說明:
1.第1列“目的缸號”的設置要求
共4種模式,最多4個字符:
1)L或U模式,默認缸號為1號缸
當為‘L’時,即LOAD時,DM1000的第0、6位置1
當為‘U’時,即UNLOAD時,DM1000的第1、6位置1
2)XX模式,無SBUSCYLE模式
XX為數字,表示實際缸號,用DM1000的0~5位表示,第6位置于0。
3)SXY模式,S代表SUBSYCLE
子循環數X用DM1000的第2~4位表示
子循環數的工位數Y用DM1000的第10~15位表示
DM1000的第6位為1。
2.第2列“吊車互鎖”的設置要求
當首字符為F或B時,說明有互鎖情況,該列共有3種輸入:
1)輸入為FX,DM1000的第9位置1,DM1001的第0~7位設置為X
2)輸入為BX,DM1000的第9位置1,DM1001的第8~15位設置為Y
3.第3列“上升/下降”設置說明
字符=Y, 說明是“上升”, DM1000的第7位設置= 0
字符=N, 說明是“下降”, DM1000的第7位設置= 1
4.第4列“等待時間”設置說明
XX: 數值,數據最大長度2位,最大值25, 當第2列首字符=‘F’或‘B’時, 設
定DM1001的第0~7位 = XX*10
5.第5列“滴水時間”設置說明
XXX: 數值,數據最大長度3位,最大值255, 當第2列首字符=‘F’或‘B’時, 設
定DM1001的第8~15位 = XXX
其它說明:
1.當遇到空操作N時
DM1000的第7位置1
2.當執行到最后一步時,將上一步低控制字的第8位置1
3.高控制字在沒有F/B時
高字節存放滴水時間,要*10輸入
低字節存放等待時間, 要*10輸入
4.高控制字在有F/B時
高字節存放BACKWORD的X值
低字節存放FORWORDA的X值
如下表:

程序編寫思路:
1.采用索引來輸入每步的信息,這樣可以簡化畫面制作難度。
2.宏指令執行過程:
1)讀入每步信息,判斷RWI0是否為空,若不為空則將其轉化為控制字中的值,賦給LW0,LW1。
2)改變偏移量指向存儲控制字的區域。
3)將LW0,LW1的值傳到存儲控制字的區域。
4)改變偏移量指向下一步信息。
5)當RWI0為空,中斷循環,去執行給最后一步賦標志位的程序(期間進行兩次偏移量切換)。
6)用定時器的數據傳輸功能將轉換后的控制值傳到PLC相應的區域。
輸入畫面和執行結果(測試畫面)演示如下圖:
[align=center]

圖1

圖2[/align]
宏指令實現(鑒于篇幅較長,省略):
共9段宏指令。
宏指令一的執行是通過畫面2中的“執行轉換”按鈕觸發,同時在畫面2中設置了多個定時器元件,每個定時器指令觸發一條宏指令,通過宏指令一順序執行其它的指令。
通過修改LW9000(RWI偏移量)值,每次轉換7個字的數據,從RWI0~RWI6開始, 將轉換后的數據首先傳遞給從RWI500~RWI501開始的本地數據區,由于在提取原始數據時是每7個字提取,而轉換的結果為2個字,所以涉及到偏移量的改變,在宏指令中先后將偏移量值LW9000設置為7和2的倍數。最后,將轉換后的結果值利用配方卡的下載功能,將數據下載到PLC中。
四.總結
MT5000有強大的定時器和宏指令功能,宏指令采用標準C語言編程,C語言是大家較為熟悉的編程語言,通過它可實現一些較復雜的運算,希望我的總結能對大家有所幫助。