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

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

Thema: Lesen und Scheiben von und in den Peripheriebereich

  1. #1
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo allerseits,

    ich krieg hier gerade einen Vogel!
    Es sollten nur 200 Byte und ein Steuerwort an eine PROFINET IO- Slave gesendet werden.
    Das geht auch, aber nur wenn ich manuell in den Peripherie- Bereich schreibe:
    Code:
          L     DB1.DBD  350
          T     PAD  530
          L     DB1.DBD  354
          T     PAD  534        
           …
    Bei 200 Byte sind das ja nur 100 Programmzeilen, aber trotzdem finde ich das nicht akzeptabel.

    Der "BLKMOV" (SFC20) funktioniert ja im Peripherie- Bereich nicht.
    SFC14 und SFC 15 funktionieren nur mit 4 Byte! Sehr Sinnvoll, man braucht nicht ein Doppelwort kopieren und mit der Hex-Eingabe wirkt das viel wichtiger…

    Code:
          CALL  "DPRD_DAT"
           LADDR  :=W#16#210                //HEX für EW528
           RET_VAL:=#Ret_Val_01
           RECORD :=P#DB1.DBX92.0 BYTE 4
     
          CALL  "DPWR_DAT"
           LADDR  :=W#16#210                //HEX für AW528
           RECORD :=P#DB1.DBX348.0 BYTE 4
           RET_VAL:=#Ret_Val_02
    Bei mehr als 4 Byte kommt der Fehler:
    80B1 Die Länge des angegebenen Quellbereichs ist ungleich der mit STEP 7 projektierten Nutzdatenlänge.

    Gibt es da irgendein Trick?
    Hab ich was übersehen?
    Gibt es eine andere Funktion, die ein paar Byte kopieren kann?

    Gruß
    Chräshe

    Hardware:
    IM151-8 PN/DP CPU
    PROFINET IO-Device CE (TwinCAT Slave)
    KTP600

    Softwarestand:
    STEP 7 - 2010 Professional V5.5 V5.5.0.0_25.6.0.1 V5.5.0.0
    SIMATIC WinCC flexible 2008 SP2 K1.3.2.0_1.58.0.1 K1.3.2.0
    Zitieren Zitieren Lesen und Scheiben von und in den Peripheriebereich  

  2. #2
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard

    Hallo!

    Das muss gehen, wenn du beim Pointer zb BYTE10 dranschreibst. Hab soeben bei mir geprüft (mit einem Servo).
    Stimmt die Länge des Quell und Zielbereichs sicher überein?
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

  3. #3
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo,

    Die Hardware-P-Eingänge/P-Ausgänge müssen bei Verwendung von SFC14/15 konsistent sein.

    Mit der SFC 14 "DPRD_DAT" (read consistent data of a DP-normslave) lesen Sie konsistente Daten eines DP-Normslaves/PROFINET IO-Devices aus, wobei für die Maximallänge folgendes gilt: Die Maximallänge entnehmen Sie für die S7-300-CPUs den Handbüchern Automatisierungssystem S7-300: Aufbauen, ET 200S Interfacemodul IM151-7 CPU oder Basismodul BM147CPU. Bei den S7-400-CPUs entnehmen Sie die Maximallänge dem Handbuch Automatisierungssystem S7-400 CPU-Daten. Falls bei der Datenübertragung kein Fehler auftrat, werden die gelesenen Daten in den durch RECORD aufgespannten Zielbereich eingetragen.
    SFC14 und SFC 15 funktionieren nur mit 4 Byte! Sehr Sinnvoll
    ???. Mehr als 4 byte

    Sie benötigen die SFC 14 "DPRD_DAT", weil Sie mit den Ladebefehlen, die auf die Peripherie bzw. auf das Prozeßabbild der Eingänge zugreifen, maximal vier Bytes zusammenhängend auslesen können.

  4. #4
    Avatar von Chräshe
    Chräshe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Hallo Manfred,

    ich kann da doch nur die Zugriffs- Breite angeben!?
    So sieht das aus:
    2012-06-04_SFC14-15.jpg

  5. #5
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Könntest ein Bild der Hardwareconfig laden?

  6. #6
    Avatar von Chräshe
    Chräshe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Ja, klar...
    2012-06-04_HW.jpg

    Ob die Daten konsistent oder nicht konsistent übertragen werden wäre egal. Da kann ich mich selber drum kümmern...
    Geändert von Chräshe (04.06.2012 um 13:09 Uhr)

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

    Standard

    Das geht nur, wenn du die gesamte Länge, in der Hardware-Konfig als konsistent parametriert hast, bzw. parametrieren kannst.
    Das hängt zu aller erst mal vom Slave bzw. dessen GSD-Datei ab.

    Mfg
    Manuel
    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).

  8. Folgender Benutzer sagt Danke zu MSB für den nützlichen Beitrag:

    Chräshe (04.06.2012)

  9. #8
    Avatar von Chräshe
    Chräshe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Standard

    OK, jetzt geht es!

    Wenn ich bei den SFC14 und SFC15 je 200 Byte angebe, so wie in der HW-Konfig, dann funktioniert es. Ich hatte erwartet dass das ähnlich wie beim "BLKMOV" funktioniert. Daher hatte ich es nur mit 4, 10 und 32 Byte probiert.

    Gruß
    Chräshe

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

    Standard

    Vielleicht noch so als Tip:
    Bei der IM151 kannst du das Prozessabbild auf bis zu 2048 Byte parametrieren,
    mehr kann der eh nicht adressieren ...

    Sprich dann klappts auch mit dem SFC20 ...

    Mfg
    Manuel
    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).

  11. Folgender Benutzer sagt Danke zu MSB für den nützlichen Beitrag:

    Chräshe (04.06.2012)

  12. #10
    Registriert seit
    24.05.2006
    Beiträge
    234
    Danke
    14
    Erhielt 77 Danke für 57 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nein MSB, SFC20 geht leider nicht (hab' ich mir aucgh schon öfter gewünscht). Der unterstützt keine direkten Peripheriezugriffe. Siehe hierzu auch die Hilfe im Simatic Manager:
    Code:
    Parameter  Deklaration  Datentyp  Speicherbereich  Beschreibung
    SRCBLK     INPUT        ANY       E, A, M, D, L    Angabe des Speicherbereichs,  der kopiert werden soll (Quellfeld). Arrays vom Datentyp STRING sind  nicht erlaubt.
    RET_VAL    OUTPUT       INT       E, A, M, D, L    Tritt während der  Bearbeitung der Funktion ein Fehler auf, enthält der Rückgabewert einen  Fehlercode.
    DSTBLK     OUTPUT       ANY       E, A, M, D, L    Angabe des Speicherbereichs,  in den kopiert werden soll (Zielfeld). Arrays vom Datentyp STRING sind  nicht erlaubt.
    Als Bereiche sind leider nur Speicherbereiche (also eben Eingangs- und Ausgangsabbild, Merker, DBs und Lokaldaten) zulässig.

    Aber in einer kleinen Schleife lässt sich sowas notfalls auch selber rauskopieren - allerdings auf Kosten der Konsistenz, hier geht dann maximal ein DW konsistent.

    @Cräshe, vorletzter Post: Den Gedanken, den Peripheriezugriff selber konsistent regeln zu können sollte man sich mal ganz schnell abschminken. Außer über SFC14 / 15, das Eingangs-/Ausgangsabbild oder im taktsynchronen Betrieb hat man keinerlei Einfluß auf den Zeitpunkt der Übertragung der Daten zwischen CPU und PB/PN Master. Das kann mitten im Zyklus, zwischen zwei Befehlen passieren. Das Gemeine ist, dass solche Sachen über Tage und Wochen wunderbar laufen können, aber wenn's dann zu einem Konsistenzproblem kommt sucht man sich 'nen Elch.

Ähnliche Themen

  1. db variabel beschreiben und lesen
    Von demmy86 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 10.08.2011, 15:30
  2. S5 EPROM lesen und brennen
    Von cerole im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 22.03.2011, 17:12
  3. Programm von Logo lesen und dann beobachten
    Von frankuc45 im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 21.03.2011, 13:37
  4. Merkerwörter mit C# und Libnodave aus SPS lesen und schreiben
    Von Red-Sh4nks im Forum Hochsprachen - OPC
    Antworten: 14
    Letzter Beitrag: 04.06.2010, 15:10
  5. Libnodave und das Lesen von SZLids und Indizes!!
    Von Alexandr im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 05.02.2010, 12:16

Lesezeichen

Berechtigungen

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