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

Seite 1 von 7 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 69

Thema: Zugriff auf einen UDT / Array mit Variablen?

  1. #1
    Registriert seit
    23.05.2005
    Ort
    Mönchengladbach
    Beiträge
    123
    Danke
    18
    Erhielt 5 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    für unser Regallager speichern wir alle Daten in einem Array innerhalb eines UDT's ab.

    Array[1..3,1..5] zB
    Belegt bool
    Frei bool

    Dadurch können wir jedes Fach im Regal eindeutig definieren im Array.

    Soweit so gut.

    Nur wie prüfe ich jetzt am besten ab das ein Fach belegt ist?

    Der Bediener soll ein Fach auswählen, zB Fach 1.2
    Das bedeutet das das Array [1,2] abgefragt werden soll auf Belegt oder Frei.

    Nur wie kann ich es jetzt in Step7 programmieren, das diese beiden Variablen X und Y an eine Vergleichsfunktion übergeben werden?

    Am liebsten wäre mir natürlich wie aus C etc bekannt, das ganze so aufzurufen:

    U "Fach".Fach[x,y].Belegt
    = #Frei

    Das ich also die beiden Variablen X und Y mit den Werten 'füttern' kann die der Benutzer durch seine Fachauswahl bestimmt hat.

    Wenn das so nicht geht, wie dann? Muss man dann jedes Fach in einer Schleife einzeln prüfen? Und wie zählt man dann in der Schleife hoch bzw Runter?

    In C / C++ geht das ganz einfach, nur in Step7 ist das irgendwie ein Buch mit 7 Siegeln

    Gruss,
    Michael
    Zitieren Zitieren Zugriff auf einen UDT / Array mit Variablen?  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    1. mir ist nicht verständlich warum du frei und belegt als 2 variablen benutzt. wenn das fach nicht frei ist, ist es belegt.

    2. du kannst das array folgendermassen ansprechen
    rechte maustaste, symbol einfügen, bei dem db das + anklicken und das array wählen.
    in deinen code wird dann eingefügt DB1.fach[..] .. ersetzt du z.b. durch 1,2. s7 macht dann daraus die absolute adresse.

    du kannst natürlich auch direkt u db1.fach[1,2] schreiben.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    23.05.2005
    Ort
    Mönchengladbach
    Beiträge
    123
    Danke
    18
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Hallo Volker,

    das mit dem Ansprechen schaffe ich ja, aber nur wenn ich die Koordinaten direkt vorgebe.

    Ich möchte aber anstatt fester Werte in der Abfrage Variablen haben, in welche ich dann meine Werte lade und die dann dort genommen werden.

    Nur leider will das nicht klappen wenn ich zB sage:

    "Fach".Fach[#Variable1,#Variable2].Belegt

    Ich möchte halt eine einfache Abfrage haben ob das entsprechende Fach belegt oder frei ist, und dafür am besten nur einen Befehl nutzen, den obigen.
    Im Moment müsste ich jedes Fach einzeln abfragen, was ich mir nicht vorstellen kann das dies so gemacht wird in der Praxis, denn ein Lager mit mehreren Tausend Fächern so abzufragen ist alles andere als schnell und logisch

    Michael

  4. #4
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    da muss ich dich leider entäuschen.

    der index ist ein fester wert und kann zur laufzeit nicht verändert werden (keine variable indizierung möglich).

    die einzige möglichkeit ist, dass du mit einem eindimensionalen array arbeitest.

    also
    fach oben = 1-3
    fach mitte = 4-6
    usw.

    dann könntest du die indirket ansprechen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    Registriert seit
    23.05.2005
    Ort
    Mönchengladbach
    Beiträge
    123
    Danke
    18
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Hallo,

    hmm schade eigendlich das das nicht möglich ist
    Wie wird denn in 'realen' Regallägern die Fachbestimmung getätigt?
    Irgendwie muss das RBG ja wissen wohin es fahren muss.. und das in einer schnellen und speichersparenden Art?

    Gruss,
    Michael

  6. #6
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    mit indirekter Adressierung.

    MfG
    André Räppel
    Zitieren Zitieren Regal  

  7. #7
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    hi,

    wenn ich das richtig verstanden habe, dann brauchst du nur 2 EA-Felder im Visu-System und n Bit.

    1. EA-Feld: Regal Nr.
    2. EA-Feld: Fach Nr.
    Bit: Anfrage starten

    D.h. der Bediener wählt Regal und Fach-Nummer vor und bestätigt die Anfrage. Das Bit wird gespeichert, und von deinem S7-FB nach dem Bearbeiten der Anfrage rückgesetzt.

    Mit Hilfe der 2 Werte, die du bei gestarteter Anfrage auswertest ist es relativ einfach die Werte im ARRAY indirekt auszuwerten.

    Schöne WE

    Micha

  8. #8
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    Zitat Zitat von sps-concept
    Hallo,

    mit indirekter Adressierung.

    MfG
    André Räppel
    klar, aber ich kann das fach nicht direkt über zeile, spalte ansprechen, da es sich um ein mehrdimensionales array handelt.

    ich denke ich würde das so machen.
    ich sehe 100 spalten und 10 zeilen vor.
    mein db würde dann von dw 1-100 die spalten der 1sten zeile enthalten. 101-200 die spalten der 2ten zeile, usw.
    evtl auch mehr als ein int je fach. kommt eben drauf an wieviel daten ich ablegen will.

    dann kann ich ohne probleme die adresse des faches ermitteln.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation
    Zitieren Zitieren Re: Regal  

  9. #9
    Registriert seit
    13.11.2004
    Beiträge
    170
    Danke
    0
    Erhielt 14 Danke für 9 Beiträge

    Standard

    Hallo,

    kleiner Tip am Rande,

    in SCL kann man Arrays variabel adressieren. Vielleicht kann die Abfrage ja in SCL geschrieben werden.

    Gruss
    Zitieren Zitieren Vielleicht mit SCL ???  

  10. #10
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich kenne mich mit scl nicht so gut aus.

    schreib sowas mal in scl. (aber nur ein paar anweisungen) und poste den code mal hier.

    ich würde mir das dann gerne mal in awl ansehen wie das übersetzt worden ist.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Zugriff auf OPC Variablen
    Von mariobc im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 10.10.2011, 19:33
  2. Zugriff auf einen Array eines UDT`s
    Von Andreas- im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.09.2009, 19:02
  3. Array mit Variablen adressieren
    Von Jens im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.12.2006, 20:57
  4. Hardwarenaher Zugriff durch einen FC / FB
    Von mclear im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 10.07.2006, 15:53
  5. Antworten: 1
    Letzter Beitrag: 24.06.2003, 22:14

Lesezeichen

Berechtigungen

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