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

Ergebnis 1 bis 9 von 9

Thema: Ladebefehle

  1. #1
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo leute ...

    Hatte mich vor einiger zeit hier mal gemeldet und ausreichend Infos bekommen.

    Nun hakt es wieder....

    Und zwar geht es um diese Ladebefehle!

    Ich muss da eine Aufgabe machen die 8 Eingänge hat und 3 Ausgänge. Die Aktoren sind Pneumatikzylinder.

    Pro Zylinder gibt es 2 Sensoren zum abfagen ob GS oder AS. Zusätzlich habe ich noch 2 sensoren zur abfrage ob ein Bauteil vorhanden ist.

    Das ganze hab ich in einer Schrittkette in AWL Programmiert.

    Jetzt wollte ich fragen ob ich meine 8 Eingänge alle auf einmal abfragen kann wenn meine Anlage in Grundstellung steht z.B

    L EB 0
    = M 0.1

    Geht so etwas?
    Muss man den Eingangsbyte vorher Festlegen?

    z.b
    U E 0.0
    U E 0.1
    .
    .
    .
    .
    U E 0.7
    = EB 0

    Auf eine Hilfreiche Antwort wäre ich sehr dankbar
    Zitieren Zitieren Ladebefehle  

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

    Standard

    Geht schon:

    U(
    L EB 0
    L 0
    ==I
    )
    = M 0.1

    M 0.1 sagt, nun, dass alle Bits von EB 0 False sind.
    U( ) muß nicht unbedingt sein, macht das Ganze aber oftmals übersichtlicher. Probier das ruhig mal durch.

    oder

    UN E 0.0
    UN E 0.1
    ...
    UN E0.7
    = M 0.1


    Ein EB wird ja von der SPS in das Prozessabbild eingelesen.
    Du kannst darauf beliebig zugreifen, als Bit, Byte, Word, DWord, je nachdem, was benötigt wird.
    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

  3. #3
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Servus Ralle....

    M 0.1 sagt, nun, dass alle Bits von EB 0 False sind.

    Das verstehe ich jetzt nicht.....
    wenn jetzt steht
    U(
    L EB 0
    L 1
    ==I
    )
    = M 0.1
    sind dann alle Bits True?

    ==I heisst doch vergleich auf gleich oder?

    Unbenannt.PNG

    Hab da jetzt mal ein bild drin....kann ich dieses Prozessabbild so einlesen mit L EB 0 auch wenn S6 und S7 ein 0 Signal liefern?

    grüsse

  4. #4
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    Wenn alle Bits true sein sollen muss es eher so aussehen.
    Was auch logisch ist. Du fragst doch ein Byte ab. Und wenn alle 8 Bits true sind, ist es am Ende 255 dezimal oder FF in hex.

    U(
    L EB 0
    L 255
    ==I
    )
    = M 0.1

    Aber hast du denn ein Byte für GS und ein Byte für AS? Wenn ich programmiere, ist es bei mir immer abwechselnd. Weil manchmal hat man ja auch eine Mittelstellung.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  5. #5
    Registriert seit
    15.05.2015
    Beiträge
    171
    Danke
    6
    Erhielt 37 Danke für 36 Beiträge

    Standard

    Wie meine Vorposter schon gesagt haben geht das schon, ist allerdings übelster Pfusch in meinen Augen. Ich würde nie Eingänge die zu mehreren Aktoren gehören byteweise abfragen. Ausserdem macht es auch keinen Sinn das die Anlage bei allen Eingängen auf 0 in GS ist. Das fragt höchstens ab ob zufällig alle Sensoren defekt sind.

    Ich wrds so machen

    U E0.1 //Aktor 1 GS
    UN E0.2 // Aktor 1 AS
    ..
    ..
    =M1.1 //Anlage in GS

  6. Folgender Benutzer sagt Danke zu TP-Inc für den nützlichen Beitrag:

    PN/DP (15.05.2016)

  7. #6
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.487
    Danke
    1.141
    Erhielt 1.243 Danke für 974 Beiträge

    Standard

    Diese Grundstellungsabfragen über Byte, Word oder gar DWord liebe ich wie Zahnweh.
    Am besten noch dazu, wenn vorher alle E/As durch DBs oder Parameter rangiert werden.
    Natürlich spart es dem Programmierer Arbeit, aber die Instandhalter fluchen ... Ganz besonders wenn es keine vernünftige Visu gibt.

    Also von daher und ganz deutlich und pragmatisch gesagt:
    Lasst den Scheiß!

    Gruß
    Dieter

  8. Folgende 2 Benutzer sagen Danke zu Blockmove für den nützlichen Beitrag:

    PN/DP (15.05.2016),Rudi (15.05.2016)

  9. #7
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo danke für das Feedback...

    Ich stelle jetzt mal mein Programm zur verfügung zur unten genannten Problem Beschreibung.

    Ihr sollt ja nicht meine Hausaufgaben machen sondern nur ob ich das Prinzip verstanden habe....denn ich habe ja schon etwas getan

    Auf einem Förderband werden Bauteile jeweils gemeinsam zu zwei Teilarbeitsstationen transportiert. An der ersten Station wird ein Loch in das Bauteil gebohrt. Das Bauteil wird weitertransportiert und an der zweiten Station wird das Loch angesenkt. Gleichzeitig wird in das nächste Bauteil ein Loch gebohrt. Sind Zylinder A und B Bohrer bzw. Versenker eingefahren, schiebt Zylinder C das Förderband um eine Station weiter.
    Der Bohrer und der Versenker bewegen sich dann nach unten, sobald sich dort ein Bauteil befindet. Zur Bewegung dieser beiden Arbeitsgeräte dienen zwei Zylinder A und B. Die Transporteinrichtung wird mit einem dritten Zylinder C um eine Arbeitsposition weitergeschaltet.
    Zylinder A fährt aus, wenn von S1 ein Bauteil erfasst wird, Zylinder B, wenn von S2 ein Bauteil gemeldet wird. Liegt kein Bauteil unter einem der Zylinder, soll dieser auch nicht ausfahren. Die erforderlichen Bohr- und Versenktiefen werden über zwei Endlagesensoren S6 und S7 abgefragt. Die Grundstellungen des Transportzylinders, des Bohrers und des Versenkers, wird von den Sensoren S3, S4 und S5 erfasst. Der Sensor S8 zeigt einen ausgefahrenen Transportzylinder an.
    Bei der Anlage muss nicht sichergestellt werden, dass nach einer Transportbewegung sowohl unter dem Bohrer als auch unter dem Versenker immer ein Werkstück liegt. Die Bearbeitung soll dann für das fehlende Werkstück aussetzen. Wenn einmal beide Werkstücke zugleich fehlen, sollen beide Arbeitsgeräte nicht abgesenkt werden.

    So das ist meine Problem Beschreibung jetzt mein Programm dazu
    den OB 1 muss ich noch etwas überarbeiten das gefällt mir noch nicht so....

    OB 1

    Netzwerk 1

    U S3 // Bohren GS
    U S4 // Versenken GS
    U S5 // Vorschub GS
    = M 1.0 // Grundstellung

    Netzwerk 2

    U S9 // Wenn der Eintaster betätigt wird
    FP M 0 // wird eine Positive Flanke erkannt für einen Zyklus
    = M 0.1 // Hilfsmerker
    Netzwerk 3
    U M 0.1 // Wenn Hilfsmerker 1 Signal hat
    U M 1.0 // Und Alle Aktoren in Grundstellung sind
    S M 0.2 // Erfolgt eine Freigabe für die Bearbeitung
    U M 0.1 // Wenn der Eintaster nochmals betätigt wird
    U M0.2 // während der Zyklischen bearbeitung
    R M 0.2 // dann wird zurückgesetzt



    Netzwerk 4

    Call FB 1
    Call FB 2
    Call FB 3
    Call FB 4

    Netzwerk 5
    UN M 0.1 //
    R
    R
    R
    R
    R
    R
    R
    R


    FB 1 Bohren

    Netzwerk 1
    U M 0.2 // Freigabe
    U M 1.0 // Wenn Grundstellung
    UN S1 // und kein Teil vorhanden ist
    = M 0.3 // Zuweisung Warten bis Teil kommt

    Netzwerk 2

    U M 0.3 // wenn der Merker 1 Signal hat
    SPN m001 // erfolgt eine Sprunganweisung zu zielmarke m001
    U M 0.2 // Freigabe
    U S3 // Wenn Bohrer GS
    UN S6 // Bohrer nicht AS
    U S 1 // Teil Vorhanden
    S M 0.4 // Freigabe für Bohren
    U M 0.5 // Wenn Bohren Abgeschlossen
    R M 0.4 // dann zurücksetzen

    Netzwerk 3

    U M 0.4 // Wenn Freigabe für Bohren
    U S6 // die untere Endlage erreicht ist
    UN S3 // Bohrer nicht GS
    S M 0.5 // Bohren Abgeschlossen
    U M 0.7 // ende der schrittkette Bohren
    R M 0.5 // rücksetzen Bohren


    Netzwerk 4

    U M 0.5 // Bohren Abgeschlossen
    U S3 // Wenn Bohrer GS
    UN S6 // Bohrer nicht AS
    = M 0.7 // Ende der Schrittkette Bohren


    m001: NOP 0



    FB 2 Versenken
    Netzwerk 1
    U M 0.2 // Freigabe
    U M 1.0 // Wenn Grundstellung
    UN S2 // und kein Teil vorhanden ist
    = M 11 // Zuweisung Warten bis Teil kommt

    Netzwerk2


    U M 11 // wenn der Merker 1 Signal hat
    SPN m002 // erfolgt eine Sprunganweisung zu zielmarke m002
    U M 0.2 // Freigabe
    U S4 // Wenn Versenker GS
    UN S7 // Versenker nicht AS
    U S 2 // Teil Vorhanden
    S M 2.0 // Freigabe für Versenken
    U M 2.1 // Wenn Versenken Abgeschlossen
    R M 2.0 // dann zurücksetzen
    Netzwerk 3

    U M 2.0 // Wenn Freigabe für Versenke
    U S7 // die untere Endlage erreicht ist
    UN S4 // Versenker nicht GS
    S M 2.1 // Versenken Abgeschlossen
    U M 2.2 // ende der schrittkette Versenken
    R M 2.1 // rücksetzen Versenken


    Netzwerk 4

    U S4 // Wenn Versenker GS
    UN S7 // Versenker nicht AS
    U M 2.1 // Versenken Abgeschlossen
    = M 2.2 // Ende der Schrittkette Versenken


    m002: NOP 0







    FB 3 Vorschub
    Netzwerk 1
    U M 0.2 // Freigabe
    U M 1.1 // Wenn Grundstellung
    U M 0.7 // Ende der Schrittkette Bohren
    U M 2.2 // Ende der Schrittkette Versenken
    = M 2.3 // erfolgt eine zuweisung für den Zyklischen Ablauf

    Netzwerk2

    U M 2.3 // wenn der Merker 1 Signal hat
    SPN m003 // erfolgt eine Sprunganweisung zu zielmarke m003
    UN S1 // Kein Teil am Bohrer
    UN S2 // Kein Teil am Versenker
    U S 5 // Vorschub in GS
    UN S 8 // Vorschub nicht AS
    m003: S M 2.4 // Takten
    U M 2.5 // Takten fertig
    R M 2.4 // Takten zurücksetzen

    Netzwerk 3

    U(
    O S1 // Wenn Sensor 1 oder
    O S2 // Sensor 2 oder beide ein Signal melden
    )
    U M 2.4 // Wenn getaktet wird
    UN S 5 // Vorschub nicht in GS
    U S 8 // Vorschub in AS
    = M 2.5 // Takten fertig









    FB 4 Ausgabezuweisungen

    Netzwerk 1
    Bohren
    O M 0.4
    O M 2.5
    = A 0.0

    Netzwerk 2
    Versenken
    O M 2.0
    O M 2.5
    = A 0.1

    Netzwerk 3
    Vorschub
    O M 2.4
    = A 0.2


    grüsse

  10. #8
    Registriert seit
    15.05.2015
    Beiträge
    171
    Danke
    6
    Erhielt 37 Danke für 36 Beiträge

    Standard

    Probier einfach aus obs hinhaut und wenn nicht kannst du ja konkrete Fragen stellen. Und vergib bitte Symbolik wenn dir hier wer helfen soll. Das ist äusserst umständlich zu lesen wenn da einfach nur MX.x steht.

  11. #9
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen. ...
    Habe mir jetzt nochmal mühe gemacht mit dem Programm zu dem oben genannten Aufgaben Stellung!
    Kann man das so als schrittkette akzeptieren?




    Grüße

Ähnliche Themen

  1. Ladebefehle in Ablaufsteurung
    Von Lobo im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 22.06.2005, 09:35

Lesezeichen

Berechtigungen

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