IOW-56 Boards zeigen eigenwilliges Verhalten

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
kalmi01
Posts: 3
Joined: Sat Dec 21, 2013 5:43 pm

IOW-56 Boards zeigen eigenwilliges Verhalten

Post by kalmi01 »

Hallo,

ich habe eine Gebäude-Steuerung mit mehreren IO-Boards (nur Input oder nur Output, nie gemischt) der Fa. Hoffmann am laufen, basierend auf IOW-56.
Die Software ist (in Delphi) selbst erstellt. Die erste Version war linear und Timer gesteuert. Die Zweite Thread-gesteuert, die Dritte Multi-Thread (inkl. Thread für die Heizungssteuerung).
Alle Versionen liefen ohne grössere Problem. OK, die MultiThread hatte häufiger mal einen "Hänger", so ca. 1x im Monat.
Ohne Änderungen an Programm oder Hardware änderte sich dies jedoch vor einigen Monaten. Im Extremfall hatte ich jetzt einige Dutzen Ausfälle pro Stunde, die laut Fehlerprotokoll immer von IOW-Seite kamen.
Es gab so Fälle, das laut Protokoll (das ich über jeden Schaltvorgang schreibe) den ganzen Tag ein Taster gedrückt wurde, aber die dazugehörige Input-LED war aus, also kein Signal.
Oder alle Ausgänge gingen auf Default-Zustand, obwohl kein Steuerungs-Impuls gesendet wurde.

Als Erstes habe ich dann ein Watchdog implementiert, der aber auch nicht so der Bringer war.

Dann habe ich sukzesive auf ältere Software-Releases (mit weniger Wohnkomfort) zurück geschaltet, ohne Erfolg.
Also von Multithread zurück auf SingleThread und Uups, das wurde besser.
Noch ein paar Punkte in der eigenen Software optimiert, die Anlass für Störungen sein könnten (aber nie waren) und es wurde ....... nicht besser.

Dann bin ich darauf gestossen:
Das Input-Board detektiert über die LED's keinen Input aber der IOW liefert Signale, als wäre Etwas passiert.
Dies passiert (teilweise) mehrmals pro Sekunde.

Das Output-Board vergisst manchmal den Schaltstatus und geht auf Einschalt-Status.
--> von der Software wurden zu diesem Zeitpunkt definitiv keine Signale an den IOW gesendet.

Dies habe ich beseitigt bekommen, aber die Art wie, sollte so eigentlich nicht sein.
- Nach dem Lesen eines Inputs lese ich den Port so lange mit ReadNonBlocking bis 0 Bytes zurück kommen, lösche also den nachkommenden Puffer. Hallo, bei der aktuellen Beschaltung kann nichts prellen.
- Andererseits werden die Outputs (unverändert) mehrmals pro Sekunde geschrieben.
Und trotzdem flackert das Licht noch gelegentlich (geht kurz aus) !


Technischer Hintergrund:
- EFH
- sternförmige Verkabelung (keine Unterverteilung)
- Masse aller Leitungen liegt auf Erde
- Signal-Leitungen Cat5 24V (Mantel auf Erde)
- 12V + 24V Versorgungsspanungen verifiziert gegen Erde (aber ohne Oszi)
--> jeweils 1000uF Elko zur Glättung

So und nun kommt ihr !
Was kann ich noch tun, um es verlässlich stabil zu bekommen oder die Fehler-Ursache ein zu grenzen ?
Bringt nativ auf HID zu gehen noch was ? Die DLL scheint ja bei Stress auf dem USB nicht so ganz stable.

Gruss Michael

PS: mit der IOWkit.dll 1.14 hatte ich interessanter Weise weniger Probleme.

Edit: heute hat der IOW für die Ausgänge 15 Sekunden lang nicht reagiert, obwohl er 4x pro Sekunde Daten erhält.
Um dann anschliessend einfach so wieder den Betrieb auf zu nehmen.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW-56 Boards zeigen eigenwilliges Verhalten

Post by Christoph Jung »

