2 UDT´s in Datenbaustein vergleichen

odehnert

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe folgendes Problem ich will in einem Datenbaustein zwei UDT vergleichen, diese sind auch Identisch, es geht bei mir darum das in dem einem UDT Schreibdaten stehen und in dem anderen Lesedaten.
Die Daten die verglichen werden sollen setzten sich zusammen aus Strings, DINT, INT, BOOL und aus DATE AND TIME.

Es wäre ein Baustein gut wo ich einfach den DB anlege und ich dann sagen kann welche beiden UDT´s er vergleichen soll.

z.B
DB 149
Adressbegin UDT 1000 200 Schreibdaten
Adressbegin UDT 1000 400 Lesedaten

Es wäre schön wenn mir jemand helfen könnte.

mfg
 
.
Wenn deine UDt´s und damit deine beiden Bereiche im DB gleich sind, lasse doch einfach eine COMPARE-Schleife darüberlaufen.

Z.B. UDT 1 = DBW 200 ... DBW 398 und UDT 2 = DBW 400 ... DBW 598

Also DBW 200 mit DBW 400 vergleichen
DBW 202 mit DBW 402 vergleichen usw.

Wenn der Vergleich bei einem Wort als UNGLEICH endet, setzt du dir einen Meldeindikator.
 
Zuletzt bearbeitet:
Hallo,
als erstes liest du dir mal den Beitrag durch : http://www.sps-forum.de/showthread.php/8887-Pointer-Zeiger-FIFO-LIFO
Dann solltest du die Foren-Suche nach indirekter Adressierung bemühen.
Das schon mal um die Grundlagen zu erhalten. Dazu kannst du dann bei Bedarf explizit fragen.

Grundsätzlich geht es so :
Du willst den Vergleich z.B. Wortweise durchführen.
Du bildest dir einen Zeiger auf das erste zu lesende Wort. Nun liest du die Variable an Zeiger-Position in eine Zwischen-Variable ein. Du bildest dir einen zweiten Zeiger für das zu vergleichende Wort. Auch hiervon liest du die Variable an Zeiger-Position in eine Zwischen-Variable ein. Nun vergleichst du die beiden Zwischen-Variablen - bei Gleichheit ist alles gut - bei Ungleichheit brauchst du im grunde jetzt nun nicht mehr weitermachen ...
Weitermachen wäre nun :
Beide gebildeten Pointer um eine Wortbreite erhöhen und den Schleifenzähler um 1 erhöhen. Ist der Schleifenzähler >= des max. Vergleichsbereichs dann Ende und gut - sonst weiter mit Variablen an zeiger-Position einlesen und die Vergleichen ...

Traust du dir das zu ?

Weitere Frage : wäre ggf. SCL für dich hier ein Thema ? Damit wäre es um Vieles leichter, das zu realisieren ...

Gruß
Larry
 
Zurück
Oben