Gleitkommaüberlauf

Antworten
Roberto
Beiträge: 114
Registriert: Mittwoch 15. September 2010, 20:34
Wohnort: Graz (Austria)
Kontaktdaten:

Gleitkommaüberlauf

Beitrag von Roberto » Sonntag 14. April 2013, 10:17

Hallo

Ich habe da ein Pl-Programm, dass mir eine Messung von einigen Stunden ausführt.
Über eine RS232 Schnittstelle (COM8)wird das Gerät angesprochen und Daten ausgelesen und über eine zweite (RS232)werden noch zusätzlich Daten ausgelesen.
(es sind verschiedene USB->RS232 Wandler)

Leider bekomme ich nach ca. 3 Stunden einen "Gleitkommaüberlauf" und das Programm stürzt ab :( :(

Jetzt habe ich zu Testzwecken schon alle anderen Komponenten und Berechnungen rausgeschmießen und trotzdem kommt noch der Gleitkommaüberlauf :(

Ich tippe jetzt auf die zweite RS232 Schnittstelle.(COM13)
In einem anderen Thread habe ich gefunden(Abacom), dass es vielleicht daran liegen kann, dass schneller gesendet wurde als empfangen ?!

Sollte man vielleicht das Senden vom Com13 mit dem Empfang von Com13 kombinieren? (BSY-Leitung)

leider tritt der Fehler erst nach 3 Stunden auf und das ist sehr Zeitaufwendig, nach jeder Änderung wieder 3 Stunden zu warten...
(darf Gerät nicht alleine lassen, weil bei Ausfall, muss man Gerät manuell ab schalten)

Hätte jemand eine Idee dazu ?

und noch ein Frage:

Die Com-Beschaltung für dem Empfang:
Im PL-Beispiel hängt der Power-ON-Reset direkt auf der Leitung von CK\ und BSY !
Ist das eigentlich ok so ? Weil BSY ist ja ein Ausgang und Power-On-Reset auch.
Darum verwende ich dafür ein OR-Gatter.
Ist das so OK, oder egal, oder vielleicht eine Fehlerquelle ?


Würde mich auf Antworten freuen :-)

(die Com-Teile vom Programm habe ich angehängt)

l.G. Roberto
Dateianhänge
Test1.zip
(2.23 KiB) 254-mal heruntergeladen

hrathke
Beiträge: 157
Registriert: Montag 12. Dezember 2011, 21:10

Re: Gleitkommaüberlauf

Beitrag von hrathke » Sonntag 14. April 2013, 14:48

Hallo,

keine Ahnung ob es daran liegt... - aber Du verwendest 5 x COM8 um etwas zu senden - versuche doch einmal einen Stringmultiplexer und dann nur einmal COM8 ;)

zum COM13: ich würde Senden mit Empfangen kombinieren... (und eventuell alle paar Sekunden "mal nachfragen")

Gruß
HR

PS: Deine Frage zum POR - ich denke das ist ok so :)

abacom
Site Admin
Beiträge: 3413
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von abacom » Dienstag 23. April 2013, 07:39

Probeweise den Empfang bitte einmal so takten...
damit sollten dann Pufferüberläufe als Ursache ausscheiden.
CLK.jpg
CLK.jpg (17.2 KiB) 8761 mal betrachtet
ABACOM support

Roberto
Beiträge: 114
Registriert: Mittwoch 15. September 2010, 20:34
Wohnort: Graz (Austria)
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von Roberto » Dienstag 23. April 2013, 18:34

Hallo Abacom.
Danke für den Hinweis, werde ihn als nächsten probieren..

Habe inzwischen schon weiter getestet..

Lese zwei verschiedene Bereiche mit Com13 aus.
Die Wiederholung erfolgt im 2 Minuten Abstand
1.) Bereich 1, 1 mal auslesen
2.) Bereich 2 , 50mal im Takt von 200ms auslesen
(und alle 2Min. wieder von vorne)
--------
Hatte vor ein paar Tagen, nur Bereich 1 aktiviert und dann hat alles funktioniert !

