Hi Leute
Ich bin neu hier im Forum und habe mich eigentlich auch nur angemeldet da ich ein Problem mit besagtem gerät habe und sonst nur sehr wenig zu diesem Thema gefunden habe.
Ich bin derzeit Student (Technische informatik) und habe ein Projekt nebenherlaufen bei dem es darum geht Daten mittels Modbus/TCP Modulen zu erfassen. In diesem Programm werden bereits mittels ad4eth(gerät mit Modbus/TCP schnittstelle) Temperaturen eingelesen.
Nur mit dem adam 6051 verzweifle ich langsam. ich möchte dabei die Countereingänge auslesen und hier liegt auch mein Problem, da ich nicht weis wie ich dies machen soll. Ich schreibe das gesammte Programm in c++, binn mir aber relativ sicher das ich eher Verständnissprobleme beim Protokoll bzw. der Adressierung habe.
(wie gesagt Temperaturen auslesen klappt, ebenfalls via Modbus/TCP).
da die antwort die das gerät zurück gibt immer merkwürdig(falsch) ist.
mal -50 mal nur kauderwelsch.
zum Protokoll:
ich Sende folgende Nachricht:
Bit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
0 | 0 | 0 | 0 | 0 | 6 | 1 | 04 | 0 | 24 | 0 | 1
6: unit identifier = 1
7: funktion code = 04 Read input register
8: start Register Hig byte = 0
9: start Register Low byte = 24 oder 40024?
//laut appendix 40025~40026 Das wurde bereits in einem anderen post klargestellt das
man hier -1 drauf rechnen muss.
10: anzahl Register Hig byte = 0
11: anzahl Register Low byte = 1
//ein Register ab Register 24 lesen. 40025 und 40026 bzw. 40024 und 40025? Liegt hier evtl der Fehler? Laut appendix müste mann hier 2 Register auslesen.
Gibt es noch weitere dinge zu beachten wenn ich einen Counter auslese?
z.B. Überläufe o.ä.?
Ich hoffe das ich nicht allzuviel nerve und das ihr mir helfen können.
Mfg BabCom