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

Ergebnis 1 bis 6 von 6

Thema: Bit/Word Verknüpfungen MIT optimierten Datenbausteinen

  1. #1
    Registriert seit
    02.04.2013
    Beiträge
    143
    Danke
    7
    Erhielt 22 Danke für 20 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    1. CPU 1511
    2. TIA PORTAL V12 SP1

    Tach Leute,

    zerbreche mir gerade den Kopf, wie ich folgendes MIT optimierten Bausteinen (DB, FC) realisieren kann:
    Gehen wir davon aus, dass ich 16 Fehlermeldungen in meiner Steuerung bekommen kann. Die Bits sollen einzeln im DB abgelegt werden. Gibt ja jetzt viele Möglichkeiten... Einzeln, als Word, Array oder als PLC_Datentyp im Datenbaustein (welche ist die sinnvollste?). Diese 16 Bits bzw. das Word, will ich mit einem anderen Datenbaustein (bzw. im gleichen Datenbaustein, halt anderer Bereich) und/oder...-verknüpfen. Wenn möglich in FUP oder AWL. Was ich jedoch vermeiden will, ist alle Bits einzeln zu verknüpfen.
    Und um die Sache spannender zu machen: Ich übergebe an einen FC (auch optimierter Baustein) über IN-OUT die zwei Bereiche des DBs, die ich Wordweise/Bitweise verknüpfen will und speichere das Ergebnis in letzteres.

    Hat jemand eine gute Idee oder einen Ansatz?
    Zitieren Zitieren Bit/Word Verknüpfungen MIT optimierten Datenbausteinen  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Einfach die Fehlermeldung als Word/DWORD im DB bzw. FB/FC deklarieren. Auf die einzelnen Bits kannst Du dann ggf. mit dem Slice-Verfahren (ich hoffe, ich irre mich da jetzt nicht mit der Bezeichnung) zugreifen.
    Z.B.:
    Code:
    VAR
      boolFehler1: Bool;
      boolFehler2: Bool;
      Stoerung: Word;
    END_VAR
    
    
    // Fehlerzuweisung
    Stoerung.x0:= boolFehler1;
    Stoerung.x1:= boolFehler2;
    ...
    
    // Fehlerbearbeitung
    IF Word_To_Int(Stoerung) > 0 THEN
      ...; 
    END_IF;
    
    // Fehlerlöschen
    Stoerung:= 0;
    Geht natürlich auch in FUP/KOP.
    Müsste auch direkt mit INT/DINT funktionieren. Einfach mal testen.
    Geändert von hucki (14.11.2013 um 19:22 Uhr)

  3. #3
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

  4. #4
    shutdown_TIA12 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.04.2013
    Beiträge
    143
    Danke
    7
    Erhielt 22 Danke für 20 Beiträge

    Standard

    Ja, danke erstmal für die Hilfe. Habe auch mit der Slice-Funktion geliebtäugelt, jedoch habe ich bei den einzelnen Bits keinen symbolischen Namen (was S. als Vorteil verkauft) und Kommentare der Einzelnen Bits sind auch nicht gegeben. Ich stelle mir nur vor, falls ein zukünftiger Servicemensch (im Programm!) schauen will, welche Störung gerade auftritt... also wenn Stoerung.x3 true ist, woher weiß er sofort, dass z.B. Druck zu niedrig ist... Wird nicht über Quellcode oder DB ersichtlich... Einzig allein könnte man eine Beobachtungstabelle die Einzelnen-Bits mit Kommentaren versehen (sofern das geht; muss ich noch testen).

    Aber über Nacht kamen mir grandiose Ideen... will sie jedoch mal nächste Woche testen und schauen wie schnell und platzsparend die sind... ich werde berichten...

    Falls noch jemand weitere Ansätze hat, immer her damit

  5. #5
    Registriert seit
    25.11.2008
    Ort
    Westpfalz
    Beiträge
    1.550
    Danke
    187
    Erhielt 212 Danke für 186 Beiträge

    Standard

    Zitat Zitat von shutdown_TIA12 Beitrag anzeigen
    ... jedoch habe ich bei den einzelnen Bits keinen symbolischen Namen (was S. als Vorteil verkauft) und Kommentare der Einzelnen Bits sind auch nicht gegeben. Ich stelle mir nur vor, falls ein zukünftiger Servicemensch (im Programm!) schauen will, welche Störung gerade auftritt... also wenn Stoerung.x3 true ist, woher weiß er sofort, dass z.B. Druck zu niedrig ist... Wird nicht über Quellcode oder DB ersichtlich...
    Das hast du bei S7-classic aber auch nicht in der Form.

    Zitat Zitat von shutdown_TIA12 Beitrag anzeigen

    Falls noch jemand weitere Ansätze hat, immer her damit
    Gleich hinter dem Link von user Hucki kommt auch noch eine Beschreibung zum AT-Operator, das
    wäre meines Erachtens eine weitere Lösung, da du ja ne S7-1511 verwenden willst.

    Wie programmieren Sie in STEP 7 (TIA Portal) die Überlagerung von Variablen mit dem Schlüsselwort "AT"?
    and we all support the team (S.King - Die Arena)

  6. #6
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi all

    vergesst das mit AT und all dem anderen "ich pack 16 Bit in ein Wort" 300/400 er Quatsch.

    Lies mal DB Bereichsabfrage
    und AWL, KOP oder FUP
    und TIA Portal - DB Zugriff -> nicht eindeutige Adresse

    Am schnellsten wird von der 1500 das ausgeführt was du nicht machen willst.
    Was ich jedoch vermeiden will, ist alle Bits einzeln zu verknüpfen.
    Glaub mir, das ist schnell. schneller als alles andere. Auch wenn du dir einen Wolf klickst.

    Wenn du deine 16 bits in einen UDT packst, dann kannst du die als INOUT also per Referenz übergeben. Das kostet auch keine Zeit

    'n schönen Tach auch
    HB

  7. Folgende 2 Benutzer sagen Danke zu HelleBarde für den nützlichen Beitrag:

    contimartin (06.04.2017),shutdown_TIA12 (19.11.2013)

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 07.06.2013, 17:37
  2. Word Bit auslesen
    Von Limette im Forum Simatic
    Antworten: 48
    Letzter Beitrag: 20.03.2012, 17:32
  3. Codesys 2.3 : Bit TO word
    Von Kieler im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 26.02.2012, 21:02
  4. Bit im Word, InstanzDB...
    Von AndreK im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 09.03.2009, 11:36
  5. Bit im Word abfragen
    Von johnij im Forum HMI
    Antworten: 15
    Letzter Beitrag: 09.06.2008, 13:33

Lesezeichen

Berechtigungen

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