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

Results 1 to 3 of 3

Thread: S7: Zwei-Dimensonales Feld speichern

  1. #1
    Join Date
    12.09.2003
    Posts
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Habe hier zwei analoge Werte von einer Kraft-Druck-Messung
    und möchte in einem DB ein zweidimensionales Feld speichern.

    Wie programmiere ich sowas am besten.
    Reply With Quote Reply With Quote S7: Zwei-Dimensonales Feld speichern  

  2. #2
    Join Date
    25.06.2003
    Location
    Emden
    Posts
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ich gehe mal davon aus, dass du mehrere Werte speichern möchtest.

    Hiermal eine Möglichkeit (es gibt mehrere)

    Richte einen Zeiger für das Datenfeld ein (Zeiger auf Wert '0' = erstes Datenfeld)
    Erstelle jeweils ein Array mit Namen Kraft und Druck

    Zugriff auf die Werte:

    Code:
    L   #ZEIGER                     // Zeiger laden
    SLW   4                         // Bitbereich ausblenden und *2 (1 Wort weiter)
    LAR1  P##Kraft                  // Pointer auf Datenfeld Kraft setzen
    +AR1                            // *** Zielpointer für aktuelles Feld
    L   #Aktuelle_Kraft             // Laden aktuellen Wert
    T     DIW [AR1,P#0.0]           // Speicher in Datenfeld
    
    L   #ZEIGER                     // Zeiger laden
    SLW   4                         // Bitbereich ausblenden und *2 (1 Wort weiter)
    LAR1  P##Druck                  // Pointer auf Datenfeld Druck setzen
    +AR1                            // *** Zielpointer für aktuelles Feld
    L   #Aktueller_Druck            // Laden aktuellen Wert
    T     DIW [AR1,P#0.0]           // Speicher in Datenfeld
    oder wenn deine Felder z.B. 50 Werte beinhalten und untereinander stehen dann schreibe:

    Code:
    L   #ZEIGER                     // Zeiger laden
    SLW   4                         // Bitbereich ausblenden und *2 (1 Wort weiter)
    LAR1  P##Kraft                  // Pointer auf Datenfeld Kraft setzen
    +AR1                            // *** Zielpointer für aktuelles Feld
    L   #Aktuelle_Kraft             // Laden aktuellen Wert
    T     DIW [AR1,P#0.0]           // Speicher in Datenfeld
    L   #Aktueller_Druck            // Laden aktuellen Wert
    T     DIW [AR1,P#100.0]         // Speicher in Datenfeld
    Das Beispiel ist für einen Instanz DB ausgelegt. Solltest du nicht mit einem Instanz DB arbeiten, musst du die symbolische Pointervorgabe durch eine absolute ersetzen (und natürlich vorher noch den DB aufrufen).
    mfG
    Ingo dV

    Regelmässiges Versagen ist auch
    eine Form der Zuverlässigkeit

  3. #3
    Join Date
    11.11.2003
    Posts
    49
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    wenn du die ganze geschicht "zweidimensional" machst, kannst du ja die werte als z.b. array von zwei real anlegen und legst die werte wie vorher im beispiel ab, nur das du die druckadresse um vier bytes gegenüber der kraft verschiebst. dann brauchst du nur den startwert des arrays eingeben.
    mfg

Similar Threads

  1. Replies: 10
    Last Post: 16.08.2011, 16:31
  2. Replies: 4
    Last Post: 27.05.2009, 10:45
  3. Replies: 9
    Last Post: 16.12.2007, 21:20
  4. Replies: 2
    Last Post: 26.09.2006, 09:04
  5. Replies: 1
    Last Post: 04.12.2005, 12:17

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
  •