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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Probleme im Programm nach Profibusanbindung

  1. #1
    Registriert seit
    21.11.2012
    Beiträge
    18
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    In einer laufender Anlage hatte ich eine Auswerteelektronik fuer Prallplattenwaagen.
    Das Geraet ging kaputt und laesst sich nicht meht reparieren.
    Wir mussten also ein neueres Modell kaufen.


    Da ich zum ersten mal ein Gaeret in Profibus anbinde ist nicht alles korekt gelaufen


    Also, die GSD Datei habe ich eingespielt, die Adresse vergeben und das Ding neugestartet.
    In Hardware ist das Geraet ok. und vorhanden.


    Anleitung von dem neuen Geraet:
    Eingangsworte (à 4 Byte, 2 word), Darstellung in Float (IEEE 4 Byte reals)
    Byte Wort-InhaltWort-TypBit-AdresseBit-Inhalt
    00 … 03 Förderleistung (t/h) Float
    04 … 07 Zähler 1 (t) Float
    08 … 11 Zähler 2 (t) Float
    12 … 15 Gewicht (kg) Float

    Ausgangsworte (à 2 Byte, 1 word)Byte Wort-InhaltWort-TypBit-AdresseBit-Inhalt
    00 … 01 Kontrollbits 2 Bits .0 acquire zero (Nullstellen)
    02 … 03 Kontrollbits 3 Bits .0.13 reset total (Zähler 1)acknowledge alarms


    In der Anleitung von dem neuen Geraet steht auch dass, um die Werte in der SPS korrekt darzustellen, ist es notwendig die Bytes der Doppelworte zu
    tauschen. Dieses kann im Organisationsbaustein OB1 programmiert werden.
    also habe ich gemacht laut dem Beispiel aus der Anleitung:

    Netzwerk: 1 Förderleistung
    L PEW 258 // Lade PEW258 in Akku
    T MW 0 // Transferiere den Akkuinhalt nach MW0
    L PEW 256 // Lade PEW256 in Akku
    T MW 2 // Transferiere den Akkuinhalt nach MW2






    Bei mir im HW Konfig :
    2AE - Input ( 2Word )- 1024 -1027
    2AE - Input ( 2Word )- 1028 -1031
    2AE - Input ( 2Word )- 1032 -1035


    1AA Output ( 1 Word ) - 1004 - 1005

    also in meinem Programm sieht das so aus :

    Netzwerk: 1 Förderleistung

    L PEW 1026 //
    T MW 32 //
    L PEW 1024 //
    T MW 36 //

    Anleitung von dem alten Geraet:

    Durchsatzleistung Waage 1 (hier PED 256) als REAL
    Zähler 1 Waage 1 (hier PED 260) als REAL
    Zähler 2 Waage 1 (hier PED 264) als REAL

    Ausgangswort Waage 1 (hier PAW 256) als WORD


    Ausgangswort:
    Bit 0 Nullstellen (Positive Flanke)
    Bit 1 Zähler 1 rücksetzen (Positive Flanke)
    Bit 2 Zähler 2 rücksetzen (Positive Flanke)
    Die restlichen Bit sind frei.


    Das Problem ist, nach dem ich das gemacht habe bekomme ich keine Werte in der Visu, erst als ich in am Ende in OB1 eine zusaetzliche Funktion aufgerufen habe mit dem Code:

    L MD 32
    T DB115.DBD 165 // Wert in der Visu

    bekomme ich in der Visualisierung die richtigen Werte.

    Nach dem die Bytes der Doppelworte getauscht worden sind muss man also z.B dort wo in einer Funktion PED 1024 am Eingan stand die PED durch MD 32 ersetzen oder wie soll ich das machen damit das Programm wie mit dem alten Geraet lauft.

    Gruss
    Mikolaj
    Geändert von Mikolaj (21.11.2012 um 21:50 Uhr)
    Zitieren Zitieren Probleme im Programm nach Profibusanbindung  

  2. #2
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    624
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard

    mir scheint, da wird mal wieder ein "Bock zum Gärtner gemacht" -

    Es gibt 3 Möglichkeiten:

    1. Der einfachste aber schlampige Weg: Du versuchst, wie von dir schon beschrieben, deinen Bausteinen die neuen Werte per Merker zu übergeben - das könnte klappen - wenn die Funktionen mit Pointern auf die Peripherie zugreifen, dann gibts evtl. Probleme.

    2. Der eleganteste Weg: Du realisiest den Bytetausch innerhalb deiner Bausteine, indem du deren Code anpasst.

    3. Der venünftigste Weg: Du lässt das jemanden machen, der Ahnung von der Sache hat

  3. #3
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    L PEW 1026 //
    T MW 32 //
    L PEW 1024 //
    T MW 36 //

    ist mal ein Fehler!
    MW34 muss es heissen!

  4. #4
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Kannst du garantieren, dass du das richtig machst?
    Niemand wird Verständnis haben, wenn etwas schief läuft.
    Da ducken sich schnell alle Schaefs weg.

    Ich kann mich uncle_tom nur anschliessen, such dir jemand, der dir hilft.

    Und allgemein einmal:
    Nicht jeder der den Simatic Manager fehlerfrei öffnen kann, ist Programmierer.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  5. #5
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Im übrigen kannst Du alle Probleme umgehen wenn Du dort wo früher

    L PEDxy
    T DBDz

    stand
    nun
    L PEDxy
    SLD16
    L PEDxy
    SRD16
    OD
    T DBDz

    schreibst

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.327
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard

    Zitat Zitat von Mikolaj Beitrag anzeigen
    In der Anleitung von dem neuen Geraet steht auch dass, um die Werte in der SPS korrekt darzustellen, ist es notwendig die Bytes der Doppelworte zu
    tauschen.
    Dann wäre die Operation TAD meine Wahl.
    Code:
    L PED 1024
    TAD
    T MD32
    Zitat Zitat von Mikolaj Beitrag anzeigen
    Das Problem ist, nach dem ich das gemacht habe bekomme ich keine Werte in der Visu, erst als ich in am Ende in OB1 eine zusaetzliche Funktion aufgerufen habe mit dem Code:

    L MD 32
    T DB115.DBD 165 // Wert in der Visu

    bekomme ich in der Visualisierung die richtigen Werte.
    Da hast Du wohl nur mit kleinen Werten getestet ...

    Zitat Zitat von Mikolaj Beitrag anzeigen
    Nach dem die Bytes der Doppelworte getauscht worden sind muss man also z.B dort wo in einer Funktion PED 1024 am Eingan stand die PED durch MD 32 ersetzen oder wie soll ich das machen damit das Programm wie mit dem alten Geraet lauft.
    Ja, kann man so machen.

    Besser sieht es aus, wenn Du die Byte-gedrehten-Werte im PAE ablegst (wenn Deine CPU so große Eingangsadressen unterstützt) und alle betreffenden PEDxyz durch EDxyz ersetzt:
    Code:
    L PED 1024
    TAD
    T ED 1024
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    @Harald:
    "Dann wäre die Operation TAD meine Wahl."

    Bist Du sicher?
    TAD tauscht doch AKKU1 HH gegen AKKU1 LL und AKKU1 HL gegen AKKU1 LH
    Ich glaube das nicht!

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.327
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard

    Byte1 Byte2 Byte3 Byte4 ---> TAD ---> Byte4 Byte3 Byte2 Byte1
    Das entspricht dem Tausch der Bytes Little-Endian <---> Big-Endian, und ich meine, das war hier gesucht.
    Die anderen Beispiele hier im Thread tauschen die Wörter im Doppelwort: ---> Byte3 Byte4 Byte1 Byte2 (Wozu das gut sein soll???)

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Naja das müsste man den Frage der die Anleitung zum Gerät geschrieben hat:

    In der Anleitung von dem neuen Geraet steht auch dass, um die Werte in der SPS korrekt darzustellen, ist es notwendig die Bytes der Doppelworte zu
    tauschen. Dieses kann im Organisationsbaustein OB1 programmiert werden.
    also habe ich gemacht laut dem Beispiel aus der Anleitung:

    Netzwerk: 1 Förderleistung
    L PEW 258 // Lade PEW258 in Akku
    T MW 0 // Transferiere den Akkuinhalt nach MW0
    L PEW 256 // Lade PEW256 in Akku
    T MW 2 // Transferiere den Akkuinhalt nach MW2

  10. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.327
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Byte-Tausch oder Word-Tausch? Was soll man glauben?
    Tja, diese Frage könnte man wahrscheinlich beantworten, wenn der TE uns verraten würde, welches Prallplattenwaage-Modell bzw. welche Profibus-Schnittstelle er nun genau hat ... meine Glaskugel schweigt ... vielleicht meldet sich Adam/Mikolaj ja nochmal.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Programm nach FB
    Von cas im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 07.11.2009, 11:03
  2. Profibusanbindung S5 an S7
    Von linksaussensvl im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 29.04.2009, 07:43
  3. Profibusanbindung an einen Regler
    Von Van_Eck im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 30.10.2008, 14:12
  4. Profibusanbindung
    Von rnovak im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.03.2008, 12:49
  5. Lenze Fu und Profibusanbindung
    Von godi im Forum Antriebstechnik
    Antworten: 4
    Letzter Beitrag: 16.09.2006, 11:41

Lesezeichen

Berechtigungen

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