Modbus-Gerät ein- und ausschalten
Modbus-Gerät ein- und ausschalten
Hallo,
ich suche eine Möglichkeit bei Verwendung mehrerer Modbus Geräte diese An- oder Abzuschalten. Leider ist es im Moment so, das bei fehlendem Gerät lange versucht wird, die fehlende IP Adresse zu finden bevor das Programm startet.
Zum Beispiel verwende ich ein Energiemessgerät über Modbus TCP. Für dieses gibt es eine Erweiterung, welche auch über Modbus TCP angesprochen wird. Allerdings wird diese Erweiterung nur selten benötigt. D.h. ich benutze zur Zeit zwei Programmvarianten, eine nur mit dem Energiemessgerät und eine mit beiden Komponenten - keine wirklich schöne und praktikable Lösung (vor allem Im Hinblick auf weitere modulare Projekte).
Vielleicht hat jemand einen Lösungsvorschlag dazu?
Gruß
HR
ich suche eine Möglichkeit bei Verwendung mehrerer Modbus Geräte diese An- oder Abzuschalten. Leider ist es im Moment so, das bei fehlendem Gerät lange versucht wird, die fehlende IP Adresse zu finden bevor das Programm startet.
Zum Beispiel verwende ich ein Energiemessgerät über Modbus TCP. Für dieses gibt es eine Erweiterung, welche auch über Modbus TCP angesprochen wird. Allerdings wird diese Erweiterung nur selten benötigt. D.h. ich benutze zur Zeit zwei Programmvarianten, eine nur mit dem Energiemessgerät und eine mit beiden Komponenten - keine wirklich schöne und praktikable Lösung (vor allem Im Hinblick auf weitere modulare Projekte).
Vielleicht hat jemand einen Lösungsvorschlag dazu?
Gruß
HR
Re: Modbus Gerät Ein-Ausschalten
Hallo abacom,
das funktioniert, wenn das Programm schon läuft, leider aber nicht beim ersten Starten - da versucht das Programm alle angegeben IP`s und Modbus Adressen zu finden und startet erst (je nach Anzahl dieser) später oder noch später.
Bei Modbus RTU ist das relativ leicht möglich (wenn auch nicht optimal, denn vergessen darf man es nicht), indem einfach kein COM Port vorgewählt wird.
Schön wäre ein ENABLE Pin - bei den Modbus Komponenten.
Gruß
HR
das funktioniert, wenn das Programm schon läuft, leider aber nicht beim ersten Starten - da versucht das Programm alle angegeben IP`s und Modbus Adressen zu finden und startet erst (je nach Anzahl dieser) später oder noch später.
Bei Modbus RTU ist das relativ leicht möglich (wenn auch nicht optimal, denn vergessen darf man es nicht), indem einfach kein COM Port vorgewählt wird.
Schön wäre ein ENABLE Pin - bei den Modbus Komponenten.
Gruß
HR
Re: Modbus Gerät Ein-Ausschalten
Moin HR,
du hast eine mögliche Lösung ja schon selber angedeuetet: "modulares Projekt".
Pack das eine Modbusmodul in eine eigenes kleines Projekt, das du nur startest wenn du es brauchst und reich die Werte per TCP weiter.
Mike
du hast eine mögliche Lösung ja schon selber angedeuetet: "modulares Projekt".
Pack das eine Modbusmodul in eine eigenes kleines Projekt, das du nur startest wenn du es brauchst und reich die Werte per TCP weiter.
Mike
Re: Modbus Gerät Ein-Ausschalten
"Neuen" Modbus-Client verwenden. Da passiert nichts ohne CLK ....
viewtopic.php?f=54&t=3920
viewtopic.php?f=54&t=3920
ABACOM support
Re: Modbus-Gerät ein- und ausschalten
Hallo,
@Mike: Danke für die Anregung - habe ich versucht - das zweite Projekt startet trotz vorhandener IP Verbindung sehr träge ...
@abacom: Danke für den Hinweis!
Nachdem ich es nun (wieder einmal) mit dem neuen Client versucht habe und dann auch die Werte kamen - kommt nach weiteren Editieren nun aus allen Ausgängen anstelle von Zahlenwerten: "Success!" - ganz toll, was soll das denn? Der Baustein ist damit futsch. Nimmt man einen neuen aus der Werkzeugkiste funktioniert es dann wieder ...
Weiterhin kann man bei der Abfrage der Adressen zugucken - so langsam ist das - kann man dies irgendwie beschleunigen?
Danke!
Gruß
HR
@Mike: Danke für die Anregung - habe ich versucht - das zweite Projekt startet trotz vorhandener IP Verbindung sehr träge ...
@abacom: Danke für den Hinweis!
Nachdem ich es nun (wieder einmal) mit dem neuen Client versucht habe und dann auch die Werte kamen - kommt nach weiteren Editieren nun aus allen Ausgängen anstelle von Zahlenwerten: "Success!" - ganz toll, was soll das denn? Der Baustein ist damit futsch. Nimmt man einen neuen aus der Werkzeugkiste funktioniert es dann wieder ...
Weiterhin kann man bei der Abfrage der Adressen zugucken - so langsam ist das - kann man dies irgendwie beschleunigen?
Danke!
Gruß
HR
Re: Modbus-Gerät ein- und ausschalten
Hallo,
hier zur Veranschaulichung noch einmal ein Bild.
Wenn man die Konfiguration speichert und dann in einen noch funktionierenden Client lädt, ereignet sich dasselbe....
hier zur Veranschaulichung noch einmal ein Bild.
Wenn man die Konfiguration speichert und dann in einen noch funktionierenden Client lädt, ereignet sich dasselbe....
- Dateianhänge
-
- success.prj
- (21.59 KiB) 311-mal heruntergeladen
-
- success.jpg (117.68 KiB) 10135 mal betrachtet
Re: Modbus-Gerät ein- und ausschalten
Ich habe einmal in meine Source geschaut. Der Fall "Success" tritt eine, wenn die Modbus-Funktion zwar erfolgreich ausgeführt wird (eine Antwort ohne Fehler bekommt),
der gelesene Registerwert, aber nicht den Vorgaben entsprechend konvertiert werden kann.
Im vorliegenden Fall können die gelesenen Registerwerte - warum auch immer - nicht als FLOAT (IEEE742) interpretiert werden.
(Die Konvertierung in PL wurde anhand verschiedener Geräte getestet und sollte einwandfrei arbeiten.)
Denkbare Ursachen sind z.B.
- Falsche Registeradresse gelesen
- gelesenes Register enthält keinen gültigen FLOAT-Wert / IEEE742-Typ
- High/Low-Byte im Register vertauscht (swap)
- Fehler des Modbusgerätes
- Timing; Manche Geräte benötigen PAUSEN zwischen zwei Requests.
Hinsichtlich der Performance kann es ferner sinnvoll sein, direkt aufeinander folgende Registeradressen gleichen Typs (hier z.B. 3x Spannung / 3x Strom)
mit nur EINEM Request abzuarbeiten (Anzahl Vars = 3).
der gelesene Registerwert, aber nicht den Vorgaben entsprechend konvertiert werden kann.
Im vorliegenden Fall können die gelesenen Registerwerte - warum auch immer - nicht als FLOAT (IEEE742) interpretiert werden.
(Die Konvertierung in PL wurde anhand verschiedener Geräte getestet und sollte einwandfrei arbeiten.)
Denkbare Ursachen sind z.B.
- Falsche Registeradresse gelesen
- gelesenes Register enthält keinen gültigen FLOAT-Wert / IEEE742-Typ
- High/Low-Byte im Register vertauscht (swap)
- Fehler des Modbusgerätes
- Timing; Manche Geräte benötigen PAUSEN zwischen zwei Requests.
Hinsichtlich der Performance kann es ferner sinnvoll sein, direkt aufeinander folgende Registeradressen gleichen Typs (hier z.B. 3x Spannung / 3x Strom)
mit nur EINEM Request abzuarbeiten (Anzahl Vars = 3).
ABACOM support
Re: Modbus-Gerät ein- und ausschalten
P.S. Im obigen Projekt unterscheiden sich übrigens die Definitionen der beiden vom Anwender definierten "FREQUENZ"-Requests? Nur als Hinweis. Vielleicht liegt hier der Hund begraben.
ABACOM support
Re: Modbus-Gerät ein- und ausschalten
Hallo abacom Support,
vielen Dank für die Antwort.
Ich hab´s dann mal wieder getestet ...
Ich habe an den Einstellungen selber nichts geändert (also sollte das Float ein Float sein , außer die zusammen hängenden Adressen in einem Request abgefragt (und dann mit $Part geteilt) - das funktioniert, hilft aber nicht wirklich bei der Geschwindigkeit, da nachfolgende Adressbereiche wieder sehr langsam abgerufen werden. Insgesamt bleiben bei dem Beispiel nur 4 Adressbereiche - und da war max. 1 Hz möglich
Darf ich mal fragen, an welchem Gerät Sie den "neuen" Modbus TCP Client testen? Vielleicht habe ich da Zugriff drauf - im Moment kann ich nur (leider zum wiederholten Male) feststellen, das zu mindestens bei mir mit dem Client nicht zu arbeiten ist.
Eigentlich sehr schade, da Profilab im Bereich Modbus hier eigentlich "die eierlegende Wollmilchsau" darstellt.
Gruß
HR
vielen Dank für die Antwort.
Ich hab´s dann mal wieder getestet ...
Ich habe an den Einstellungen selber nichts geändert (also sollte das Float ein Float sein , außer die zusammen hängenden Adressen in einem Request abgefragt (und dann mit $Part geteilt) - das funktioniert, hilft aber nicht wirklich bei der Geschwindigkeit, da nachfolgende Adressbereiche wieder sehr langsam abgerufen werden. Insgesamt bleiben bei dem Beispiel nur 4 Adressbereiche - und da war max. 1 Hz möglich
Darf ich mal fragen, an welchem Gerät Sie den "neuen" Modbus TCP Client testen? Vielleicht habe ich da Zugriff drauf - im Moment kann ich nur (leider zum wiederholten Male) feststellen, das zu mindestens bei mir mit dem Client nicht zu arbeiten ist.
Eigentlich sehr schade, da Profilab im Bereich Modbus hier eigentlich "die eierlegende Wollmilchsau" darstellt.
Gruß
HR
Re: Modbus-Gerät ein- und ausschalten
Für die Antwortzeiten von Geräten und Netzwerklaufzeiten können wir nun wirklich nichts. Jede Sekunde ein neuer Messwert ist doch toll.
Das ist eine typische Messrate bei "Multimetern". "Darf ich mal fragen..." klar, z.B. Siemens Sentron PAC4200, LabJack T7, ...
Das ist eine typische Messrate bei "Multimetern". "Darf ich mal fragen..." klar, z.B. Siemens Sentron PAC4200, LabJack T7, ...
ABACOM support