Ziffer in DINT nullen

plc_typ

Level-2
Beiträge
215
Reaktionspunkte
30
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen,
ich möchte aus einem Dint mit beliebigen wert die ersten 3 stellen Nullen
zB.
aus: L#134682 soll L#134000 werden
wie stell ich das am besten an, hab mir schon den Kopf dran zerbrochen,
ich glaub ich seh den wald vor lauter bäumen nicht :/ .


Danke und Gruß
 
@Dr.M:
das ist nicht so ganz das, was der TE haben wollte. Hast du deinen Code mal gegen-gecheckt und dir vergegenwärtigt, was er macht ? SRD 3 ist das gleiche wie "geteilt durch 8".
Der Beitrag von Boxhead ist schon so korrekt ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, damit gehts auch

SRD3
SLD3
Oh, da kommt aber ein völlig anderes Ergebnis als gewollt bei 'raus, wenn man nur durch 8 teilt, den Divisionsrest
wegwirft und dann wieder mit 8 multipliziert. Das passt selbst in hexadezimal-Darstellung nicht zur Aufgabenstellung.

Übrigens kann man solche Tipps vor Veröffentlichung auch mal kurz in PLCSIM testen. ;)

PS: LL war natürlich schneller - wie fast immer.

Harald
 
Dual gedacht?

Wenn plc_typ gefragt hätte: "aus DW#2#10001111 soll DW#2#10001000 werden", dann würde der Tipp von Dr.M prima passen.
Doch leider wollte plc_typ Dezimalziffern entfernen und keine Dualziffern ...

Harald
 
L#134682 soll L#134000 werden

Nicht L#135000 ? Also, mit Rundung ?

Ohne Rundung ist volgenes korrekt:
Code:
      L     "original_DINT"
      L     L#1000
      /D    
      L     L#1000
      *D    
      T     "modded_DINT"

Mit Rundung ist volgenes korrekt:
Code:
      L     "original_DINT"
      DTR   
      L     1.000000e+003
      /R    
      RND   
      L     L#1000
      *D    
      T     "modded_DINT
 
Zurück
Oben