Ik probeer een modbus apparaat te lezen in Python.

Dat lukt in zoverre dat ik de registers wel kan lezen.

Nu staan er op een aantal locaties strings weggezet.

onderstaand een stukje code

try:
   
    data = client.read_holding_registers(2603,count= 10,slave =1)
    print(data)
    datastr = client.convert_from_registers(data.registers,data_type=str, word_order= "big", string_encoding = "utf-8")
    print(datastr)
except:

Ik doe niet zoveel in Python, waar ik op vast loop is data_type=str
dat vreet de functie niet, ik moet dus een data type opgeven str, string met of zonder "" werkt niet.
Wat is de methode ?

Wat is de foutmelding?
Is het python3 of een oudere? python3 doet nogal eens lastig over stringconversie. Soms kan de conversie geforceerd worden door een string-element toe te voegen, bv.
my_string=my_string+" "

En uit welk package of module komen die client.xxx functies? Raadpleeg daarvan de doc of - vaak eenvoudiger - de voorbeelden.

Uit de documentatie:

string_encoding – The encoding with which to decode the bytearray, only used when data_type=DATATYPE.STRING

@dekees

Ik had vannacht even tijd en de docs eens doorgelezen. En inderdaad

data_type=client.DATATYPE.STRING geeft een conversie. Niet dat er iets leesbaars uit komt .

Waar ik wat mee zit te klooien is een Oldham MX43
https://www.teledynegasandflamedetection.com/en-us/Products/docs/contr…

Op bladzijde 76 hs 12.2
Nu ben ik eerst maar eens gaan kijken naar de real-time metingen

Nu heb ik met modbus scanner wat zitten klooien maar overal staat 0, alleen de checksum en watchdog teller zie ik op 2600--2603 bladzijde 81

hier staat ook weer dat de meetwaarden zich niet op 2001-2264 bevinden maar een verwijzing naar een nieuw register locatie?

scannen met de modbusscanner 2001-2264 is allemaal 0, apparaat werkt wel gewoon.

Nu heb ik wel vaker met modbus te maken, maar vind dit verre van handig.