Jump to content

Recommended Posts

Hallo,

 

kann ich mit der modbus und tcp/ip sequence number einfach bei 0x01 beginnen und immer um eins erhöhen oder muss ich da etwas beachten?

Bei manchen seq# bekomme ich keine Antwort.

 

Ist die Master ACK Message: 0x01, 0x64, modbus_sequence, crc16 richtig?

 

Danke.

 

Gruß

MMS

Link to post
Share on other sites
  • 2 weeks later...

Die 4 Bit Sequence Number in TCP/IP Paket folgt einfachen Regeln:

 

- Die Anfragen die du sendest dürfen 0 als Sequence Number nicht verwenden, da diese für Callback Antworten vorbehalten ist.

 

- Mit welcher Sequence Number du anfängst spielt im Moment (noch) keine Rolle. Es spielt auch im Moment (noch) keine Rolle in welcher Reihenfolge du die Sequence Numbers verwendest.

 

Am besten folgst du aber dem was die API Bindings tun. Die fangen mit 1 an und erhöhst dann für jede neue Anfrage um +1. Also 1, 2, ..., 14, 15, 1, 2, ...

 

 

Bei der 8 Bit Sequence Number im Modbus Paket gibt es keine ausgenommenen Werte. Du fängst mit 0 an und erhöhst für jeden neuen Anfrage-Antwort-Zyklus um +1. Also 0, 1, ..., 254, 255, 0, 1, ...

 

Ist die Master ACK Message: 0x01, 0x64, modbus_sequence, crc16 richtig?

 

Nein, ein Master ACK hat eine "empty message" als Payload: 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00

Link to post
Share on other sites
  • 2 weeks later...

Ok. Danke, da hätte ich doch genauer lesen sollen.

 

Ich habe jetzt insgesamt 5 Stacks mit insgesamt 40 Sensoren über RS485 verbunden. Die Abfragen funktionieren ganz gut. Wenn ich aber die Versorgungsspannung ab und wieder anschalte braucht ein Stack über eine Minute, bis er auf Anfragen antwortet. Alle anderen sind nach ca. 20s wieder online.

 

Hat jemand eine Idee an was das liegen könnte?

 

Gruß

MMS

Link to post
Share on other sites

Ist an dem Stack der länger braucht irgendetwas anders als an den anderen Stacks? Andere Master Brick Firmware, andere Bricks oder Bricklets im Stack?

 

Mit welcher Baudrate kommunizierst du?

 

Welche Sequence Number hat die erste Antwort die du bekommst? Ist es immer die gleiche Sequence Number?

Link to post
Share on other sites

Ist an dem Stack der länger braucht irgendetwas anders als an den anderen Stacks?

Ich habe zwei Stacks mit 3, einen mit 2 und zwei mit 1 Master. Der fehlerhafte ist der einzige mit 2 und bekommt 5V (sind genau 5,1V am Anschluss) von einem DC Brick, der an einem 3er Stack hängt. Genauso wie die 2 mit 1 Master.

 

Überall hängen PTC Bricklets. An diesem Stack, als einziger, auch ein IO-16.

 

Firmwares sind alle gleich.

Mit welcher Baudrate kommunizierst du?

 

38400 baud

 

Welche Sequence Number hat die erste Antwort die du bekommst? Ist es immer die gleiche Sequence Number?

 

Zunächst mal bekomme ich eine Zeit lang gar keine Antwort. Wenn ich eine Antwort bekomme ist es dann die Nummer dich geschickt habe. Hier die ersten zwei Antworten des Stacks (Anfrage  eines PTC Bricklet) in HEX:

 

0d640200000000080000006423 (leere Antwort)

0d640281d767000c011800ae090000f395 (richtige Antwort)

 

Manchmal bekomme ich auch nur leere Antworten. Nach ca 2 min geht dann alles wieder wie bei den anderen Stacks.

 

 

Link to post
Share on other sites

Versuch mal den untersten Master Brick des problematischen Stacks auszutauschen, um zu sehen ob es an diesem speziellen Brick liegt.

 

Versuch mal den problematischen Stack anders mit Strom zu versorgen, also nicht über einen DC Brick, um zu sehen ob das bei diesem speziellen Stack ein Problem macht.

 

