-> Hier kostenlos registrieren
Hallo Gemeinde,
Ich habe ein kleines Problem bei meinem aktuellen Projekt.
Es handelt sich um eine Handbetätigte Produktionsanlage.
Der Bediener entscheidet nach einmaligen Prozessablauf ob er das Bauteil ablegt oder ausschläußt als Ausschuss.
Ich muss jetzt irgendwie detektieren ob in den letzten 50 Produzierten Teilen 5 ausgeschläuscht wurden und infolge dessen die Anlage sperren.
Habt ihr einen Ansatz wie ich das anpacken könnte?
Ich dachte jetzt schon an ein Schieberegister das für Gutteile eine 1 Schreibt und Ausschus eben eine null und dann eben nach den nullen detektieren.
Oder habt ihr andere Ideen für mich?
Ich arbeite mit SCL.
Zwischenzeitlich meine erste Idee.
Ich bin was SCL angeht noch anfänger, also weiß ich nocht nicht ob der Code so Sinnvoll ist.
Konnte ihn auch no ned testen.
Grüße Chris
Ich habe ein kleines Problem bei meinem aktuellen Projekt.
Es handelt sich um eine Handbetätigte Produktionsanlage.
Der Bediener entscheidet nach einmaligen Prozessablauf ob er das Bauteil ablegt oder ausschläußt als Ausschuss.
Ich muss jetzt irgendwie detektieren ob in den letzten 50 Produzierten Teilen 5 ausgeschläuscht wurden und infolge dessen die Anlage sperren.
Habt ihr einen Ansatz wie ich das anpacken könnte?
Ich dachte jetzt schon an ein Schieberegister das für Gutteile eine 1 Schreibt und Ausschus eben eine null und dann eben nach den nullen detektieren.
Oder habt ihr andere Ideen für mich?
Ich arbeite mit SCL.
Zwischenzeitlich meine erste Idee.
Code:
// Berrechnung Anlagenstop nach 3 NIO Teilen in den letzten 20 Teilen
// Array Schreibschleife
IF #E_IMP_NIO AND NOT #HM9 THEN
#NIO_20_RING[#array_index] := false;
#array_index := #array_index +1;
;
END_IF;
#HM9 := #E_IMP_NIO;
IF #E_IMP_AL AND NOT #HM10 THEN
#NIO_20_RING[#array_index] := true;
#array_index := #array_index +1;
#NIO_20_RING[#array_index] := true;
#array_index := #array_index +1;
;
END_IF;
#HM10 := #E_IMP_AL;
IF #array_index >= 20 THEN
#array_index := 1;
;
END_IF;
// Array Leseschleife
#array_index_2 := #array_index_2 +1;
IF #NIO_20_RING[#array_index_2] THEN
// IF Statement
;
ELSE #NIO_20_ERR_CNT := #NIO_20_ERR_CNT +1 ;
END_IF;
IF #NIO_20_ERR_CNT >= 3 THEN
#M_Stop_3in20 := true;
END_IF;
IF #array_index_2 >= 20 THEN
#array_index_2 := 1;
#NIO_20_ERR_CNT := 0;
;
END_IF;
// Test Reset Stop Merker
IF "Tag_8" THEN
#M_Stop_3in20 := false;
END_IF;
Ich bin was SCL angeht noch anfänger, also weiß ich nocht nicht ob der Code so Sinnvoll ist.
Konnte ihn auch no ned testen.
Grüße Chris
Zuletzt bearbeitet: