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

Ergebnis 1 bis 8 von 8

Thema: dynamischer Datenbaustein

  1. #1
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute bin neu hier und hoffe Ihr könnt mir helfen.
    Mein Problem:
    Über die Zähler Z1 (Zählerstand Z1 = x) soll der DB[x] aufgerufen werden.
    Jeden der DB[x] hat für den Anfang eine Struktur (s. Anhang).
    Über den zweiten Zähler Z2 (Zählerstand Z2 = y) sollen alle Werte in den DB gespeichert werden.

    Das heißt, mit y=1 sollen alle Werte und für den zweiten Prozesschritt (y=2) nur (ab Druck_K_SOLL bis Temp6) gespeichert werden.
    Es soll pro Prozess immer andere Werte in den selben DB.

    Ich habe es mit Pointer versuch, leider ohne Erfolg.

    Könnt Ihr mir helfen?
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren dynamischer Datenbaustein  

  2. #2
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Da würde ich Dir erst mal raten für den Anfang den DB sauber zu erstellen, am einfachsten im 100 Byte Raster. Stichwort: UDT.

    Dann brauchst Du nur noch mit einem Zeiger + Offset Die Daten zu übertragen.
    Das Grauen lauert in der Zwischenablage !!

  3. #3
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie ist das mit den Rastern gemeint?

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

    Standard

    Deine Zähler mit dem Abstand multilizieren.
    ALso Zähler -1 mal Länge des Datenfeldes. + Startadresse
    ZB:
    Startadresse = 46
    Zähler ist 2
    2-1 * 32 + 46

    Dann hast du deine Adresse und dann mit Schieben ein Pointer bauen und alles kommt an den richtigen Platz.
    Wenn du den SFC20 nimmst musst du dir noch den Pointer manuell zusammenstricken.

    Und es ist auch egal wie groß dein Abstand ist wenn du rechnet



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

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

    S-Victor (08.03.2013)

  6. #5
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Zitat Zitat von S-Victor Beitrag anzeigen
    Wie ist das mit den Rastern gemeint?
    Na ja, wie schon erwähnt, ich hätte mir einen UDT Zusammengesetzt mit den Daten und eine Menge Reservebytes, so das der UDT dann 100 Bytes lang ist.

    Dann die Kopfzeilen aus dem DB an ENDE gestellt.

    Dann ist der erste Druckwert das DBD0, der zweite das DBD100 usw.
    Ich finde das rechnet sich leichter.
    Apropos Rechnung:

    Auch in dieser Version gilts bikes Formel, halt mit anderen Zahlen.
    Das Grauen lauert in der Zwischenablage !!

  7. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    S-Victor (08.03.2013)

  8. #6
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke dtsclipper, danke bike für eure schnelle Antwort.

    habe gemerkt, dass ich mit den Zeigern nicht umgehen kann.
    Habe es auf einer anderen Art versuch und es klappt auch nicht so.

    Es soll eigentlich so ablaufen
    - Werte werden in den Datenbaustein DB1 gespeichert, über Taste "Weiter" werden die ersten Werte in ein DB2 kopiert.
    - neue Werte werden in DB1 gespeichert, jetzt aber sollen die Werte den Werten in DB2 angehängt werden über die Taste "Weiter" usw.

    könnt ihr mir bitte helfen?

    Mein zusammengestelltes Programm:
    ---
    L MW12
    L 1
    >=I
    SPB SCH
    ---
    U "Weiter"
    SPBNB END
    CALL "BLKMOV"
    SRCBLK :=P#DB1.DBX0.0 BYTE 78
    RET_VAL:=MW200
    DSTBLK :=P#DB2.DBX0.0 BYTE 78
    END: NOP 0
    ---
    SCH: U "Weiter"
    SPBNB WER
    CALL FC 12
    Bereichsanfang :=DBX0.0
    Offset :=78
    Datentyp :=B#16#8
    Datenmenge :=9
    DB_Nr :=2
    Bereichs_Zeiger:=#Bereich

    CALL "BLKMOV"
    SRCBLK :=P#DB1.DBX0.0 BYTE 78
    RET_VAL:=MW200
    DSTBLK :=#Bereich
    WER: NOP 0
    Angehängte Dateien Angehängte Dateien

  9. #7
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    die Funktion lautet:
    L P##Bereichs_Zeiger
    LAR1
    L W#16#10
    T B [AR1,P#0.0]
    L #Datentyp
    T B [AR1,P#1.0]
    L #Datenmenge
    T W [AR1,P#2.0]
    L #DB_Nr
    T W [AR1,P#4.0]
    L P##Bereichsanfang
    LAR2
    L #Offset
    SLD 3
    +D /
    L DW#16#FFFFFFF8
    UD
    LAR2
    T D [AR1,P#6.0]
    BEA

  10. #8
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe es hinbekommen.
    Hier mein Lösung
    Angehängte Dateien Angehängte Dateien

Ähnliche Themen

  1. Dynamischer Bitzugriff in Datenbaustein
    Von ffutsi im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 11.11.2011, 16:35
  2. WinCC Flex 2008 dynamischer Archivname
    Von Juergen454 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 12.03.2010, 18:59
  3. dynamischer db aufruf
    Von misconduct im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 24.11.2007, 22:42
  4. Aufbau dynamischer Arrays
    Von Ralle im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 27.02.2007, 17:36
  5. Dynamischer Pointer???
    Von klauserl im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.11.2006, 20:28

Lesezeichen

Berechtigungen

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