Majestic_1987
Level-1
- Beiträge
- 270
- Reaktionspunkte
- 22
-> Hier kostenlos registrieren
Hallo Leute.
Nachdem ich mich nun mal ein wenig in VB2008 eingearbeitet habe möchte ich eine Visualisierung für ein SPS-Programm schreiben.
Toll: Die ADS-OCX ist in Twincat ja schon integriert.
Nicht Toll: Offenbar ist das Information-System hier komplett veraltet.
Aber von vorne.
Synchrones Lesen aus der SPS habe ich halbwegs hinbekommen. Aber jetzt möchte ich ereignisgesteuert Lesen, wenn sich ein Wert in der SPS ändert.
Info-Sys sagt dazu beim Aufruf der AdsReadVarConnectEx:
Wobei, laut dieser Definition:
1. Parameter = Variablenname als String (OK)
2. Parameter = Art des Datenaustauschs (auch OK)
3. Parameter = Lesezyklus in ms (soweit klar)
4. Parameter = Eindeutiger Handle für die Verbindung (auch klar, dazu hab ich dann ein Array)
der 5. Parameter ist Optional und stellt einen Übergabewert an die bei Änderung aufgerufene Methode AdsReadConnectUpdateEx dar.
Soweit, so gut. ABER wenn ich die Methode AdsReadVarConnectEx() aufrufe sagt mir Intellisense:
1. Parameter: Variablenname als String
2. Parameter: cbLength as Integer (???????)
3. Parameter: Art des Datenaustauschs
4. Parameter: Lesezyklus in ms
5. Parameter: var as Object
SO! Wo ist jetzt mein Handle hin? Im Beispiel oben ist das ja hConnect(0)...und jetzt kann ich es hier nirgendwo mehr eintragen.
Und was gehört in die cbLength? und ist "var as object" mein übergabewert, an welchem ist festmache welches Objekt meine UpdateEx-Methode anfasst?
Vielleicht ist hier ein schlauer Kopf, der mir hier weiterhelfen kann, ich werde nicht schlau daraus..erst recht nicht daraus, dass es hier offenbar 2 verschiedene Varianten gibt..die reale und die aus dem Info-Sys.
Ach ja: Returncode der ConnectEx() ist 1857 -> invalid parameter at service
Vielleicht sagt das ja jemandem hier mehr, als mir. Dass mit den Parametern was nicht stimmt war mir ja auch schon fast klar ;-)
Danke im Voraus.
Nachdem ich mich nun mal ein wenig in VB2008 eingearbeitet habe möchte ich eine Visualisierung für ein SPS-Programm schreiben.
Toll: Die ADS-OCX ist in Twincat ja schon integriert.
Nicht Toll: Offenbar ist das Information-System hier komplett veraltet.
Aber von vorne.
Synchrones Lesen aus der SPS habe ich halbwegs hinbekommen. Aber jetzt möchte ich ereignisgesteuert Lesen, wenn sich ein Wert in der SPS ändert.
Info-Sys sagt dazu beim Aufruf der AdsReadVarConnectEx:
Code:
AdsOcx1.AdsReadVarConnectEx(".PLCVarBoolean", ADSTRANS_SERVERONCHA, 100, hConnect(0), lblBoolean)
1. Parameter = Variablenname als String (OK)
2. Parameter = Art des Datenaustauschs (auch OK)
3. Parameter = Lesezyklus in ms (soweit klar)
4. Parameter = Eindeutiger Handle für die Verbindung (auch klar, dazu hab ich dann ein Array)
der 5. Parameter ist Optional und stellt einen Übergabewert an die bei Änderung aufgerufene Methode AdsReadConnectUpdateEx dar.
Soweit, so gut. ABER wenn ich die Methode AdsReadVarConnectEx() aufrufe sagt mir Intellisense:
1. Parameter: Variablenname als String
2. Parameter: cbLength as Integer (???????)
3. Parameter: Art des Datenaustauschs
4. Parameter: Lesezyklus in ms
5. Parameter: var as Object
SO! Wo ist jetzt mein Handle hin? Im Beispiel oben ist das ja hConnect(0)...und jetzt kann ich es hier nirgendwo mehr eintragen.
Und was gehört in die cbLength? und ist "var as object" mein übergabewert, an welchem ist festmache welches Objekt meine UpdateEx-Methode anfasst?
Vielleicht ist hier ein schlauer Kopf, der mir hier weiterhelfen kann, ich werde nicht schlau daraus..erst recht nicht daraus, dass es hier offenbar 2 verschiedene Varianten gibt..die reale und die aus dem Info-Sys.
Ach ja: Returncode der ConnectEx() ist 1857 -> invalid parameter at service
Vielleicht sagt das ja jemandem hier mehr, als mir. Dass mit den Parametern was nicht stimmt war mir ja auch schon fast klar ;-)
Danke im Voraus.
Zuletzt bearbeitet: