Step 7 MOD- Funktion - wo ist mein Denkfehler ?

mega_ohm

Level-2
Beiträge
883
Reaktionspunkte
93
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
aus eine REAL- Zahl möchte ich den Minuten / Sekunden- Teil berechnen.

Code:
//    L   DB  1.SOLL_Prod_m_s
//    L   DB  1.IST_Prod_m_s
//      -R
//      L   DB  1.V_Soll_m
//      /R
      L   1.300000e+002       // Für Test = Konstante gesetzt
      T   DB  1.ZwErg         // ZwErg = ZwischenErgebnis
      L   6.000000e+001
      /R
      TRUNC
      DTR
      T   DB  1.Ges_ProdZeit_min_sec// <-- bis hier ist noch alles Ok
      L   DB  1.ZwErg
      L   6.000000e+001
      MOD
      T   "Test"              // "Test" gesetzt, um das Ergebnis der MOD- Funktion zu prüfen   <--  HIER passt nix mehr, ich hätte als Ergebnis =  1.000000e-001 erwartet
//     T   DB  1.ZwErg
//      L   DB  1.Ges_ProdZeit_min_sec
//      +R
//      T   DB  1.Ges_ProdZeit_min_sec

In EXCEL (Funktion = REST(;) sieht das aus, als würde es funktionieren.

Für's Erste wäre ich schon froh, wenn aus 130,0 (sec) = 2 Minuten (GanzZahl vor dem Komma ) und 0,1 (10 sec Nachkomma ) --> 2,1 würden.

Irgendwie sehe ich grad' den Wald vor Bäumen nicht.
Die MOD- Funktion liefert immer = 0.0

Wo ist der Fehler ?

Vielen Dank im Voraus

Mfg Mega_Ohm
 
MOD- Funktion - wo ist mein Denkfehler ?
Das ist kein Denkfehler, sondern ein RTFM-Fehlen: ;)

SCL:
Im folgenden Beispiel ist eine explizite Datentyp-Konvertierung notwendig, da der
Datentyp REAL für einen arithmetischen Ausdruck mit der Operation MOD nicht
zulässig ist
:

ST, CodeSys 2.3:
Modulo Division einer Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT,
UDINT
durch eine andere Variable von einem dieser Typen. Als Ergebnis liefert diese Funktion den
ganzzahligen Rest der Division.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
vielen Dank für die schnelle Hilfe.

Es war der Wald mit den Bäumen - woran es bei mir scheiterte. 😉

Der Hinweis auf die MOD- Funktion
"Division einer Variablen vom Typ BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT durch eine andere Variable
von einem dieser Typen. Als Ergebnis liefert diese Funktion den ganzzahligen Rest der Division" zeigte mir den Denkfehler auf.

Der Tipp von Onkel Dagobert war der hilfreichste.

Mfg Mega_Ohm
 
Zurück
Oben