Ladebefehle

woody

Level-1
Beiträge
68
Reaktionspunkte
2
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
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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:ROFLMAO:

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
 
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.
 
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?
6f2563b28ee1c687cf745492af8c3a58.jpg

df744aec1d54ddde66e0129d6480b050.jpg

6bed4dacfd8f6359a3be26987848aebd.jpg


Grüße
 
Zurück
Oben