Seite 1 von 1

Modbus-Gerät ein- und ausschalten

Verfasst: Montag 15. Februar 2016, 18:55
von hrathke
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

Re: Modbus Gerät Ein-Ausschalten

Verfasst: Mittwoch 17. Februar 2016, 14:31
von abacom
Einfach den CLK des Modus-Clients abschalten?

Re: Modbus Gerät Ein-Ausschalten

Verfasst: Mittwoch 17. Februar 2016, 15:16
von hrathke
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 :D - bei den Modbus Komponenten.

Gruß
HR

Re: Modbus Gerät Ein-Ausschalten

Verfasst: Donnerstag 18. Februar 2016, 09:43
von Mike D
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

Re: Modbus Gerät Ein-Ausschalten

Verfasst: Freitag 19. Februar 2016, 09:05
von abacom
"Neuen" Modbus-Client verwenden. Da passiert nichts ohne CLK ....
viewtopic.php?f=54&t=3920

Re: Modbus-Gerät ein- und ausschalten

Verfasst: Freitag 19. Februar 2016, 19:49
von hrathke
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

Re: Modbus-Gerät ein- und ausschalten

Verfasst: Montag 22. Februar 2016, 13:46
von hrathke
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.... :cry:

Re: Modbus-Gerät ein- und ausschalten

Verfasst: Dienstag 23. Februar 2016, 10:25
von abacom
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).

Re: Modbus-Gerät ein- und ausschalten

Verfasst: Dienstag 23. Februar 2016, 10:35
von abacom
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.

Re: Modbus-Gerät ein- und ausschalten

Verfasst: Dienstag 23. Februar 2016, 20:21
von hrathke
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 :cry:

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. :D

Gruß
HR

Re: Modbus-Gerät ein- und ausschalten

Verfasst: Mittwoch 24. Februar 2016, 07:59
von abacom
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". :D "Darf ich mal fragen..." klar, z.B. Siemens Sentron PAC4200, LabJack T7, ...