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

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

Thema: Schreiben von Daten in einen Datenbaustein an einer vom Benutzer festgelegten Stelle

  1. #1
    Registriert seit
    06.12.2011
    Beiträge
    44
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ihr,

    ich habe folgendes Problem. Ich schreibe im Moment an einem Funktionsbaustein.
    Dabei soll in einen Daten Baustein an einer vorgegebenen Stelle Bool-Werte geschrieben werden.
    Das festlegen der Stelle realisier ich

    AUF DBXY
    L #vorgegebene Stelle
    T DBXY.DBW0


    Nun möchte ich im Programm, an die durch die Benutzereingabe festgelegten Stelle, in den Datenbaustein
    schreiben.

    U Bedingung X
    U Bedingung Y
    = DBXY.DBX (die vorgegebene Stelle im Datenbaustein)

    Gibt es eine Möglichkeit durch einen Platzhalter an der gewünschten Stelle in den Baustein zu schreiben?
    Ich hoffe ich habe mein Problem einigermaßen einleuchtend beschrieben.

    Scho mal vielen Dank für die Hilfe°

    Informationen:

    - Simatic 300
    - CPU 317-2-PN/DP
    - Step7 V5.4
    Zitieren Zitieren Schreiben von Daten in einen Datenbaustein an einer vom Benutzer festgelegten Stelle  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    indirekte adressierung über das adressregister.
    lies das http://www.sps-forum.de/showthread.p...iger-FIFO-LIFO
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    06.12.2011
    Beiträge
    44
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    vielen Dank für die schnelle Hilfe. Wollte fragen ob du nicht eine etwas leichtere Erklärung hättest, da der Thread mein bisher erwobenes Wissen übersteigt.
    Sammle im moment erste Erfahrung mit S7 im Rahmen eines Praktikums.

    Schon mal vielen Dank!

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    die Erklärung in dem Thread ist eigentlich gut ... Es gibt aber noch viele andere Threads zu dem Thema - vielleicht einfach mal "indirekte Adressierung" in die Foren-Suche eingeben.
    Ansonsten - was verstehst du denn konkret nicht ? Zu speziellen Fragen, am Besten noch an Hand eines eigenen Codes dargestellt, kann man immer leichter etwas erklären. Ein genereller "Rundumschlag", am Besten noch als fertiger Code, wird dir am Ende gar nichts helfen ...

    Gruß
    Larry

  5. #5
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Mal ein Paar Worte dazu.
    Code:
          AUF   DB   100      LAR1  P#100.0
          U     E      1.0
          U     E      1.1
          =     DBX [AR1,P#0.0]
    Im Adressregister wird die Adresse hinterlegt, die bearbeitet werden soll. Im Beispiel das Bit 100.0.
    Du kannst natürlich variable Werte ins Adressregister schreiben. Den Aufbau kannst du aus der Online-Hilfe ersehen.

    Bei der Zuweisung wird jetzt das Bit 100 im aufgeschlagenen DB beschrieben, da ja im Adressregister der Pointer P#100.0 steht. Was nach dem Komma in der eckigen Klammer angegeben wird, wird einfach zum Adressregister addiert.

    Ich denke damit kommst du recht schnell zurecht, hat ja bei den Multiinstanzen auch gut geklappt.
    Wenn noch fragen offen sind, immer her damit.
    mfG Aventinus

  6. Folgender Benutzer sagt Danke zu Aventinus für den nützlichen Beitrag:

    DDuesentrieb (08.12.2011)

  7. #6
    Registriert seit
    06.12.2011
    Beiträge
    44
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Aventinus,

    Code:
    AUF   DB   100      
    LAR1  P#100.0       
    U     E      1.0       
    U     E      1.1       
    =     DBX [AR1,P#0.0]
    Der Ausschnitt hat mir sehr geholfen. Solang ich den Ausschnitt genau so implementiere klappt alles super.

    Nur würde ich gern bei der Textzeile "LAR1 P#100.0" den Pointer von außen in den Funktionsbaustein übergeben. Also irgendwie in der Form "LAR1 P##test".
    Habe dies auch schon probiert und habe einmal für test den Datentyp REAL hinterlegt und beim anderen mal den Datentyp Pointer. Bei beiden Versuchen habe ich einen Systemfehler auf meiner CPU bekommen.

    Besteht die Möglichkeit, dass der Wert von außen übergeben wird? Wenn ja was mache ich falsch?

    Wie immer vielen Dank für die Hilfe!

  8. #7
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    wie das geht ist in dem link gut beschrieben!

    aber noch mal für dich

    L 100
    sld 3
    lar1

    das ergibt ergibt den pointer p#100.0

    L 2
    +ar1

    das ergibt in verbindung mit dem obigen den pointer p#100.2
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  9. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    DDuesentrieb (08.12.2011)

  10. #8
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab mal auch eine frage ist es möglich einen Datenbaustein der das Format Byte hat in einen INT umzuwandeln?

  11. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Energie85 Beitrag anzeigen
    Ich hab mal auch eine frage ist es möglich einen Datenbaustein der das Format Byte hat in einen INT umzuwandeln?
    ist nicht notwendig. in ein array of byte kannst du alles schreiben, was du willst.
    entscheidend sind die verarbeitenden funktionen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  12. #10
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich glaube du hast mich falsch verstanden.

    Ich möchte einen kompletten Datenbaustein ansprechen nicht die einzelnen Bits oder Bytes.

    Der Datenbaustein ist sagen wir mal 50 byte groß ARRAY[0..49]

    DB200.DBB 1 wert 5
    DB200.DBB 2 wert 6
    DB200.DBB 3 wert 7

    Und jetzt möchte ich den kompletten Datenbaustein auslesen DB200.DBB 567.
    Ich weiß nicht wie ich das machen soll.

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 05.09.2011, 18:26
  2. CSV-Daten in Datenbaustein schreiben?
    Von Poldi007 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 29.03.2010, 02:31
  3. Daten in einen DB schreiben
    Von Stefan_01 im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 01.10.2008, 07:15
  4. Antworten: 0
    Letzter Beitrag: 15.09.2005, 14:11
  5. Antworten: 2
    Letzter Beitrag: 18.07.2005, 10:42

Lesezeichen

Berechtigungen

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