回覆列表
  • 1 # Ice灬1

    Modbus 是一個請求/應答協議,並且提供功能碼規定的服務,是工業中經常使用的一種協議。每種裝置(PLC、變頻器、HMI、控制面板、驅動程式、動作控制、輸入/輸出裝置)都能使用Modbus協議來進行相互交流。

    Modbus協議的傳輸方式有兩種,ASCII模式和RTU模式,在同一個Modbus網路中,所有的通訊引數必須一致;那麼我們透過西門子1200與ABB變頻器ACS510為例來說一下PLC與多臺變頻器的通訊。ACS510 支援下列對 Modbus 4xxxx 暫存器進行操作的功能程式碼:03 讀取保持暫存器4xxxx;06 寫單個 4xxxx 暫存器;16(0x10 Hex)寫多個4xxxx暫存器;23 (0x17 Hex) 讀/寫 4xxxx 暫存器,40001~40099對映到傳動控制和實際值,40101 ~ 49999 對映到傳動引數0101~ 9999。

    瞭解了以上這些,用訊號線將PLC與變頻器的485介面正負連線好,設定好變頻器內部與Modbus相關的引數,比如採用Modbus RTU協議、通訊地址、波特率、奇偶校驗等引數;剩餘的部分就是編寫PLC通訊程式

    上圖程式所示在S7-1200中呼叫了一個Modbus塊,功能為讀取變頻器內部引數,首先填寫合適的通訊引數,Data ADDR處為需通訊的變頻器的地址,DATA_LEN為所讀取暫存器的個數,MODE為0表示讀取數值;

    編寫程式,將讀取的引數統一存放到特定的暫存器中,這樣就完成了PLC透過Modbus協議來與變頻器通訊了。以上舉例只為監控或讀取變頻器的數值,還可以編寫控制變頻器的程式。

  • 中秋節和大豐收的關聯?
  • 準媽媽臉上長斑要怎麼辦?