Bonjour,
Merci à tous pour les infos matos et soft.
J'ai une chaudière De Dietrich ELIDENS DTG 1300 Eco.NOx Plus/V130.
Ca fonctionne chez moi en profitant du programme de nico68.
J'ai un tableau de commande diametic 3.
Et j'ai l'impression que je suis en modebus bi-maitre (à la mode de dietrich).
De temps en temps les commandes modebus passe et j'obtiens les réponses et de temps en temps j'ai une erreur du type :
Traceback (most recent call last): File "dedietich.py", line 19, in <module> temp_ext = instrument.read_register(7, 1) # Registernumber, number of decimals File "/usr/local/lib/python3.4/dist-packages/minimalmodbus.py", line 258, in read_register return self._genericCommand(functioncode, registeraddress, numberOfDecimals=numberOfDecimals, signed=signed) File "/usr/local/lib/python3.4/dist-packages/minimalmodbus.py", line 697, in _genericCommand payloadFromSlave = self._performCommand(functioncode, payloadToSlave) File "/usr/local/lib/python3.4/dist-packages/minimalmodbus.py", line 798, in _performCommand payloadFromSlave = _extractPayload(response, self.address, self.mode, functioncode) File "/usr/local/lib/python3.4/dist-packages/minimalmodbus.py", line 1075, in _extractPayload raise ValueError(text)
ValueError: Checksum error in rtu mode: '\x00\x00' instead of '$\x00' . The response is: '\x00\x00\x00\x00\x00\x00\x00' (plain response: '\x00\x00\x00\x00\x00\x00\x00')
Quelqu'un a t il déjà résolu la lecture en mode bi-maitre ?
Comment peut-on savoir quand on peut parler ?
Mlier
Mon fichier d'exemple avec un changement de la température voulue de nuit :
import minimalmodbus import requests import sys import time minimalmodbus.CLOSE_PORT_AFTER_EACH_CALL = True instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 10) # port name, slave address (in decimal) instrument.serial.baudrate = 9600 instrument.serial.bytesize = 8 instrument.serial.parity = minimalmodbus.serial.PARITY_NONE instrument.serial.stopbits = 1 instrument.serial.timeout = 1 # seconds (0.05 par defaut) instrument.debug = True # True or False instrument.mode = minimalmodbus.MODE_RTU temp_ext = instrument.read_register(7, 1) # Registernumber, number of decimals print('==========================') print('Temperature exterieure : ') print(temp_ext) temp_chaud = instrument.read_register(75, 1) # Registernumber, number of decimals print('==========================') print('Temperature chaudiere : ') print(temp_chaud) temp_ext = instrument.read_register(3, 1) # Registernumber, number of decimals print('==========================') print('CTRL : ') print(temp_ext) temp_ext = instrument.read_register(4, 0) # Registernumber, number of decimals print('==========================') print('Heure : ') print(temp_ext) temp_ext = instrument.read_register(5, 0) # Registernumber, number of decimals print('==========================') print('Minute : ') print(temp_ext) temp_ext = instrument.read_register(6, 0) # Registernumber, number of decimals print('==========================') print('Jour : ') print(temp_ext) temp_ext = instrument.read_register(14, 1) # Registernumber, number of decimals print('==========================') print('T de jour : ') print(temp_ext) temp_ext = instrument.read_register(15, 1) # Registernumber, number of decimals print('==========================') print('T de nuit : ') print(temp_ext) instrument.write_register(14, 10, 1) temp_ext = instrument.read_register(14, 1) # Registernumber, number of decimals print('==========================') print('T de jour : ') print(temp_ext)