Moin,
wie kann ich unkompliziert der SPS ein Signal geben das ich z.B. P10 erreicht habe und ihr das über meinen Ausgang 10 mitteilen ?
Moin,
wie kann ich unkompliziert der SPS ein Signal geben das ich z.B. P10 erreicht habe und ihr das über meinen Ausgang 10 mitteilen ?
mit trigger
SIGNAL P10Ereicht $OUT[10]
; Position P10 erreicht
TRIGGER WHEN Distance = 0 DELAY = 0 DO P10Ereicht
; P10 anfahren
SLIN XP10
TRIGGER WHEN DISTANCE = switchpoint DELAY = time DO instruction PRIO = prio
Was muss ich denn da jeweils eintragen ?
Distance kann 0 oder 1 sein
ich meine
0 = Zielpunkt
1 = start der bewegung
delay ist verzögerungszeit also 0
bei do dein ausgangssignal
prio ist Priorität
-1 = Automatisch auswählen
fertig dann so
TRIGGER WHEN DISTANCE = 0 DELAY = 0 DO $OUT[10] PRIO = -1
ich meine
0 = Zielpunkt
1 = start der bewegung
Genau andersrum. 0 is beim Verlassen der vorherigen Bewegung und 1 ist beim erreichen der nächsten Bewegung. Um es einfach auszudrücken.
Also Prio musst du beim Setzen/Beschreiben eines Ausganges/Variable nicht zwangsläufig nutzen. Dies gibt nur die Priorität der Abarbeitung an, wenn für eine Bewegung mehrere Trigger-Befehle angegeben werden und wird normal bei Funktionen und UP's gebraucht.
Grüße
Oh dann hab ich das wohl mit Onstart bei Trigger when path verwechselt
Oh dann hab ich das wohl mit Onstart bei Trigger when path verwechselt
Ja , super. Das hat ja schon mal geklappt.
P1
TRIGGER WHEN DISTANCE = 0 DELAY = 0 DO $OUT[10] PRIO = -1
P2
Sobald ich P2 erreicht habe bekommt die SPS jetzt das Signal.
Muss ich es hinter P2 wieder manuell auf false schalten ?
distance natürlich auf 1
copy paste fehler
Hallo Broker,
Das Signal muss auch wieder zurückgesetzt werden, je nachdem wie lang du es gesetzt haben möchtest.
Wenn ein Signal automatisch im Bereich von p2 gesetzt haben möchtest, kannst du es auch mal mit nem Workspace probieren.
Grüße
Also wenn du ihn setzt musst du ihn auch wieder zurück nehmen würde bedeuten
P1
TRIGGER WHEN DISTANCE = 1 DELAY = 0 DO $OUT[10] PRIO = -1
P2
TRIGGER WHEN DISTANCE = 0 DELAY = 0 DO $OUT[10]=FALSE PRIO = -1
P3
Wenn du garnicht möchtest das das Signal dauerhaft an ist und es nur für kurze zeit beim erreichen des Punktes anstehen soll kannst du es auch so machen
P1
TRIGGER WHEN DISTANCE = 1 DELAY = 0 DO PULSE($OUT[10],TRUE,1) PRIO = -1
P2
Damit wird der Ausgang nur gepulsed und nach ablauf der Zeit also die Zahl nach True geht er selbst wieder aus...
Kannst auch einfach ein INT z.B.: iMerker_Position nutzen. Diesen setzt dann auch P1 = 1 ; P2 = 2 ; P3 = 3 usw. diesen legst dann auf einen Ausgangsbereich deiner Wahl und Größe. So mache ich es bei meinen Anlagen. Dann hat die SPS immer die aktuelle Position des Roboters. (nicht verwechseln mit $POS_ACT!)
TRIGGER WHEN DISTANCE = 1 DELAY = 1 DO iMerker_Position=1
P1
TRIGGER WHEN DISTANCE = 1 DELAY = 1 DO iMerker_Position=2
P2
Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können