Signalüberschneidung,erbitte Hilfe

spsbenutzer1

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich habe vor einigen Jahren auf Codesys programmieren gelernt,leider ist mein Wissen doch löchriger als ich dachte. Jetzt möchte ich ein kleines Programm schreiben, komme aber nicht weiter, ich bitte um eure Hilfe.

Software Codesys 2.3.9.44
Programmsprache ST
Hardware easy control EC4P 222

Programmablauf

An Position ,,A,, sollen Teile die auf einem Transportband liegen und per Kamera auf i.O und n.i.O. geprüft werden. Die Kamera kann ein i.O. oder ein n.i.O Signal ausgeben.
An Position ,,B,, werden alle i.O. Teile per Druckluft vom Band gepustet.
Die Positionen werden jeweils von Sensoren erkannt.
Zwischen den Positionen ,,A,, und ,,B,, passen jedoch drei Teile auf das Band.Wie realisiere ich am besten diese Steuerung?Hab bisher Probleme mit Signal Überschneidungen, wenn das erste Teil i.O geprüft wurde werden in meinem Programm bisher alle weiteren Teile auch i.O gesetzt und nicht nur Teil Nr.1 sonder auch Teil Nr.2 und Nr.3. Evtl. die Auswertung in einem Unterprogramm?!Oder doch lieber das ganze über ein Array versuchen?!Oder bin ich total auf dem Holzweg?:p....Bitte um Ratschlag
 
Zuletzt bearbeitet:
Es gibt dafür (wie immer) mehrere Möglichkeiten.

Die beste Variante aus meiner Sicht ist, wenn du einen Inkrementalgeber an deinem Förderband hast.
Mit der Prüfung des Teils speicherst du dir das Ergebnis der Prüfung und den Wert des Gebers in einen (FiFo)Speicher.
Erreicht der Geberwert+Distanz zur Blasdüse den passenden Betrag und ist das Teil = NIO dann pustest du es raus und löscht den Speicher wieder.

Ersatzweise könntest du auch mit der Systemzeit und der zeitlichen Distanz zur Blasdüse arbeiten - das ginge genau so - ist aber nicht so schön (wegen ggf. Anlaufen und/oder Abschalten des Förderbandes).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

sind zwischen A und B Sensoren (Teil 1,2,3) oder sind nur bei A und B Sensoren?

Wenn nur A und B, dann würde ich ein Schieberegister verwenden.
allerdings braucht man da einen definierten Takt. läuft das Band kontinuierlich oder Teil da, Prüfung, Band Start?
Dann wäre "Bandstart" dein Schiebebit.
Wenn nur Dauerlauf, dann vllt. einen Sensor an das Band anbringen, der pro Takt einen Impuls bringt.
 
Erstmal vielen Dank für deine Antwort.Zwischen den Punkten A und B ist keine Sensorik vorhanden,könnte ich aber noch nachrüsten.das mit dem schiebregister ist aber auch ne gute Idee habe sowas allerdings noch nie in ST programmiert, sondern nur auf Siemens LOGO, aber das sollte ja machbar sein den richtigen syntax hinzubekommen und so nen ding in ST zu programmieren.
 
Dank für die Hilfe.Ich glaub das mit dem Inkrementalgeber muss ich mal rausfinden,klingt super dein Lösungvorschlag,bin mir aber nicht sicher ob ich das auch wirklich realisiert bekomme.Bei dem Vorschlag mit Distanz und Zeit zu arbeiten bekomme ich, wie du schon sagtes, ein Problem mit dem Nachlauf und auf Dauer auch mit dem Verschleiss des Förderbandes.LG
 
Moin spsbenutzer,

ich würde auch einen Buffer vorschlagen und nur mit den Sensoren auswerten. Evtl. noch einen Zeit mit reinbringen für die Ausschleußdauer.
Geht nur, wenn immer zwischen A und B drei Kisten sind, Abstand währe egal. Sollte dies nicht so sein, brauchst du einen INI an einem angetriebem rotierendem Teil zum Messen des Weges oder dies SYSTIME.

]:-> chrischanHH

IF SensorA AND NOT _ImageSEnsorA THEN
// Werte schieben ...
FOR _i:= _ki_BufferGroesse TO 2 BY -1 DO
_Buffer[_i] := _Buffer[_i -1];
END_FOR
// ... neuen Wert eintragen
_Buffer[1] := SensorNIO;
END_IF


IF SensorB AND (_Buffer[3]= TRUE) THEN
Druckluft := TRUE;
END_IF


(* Image schreiben *)
_Image_SensorA := SensorA;
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Dank für die Hilfe.Ich glaub das mit dem Inkrementalgeber muss ich mal rausfinden,klingt super dein Lösungvorschlag,bin mir aber nicht sicher ob ich das auch wirklich realisiert bekomme.Bei dem Vorschlag mit Distanz und Zeit zu arbeiten bekomme ich, wie du schon sagtes, ein Problem mit dem Nachlauf und auf Dauer auch mit dem Verschleiss des Förderbandes.LG

Wenn dir der Vorschlag gefällt dann könntest du dich ja daran mal versuchen. Ein paar Eckpunkte habe ich dir ja schon genannt.
Wenn es dann irgendwann einmal klemmen sollte dann postest du deinen Code und ich bin mir sicher, dass wir das dann auch gelösst bekommen.

Gruß
Larry
 
Zurück
Oben