RevPi Connect MODBUS konfigurieren

Post Reply
Paul Unger
Posts: 7
Joined: 31 Jul 2019, 10:18
Answers: 0

RevPi Connect MODBUS konfigurieren

Post by Paul Unger »

Hallo zusammen,
ich habe einen RevPi Connect und das Relaisboard EX9065H von Expert um damit erstmal binäre Signale an den Outputs zu schalten.
Der 9065H ist MODBUS-fähig. Beide Geräte sind über die RS485-Schnittstelle verbunden.
Als virtuelles Gerät habe ich den ModbusRTUMaster_20180122 in Pictory gewählt.
Ich habe den device-path in Pictory auf dev/ttyRS485 gesetzt (ansonsten nach der Anleitung https://revolution.kunbus.de/tutorials/ ... enden-con/ vorgegangen)
Allerdings bin ich mir unsicher, was ich unter "Extended Data" in den RTUMaster eintragen muss.
Extended_Data.png
Extended_Data.png (49.66 KiB) Viewed 7071 times
1. Was hat hier speziell die Zahl unter "Quantity of Registers" zu bedeuten?

Ein Befehl könnte folgendermaßen aussehen: 01 05 0001 FF00 (Slave-Adresse, Funktion, Channel 1, high)
Auszug_EX9065H_Datenblatt.png
Auszug_EX9065H_Datenblatt.png (88.98 KiB) Viewed 7071 times
wie hier in einem Datenblattauszug des 9065H zu sehen.

2. Was muss ich tun, dass er vom Connect aus gesendet wird (und der 9065H ihn versteht)?
Ladam
Posts: 16
Joined: 30 Jul 2019, 09:59
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Ladam »

Hallo,
vorab: Ich bin auch noch neu in der RevPi Welt

Quantity of Registers bezieht sich meines Wissens nach auf "wie viele Register (ab Adresse des 1. Registers) belegt die zu beschreibende oder lesende Funktion". Kann man bestimmt professioneler ausdrücken aber ich hoffe du weist was ich meine. Sprich: Deine erste Zeile unter extended Data würde alle Bits/Coils von Adresse 1 bis 1000 beschreiben (die Virtuellen Modbusmaster/slaves greifen nur auf das Prozesabbild zu soweit ich weis).
Ich würde an deiner Stelle erstmal anfangen nur einzelne Coils zu beschreiben, das geht dann ganz einfach mit piTest (einfach mal piTest im Terminal eingeben dann bekommst du eine Übersicht über die einzelnen Funktionen), also : erste Zeile deiner Extended Data function code ändern, Register Anzahl 1, dann Konfiguration Speichern und Driver neu starten. Anschließend einfach mal "piTest -w Output_Bit_1,1" sollte dann das erste Bit auf 1 setzten (ggf. Adresse zu dem Bit ändern das du tatsächlich umschalten willst).


Grüße
Luke
Ladam
Posts: 16
Joined: 30 Jul 2019, 09:59
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Ladam »

Bin noch über dieses Thema im Forum gestolpert, hier findest du die Antowrten die du suchst glaube ich :) . (erste Antwort von Volker erklärt das Konzept vom Modbusmaster)

viewtopic.php?f=14&t=216
Paul Unger
Posts: 7
Joined: 31 Jul 2019, 10:18
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Paul Unger »

Vielen Dank für deine Hilfe Luke, tatsächlich hat mir das mit den Quantity of Registers weitergeholfen. Der Datenstrom wird somit länger bzw. verkürzt (mit dem Oszi gemessen).

Aktuell habe ich aber das Problem, dass wir nun den Datenstrom so einstellen, dass der EXPERT dann auch den richtigen Befehl mit den richtig gesetzten Bits bekommt.
Daran arbeite ich aber gerade noch selbständig mit Logi.CAD
User avatar
dirk
KUNBUS
Posts: 1926
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: RevPi Connect MODBUS konfigurieren

Post by dirk »

Hallo Paul Unger, Danke für Deine positive Rückmeldung.
Paul Unger
Posts: 7
Joined: 31 Jul 2019, 10:18
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Paul Unger »

