我想通過Modbus RTU半雙工RS-485連接從我的Windows機器(Windows 10)與自定義板通信。我正在使用python MinimalModbus API並安裝了所有依賴庫。我也有適當的RS-422/485適配器。我知道波特率,COM端口,從機地址和校驗位都是正確的。我也知道我的代碼是從一個O範圍跟蹤輸出一個比特流。出於某種原因,董事會根本不會迴應。任何幫助將非常感激。MinimalModbus IO錯誤
import minimalmodbus
import serial
#minimalmodbus.CLOSE_PORT_AFTER_EACH_CALL = True
minimalmodbus.PARITY = serial.PARITY_EVEN
#minimalmodbus.handle_local_echo=True
minimalmodbus.BAUDRATE = 57600
minimalmodbus.TIMEOUT = .01
instrument = minimalmodbus.Instrument('COM4',0)
instrument.debug = True
print(instrument.read_register(11,1))
MinimalModbus debug mode. Writing to instrument (expecting 7 bytes back): '\x00\x03\x00\x0b\x00\x01ô\x19' (00 03 00 0B 00 01 F4 19)
MinimalModbus debug mode. No sleep required before write. Time since previous read: 1478637162864.7 ms, minimum silent period: 0.67 ms.
MinimalModbus debug mode. Response from instrument: ''() (0 bytes), roundtrip time: 10.9 ms. Timeout setting: 10.0 ms.
Traceback (most recent call last):
File "RS485.py", line 11, in <module>
print(instrument.read_register(11,1))
File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 258, in read_register
return self._genericCommand(functioncode, registeraddress, numberOfDecimals=numberOfDecimals, signed=signed)
File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 697, in _genericCommand
payloadFromSlave = self._performCommand(functioncode, payloadToSlave)
File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 795, in _performCommand
response = self._communicate(request, number_of_bytes_to_read)
File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 930, in _communicate
raise IOError('No communication with the instrument (no answer)')
OSError: No communication with the instrument (no answer)
由於電路板沒有響應並且您的代碼發送數據(您是否非常喜歡這種格式?),因此調試目標設備而不是PC可能是個好主意。 – Olaf
我正在檢查我的o-scope上的比特流。我知道目標設備需要爲每個PDU增加一個停止開始和奇偶校驗位,但我無法準確計算出比特流的外觀。轉換器的延遲可能會改變波特率嗎? – CompMan
你知道所有的modbus設備是否都需要這些精確的附加位?還是他們是特定於此董事會?另外,當你說調試目標設備時,你的意思是軟件嗎?像使用GDB一樣通過固件,因爲我試圖與它溝通? – CompMan