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

Ergebnis 1 bis 7 von 7

Thema: Konvertieren in andere Datentypen

  1. #1
    Registriert seit
    06.11.2011
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,ich habe mit folgendem Problem zu kämpfen: Versuche einen Impuls FB (TP aus der Standard PLC Libary) mit einer Input Variablen Typ BOOL zu füttern und mit der Ausgangsvariablen Typ REAL auszugeben (Analoge Outputkarte 0-10V). Da der FB wohl nur BOOL Typen verwertet, kommt es spätestens bei der Verknüpfung mit meiner Gobalen variablen (typ real) zum konflikt. was auch die fehlermeldung bestätigt. "Fehler 4013: Kann 'BOOL' nicht in 'REAL'konvertieren!"Entweder ich hab was grundlegend nicht verstanden oder ich seh den Trick bei der Sache nicht. Was hat es mit den "Konvertierungen" bei der Eingabehilfe (über F2) aufsich? Wenns hilft, hier mal mein Codeschnipsel (*Deklaration*)FUNCTION_BLOCK LED_TESTVAR_INPUT Button_Mod2:BOOL; Button_Start:BOOL; PlatGrundpos:BOOL; Button_Manuell:BOOL;END_VARVAR_OUTPUT Spule_Kanal1: BOOL;END_VARVAR Impuls:TP; x: INT;END_VAR(*Code*)IF(Button_Mod2 AND PlatGrundpos AND Button_Manuell)THENImpuls(IN:=Button_Start , PT:=T#10s , Q=>Spule_Kanal1 , ET=> );ELSEx:=x+1;END_IF
    Zitieren Zitieren Konvertieren in andere Datentypen  

  2. #2
    Registriert seit
    16.03.2007
    Beiträge
    97
    Danke
    5
    Erhielt 23 Danke für 18 Beiträge

    Standard

    Hallo Hans,

    der Baustein TP macht dir aus einem Eingangssignal (hier:Button_Start) einen Puls (hier: Spule_Kanal1) definierter Länge (hier: T#10s). Du musst jetzt nur noch deiner Outputkarte einen Wert zuweisen, wenn Spule _Kanal1 TRUE ist, zb so:
    if Spule_Kanal1 then
    Analog_Output_Real := 16238 (BEISPIEL! ! !);
    else
    Analog_Output_Real := 0;
    end_if

    Gruß SPS-Fuzzi

  3. #3
    Hans_der_Kann`s ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.11.2011
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Oh..was ist denn da mit der Formatierung von dem Code passiert...mir erst garnicht aufgefallen, entschuldige mich dafür. gibts ne möglichkeit den irgendwie zu edditieren?

    @SPS-Fuzzi
    jepp, das war auch schon mein gedanke es so zu machen...ist halt mehr schreibaufwand...und da ich die Konvertierung BOOL_TO_REAL in der Eingabehilfe gefunden habe
    wusst ich eben nicht ob da ein Trick gibt.
    Aber, für was ist jetzt diese Konvertierung der Datentypen, und wie wendet man sie an?...konnte bisher sonst nirgendwo Infos dazu finden.

    Gruß Hans

  4. #4
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Nehmen wir mal an, ein BOOL könnte die Zustände "0" und "1" annehmen - welchen Wert würde dann der BOOL_TO_REAL dann wohl jeweils auf die Real-Variable schreiben ?
    Nach welchen Kriterien sollte der gleiche Befehl, deiner Meinung nach, mögliche andere Zahlenwerte in den Real bringen ?

  5. #5
    Hans_der_Kann`s ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.11.2011
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mir war bisher halt nicht klar wie ich mit einem boolschen wert, von mir aus TRUE, meine analoge Ausgangsspannung von 10V schalten sollte. Mit dem oben aufgeführten Beispiel von SPS-Fuzzi wird ja dann explizit gesagt Analog_Output_Real := 16238 oder eben 10.0V.
    Aber ohne Definition wirds auch wohl kaum gehen...meine SPS kann ja vorneweg nicht wissen das z.b 3.4V = FALSE und 5.7V dann TRUE sind
    Trotzdem würds mich interessieren für was diese Konvertierungen genau verwendet werden und obs da ein Beispiel gibt.

  6. #6
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Mit den BOOL_TO...-Konvertierungen kann man neckische Sachen machen.
    Für Dein Beispiel könnte man schreiben
    Code:
    IF Bool_Var
    THEN
       Real_Var:=5.7;
    ELSE
       Real_Var:=3.4;
    END_IF;
    Aber das versteht ja jeder. Schöner ist doch
    Code:
    Real_Var:=BOOL_TO_SINT(Bool_Var)*2.3+3.4;
    Es gibt aber auch sinnvolle Konvertierungen, z. B. ..._TO_STRING. Damit kann man Zahlenwerte einfach in Strings umwandeln, um sie z. B. in eine CSV-Datei zur weiteren Verarbeitung mit Excel zu schreiben. Manchmal kommt man auch in die Verlegenheit, Integer-Typen unterschiedlicher Grösse miteinander verknüpfen oder zuweisen zu müssen. Dazu muss man dann die entsprechenden Konvertierungen verwenden.
    Geändert von StructuredTrash (16.11.2011 um 07:55 Uhr) Grund: Zahlendreher im 2. Codefenster

  7. Folgender Benutzer sagt Danke zu StructuredTrash für den nützlichen Beitrag:

    RobiHerb (16.11.2011)

  8. #7
    Registriert seit
    17.10.2007
    Ort
    35043 Marburg
    Beiträge
    176
    Danke
    4
    Erhielt 30 Danke für 29 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Zitat Zitat von Hans_der_Kann`s
    jepp, das war auch schon mein gedanke es so zu machen...ist halt mehr schreibaufwand...
    Code:
    IF Spule_Kanal1 THEN
        Analog_Output_Real := 16238 (*BEISPIEL! ! !*);
    ELSE
        Analog_Output_Real := 0;
    END_IF
    Für solche simplen Auswertungen benutze ich gerne:
    Code:
    MyReal:=SEL(Impuls.Q,3.4,5.7);
    Soll heißen, solange Impuls.Q (Ausgang deines Impuls FBs kann direkt gelesen werden) FALSE ist wird 3.4 in deinen REAL geschrieben und bei TRUE 5.7!
    Grüße...
    Paradox ist, wenn sich jemand im Handumdrehen den Fuß bricht.

Ähnliche Themen

  1. Datentypen mit TSEND
    Von Papa_Bene im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.02.2011, 20:11
  2. Datentypen bei Profibusslaves
    Von Howie im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 12.01.2010, 17:09
  3. Datentypen in WinCC 6.0
    Von Elton_500 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 25.04.2008, 09:09
  4. Any-Zeiger für Datentypen
    Von volker im Forum FAQ
    Antworten: 0
    Letzter Beitrag: 31.03.2007, 16:18
  5. Datentypen - Umwandlung! Wie?
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 03.11.2005, 08:09

Lesezeichen

Berechtigungen

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