接下來的系列文章依照命令碼的順序一一研究
首先是概略系統狀態讀取命令,命令說明如下圖:
命令寫入字串的組成:起始碼+站號+命令碼+偵誤碼+結束碼
PLC回應字串的組成:起始碼+站號+命令碼+錯誤碼+STATUS1+STATUS2+STATUS3+偵誤碼+結束碼
其中錯誤碼代表的意義如下圖說明:
通訊成功則錯誤碼一定是0
後面STATUS1~3的系統狀態是表示硬體的狀態,我測試的PLC因為沒有外加硬體,系統設定也全為內定值,STATUS2~3一定是00,STATUS1則只有第1個表示RUN/STOP的Bit有動作,RUN的時候是01,STOP時是00
而程式中要處理的是STATUS1,把數值的代碼轉換為LED元件顯示
控制面板如下圖:
PLC回應字串是觀察用,可以捨棄不要
系統狀態則使用8個LED元件組成的陣列來表示,旁邊的注釋文字紅字表示燈亮時的狀態
完成的程式如下圖:
慣例是3格流程控制,起始碼、結束碼、通訊參數和關閉通訊埠等不能更改的部份一樣寫到格子外
第1格寫入命令的部份,只要把起始碼+站號+命令碼先合成字串算出偵誤碼,最後把所有字串組合寫入PLC內
偵誤碼直接引用前一篇文章做出的Sub VI來計算
第2格延遲時間不要太短,會收不齊回應字串,設定在120~200ms即可
第3格用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度
從回應字串中取出代表STATUS1的2個文字碼,先轉成數值再轉成Boolean陣列,再從陣列中取出有效位數8個來顯示
再來是的RUN/STOP控制命令,命令說明如下圖:
命令寫入字串的組成:起始碼+站號+命令碼+控制碼+偵誤碼+結束碼
其中控制碼在RUN的時候是1,STOP時是0
PLC回應字串的組成:起始碼+站號+命令碼+錯誤碼+偵誤碼+結束碼
錯誤碼的意義如前面所寫,控制成功的話一定是0
控制面板如下圖:
PLC回應字串是觀察用,若不接出來顯示也可以捨棄不要
控制碼的部份直接用1個開關元件來切換,ON的時候是1,OFF時是0
完成的程式如下圖:
同樣是3格流程控制,起始碼、結束碼、通訊參數和關閉通訊埠等不能更改的部份一律寫到格子外
第1格寫入命令的部份,先把開關的狀態轉成數值,再轉成文字代碼
再來把起始碼+站號+命令碼+控制碼先合成字串算出偵誤碼,最後把所有字串組合寫入PLC內
偵誤碼同樣直接引用前一篇文章做出的Sub VI來計算
第2格延遲時間同樣不要太短,設定在120~200ms即可
第3格用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度
從範例程式面板中,PLC回應字串的可見字元01410F8中,可看到標示藍字位置的錯誤碼是0,代表控制成功
留言列表