1.目的
紀錄TIA Portal MB_Client V5.2 Status運作過程狀態
2.初始狀態未連接(ActiveEstablished = FALSE)
Connected | Active | Done | Error | Busy | Status |
False | False | False | True | Fasle | 80BB |
MB_Client需要主動建立連線,需要把ActiveEstablished設定為True,Req訊號才會有作用。
3.初始狀態自動連接(ActiveEstablished = False>True)
Connected | Active | Done | Error | Busy | Status |
False | False | False | False | Fasle | 7001(觸發連接) |
False | False | False | False | False | 7002(正在建立連接) |
True | False | False | False | False | 0001(連接已建立) |
True | False | False | False | False | 7004(監視中、無活動) |
經過一段時間後,如果沒有動作Socket會進行關閉
Connected | Active | Done | Error | Busy | Status |
True | False | False | False | Fasle | 7003(正在終止連接) |
True | False | False | False | False | 7004(監視中、無活動) |
False | False | False | True | False | 80C6(無法連接網路錯誤) |
False | False | False | False | False | 7001(觸發連接) |
False | False | False | False | False | 7002(正在建立連接) |
True | False | False | False | False | 0001(連接已建立) |
True | False | False | False | False | 7004(監視中、無活動) |
4.ActiveEstablished = True , Disconnect = True
對於任何狀態可使用Disconnect進行終止。
Connected | Active | Done | Error | Busy | Status |
True | False | False | False | Fasle | 7003(正在終止連接) |
False | False | False | True | False | 0003(連接終止) |
False | False | False | False | False | 7000(無活動、無連接) |
5.REQ觸發資料讀取
REQ觸發資料讀取如果恆為TRUE會一直連續讀取,一個正常讀取的狀態流程為
Connected | Active | Done | Error | Busy | Status |
True | True | False | False | True | 7005(發送數據Request) |
True | True | False | False | True | 7006(數據接收Response) |
True | False | True | False | False | 0000(命令執行完成) |
如果Req沒有False狀態,且通訊正常,則會一直重複7005>7006>0000>7005>7006>0000.....
如單次發送命令觸發Req之後設定為False,則會7005>7006>0000>7004進入監視狀態。
6.連接錯誤(ActiveEstablished = False > True)
Connected | Active | Done | Error | Busy | Status |
False | False | False | False | False | 7001(觸發連接) |
False | False | False | False | False | 7002(正在建連接) |
False | False | False | True | False | 80C6(網路錯誤) |
當無法進行連接時,會7001>7002然後過一段時間跳80C6,之後會重新7001>7002>80C6
7.Request命令錯誤時
當Modbus Request命令錯誤時(回應Error code)
Connected | Active | Done | Error | Busy | Status |
True | True | False | False | True | 7005(發送數據Request) |
True | True | False | False | True | 7006(數據接收Response) |
True | False | False | True | False | 8383(操作錯誤) |
8.Request no response
連線成功,但是要求命令後無回應,MB_Client會重新發送命令,依照Retries參數設定執行重發次數(預設為3,發送次數為1次發送+3次重送共4次,如果要停止重發可設定為0)
Connected | Active | Done | Error | Busy | Status |
True | True | False | False | True | 7005(發送數據Request) |
True | True | False | False | True | 7006(數據接收Response) |
True | True | False | False | True | 7005(發送數據Request) |
True | True | False | False | True | 7006(數據接收Response) |
True | True | False | False | True | 7005(發送數據Request) |
True | True | False | False | True | 7006(數據接收Response) |
True | True | False | False | True | 7005(發送數據Request) |
True | True | False | False | True | 7006(數據接收Response) |
True | False | False | True | False | 80C8(無回應) |