SPS-in Ausnahmezustand

der_NooB

Level-2
Beiträge
131
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
hey,

ich bins wieder, anscheinend der Software mag mich nicht, könnt ihr mir sagen was da los ist ?
einfacher Programm wie wird es aussehen wenn es noch komplizierter wird :(
Könnt ihr mir vielleicht etwas empfehlen, wie Lernbriefe oder ähnliches, damit ich schneller auf euerem Wissensniveau kommen kann? ^_^
danke
 

Anhänge

  • 1.png
    1.png
    72,6 KB · Aufrufe: 81
Du hast zwei #DIV/0... hast Du beide geändert?
Und auch, wenn Du die Werte später von außen bekommst: Temperaturen und Gewichte können ja durchaus mal Null sein. Also muß man das abfangen, z.B. mit
IF Weight2 = 0 THEN .... ELSE [Deine Rechnung] END_IF
 

Anhänge

  • 1.png
    1.png
    52,9 KB · Aufrufe: 31
  • 1.png
    1.png
    40,4 KB · Aufrufe: 31
Zuviel Werbung?
-> Hier kostenlos registrieren
Check-Function - habe das Video mal für TwinCAT gemacht. Bin aber überfragt ob das auch für CoDeSys im Original passt.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.
 
Offtopic "Typkonvertierung":
Außerdem noch ein Anmerkung zur Typkonvertierung aus Deinem anderen Thread:
Du macht jetzt eine explizite Konvertierung von INT auf DINT.
Da Du am Ende aber *100.0 rechnest - wobei 100.0 eine REAL-Zahl ist - wird Dein DINT implizit dann wieder von DINT auf REAL konvertiert.
Es wird immer (implizit) auf den "größten" Datentypen innerhalb der Formel (nicht die Zielvariable!) konvertiert.
Wenn Du also mit DINT rechnen möchtest, lösche bitte das .0 hinter der 100 weg.
INT und DINT sind Festkommazahlen: Sie können kein Komma darstellen, repräsentieren ausschließlich Ganz-Zahlen.
REAL ist eine Fließkommazahl.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe den Wert auf 1 installiert, jetzt funktioniert es. Aber für den Fall, dass der Wert 0 ist, fügt ihr immer ein IF...Then hinzu, um sicherzustellen, dass es nicht abstürzt, so wie bei mir, richtig?"
Entweder stellen wir sicher, daß die Werte niemals 0 sein können, oder bei der Berechnung muß man das Berücksichtigen.
Alternativ kannst Du die CheckDiv-Funktionen aus #11 und #12 nutzen.
 
Check-Function - habe das Video mal für TwinCAT gemacht. Bin aber überfragt ob das auch für CoDeSys im Original passt.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.
Hab mal kurz in Dein Video gelinst: Danke für den Beitrag.
Zwei Anmerkungen:
Auch ich würde erwarten, daß die Funktionen Einfluß auf die Performance haben, da sie teilweise sehr häufig aufgerufen werden.
Ich würde hier aber keine CPU-Last erwarten (ist ja nicht aufwändig), sondern eher eine Zykluszeiterhöhung. Und die meine ich bei CheckBounds auch schon beobachtet zu haben, hab das nur die dokumentiert.
Man muß die Funktionen ja auch nicht "rauslöschen". Wenn ich sie einmal implementiert habe und dann fertig bin, mache ich einen Rechtsklick auf die Funktion und sage "Von Übersetzen ausschließen". Dann hat man sie immer noch drin, kann sie jederzeit reaktivieren, hat sie aber aus der aktiven Bearbeitung rausgenommen.
 
Zurück
Oben