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

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

Thema: DB Adressierung flexibel

  1. #1
    Registriert seit
    15.04.2008
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    habe da ein Problem. Ich brauche flexible db_Aufrufe. Ich hab das schon hinbekommen das ich den db flexibel habe und zwar mit
    L #int
    T mw60
    AUf DB [mw60]

    habe aber noch das Problem das ich jedes einzelne Bit im DB ansprechen muss also z.B. DB(flexibel).dbx0.0 aber das dbx0.0 muss fest sein.
    Und gibt es ne möglichkeit die ganze db-Adresse als Lokale Ausgangsvariable zu definieren?

    Danke für eure hilfe.
    Zitieren Zitieren DB Adressierung flexibel  

  2. #2
    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

    Pointer Zeiger FIFO LIFO

    lesen, verstehen, bei weiteren fragen hier her zurückkehren
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    BA-Student (15.04.2008)

  4. #3
    BA-Student ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2008
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    danke für die Antwort
    aber das habe ich schon durchgelesen und brachte mich nicht weiter.
    Da ich erst vor kurzem mit SPS Programmierung begonnen habe und mit awl erst seit gestern vertraut bin.
    Brauche ja sowas ähnliches wie
    auf db [mw50]
    L dbx 0.0
    aber das als ausgangsvariable

  5. #4
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    642
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Wenn der Offset innerhalb des DBs immer einheitlich ist, kann direkt ohne weiteres z.B. mittels U DBXx.y zugegriffen werden. Die kombinierte Fassung (U DBz.DBXx.y) ist nicht notwendig und stellt in AWL für die SPS sowieso die beiden Befehle AUF DB z, U DBXx.y dar. Es entfällt allerdings der "symbolische" Zugriff. Eine weitere Alternative wäre es, das Ganze über FB mit Instanz-DBs durchzuführen (wenn es die Aufgabenstellung hergibt).
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  6. #5
    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

    versuch mal bitte in worte zu fassen, was genau du vorhast ... das macht einiges einfacher

    [edit]
    Code:
    L   DBX0.0
    macht keinen sinn, man kann nur byte aufwärts laden und transferieren
    bitzugriffe passieren über z.b. U, O, S, R, = ...
    [/edit]

    [edit2]irgendwie sollten wir uns mit herrn hönle besser absprechen [/edit2]
    Geändert von vierlagig (15.04.2008 um 11:10 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #6
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    642
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von BA-Student Beitrag anzeigen
    danke für die Antwort
    aber das habe ich schon durchgelesen und brachte mich nicht weiter.
    Da ich erst vor kurzem mit SPS Programmierung begonnen habe und mit awl erst seit gestern vertraut bin.
    Brauche ja sowas ähnliches wie
    auf db [mw50]
    L dbx 0.0
    aber das als ausgangsvariable
    L DBX 0.0 geht so nicht bei Siemens (wir sind ja nicht bei IEC 1131 ). Entweder U DBX 0.0 oder O DBX 0.0.
    Was bedeutet Ausgangsvariable? Soll der ein Wert zugewiesen werden? Dann = DBX 0.0, S DBX 0.0, R DBX 0.0, ..
    Vielleicht einfach noch ein paar Zeilen zur Aufgabenstellung schreiben dmit es klarer wird.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  8. Folgender Benutzer sagt Danke zu Rainer Hönle für den nützlichen Beitrag:

    vierlagig (15.04.2008)

  9. #7
    BA-Student ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2008
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das Problem ist das das ich die db-adresse als operand in einem anderen fc benötige.
    Das heißt ich brauch eine flexible db-adresse wie z.b. db[flexibel].dbx0.0 in einer anderen Funktion da diese dann gesetzt werden muss wenn ein signal ansteht. Und ich brauch 26 Verschiedene db-Adressen db [1-26].dbx0.0. Und je nach voreinstellung muss halt ein anderer db aufgerufen werden.
    Also ich stell mir das so vor wenn ich eine 2 wähle wird das bit db2.dbx0.0 gesetzt wenn ich die 14 wähle dann db14.dbx0.0.
    Geändert von BA-Student (15.04.2008 um 11:11 Uhr)

  10. #8
    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



    die db-nummer ist eingangsparameter im format INT an einem FC? richtig?
    in dem FC möchtest du dann das bit 0.0 in diesem DB setzen? sollen es noch mehr bits sein? wieviele?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  11. #9
    BA-Student ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2008
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    soweit richtig
    es sind pro db 26 bits da ich 26 motoren habe und die jeweils einer stufe zugeordnet werden was den 26 db´s entspricht
    möchte das bit aber nicht in dem fc setzen sondern in einem anderen. deshalb brauch ich auch sowas wie einen ausgangsparameter
    Geändert von BA-Student (15.04.2008 um 11:23 Uhr)

  12. #10
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von BA-Student Beitrag anzeigen
    soweit richtig
    es sind pro db 26 bits da ich 26 motoren habe und die jeweils einer stufe zugeordnet werden was den 26 db´s entspricht
    möchte das bit aber nicht in dem fc setzen sondern in einem anderen. deshalb brauch ich auch sowas wie einen ausgangsparameter
    schon mal über nen FB nachgedacht? der kann in ner multiinstanz aufgerufen werden ... anyway

    du meinst nicht zufällig sowas hier?

    Code:
    *
          L     #db_number                  //IN int
          T     #db_number_1                //TEMP int, weil mit IN
          AUF   DB [#db_number_1]           //AUF DB nicht funktioniert
    
          L     0                           // Anfangsadresse im DB laden
          SLD   3                           // Pointer erzeugen
          LAR1                              // in das Adressregister 1 laden
    
          U     #beispielirgendwas
          S     DBX [AR1,P#0.0]             // bit 0.0 im datenbaustein setzen
    
          U     #beispielwasanderes
          S     DBX [AR1,P#4.2]             // bit 4.2 im datenbaustein setzen
    [edit]
    das macht aber nur sinn, wenn die anfangsadresse variabel ist
    bei gleichbleibender anfangsadresse kannst du es ja auch so machen:

    Code:
    *
          L     #db_number                  //IN int
          T     #db_number_1                //TEMP int, weil mit IN
          AUF   DB [#db_number_1]           //AUF DB nicht funktioniert
          U     #beispielirgendwas
          S     DBX 0.0             // bit 0.0 im datenbaustein setzen
    
          U     #beispielwasanderes
          S     DBX 4.2             // bit 4.2 im datenbaustein setzen
    [/edit]
    Geändert von vierlagig (18.04.2008 um 00:25 Uhr) Grund: *
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  13. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    BA-Student (15.04.2008)

Ähnliche Themen

  1. WinCC flexibel
    Von Noops77 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 10.07.2011, 21:34
  2. VB-Möglichkeiten in Flexibel
    Von bibu_works im Forum HMI
    Antworten: 2
    Letzter Beitrag: 16.03.2010, 11:35
  3. WINCC Flexibel
    Von seb992000 im Forum HMI
    Antworten: 9
    Letzter Beitrag: 12.07.2008, 16:15
  4. Flexibel & SQL-Server
    Von repök im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 31.01.2007, 19:12
  5. WinCC Flexibel & ProTOOL
    Von casius im Forum HMI
    Antworten: 3
    Letzter Beitrag: 18.11.2004, 13:52

Lesezeichen

Berechtigungen

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