-> Hier kostenlos registrieren
Hallo zusammen,
ich bin noch recht neu im Umgang mit TIA und habe ein Problem bei meinem Projekt.
Hardware: S7 1214C
Aktuell ziehe ich aus verschiedenen Registern mit dem MB_Client (MB TCP) Baustein meine Daten. Diese Daten gehen in verschidene DBs und teilweise in UDTs.
Zum testen des auslesen der verschidenen Registern hab ich für jedes Register ein FC erstell.
Somit hab ich für jedes Register ein FC sowie ein DB in den die Daten gespeichert werden.
Ich hab einen dbConnect in dem die Verbindungsdaten (TCON_IP_v4) sind.
Nun wollte ich einen Baustein erstellen, der alle Register ausließt.
Hierzu war mein Gedanke den FC "leer" aufzurufen und die zu wechselnden Daten als IN/OUT zu deklarieren. Und für MB_MODE, MB_DATA_ADDR, MB_DATA_LEN & MB_DATA_PTR variablen zu deklarieren welche in einer Switch Case Anweisung passend zugewiesen werden.
Das Problem ist nun der MB_DATA_PTR. Für diesen muss ich ein Passende Variable deklarieren, passend bedeutet die Länge vom Array muss passen sowie der Datentyp.
Da meine DBs aber unterschidliche Längen und sogar Datentypen haben funktioniert diese leider nicht so einfach.
Hat hier jemand einen Vorschlag für mein Problem?
Ist meine Struktur einfach schon verkehrt?
Meine aktuelle Alternative ist ein Variables Array of Word zu nehmen und alle meine gelesenen Daten in Word zu speicher, diese dann mit einem Array[*] of Word zu übergeben und anschließend die "Rohdaten" in die Entsprechenden UTD's zu schieben (BLKMOVE?)
Grüße
ich bin noch recht neu im Umgang mit TIA und habe ein Problem bei meinem Projekt.
Hardware: S7 1214C
Aktuell ziehe ich aus verschiedenen Registern mit dem MB_Client (MB TCP) Baustein meine Daten. Diese Daten gehen in verschidene DBs und teilweise in UDTs.
Zum testen des auslesen der verschidenen Registern hab ich für jedes Register ein FC erstell.
Somit hab ich für jedes Register ein FC sowie ein DB in den die Daten gespeichert werden.
Ich hab einen dbConnect in dem die Verbindungsdaten (TCON_IP_v4) sind.
Nun wollte ich einen Baustein erstellen, der alle Register ausließt.
Hierzu war mein Gedanke den FC "leer" aufzurufen und die zu wechselnden Daten als IN/OUT zu deklarieren. Und für MB_MODE, MB_DATA_ADDR, MB_DATA_LEN & MB_DATA_PTR variablen zu deklarieren welche in einer Switch Case Anweisung passend zugewiesen werden.
Das Problem ist nun der MB_DATA_PTR. Für diesen muss ich ein Passende Variable deklarieren, passend bedeutet die Länge vom Array muss passen sowie der Datentyp.
Da meine DBs aber unterschidliche Längen und sogar Datentypen haben funktioniert diese leider nicht so einfach.
Hat hier jemand einen Vorschlag für mein Problem?
Ist meine Struktur einfach schon verkehrt?
Meine aktuelle Alternative ist ein Variables Array of Word zu nehmen und alle meine gelesenen Daten in Word zu speicher, diese dann mit einem Array[*] of Word zu übergeben und anschließend die "Rohdaten" in die Entsprechenden UTD's zu schieben (BLKMOVE?)
Grüße