-> Hier kostenlos registrieren
Hallo Forum,
ich arbeite mit einer S7 416-3DP in der Classic Welt und muss eine Kommunikation mit einem Generator schreiben. Dabei hat der Generator 26 Eingangsbytes und 26 Ausgangsbytes. Die Kommunikation läuft über Profibus DP. In den ersten Bytes sind Sollwerte und Istwerte enthalten die ich in einen Datenbaustein zwischenspeichere und dann visualisiere. Soweit kein Problem.
Aber: Es gibt ein Befehlswort mit dem man Parameter lesen und Schreiben kann. In den Parameter liegen zB mehrere Counter die permanent gelesen werden müssen. Sodass immer ca 50 Parameter gelesen werden müssen. Man kann entweder Lesen oder Schreiben. Weiterhin soll man Parametersätze schreiben können. Das Schreiben funktioniert so das man das Befehlswort (1Word also 2 bytes) und die zu senden Daten in 4 bytes auf die entsprechenden Ausgänge legt. Dann antwortet der Generator mit dem Befehlswort und den Daten plus einem ReturnCode (0 ok, 1 Fehler. Somit könnte man beim Senden einen Handshake schreiben. Das Lesen funktioniert genauso.
Mein Problem ist jetzt das man auch fast 50 Parameter Schreiben kann. Viele Daten davon sollen auch aus der Visualisierung heraus gleichzeitig geschrieben werden.
Die Frage ist: Wie gehe ich da ran? Klar ist, das es eine Auswahl zwischen schreiben und lesen geben muss. Aber ist es clever immer alle Parameter zu schreiben? Ich würde dann ein Datenbaustein schreiben und dort das Befehlswort und die zu schreibenden Daten ablegen und dann pro SPS Zyklus ein Parametersatz weiterrutschen. Das würde bedeuten dass der Schreibbefehl sowie der Lesebefehl wenigstens 50 Zyklen braucht. Natürlich könnte man auch einen zweiten DB schreiben den ich mit dem DB der von der Visualisierung geschrieben wird vergleiche und dann nur die geänderten Parameter schreibe. Da wüsste ich allerdings nicht, wie ich die Auswahl der Parametersätze an den Schreibbefehl übergebe. Könnt ihr mich da irgendwie in die richtige Richtung bringen?
ich arbeite mit einer S7 416-3DP in der Classic Welt und muss eine Kommunikation mit einem Generator schreiben. Dabei hat der Generator 26 Eingangsbytes und 26 Ausgangsbytes. Die Kommunikation läuft über Profibus DP. In den ersten Bytes sind Sollwerte und Istwerte enthalten die ich in einen Datenbaustein zwischenspeichere und dann visualisiere. Soweit kein Problem.
Aber: Es gibt ein Befehlswort mit dem man Parameter lesen und Schreiben kann. In den Parameter liegen zB mehrere Counter die permanent gelesen werden müssen. Sodass immer ca 50 Parameter gelesen werden müssen. Man kann entweder Lesen oder Schreiben. Weiterhin soll man Parametersätze schreiben können. Das Schreiben funktioniert so das man das Befehlswort (1Word also 2 bytes) und die zu senden Daten in 4 bytes auf die entsprechenden Ausgänge legt. Dann antwortet der Generator mit dem Befehlswort und den Daten plus einem ReturnCode (0 ok, 1 Fehler. Somit könnte man beim Senden einen Handshake schreiben. Das Lesen funktioniert genauso.
Mein Problem ist jetzt das man auch fast 50 Parameter Schreiben kann. Viele Daten davon sollen auch aus der Visualisierung heraus gleichzeitig geschrieben werden.
Die Frage ist: Wie gehe ich da ran? Klar ist, das es eine Auswahl zwischen schreiben und lesen geben muss. Aber ist es clever immer alle Parameter zu schreiben? Ich würde dann ein Datenbaustein schreiben und dort das Befehlswort und die zu schreibenden Daten ablegen und dann pro SPS Zyklus ein Parametersatz weiterrutschen. Das würde bedeuten dass der Schreibbefehl sowie der Lesebefehl wenigstens 50 Zyklen braucht. Natürlich könnte man auch einen zweiten DB schreiben den ich mit dem DB der von der Visualisierung geschrieben wird vergleiche und dann nur die geänderten Parameter schreibe. Da wüsste ich allerdings nicht, wie ich die Auswahl der Parametersätze an den Schreibbefehl übergebe. Könnt ihr mich da irgendwie in die richtige Richtung bringen?