Sida 2 av 2

Re: modbus tcp problem - delar går ej läsa, förslag?

Postat: 27 augusti 2020, 20:02:16
av TomasL
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?

Postat: 27 augusti 2020, 21:47:55
av Darn
TomasL skrev: 27 augusti 2020, 20:02:16 Ok, då kan jag inte hjälpa dig med vettiga modbus-program, detta då jag använder Windows.
jag kör windows också men vad vilket modbus-program skulle du rekommendera? :)

Re: modbus tcp problem - delar går ej läsa, förslag?

Postat: 27 augusti 2020, 21:53:30
av TomasL
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.

Re: modbus tcp problem - delar går ej läsa, förslag?

Postat: 28 augusti 2020, 07:08:15
av Jan Almqvist
Darn skrev: 27 augusti 2020, 19:32:36 som jag förstått modbus tcp är aggregatet "server" och jag är "client" men när man simulerar kopplar man upp sig mot en "slave" och då antar jag att jag är master? :?: :humm:
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?

Postat: 29 augusti 2020, 15:00:41
av Darn
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?

Postat: 1 september 2020, 05:40:02
av Elman
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.

Re: modbus tcp problem - delar går ej läsa, förslag?

Postat: 3 september 2020, 19:53:22
av Darn
Elman skrev: 1 september 2020, 05:40:02 Ibland är vissa modbus prylar lite kinkiga om man läser för många register för snabbt.
jo, märkte det men nu är det löst, bygger just nu hmi och det verkar fungera helt ok :)

Bild