這一系列文章要探討的是用LabVIEW控制永宏PLC,我用來測試的是FBe這系列機種,型號是FB-28MC

關於這方面的資料可在永宏公司的網站找到使用者手冊和通訊協定格式說明。不過這系列文章不探討硬體的設定,一切全採用內定值。若想省錢自己燒製通訊線可參考使用者手冊(進階篇)第十二章:FB-PLC之通訊,其中有通訊線的接線圖和詳細說明

這系列文章主要探討的是通訊協定格式說明這份文件,通訊命令的主要格式說明如下圖:

20081008-10  

 

永宏plc的通訊技術大約等於是三菱和OMRON的綜合體:命令格式編排是OMRON式的排列法,元件位址則是和OMRON相同直接用接點名稱。起始碼和結束碼完全和三菱相同,偵誤碼採用和三菱相同的縱式餘數查核法,不過計算範圍不同

 

 

首先要探討的是偵誤碼的計算:


偵誤碼的計算範圍是:起始碼+站號+命令碼+本文資料


偵誤碼計算方法是,來源字串全部轉為大寫再拆散為16進制數值陣列,再將陣列內數值全部相加除以16進制數值100求得餘數,將算出的餘數只取最後2位轉換為字串。完成的程式如下圖:

20081008-01  

 

要先將來源字串轉為大寫是因為PLC內通訊只用大寫,要預防輸入小寫文字。而先完成這個程式是要做成Sub VI,在其他LabVIEW程式直接引用

 

 

接下來要正式完成通訊程式,可用的通訊命令如下圖表格:

20081008-02  

 

其中有幾個命令在後續文章中將不予探討研究:

命令碼48和49任意單點/暫存器混合之狀態/資料讀取和寫入,因為組合的狀態是千變萬化,要編成寫入字串或是把回應字串還原成個別狀態資料都是很困難的事,所以這2個命令跳過不研究

命令碼4F和50程式存檔、載入,這命令實際上不會比PLC的程式編輯軟體好用

命令碼53PLC詳細系統狀態讀取,一次讀回來的資料字串很多,而資料字串中每組字串所代表的意義不明確?手冊中找不到更詳細的解說,等於是不具實用性的命令

 

 

這次範例先使用測試回傳這個命令,格式簡單不容易出錯,命令說明如下圖:

20081008-03  

 

命令組成的字串是:起始碼+站號+命令碼+測試資料+偵誤碼+結束碼


若成功通訊則會回傳完全相同的字串

 

 

程式面板如下圖:

20081008-04  

 

只有1個文字輸入元件用來輸入測試資料,還有1個文字輸出元件接收PLC回應字串

 

 

完成的程式如下圖:

20081008-05  

 

照慣例各廠牌PLC通用的3格通訊流程控制,以Flat Sequence Structure元件來控制動作流程

 

 


現在由左到右逐項說明:

 

最左邊是基本參數,完全使用硬體的內定值,寫到格子外

20081008-06  

 

通訊埠請參考硬體狀況修改,底下的9600,7,Even,1,0不可改


起始碼使用數值2(為U8格式),透過Type Cast元件轉換為ASCII碼2


結束碼使用數值3(為U8格式),透過Type Cast元件轉換為ASCII碼3


※起始碼和結束碼轉換用的數值一定要是U8的8位元格式,轉換出來的ASCII碼是不可見字元,用文字輸出元件來看是看不到的

 

 

第1格是寫入命令:

20081008-07  

 

首先將起始碼、站號、命令碼、測試資料合成單一字串,單一字串再計算出偵誤碼,最後再把單一字串+偵誤碼+結束碼合成命令字串寫入PLC


※站號依照硬體內出廠設定值是01


※測試回傳的命令碼是4E


※偵誤碼依照上面所寫的方法去寫,不過這次拿掉把文字轉大寫的元件,因為是測試通訊,沒必要把文字轉成大寫

 

 

第2格是等待PLC回應的延遲時間,這裡就和OMRON一樣可以設定較短時間,本範例設定為120 ms

20081008-08  

 

 

第3格是接收PLC回應字串判斷是否控制成功,這裡同樣用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度

20081008-09  

 

讀回的字串顯示到PLC回應字串的文字顯示元件上

最右邊寫到格子外的是關閉通訊埠元件

從範例面板上的圖可以看出測試資料輸入ABCDEFG,而回應的字串為(ASCII碼2)014EABCDEFGB8(ASCII碼3),因為前後那2個ASCII碼文字是不可見字元,所以只會看到014EABCDEFGB8

 

 

※若電腦這邊使用的是USB,請用USB轉PLC的專用線,這條線找代理商買比較不會出錯,價錢當然也是貴。用USB專用線要注意電腦系統的裝置管理員有沒有抓到硬體驅動程式,這條線最會出問題的就是這個地方,通常也是通訊失敗的主因。以下網址產品在業界有一定的優良風評可以參考,http://www.yahsu.com.tw/UDS_Port_2252.html

, ,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • 李東璋
  • Hi 版主,
    我按照你的程式並接上永宏PLC測試後,LABVIEW出現錯誤碼Error -1073807202。想請版主幫忙讓我能連上PLC。謝謝!
  • 李東璋
  • 版主你好,問題已解決了。因為數值格式的問題,調整成正確格式就OK。謝謝!

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