接下來的系列文章依照命令碼的順序一一研究

 

首先是概略系統狀態讀取命令,命令說明如下圖:

20081012-10  

 

命令寫入字串的組成:起始碼+站號+命令碼+偵誤碼+結束碼


PLC回應字串的組成:起始碼+站號+命令碼+錯誤碼+STATUS1+STATUS2+STATUS3+偵誤碼+結束碼

 

 

其中錯誤碼代表的意義如下圖說明:

20081012-05  

 

通訊成功則錯誤碼一定是0

 

後面STATUS1~3的系統狀態是表示硬體的狀態,我測試的PLC因為沒有外加硬體,系統設定也全為內定值,STATUS2~3一定是00,STATUS1則只有第1個表示RUN/STOP的Bit有動作,RUN的時候是01,STOP時是00


而程式中要處理的是STATUS1,把數值的代碼轉換為LED元件顯示

 

 

控制面板如下圖:

20081012-01  

 

PLC回應字串是觀察用,可以捨棄不要


系統狀態則使用8個LED元件組成的陣列來表示,旁邊的注釋文字紅字表示燈亮時的狀態

 

 

完成的程式如下圖:

20081012-02  

 

慣例是3格流程控制,起始碼、結束碼、通訊參數和關閉通訊埠等不能更改的部份一樣寫到格子外

 

 

第1格寫入命令的部份,只要把起始碼+站號+命令碼先合成字串算出偵誤碼,最後把所有字串組合寫入PLC內

20081012-03  

 

偵誤碼直接引用前一篇文章做出的Sub VI來計算

 

 

第2格延遲時間不要太短,會收不齊回應字串,設定在120~200ms即可

20081008-08  

 

 

第3格用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度

20081012-04  

 

從回應字串中取出代表STATUS1的2個文字碼,先轉成數值再轉成Boolean陣列,再從陣列中取出有效位數8個來顯示

 

 

 


再來是的RUN/STOP控制命令,命令說明如下圖:

20081012-06  

命令寫入字串的組成:起始碼+站號+命令碼+控制碼+偵誤碼+結束碼

其中控制碼在RUN的時候是1,STOP時是0

 


PLC回應字串的組成:起始碼+站號+命令碼+錯誤碼+偵誤碼+結束碼

錯誤碼的意義如前面所寫,控制成功的話一定是0

 

 

控制面板如下圖:

20081012-07  

 

PLC回應字串是觀察用,若不接出來顯示也可以捨棄不要

控制碼的部份直接用1個開關元件來切換,ON的時候是1,OFF時是0

 


完成的程式如下圖:

20081012-08  

 

同樣是3格流程控制,起始碼、結束碼、通訊參數和關閉通訊埠等不能更改的部份一律寫到格子外


第1格寫入命令的部份,先把開關的狀態轉成數值,再轉成文字代碼

20081012-09  

 

再來把起始碼+站號+命令碼+控制碼先合成字串算出偵誤碼,最後把所有字串組合寫入PLC內


偵誤碼同樣直接引用前一篇文章做出的Sub VI來計算

 


第2格延遲時間同樣不要太短,設定在120~200ms即可

 

 

第3格用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度

20081008-09  

 

從範例程式面板中,PLC回應字串的可見字元01410F8中,可看到標示藍字位置的錯誤碼是0,代表控制成功

arrow
arrow
    文章標籤
    LabVIEW RS-232 永宏PLC
    全站熱搜

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