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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 25

Thema: Vergleichen bis der Arzt kommt....

  1. #11
    Avatar von Lipperlandstern
    Lipperlandstern ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.01.2005
    Ort
    im schönen Lipperland
    Beiträge
    4.494
    Danke
    502
    Erhielt 1.145 Danke für 738 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der String besteht nur aus Zahlen. Diese könnte man natürlich wandeln und die Zahlen dann voneinander subtrahieren. Wenn das Ergebniss 0 ist ist die Zahl ( dann der Barcode) doppelt vorhanden. Trotzdem ein grosser Aufwand, oder ???? *grübel
    Früher gab es Peitschen .... heute Terminkalender

  2. #12
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    also wenn du das in eine zahl wandeln kannst, solltest du das auf jeden fall machen. das erleichtert die sache ungemein.
    also ich würde das dann gar nicht als string ablegen, sondern direkt wandeln und dann in den db schieben. es sei denn du brauchst den string unbedingt. dann würde ich mit 2 db's arbeiten. einer der den string enthält den abnderen der den eintrag als zahl enthält.

    hier mal wie du die gesuchte zahl findest.
    Code:
          AUF   #Datenbaustein              //in_var
          L     #Datenanfang                //in_var
          T     #index                      //temp_var
    anfa: NOP   0                           //Schleifenanfang
          L     #index
          SLD   3
          LAR1  
          L     #suche                      //in_var
          L     DBD [AR1,P#0.0]
          ==D   
          =     #vorhanden                  //out_var
          UN    #vorhanden
          SPB   weit
          L     #index
          T     #position                   //out_var; position im db
          SPA   end
    weit: L     #index
          L     4
          +I    
          T     #index
          L     #anzahl                     //in_var
          >I    
          SPB   end                         //anzahl der dw's erreicht
          SPA   anfa
    end:  NOP   0
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #13
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Zitat Zitat von volker Beitrag anzeigen
    also wenn du das in eine zahl wandeln kannst, solltest du das auf jeden fall machen. das erleichtert die sache ungemein.
    Vorausgesetzt, dass die führenden Nullen nicht berücksichtigt werden müssen!
    Obacht!

  4. #14
    Registriert seit
    29.01.2005
    Beiträge
    277
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo!

    Nur so eine Idee - was währe denn wenn man einen separaten Datenbaustein mit 30 Einträgen nimmt, in denen die Palettennummer an dem jeweiligen Stellplatz eingetragen wird (Platz 8 = 8ter Eintrag). Wenn keine Palette an dem Ort steht, dann eben 0.
    Jetzt musst du beim einlesen einer neuen Palette doch nur schauen, ob der neue Wert bereits eingetragen ist oder nicht

    U #start z.B. durch scanner
    fp m10.0
    spb res
    spa nres

    res: L 0 // mit dem Reset wird der Suchvorgang gestartet
    T #zähler

    nres: L #zähler
    L 31
    >=D // nach 30 durchläufen zum Ende
    spb end

    such: L #zähler // verzweigen je nach Zählerstand
    L 1
    ==D
    spb s001

    TAK
    L 2
    ==D
    spb s002
    .
    .
    .

    TAK
    L 30
    ==D
    spb s030
    spa end

    s001: L #neue Nummer // vergleich neue Nummer mit Palettennummer 1
    L DB10.DBD0
    ==D
    spb dopp
    spa add

    s002: L #neue Nummer // vergleich neue Nummer mit Palettennummer 2
    L DB10.DBD4
    ==D
    spb dopp
    spa add
    .
    .
    .

    add: L#zähler // nach Durchlauf Zähler erhöhen
    L 1
    +D
    T #zähler
    spa end

    dopp: L 30 // wenn vorhanden dann zähler auf 30 setzen - suchlauf beendet
    t #zähler
    s m#dopp

    end: U m#dopp // wenn doppelt, dann reagieren
    was auch immer du dann möchtest...

    is nur so idee, ich hab das nun nicht probiert... Der Suchlauf dauert dann natürlich 30x die Zykluszeit - aber ich denke das sollte hierbei noch nicht allzu schlimm sein...

    Viele Grüße, Tobias
    Ein Experte ist ein Mensch, den man in letzter Minute hinzuzieht,
    um einen Mitschuldigen zu haben.

  5. #15
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    Zitat Zitat von Unregistrierter gast Beitrag anzeigen
    Vorausgesetzt, dass die führenden Nullen nicht berücksichtigt werden müssen!
    Obacht!
    da hast du recht.
    evtl kann man aber auch die fc19 aus den iec zum vergleichen der strings nutzen. bin aber nicht sicher ob man die indirekt adressieren kann.

    keine zeit das zu testen.
    jetzt gehts ab auf die silvesterfeier

    in diesem sinne wünsche ich allen einen guten rutsch ins neue jahr.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  6. #16
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Zitat Zitat von volker Beitrag anzeigen
    da hast du recht.
    evtl kann man aber auch die fc19 aus den iec zum vergleichen der strings nutzen. bin aber nicht sicher ob man die indirekt adressieren kann.
    Du meinst den FC10.
    Der benötigt die Parameter einen String, indirekt ist da nicht !

  7. #17
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Zitat Zitat von Antonio Beitrag anzeigen
    Also mir fällt sonst nur eine Mathematische Lösung ein:
    Da es sich um sehr grosse Zahlen handelt kann ich durch eine Division herausbekommen ob diese Zahl schon mahl dagewesen ist, und zwar so:
    Alle 8-10 Stellige Nummern miteinander Multiplizieren,
    Modulo Division mit neu eingelesener Nummer, Wenn Ergebniss <> 0=noch nicht eingelesen, wenn Ergebniss==0 =Zahl bereits dagewesen
    Lach,

    rechne mal die Potenzen bei 30 zahlen. min 30*10^10
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  8. #18
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Oder auf ohne Hirnschmalz lösen
    Für den 2. Januar ist das die beste Lösung um nicht denken zu müssen

    Code:
    // NW1 Stellplatz 1
    // 
    // Ausführen wenn Auftrag M 0.0 = 1
          U     M      0.0
          SPA   A000
    // Wenn nicht wie immer nix tun
          BEB   
    A000: NOP   0
    // Nun gehts es los ....
    D001: NOP   0
          SPA   D002                        //Platz
          L     DB1.DBD    0
          L     DB1.DBD    0
          ==D   
          SPBN  D002
          T     MW   104
          L     1
          T     MW   100
          L     1
          T     MW   102
     
    D002: NOP   0
          L     DB1.DBD    0
          L     DB2.DBD    0
          ==D   
          SPBN  D003
          T     MW   104
          L     1
          T     MW   100
          L     2
          T     MW   102
    D003: NOP   0
          L     DB1.DBD    0
          L     DB3.DBD    0
          ==D   
          SPBN  D004
          T     MW   104
          L     1
          T     MW   100
          L     3
          T     MW   102
    D004: NOP   0
          L     DB1.DBD    0
          L     DB4.DBD    0
          ==D   
          SPBN  D005
          T     MW   104
          L     1
          T     MW   100
          L     4
          T     MW   102
    D005: NOP   0
    // usw. = 30
    Code:
    // NW2 Stellplatz 2
    D101: NOP   0
          L     DB1.DBD    0
          L     DB1.DBD    0
          ==D   
          SPBN  D102
          T     MW   104
          L     1
          T     MW   100
          L     1
          T     MW   102
     
    D102: NOP   0
          SPA   D103                        // Platz
          L     DB1.DBD    0
          L     DB2.DBD    0
          ==D   
          SPBN  D103
          T     MW   104
          L     1
          T     MW   100
          L     2
          T     MW   102
    D103: NOP   0
          L     DB1.DBD    0
          L     DB3.DBD    0
          ==D   
          SPBN  D104
          T     MW   104
          L     1
          T     MW   100
          L     3
          T     MW   102
    D104: NOP   0
          L     DB1.DBD    0
          L     DB4.DBD    0
          ==D   
          SPBN  D105
          T     MW   104
          L     1
          T     MW   100
          L     4
          T     MW   102
    D105: NOP   0
    // usw. =30
    Code:
    noch ganz viele male bis Stellplatz 30
    Code:
    // NW31 Auftrag ausgeführt und Meldung
    // .....nach 30 mal den Spielchen
          SET   
          R     M      0.0                  // Auftrag Doppel suchen
          S     M      0.1                  // Melde gehorsamst! Auftrag ausgeführt
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  9. #19
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Verwendung kostet eine Kiste Bügelbier.
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  10. #20
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @maxi
    was für'n aufwand wegen ein paar vergleichen. den code kann ich auch nicht so ganz nachvollziehen
    hast du dir mal meinen obigen code angesehen? der erschlägt das doch im handumdrehen.

    @ug
    klar meinte ich die fc10. aber hast recht der lässt sich nicht parametrieren.


    wenn die führenden nullen mitverglichen werden müssen, muss man halt
    bei 30byte 8 mal dbd und 1 mal dbw in der schleife vergleichen.
    halte ich aber nicht für nötig. entweder hat die stelle einen wert oder ist halt 0.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. kommt jetzt TIA...?
    Von rostiger Nagel im Forum Simatic
    Antworten: 526
    Letzter Beitrag: 04.09.2012, 14:25
  2. Wie kommt die Bild Nr an die SPS
    Von MikeJ im Forum HMI
    Antworten: 5
    Letzter Beitrag: 30.04.2010, 06:34
  3. UG kommt zurück!
    Von zotos im Forum Stammtisch
    Antworten: 32
    Letzter Beitrag: 27.12.2007, 16:55
  4. morgen kommt der lehrling...
    Von vierlagig im Forum Stammtisch
    Antworten: 33
    Letzter Beitrag: 08.10.2007, 09:15
  5. Betriebsmeldung kommt ereigniss...
    Von Jochen Kühner im Forum HMI
    Antworten: 2
    Letzter Beitrag: 28.02.2005, 20:33

Lesezeichen

Berechtigungen

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