Heute, nur Bereich 2 aktiviert.
Intervall von den 50mal auslesen, von 200ms auf 500ms verlängert
Leider nach 2 Stunden wieder Gleitkommaüberlauf :-(

Den PON habe ich so geändert wie im Beispiel. (ändert sich leider nix)
Kann leider nur einen Versuch pro Tag fahren...

Werde morgen wieder testen..

l.G. Roberto

abacom
Site Admin
Beiträge: 3413
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von abacom » Mittwoch 24. April 2013, 07:37

Das Problem könnte auch durch eine elektrische Störung (Stichwort EMV) verursacht sein. USB-Hardware ist da generell durchaus anfällig.
ABACOM support

Roberto
Beiträge: 114
Registriert: Mittwoch 15. September 2010, 20:34
Wohnort: Graz (Austria)
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von Roberto » Mittwoch 24. April 2013, 19:18

Hallo

Leider hat sich nix geändert... immer noch ein "Gleitkommaüberlauf"
Nächster versuch:
Habe im Empfangsbaustein $CR2 die Trennzeichen 13 und 10
Habe es mal auf nur 13 geändert, aber leider auch das gleiche.

Im Anhang, ein Teil der Schaltung:
Es ist der Bereich für Com13, der mir "Daten X1" und "Daten X2" in einem wiederholendem Rhythmus ausliest. (Die Adressen sind nicht die richtigen)

Es funktioniert alles soweit, ca. 2 Stunden, aber dann kommt ein Gleitkommaüberlauf und das Programm stürzt ab.
Meistens in der Nähe von einem bestimmten Wert..
Die Schaltung für das Wasserfalldiagramm, liest die Werte von "Daten x2" so lange aus, bis der Wert 0 kommt und trägt dann die nächsten Werte in das Wasserfalldiagramm ein.

Was ich jetzt herausgefunden habe... :
Das Programm funktioniert nur dann bis zum Ende, wenn ich die Sendeanfrage für "Daten X2" abschließe ! ($CS1)
Er holt sich dann also nur die "Daten X1" (mit $CS3)

Auch wenn ich die Weiterleitung der Daten, beim Empfang von "$CR2" in die Nachstehende Schaltung unterbreche, geht es nicht.
Also kann es nicht an der Auswertung der Daten liegen (Formeln), sondern muss wohl an den Com-Teilen liegen.

Eine EMV Störung würde ich ausschließen, weil der Fehler immer ca. nach 2 Stunden kommt.

Inzwischen überlege ich, ob vielleicht "$CS1" schult sein könnte... ?!
Aber da kann ja nix schief gehen.. ?!
Vielleicht sendet er zu oft ??

Überlege jetzt, ob ich "$CS1" und $CR2" irgendwie verknüpfen könnte ??
Sodas nur gesendet wird, wenn auch etwas empfangen wurde...
Nachteil könnte aber sein, dass wenn mal nix empfangen wurde, alles steht :-(

Vielleicht habt Ihr eine Idee?!

Wenn ich nur wüsste , von wo der Gleitkommaüberlauf kommt.... ?!

l.G. Roberto
Dateianhänge
Beispiel.zip
(6.23 KiB) 249-mal heruntergeladen

tmm
Beiträge: 365
Registriert: Montag 23. Februar 2009, 06:38

Re: Gleitkommaüberlauf

Beitrag von tmm » Donnerstag 25. April 2013, 06:43

Hi Roberto,

hast du zum Testen die "verdächtige" Schnittstelle in der Schaltung entfernt und durch einen Zufallsgenerator ersetzt (der solche Werte liefert, wie sie von deiner Hardware kommen) ?

Gruß MM

abacom
Site Admin
Beiträge: 3413
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von abacom » Donnerstag 25. April 2013, 08:05

Ist es eine "echte RS232" oder ein USB-COM-Port?
...der Gerätetreiber wäre auch noch eine denkbare Fehlerquelle...
Es gab auch schon einmal USB-Geräte, die sich selbst abschalten (Energiesparfunktion).
ABACOM support

Roberto
Beiträge: 114
Registriert: Mittwoch 15. September 2010, 20:34
Wohnort: Graz (Austria)
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von Roberto » Donnerstag 25. April 2013, 22:11

Hallo

@Abacom

Ist ein USB Converter auf ein anderes Schnittellenformat.

Wenn ich den Dateneingang vom Converter trenne, kommt eine Meldung über die
Schnittstelle, das keine Daten mehr anliegen..

Habe jetzt mal kontinuierlich nur "DatenX2" lesen lassen (Alle 500ms)
(mit Inverter-Takter am CK Eingang vom $CR1)

Nach 2 Stunden , wenn ich den Dateneingang vom Converter trenne, Sprudeln auf einmal ein Haufen Daten in das Anzeigefehlt ($DSP2), obwohl keine Daten mehr kommen dürften.

Erst nach ein paar Sekunden, wenn alle Zeichen vorbei sind, kommt die gewohnte Anzeige, das keine Daten mehr vorhanden sind.

Wie wenn sich ein Puffer mit Daten aufgefüllt hat und diese dann auslässt..
grübel....


Weiß jetzt nicht ob das an dem Inverter-Takter liegt...
Werde morgen noch mit der alten Methode probieren (Abfrage per BSY-Signal)

Wie ist das den mit dem Puffer von der Com Schnittstelle im PL ? ($CR1)
Wie groß ist die ?
Kann man irgendwie sehen, wie viel da schon im Puffer steht ?
Vermutlich geht der Puffer da über ??

l.G. Roberto

abacom
Site Admin
Beiträge: 3413
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von abacom » Freitag 26. April 2013, 07:23

"Ist ein USB Converter auf ein anderes Schnittellenformat"
Nämlich ... ?

"Wenn ich den Dateneingang vom Converter trenne"
Ein Bus ... ?

Ferner sei die Frage erlaubt, ob überhaupt das aktuelle Internetupdate verwendet wird.
Anmerken möchte ich auch noch, das ich die RS232-Komponenten selbst in verschiedensten
Controller-Projekten eingesetzt habe. Probleme wie hier beschrieben gab es dabei nie.
Vielleicht einmal einen Dump mit einem Protokollanalyser o.ä. versuchen und posten.
ABACOM support

HCS
Beiträge: 182
Registriert: Montag 3. November 2008, 16:11
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von HCS » Freitag 26. April 2013, 12:25

Hi Roberto,
hast du bei deinen PC keine Möglichkeit eine RS232 Schnittstellenkarte einzubauen? Wäre halt die beste Lösung.
Gruß Bernd

Roberto
Beiträge: 114
Registriert: Mittwoch 15. September 2010, 20:34
Wohnort: Graz (Austria)
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von Roberto » Montag 29. April 2013, 19:12

Hallo

Bin derzeit ein bisschen ratlos..
abacom hat geschrieben:"Ist ein USB Converter auf ein anderes Schnittellenformat"
Nämlich ... ?
Ist der USB to I2C Converter von ELV
(mit eingebautem AVR)

Derzeit lasse ich es so laufen..
Alle 500ms Abfrage der "Daten X2)
Empfang der "Daten X2" über die RS232 mit dem BSY-Signal.
Die Daten werden nur empfangen aber nicht weiter ausgewertet.
(also kann es nicht an der weiteren Verarbeitung der Daten liegen (zB. Formeln))

Habe heute das Ganze im Leerlauf, laufen lassen....
(dabei werden fixe Daten, über den gleichen Weg eingelesen)
Nach 5 Stunden, läuft es noch immer...!!

Dann die richtige Messung angehängt und nach 2 Stunden wieder ein Gleitkommaüberlauf!
Mir scheint, das passiert immer nach ca. 2Stunden, wenn ein bestimmter Wert, bei der Messung auftritt.

Aber wie kann das sein..?
Der Com-Baustein ($CR2) müsste ja alles einlesen , ohne zu murren..
Ich verarbeite die Daten ja nicht weiter !
Es kommen ja nur Strings daher..
Es ist nur Trennzeichen "13" eingestellt. und der Ausgang ($) geht nur auf eine($STR) Anzeige.

Hat jemand vielleicht noch eine Idee ?! :-)

Kann ich irgendwie rausfinden, von wo der Überlauf eigentlich herkommt ?
Gibt es ein Error-Protokoll von PL ?
Kann ich das sonst irgendwie, irgendwo sehen ?
Vielleicht mit einer Systemvariablen ?!
Warum stürtzt das ganze PL-Programm ab.
(Die Frontplatte funktioniert noch, aber keine Signale..)


l.G. Roberto

Ps.:
@HCS
Nein, ist ein kleines Notebook.
Sollte schon über USB laufen, weil RS232 wird immer seltener..

abacom
Site Admin
Beiträge: 3413
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von abacom » Dienstag 30. April 2013, 08:28

1.) So es sich um dieses Gerät handelt...
http://www.elv.de/usb-i-c-interface-usb-i2c-1.html
..wären dieses wohl die aktuellen Treiber...
http://www.silabs.com/products/mcu/Page ... ivers.aspx
---
2.) Vielleicht können Sie den empfangenen String im Fehlerfall anzeigen und analysieren.
---
3.)
"Dann die richtige Messung angehängt..."
...das soll heissen? Hardwaremässig eine externe Schaltung an das Modul geklemmt, was dann zum Fehler führt?