Verusch mal den Aufbau zu verkleinern. Tritt das Problem auch auf, wenn du mit dem problematischen Stack alleine sprichst ohne die anderen Stacks im Bus? Tritt das Problem auch auf, wenn du den problematischen Stack auf Master Brick und RS485 Extension verkleinerst?

 

Bezüglich der Sequence Number meinte ich, ob dir der Stack immer erst wieder bei einer bestimmten Sequence Number antwortet. Also erst wenn du mit er Sequence Number z.B. bei 123 angekommen bist.

Link to post
Share on other sites

Ok. Werde ich testen.

 

Was ich bis jetzt noch rausgefunden habe ist, dass kurz nach dem Reset noch ca. 20 leere Antworten kommen, darunter manchmal eine mit Daten. Danach ist wie gesagt für 2 min absulute Stille.

 

Die Sequence number hat keinen Einfluss.

Link to post
Share on other sites

Habe das Problem gefunden, wenn ich die Master einzeln betreibe oder den ganzen Stack zur Stromversorgung an den Laptop hänge laufen sie einwandfrei.

 

Aber wie kann das sein, wenn ich 5,1V am USB Anschluss habe?

Brauchen die Master während der Kommunikation mehr Strom?

Wieso gehts nach 2 Min?

Link to post
Share on other sites

Du versorgst den problematischen Stack also über den DC Brick Motor Ausgang mit 5,1V. Wie hast du den DC Brick eingestellt (Velocity, PWM Frequency, Drive Mode, Acceleration) und mit welcher Spannung versorgst du den DC Brick Input Anschluss, damit da am Ende 5,1V am Motoranschluss herauskommen?

 

Aus einem USB Anschluss kommen normalerweise glatte 5V. Beim DC Brick kannst du 5V am Motoranschluss aber eigentlich nur durch PWM erreichen. Es kann sein, dass ein Brick das nicht gut verträgt.

Link to post
Share on other sites

Step-Down Power Supply ist genau zu Stromversorgung eines Stacks gedacht.

 

Ich fragte so genau nach wegen dem DC Brick, weil das potentiell auch funktionieren könnte unter bestimmten Bedingungen, aber möglicherweise hier die Ursache hätte sein könnte.

 

Nochmal zurück zum Aufbau:

 

Die beiden 3er Stacks habe also jeweils eine Step-Down Power Supply. Der problematische 2er Stack hängt mit seinem USB Anschluss am grünen 5V Ausgang einer dieser Step-Down Power Supplies. Oder wie speist du die 5V da ein? An welcher Step-Down Power Supply hängen dann die beiden 1er Stacks die ohne Probleme funktionieren?

 

Habe das Problem gefunden, wenn ich die Master einzeln betreibe oder den ganzen Stack zur Stromversorgung an den Laptop hänge laufen sie einwandfrei.

 

Heißt "einzeln" ohne den zweiten Master Brick, oder auch ohne Bricklets?

 

Das hört sich nach einem Stromversorgungsproblem an, wobei mir nicht klar ist warum das die RS485 Kommunikation in dieser Art und Weise beeinflussen sollte.

 

Wie werden die Step-Down Power Supplies versorgt? Alle vom gleichen oder von verschiedenen Netzteilen? Welche Ausgangsspannung und Ausgangsleistung haben die Netzteile?

Link to post
Share on other sites

Die beiden 3er Stacks habe also jeweils eine Step-Down Power Supply. Der problematische 2er Stack hängt mit seinem USB Anschluss am grünen 5V Ausgang einer dieser Step-Down Power Supplies. Oder wie speist du die 5V da ein? An welcher Step-Down Power Supply hängen dann die beiden 1er Stacks die ohne Probleme funktionieren?

 

Ja, jeder 3er Stack hat ein Step-Down. An einem hängt ein 1er an dem anderen ein 1er und der 2er. Eingespeist wird über den USB Port.

 

Heißt "einzeln" ohne den zweiten Master Brick, oder auch ohne Bricklets?

 

Ohne den zweiten Master, aber mit den Bricklets und der RS485 Extension.

 

Wie werden die Step-Down Power Supplies versorgt? Alle vom gleichen oder von verschiedenen Netzteilen? Welche Ausgangsspannung und Ausgangsleistung haben die Netzteile?

 

