Modbus

Forum für Ideen, wie ioBroker verbessert werden kann
Benutzeravatar
wendy2702
guru
Beiträge: 2762
Registriert: 18.01.2016, 22:12
Wohnort: Herzogenrath

Re: Modbus

Beitrag von wendy2702 » 07.12.2017, 16:29

Hi,

Did not use Wireshark for Modbus but i would start by setting a filter for source and destination IP. (Modbus Server and Client)

Br

Mirko
Bitte keine Fragen per PN, die gehören ins Forum!

ap2017
starter
Beiträge: 43
Registriert: 01.12.2017, 03:44

Re: Modbus FIXED SLOW UPDATE

Beitrag von ap2017 » 09.12.2017, 16:42

ap2017 hat geschrieben:Hello, I use ESP8266 to communicate with IO Broker over MODBUS TCP, ESP as a slave, Broker as master. It works, I can see my data (two analog sensors), but the update time is very slow, like once every 15-20 seconds and lots of timeouts in the log. In the mean time another SCADA software that I am testing called mySCADA updates same data fine, every second. What can be wrong? FYI, I am using https://github.com/andresarmento/modbus-arduino library for ESP8266. Danke für deine Hilfe
Problem fixed by switching to a different MODBUS library from https://github.com/JhonControl/ESP8266_ ... dbusTCP_V2

wolle
Beiträge: 4
Registriert: 22.12.2017, 17:22

Re: Modbus

Beitrag von wolle » 22.12.2017, 17:31

Telefisch hat geschrieben:So, der Knoten ist geplatzt...

Also eigentlich ganz einfach, wenn man nicht mit Aliasen arbeitet.

Falls jemand vor dem gleichen Problem steht:

In TwinCat müssen folgende Arrays als Globale Variable angelegt werden:

mb_Input_Coils : ARRAY [0..255] OF BOOL;
mb_Output_Coils : ARRAY [0..255] OF BOOL;
mb_Input_Registers : ARRAY [0..255] OF WORD;
mb_Output_Registers : ARRAY [0..255] OF WORD;

Diese Arrays beginnen alle bei Adresse 32768.
Um nun auf diese Adressen zugreifen zu können habe ich den Haken bei Alias verwenden entfernt und die Adressen direkt angelegt.
Für eine Lampe z.B. unter Diskrete Ausgänge einen neuen Ausgang mit Adresse 32768 vom Typ Switch.
Der schaltet bzw. liest den Wert von mb_Output_Coils[0] in der SPS.

Für die Profis hier wahrscheinlich basics aber vielleicht hilft es ja trotzdem jemandem ;)
Hallo Telefisch

ich stehe gerade auch vor dem selben Problem wie Du.
Aber offensichtlich mache ich noch etwas falsch.

Ich habe einen CX8090, auf dem das Modbus TCP Supplement bereits installiert ist.

Wäre es Möglich, dass Du mir ein paar Beispiele ( Einstellungen) schicken könntest?
Vielleicht platzt dann der Knoten auch bei mir?

Vielen Dank vorab

Grüße
Wolle

Telefisch
professional
Beiträge: 132
Registriert: 20.02.2017, 09:10

Re: Modbus

Beitrag von Telefisch » 23.12.2017, 09:03

Natürlich versuche ich Dir zu helfen...
...wo stehst Du denn grade?
Hast Du Erfahrung mit TwinCat oder bist Du auch so ein Noob wie ich?
Hast Du die globalen Variablen schon drin?
Ich hab das mit TC2 gemacht. Falls du TC3 verwendest könnte es anders aussehen.

Aber erzähl erstmal was du bisher hast.
Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

Telefisch
professional
Beiträge: 132
Registriert: 20.02.2017, 09:10

Re: Modbus

Beitrag von Telefisch » 23.12.2017, 09:32

Mit dem Zugriff auf die Input Coils hatte ich Probleme, deswegen habe ich alles über die Output-Coils gemacht.
Ab Adresse 0 (mb_Output_Coils[0]), bis 99 (mb_Output_Coils[99]) sind bei mir die Taster belegt und ab 100 (mb_Output_Coils[100]) hole ich mir quasi den Status der Ausgänge zurück.

Im ioBroker geht's dann weiter.



Hier erstmal mein TwinCat-Auszug:
Dateianhänge
TC2 Globale Variable verwenden.JPG
Variablen verwenden
TC2 Globale Variable Modbus.JPG
Globale Variablen anlegen
Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

