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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 38

Thema: Problem bei einer Such-Schleife

  1. #11
    Registriert seit
    26.11.2009
    Beiträge
    58
    Danke
    4
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So wie du die Bits abfragst
    Code:
    UN DBX [DBD 0]
    musst du die Pointer ohne Speicherbreich laden:
    Code:
    L P#4.0
    T DBD0
    ...
    L DBD0
    L P#6.4
    <D
    Sonst müsstest du über das Adressregister gehen (LAR1).
    spsfreak12345
    Geändert von spsfreak12345 (23.01.2012 um 22:26 Uhr)

  2. Folgender Benutzer sagt Danke zu spsfreak12345 für den nützlichen Beitrag:

    Imker (23.01.2012)

  3. #12
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Imker Beitrag anzeigen
    Das ist mein DBX 6.4... Wenn ich das richtig verstanden habe. Dbx 0.0 ist 1, dbx 0.1 ist 2, dbx 0.2 ist 3 usw. Demensprechend müsste dann DBX 6.4 = 52 sein.
    Da fängt das Problem an.
    Du musst wenn überhaupt mit der zweier Potenz rechnen.
    Es geht nach meine Tests hier nicht ohne AR1 und AR2, daher ist dein Ansatz nach meinem Empfinden zum Scheitern verurteilt.
    Also Array mit mehren Dimensionen und du hast deine Lösung.


    bike

    btw: aber es ist eine Hausaufgabe und du hast wie selbst geschrieben hast, hier etwas falsches reinabgeschrieben

  4. Folgender Benutzer sagt Danke zu bike für den nützlichen Beitrag:

    Imker (23.01.2012)

  5. #13
    Imker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.01.2012
    Beiträge
    16
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke, hier und im Programm geändert.

    Wenn ich das mit der Loop-Schleife richtig verstehe, dann zählt die immer um 1 herunter.... ich zähle ja sozusagen 1 rauf. Dementsprechend kann ich die ja garnicht anwenden und muss es so machen wie jetzt im Code ... (denk ich mal)

  6. #14
    Imker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.01.2012
    Beiträge
    16
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Da fängt das Problem an.
    Du musst wenn überhaupt mit der zweier Potenz rechnen.
    Es geht nach meine Tests hier nicht ohne AR1 und AR2, daher ist dein Ansatz nach meinem Empfinden zum Scheitern verurteilt.
    Also Array mit mehren Dimensionen und du hast deine Lösung.
    Also ich kann dazu nichts sagen, weil ich nicht weiß wie das geht...
    Ein Array scheint mir zuerst auch recht sinnvoll, aber wenns dann um die Zugriffe geht muss ich passen.
    Mit zweier Potenz rechnen sagt mir schon eher was. Aber scheinbar scheint das doch auch so zu laufen, oder?
    Bin wie gesagt für jeden Ansatz offen, sofern er zum Ziel führt.

    btw: aber es ist eine Hausaufgabe und du hast wie selbst geschrieben hast, hier etwas falsches reinabgeschrieben
    Das abschreiben kam daher, dass ich es von dem Rechner mit Step 7 hier auf den Rechner abgeschrieben habe - Übertragungsfehler. Inzwischen bin ich so schlau und nutze eine Text-datei....
    Eine Aufgabe ist es schon, das stimmt. Aber der Code kommt in jedem Fall von mir, ein Profi hätts wohl anders gemacht ^^

  7. #15
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Imker Beitrag anzeigen
    Also ich kann dazu nichts sagen, weil ich nicht weiß wie das geht...
    Ein Array scheint mir zuerst auch recht sinnvoll, aber wenns dann um die Zugriffe geht muss ich passen.
    Mit zweier Potenz rechnen sagt mir schon eher was. Aber scheinbar scheint das doch auch so zu laufen, oder?
    Also die Bits werden so gezählt:
    Bit 0 1 = 1
    Bit 1 1 = 2
    Bit 2 1 = 4
    Bit 3 1 = 8
    Bit 4 1 = 16
    usw.

    Also ist 52 zu vergleichen Schmarrn.

    Wenn ich mich recht erinnere, dann hat hier Volker einmal sich die Mühe gemacht von und über Pointer etwas zusammen zu stellen.
    Dannach würde ich suchen und mir dieses Wissen aneignen.
    Dann klappt es auch mit dem suchen in einem Feld.


    bike

  8. Folgender Benutzer sagt Danke zu bike für den nützlichen Beitrag:

    Imker (23.01.2012)

  9. #16
    Imker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.01.2012
    Beiträge
    16
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, den hab ich vor ein paar tagen schon gelesen. Paar Sachen verstanden, paar aber auch nicht...
    Hier:
    http://www.sps-forum.de/showthread.p...iger-FIFO-LIFO
    und hier

    http://www.sps-forum.de/showthread.php/12923-Any-Zeiger-für-Datentypen

    Also, wenn ich das recht verstehe müsste ich im DB nur ein Array vom typ bool erstellen. Und in meiner schleife schreib ich dann was wie...

    Code:
          AUF   "PositionenRegal"
          LAR1 P#0.0
    
    //Abbruchbedingung
    
    FIND: U     M     50.0                  // Mein Merker, damit das ganze starten kann, ist eine positiver Flankenmerker
          U(    
          L     DWX [AR1,P#0.0]                   
          L     P#DBX 6.2                   // ist bei meinem Bool-aaray das letzte element
          <D    
          )      
          SPBN  ENDE                         // wenn ja mache weiter, wenn nein = voll, also ende
    
          UN    DBX [AR1,P#0.0]                 // 
          SPB   ELGN
    
          L    P#0.0
          +AR1 P#0.1                                // laut siemens ist das + P#0.1  
          SPA   FIND
    
    ELGN: S     DBX [AR1,P#0.0]                 // Setze das DBX, auf dass der Zeiger zeigt.
    Also so nach diesem Schema?

    EDIT: Merke gerade selber, dass ist *******.... Ich versuchs nochmal...
    EDIT2: so sollte es besser sein
    Geändert von Imker (23.01.2012 um 23:43 Uhr)

  10. #17
    Registriert seit
    26.11.2009
    Beiträge
    58
    Danke
    4
    Erhielt 4 Danke für 4 Beiträge

    Standard

    In deinem Fall funktioniert die LOOP-Schleife nicht, geht nur bei Integer-Werten.

    Ansonsten ist es vermutlich nicht so wichtig, ob den Regal von vorne oder hinten aufgefüllt wird.

    spsfreak12345

  11. Folgender Benutzer sagt Danke zu spsfreak12345 für den nützlichen Beitrag:

    Imker (24.01.2012)

  12. #18
    Imker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.01.2012
    Beiträge
    16
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Alles klar. Ich werde mich dann mal wieder ans testen begeben...

  13. #19
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Also die Bits werden so gezählt:
    Bit 0 1 = 1
    Bit 1 1 = 2
    Bit 2 1 = 4
    Bit 3 1 = 8
    Bit 4 1 = 16
    usw.

    Also ist 52 zu vergleichen Schmarrn.

    Wenn ich mich recht erinnere, dann hat hier Volker einmal sich die Mühe gemacht von und über Pointer etwas zusammen zu stellen.
    Dannach würde ich suchen und mir dieses Wissen aneignen.
    Dann klappt es auch mit dem suchen in einem Feld.


    bike
    Da muß ich dich mal korrigieren, was du schreibst trifft zwar zu, aber beim Thema Pointer hat Imker das schon korrekt gemacht.
    Ein Pointer wird ja erstellt, indem man die gewünschte Byteadresse nimmt und damit ein SLD3 ausführt. Das bedeutet ja nicht anderes als mit 8 multiplizieren. Folglich ist der einfache Zeiger ohne Bereichsinformation im Prinzip ein "Durchnummerieren" der einzelnen Bits. DBX6.4 würde also tatsächlich 8*6+5=53 entsprechen, wenn man den Pointer dezimal eingeben will. Die Schreibweise P#6.4 gefällt mit aber auch besser.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  14. Folgende 2 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    bike (24.01.2012),Imker (24.01.2012)

  15. #20
    Imker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.01.2012
    Beiträge
    16
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also, mal ein Zwischenstand: Bei meinem Programm ohne Array bekomme ich immer einen Fehler, die Steuerung geht auf Stop. Ich hab jetzt vieles probiert, ich blicke aber nicht mehr durch.

    Mit dem Array hab ich auch noch weiter probiert, gegen ende ist es dann aber auch immer auf stop gesprungen.

    Ich werde heute abend leider nicht daran weiterarbeiten können, morgen gehts aber wieder weiter. Wenn jemand noch ein sinnvolle Idee hätte, wäre ich sehr dankbar (Code ist noch vom Prinzip her wie auf der 1. Seite, unten, im Beitrag von mir). Ich brauch keinen Tiptop code, sondern vielmehr hilfe wieso die steuerung immer in stop geht...

Ähnliche Themen

  1. Realisierung einer Schleife
    Von simon-brl im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 05.07.2011, 20:56
  2. Antworten: 16
    Letzter Beitrag: 17.08.2009, 14:57
  3. Antworten: 5
    Letzter Beitrag: 11.06.2008, 16:08
  4. AWL -> Problem bei einer gegebenen Aufgabe
    Von PHANTOMIAS im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 12.04.2008, 14:22
  5. Antworten: 8
    Letzter Beitrag: 24.04.2006, 11:27

Lesezeichen

Berechtigungen

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