modbus

Forum pour tous les autres protocoles : Enocean, X10, les cartes piface.razberry ...
Pour les questions concernant le choix de protocoles, merci d'utiliser le forum Les autres objets.
maccoa
Messages : 2
Inscription : 23 oct. 2017, 10:21

modbus

Message par maccoa »

Bonjour.

je viens de découvrir Domoticz en cherchant un moyen de connecter ma chaudière à pellet à mon rpi3 .
en fouinant , j'ai essayer plusieurs lib , pymodbus , minimalmodbus .
la chaudiére peut soit dialoguer en ascii ou rtu .

voici ou je commence à etre vraiment larguer.
pour tester j'essaye de lire la temp ext. d'aprè la doc cela se trouve en : Input Register (FC 03) , address 30005 air outside temp
MODBUS avl. Commands
All Digital Outputs
Read Coil Status (FC=01) Adress 00001 - 00113
All Digital Inputs
Read Input Status (FC=02) Adress 10001 - 10048
All Parameter
Read Holding Registers (FC=03) Adress 40001 - 40877
Alle Aktual Values
Read Input Registers (FC=04) Adress 30001 - 30254
Error Log
Read Input Registers (FC=04) Adress 33001 - 33020
Boilerstate
Read Input Registers (FC=04) Adress 34001 - 34002
At the moment the Parameter write ist locked, unlocking only by Fröling
Write Single Register (FC=06)
Adress 40001 - 40877
en essayant de comprendre j'ai réussi à faire un script python qui ne me donne pas d'erreurs.

Code : Tout sélectionner

#!/usr/bin/env python
import minimalmodbus
import serial
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1, minimalmodbus.MODE_ASCII)

instrument.debug = True
instrument.serial.baudrate = 57600 
instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout  = 1

print instrument.read_register(001)
je ne comprend pas du tout comment renseigner le instrument.read_register .
comme il est dans mon script j’obtiens:
pi@rpi3:~ $ sudo python modbus.py

MinimalModbus debug mode. Writing to instrument (expecting 15 bytes back): ':010300010001FA\r\n' (3A 30 31 30 33 30 30 30 31 30 30 30 31 46 41 0D 0A)
MinimalModbus debug mode. No sleep required before write. Time since previous read: 1508748197862.0 ms, minimum silent period: 0.67 ms.
MinimalModbus debug mode. Response from instrument: ':0103020258A0\r\n' (3A 30 31 30 33 30 32 30 32 35 38 41 30 0D 0A) (15 bytes), roundtrip time: 6.6 ms. Timeout setting: 1000.0 ms.

600
si je renseigne print instrument.read_register(30005,1) j'obtiens des erreurs .

j'ai aussi essayer avec pimodbus mais la je n'arrive à rien .

auriez vous des infos sur le sujet?
merci.
mamacito
Messages : 3
Inscription : 05 avr. 2017, 15:24

Re: modbus

Message par mamacito »

Bonjour,

regarde ce post https://easydomoticz.com/forum/viewtopic.php?f=8&t=4944

Il y a des pistes, mais c'est pas gagné :(
maccoa
Messages : 2
Inscription : 23 oct. 2017, 10:21

Re: modbus

Message par maccoa »

quelques news.

Code : Tout sélectionner

#!/usr/bin/env python
import minimalmodbus
import serial
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1, minimalmodbus.MODE_ASC$

instrument.debug = False
instrument.serial.baudrate = 57600
instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout = 1

print instrument.read_register(4001, 0,04) 
avec dans print instrument.read_register(4001, 0,04) (ici demande de l'état de la p4)
4001 = address de la doc froling -1
0= ou placer la virgule
04 = fonction coil froling +1

si par exemple on veux savoir la Text doc froling fc=03 address=30005
on ecrit
print instrument.read_register(04,0, 04)

j'ai pas encore tout compris mais je vais me soigner.
il y'a aussi pymodbus qui à l'aire plus complet , je vais tester les 2.
Répondre