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

Ergebnis 1 bis 6 von 6

Thema: BYTE Werte direkt an Funktionsbausteine schreiben

  1. #1
    Registriert seit
    14.05.2014
    Beiträge
    74
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Inzwischen hab ich herausgefunden, dass man Zeiten direkt an z.B. Timer schreiben kann ohne dafür eine Variable zu deklarieren.

    Sieht dann z.B. so aus: T#10ms oder T#5h30m10s

    Geht sowas auch für BYTE?


    Konkret:

    Der Baustein BLIND_CONTROL_S aus der OSCAT Lib verlangt nach BYTE Werten und nach Zeiten.

    Kann man die BYTEs auch direkt dranschreiben?
    Zitieren Zitieren BYTE Werte direkt an Funktionsbausteine schreiben  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Normalerweise ja.

    Z.B B#16#7F, wobei das B dann für BYTE steht (W für WORD, DW für DWORD), die 16 für die Basis des gewünschten Zahlensystems (hier also hexadezimal, 2 wäre binär, 10 dezimal) und zum Schluß Dein Wert je nach angegebenem Zahlensystem.

  3. #3
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Würde doch auch einfach reichen eine Ganze Zahl zw. 0 und 255 auf den Eingang zu schreiben. Ohne B und Hex .....

  4. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von MasterOhh Beitrag anzeigen
    Würde doch auch einfach reichen eine Ganze Zahl zw. 0 und 255 auf den Eingang zu schreiben. Ohne B und Hex .....
    Wenn man's nur dezimal will - ja.
    Ansonsten ist's zumindest nicht verkehrt, auch die volle Schreibweise zu kennen.

  5. #5
    Registriert seit
    14.05.2014
    Beiträge
    74
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ist irgendwie komisch:

    Ich hatte das mit Zahlen probiert ( "0") und bekam beim übersetzen eine Fehlermeldung, dass der Baustein "genau soundsoviele Eingänge" erwartet.


    Gestern Abend noch mal getestet, gibts komischerweise.

    Kann man also zusammenfassend sagen:

    Wenn eine Eingangsvariable am Baustein intern als BYTE definiert ist, also Dezimalwerte von 0 bis 255 annehmen kann, so kann man einfach den Dezimalwert dranschreiben wenn man dort eh eine Konstante wünscht und der Dezimalwert wird dann automatisch auf BYTE umgerechnet?

    Wenn ich an den Eingang eine Variable hänge, dann muss der Typ aber passen, oder kann die Variable auch INT sein solange sie nicht größer als 255 ist?

    Ist dann für TIME zwingend das T#xxx nötig um Tage, Stunden, Minuten etc. anzugeben oder kann ich auch "10s" hinschreiben ohne T# davor?

  6. #6
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der Compiler prüft beim Übersetzen ob die Datenformate passen und überführt Konstante Werte in das richtige Format (wenn es der Wert zulässt). Wenn du eine Konstante verwendest kann sich diese während der Laufzeit nicht mehr verändern, d.h. wenn es beim Übersetzen passt, passt es auch wenn das Programm läuft.
    Variablen ändern sich aber während der Laufzeit (oder können sich ändern) deswegen prüft der Kompiler da nur ob der Datentyp übereinstimmt. Über den Wert der Variable weiß er ja nichts.

    Zeiten müssen immer T# geschrieben werden, damit der Compiler weiss das du es eine Zeit sein soll und nicht z.B. ein String bei dem du die ' ' vergessen hast. Das ist so festgelegt.

Ähnliche Themen

  1. Step 7 Boolsche Variable direkt am FB schreiben
    Von Erka im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.04.2014, 15:18
  2. Web2Plc- Werte über Browser schreiben in Steuerung schreiben
    Von pantau86 im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 21.03.2012, 16:23
  3. Ausgänge direkt schreiben
    Von tymanis im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 27.10.2010, 22:03
  4. Byte werte in Real umrechen
    Von enter im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 25.06.2010, 09:09
  5. Indirekte Addr.: Byte indirekt - Bit direkt.
    Von Hawkster im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.12.2006, 02:22

Lesezeichen

Berechtigungen

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