Wenn nichts an der Hardware oder der Software geändert wurde liegt es meißst auch nicht daran.
Wurden irgend welche neuen Geräte angeschafft, seid dem die Probleme angefangen haben?
Meißt ist es irgend etwas wie starke Motoren oder ähnliches, die Einfluss haben könnten.

Leider bin ich in Hardware nicht so tief drin um alles zu beantworten.
Aber die DLL nutzt auch nur die HID-Funktionen, daher ist es in der Regel unnötig und bedeutet mehr Arbeit als Nutzen.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
kalmi01
Posts: 3
Joined: Sat Dec 21, 2013 5:43 pm

Re: IOW-56 Boards zeigen eigenwilliges Verhalten

Post by kalmi01 »

Nein, keine neuen Geräte.
Es werden keine starke Motore oder sonstige Magnetfelderzeuger eingesetzt.
Und es ist auch keine Funktechnik hinzugekommen. Zumindest nicht bei uns im Haus.

Ganz im Gegenteil. Bis zum ersten Auftreten von Problemen waren mehrere Geräte am USB-Bus.
Vorher waren Maus, Tastatur, G3-Stick, Heizungssteuerung, usw. aktiv.
Die habe ich Eins nach dem Anderen abgehangen, sogar Maus und Tastatur.
Es hängen jetzt nur noch die IOW-Boards am Bus.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IOW-56 Boards zeigen eigenwilliges Verhalten

Post by Christoph Jung »

Hmm...

Ist das ein USB-Hub mit eigenen Stromversorgung oder der eingebaute USB vom Mainboard?
Ist das ein "Noname"-Hub oder eine bekannte Marke, falls ein Hub nebutzt wird (wir haben beobachtet, dass einige HUBs nicht ganz das Wahre sind)?
Wie lang ist das USB-Kabel?
Was für ein Betriebssystem läuft auf dem Computer, worüber die IO-Warrior gesteuert werden?
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
kalmi01
Posts: 3
Joined: Sat Dec 21, 2013 5:43 pm

Re: IOW-56 Boards zeigen eigenwilliges Verhalten

Post by kalmi01 »

Kein USB-Hub mehr. Ist jetzt alles nur noch on-Board.
Intel-Mainboard mit Atom D425, 4GB und SSD-HD
Windows XP Pro, SP2.
Ausser der Firewall kein sonstiger Schnick-Schnack, nur die Soft-SPS.
USB-Kabellänge max. 50cm, geschirmt.
Netzteile für PC und IOW-Boards hängen hinter einem Oberwellen/Störsignal-Filter.

Und wie gesagt, das zurück Rüsten der USB-Hardware und meiner Software (von Multi- auf Single-Thread) hat sehr viel gebracht. Zumindest habe ich es wieder (fast) stabil. Aber ich würde auch gern wieder dahiin kommen, das ich die Werte der Heizung auswerten kann um darüber steuernd einzugreifen. Und dazu müsste ich wieder min. 1 Gerät mehr am BUS haben und mehrere Threads müssten laufen.

Wie ist denn die MTBF bei 24/7-Betrieb der IOW's ?
Könnte da etwa Etwas schleichend auf mich zukommen ?

Ich finde das komisch, wenn sich das Output-IOW-Board 15 Sekunden Auszeit nimmt, obwohl es 4x pro Sekunde mit Daten befeuert wird. Das regelmässige "mit Daten Befeuern" hat übrigens ehr zu einer Verschlechterung der Gesamtsituation geführt. Die Ausfälle sind dadurch häufiger geworden, allerdings geht das Licht wieder von selbst an, was dann doch wieder von Vorteil ist.
Ich lese beim Schreiben zwar keinen Response-Code aus, aber ich habe einen Exception-Handler integriert, der alle Fehler abfängt und protokolliert.

Ach so, das wäre jetzt beinah unter gegangen: da ich mehrere Boards habe, überwachen die sich gegenseitig über die Ports 49 + 50. Und ein Board überwacht zusätzlich die 24V-Versorgungsspannung.
Post Reply