Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Für Themen rund um logi.RTS und logi.CAD 3
Martin
Posts: 8
Joined: 10 Nov 2017, 17:05

Re: Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Post by Martin »

Hallo Volker,
danke für deine Erklärungen,
ich hatte eine kleine Auszeit, mit dem Projekt, aber nun muss ich endlich ein paar Bits hin und her schieben, so zu sagen.
Also hier noch mal mein Beispiel.

Aufbau:
Steuerung 1 Steuerung 2 Steuerung 3
Signalfluss:
Slave2 schreibt 1 Wort in den Bus

Code: Select all

Output_1 AT %QW1.188: WORD := 0; // 
Master2 liest 1 Wort aus dem Bus von Steuerung 1

Code: Select all

Input_Word_1 AT %IW1.255: WORD := 0; // 
Master2 liest 1 Wort aus dem Bus von der Steuerung 3

Code: Select all

Input_Word_1_i06 AT %IW1.447: WORD := 0; // 
siehe auch die Bilder und Texte vom 06 Dez 2017, 11:40 das teste ich jetzt mal mit zwei CPUs am Schreibtisch nochmal step by step aus, du hattest ja gesagt, dass das soweit richtig ist.

Nun ist das leider nur das eine Problem, vor Ort in der Anlage ist das LAN soweit fast fertig und bei der Inbetriebnahme habe ich schon mehrmals erlebt das sich einige CPU nicht am Netz gemeldet haben, also ich meine Ping

oder zur Verbindung für PiCtory/LC3 usw. . Das sind natürlich die Basics, die mir jetzt schon mal große Überraschungen bereiten.
Ich habe alle CPUs fest mit den Adressen 192.168.101.101 bis 192.168.101.132 eingestellt nach der Empfehlung von Dirk lt. Video.
Also wie folgt kurz beschrieben.
Aufruf:
sudo nano /etc/dhcpcd.conf
Eintrag:
interface eth0
static ip_address=192.168.101.101/24
static routers=192.168.101.1
static domain_name_servers=192.168.101.1
Befehl:
sudo reboot
Test:
ifconfig

Am Netz sind zur Zeit nur die 32 Stationen. (ohne Router, Server oder Modem) Um nun wenigsten die Steuerung wieder erreichen zu können, musste ich diese vor Ort alleine mit einem DHCP Router starten lassen und siehe da

ich konnte diese Station wieder am Netz erreichen. Dann hatte ich nach langer Arbeit das ganze Netz komplett am laufen (5 Stationen hatten diese Probleme). Nun kam ich nach 4 Wochen wieder zur Anlage und hatte wieder das

gleiche Problem mit den Stationen (andere). Was habe ich da nicht richtig gemacht?
Dritte Sache, wo finde ich die _config.rsc? Kann ich die mit Filezilla kopieren? Um die Konfigurationen sicher und identisch auf den Steuerungen zu kopieren.
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41

Re: Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Post by volker »

