TIA Anfänger, Frage zu Programmierbeispiel DataLogging

Saufautomat

Level-2
Beiträge
45
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo wertes Forum,

ich würde gerne Messwerte aufzeichnen. Ich habe das Programmierbeispiel von Siemens heruntergeladen:
https://support.industry.siemens.co...simatic-s7-1200-(data-logging)?dti=0&lc=de-WW
Es funktioniert:rolleyes:

Ich könnte jetzt die Bausteine in mein eigenes Projekt übertragen aber ich schreibe es lieber ab, um die Programmierung nachzuvollziehen.

Frage:
Warum geht der Programmierer mit #Mode nicht direkt auf den Eingang von DataLogOpen sondern schreibe den Wert erst in #tmp_Mode?
Unbenannt.jpg

Im Schnittstellenbereich ist
#Mode als Input und
#tmp_Mode als Static definiert.

Sonst kommt tmp_Mode gar nicht weiter vor im Programm.

Kann mir das jemand erklären?:confused:
 
Da werden unterschiedliche Datentypen benutzt, #Mode ist Bool und der Mode Eingang ist ein Integer.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das war auch mein Gedanke...
Unbenannt1.jpg
Als ich in der Hilfe geschaut habe, dachte ich, es wäre bool weil es nur zwei Modi gibt. Jetzt, als ich den Screenshot gemacht habe, sehe ich, dass es ein UInt ist. :oops: Damit wäre das Problem gelöst.
Warum aber hat Siemens das nicht als bool angelegt? Vielleicht damit noch mehr Modi ohne Kompatibilitätsgründen ergänzt werden können?
 
Das laesst den Entwicklern Raum fuer zukuenftige Updates / Aenderungen, kann auch auch nur eine persoenliche Note des Programmierers sein :).
 
Nicht "schön" bei dem Siemens-Beispiel: der Input #Mode wird mehrmals verwendet. Baustein-Inputs und -InOuts sollten generell nur einmal gelesen werden, und wenn mehrmals benötigt dann vorher umkopieren (nach Temp oder Static) und dann mit der Kopie arbeiten. Weil: bei Multitasking kann sich der Wert eines Input/Inout zwischen den Abfragen ändern.

Harald
 
Zurück
Oben