Hallo Leute, :)
Höchstwahrscheinlich wir das jetzt für die meisten von euch ein Kinderspiel zum Beantworten. Zu meiner Verteidigung beschäftige ich mich aber erst 2 Wochen mit Steuerungen (SPS) und programmieren im allgemeinen^^
Nun zum eigentlichen Problem:
Bei der Berechnung des Steuerwinkels eines Solartrackerst kommt je nach Azimuthwinkel und Tageszeit ein negativer Wert heraus. Ist dies der fall, so muss der wert mit 180 addiert werden. Wie kann ich das in mein Programm integrieren?
(codesys/Fup oder St)
Ich hab das ganze mit LT und GT Bausteinen gelöst und mit einen Funktionsblock auswerten lassen. Jetzt habe ich meine beiden Werte (einmal nur der Steuerwinkel und einmal der Steuerwinkel+180) jedoch weis die Steuerung nicht welchen der beiden werte sie für Steuerwinkel_angepasst verwenden soll, da ich nicht auf einen Ausgang 2 eingänge setzen kann, bei dem nur einer True ist und nur dieser ausgelesen wird.
Mit einer If oder Case Funktion müsste das doch leicht zu machen sein oder?
Ich hab aber keine Ahnung wie ich das richtig hin bekomme :confused:
Mein Ansatz wäre:
Steuerwinkel:Real;
Steuerwinkel_angepasst:Real;
If Steuerwinkel <0 Then;
Steuerwinkel_angepasst := Steuerwinkel + 180;
Else Steuerwinkel_angepasst := Steuerwinkel
End_If
Danke im Voraus für eure Unterstützung
Der Salzburger
Höchstwahrscheinlich wir das jetzt für die meisten von euch ein Kinderspiel zum Beantworten. Zu meiner Verteidigung beschäftige ich mich aber erst 2 Wochen mit Steuerungen (SPS) und programmieren im allgemeinen^^
Nun zum eigentlichen Problem:
Bei der Berechnung des Steuerwinkels eines Solartrackerst kommt je nach Azimuthwinkel und Tageszeit ein negativer Wert heraus. Ist dies der fall, so muss der wert mit 180 addiert werden. Wie kann ich das in mein Programm integrieren?
(codesys/Fup oder St)
Ich hab das ganze mit LT und GT Bausteinen gelöst und mit einen Funktionsblock auswerten lassen. Jetzt habe ich meine beiden Werte (einmal nur der Steuerwinkel und einmal der Steuerwinkel+180) jedoch weis die Steuerung nicht welchen der beiden werte sie für Steuerwinkel_angepasst verwenden soll, da ich nicht auf einen Ausgang 2 eingänge setzen kann, bei dem nur einer True ist und nur dieser ausgelesen wird.
Mit einer If oder Case Funktion müsste das doch leicht zu machen sein oder?
Ich hab aber keine Ahnung wie ich das richtig hin bekomme :confused:
Mein Ansatz wäre:
Steuerwinkel:Real;
Steuerwinkel_angepasst:Real;
If Steuerwinkel <0 Then;
Steuerwinkel_angepasst := Steuerwinkel + 180;
Else Steuerwinkel_angepasst := Steuerwinkel
End_If
Danke im Voraus für eure Unterstützung
Der Salzburger