Hallo Martin,
die Sache mit den IPs und der Erreichbarkeit muss ich mir noch einmal getrennt genau ansehen. Zur Modbus Problematik fällt mir folgendes auf:
Du sprichst davon , dass de Slave Werte auf den Bus ausgibt und der Master diese liest. Dann zeigst Du die entsprechenden Variablen in LC3. Aber so geht das nicht...
Auf einem Modbus gibt ein Slave nicht einfach Werte aus, wenn Du sie in das entsprechende Modbus-register des Slaves schreibst. Un der Master liest auch nicht einfach so die beiden Bytes ein, nur weil Du die Variable in LC3 als input definierst. Auf einem Modbus muss ein Maste zyklisch Befehle an die slaves ausgeben. Die slaves reagieren dann und lesen oder senden Daten auf den / von dem Bus. Dafür muss der Master konfiguriert werden. Bei unserem Master geschieht dies in der der extended data configuration (Kontextmenü des Modbus-Master Bildes im PiCtory. Dort legt man "Actions" an, die bestimmen mit weclher Modbus function welcher Slave angesprochen wird um welche Register zu lesen oder zu beschreiben und in welche Variable vom Prozessabbild dies geschieht.
Ohne diese Actiosn zu definiern passiert auf dem Bus gar nichts und die Register bleiben genau so mit ihren Inhalten, wie Du sie beschrieben hast oder sie nach dem Einschalten waren.

Zu der IP-Sache melde ich mich wieder. Aktuell sind wir in Nürnberg als Aussteller auf der embedded world und ich habe nur eingeschränkt Zeit.
Unser RevPi Motto: Don't just claim it - make it!
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41

Re: Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Post by volker »

Ich habe mir das mit Kollegen mal durchgelesen und wir können keine Ursachen erkennen, warum in Deinem Netzwerk so etwas passiert. Typischerweise kommen solche Dinge bei Konflikten mit DHCP vor. Wenn Du nicht headless an den Controllern bist, dann könntest Du auch am einfachsten die feste IP in der GUI einstellen. Mit startx in die GUI, dann auf das Netzwerksymbol in der Titelleiste klicken und in dem Dialogfenster für eth0 eine feste IP mit passendem Gateway eintragen.
Unser RevPi Motto: Don't just claim it - make it!
Martin
Posts: 8
Joined: 10 Nov 2017, 17:05

Re: Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Post by Martin »

Hallo Volker,
Thema Modbus: (da drehen wir uns ein wenig im Kreis)
bin ich am testen, das ich natürlich das in Hardware in PiCtory einstellen muss ist mir ja schon klar, das habe ich doch schon im Beitrag 06 Dez 2017, 11:40 geschrieben und das ich weiß was Ein und Ausgang ist, muss ja auch klar sein, gut klar man kann da auch schnell was verdrehen, deswegen frage ich ja auch nach. Also ich habe ja schon einiges mit der Kommunikation hinbekommen, muss das nur noch richtig in LC3 verarbeiten und richtig auf die anderen 32 CPUs kopieren.

Hierzu nur noch zwei Fragen, ob es, so wie in den Beitrag 26 Feb 2018, 09:14 und den Einstellungen in PiCtory wie in den Beitrag vom 06 Dez 2017, 11:40 , so im Prinzip laufen müssten? Oder ist das falsch, du hast eigentlich gesagt dass das so laufen könnte. Und wie und wo man diese Konfiguration speichern und kopieren kann? Du hattest mal gesagt das es in einer Datei steht. im Beitrag 06 Dez 2017, 18:04, die habe ich aber noch nicht finden können.
Aufbau Kommunikation
Steuerung 1/Steuerung 2/Steuerung 3
Signalfluss:(für die Steuerung 2)
Slave2 schreibt 1 Wort in den Bus (Ausgang in LC3)
Master2 liest 1 Wort aus dem Bus von der Steuerung 1 (Eingang in LC3)
Master2 liest 1 Wort aus dem Bus von der Steuerung 3 (Eingang in LC3)
(Adressen und alle anderen Einstellungen müssen natürlich dann respektive richtig sein, alle Steuerungen 1-32 sollen die gleichen Einstellungen, bis auf die Adressen haben)
Wenn das so laufen könnte, dann sollte das Thema so als geklärt gelten, ich denke ich habe da was in LC3 nicht ganz richtig gemacht, und werde da noch weiter arbeiten, mit SSH und dann mit LC3.

Thema LAN:
hier mal ein Bild von meinem Testaufbau was ich im GUI sehe.
Image
ist da was nicht ganz richtig? ich habe da kein Router kein Server und kein Gateway, nur die 32 CPUs in einer Reihe.

Gruß Martin
Attachments
eth0.jpg
eth0.jpg (191.48 KiB) Viewed 7331 times
Martin
Posts: 8
Joined: 10 Nov 2017, 17:05

Re: Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Post by Martin »

Hallo Volker,
ich habe die Modbus Kommunikation an den ersten 3 CPUs am laufen, aber bei einem Status habe ich eine Störung 68 hex. Ich finde im Netz leider keine Dokumentation, eventuell ist das ja auch ein Hinweis für das LAN Problem mit der Erreichbarkeit.
Gruß Martin
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41

Re: Kommunikation zwischen RevPi Core als Modbus-TCP-Master/Slave (Jessie)

Post by volker »

Hallo Martin,
ich habe leider keinen neuen Ideen dazu. Du musst erst einmal Dein Netzwerk grundsätzlich zum Laufen bringen. Ein Screendump der RevPi IP Konfiguration nutzt dabei nur bedingt.

Es gibt so viele Ursachen für instabile Netzwerkverbindungen, da können wir hier im Forum nicht wirklich helfen. Kabel, Stecker, Router, Switches, IP-Einstellungen, DHCP Fehler, usw. Alles Dinge, bei denen wir maximal Tipps geben können aber die dann eigentlich vor Ort von einem Netzwerktechniker mit entsprechender Ausrüstung und Kenntnis untersucht werden müssen. Was heißt zum Beispiel "nur die 32 Geräte in Reihe"? Wie soll das mit dem Ethernet gehen? Die müssen doch mindestens an einem Switch hängen. Und der Switch muss mit den IPs umgehen können und die Pakete korrekt zu verteilen. Ist der Switch und seine Stromversorgung definitiv in Ordnung? Ist er vielleicht managebar und falsch konfiguriert?

Am 4.3. sagst Du die Kommunikation über Modbus funktioniert jetzt und es gibt nur IP Netzwerkporbleme und am 5.3. sagst Du, Du bekommst eine Fehlercode 68 bei Modbus, den Du auf die Netzwerkprobleme zurückführst (wo genau hast Du diesen Code ausgelesen? Kann es sein, dass es hex 6E im Master Status im Prozessabbild war? Der ist im Tutorial beschrieben und besagt, dass Du Deinen Slave nicht erreichen konntest -> Netzwerkproblem). Daraus schließe ich, dass es beim Thema Modbus nun eigentlich keine offenen Punkte mehr gibt und Du ein Netzwerkproblem hast, welches Du erst einmal lösen musst.

Bitte hab auch Verständnis, dass wir bei solchen Applikationsspezifischen Fragen nur begrenzt im Forum beraten können. Auch Deine PiCtory-Konfigurationen für eine so komplexe Anwendung zu prüfen können wir leider nicht mal eben hier im Forum machen, sondern das geht nur, wenn mal Leerlauf ist und dann am besten auch nicht so über einen riesig langen Thread sondern über eine Textdatei im Anhang, in welcher mit Zeichnungen ausführlich beschrieben ist, was Du da eigentlich machen willst, und wie genau Deine Module im einzelnen verschaltet sind und natürlich mit der _config.rsc als Anhang. Dann musst Du uns bitte mindestens 2 bis 3 Wochen Zeit geben und wir können das dann eventuell mal rein schieben und gratis für Dich durchsehen.

Und noch eine Bitte: Nutze auch die Suche im Forum, um manche Fragen Dir selber zu beantworten. Dort findest Du zum Beispiel auch den Thread "Sicherung und Import der Settings in PiCtory", in welchem beschrieben ist, wo Du die _config.rsc findest. Im Forum "PiCtory" ist das gleich der 2. Thread, der aufgelistet wird und sollte eigentlich daher leicht zu finden sein.
Unser RevPi Motto: Don't just claim it - make it!
Post Reply