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

Results 1 to 4 of 4

Thread: POKE-Befehl in SCL bei optimierten Bausteinen

  1. #1
    Join Date
    05.07.2019
    Posts
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe eine Frage zum POKE-/PEEK-Befehl in SCL (TIA V15.1).

    Hierzu folgender Codeausschnitt:

    POKE(area := 16#84, // Auswahl DB
    dbNumber := (DINT Variable), //DB Nummer
    byteOffset := 4, //Adresse??
    value := PEEK_BYTE(area := 16#84, dbNumber := (DINT Variable), byteOffset := 4));

    Mein Problem ist nun, dass ich die "Adresse" (byteOffset) des DB´s nicht verstehe.
    Im Infosystem steht bei byteOffset: "Adresse, die geschrieben wird"
    Was heißt das genau in Bezug auf obiges Beispiel Adresse: 4? Welche Variable wird im DB adressiert?
    Mich wundert es zusätzlich, dass bei Aktivierung des optimierten Bausteinzugriffs kein Syntax-Fehler kommt.

    Für eure Hilfe wäre ich sehr dankbar

    mfg
    PLC1
    Reply With Quote Reply With Quote POKE-Befehl in SCL bei optimierten Bausteinen  

  2. #2
    Join Date
    27.06.2015
    Location
    Hamburg
    Posts
    1,026
    Danke
    224
    Erhielt 314 Danke für 247 Beiträge

    Default

    Moin,
    früher, in der nicht optimierten Welt, hatte jede Variable bspw. in einem DB eine für den Anwender sichtbare Adresse. Und diesen Byteoffset, also den additiven Offset zur Startadresse der ersten Variable im DB, kannst du dort angeben. In deinem Fall wird ab Adresse 4.0 ein Byte gelesen (Peek_Byte) und via Poke wiederum auch in Adresse 4.0 geschrieben. - macht so zwar kein Sinn, ist aber so.
    Diese Adressen machen aber natürlich nur Sinn, wenn man auch eine Adresse im DB adressieren kann -> also nur, wenn man nicht optimiert arbeitet.
    Das steht auch so in der Hilfe:
    Mit der Anweisung "Speicheradresse schreiben" schreiben Sie eine Speicheradresse ohne Angabe eines Datentyps in einen Standard-Speicherbereich.

  3. #3
    PLC1 is offline Neuer Benutzer
    Themenstarter
    Join Date
    05.07.2019
    Posts
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke für die schnelle Antwort. So in der Art dachte ich mir das auch schon. Ich war mir nur unsicher, da kein Syntax-Fehler kommt, obwohl ich den optimierten Zugriff aktiviert habe. Eigentlich sollte das Programm die Adresse 4 nicht kennen und demnach ein Fehler generieren?
    D.h. auch wenn das Programm übersetzbar ist, wird mir der Codeabschnitt mit dieser Konfiguration keine Aktion ausführen können

  4. #4
    Join Date
    27.06.2015
    Location
    Hamburg
    Posts
    1,026
    Danke
    224
    Erhielt 314 Danke für 247 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Übersetzbar ist es, weil ja beim übersetzen noch nix schief geht. Erst wenn die SPS den Code ausführt. Gleiches gilt, wenn du dort eine DB-Nummer angibst, die nicht existiert. Ich weis nicht, ob andere Compiler sowas checken würden. Heißt also selbst aufpassen was man tut
    Verwendung des Speicherbereichs 16#84: DB
    Wenn Sie als Speicherbereich einen Datenbaustein verwenden und dieser bei der Erstellung des Programmcodes noch nicht bekannt ist, dann haben Sie die Möglichkeit, den EN-/ENO-Mechanismus zu verwenden, um mögliche Zugriffsfehler zu erkennen.
    Das könnte ich mir auch vorstellen, um zu prüfen, ob man im optimierten Speicher stochert. Weis aber nicht, ob der ENO dann auch zuschlägt - müsste man mal testen.
    Last edited by Howard; 26.07.2019 at 08:50. Reason: aus Code ein Zitat gemacht

  5. Folgender Benutzer sagt Danke zu Howard für den nützlichen Beitrag:

    PLC1 (26.07.2019)

Similar Threads

  1. TIA Adressen bei optimierten DBs
    By Den1uX in forum Simatic
    Replies: 12
    Last Post: 16.03.2018, 15:01
  2. Replies: 4
    Last Post: 08.01.2018, 21:43
  3. Replies: 4
    Last Post: 21.12.2017, 22:17
  4. Replies: 15
    Last Post: 26.01.2017, 12:40
  5. Replies: 26
    Last Post: 29.03.2016, 15:24

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •