-> Hier kostenlos registrieren
Hallo Leute,
in letzter Zeit sind im Rahmen meiner Stduienprojekte einige Fragen zum Thema Kommunikation SPS<->WinPC via ADS (genauer c++ via ads-dll zu CX9000) aufgekommen, auf die ich im Beckhoff InfoSys keine Antwort gefunden habe, trotz Durcharbeiten der kompletten ADS-Kapitel.
Wie sind eure Erfahrungen zu den folgenden Fragen bzw. habt ihr Links zu entsprechendem Nachschlagewerk?
-Wie wird die Datenintegrität beim synchronen Lesen z.B. mit adssyncread gehandhabt? kann es z.b. passieren dass während des Lesens eines großen Arrays das SPS-Programm Teile davon überschreibt? Synchrones lesen deutet an dass nicht, wie es aber genau umgesetzt ist habe ich nirgends gefunden. Bekommt man den Stand vom Zyklusanfang? Gleiches beim Schreiben via adssyncwrite: kann es passieren dass man Stellen überschreibt die das SPS-Programm gerade liest? Quellen wären super.
-Wie viele Notifications kann die SPS pro Zyklus senden? Wenn ich den Modus auf onChange und die maxcycletime auf 0 setze, kann ich dann mehrere Notifications pro Zyklus auslösen oder nur einen am Ende des Zykluses? Habs mal aus Interesse ausprobiert, die Ergebnisse waren aber eher kryptisch. Manchmal kam eine Notification, mal zwei aber mit dem gleichen Wert obwohl eigentlich inkrementiert worden sein sollte, 3 Notifications hab ich bei 4ms Zykluszeit noch nie erhalten. Das Windows keine 4ms schafft weis ich, deshalb wurden nur auf Knopfdruck einen Zyklus lang 5 Notifications erzeugt. Bei einer Sekunde maxdelay sollte das also nicht das Problem sein.
Für Hinweise wäre ich wirklich dankbar, Lösungen ohne wirkliche Funktionsgarantie liegen schwer im Magen.
Danke im Voraus,
viele Grüße
Chili
in letzter Zeit sind im Rahmen meiner Stduienprojekte einige Fragen zum Thema Kommunikation SPS<->WinPC via ADS (genauer c++ via ads-dll zu CX9000) aufgekommen, auf die ich im Beckhoff InfoSys keine Antwort gefunden habe, trotz Durcharbeiten der kompletten ADS-Kapitel.
Wie sind eure Erfahrungen zu den folgenden Fragen bzw. habt ihr Links zu entsprechendem Nachschlagewerk?
-Wie wird die Datenintegrität beim synchronen Lesen z.B. mit adssyncread gehandhabt? kann es z.b. passieren dass während des Lesens eines großen Arrays das SPS-Programm Teile davon überschreibt? Synchrones lesen deutet an dass nicht, wie es aber genau umgesetzt ist habe ich nirgends gefunden. Bekommt man den Stand vom Zyklusanfang? Gleiches beim Schreiben via adssyncwrite: kann es passieren dass man Stellen überschreibt die das SPS-Programm gerade liest? Quellen wären super.
-Wie viele Notifications kann die SPS pro Zyklus senden? Wenn ich den Modus auf onChange und die maxcycletime auf 0 setze, kann ich dann mehrere Notifications pro Zyklus auslösen oder nur einen am Ende des Zykluses? Habs mal aus Interesse ausprobiert, die Ergebnisse waren aber eher kryptisch. Manchmal kam eine Notification, mal zwei aber mit dem gleichen Wert obwohl eigentlich inkrementiert worden sein sollte, 3 Notifications hab ich bei 4ms Zykluszeit noch nie erhalten. Das Windows keine 4ms schafft weis ich, deshalb wurden nur auf Knopfdruck einen Zyklus lang 5 Notifications erzeugt. Bei einer Sekunde maxdelay sollte das also nicht das Problem sein.
Für Hinweise wäre ich wirklich dankbar, Lösungen ohne wirkliche Funktionsgarantie liegen schwer im Magen.
Danke im Voraus,
viele Grüße
Chili