Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Probleme mit der REAL_TO_INT Funktion

  1. #11
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Zottel Beitrag anzeigen
    0.1 = 1/10 ist im Zweiersystem eine nicht abbrechende Dezimalzahl: 0,000011001100110011....
    Da die Länge der Mantisse begrenzt ist, kann 0.1 einfach nicht exakt dargestellt werden, genauso wenig wie 1/3 oder 1/7 im Zehnersystem.
    Danke für das Beispiel. So in etwa meinte ich das

    Für Details schaut mal in Lehrbücher zu Grundlagen der Informatik. Hängt alles von der internen Abbildung der Zahlen ab.
    Ich versuche immer wo es geht ganzzahlige Datentypen zu verwenden (z.B. DINT), um eben solchen Problematiken aus dem Weg zu gehen.

  2. Folgender Benutzer sagt Danke zu trinitaucher für den nützlichen Beitrag:

    Superfly (14.05.2008)

  3. #12
    Registriert seit
    09.01.2008
    Beiträge
    85
    Danke
    5
    Erhielt 13 Danke für 12 Beiträge

    Standard

    Hallo Leute,

    das Ganze geht auch viel einfacher. Nutz einfach die Funktion LREAL_TO_FMTRSTRING. Damit wird die Variable in einen definierten Zustand gebracht. Die Zahl in den Parametern gibt die Anzahl der Nachkommastellen an, und die boolsche Variable gibt an ob die letzte Ziffer gerundet werden soll.

    Beispiel:
    sErgebnis := LREAL_TO_FMTRSTRING(rMesswert, 4, TRUE);


    Gruß Benjamin

  4. #13
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    @Scrat
    sErgebnis := LREAL_TO_FMTRSTRING(rMesswert, 4, TRUE);
    Schön, welches System hat den diese Funktion ?


    Ich verwende die www.OSCAT.DE --> REAL_TO_STRF

    Verfügbar:
    Step 7
    CoDeSys
    TwinCat
    PC WorX
    MULTIPROG

    Also ein paar hunder Systeme.

    Andere Systeme sind anpassbar, da Quellcode beiliegend.



    REAL_TO_STRF konvertiert einen REAL-Wert in einen STRING mit einer festen Anzahl von Nachkommastellen N. Bei der Konvertierung wird ausschließlich in Normales Zahlenformat XXX.NNN umgewandelt. Bei der Umwandlung wird IN auf N Stellen nach dem Komma gerundet und dann in einen Stringmit dem Format XXX.NNN gewandelt. Wenn N = 0 wird die REAL Zahl auf 0 Stellen hinter dem Komma gerundet und das Ergebnis als Integer ohne Punkt und Nachkommastellen ausgegeben. Wenn die Zahl IN kleiner ist als mit N Nachkommastellen erfasst werden können wird eine Null ausgegeben. Die Nachkommastellen werden immer auf N Stellen mit Nullen aufgefüllt. Die maximale Länge der Zeichenkette beträgt 20 Stellen.
    Beispiel:REAL_TO_STRF(3.14159,4) = '3.1416'
    REAL_TO_STRF(3.14159,0) = '3'
    REAL_TO_STRF(0.04159,3) = '0.042'
    REAL_TO_STRF(0.001,2) = '0.00'
    Karl

  5. Folgender Benutzer sagt Danke zu gravieren für den nützlichen Beitrag:

    PLC-Gundel (29.12.2009)

  6. #14
    Registriert seit
    09.01.2008
    Beiträge
    85
    Danke
    5
    Erhielt 13 Danke für 12 Beiträge

    Standard

    Beckhoff TwinCAT hat diese Funktion.
    Ich weiß jetzt grad aber nicht auswendig in welcher Libary das drin ist. Ist aber in einer der Standard Libarys drin.

    Gruß Benjamin

  7. #15
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    ScratBeckhoff TwinCAT hat diese Funktion.
    Ich weiß jetzt grad aber nicht auswendig in welcher Libary das drin ist. Ist aber in einer der Standard Libarys drin.


    Das erinnert mich an die "guten Alten" - Basic Zeiten.

    (Interpreter, Compiler von einer Programiersprache)

    Da gabs QBasic, VCBasic, XBasic, Basic . . .

    Jeder hatte so seine eigenen, Funktionen und Erweiterungen.

    Fand man mal einen QUellcode von Basic, brachte man den nicht so "OHNE weiteres" zu laufen.


    Das war für mich ein Hauptgrund, von ca. 20 Jahren zu "C" zu wechseln.

    Das erklärt auch meine Abneigung von Nicht-Standartisierten Erweiterungen für die SPS-Welt.

    ALSO:
    Entweder Quelltextoffen oder Standartisiert.
    Auf eine Funktion, die z.b.nur Beckhoff hat würde ich nicht aufsetzen.

    Entweder "selber schreiben" oder "portablen Code" suchen.

    Meine Lösung aktuell --> www.oscat.de

    Wobei die Lösung für jeden ganz anders aussehen kann.

    P.S:
    Unser GLT in der Firma (Projekt grösstenteils auswärtsbetreut)
    Für das Gebäudeleitsystem wurde Wago bei uns ausgewählt.
    Es werden die Wago-Libs verwendet.
    (Entgegen meinem anraten auf "oscat")
    Nun sollen für 2 "kritische" Anwendungen "S7-300 .. PN"-CPUs verwendet werden.
    Jetzt fallen die Unterkiefer bis auf den Boden.
    Mal schauen wie es weitergeht.
    Karl

  8. #16
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Was ist eigentlich der Grund, dass plötzlich zwischen Technologien dh. hier zwischen zwei SPS-Anbietern so wilkührlich gewechselt wird?

  9. #17
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    @drfunfrock
    Was ist eigentlich der Grund, dass plötzlich zwischen Technologien dh. hier zwischen zwei SPS-Anbietern so wilkührlich gewechselt wird?
    Kann ich nicht genau sagen.

    Ich würde vermuten Kundenbindung.
    Jeder hat z.b. einen eigenen PID-Regler.

    Mal mehr, mal weniger funktionen.

    Verwendest du die Beckhoff-Lib, so scheiden alle anderen Target aus.
    Warum sollte auch Beckhoff für Wago, Siemens, Elrest ... programmieren.


    Der Ansatz von CoDeSys ist eigentlich SUPER.
    Eine Programmierumgebung, über 200 Hersteller vereinigen.


    Leider gibt es nur wenige CoDeSys-eigenen Bibliotheken.
    Die, die es gibt sind Quelltext-offen.


    Das OSCAT-Team will diesen Zustand verbessern.
    Quasi ein "Linux" für die SPS-Welt.

    Sogar NICHT-CoDeSys Systeme laufen mit dieser Bibliothek.

    z.b. Siemens Step 7 - Systeme.
    Karl

  10. #18
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Ich finde die Oscat-Libs klasse, zumindestens als Ideengeber. In wichtigen Bereichen wie einer Programmierung für Klemmen ist aber kaum mit einheitlichen Libs zu rechnen.

    Aber wie kann man in einem Projekt zwei verschiedene SPS-Lieferanten auswählen? Das ist doch wirklich dämlich! Jeder weiss doch, dass die Interoperabilität zwischen zwei SPS-Lieferanten ziemlich eingeschränkt ist.

  11. #19
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Aber wie kann man in einem Projekt zwei verschiedene SPS-Lieferanten auswählen?
    Lade dir die Lib z.b. für Step 7 --> Step 7 Programme schreiben.
    Lade dir die Lib z.b. für CoDeSys --> Programme für Wago, Beckhoff ...

    Du kannst dir aber auch die Quell-Codes (ST) rausziehen und in dein Programm kopieren.

    Das ist doch wirklich dämlich! Jeder weiss doch, dass die Interoperabilität zwischen zwei SPS-Lieferanten ziemlich eingeschränkt ist.
    Was meinst du damit.
    Karl

  12. #20
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Leider gibt es nur wenige CoDeSys-eigenen Bibliotheken.
    Die, die es gibt sind Quelltext-offen.
    sollte wohl eher heißen
    Code:
    Die, die es gibt sind nicht Quelltext-offen.

Ähnliche Themen

  1. Probleme mit Scl funktion Replace
    Von RMLIF im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.01.2011, 07:37
  2. Funktion
    Von Placidjam im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.05.2009, 15:26
  3. SCL MID Funktion
    Von Uli_87 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.02.2009, 10:32
  4. SCL & Funktion
    Von Felse im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 24.02.2009, 10:07
  5. Funktion
    Von isensa im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 26.07.2006, 18:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •