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

Ergebnis 1 bis 9 von 9

Thema: Programm für Paternoster Regal

  1. #1
    progi12 Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    habe folgendes Problem: Ich soll für ein Paternosterregal mit 38 Regalfächern ein Ablaufprogramm schreiben. Nach Eingabe des Zielfaches sollte die Steuerung (Siemens S7-200) den kürzesten Weg berechnen und die kürzeste Richtung ansteuern. Ich hab`s schon mit folgender Formel versucht
    1. Rechnung Betrag(Quellfach - Zielfach)
    2. Rechnung Betrag (Quellfach-Zielfach-Anzahlfächer)
    Abfrage welcher Wert kleiner ist dannn entweder rechtsrum oder linksrum

    aber die Ergebnisse sind frustrierend Hat mir jemand einen Tipp wie ich es am besten programmieren kann oder eine passende Formel für die Berechenung des Kürzesten Weges.
    Zitieren Zitieren Gelöst: Programm für Paternoster Regal  

  2. "Hallo zusammen,

    vielen herzlichen Dank für euere Bemühung. Ohne die nutzlichen Tipps hätte ich es nicht hinbekommen.

    Aber jetzt läufts!!!!

    Danke an alle die sich Gedanken gemacht haben. Bis zum nächsten Mal."


  3. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von progi12

    Abfrage welcher Wert kleiner ist dannn entweder rechtsrum oder linksrum

    aber die Ergebnisse sind frustrierend Hat mir jemand einen Tipp wie ich es am besten programmieren kann oder eine passende Formel für die Berechenung des Kürzesten Weges.
    Unter der Annahme daß:
    1. Die fächer fortlaufend von 1 -38 nummeriert sind.
    2. Der Weg von einem Fach zum anderen immer gleich lang ist egal ob von 4 nach 5 oder von 26 nach 27:
    3. rechtsherum aufsteigende Fachnummern bedeutet

    If ((Ziel -Quelle +38 ) modulo 38 ) < (38/2) then rechts else links.
    Erklärung "modulo" liefert den Rest beim Teilen. Das spart dir irgenwelche Fallunterscheidungen für negative und positive Differenzen.
    Das +38 sorgt dafür, daß die Modulo-Funktion nur positive Zahlen vorgesetzt bekommt.
    Beispiel. Ziel 3, Quelle 37
    3-37 = -34.
    -34 +38 =4
    4 mod 38 = 4
    4 < 19, besser rechts/vorwärts

    Beispiel. Ziel 37, Quelle 3
    37-3 = 34.
    34 +38 =72
    4 mod 38 = 34 (72 / 38 = 1, rest 34)
    34 > 19, besser links/rückwärts
    Zitieren Zitieren Re: Programm für Paternoster Regal  

  4. #3
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Hallo,
    bin zwar nicht so der Experte aber ich versuch mich mal

    Mit Zielfach meinst du wahrscheinlich eine Artikel oder Sachnummer o.ä.

    Denn wenn du das Zielfach direkt angibst brauchst du nichst ermitteln.

    Würde so anfangen:

    In einen DBeine Structur mit 38 "Fächern" als String oder Arrays of Char deklariert in dem dann die, ich nenns mal Sachnummern stehen.

    Nun in SCL die Istposition (z.b. Fach 18 ) nehmen und durch 2 schleifen
    die Sachnummern über die Indexvariable der Structur vergleichen.
    Jeder Schleife eine andere Laufvariable z.b I1 und I2.

    zum schluss vergleichen welche laufvariable kleiner ist und du weisst welche richtung.

    Hoffe ich hab deine Frage richtig verstanden...

    Gruss Andy

  5. #4
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    OK, Zottel war schneller

  6. #5
    progi12 Gast

    Standard

    Vielen Dank für den Tipp zottel.
    Der Befehl "Modulo" gibt es in der S7-200 nicht im Befehlsforrat. Welcher Simatic code wäre hier nötig.
    Zitieren Zitieren "Modulo" Funktion auch in S7-200  

  7. #6
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    die Funktion Festpunktarithmetik Div gibt ein 32bit Wert aus, einmal den Bereich ganze Zahl, und einmal Rest.
    mfg

    dietmar

    Nichts ist so beständig wie ein Provisorium.

  8. #7
    Registriert seit
    24.09.2003
    Beiträge
    122
    Danke
    0
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Hallo,

    wenn der Befehl 'modulo' nicht zu Verfügung steht,
    kann man vor der Berechnung des Offsets durch
    einen Vergleich Ziel < Quelle und entsprechender
    Addition verhindern, das man negative Werte erhält.

    Für den Rechtslauf (aufsteigend) gilt:
    if (Ziel< Quelle) ? Ziel = Ziel + AnzahlFächer (+3
    else:Ziel = Ziel;
    Offset = Ziel - Quelle;
    if(Offset < (Anzahl/2) ? =Rechtlauf
    else: =Linkslauf


    mfg.
    Rolf

  9. #8
    progi12 Gast

    Standard

    Hallo zusammen,

    vielen herzlichen Dank für euere Bemühung. Ohne die nutzlichen Tipps hätte ich es nicht hinbekommen.

    Aber jetzt läufts!!!!

    Danke an alle die sich Gedanken gemacht haben. Bis zum nächsten Mal.
    Zitieren Zitieren Programm läuft  

  10. #9
    Registriert seit
    11.06.2005
    Beiträge
    144
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Servus,

    kurze Info:
    Modulo-operator für S7-200

    http://support.automation.siemens.co...=cs&jumpto=255


    MfG Unreal

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 09.12.2010, 18:08
  2. Steuerung für Paternoster
    Von movix im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 19.04.2008, 07:04
  3. Antworten: 30
    Letzter Beitrag: 11.10.2007, 19:45
  4. Antworten: 0
    Letzter Beitrag: 05.10.2006, 13:56
  5. S5 Programm in ein S7 Programm umwandeln
    Von 1schilcher im Forum HMI
    Antworten: 3
    Letzter Beitrag: 15.01.2006, 11:53

Lesezeichen

Berechtigungen

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