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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 34

Thema: IBIS LED Anzeige ansteuern

  1. #11
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Harald
    das Paritybyte besteht aus zwei Zeichen und soll in DBB22 und DBB23 stehen

  2. #12
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Zitat Zitat von Sternfahrer463 Beitrag anzeigen
    Wie bekomme ich denn den ganzen DB11 in den DB12 transferiet?
    Schau dir mal SFC20 (Standardbibliothek / Systemfunktionen ) an.
    Damit kann mann ganze Blöcke (deine Strings) auf einmal transferieren.
    Code:
    //Falls deine Datenbaustein über symbolische Namen verfügen (empfehlenswert)
    CALL "BLKMOV"
    SRCBLK := DB11Symbolname.StringName
     RET_VAL:=#RetVal
     DSTBLK :=DB12Symbolname.StringName
    
    //Sonst absolut
    CALL "BLKMOV"
    SRCBLK :=P#DB11.DBX 0.0 BYTE 25 <-- Bin mit nicht sicher wie groß deine Stings sind
     RET_VAL:=#RetVal
     DSTBLK :=P#DB12.DBX 0.0 BYTE 25
    oder:
    Code:
    L DB11.DBD0
    T DB12.DBD0
     L DB11.DBD4
    T DB12.DBD4
     ... und so weiter und so fort...
    L DB11.DBD20
    T DB12.DBD20
    L DB11.DBB25 //Je nach dem wie es sich mit der Byteanzhal ausgeht.
    T DB12.DBB25
    Geändert von RONIN (30.03.2015 um 21:33 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  3. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    Sternfahrer463 (30.03.2015)

  4. #13
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    das Paritybyte besteht aus zwei Zeichen und soll in DBB22 und DBB23

  5. #14
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Zitat Zitat von Sternfahrer463 Beitrag anzeigen
    Hallo Zusammen,
    ich habe folgendes versucht, funktioniert aber nicht.
    Habe einen Textcode(aA21T0 54.12 Meter$L$L$R ) ohne Paritybyte(dafür zwei Leerzeichen) in den DB11 eingegeben.
    Wie hast du denn deinen Textcode eingegeben bzw. was hast du in DB11 und 12 eigentlich erstellt.

    Einen String mit x-Zeichen Länge (so wie von Thomas vorgeschlagen) oder ein Array of CHAR oder einzelne CHAR oder Bytes...?

    Da du beim Sendebaustein einen Offset von 2 Byte einträgst habe ich angenommen dass du einen String erstellt hast.
    Da sind aber die ersten beiden Byte mit der Gesamtlänge und der wirklich benutzen Länge belegt.

    Wenn ich mir unter der Annahme deine Zeichenkette "aA21T0 54.12 Meter$L$L$R" ansehe,
    würde das heißen dass ab Byte 2 das 'a' beginnt und bei Byte 22 das "$R" steht. Das heißt das Parity-Byte steht in Byte 23.
    Wie kommst du darauf dass dieses 2-Byte lang sein müsste.
    Der nächste Punkt ist dann dass die Länge der Zeichen von Byte 2 bis 23 nur 22 Byte ist - LEN:=22

    (hoffe hab mich nirgens verzählt - stimmt aber mit PN//DP überein... )
    Geändert von RONIN (30.03.2015 um 21:28 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. #15
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Beide DBs sind String mit 23 Zeichen.
    Die Anzeige benötigt ASCII Zeichen.
    Um 54.12 Meter dazustellen muss man folgendes übertragen:
    aA21T0 54.12 Meter§L§L§R§52
    52 ist in diesem Fall das Parity = 2 Zeichen
    da sich aber meine Zahlerwerte bei jeder Messung ändert, möchte ich den Zahlenwert in DB11 ab DBB8 schreiben, anschließend das Parity bilden und alles in den DB12 bekommen

  7. #16
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mein Kopf ist für heute leer.
    Werde mich morgen nachmittag wieder mit der Thematik befassen.

    Danke erstmal für eure Tipps

  8. #17
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Bist du dir sicher, dass der Paritäswert ebenfalls in Ascii übertragen werden soll? Oder warum zwei Bytes?

    Laut dieser Seite hier:
    http://cybox.ib-luehning.de/ibis/ibisdata.html

    würde ich bei der Bezeichnung Paritätsbyte auch davon ausgehen, dass es nur ein einzelnes Byte ist.

    Im Anhang ein Beispiel wie ich das umsetzen würde, inklusive Wert-Konvertierung.
    Angehängte Dateien Angehängte Dateien

  9. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.297
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Deine plötzliche Idee mit den 2 Paritätsbytes überprüfe nochmal... Deine Erklärungen in #1 und #5 beschreiben nur 1 Paritätsbyte.

    Versuche es mal so:
    Code:
    //*** ab DBB6 den Messwert einfügen, z.B. '123.45' oder ' 54.12'
          L     '1'
          T     DB12.DBB6
          L     '2'
          T     DB12.DBB7
          L     '3'
          T     DB12.DBB8
          L     '.'
          T     DB12.DBB9
          L     '4'
          T     DB12.DBB10
          L     '5'
          T     DB12.DBB11
    
    //*** Message mit Paritätsbyte erzeugen
          L     B#16#7F       //Init Paritätsberechnung
          L     'a'
          T     DB12.DBB0
          XOW
          L     'A'
          T     DB12.DBB1
          XOW
          L     '2'
          T     DB12.DBB2
          XOW
          L     '1'
          T     DB12.DBB3
          XOW
          L     'T'
          T     DB12.DBB4
          XOW
          L     '0'
          T     DB12.DBB5
          XOW
    
    //*** hier liegt der Messwert (6 Zeichen)
          L     DB12.DBB6
          XOW
          L     DB12.DBB7
          XOW
          L     DB12.DBB8
          XOW
          L     DB12.DBB9
          XOW
          L     DB12.DBB10
          XOW
          L     DB12.DBB11
          XOW
    //***
          L     ' '
          T     DB12.DBB12
          XOW
          L     'M'
          T     DB12.DBB13
          XOW
          L     'e'
          T     DB12.DBB14
          XOW
          L     't'
          T     DB12.DBB15
          XOW
          L     'e'
          T     DB12.DBB16
          XOW
          L     'r'
          T     DB12.DBB17
          XOW
          L     '$L'
          T     DB12.DBB18
          XOW
          L     '$L'
          T     DB12.DBB19
          XOW
          L     '$R'
          T     DB12.DBB20
          XOW
          T     DB12.DBB21    //Paritätsbyte
    In DB12 ab DBB0 deklariere ein ARRAY[1..22] OF BYTE (oder größer).

    Für FB108 gib an:
    DB_NO :=12
    DBB_NO :=0
    LEN :=22

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #19
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ihr habt Recht, das Paritybyte ist ein Byte.
    habe mich täuschen lassen, da im Ibis Code das Paritybyte in Hex angegeben wird und dann zwei Zeichen sind.
    @ Harald
    dein Vorschlag funktioniert.
    @ Thomas
    deine Lösung scheint für mein Projekt noch besser zu sein, soweit ich das bis jetzt beurteilen kann.
    diese Programmierweise ist für mich noch sehr ungewohnt.
    wir haben in der Schule ein wenig in Java programmiert, dadurch kan ich mir einiges erklären.
    werde es auf jedenfall ausprobieren.
    So, war ein langer Tag. Arbeit, Familie und SPS Programmirung.
    Morgen gehts weiter!
    Euch vielen Dank!!!

    Christian

  11. #20
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @ Thomas
    ist das eigentlich noch awl oder schon eine höhere Programmiersprache?
    wenn ja, kann mein Step7 V5.4 das auch?

    Gruß Christian

Ähnliche Themen

  1. Großtextanzeige/LED-Anzeige
    Von tomatensaft im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 11.10.2012, 12:56
  2. LED Motivationslaufband-Anzeige
    Von ToBo im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 09.08.2009, 22:48
  3. LED ansteuern OP77
    Von marcelmoonwalker im Forum HMI
    Antworten: 3
    Letzter Beitrag: 30.04.2009, 14:08
  4. LED-Anzeige + Maske
    Von MatthiasH24 im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 08.12.2008, 12:52
  5. LED Anzeige
    Von Dirk LXXVI im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 10.08.2006, 22:01

Lesezeichen

Berechtigungen

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