這篇文章要探討的是多個連續單點狀態寫入命令,雖然是多個連續單點狀態寫入,但並不像單點控制命令那樣可以寫入抑能/致能狀態,只能寫入ON/OFF狀態。所以這個命令實際上是多點ON/OFF控制命令,而被控制的接點會受到PLC的硬體和程式影響,電腦控制命令的控制權是最小的
多個連續單點狀態寫入的命令說明如下:
命令寫入字串的組成:起始碼+站號+命令碼+個數+起始單點號碼+連續單點狀態+偵誤碼+結束碼
個數是由2個16進制的數值組成,範圍是00~FF,換算成10進制數值是0~255,而永宏把00當成是10進制數值256,因此實際個數的輸入範圍是1~256
起始單點號碼就是要控制的多個連續單點頭1個編號,要注意的是單點類型後面的數值編碼一定是4位數
同樣要注意的是接點的數量有固定範圍,當起始單點號碼+個數超過接點有效範圍是會通訊錯誤的
連續單點狀態由左至右是以低位元往高位元排列,其中0代表OFF,1代表ON
PLC回應字串的組成:起始碼+站號+命令碼+錯誤碼+偵誤碼+結束碼
程式控制面版的構成如下:
接點狀態是以開關陣列組成,在程式內會在轉換成01字串狀態
完成的程式架構如下圖:
同樣是3格流程控制,起始碼、結束碼、通訊參數和關閉通訊埠等不能更改的部份一樣寫到格子外
第1格寫入命令的部份
為了預防寫入資料錯誤,接點狀態那邊有多做幾項步驟,以確保寫入的是正確資料
首先把個數的16進制數值字串轉換成10進制數值,這個數值到時要用在把接點狀態的Boolean資料轉成單一接點狀態字串
其次用For Loop迴圈把多個連續單點Boolean狀態轉換成文字,再組成單一字串
接下來就是把所有字串和已算好的偵誤碼組合寫入PLC內
第2格延遲時間同樣設定在120~200ms即可,但寫入的點數非常多時,設定時間還要再增加,才能完整讀到PLC回應字串
第3格同樣用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度
同樣從PLC回應字串的錯誤碼中可以看出是否通訊成功
留言列表