Modbus TCP - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: Hardware (/Forum-Hardware) +---- Forum: 3rd Party Hardware (/Forum-3rd-Party-Hardware) +---- Thema: Modbus TCP (/Thread-Modbus-TCP) |
Modbus TCP - bastimeister - 17.05.2005 10:37 Ich möchte über Modbus TCP, mit einem Beckhoff-Buskoppler BK9000 kommunizieren. Auserdem sind an diesen noch weitere Bussklemmen wie 1x Analog-IN (8Kanäle), 1x Digital-IN (8Kanäle) sowie 1x Digital-OUT (8Kanäle) angeklemmt. Ich habe auch beim googeln einen passenden Link zum downloaden einer bereits vorhandenen Lib von ni.com gefunden: http://sine.ni.com/apps/we/niepd_web_displ...0340003BA7CCD71 Mein Problem ist nun, das der Buskoppler einen Watchdog besitzt. Dieser schaltet scharf sobald das erste Schreibtelegramm hingeschickt wird! Das Programm läuft auch bei mir hab es dem Buskoppler angepasst. Aber sobald ich es stoppe der Timeout des Watchdogs vergeht und ich das vi dann wieder starten will, ist die TCP Verbindung weg und ich müsste den Watchdog reseten, aber genau das ist das Problem! In der Doku vom BK9000 steht folgendes: Zitat:Watchdog Meine Frage an euch wie kann ich über Modbus in dieses spezielle Register schreiben??? Wie ist das möglich ich hab probiert und probiert aber ich bekomme es ohne Hilfe nicht hin und die vom Beckhoff-Suport können mir auch nur das sagen was in der Doku steht. Deshalb wende ich mich an euch, da das ja wohl ein reines LabVIEW- programmierproblem darstellt, wobei ihr mir doch sicher weiterhelfen könnt?? Das Modbustool kann frei runtergeladen werden, da ich auch nix anderse verwende zur komunikation sollte diese Library sammt SubVIs erstmal zum Anschauen reichen und vieleicht habt ihr eine Idee wie ich dieses Spezielle Register auf dem Buskoppler ansrechen kann... Modbus TCP - bastimeister - 17.05.2005 13:51 Also Leute ich hab selber mal was gefunden! Einfach so hier einstellen dann funtz es auch: Function Code: 16 Starting Adress: 0x1121 Quantity: 1 Es muss 2x auf dieses Register geschrieben werden also nehmen wir eine "Stacked Sequence Structure" Beim ersten Schreiben wird als Data 0xBECF un beim zweiten Schreiben wird als Data 0xAFFE reingegeben! Das ganze kommt in die TRUE-Case einer Case-Structure die überprüft ob der Errocode 6002 bzw. 6004 ist! Ist es keiner von beiden wird die Rücksetzung des Watchdogs garnicht ausgeführt! So das war die Lösung für das Problem! Hätt ich garnicht gedacht das ich die noch selber finde! Modbus TCP - bastimeister - 17.05.2005 13:55 Achja hier mal ein Link zu einem Hilfreichen PDF: http://www.modbus.org/modbus/standmbusLibr...tocol_V1_1a.pdf Also dann viel Spaß damit! |