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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 39

Thema: ständig neue werte aus DB auf den ausgang legen

  1. #1
    Registriert seit
    11.12.2007
    Beiträge
    32
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi!

    ich möchte 480 Doppelwörter aus einem DB auf 64 Ausgänge legen.

    Beispiel:

    alle 10 Sekunden soll gleichzeitig

    DB10.DBD 0 auf AD0
    DB10.DBD 4 soll auf AD4

    dann wieder nach 10 sekunden

    DB10.DBD 8 soll auf AD0
    DB10.DBD 12 soll auf AD4

    usw.


    Es sollen also nur alle 10 sekunden neue werte aus einem vorhandenem Datenbaustein auf immer die gleichen Ausgänge gelegt werden.


    Hat jemand eine Idee,Lösungsvorschlag oder einen Tip?

    Danke!!!!!!!!!
    Zitieren Zitieren ständig neue werte aus DB auf den ausgang legen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hast du dir den nachfolgenden Beitrag aus der FAQ schon mal angesehen ...?
    http://www.sps-forum.de/showthread.php?t=8887

  3. #3
    McPaul ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2007
    Beiträge
    32
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Larry Laffer,

    FAQ habe ich schon gelesen, aber blicke da nicht so durch. Kenne mich mit Pointern leider nicht aus. Werde es mal studieren,brauche nämlich ganz schnell eine Lösung.

    Vielleicht hast du einen Ansatz für mich?

    Danke

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Im Grunde so, wie in dem Beitrag von Volker geschildert ...

    Was ist konkret dein Problem bei der Pointer-Geschichte ? Ich bin nicht der Meinung, dass ich dir damit helfe, wenn ich dir so eine Routine schreibe, wenn du das Ergebnis letztlich nicht verstehst ...

    Gruß
    LL

  5. #5
    McPaul ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2007
    Beiträge
    32
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Muss mich einfach noch mehr damit befassen! Wenn du mir was schreibst und ich es nicht verstehe, dann hat es keinen Sinn!
    Habe noch nie mit Pointern gearbeitet und das ist das Problem!

    Ich Versuche mal einen eigenen Ansatz und stelle den dann hier rein!
    Vielleicht klappt es ja sofort!

    Gruß McPaul

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... ansonsten erkläre ich es dir gerne ...

  7. #7
    McPaul ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2007
    Beiträge
    32
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja,gerne sogar! Ich kenne nur Pointer und Arrays aus C/C++!Da wüste ich, wie es zu machen wäre,aber in Step 7 in AWL?

    Gruß Paul

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Ich habe dir da mal etwas aus einem etwas älteren Beitrag von mir heraus-Kopiert ...

    Anstelle eine Variable (Datenwort) direkt zu adressieren (L DB10.DBW 12) kann du es auch indirekt (über Pointer = Zeiger) ansprechen. Hier gibt es 2 Möglichkeiten. Die eine wäre über das Adress-Register (AR1 oder AR2) wie im Beispiel in der FAQ. Eine andere direkt über den Pointer (L DBW [Pointer]).

    Der Pointer in der S7 basiert auf Bit-Adressierung. Das heißt, wenn du ein Byte ansprechen willst, dann mußt du im Pointer berücksichtigen, dass das 8 Bit beinhaltet. Hierfür wird dann gerne der SLD-Befehl herangenommen (SLD 3 bedeutet das Gleiche wie "mal 8").

    Willst du das Datenwort 4 in deinem DB ansprechen dann programmierst du :

    Code:
    Pointer : dword 
     
    L 4
    SLD 3
    T Pointer 
     
    L DBW [Pointer]
    Hast du das soweit verstanden ?
    Geändert von Larry Laffer (20.03.2008 um 21:02 Uhr)

  9. #9
    McPaul ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2007
    Beiträge
    32
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    jo, ich habe es verstanden!

  10. #10
    McPaul ist offline Benutzer
    Themenstarter
    Registriert seit
    11.12.2007
    Beiträge
    32
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    wenn ich aber word oder dword haben möchte , dann reicht es auch sld 3 zu schreiben oder?

Ähnliche Themen

  1. CodeSys Verschiedene INT Werte in einen Ausgang schieben
    Von c-teg74 im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 08.08.2011, 07:22
  2. Antworten: 1
    Letzter Beitrag: 02.01.2011, 14:20
  3. GND auf PE legen
    Von MrLeeh im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 16.05.2010, 19:43
  4. DB initialisieren und neue werte schreiben
    Von sb9674 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 01.12.2009, 12:15
  5. 2 versch. werte an einem analogen ausgang mit der ps3
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 01.08.2004, 19:54

Lesezeichen

Berechtigungen

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