Telefisch
professional
Beiträge: 132
Registriert: 20.02.2017, 09:10

Re: Modbus

Beitrag von Telefisch » 23.12.2017, 09:51

Im ioBroker stellst Du dann den Modbus Adapter ein, wie auf den Bildern.
IP Adresse ist natürlich die von Deiner CX8090.
Und wichtig, keine Aliase verwenden.

Um eine Lampe zu schalten benutze ich in meiner Steuerung Bausteine die ein Tastsignal erwarten.
Also Steigende Flanke an, nächste steigende Flanke aus.
...dürfte aber auch logisch sein.

Die Ausgangs-Coils (ab mb_Output_Coils[100]) geben mir nur den Status des Bausteins zurück, der die Lampe geschaltet hat.
Diesen also nicht vom Broker aus schalten sondern nur lesen.

Adresse 0 (mb_Output_Coils[0]) entspricht im Modbus-Adapter der Adresse 32768.
Demnach fangen die Tastersignale bei 32768 an und die Rückmeldungen bei 32868.
Die Adressen musst Du halt alle einmal im Modbus-Adapter anlegen.

Ich hoffe es hilft erstmal soweit, in Kombination mit Alexa hatte ich schon was anderes dazu geschrieben, findest Du im Alexa-Threat, falls bei Dir auch beabsichtigt.
Ich muss jetzt erst los, wenn noch was anliegt, nur zu.

CU Carsten
Dateianhänge
Modbus Adapter 1.JPG
Modbus Adapter 2.JPG
Der Taster-Eingang der Steuerung um das Licht vom ioBroker aus einzuschalten (ACHTUNG nur Tastbefehl sonst blockierst Du die Steuerung!)
Modbus Adapter 3.JPG
Der Ausgang, der nur dazu dient den Status der Steuerung zu lesen
Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

wolle
Beiträge: 4
Registriert: 22.12.2017, 17:22

Re: Modbus

Beitrag von wolle » 23.12.2017, 16:34

Hallo Carsten

wow....erstmal vielen Dank für die schnelle Antwort.

Ich benutze auch TwinCat 2 und kenne mich schon etwas damit aus.
(bin nur nicht unbedingt der Modbus Freak)

Ich habe meine komplette Technik Zuhause vernetzt und auch visualisiert.
(Licht, Hzg, Wärmepumpe, Lüftung, Jalousie, Multimedia, Fenster,.....)

Mit den Bildern fange ich schon mal viel an.
Damit hast Du mir schon viel geholfen.
Irgendwie war mir der Zusammenhang zw. SPS und IOBroker nicht ganz klar.

Ich werde das über Weihnachten mal ausprobieren und dann wieder berichten.

Wünsche Dir schonmal schöne Feiertage

Und Danke nochmals

Grüße
Wolle

Telefisch
professional
Beiträge: 132
Registriert: 20.02.2017, 09:10

Re: Modbus

Beitrag von Telefisch » 24.12.2017, 14:10

Dann viel Erfolg
und ebenso schöne Feiertage.

Mir war es halt wichtig, dass alles auch ohne den Broker so weiter funktioniert wie bisher ;-)

LG Carsten
Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

wolle
Beiträge: 4
Registriert: 22.12.2017, 17:22

Re: Modbus

Beitrag von wolle » 27.12.2017, 11:36

Hallo an alle

nachdem Carsten mir den entscheidenen Tip mit den Einstellungen gegeben hat,
kann ich mit Alexa zwischenzeitig meine Beleuchtung über meine Beckhoff Steuerung schalten.

Ich habe bei mir die Beleuchtung allerdings über einen Switch und nicht über den Button gesteuert.

Vielen Dank nochmals Carsten für Deine Unterstützung.

Ein Problem habe ich derzeit noch mit den Jalousien und Leuchten mit Dimm-Funktion.

Bei den Jalousien habe ich für "Auf" und "Ab" jeweils einen "Button" verwendet.
Damit kommt Alexa allerdings nicht klar.

Ich sage: Alexa....Jalousie Büro Ab.

Dann kommt die Nachfrage, dass es für Jalousie Büro mehrere Geräte gibt. Sie fragt welches sie nehmen soll.
Dann sage ich ich wieder Jalousie Büro Ab.
Dann fährt die Jalousie herunter.

