Sinds een paar dagen ben ik begonnen met schrijven van een programma in FBD met tia. Nu tel ik hier twee waarden bij elkaar op die afkomstig zijn van twee analoge signalen die ik na dat ik ze verschaald heb en omgezet in REAL's. Nu laat ik deze waarden ook zien op een KTP400. Nu heb ik het volgende probleem of juist een uitdaging. In mijn I/O field krijg ik de bijvoorbeeld de volgende waarden 4.008 of bijvoorbeeld 4.009 maar wanneer deze waarde dan hoger wordt dan komt er te staan 4.01 en geen 4.010. Kan iemand mij vertellen wat er mis gaat.

Alvast vriendelijk bedankt voor de reacties.

Gebeurt dit niet al in de plc zelf ?
Volgens mij kun je in de TIA ook een format opgeven dus bv S9.999 of S99.999

In Wincc2008 flexible sp3 werkt dat in ieder geval wel.

[Bericht gewijzigd door Peter112 op (25%)]

Ik heb de s van signd er niet voor staan .

Dat zou niet uit moeten maken voor de cijfers na de komma.

Het probleem is ook eigenlijk meer voor de schoonheid. De berekeningen worden ook wel goed uitgevoerd. Ik vind het mooier als er bijvoorbeeld 4.010 in plaats van 4.01 . Als de uitkomst van de bijvoorbeeld onder de 4.01 is dan komt er keurig 4.009 te staan.

Hallo Nikola,

Kan het zijn dat het vakje waar de uitkomst staat te klein is.
Je kunt de ruimte iets groter trekken.

Heeft met het format te maken,
s is het teken (+/-)
9 is een optioneel cijfer, dwz voorloop en naloop nullen worden niet weergeven

Ik dacht dat 0 of 1 het format was wat altijd getoond wordt
Even 9.000 of 9.111 proberen bij format

Bestaat er geen truuk om die naaloop nullen toch weer te geven

Het zijn in iedergeval niet de optie leading zeroes .

http://www.uploadarchief.net/files/download/resized/real.png

zo zou het hoop ik toch ook in TIA werken

Zo gaat het ook ongeveer in ria. Maar het wegvallen van die laatste 0 gebeurt al eerder in mijn programma zie ik want daar valt die nul al af.

Ik denk dat ik het probleem al gevonden heb. In mijn programma maak ik gebruik van de ROUND functie in CALC met de volgende formule ROUND(IN1*IN2)/IN2. In deze functie wordt er afgerond naar het volgende getal.

Kun je van het getal geen tekst maken, dus een $tring met een vaste lengte?

Of gewoon niet afronden
Of voor afronden vermenigvuldigen met 1000 en omzetten naar dint.

In de hmi bepaal je dan de komma positie

[Bericht gewijzigd door Peter112 op (71%)]