錯誤碼21的發生原因有哪些

Problem

手冊說明是通訊指令錯誤,設定參數超出範圍。通訊指令不支援。
但當時我只有使用讀取寄存區的指令(0x03, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x85, 0xED)進行記憶體區的詢問,為何會出現這種狀況?該指令不會變動,並且以30 hz 進行詢問。

若是指令有問題,應該一開始就會出現狀況;若是資料有問題,驅動器檢查CRC應該不會接收該指令?

Solution

錯誤碼21發生的原因有底下幾個

  1. RS485通訊異常: 當參數09-13 設置不等於0時, 如果RS485 收到不符合Modbus資料封包的次數, 超過此設定時就會跳Alarm. 

  2. RS485通訊逾時: 當參數09-12 設置不等於0時,  如果RS485 超過此設定時間, 沒有收到新的資料封包就會跳Alarm.

  3. RS232通訊異常: 當參數09-15 設置不等於0時, 如果RS232收到不符合Modbus資料封包的次數, 超過此設定時就會跳Alarm. 

  4. RS232通訊逾時: 當參數09-14 設置不等於0時,  如果RS232 超過此設定時間, 沒有收到新的資料封包就會跳Alarm.

有使用RS485 通訊逾時功能時, 錯誤碼21可能是RS485 通訊逾時, 原因如下:

  1. USB轉RS485本身異常

  2. RS485 通訊線被干擾

  3. 電腦延遲 ( 使用電腦進行通訊時, 只要電腦的處理量大一些, 就可能會發生 )