Modbus Zufallsgenerator

Begonnen von Exedra, 10. März 2014, 12:01:56

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Exedra

Moinmoin,
ersteinmal Herzlichen Dank für diese schönen Bibliothek(en)  :)

Leider habe ich aber ein kleines Problem festgestellt :/

Zu meinem Setup:
- Codesys 2.3
- Wago 750-880
- aktuelle Libs (gestern gezogen)


Meine Aufgabe besteht darin unter anderem einige Daten des PLC per Modbus bereitzustellen. Hierfür wollte ich den oscat-MB-Server benutzen. Einerseits, weil es ein eventuelles Portieren möglich macht, andererseits, weil die VTables mir die nötige Flexibilität geben.
Momentan habe ich ein Programm, ähnlich der Demo, also ziemlich simpel (und im moment noch ohne Vtables). Meistens funktioniert das auch gut, nur hin und wieder (zu oft für den Einsatz) verschluckt sich da etwas... Ich teste mit modpoll, um daten zu schreiben sowie zu lesen (16 wie 32 bit). Ab und zu bekomme ich aber keine 'vernünftigen' Daten, sondern irgendeinen fantasiewert und das solange, bis ich modpoll beende und eine neue Anfrage starte (ggf. ist auch mehrmaliges neustarten notwendig).
Ähnliches gilt für die Schreibzugriffe: Meistens funktioniert das ganz gut, nur hin und wieder werden die Werte einfach nicht übernommen.
Beides ist unabhängig davon, ob ich einen 16 oder 32 bit breiten Zugriff vornehme... Das ganze lässt sich auch mit der Demo nachvollziehen, da habe ich das gleiche Problem...


Hat irgendjemand evtl. eine Idee woran das liegen könnte?

edit: Okay, den grund habe ich gefunden, die Lösung noch nicht: Die oscat ist völlig i.O., aber auf der 880er läuft der Wago-Modbus noch nebenher und mal erreiche ich den einen, mal den anderen... Muss ich nurnoch einen Weg finden, den von Wago zu deaktivieren...

edit2: Momentaner stand: Port 502 im Webinterface zu deaktivieren hat folgendes ergeben: Wenn ein verbindungsaufbau hergestellt wurde, werden die korrekten Daten angezeigt. Jedoch ist nur in 1 von 4 Fällen der Verbindungsaufbau erfolgreich. Ich hatte nun gedacht, dass evtl. der WagoModbusSlave da doch noch probleme macht und den Port kurzerhand geändert. (Wäre zwar nichtmehr normenkonform und daher unschön, da die kiste aber hinter einem Router hängen wird zumindest nach aussen hin wieder nach norm). Jedoch besteht da das gleiche Problem, dass nur einer von etwa 4 Verbindungsversuchen von erfolg gekrönt ist. Hat da jemand eine Idee woran das liegen könnte? (Auch hier gleiches Verhalten, bei meinem und dem Demoprogramm)

peewit

kannst du eine wireshark aufzeichnung des verbindungsaufbau machen
da könnte man eventuell erkennen was wirklich passiert !


Exedra

Bei bedarf gerne, gerade hat sich das Problem aber gelöst. Denk... Hoffe ich..
Es scheint ich war mit modpoll ein wenig zu schnell am Abzug, will sagen, wenn ich ein paar sekunden warte, nachdem eine Abfrage beendet wurde, läuft das wie gewünscht.
Da der 'richtige' Master die Verbindung idealerweise nur einmal zum Anfang aufbaut, die Verbindung bestehen lässt, und bei bedarf Anfragen schickt, denke ich, dass es weiterhin kein Problem geben sollte :o)