Das würde dann auf eine elektrische Störung hinweisen, die evtl. das Modul/den Controller zum Absturz bringt. (Mit unabsehbaren
folgen für die Software.) Ein Fall der bei USB-Geräten schnell zu "unerklärlichen Fehlern" führen kann.
(Habe ich zuvor schon einmal gepostet.)
Bitte einmal im Umfeld "der richtigen Messung" nach Störquellen Ausschau halten (Relais, Motoren, Ventile, Pumpen, etc.)...
ABACOM support

funkybaer
Beiträge: 400
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: Gleitkommaüberlauf

Beitrag von funkybaer » Dienstag 30. April 2013, 11:06

Hallo Roberto

Hast Du das Ganze auch mal mit einem "normalem" Rechner probiert?
Gerade bei Notebooks gibt es viel Störungen mit dem Netzteil da das
Notebook nicht geerdet ist.
Ansonsten mal nur im Batteriebetrieb probieren .

Gruß Gerhard

Roberto
Beiträge: 114
Registriert: Mittwoch 15. September 2010, 20:34
Wohnort: Graz (Austria)
Kontaktdaten:

Re: Gleitkommaüberlauf

Beitrag von Roberto » Dienstag 30. April 2013, 16:29

Hallo

1.)Ja, das Gerät ist es.

