-> Hier kostenlos registrieren
Hallo Leute,
habe die folgende Aufgabenstellung.
Ich muss über Modbus-TCP ca. 50 Werte abfragen, welche von den Modbus-Adressen leider komplett verstreut sind.
Die Modbus-TCP Abfrage funktioniert jetzt einmal mit einem Wert.
Jetzt möchte ich die Parameter dynamisch aus einem DB auslesen und die gelesenen Werte in einen eigenen DB schreiben.
Dazu habe ich mir folgenden Ansatz überlegt.
Ich lege im DB ein Array [0..xx] of Datentyp_xx an.
Das sieht dann folgendermaßen aus:
Modubus_Abfrage[1]
-Modbus-Adresse (Int) 6722
-Länge (Int) 10
-Ziel-DB (Int) 100
-Adresse im Ziel-DB (Int) 2
Modubus_Abfrage[2]
-Modbus-Adresse (Int) 7822
-Länge (Int) 1
-Ziel-DB (Int) 100
-Adresse im Ziel-DB (Int) 22
Für den MB_Client möchte ich jetzt daraus die folgenden Parameter für zB. Modbus_Abfrage[1] generieren:
MB_DATA_ADDR = 6722
MB_DATA_LEN = 10
MB_DATA_PTR = DB100.DBX2.0
Mein Problem ist aktuell wie ich den Zeiger für den Datenpuffer aus 2 Int-Werten generieren kann
und in eine Variable setze, die ich dann an den MB_Client übergeben kann.
Hoffe ich konnte mein Problem halbwegs verständlich darstellen.
Gibt es eventuell einen viel eleganteren Ansatz um so etwas umzusetzen?
Danke für eure Unterstützung
habe die folgende Aufgabenstellung.
Ich muss über Modbus-TCP ca. 50 Werte abfragen, welche von den Modbus-Adressen leider komplett verstreut sind.
Die Modbus-TCP Abfrage funktioniert jetzt einmal mit einem Wert.
Jetzt möchte ich die Parameter dynamisch aus einem DB auslesen und die gelesenen Werte in einen eigenen DB schreiben.
Dazu habe ich mir folgenden Ansatz überlegt.
Ich lege im DB ein Array [0..xx] of Datentyp_xx an.
Das sieht dann folgendermaßen aus:
Modubus_Abfrage[1]
-Modbus-Adresse (Int) 6722
-Länge (Int) 10
-Ziel-DB (Int) 100
-Adresse im Ziel-DB (Int) 2
Modubus_Abfrage[2]
-Modbus-Adresse (Int) 7822
-Länge (Int) 1
-Ziel-DB (Int) 100
-Adresse im Ziel-DB (Int) 22
Für den MB_Client möchte ich jetzt daraus die folgenden Parameter für zB. Modbus_Abfrage[1] generieren:
MB_DATA_ADDR = 6722
MB_DATA_LEN = 10
MB_DATA_PTR = DB100.DBX2.0
Mein Problem ist aktuell wie ich den Zeiger für den Datenpuffer aus 2 Int-Werten generieren kann
und in eine Variable setze, die ich dann an den MB_Client übergeben kann.
Hoffe ich konnte mein Problem halbwegs verständlich darstellen.
Gibt es eventuell einen viel eleganteren Ansatz um so etwas umzusetzen?
Danke für eure Unterstützung