用LabVIEW控制三菱PLC最困難的地方就是控制命令的書寫格式,第一個困難是通訊偵誤碼的計算,第二個困難是查受控制元件的通訊用位址
這次要研究的是受控制元件的通訊用位址,以目前市面上能找到較詳細的資料只有兩本書,真巧都是同一位作者。ㄧ本是VB圖形監控-F(A)X系列PLC,這本用的是VB程式書寫。另一本是PLC_LabVIEW圖形監控,這本用的是LabVIEW程式書寫
這兩本書除了所用程式不同外,內容大同小異,其中LabVIEW這本少的就是元件通訊用位址的計算。元件通訊用位址的計算在VB程式中只是方便查詢,但在LabVIEW程式中可以直接做成Sub VI,在其他LabVIEW程式直接引用
研究的目標是把VB的那本書中的計算方法以LabVIEW的程式完成,由於有許多要計算的部分,這次只針對單一元件通訊用位址改寫
程式的執行畫面很簡單,只有一個字串輸入和一個字串輸出的元件,在背後的程式會自動將所有輸入的字轉為大寫,所以可以不用特別去注意大小寫的問題,要注意的是輸入的字串是否是正確的元件編號
程式一開始的部份就是將輸入的元件編號字串分離,分離出的帶頭字元用來判定元件種類,以便決定後續的計算方式。分離出的編號字元則是計算通訊位址的來源數據。由於三菱PLC的通訊位址全為16進制,因此計算後的輸出字串也必須為16進制數值
X和Y元件在實體PLC上是以8進制來編號,計算上比較麻煩,在這裡是將數值的個位數和十百位數再分離,分別計算處理後在相加,最後在加上16進制的元件起始位址數值,輸出時轉成16進制字串,並自動補足成4個字元的字串
T、C和S元件較單純,因為是十進制連續編號,只要在加上16進制的元件起始位址數值,輸出時轉成16進制字串即可
M元件和特M元件也是十進制連續編號,在有效編號範圍間有段落差,而且16進制的元件起始位址數值也不同,因此必須分開處理
留言列表