-> Hier kostenlos registrieren
Guten Tag,
ich hätte eine Anfängerfage zum SCL.
Ich habe nämlich folgendes Problem, es handelt sich um keine echte Anlage sondern um ein Factory IO Projekt.
Ein Scanner scannt Gray Code von Produkten, die auf einem Gurtförderer transportiert werden. Anschliessend werden alle gescannte Produkte inkl. Datum, Uhrzeit und Gewicht in zwei DB gespeichert (DB1- leichte Teile-200 Werte., DB2- schwere Teile-200 Werte). Am Ende des Gurtförderers befindet sich zweiter Scanner (Scanner_2), der entscheiden soll, ob ein Produkt nach links (leicht) oder nach rechts (schwer) ausgeschleust wird.
Dafür habe ich folgende Anweisung in SCL geschrieben
Produkt_Leicht := "Scanner_2" = "DB1".Produkt[1].Gray_Code
Produkt_Schwer := "Scanner_2" = "DB2".Produkt[1].Gray_Code
Es wird also der Ausgang "Teil_Leicht" angesteuert ,wenn der vom Scanner_2 gescannte Wert sich im DB1 befindet.
der Ausgang "Teil_Schwer" wird angesteuert, wenn der vom Scanner_2 gescannte Wert sich im DB2 befindet.
Da ich jetzt im DB1 als auch in DB2 200 Werte habe, wollte ich vermeiden, um für jeden Grey Code extra eine Anweisung zu schreiben, wie z.B.:
Produkt_Leicht := "Scanner_2" = "DB1"Produkt[1].Gray_Code
Produkt_Leicht := "Scanner_2" = "DB1".Produkt2].Gray_Code
Produkt_Leicht := "Scanner_2" = "DB1".Produkt[3].Gray_Code
Produkt_Leicht := "Scanner_2" = "DB1".Produkt[4].Gray_Code
usw.
Ist das Möglich, eine Anweisung zu schreiben, wo ich das halt etwas unkomplizierter machen könnte, also z.B etwas in die Richtung:
Teil_Leicht := "Scanner_2" = "DB1".Teil[1].Gray_Code TO "DB1".Teil[200].Gray_Code
oder
Teil_Leicht := "Scanner_2" = "DB1".Teil[1-200].Gray_Code
Aslo der Ausgang "Produkt_Leicht" wird angesteuert, wenn sich der von Scanner gescannte Grey Code innerhalb von Bereich DB1".Produkt[1].Gray_Code bis DB1".Produkt[200].Gray_Code befindet bzw. für schwere Teile Bereich DB2".Produkt[1].Gray_Code bis DB2".Produkt[200].Gray_Code
Unten Bild mit DB-Struktur
Ich freue mich über eure Vorschläge
ich hätte eine Anfängerfage zum SCL.
Ich habe nämlich folgendes Problem, es handelt sich um keine echte Anlage sondern um ein Factory IO Projekt.
Ein Scanner scannt Gray Code von Produkten, die auf einem Gurtförderer transportiert werden. Anschliessend werden alle gescannte Produkte inkl. Datum, Uhrzeit und Gewicht in zwei DB gespeichert (DB1- leichte Teile-200 Werte., DB2- schwere Teile-200 Werte). Am Ende des Gurtförderers befindet sich zweiter Scanner (Scanner_2), der entscheiden soll, ob ein Produkt nach links (leicht) oder nach rechts (schwer) ausgeschleust wird.
Dafür habe ich folgende Anweisung in SCL geschrieben
Produkt_Leicht := "Scanner_2" = "DB1".Produkt[1].Gray_Code
Produkt_Schwer := "Scanner_2" = "DB2".Produkt[1].Gray_Code
Es wird also der Ausgang "Teil_Leicht" angesteuert ,wenn der vom Scanner_2 gescannte Wert sich im DB1 befindet.
der Ausgang "Teil_Schwer" wird angesteuert, wenn der vom Scanner_2 gescannte Wert sich im DB2 befindet.
Da ich jetzt im DB1 als auch in DB2 200 Werte habe, wollte ich vermeiden, um für jeden Grey Code extra eine Anweisung zu schreiben, wie z.B.:
Produkt_Leicht := "Scanner_2" = "DB1"Produkt[1].Gray_Code
Produkt_Leicht := "Scanner_2" = "DB1".Produkt2].Gray_Code
Produkt_Leicht := "Scanner_2" = "DB1".Produkt[3].Gray_Code
Produkt_Leicht := "Scanner_2" = "DB1".Produkt[4].Gray_Code
usw.
Ist das Möglich, eine Anweisung zu schreiben, wo ich das halt etwas unkomplizierter machen könnte, also z.B etwas in die Richtung:
Teil_Leicht := "Scanner_2" = "DB1".Teil[1].Gray_Code TO "DB1".Teil[200].Gray_Code
oder
Teil_Leicht := "Scanner_2" = "DB1".Teil[1-200].Gray_Code
Aslo der Ausgang "Produkt_Leicht" wird angesteuert, wenn sich der von Scanner gescannte Grey Code innerhalb von Bereich DB1".Produkt[1].Gray_Code bis DB1".Produkt[200].Gray_Code befindet bzw. für schwere Teile Bereich DB2".Produkt[1].Gray_Code bis DB2".Produkt[200].Gray_Code
Unten Bild mit DB-Struktur
Ich freue mich über eure Vorschläge

Anhänge
Zuletzt bearbeitet: