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

Ergebnis 1 bis 6 von 6

Thema: PEB in DB schreiben

  1. #1
    Registriert seit
    11.02.2014
    Beiträge
    10
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forumgemeinde,

    Ich beabsichtige 38 Char-Variablen aus einem Busteilnehmer in einen DB zu schreiben.
    Nach meinen bisherigen Suchergebnissen bin ich zu dem Entschluss gekommen das es so in die Richtung SFC14 oder SFC20 gehen wird. Allerdings habe ich so meine Schwierigkeiten die Daten die aus dem Slave kommen zu verarbeiten. Ich nutze ein MA204I Gateway der Marke Leuze mit einem Handscanner. Die CPU ist eine 315 - 2DP.

    Also ich kann mir über eine Variablen-Tabelle auch sauber die Werte der Char Variablen anzeigen lasssen, indem ich PEB0 bis PEB37 in die Tabelle eintrage. Der Knackpunkt ist, das mir jeglicher Ansatz fehlt wie ich diese Werte jetzt in der CPU weiterverarbeite.

    Schon mal Danke im vorraus,

    mfg Timmek
    Zitieren Zitieren PEB in DB schreiben  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    SFC14 geht nur, wenn Du eine Konsistenz von 3 oder >4 Byte eingestellt hast.

    Du könntest jedes Byte kopieren:
    Code:
    L PEBx
    T DB204.DBB0
    L PEBx+1
    T DB204.DBB1
    ...
    L PEBx+37
    T DB204.DBB37
    eventuell kannst Du für die L/T auch Doppelwortzugriffe benutzen.
    Wenn die E-Adressen des Slave im Prozessabbild liegen, dann solltest Du besser nicht auf die PEB.. zugreifen, sondern nur auf die EB.. dann funktioniert auch Doppelwortzugriff L ED.. / T DB204.DBD..

    SFC20 kann nicht von Peripherie kopieren, sondern nur vom Prozessabbild. Doch anscheinend liegen Deine Adressen schon im Prozessabbild.
    Code:
          CALL  "BLKMOV"
           SRCBLK :=P#E 0.0 BYTE 38
           RET_VAL:=#tempInt
           DSTBLK :=P#DB204.DBX 0.0 BYTE 38
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Timmek ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2014
    Beiträge
    10
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    OK, entschuldige bitte wenn ich ein wenig "dumme" Fragen stelle.

    Den Quelltext den du mir hier vorschlägst ist AWL richtig?
    Wenn das so ist und ich jedes Byte mit einem einzelnen Befehl übertrage dann würde es doch auch sicher Sinn machen einen seperaten FB zu schreiben oder?

    Dazu kommt mir dann auch schon die nächste Frage in den Sinn:

    Inwiefern ist es möglich schleifen in AWL zu schreiben oder würde SCL da dann schon mehr sinn machen?

  4. #4
    Registriert seit
    16.07.2013
    Ort
    Emden
    Beiträge
    62
    Danke
    15
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Das geht schon, ist aber nicht ganz einfach. Belies dich mal zum Thema indirekte Adressierung und dem Datentyp ANY.

    Ich würde auch sagen, dass deine Bytes schon im Prozessabbild sind. Also: BLOCKMOVE, wie vorgeschlagen, finde ich am besten.

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ja, das ist AWL.
    Falls Du Schleifen programmieren willst, dann schau in der AWL-Hilfe unter indirekte Adressierung und die Hilfe zum LOOP-Befehl. Die Adressberechnung ist aber für Anfänger sehr verwirrend.

    Wenn Du SCL hast, dann macht es tatsächlich mehr Sinn für Schleifen SCL zu verwenden:
    Code:
    FOR i := 0 TO 37 DO
      DB204.DB[i] := EB[i] ; //EB0..EB37 nach DB204.DBB0..DBB37 kopieren
    END_FOR;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    bike (03.03.2014)

  7. #6
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke Harald, jetzt weiß ich endlich was AWL ist.

    Deine Geduld ist mehr als bewundernswert.
    Ohne Hirn wird gefragt und du verstehst es und kannst helfen.
    Respekt, ich ziehe meinen Hut bzw Mütze vor dir.


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

Ähnliche Themen

  1. SKript_Daten schreiben
    Von ka1978 im Forum HMI
    Antworten: 13
    Letzter Beitrag: 26.02.2014, 16:29
  2. Antworten: 8
    Letzter Beitrag: 01.08.2013, 11:04
  3. Web2Plc- Werte über Browser schreiben in Steuerung schreiben
    Von pantau86 im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 21.03.2012, 16:23
  4. PEB's kopieren
    Von kolbendosierer im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 19.11.2006, 20:31
  5. as-i ausgänge schreiben
    Von Kilobyte im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 20.05.2006, 23:52

Lesezeichen

Berechtigungen

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