Der ModbusRTU-Master läuft und sendet die voreingestellten Signale über Pictory aus. So ist gerade in den Extended Data des ModbusRTU-Master eingestellt: Slave Adresse: 4, Function Code: WRITE_SINGLE_COIL, (Register Address, Quantity of Registers, Action Interval und Device Value haben meines Wissens nach keine Auswirkung auf das gesendete Datenpaket, werden hier aber trotzdem der Vollständigkeit halber aufgeführt) Register Adress: 4, Quantity of Registers: 16, Action Interval (ms): 50, Device_Value: Output_Bit_1.
Frage 1: die Funktion 'Quantity of Registers' hat aufgrund der Voreinstellung 'WRITE_SINGLE_COIL' keine Auswirkung auf die Länge des Datenstroms? Ist sie bei dieser Funktion überhaupt relevant?

Im folgenden Bild habe ich das gewünschte Datenpaket (grün) und das von RevPi gesendete Datenpaket (gelb) mit den oben genannten Voreinstellungen aufgenommen.
TEK0000.JPG
TEK0000.JPG (104.21 KiB) Viewed 6891 times
Zu sehen ist, dass die ersten drei Werte passen: Slave-Adresse = 4, Function Code = 5 (WRITE_SINGLE_COIL), Register Adress = 4 (im Datenstrom = 3).
Die nächsten 2*8-Bit Felder sollten allerdings zum Output-Schalten auf FF00h (wie im grünen Datenstrom zu sehen) gesetzt werden.

Frage 2: wie setze ich diese letzten beiden 8-Bit Pakete vor dem CRC-Datenfeld auf FF00h (high)?
Frage 3: ist das überhaupt möglich mit der Voreinstellung 'Function Code: WRITE_SINGLE_COIL' oder kann damit wirklich nur 1 Bit gesetzt werden?

Frage 5: wie kann ich dies in LogiCAD 3 automatisieren? (Diese Frage stelle ich speziell auch im Logi.cals-Forum, allerdings weiss ja eventuell jemand von hier wie das funktioniert)

Vielen Dank für jegliche Information dazu.
Eduard
KUNBUS
Posts: 209
Joined: 18 Jun 2018, 16:16
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Eduard »

Hallo Paul,

Antwort 1: Die Funktion 'Quantity of Registers' hat aufgrund der Voreinstellung 'WRITE_SINGLE_COIL“ keine Auswirkungen.
Antwort 2: Du musst die Variable Output_Bit_1 auf „1“ setzen zum Beispiel mit „piTest –w Output_Bit_1,1“.
Antwort 3: Ja, mit dem 'Function Code: WRITE_SINGLE_COIL' kannst du nur 1 Bit setzen.
Paul Unger
Posts: 7
Joined: 31 Jul 2019, 10:18
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Paul Unger »

Hallo Eduard,

danke für die Infos. Damit konnte ich jetzt das Relaisboard testen.

Der Knackpunkt ist allerdings, wie ich die "Action IDs" in Pictory mit LogiCAD realisieren kann.
Gibt es so etwas wie eine Exportier-Funktion für die Action IDs, so wie für die Inputs/Outputs? Durch setzen der ein und derselben Variable in LogiCAD wie in Pictory bewirkt nichts. (z.B. Output_Bit_1 := 1)
Die Action IDs werden ja nach der eingegebenen Intervallzeit zyklisch ausgeführt. Somit müsste ja vor jedem Intervall der Wert der Variable (hier Output_Bit_1) abgefragt werden?
Eduard
KUNBUS
Posts: 209
Joined: 18 Jun 2018, 16:16
Answers: 0

Re: RevPi Connect MODBUS konfigurieren

Post by Eduard »

Um aus LogiCAD die Outputs des Prozessabbildes beschreiben zu können musst du den Export Hacken für die gewünschten Outputs setzen.
Attachments
piCtory.png
piCtory.png (10.66 KiB) Viewed 6803 times
Post Reply