-> Hier kostenlos registrieren
Hallo Zusammen,
für die persönliche Weiterbildung beschäftige ich mich aktuell mit der Programmierung mit TwinCAT 3 (verwendete Version: 3.1.4018.5)
Für ein persönliches Projekt möchte ich die TcAdsDll.dll verwenden, um eigene Programme in Visual C++ (VisualStudio2013, Update5) schreiben zu können, die mit TwinCAT über Ads kommunizieren.
Dazu habe ich mich zunächst der Beckhoff eigenen Beispiele mit Visual-C++ angenommen.
Bereits die Beispiele 2 und 3 bereiten mir dabei Probleme, die ich mir nicht erklären kann.
Ich möchte in der PLC1 (Port851) das Merkerdoppelwort an der Adresse 0 beschreiben und lesen. Dazu habe ich dieses Merkerdoppelwort in der PLC angelegt (MerkerDoppelWort1 AT%MD0: DWORD und die PLC gestartet.
Möchte ich nun mithilfe des Beispiels 2 dieses Merkerdoppelwort beschreiben (IDGroup 0x4020, IDOffset 0x0, Länge 0x4), kann ich die Änderung des Merkerdoppelworts in der PLC nicht sehen.
Das angelegte Beispiel 2 läuft jedoch ohne Fehlermeldung durch. Komisch ist auch, dass ich mit Beispiel 3 die mit Beispiel 2 geschriebene Information lesen kann.
Dementsprechend tippe ich, dass Beispiel 2 etwas in einen Adressbereich schreibt, der jedoch nichts mit der Adresse 0 zu tun hat, obwohl ich die Adresse eigentlich korrekt anspreche (IDGroup 0x4020, IDOffset 0x0, Länge 0x4).
Versuche ich in der PLC über den FB "ADSREAD" das Merkerdoppelwort auszulesen, gelingt dies auch nicht. Ich kann wieder nur den mit Beispiel 2 geschriebenen Wert lesen.
Ich bedanke mich schonmal für die Hilfe.
Sollten noch weitere Informationen benötigt werden, lasst es mich wissen.
Mit freundlichen Grüßen
Redria
EDIT:
Habe jetzt herausgefunden, dass die Merkeradressen bei IndexOffset 0x10 beginnen. (D.h., "MerkerDoppeltWort1 AT %D0: DWORD;" besitzt die IndexGroup 0x4020 und den Indexoffset 0x10)
Woran kann das liegen? Nach Beckhoff Infosys müssten die Merkeradresse bei IndexOffset 0x0 beginnen und dann hochzählen.
für die persönliche Weiterbildung beschäftige ich mich aktuell mit der Programmierung mit TwinCAT 3 (verwendete Version: 3.1.4018.5)
Für ein persönliches Projekt möchte ich die TcAdsDll.dll verwenden, um eigene Programme in Visual C++ (VisualStudio2013, Update5) schreiben zu können, die mit TwinCAT über Ads kommunizieren.
Dazu habe ich mich zunächst der Beckhoff eigenen Beispiele mit Visual-C++ angenommen.
Bereits die Beispiele 2 und 3 bereiten mir dabei Probleme, die ich mir nicht erklären kann.
Ich möchte in der PLC1 (Port851) das Merkerdoppelwort an der Adresse 0 beschreiben und lesen. Dazu habe ich dieses Merkerdoppelwort in der PLC angelegt (MerkerDoppelWort1 AT%MD0: DWORD und die PLC gestartet.
Möchte ich nun mithilfe des Beispiels 2 dieses Merkerdoppelwort beschreiben (IDGroup 0x4020, IDOffset 0x0, Länge 0x4), kann ich die Änderung des Merkerdoppelworts in der PLC nicht sehen.
Das angelegte Beispiel 2 läuft jedoch ohne Fehlermeldung durch. Komisch ist auch, dass ich mit Beispiel 3 die mit Beispiel 2 geschriebene Information lesen kann.
Dementsprechend tippe ich, dass Beispiel 2 etwas in einen Adressbereich schreibt, der jedoch nichts mit der Adresse 0 zu tun hat, obwohl ich die Adresse eigentlich korrekt anspreche (IDGroup 0x4020, IDOffset 0x0, Länge 0x4).
Versuche ich in der PLC über den FB "ADSREAD" das Merkerdoppelwort auszulesen, gelingt dies auch nicht. Ich kann wieder nur den mit Beispiel 2 geschriebenen Wert lesen.
Ich bedanke mich schonmal für die Hilfe.
Sollten noch weitere Informationen benötigt werden, lasst es mich wissen.
Mit freundlichen Grüßen
Redria
EDIT:
Habe jetzt herausgefunden, dass die Merkeradressen bei IndexOffset 0x10 beginnen. (D.h., "MerkerDoppeltWort1 AT %D0: DWORD;" besitzt die IndexGroup 0x4020 und den Indexoffset 0x10)
Woran kann das liegen? Nach Beckhoff Infosys müssten die Merkeradresse bei IndexOffset 0x0 beginnen und dann hochzählen.
Zuletzt bearbeitet: