Hallo,
gibt es ein Beispiel für die Anwendung MB_VMAP? Musste auch festellen, dass im Doku-PDF die Seiten 119-120 irgendwie im Umbruch verhagelt sind und dadurch nicht lesbar sind. So ganz kapiere ich die Funktion von MB_VMAP nicht.
Gruß
Andi
hallo
ja leider ist in der doku der umbruch falsch
ich werde dir in eine paar stunden eine lesbare doku nachliefern
was ist die idee von mb_vmap
mb_server:
die vmap ermöglicht , das man in einen datenbuffer alle daten ablegt, und nach aussen über virtuelle adressen drauf zugreifen kann
weiters kann definiert werden welche modbus-tcp kommandos erlaubt sind
der baustein MB_VMAP wird vom MB_SERVER intern verwendet, und muss nicht vom anwender benutzt werden
und wenn du das nicht verstehst bzw benötigst, dann kannst du das einfach ignorieren !!!
denn VMAP ist nur eine option die man nutzen kann, aber nicht muss
[gelöscht durch Administrator]
Hallo,
muss mich zu Anfang mal nochmal ganz Herzlich für den tollen Support hier bedanken. Tolles Projekt mit tollen Leuten dahinter! :-)
So im groben habe ich jetzt die FUnktion von MB_VMAP verstanden. Ein kleines Beispielprogramm in der Lib wäre aber ganz hilfreich um die Funktionen besser zu verstehen. Was mir auch nicht ganz klar ist, wie man das mit dem Watchdog-Timer auswertet.
Was ich gerade noch gesehen habe, die Doku hat auch weiter vorne Seitenumbruchfehler. Die Seite 112 ist komplett leer und die Errortabelle auf Seite 111 ist unvollständig, sie geht auf Seite 113 weiter...
Gruß
Andi
das mit der doku werden wir übers wochenende in ordnung bringen (danke für den hinweis !)
watchdog:
die idee ist folgende
mit deiner sps spielst du MB_SERVER und es gibt reale ausgänge die mit registern gekoppelt sind
diese werden von einem externen client angesteuert (motoren etc...)
man muss (kann) nun überwachen ob angesteuerte ausgänge auch zyklisch aktualisiert werden (watchdog wegen verbindungsunterbrechnung, störung etc..)
denn man möchte nicht das dann ein motor unkontrolliert weiterläuft
immer wenn auf einen MB_VMAP-Block schreibend zugriffen wird, wird bei VMAP_DATA.TIMEOUT = 1ms eingetragen (zeit wird vom mb_server automatisch rückgesetzt)
dieser time-wert wird dann in echtzeit zyklisch erhöht.
nun kannst du in deiner applikation prüfen
VMAP_DATA[x].TIMEOUT > T#200ms = Ausgang rücksetzen (watchdog - Notstop)
das mit dem demo ist immer so ein problem .... jeder hat andere ansprüche, wünsche....
ich würde es so formulieren... das ist eine funktionalität für fortgeschrittenen
und hier muss man sich einarbeiten... so wie du es gerade machst..
Hallo liebe Forengemeinde,
ich habe mich mal in kleinen Schritten mit der Modbus TCP kommunikation versucht (Siehe angehängtes Bsp.). Leider ohne Erfolg. Ich möchte Daten als WORD Varibalen verschicken, aber mir fehlt trotz lesen von Oscat und Network.lib der Anfang. Vielleicht kann mir jemand von euch den entsprchenden Denkanstoss geben.
Gruß Dennis
[gelöscht durch Administrator]
hallo
das geht alles viel einfacher
die hälfte von deinem programm kannst du löschen
der baustein "MODBUS_Adresse_zuweisen" ist nicht notwendig und bewrikt das es sicher nicht funktioniert
in der network.lib findest du bei bausteine/demo/
das programm "MB_SERVER_DEMO"
das nimmst du und erweiterst es einfach
dort brauchst du nur mehr bei
DATA: ARRAY [0..255] OF WORD
deine daten rein bzw rauskopieren
wenn du das original demo programm mal einfach laufen lässt, dann solltest du auf jedenfall schon mal das datenarray von extern verändern können !