spsbenutzer1
Level-1
- Beiträge
- 11
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe ein kleines Programm geschrieben,habe allerdings einen Fehler gemacht, hoffe ihr könnt mir helfen.
Programmablauf
Ein Förderband transportiert Teile welche auf io bzw nio geprüft werden sollen.
An Punkt A werden die Teile von einer Kamera erfasst,daraufhin wird ein io oder nio Signal ausgegeben.
An Punkt B werden die io Teile per Druckluft vom Band geblasen.Zwischen Punkt A und B passt genau kein Teil mehr,das heisst wenn an Punkt B gepustet wird, wird gleichzeitig an Punkt A von der Kamera geprüft.Punkt A und B werden durch Sensoren b2 und b3 erkannt.
Problemstellung
Hab ein Programm in ST mit if-Anweisungen geschrieben.Funktioniert bis zu dem Punkt an dem TOF meinen letzten Merker m3 auflösen soll.Es werden derzeit leider io als auch nio Teile weggepustet weil m3 auch aktiviert wird wenn nio=0 ist,was aber nicht sein darf.Wenn ich aber den Timer aus dem Programm entferne funktioniert das Programm, nur das halt m3 nicht aufgelöst wird. Bitte um Fehlersuche und Berichtigung oder um einen anderen Weg um m3 aufzulösen.Hoffe Ihr helft mir....Bitte geht bei euren Antworten davon aus, dass ich höchsten Grundwissen habe.Vielen Dank im Vorraus
s1=Start-Schalter
motor=Bandmotor
trigger=löst Kamera aus
IF s1=1 THEN motor:=1;m1:=1;
ELSE motor:=0;m1:=0;
END_IF
IF b2=1 THEN trigger:=1;
ELSE trigger:=0;
END_IF
IF io=1 AND nio=0 THEN m2:=1;
END_IF
IF io=0 AND nio=1 THEN m2:=0;
END_IF
IF m2=1 THEN m3:=1;
END_IF
IF m3=1 THEN m2:=0;
END_IF
IF b3=1 AND m3=1 THEN v1:=1;
ELSE v1:=0;
END_IF
TOFInst(IN := b3, PT:= T#50s);
m3 :=TOFInst.Q;
ich habe ein kleines Programm geschrieben,habe allerdings einen Fehler gemacht, hoffe ihr könnt mir helfen.
Programmablauf
Ein Förderband transportiert Teile welche auf io bzw nio geprüft werden sollen.
An Punkt A werden die Teile von einer Kamera erfasst,daraufhin wird ein io oder nio Signal ausgegeben.
An Punkt B werden die io Teile per Druckluft vom Band geblasen.Zwischen Punkt A und B passt genau kein Teil mehr,das heisst wenn an Punkt B gepustet wird, wird gleichzeitig an Punkt A von der Kamera geprüft.Punkt A und B werden durch Sensoren b2 und b3 erkannt.
Problemstellung
Hab ein Programm in ST mit if-Anweisungen geschrieben.Funktioniert bis zu dem Punkt an dem TOF meinen letzten Merker m3 auflösen soll.Es werden derzeit leider io als auch nio Teile weggepustet weil m3 auch aktiviert wird wenn nio=0 ist,was aber nicht sein darf.Wenn ich aber den Timer aus dem Programm entferne funktioniert das Programm, nur das halt m3 nicht aufgelöst wird. Bitte um Fehlersuche und Berichtigung oder um einen anderen Weg um m3 aufzulösen.Hoffe Ihr helft mir....Bitte geht bei euren Antworten davon aus, dass ich höchsten Grundwissen habe.Vielen Dank im Vorraus
s1=Start-Schalter
motor=Bandmotor
trigger=löst Kamera aus
IF s1=1 THEN motor:=1;m1:=1;
ELSE motor:=0;m1:=0;
END_IF
IF b2=1 THEN trigger:=1;
ELSE trigger:=0;
END_IF
IF io=1 AND nio=0 THEN m2:=1;
END_IF
IF io=0 AND nio=1 THEN m2:=0;
END_IF
IF m2=1 THEN m3:=1;
END_IF
IF m3=1 THEN m2:=0;
END_IF
IF b3=1 AND m3=1 THEN v1:=1;
ELSE v1:=0;
END_IF
TOFInst(IN := b3, PT:= T#50s);
m3 :=TOFInst.Q;