2.) Ich messe mit dem Gerät eine Entladung von einem Akku.
Bei der Leerlaufmessung ist alles normal angehängt nur die Stromsenke ist nicht verbunden.
Mit Stromsenke läuft es ja dann ca.2 Stunden..

3.) Ja, einen anderen Rechner hatte ich auch schon probiert (Kein Laptop. noch ein P4) (leider das gleiche) (XP)

4.) String lasse ich ja immer Anzeigen... und habe sogar schon kurz vor dem Ausfall die Werte mitgefilmt....
Man kann aber nix außergewöhnliches sehen..

Wenn ich nur "Daten X1" auslese, funktioniert ja auch alles
Einziger Unterschied, es wird nicht so oft gelesen und die Adresse ist ein bisschen anders
Habe auch schon die Geschwindigkeit von Datenauslesen (X2) verlangsamt... bringt aber nix,,

Habe mal mit einem Logikanalyzer die Messwerte mitgeschrieben..(I2C-Seite)
Konnte bei der alten Schaltung merken, dass er einmal zu viel gesendet hat, dann 10mal gelesen (Anstatt 23 mal) und dann aus.. ----> (Gleitkommaüberlauf)
Kann mir darauf aber keinen Reim machen...
(Darum habe ich dann auf Fixes senden, zur Probe umgestellt) (ist aber das gleiche)

Auch wenn ich die Datenverbindung (I2C-Seite) trenne, passiert nix.
Es kommt vom Konverter eine Fehlermeldung über die USB(RS232) aber das PL-Programm hängt sich deshalb nicht auf !!

l.G. Roberto

Antworten

Zurück zu „Thema RS232“