Gibt es nicht eine Möglichkeit, Jalousien über die Befehle "Auf, Ab und Stop" zu realisieren?
Ich habe im Modbus Adapter schon einiges ausprobiert aber nichts passendes gefunden.

Das gleiche hätte ich auch gerne für meine dimmbaren Lampen gelöst.

so.z.B. Alexa...Schalte Esszimmerlicht auf 60%.

Hat mir hier jemand einen Tip?

Grüße
Wolle

Negropo
starter
Beiträge: 15
Registriert: 07.06.2017, 09:34

Re: Modbus

Beitrag von Negropo » 19.01.2018, 19:12

Hallo zusammen,

ich wollte jetzt auch mal den Modbus-Adapter mit einem UNIPI Neuron xS10 testen. Es handelt sich um eine Serial-Connection
über einen USB/RS485 Adapter der auch im iobroker erkannt wird. Die Baudrate etc. habe ich entsprechend eingestellt, nur
leider bekomme ich beim Start des Modbus-Adapters den folgenden Fehler im Log:

Code: Alles auswählen

modbus.0	2018-01-19 19:07:28.003	info	Disconnected from slave 127.0.0.1
modbus.0	2018-01-19 19:07:27.160	warn	Poll error count: 2 code: "App Timeout"
modbus.0	2018-01-19 19:07:27.019	warn	Poll error count: 1 code: {"err":"timeout"}
modbus.0	2018-01-19 19:07:27.017	warn	Error: undefined
modbus.0	2018-01-19 19:07:21.951	info	Connected to slave
modbus.0	2018-01-19 19:07:21.411	info	starting. Version 0.5.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.12.2
Komme leider aufgrund des "undefined" Errors nicht weiter. Kann mir vllt. jemand helfen?

Danke!

Grüße Negropo

Benutzeravatar
wendy2702
guru
Beiträge: 2762
Registriert: 18.01.2016, 22:12
Wohnort: Herzogenrath

Re: Modbus

Beitrag von wendy2702 » 19.01.2018, 19:23

Einstellungen vom Adapter Posten, Modbus Einstellungen von deinem Neuron gerät Posten.

Richtiges USB Device im Adapter ausgewählt?

Auf welcher HW und SW läuft iobroker?


Gesendet von iPhone mit Tapatalk Pro
Bitte keine Fragen per PN, die gehören ins Forum!

Negropo
starter
Beiträge: 15
Registriert: 07.06.2017, 09:34

Re: Modbus

Beitrag von Negropo » 19.01.2018, 19:59

Hallo,

hier die Einstellungen des Adapters:
Verbindungsparameter.png
Verbindungsparameter.png (17.1 KiB) 434 mal betrachtet
Die Modbus-Einstellungen des Neuron sind default, also:

ID/Adress: 15
Baudrate: 19200
Bit: 8
StopBit: 1
Parity: None

Das USB-Device ist richtig. Mit mbpoll kann ich vom raspberry via ttyUSB0 auf den Neuron zugreifen.

IOBroker läuft auf RPI3. Hier die Versionen der installierten Adapter:

Code: Alles auswählen

"hosts": [
    {
      "version": "1.2.0",
      "platform": "Javascript/Node.js",
      "type": "linux"
    }
  ],
  "node": "v6.12.2",
  "arch": "arm",
  "adapters": {
    "admin": {
      "version": "2.0.7",
      "platform": "Javascript/Node.js"
    },
    "discovery": {
      "version": "0.4.4",
      "platform": "Javascript/Node.js"
    },
    "tr-064": {
      "version": "0.4.3",
      "platform": "Javascript/Node.js"
    },
    "ping": {
      "version": "1.3.2",
      "platform": "Javascript/Node.js"
    },
    "squeezebox": {
      "version": "0.2.1",
      "platform": "Javascript/Node.js"
    },
    "web": {
      "version": "2.1.7",
      "platform": "Javascript/Node.js"
    },
    "history": {
      "version": "1.6.3",
      "platform": "Javascript/Node.js"
    },
    "javascript": {
      "version": "3.4.0",
      "platform": "Javascript/Node.js"
    },
    "cloud": {
      "version": "2.0.5",
      "platform": "Javascript/Node.js"
    },
    "mobile": {
      "version": "0.4.11",
      "platform": "javascript/Node.js"
    },
    "vis": {
      "version": "1.0.0",
      "platform": "Javascript/Node.js"
    },
    "loxone": {
      "version": "0.4.0",
      "platform": "Javascript/Node.js"
    },
    "viessmann": {
      "version": "0.2.6",
      "platform": "Javascript/Node.js"
    },
    "samsung": {
      "version": "0.2.8",
      "platform": "Javascript/Node.js"
    },
    "harmony": {
      "version": "0.9.0",
      "platform": "Javascript/Node.js"
    },
    "scenes": {
      "version": "0.2.7",
      "platform": "Javascript/Node.js"
    },
    "modbus": {
      "version": "0.5.4",
      "platform": "Javascript/Node.js"
    }
  },
  "model": "ARMv7 Processor rev 4 (v7l)",
  "cpus": 4,
