功能碼作用
啟動Modbus事務處理的客戶機創建Modbus應用數據單元。功能碼(PDU中的)向服務器指示將執行哪種操作?
用一個(ge) 字節編碼Modbus數據單元的功能碼域。有效範圍是十製製1-255(128-255為(wei) 異常響應保留)。當從(cong) 客戶機向服務器發送報文時,功能碼域通過服務器執行哪種操作?
從(cong) 客戶機向服務器發送的報文數據域包括附加信息,服務器使用這個(ge) 信息執行功能碼定義(yi) 的操作。這個(ge) 域還包括離散項目和寄存器地址、處理項目的數量以及域中的實際數據字節數。
在某種請求中,數據域可以是不存在的,在此情況下服務器不需要任何附加信息。功能碼僅(jin) 說明操作。
功能碼的類型
功能碼主要分為(wei) 有效功能碼、異常功能碼和錯誤功能碼。
如果在一個(ge) 正確接收Modbus ADU中,不出現與(yu) 請求Modbus功能有關(guan) 的差錯,那麽(me) 服務器至客戶機的響應數據會(hui) 包含請求中的正常功能碼。如果出現與(yu) 請求Modbus功能有關(guan) 的差錯,那麽(me) 響應數據會(hui) 包含一個(ge) 異常碼和錯誤碼。
例如,客戶機能夠讀一組離散量輸出或輸入的開/關(guan) 狀態,或者用戶能夠讀/寫(xie) 一組寄存器數據內(nei) 容。當服務器對客戶機響應時,它使用功能碼域來指示正常(無差錯)響應或出現某種差錯(稱為(wei) 異常響應)。對於(yu) 一個(ge) 正常響應來說,服務器僅(jin) 對原始功能碼響應。
對於(yu) 異常響應,服務器返回一個(ge) 與(yu) 客戶機等同的碼,設置該原始功能碼的最高有效位為(wei) 邏輯1,並加該異常碼後增加錯誤碼,以通知客戶機異常原因。
有效功能碼
有效功能碼有二十幾種,但是一般使用上都以1、2、3、4、5、6、15、16等八種最為(wei) 常用,以及另外特殊使用的20、21兩(liang) 種,此為(wei) General Reference Register,絕大部份的Modbus設備並不會(hui) 提供此Register。於(yu) PLC上主要的控製數據有下列四種型式。此八種功能碼就是處理這些控製資料,詳細說明如下各點:
控製數據四種型式:
DI:DigitalInput(數字輸入,離散輸入),一個(ge) 地址一個(ge) 數據位,用戶隻能讀取它的狀態,不能修改。以一個(ge) bit表示 On/Off,用來記錄控製信號的狀態輸入,例如:開關(guan) ,接觸點,馬達運轉,超限switch等。於(yu) PLC上被稱為(wei) Input relay、input coil等。
DO:DigitalOutput(數字輸出,線圈輸出),一個(ge) 地址一個(ge) 數據位,用戶可以置位、複位,可以回讀狀態。以一個(ge) bit表示 On/Off,用來輸出控製信號,以激活或停止馬達,警鈴,燈光等。於(yu) PLC上被稱為(wei) Output relay、Output coil等。
AI:Analog Input(模擬輸入,輸入寄存器),一個(ge) 地址16位數據,用戶隻能讀,不能修改,,以16 bits integer表示一個(ge) 數值,用來記錄控製信號的數值輸入,例如:溫度、流量、料量、速度、轉速、文件板開度、液位、重量等。於(yu) PLC上被稱為(wei) Input register。
AO:AnalogOutput(模擬輸出,保持寄存器),一個(ge) 地址16位數據,用戶可以寫(xie) ,也可以回讀,以16 bits integer表示一個(ge) 數值,用來輸出控製信號的數值,例如:溫度、流量、速度、轉速、文件板開度、飼料量等設定值。於(yu) PLC上被稱為(wei) Output register、Holding register。