INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Modbus Timeout ab 30 Registereinträgen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.10.2012, 09:29
Beitrag #1

Pitt Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2011

2009, 2010, 2011, 2012
2010
DE


Deutschland
Modbus Timeout ab 30 Registereinträgen
Hi Leute,

im Grunde steht mein Problem schon im Titel, ich habe einen West 6100+ Temperaturregler, die Komunikation läuft über RS485 "2Wire-Auto". Soweit so gut, nun will ich erstmal alle Parameter
auslesen, wobei das Register einträge mit den Adressen 1-35, sowie 129-130 hat.
Allerdings bekomme ichbereits einen timeout Fehler sobald der Quantity Wert größer als 30 ist. es spielt auch keine Rolle wie groß ich den Timeout mache ab 30 Werten ist schluss, jetzt wollte ich mal fragen in wie weit es Sinn macht die Parameter einfach einzeln mittels for schleife Abzufragen, bzw. worrauf ich dann achten muss? Wäre für Tipps und Anregungen Dankbar!

PS: ich hab die NI Modbus Libary und Labview 8.0
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.10.2012, 13:39
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
Das kann ich mir schon vorstellen.
Bei MODBUS-TCP ist z.B. bei ca. 120 U16-Registern auf einmal Schluss, mehr geht. Könnte also sein, dass bei der RTU-Implementation bei 30 Registern Ende ist - alternativ gibt dein Gerät nicht mehr auf einmal zurück.

Alles einzeln abfragen geht natürlich, kostet halt Zeit. Kompromiss: Teil es doch in 3 Pakete auf, Adresse 1-17, 18-35, 129-130.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 15:12 (Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2012 15:13 von Pitt.)
Beitrag #3

Pitt Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2011

2009, 2010, 2011, 2012
2010
DE


Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
ok habe inzwischen eine akzeptabele lösung. jeden wert einzenl mit einer for schleife abzurufen war sehr inefizient, die Zykluszeit war ca. 2,7 sek. lang. Statt dessen rufe ich nun Immer Packete von 20 Werten ab wodurch die Zykluszeit auf etwas unter 400ms gefallen ist. Auf jeden macht es keinen Sinn sich 5 oder 6 einzelne nicht zusammenhängende paramater herrauszupicken und einzelnd
abzurufen, da das bedeutend länger lauert...

falls jemand eine noch "schnellere lösung hat immer her damit.

Edit:
Hi Jens, ja da bin ich auch drauf gekommen, das schein die Beste Lösung zu sein. s.u.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2012, 17:01
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
Noch'n Tick schneller: Frag doch beim 2. und 3. Mal wirklich nur die Anzahl an Registern ab, die du brauchst, also 15 und 2, sind immerhin ca. 13 Bytes weniger Übertragung. Sollte bei 9600 Baud theoretisch eine Zeitersparnis von ca. 13 ms bedeuten.
Bau die U16-Arrays nicht zu einem 2D-Array zusammen, sondern zu einem 1D-Array (per Build-Array und Schieberegister in der For-Loop).

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2012, 07:58 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2012 08:04 von Pitt.)
Beitrag #5

Pitt Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2011

2009, 2010, 2011, 2012
2010
DE


Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
Hey Jens,

danke für den Tipp, habe es jetzt so gemacht, dass ich 20 und 15 parameter in der schleife abrufe und anschließend noch einmal 14 ich benötige hier zwar nur ein paar der ersten und die zwei letzten, aber das aufteilen in zwei schritte kostet knapp 100 ms, so wie es jetzt ist benötigt das abrufen ca 290 ms ich denke das ist ein Wert mit dem man laben kann. So werd dann mal weiter
tüfteln. einen schönen tag noch Big Grin


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.10.2012, 11:37 (Dieser Beitrag wurde zuletzt bearbeitet: 13.10.2012 11:38 von rolfk.)
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Modbus Timeout ab 30 Registereinträgen
(11.10.2012 07:58 )Pitt schrieb:  Hey Jens,

danke für den Tipp, habe es jetzt so gemacht, dass ich 20 und 15 parameter in der schleife abrufe und anschließend noch einmal 14 ich benötige hier zwar nur ein paar der ersten und die zwei letzten, aber das aufteilen in zwei schritte kostet knapp 100 ms, so wie es jetzt ist benötigt das abrufen ca 290 ms ich denke das ist ein Wert mit dem man laben kann. So werd dann mal weiter
tüfteln. einen schönen tag noch Big Grin

