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

Ergebnis 1 bis 3 von 3

Thema: S7: Zwei-Dimensonales Feld speichern

  1. #1
    Registriert seit
    12.09.2003
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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.
    Zitieren Zitieren S7: Zwei-Dimensonales Feld speichern  

  2. #2
    Registriert seit
    25.06.2003
    Ort
    Emden
    Beiträge
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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
    Zitieren Zitieren Felder  

  3. #3
    Registriert seit
    11.11.2003
    Beiträge
    49
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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

Ähnliche Themen

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

Lesezeichen

Berechtigungen

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