-> Hier kostenlos registrieren
Hallo,
ich habe Heute mit einer Visualisierung mit VB6 und ACCON-AGLink 3.6 begonnen.
Ich verbinde mich im Moment erfolgreich mit dem OPC-Server und kann auch die SPS Stoppen und wieder Starten sowie Ausgangsbytes setzen!
Wenn ich jetzt jedoch einzelne Bits abfragen möchte, so habe ich damit keinen Erfolg.
Ich lese als erstes das ganze Byte ein, lade es in einen Buffer und greife dann mit dem Bitbefehl auf den Buffer zu.
Nur das geht nicht, wenn ich den Wert anzeigen lasse steht dort eine 4 und mit jedem Klick auf die Anzeige erhöht sich dieser :?:
Ich bin im Moment soweit das ich als erstes das ganze Byte einlesen muss um dann auf die Bits zuzugreifen, da man ja keinen direkten Bitzugriff machen kann, da der Befehl ja nicht zwischen Eingang und Ausgang unterscheiden kann.
Nur wie genau geht das?
Mein Beispiel lautet wie folgt das nicht funktionieren will:
Hierbei erwarte ich nun das das gesammte Eingangsbyte 64 eingelesen wird in das Byte Buff.
Mit dem nächsten Befehl möchte ich nun als das 0. Bit des Eingangsbytes 64 auslesen...
Nun greife ich mittels AGLGetBit(Buff, BitNr) auf das Bit zu und es passiert oben beschriebenes, es erscheint in der Textanzeige der Wert 4 der mit jedem Klick erhöht wird :?
Ich benötige den Bitzugriff, da ich in meinem Programm jede Sekunde den Status anzeigen lassen möchte der E/A's...
Gruss,
Michael
ich habe Heute mit einer Visualisierung mit VB6 und ACCON-AGLink 3.6 begonnen.
Ich verbinde mich im Moment erfolgreich mit dem OPC-Server und kann auch die SPS Stoppen und wieder Starten sowie Ausgangsbytes setzen!
Wenn ich jetzt jedoch einzelne Bits abfragen möchte, so habe ich damit keinen Erfolg.
Ich lese als erstes das ganze Byte ein, lade es in einen Buffer und greife dann mit dem Bitbefehl auf den Buffer zu.
Nur das geht nicht, wenn ich den Wert anzeigen lasse steht dort eine 4 und mit jedem Klick auf die Anzeige erhöht sich dieser :?:
Ich bin im Moment soweit das ich als erstes das ganze Byte einlesen muss um dann auf die Bits zuzugreifen, da man ja keinen direkten Bitzugriff machen kann, da der Befehl ja nicht zwischen Eingang und Ausgang unterscheiden kann.
Nur wie genau geht das?
Mein Beispiel lautet wie folgt das nicht funktionieren will:
Code:
Dim DevNr as Long
Dim PLCNr as Long
Dim Start as Long
Dim Num as Long
Dim Buff as Byte
Dim boWait as Long
Dim BitNr as Long
DevNr = 0
PLCNr = 1
Start = 64
Num = 1
Buff = 0
boWait = 1
BitNr = 0
txtStatus.text = AGLReadInBytes( DevNr, PLCNr, Start, Num, Buff, boWait)
Hierbei erwarte ich nun das das gesammte Eingangsbyte 64 eingelesen wird in das Byte Buff.
Mit dem nächsten Befehl möchte ich nun als das 0. Bit des Eingangsbytes 64 auslesen...
Nun greife ich mittels AGLGetBit(Buff, BitNr) auf das Bit zu und es passiert oben beschriebenes, es erscheint in der Textanzeige der Wert 4 der mit jedem Klick erhöht wird :?
Ich benötige den Bitzugriff, da ich in meinem Programm jede Sekunde den Status anzeigen lassen möchte der E/A's...
Gruss,
Michael