Versorgt werden die Step-Down Power Supplies über einen 100Ah 12V Bleiakku. Dieser ist über 10m 2x2x0,5mm² (Spannungsvers. und RS485) Kabel angeschlossen. Danach geht es weiter mit den 5V über 7m zu dem 2er Stack mit dem gleichen Kabel. Der 1er Stack ist auch mit ca 7m Kabel angeschlossen.

Link to post
Share on other sites

Das spricht erstmal nichts dagegen, dass dieser Aufbau so funktionieren müsste. Etwas ungewöhnlich ist die Art die zweite Reihe der Stacks zu versorgen schon, aber das sollte ohne Probleme funktionieren.

 

Da bleibt mir nur mehr Fragen zu stellen:

 

Die 5,1V sind am USB Anschluss des versorgten Master Bricks gemessen? Wie hast du die gemessen?

 

Du sagtest, dass alle Master Bricks die gleiche Firmware Version haben. Welche Firmware Version?

 

Welche Hardware Version haben die Master Bricks?

 

Wenn du die Stromversorgung des problematischen Stack anschließt dann leuchten die vier blauen LEDs am Master Brick auf. Daran kannst du erkennen, dass der Master Brick gestartet wurde. Leuchten diese LEDs nochmals im Betrieb auf, vielleicht so 20 Sekunden bevor die RS485 Kommunikation wieder funktioniert? Sprich der Master Brick startet sich selbst neu und dann funktioniert es wieder?

 

Was passiert, wenn du in die funktionierenden 1er Stacks noch einen Master Brick dazu steckst? Tritt dann bei diesen das Problem auch auf?

 

Was passiert, wenn du den problematischen 2er Stack mit einer Step-Down Power Supply unterm Stack versorgst, statt über den 5V Ausgang einer externen Step-Down Power Supply?

Link to post
Share on other sites

Die 5,1V sind am USB Anschluss des versorgten Master Bricks gemessen? Wie hast du die gemessen?

 

Gemessen habe ich mit einem Digitalmultimeter, direkt an der Verbindung vom Anschlusskabel zum USB Stecker.

 

Du sagtest, dass alle Master Bricks die gleiche Firmware Version haben. Welche Firmware Version?

 

Welche Hardware Version haben die Master Bricks?

 

Firmware: 2.3

Hardware: 2.1

 

Wenn du die Stromversorgung des problematischen Stack anschließt dann leuchten die vier blauen LEDs am Master Brick auf. Daran kannst du erkennen, dass der Master Brick gestartet wurde. Leuchten diese LEDs nochmals im Betrieb auf, vielleicht so 20 Sekunden bevor die RS485 Kommunikation wieder funktioniert? Sprich der Master Brick startet sich selbst neu und dann funktioniert es wieder?

 

Nein, die blauen LEDs leuchten nur am Anfang beim Einstecken des USB Kabels.

 

Was passiert, wenn du in die funktionierenden 1er Stacks noch einen Master Brick dazu steckst? Tritt dann bei diesen das Problem auch auf?

 

Dieser Stack funktioniert mit zwei und auch mit drei Master und 4 Bricklets. Ich habe nicht mehr zum testen.

 

Was passiert, wenn du den problematischen 2er Stack mit einer Step-Down Power Supply unterm Stack versorgst, statt über den 5V Ausgang einer externen Step-Down Power Supply?

 

Mangels Step-Down Power Supply kann ich das nicht testen, aber da es mit USB vom Laptop geht, würde ich sagen das geht auch.

 

 

Das komische ist ja, dass ich zunächst leere Antworten bekomme, dann schweigen und nach 2min gehts dann einwandfrei. Ich habe auch schon beide Master und den RS485 ausgetauscht. Ohne Verbesserung.

 

 

EDIT: Könnte es denn an der Potentialerhöhung der Masse, durch die Kabellänge, liegen? Diese sollte etwa 0,05V bei 200mA sein.

Link to post
Share on other sites

Ich habe jetzt herausgefunden, dass ich an den unteren Master so viel Bricklets (PTC) hängen kann wie ich will und es funktioniert. Sobald ich aber an den 2ten Master mehr als 1 Bricklet hänge dauert es 2 min bis ich eine funktionierende Verbindung bekomme. Auch wenn der untere Master mit keinen Bricklets belegt ist.

 

Das erklärt auch warum der Test an dem 1er Stack mit zusätzlichen Mastern kein negatives Ergebnis brachte, da ich keine zusätzlichen Bricklets zum anschließen hatte.

Link to post
Share on other sites

Tritt es auch auf, wenn du die beiden Master Bricks im 2er Stack vertauscht, also den oberen zum untern machst und umgekehrt (natürlich mit Bricklet am oberen)? Sprich, ist es die Position im Stack, oder betrifft das nur einen ganz bestimmten Master Brick?

 

Das erklärt auch warum der Test an dem 1er Stack mit zusätzlichen Mastern kein negatives Ergebnis brachte, da ich keine zusätzlichen Bricklets zum anschließen hatte.

 

Tritt das Problem denn jetzt auch bei den 1er Stacks auf, wenn du einen Master Brick mit Bricklets hinzusteckst?

 

Welche Bricklets hast du denn am oberen Master Brick, wenn das Problem auftritt?

 

Und was ist eigentlich mit den 3er Stacks? Warum tritt das Problem dort nicht auf? Was macht den Unterschied, hast du da andere Bricklets dran, oder macht die Step-Down Power Supply da den Unterschied?

 

Worauf ich hinaus will: Wird das Problem durch die Anordnung oder Art der Bricks und Bricklets im Stack verursacht, oder durch einen ganz bestimmten Brick oder Bricklet?

Link to post
Share on other sites

Tritt es auch auf, wenn du die beiden Master Bricks im 2er Stack vertauscht, also den oberen zum untern machst und umgekehrt (natürlich mit Bricklet am oberen)? Sprich, ist es die Position im Stack, oder betrifft das nur einen ganz bestimmten Master Brick?

 

Es liegt an der Position im Stack. Ich kann die Master vertauschen oder auch andere Master einsetzen. Das Problem bleibt das selbe.

 

 

Tritt das Problem denn jetzt auch bei den 1er Stacks auf, wenn du einen Master Brick mit Bricklets hinzusteckst?

 

Kann ich leider nicht testen, da schon alles fest verbaut ist.

 

Welche Bricklets hast du denn am oberen Master Brick, wenn das Problem auftritt?

 

Ich teste überall nur mit PTC Bricklets. Diese funktionieren am unteren ohne Prbleme, wenn ich sie nach oben stecke tritt das Problem auf.

 

Und was ist eigentlich mit den 3er Stacks? Warum tritt das Problem dort nicht auf? Was macht den Unterschied, hast du da andere Bricklets dran, oder macht die Step-Down Power Supply da den Unterschied?

 

Ich hatte zunächst noch andere Bricklets dran (Humidity, Ambient Light, IO16). Diese habe ich allerdings für die Tests abgesteckt. Nun hängen überall nur PTC Bricklets, die einzeln alle funktionieren. Da der 2er Stack mit Spannungsversorgung vom Laptop und der 3er mit der Step-Down Supply läuft denke ich, dass die Art der Spannungsversorgung eine Grund ist. Aber scheinbar nicht der einzige.

 

Link to post
Share on other sites

Ich habe gerade mal versucht deinen Aufbau nachzustellen:

 

Master Stack:

 

- Step-Down Power Supply (versorgt von 12V Labornetzteil)

- Master Brick (HW 2.1, FW 2.3.1, ohne Bricklets, per USB am PC angeschlossen)

- RS485 Extension (38400 Baud)

 

Slave Stack:

 

- Master Brick (HW 2.1, FW 2.3.1, ohne Bricklets, versorgt vom 5V Ausgang der Step-Down Power Supply am Master Stack)

- Master Brick (mit 2 PTC Bricklets)

- RS485 Extension (38400 Baud)

 

Ich schau mir den Temperatur Graphen eines PTC Bricklets im Brick Viewer an und stecke den USB Stecker am Slave Stack ab und wieder an. Der Graphen setzt dabei für 15 Sekunden aus läuft dann wie erwartet weiter. Sprich ich kann deine 2 Minuten nicht reproduzieren.

 

Du sprichst selbst Modbus, hast also nur Master Bricks als Modbus Salves im RS485 Bus. Hast du mal versucht stattdessen einen Master Brick als Modbus Master zu verwenden und das System so zu verwenden wie es gedacht ist?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...