modbus tcp problem - delar går ej läsa, förslag?
Re: modbus tcp problem - delar går ej läsa, förslag?
Ok, då kan jag inte hjälpa dig med vettiga modbus-program, detta då jag använder Windows.
Re: modbus tcp problem - delar går ej läsa, förslag?
Jag använder själv https://wingpath.co.uk/modbus/modmaster.php
Inte perfekt, dock gör det jobbet för mig, naturligtvis kostar det pengar.
Inte perfekt, dock gör det jobbet för mig, naturligtvis kostar det pengar.
- Jan Almqvist
- Inlägg: 1581
- Blev medlem: 1 oktober 2013, 20:48:26
- Ort: Orust
Re: modbus tcp problem - delar går ej läsa, förslag?
Ja, ditt HERU aggregat är server (dvs slave) och den pryl som kommunicerar med ditt aggregat är client (dvs master).
Du borde kunna använda QModMaster, eller något annan liknande program, för att prova ut exakt hur du ska läsa från aggregatet.
Re: modbus tcp problem - delar går ej läsa, förslag?
man blir lite förvirrad när man har två olika beskrivningar för ett objekt men jag löste problemet. Switchen på nätverket verkade vara den störande länken i kommunikationen mellan client och host. provade köra denna kodsnutt, fungerar utan några problem.
Kod: Markera allt
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pyModbusTCP.client import ModbusClient
import time
SERVER_HOST = "192.168.1.10"
SERVER_PORT = 502
c = ModbusClient()
# modbus server IP och port
c.host(SERVER_HOST)
c.port(SERVER_PORT)
while True:
# etablera eller återetablera förbindelse..
if not c.is_open():
if not c.open():
print("unable to connect to "+SERVER_HOST+":"+str(SERVER_PORT))
print ("connect or reconnecting..")
# om funktion tillgänglig, läs register..
if c.is_open():
# Börja på address 0 och läs 13st.. lagra det i query1
query1 = c.read_input_registers(0, 13)
# läs ytterlig och lagra det i query2
query2 = c.read_input_registers(22, 10)
if query2:
print ("query1")
print ("reg ad #0 to 13: "+str(query1))
print ("query2")
print ("reg ad #22 to 32: "+str(query2))
#vänta..
time.sleep(2)
Re: modbus tcp problem - delar går ej läsa, förslag?
Innan du kan läsa något !
Har du rätt fjärrkontroll ?? Fjärr märkt modbus på baksidan. funktionen modbus kräver ny /rätt fjärr. Även om det finns plint på kortet för kablar !!
Samma hastighet ,databitar start stoppbit paritetsbit samt ,rätt slavnumer.
Coilststus är endast 1 data bit stort
Holding registret samt input är 16bitar stort
Vanligt fel är att man läser fel register dvs registret brevid som innehåller fel värde till det man skall läsa beroende på om man börjar räkna med noll eller 1 i listan på programmet
Ibland är vissa modbus prylar lite kinkiga om man läser för många register för snabbt.
Har du rätt fjärrkontroll ?? Fjärr märkt modbus på baksidan. funktionen modbus kräver ny /rätt fjärr. Även om det finns plint på kortet för kablar !!
Samma hastighet ,databitar start stoppbit paritetsbit samt ,rätt slavnumer.
Coilststus är endast 1 data bit stort
Holding registret samt input är 16bitar stort
Vanligt fel är att man läser fel register dvs registret brevid som innehåller fel värde till det man skall läsa beroende på om man börjar räkna med noll eller 1 i listan på programmet
Ibland är vissa modbus prylar lite kinkiga om man läser för många register för snabbt.