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

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

Thema: Fragen Programmierung

  1. #1
    Registriert seit
    09.04.2009
    Beiträge
    52
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Vielleicht könnt Ihr mir helfen!?

    Steuerung derzeit Simatic S7-300 CPU312 mit DI/DAs und OP77A

    Problem:
    An der Maschine sind 2 Magazine wo Pappeplatten vereinzelt werden die im Anschluss mit Leim versehen werden.

    Jetzt möchte der Kunde in verschiedener Reihenfolge Magazinieren.
    d.h. max. 15 Pappeplatten pro Produkt und in beliebiger Reihenfolge entweder aus Mag. 1 oder 2 soll variabel eingegeben werden.

    z.b 3 Platten aus Mag.1 dann 1 Platte aus Mag. 2 und wieder 5 aus Mag.1

    Das ganze dann bis zu 15 Platten.

    Ich habe mir gestern schon den Kopf darüber zerbrochen und bekomme derzeit keinen Kösungsansatz hin.

    Was würdet Ihr da machen?

    Gruss Stefan
    Zitieren Zitieren Fragen Programmierung  

  2. #2
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    Array mit 15 felder vom Typ byte.
    Zähler der mit der platte erhöht.

    Ist in erstem Array der Wert 2 (vom OP eingegeben) dann wird magazin 2 genommen. Anschliessend erhöht der Zähler.

    Wenn in array der Wert 0 ist bzw der Zähler 15 erreicht hat, dann ist dass Produkt fertig.

    Mann kann natürlich auch einen DB nehemen. Kommt drauf an wie man das ausweiten will.
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  3. #3
    Registriert seit
    09.04.2009
    Beiträge
    52
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Gerald

    Mit Arrays habe ich noch gar nicht gearbeitet.

    Ich müsste doch auch einen Zähler haben der bis zur max. Anzahl der Platten auf einen einen Eintrag im DB zugreift wo Abgefragt wird Mag. 1 oder 2? Oder?

    Wie wäre das zu lösen?

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Naja ... ganz so einfach, wie Gerri das darstellt wäre das dann auch wieder nicht.
    Im Grunde brauchst du als erstes ein Verpackungs-Rezept. So etwas auf dem OP77 als sinnvolle Eingabe zu machen sehe ich schon als problematisch an. Du müßtest jetzt ja eine Eingabe machen, wo z.B. die Quelle und die Anzahl drinsteht - also z.b. "1,4" (= 4 Platten aus Magazin 1) oder "2,2" (= 2 Platten aus Magazin 2) und irgendwann muß dann noch ein Eintrag "Rezept Ende" (also vielleicht "0,0") kommen.
    Diese Eingaben könnten jetzt natürlich in einem ARRAY_of_STRING (z.B.) in einem DB landen und du müßtest die dann wieder zerlegen.
    Was machst du aber, wenn der Kunde diese Rezepte sich auch noch "merken" möchte ? Oder ist das vielleicht sogar auch schon ein Thema ? Da müßtest du dann von der Visualisierung her schon zu einem MP oder ggf. einer PC-Runtime umschwenken. Hast du das bedacht ?

    Wie auch immer.
    Wenn du das oben vorgeschlagene in AWL realisieren möchtest mußt du relativ viel mit Pointern rummachen. Schicker wäre es, wenn du ggf. so etwas in SCL erstellen möchtest, da du hier wirklich mit Array-Elementen arbeiten kannst. Wäre das eine Option für dich ?

    Gruß
    Larry

  5. #5
    Registriert seit
    09.04.2009
    Beiträge
    52
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Das mit den Werten speichern hat der Kunde schon angesprochen.
    Dafür würde ich dann das OP77A gegen ein OP177B tauschen um Rezepturen zu verwenden.

    Ich habe mir jetzt auch mal was ausgedacht.

    Wenn ich einen DB Anlage mit 15 Einträgen als Byte könnte ich doch folgendermassen Codieren:

    1 = Magazin 1
    2 = Magazin 2
    0 = Produkt fertig

    Jetzt muss ich aber über einen Zähler der nach der Magazinierung immer 1 hochzählt und auf den nächsten DB Eintrag zugreift haben.

    Wäre doch auch Praktikabel? Oder?

    Wie kann man das machen?

    Stefan

  6. #6
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Das wäre dann ein FIFO-Puffer. Da gibt es schon fertige Bausteine von Siemens (weiß aber gerade Name und Nummer nicht). Allerdings können die (wenn ich mich nicht irre) nur Wortzugriffe, aber im Prinzip lässt sich das, was Du vorhast ja genauso gut mit Wortzugriffen machen.
    Gruß
    Michael

  7. #7
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    oder du löscht wenn produkt fertig ist oder ein nueues gestartet wird.

    Im einfachsten Fall:

    // -- AR1 sichern

    TAR1
    T Ar1_temp // Dword

    // -- Daten Löschen

    U fertig
    spbn nfer

    L L#0
    T Zähler

    nfer: NOP 0

    // -- Zähler erhöhen

    U nächste_Platte
    FP MX.Y
    SPBN noin // no increase

    L Zähler
    L 1
    +I
    T Zähler

    noin: NOP 0

    // -- Magazin ermitteln !!!!!!! DBB0 ist erste PLATTE !!!!!!!!!

    AUF DB_Nr

    L Zähler // Bei Byte und beginn bei DBB0 WAS HIER IN VOM AKKU
    sld 3 // GELADEN IST IST DIE BYTE ADRESSE DES DB
    LAR 1

    L DBB[AR1,P#0.0]
    T #aktuelle_Platte // Byte aus DB

    // -- AR1 rückschreiben

    L Ar1_temp // Dword
    LAR1
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  8. #8
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    OP 77 ist doch auch ausreichend.

    INPUT IM OP sind 3 Felder:
    FELD 1 - Program /Rezept
    FELD 2 - Plattennummer // 1..15
    FELD 3 - Plattentyp

    Dann baut man einen DB mit z.b. 3(=3 programme) arrays zu je 15 byte

    zu beachten beim laden ist nur das man den versatz (also den byte begin) des jeweiligen programs zum zähler addiert
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Zitat Zitat von sps-welt Beitrag anzeigen
    Jetzt möchte der Kunde in verschiedener Reihenfolge Magazinieren.
    d.h. max. 15 Pappeplatten pro Produkt und in beliebiger Reihenfolge entweder aus Mag. 1 oder 2 soll variabel eingegeben werden.

    z.b 3 Platten aus Mag.1 dann 1 Platte aus Mag. 2 und wieder 5 aus Mag.1
    @Gerri:
    hattest du das gelesen ? Wenn ja, wie vereinbart sich das mit deinem Vorschlag ?
    Du müßtest dann ja schon min. 15 Eingabe-Zeilen machen, in denen du das Quell-Magazin auswählst.
    Wo speicherst du die Rezepte ? Nur im DB halte ich für etwas flach. Ich würde sie auf jeden Fall im bediengerät vorhalten und dann bei Bedarf an die SPS senden ...

    Gruß
    Larry

  10. #10
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    naja die plattennummer steht doch für die Plattenschicht die bearbeitet werden soll. Die wahrscheinlichkeit das Display zu wechseln bzw dass es defekti st od der Speicher gelöscht wird ist etwas höher (nach meiner erfahrung) als der Speicher der CPU. Ausserdem ist das Projekt dann immer an das TP gebunden
    Geändert von Gerri (29.09.2010 um 15:29 Uhr)
    irgendetwas ist ja immer...
    ING. Gerald Miedler

Ähnliche Themen

  1. Newbie Fragen zur S7-Programmierung
    Von bbking im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 04.08.2011, 01:13
  2. Ein paar Fragen zur S5 Programmierung
    Von matziane im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.08.2011, 23:42
  3. Fragen zur OP-Programmierung mit ProTool
    Von voxrider im Forum HMI
    Antworten: 12
    Letzter Beitrag: 16.02.2007, 09:14
  4. Fragen zur SPS Programmierung
    Von Maciek im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.11.2006, 20:35
  5. Einige kurze Fragen zur S5-Programmierung
    Von apachler im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.11.2005, 09:47

Lesezeichen

Berechtigungen

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