Eine Frage, was sind das alles für Parameter? Typischerweise haben die Teile zwar viele Register aber nur sehr wenige wo sich stetig ändernde Werte in befinden. Um die Einstellungsregister jedesmal mitzulesen macht wenig Sinn.

Eine andere Randbemerkung: West Controller sind zwar verhätnismässig billig aber damit hat sich dann schon mehr oder weniger alles über sie gesagt. Ich musste mal eine Datenloggerapplikation schreiben für ein System wo unter anderem auch West Controller in sassen. Die Dinge sind nicht nur im Ansprechen über die Kommunikationsschnittstelle relativ problematisch. Ich hatte während der Inbetriebnahme und Tests der Software zweimal, dass ich mit einem davon nicht mehr zuverlässig kommunizieren konnte, und Tests ergaben dass der entsprechende Controller auch andersweitig nicht mehr so funktionierte wie er sollte. Der Kunde bestätigte mir, dass sie per Jahr meist zwei bis drei davon ersetzen müssen weil sie nicht mehr korrekt funktionieren. Da wird ein billiger Controller im Laufe der Zeit doch ein ziemlich teures Teil, sicher in einer Testanlage die 365 Tage im Jahr ununterbrochen laufen sollte, wie es dort der Fall war.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.10.2012, 19:24 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2012 19:29 von Pitt.)
Beitrag #7

Pitt Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2011

2009, 2010, 2011, 2012
2010
DE


Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
Zitat:Eine Frage, was sind das alles für Parameter?

Also genau das war die erste Zielsetzung ich habe zunächst ein Programm geschrieben, das alle Parameter ausließt, diese habe ich dann über ihre Indices mit einer Dokumentation verknüpft, so dass man sich durchschalten kann und angezeigt bekommt um welchen Parameter es sich handelt. Außerdem kann man die Werte dann auch direkt ändern. Das ich später auch mit sehr viel weniger Werten auskomme, nachdem man die Regler konfiguriert hat ist mir natürlich auch klar, aber es musste erstmal schnell gehen... Warum ich Westregler hab, weil ich nur Praktikum mache und das Programmiere was mir gegeben wird... Emko Regler hab ich auch noch rumliegen, um die kümmere ich mich morgen... bisher wurden die Dinger alle händisch eingestellt, und das von Leuten die von Regelung nicht so viel plan haben... bzw. die Regelparameter wurden nicht an die Anforderungen angepasst, da Überschwingen eigentlich nicht statt finden darf...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.10.2012, 21:52
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
Noch ein Verbesserungsvorschlag für deine Abfrage:

- Wozu erst Schleife mit 2 Durchläufen und dann nochmal eine Abfrage hinterher? Pack doch alles in eine Schleife mit 3 Durchläufen.
- Nutze die Autoindizier-Funktion, soll heißen, anstatt einer Case-Struktur IN der Schleife kommt vor die Schleife eine Array-Konstante mit deinen 3 Abfrage-Enums.
- Anstatt Insert-Into-Array würde ich mit "Build-Array" arbeiten, macht es etwas übersichtlicher. Noch performanter wäre natürlich Replace-Array-Subset, aber diese Optimierung durch Vorbelegung des Arrays kann man sich bei den paar Elementen getrost sparen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.10.2012, 14:20 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2012 14:26 von Pitt.)
Beitrag #9

Pitt Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2011

2009, 2010, 2011, 2012
2010
DE


Deutschland
RE: Modbus Timeout ab 30 Registereinträgen
Enum in Array, da muss man erst mal drauf kommen das macht die sache natürlich gleich ein ganzes stück einfacher ! Danke für den Tipp. Hoffe das mit dem Replacment hab ich so richtig gemacht...

PS: nicht wundern, im vierten durchlauf werden dann die diskreten werte abgerufen...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  PostMultipart Timeout Gladii 1 1.662 13.04.2022 10:15
Letzter Beitrag: Martin.Henz
  Timeout Error Auslesen Modbusregister sarah_gru 8 4.762 17.07.2019 18:34
Letzter Beitrag: jg
  "Timeout" bei NI-XNET FRAME INPUT STREAM andrepf 4 5.264 06.04.2016 10:12
Letzter Beitrag: andrepf
  [split] VISA RS232 TimeOut MODDER 9 7.562 16.09.2013 09:12
Letzter Beitrag: GerdW
  Modbus TCP MrChipsy 1 5.091 26.06.2012 06:33
Letzter Beitrag: NWOmason

Gehe zu: