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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Einzelne Bytes eines Arrays auslesen bzw. berechnen

  1. #1
    Registriert seit
    05.07.2014
    Beiträge
    75
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hy leute!

    Ich bekomme von einem Zähler die Werte: (Dezimal)
    ED1: 4985
    ED2: 1276160
    ED3: 326696960
    ED4: 2030043136

    (Hexadezimal)
    ED1: DW#16#00001382
    ED2: DW#16#00138400
    ED3: DW#16#13820000
    ED4: DW#16#81000000

    Ich sollte nun von diesen Zahlen die einzelnen Bytes vom Array herauslesen, weil man nur so den Wert des Zählers definieren kann... Leider habe ich keinen Plan wie man das machen soll??

    Weiß jemand von euch wie das geht?

    Hier ist noch ein Beispiel wie das aussehen soll:
    Byte 0 = 0
    Byte 1 = 0
    Byte 2 = x
    Byte 3 = x
    Zitieren Zitieren Einzelne Bytes eines Arrays auslesen bzw. berechnen  

  2. #2
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.542
    Danke
    1.154
    Erhielt 1.254 Danke für 983 Beiträge

    Standard

    Zuerst solltest du dich mal über die Adressierung einer S7 informieren.
    Deine Adressbereiche überschneiden sich.

    Der Zugriff auf ein einzelnes Byte erfolgt durch L EBx

    Gruß
    Dieter

  3. #3
    Registriert seit
    05.07.2014
    Beiträge
    75
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Dieter!

    Danke für deine Antwort!

    Bekomme jetzt folgende Werte:
    EB1: 0
    EB2: 19
    EB3: 89
    EB4: 0
    Ich habe irgendwo gelesen, dass man die Bytes irgendwie zuammenrechnen muss, um den wahren Wert des Zählers angezeigt zu bekommen. Weißt du auch wie das geht??

    VIelen Dank

  4. #4
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.527 Danke für 1.286 Beiträge

    Standard

    Von welcher Art "Zähler" sprichst du eigentlich?
    Was hat das mit einem "Array" zu tun?
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

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

    Standard

    Verrate uns doch mal was für einen Zähler (Type,Handbuch, etc.) du hast und wie und wo du ihn angeschlossen hast...
    Zitat Zitat von knollsimi Beitrag anzeigen
    Ich habe irgendwo gelesen, dass man die Bytes irgendwie zuammenrechnen muss, um den wahren Wert des Zählers angezeigt zu bekommen. Weißt du auch wie das geht?
    Die Betonung liegt wohl auf "irgendwo". Mit dem bisschen an Information kann man nur raten.
    Nur aus irgendwelchen in den Raum geworfenen Zahlen heraus werden wir das nicht herausfinden.

    [IRONIE ON]
    Ich bin dafür das wir ein Glaskugel/Hellseher-Emoticon einführen, wir brauchen das einfach viel zu oft...

    Ohhhh... Geister der Vergangenheit, Geister der Gegenwart und Zukunft. Hört mich an...
    smiley_emoticons_glaskugel2.gif
    Offenbart mir das was hier niemand erahnen kann... knollsimis Gedankengänge....
    ...
    ...
    ...
    Nichts?!?!
    Verdammtes Ding! Muss wohl kaputt sein...
    smiley_emoticons_glaskugel.gif
    [IRONIE OFF]
    Geändert von RONIN (15.11.2014 um 17:43 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. #6
    Registriert seit
    05.07.2014
    Beiträge
    75
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Allso

    Habe einen Kamstrup Multical 402 mit M-Bus ausgang. Das M-Bus signal wandle ich mittels Wachendorffs Gateway (HD67053-B2-40) in ein Profibussignal um, und dieses lese ich mit der Siemens s7 300 ein. In der Variabeltabelle sehe ich dann diese Bytes. Angeblich sollte ich diese dann irgendwie zusammenrechenen um den Wahren Wert (Vorlauftemperatur von ca. 14°C) herauszubekommen.

  7. #7
    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 knollsimi Beitrag anzeigen
    Allso
    Habe einen Kamstrup Multical 402 mit M-Bus ausgang. Das M-Bus signal wandle ich mittels Wachendorffs Gateway (HD67053-B2-40) in ein Profibussignal um, und dieses lese ich mit der Siemens s7 300 ein.
    smiley_emoticons_doh.gif Duh! Als hätt ich's nicht gewusst. Sag mal ernsthaft knollsimi, wenn du deinen Eingangspost selber liest... bist du wirklich der Meinung das wir aus dem bisschen Info was rauskratzen und dir helfen können, Kein Wunder das meine Glauskugel Bildstörungen hatte.

    OK, schwamm drüber.
    Damit wir dir sinnvoll helfen können postest du uns jetzt einen Screenshot (evtl. sogar das File, am besten beides) deiner Wachendorf-Konfiguration sowie einen Screenshot deiner Hardware-Konfig wo das Gate dranhängt.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. #8
    Registriert seit
    29.03.2004
    Beiträge
    5.800
    Danke
    144
    Erhielt 1.710 Danke für 1.240 Beiträge

    Standard

    Bei M-Bus hat man öfters mal BCD-kodierte Werte. Deine ca. 14°C könnten dann den Bytes 1382hex entsprechen, wäre dann 13,82°C. Wenn die Bytereihenfolge passt, kannst du die S7-Konvertierungsfunktionen von BDC nach Int verwenden.

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

    Standard

    Zitat Zitat von knollsimi Beitrag anzeigen
    (Hexadezimal)
    ED1: DW#16#00001382
    ED2: DW#16#00138400
    ED3: DW#16#13820000
    ED4: DW#16#81000000

    Hier hast Du Dich bestimmt verschrieben.

    Wie Blockmove Dir mitgeteilt hat und Du Dich ja jetzt bestimmt auch belesen hast, besteht bei den 4 angegebenen Doppelwörtern eine Byteüberschneidung. Da sollten also bei den verschiedenen EDs trotzdem die gleichen Werte in den gemeinsamen Bytes enthalten sein:
    Code:
    ED1  = EB1 + EB2 + EB3 + EB4
    DW#16#  00    00    13    82
          
    ED2  = EB2 + EB3 + EB4 + EB5
    DW#16#  00    13    84?   00
    
    ED3  = EB3 + EB4 + EB5 + EB6
    DW#16#  13    82    00    00
    
    ED4  = EB4 + EB5 + EB6 + EB7
    DW#16#  81?   00    00    00
    Oder stammen die Werte aus verschiedenen Zyklen?


    Wie Du aus den ganzen EBs vlt. erkennen kannst, ist mit dem richtigen Anschluß des Zählers und der richtigen Auswahl des EDs der Wert als Doppelwort auslesbar, ohne die einzelnen Bytes manuell zusammen rechnen zu müssen.
    Daher die Frage, welchen Wert hat denn der Zähler dazu in Echt übertragen?

    Ein wenig komisch bzw. unüblich ist noch, das Dein Zähler-Eingang mit EB1 anfängt. Üblich ist für ein DW eher ED0 bzw. als nächstes ED4.
    Das hängt aber auch davon ab, wie Deine Hardware parametriert und Dein Zähler an die digitalen Eingänge angeschlossen ist.
    Irgendwie kann ich mir überhaupt nicht vorstellen, das da 32 einzelne Adern (plus Spannungsversorgung) vom Zähler zur SPS verdrahtet sind. Das klingt viel zu aufwendig für einen Zähler. Daher wäre das an erster Stelle von Interesse.


    PS: Da sind mir beim Schreiben gerade einige Posts entgangen, die schon einiges beantworten?!

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Seit wann zeigt ein Zähler denn 'ne Temperatur an?

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 07.11.2017, 08:27
  2. Antworten: 10
    Letzter Beitrag: 06.04.2016, 19:50
  3. TIA Systemzeit in einzelne Bytes schieben
    Von Chrisxx8 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 10.07.2014, 13:34
  4. laden bzw. speichern von Arrays
    Von suntmaster im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 16.08.2012, 23:09
  5. einzelne Bit eines Bytes ändern
    Von Farinin im Forum HMI
    Antworten: 10
    Letzter Beitrag: 29.09.2006, 11:24

Stichworte

Lesezeichen

Berechtigungen

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