Bit setzen in eine DB?.DBX?.? mit libnodave VB2010

youfyouk

Level-1
Beiträge
33
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe ein Problem, einfach Bit in eine DB zu schreiben.

Bei Äusgängen funktioniert es wunderbar.
Code:
'Ausgang A1.7 auf "1" setzen
'A1.7 = 8*1+7=15
res = daveWriteBits(dc, daveOutputs, 0, 15, 1, 1)
Laut Beschreibung soll es mit DB's genauso bzw. ähnlich gehen.
Code:
'DB2.DBX9.2 auf "1" setzen
'DB2.DBX9.2 = 8*9+2 = 74
res daveWriteBits(dc, daveDB, 2, 74, 1, 1)

Bei dem Ausgang hält und bleibt es "1", bis ein anderer Befehl kommt das es auf "0" gesetzt werden soll.
Bei dem DB wird es sofort (ich vermute ein Zyklus) wieder auf "0" gesetzt.
Weiß einer warum das so ist?

MfG
youfyouk
 
Zuletzt bearbeitet:
Bei dem DB wird es sofort (ich vermute ein Zyklus) wieder auf "0" gesetzt.
Vermutlich schreibt das SPS-Programm auch auf dieses Bit. Schau in das SPS-Programm.

Kannst Du die SPS ohne Gefahr in Stop setzen? Dann schreibt das Programm nicht mehr und Dein Schreiben sollte Bestand haben.
Oder suche Dir ein unbenutztes Bit für Deine Versuche.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Tipp.
So ein Problem hatte ich schoneinmal gehabt....Dumm!!!
Ein Kollege hat an der SPS rumgespielt. Habe nun den Fehler gefunden. S. Anhang

Fazit:
Die SPS (CPU) hat immer das vorrängige Recht zu schreiben.
Dann erst darf libnodave...
Betrifft eigentlich alles wie, Merker, Ein- und Ausgänge, DB's, etc.

MfG
youfyouk
 

Anhänge

  • FC8_NW12.JPG
    FC8_NW12.JPG
    73,9 KB · Aufrufe: 44
Zurück
Oben