Hoffe die Informationen helfen erstmal weitere. Vielen Dank!

Benutzeravatar
wendy2702
guru
Beiträge: 2762
Registriert: 18.01.2016, 22:12
Wohnort: Herzogenrath

Re: Modbus

Beitrag von wendy2702 » 19.01.2018, 20:17

Hast du das loggen mal auf „Debug“ gestellt ob dann mehr Infos kommen?

Was bedeutet mit „mbpoll darauf zugreifen“?

Register auslesen/schreiben ?

Mbpoll hast du aber gestoppt bevor du den Adapter gestartet hast?

Serialport ist installiert?


Gesendet von iPhone mit Tapatalk Pro
Bitte keine Fragen per PN, die gehören ins Forum!

Negropo
starter
Beiträge: 15
Registriert: 07.06.2017, 09:34

Re: Modbus

Beitrag von Negropo » 21.01.2018, 10:17

Hallo,

das loggen steht bereits auf Debug, da kommt leider keine weitere Information.

Ich kann mit mbpoll eine Verbindung zum Neuron herstellen und Register auslesen, das wollte ich damit sagen. ;-)

Ja, mbpoll ist gestoppt.

Nein, Serialport ist nicht installiert. Brauche ich das, wenn ich über einen USB-Adapter gehe? Ich dachte das
bräuchte ich nur bei einer Verbindung über die GPIO's?

Vielen Dank und Gruß

Negropo

Benutzeravatar
Homoran
guru
Beiträge: 11859
Registriert: 08.08.2014, 16:50

Re: Modbus

Beitrag von Homoran » 21.01.2018, 10:39

Auch USB ist seriell

Gruß Rainer
kein Support per PN!
Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

Negropo
starter
Beiträge: 15
Registriert: 07.06.2017, 09:34

Re: Modbus

Beitrag von Negropo » 21.01.2018, 10:42

Stimmt, hatte ich ganz vergessen ;-)

Wie installiere ich jetzt Serialport? Habe jetzt mal nach dieser Anleitung gearbeitet:

http://www.iobroker.net/docu/?page_id=5510&lang=de

Was muss ich sonst noch tun?

Danke und Gruß
Negropo

Benutzeravatar
Bluefox
Site Admin
Beiträge: 7911
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Modbus

Beitrag von Bluefox » 21.01.2018, 10:59

Coils sind korrigiert.

Negropo
starter
Beiträge: 15
Registriert: 07.06.2017, 09:34

Re: Modbus

Beitrag von Negropo » 21.01.2018, 11:26

Bluefox hat geschrieben:Coils sind korrigiert.
:?: Den Hinweis verstehe ich leider nicht. Ich habe einige Registerabfragen z.B. 10001 angelegt.

Benutzeravatar
wendy2702
guru
Beiträge: 2762
Registriert: 18.01.2016, 22:12
Wohnort: Herzogenrath

Re: Modbus

Beitrag von wendy2702 » 21.01.2018, 11:29

Also serialport hast du jetzt installiert!?

Wie sieht denn jetzt das Debug log aus?

Haken bei „Nutze Aliase“ raus


Gesendet von iPhone mit Tapatalk Pro
Bitte keine Fragen per PN, die gehören ins Forum!

Negropo
starter
Beiträge: 15
Registriert: 07.06.2017, 09:34

Re: Modbus

Beitrag von Negropo » 21.01.2018, 11:39

Die Installation von serialport (npm install serialport) habe ich gemacht.

Haken bei "Nutze Aliase" ist raus. Debug sieht leider nicht anders aus :-(
snip_20180121113836.png
snip_20180121113836.png (10.82 KiB) 415 mal betrachtet

Antworten