ich würde es so machen. Die Daten die du über die serielle Schnittstelle ausliest in ein Array packen. Am besten in ein drei dimensionales.
ARRAY OF Barcode (Barcode, Zeitstempel, Produkt) musst dir denn natürlich ein Struct schrreiben. Dann hast du dein Array gleich geordnet und kannst es danach weiter verarbeiten. Würde als Bedingung nehmen Lesevorgang beendet und dann das Array in ein File schreiben. Das File kannst dann per Mail verschicken oder auf einen FTP Server ablegen.
MfG
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Blicke im Moment noch nicht ganz durch. Die Möglichkeit mit Arrays wurde mir von meinem Fachvorgesetzten auch vorgeschlagen. Habe aber noch nicht mit Array's gearbeitet. Hat vielleicht jemand ein Beispielprogramm mit Arrays oder irgendwelche nützliche Informationen? Die Archivierung der Barcodedaten zu den einzelnen Produkten ist sekundär. Die letzte Ausleihe sollte ersichtlich sein, damit immer gewährleistet ist, welcher Mitarbeiter das Produkt als letzter gebraucht hat.
Mit Gruss
isom
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Am besten du besorgst dir mal ein Buch für die SPS Programmierung, weil wie es aussieht du bei null anfängst.
Ein Array ist ein Datenfeld, was beschrieben wird mit vordefinierten Variablen. Hast du auch schon die CodeSys Software? Das heißt ja der Mitarbeiter der den Vorgang bearbeitet muss sich irgendwie einloggen ins System bzw. der Mitarbeiter muss sich irgendwie zur Erkennung geben. Dies könnte man über ein Array lösen, wo man die verschiedenen Mitarbeiter einträgt und ihnen eine feste Zahl zum einloggen gibt. Dann weiß das Array durch sucht und gibt die Mitarbeiter Daten aus.
Wenn ein Vorgang gestartet wird, werden die Daten vom Array gelöscht und wieder neubeschrieben. ARRAY OF Vorgang (Zeitstempel,Mitarbeiter, gebuchte Materialien)
Nach Beendigung des Vorgangs werden dann die Daten vom Array in einen CSV Datei geschrieben, das sie nicht verloren gehen und man diese nachvollziehen kann.
Du kannst auch mal direkt bei Wago schauen, da gibt es eine ganze Menge an Programmbeispielen.
Unbedingt Basic´s schaffen für die Programmierung, Array, Variablen, Structs und allgemeine Sachen.
In was für einen Sprache sollst du denn programmieren? FUP, CFC, ST?
MFG
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Habe schon diverse Sachen programmiert, nur keine Arrays und Structs bis jetzt. Die CoDeSys-Software ist vorhanden.
Zur Erkennung des Mitarbeiters; ich weiss nicht ob du etwas falsch interpretiert hast, denn der Mitarbeiter identifiziert sich per persönlichen Barcode , der auf seiner Mitarbeiterkarte aufgedruckt ist. Die Erkennung des Mitarbeiters erfolgt also über den Barcodescanner der seriell an die Wago angeschlossen wird. Das Material hat keinen Barcode. Ich muss also nur seinen persönlichen Code zum Material, welches er ausleihen will, schreiben.
Beispiel eines Ablaufs:
Herr Müller trifft im Magazin ein. Per Barcodescanner identifiziert sich Herr Müller an der Bedieneroberfläche. Eine Liste mit Materialien erscheint. Er will die Bohrmaschine ausleihen. Falls die Bohrmaschine schon ausgeliehen ist, soll lediglich eine Statusmeldung "nicht verfügbar" und der Name des derzeitigen Besitzers erscheinen. Die Freischaltung der Materialien erfolgt mittels Verschlusszylindern - die Detektierung "verfügbar"/"nicht verfügbar" mittels Sensoren.
Ich hoffe Du kannst Dir nun ein vollkommenes Bild meiner Arbeit machen.
Ps. Programmiersprache ist frei wählbar.
Mit Gruss
isom
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2011-02-10
Originally created by: blackenslaver666
Hi.
In deinem Fall lege dir eine benutzerdefinierte Datenstruktur an, das geht im Reiter "Datentypen". Ich würde idealerweise diese als "Material" bezeichnen, z.B.
so:
TYPE Material
STRUCT
Status : BOOL; ( 0 = ausgeliehen, 1 = verfügbar )
IdNummer : STRING; ( Id-Nummer vom Mitarbeiter: Barcode )
...
END_STRUCT
END_TYPE
Diese selbstdefinierter Datentyp sichert dir also deine Materialeigenschaften, je nach Belieben kannst da noch mehr Var/Infos reinpacken, die Datentypen ändern (z.B. Status : INT; (* 0 = ausgeliehen, 1 = verfügbar, 2 = reserviert usw.) oder was löschen.
Jetzt musst du im deinem Programm irgendwo ein ARRAY von diesem selbstdefinierten Datentyp deklarieren, damit der Controller den Speicherbedarf reserviert. Das Array sollte von "0" bis "Anzahl Materialien" laufen. Beispiel: Es gibt nur 2 Materialien: 1 = Bohrmaschine, 2 = Schleifmaschine.
VAR CONSTANT
ANZ_MATERIAL : INT := 2;
END_VAR
Array-Deklaration:
LagerMaterial : ARRAY[0..ANZ_MATERIAL] OF Material; ( Array vom selbstdefinierten Datentyp "Material" für 2 Lagermaterialien )
Das Schöne an diesen Datentypen ist, dass du über den Index auf jede vorhandene Var des Typs zurückgreifen kannst, indem du den Arraynamen, den Punkt und die symbolischen Identifier aneinanderreihst. Z.B. greift das Kommando
den Ausleihstatus der Bohrmaschine ab. Jetzt dann alles noch in einen logischen zeitlichen Zusammenhang gebracht und fertig ist dein Projekt. Ein Ablauf wäre z.B.:
Warten auf Barcode vom Panel
Barcode erhalten, warten auf Materialauswahl
Quellcode nach Materialauswahl
IF LagerMaterial[Materialauswahl].Status THEN ( Material ist verfügbar )
LagerMaterial[Materialauswahl].IdNummer := Barcode; ( Material vom MA "Barcode" ausgeliehen )
LagerMaterial[Materialauswahl].Status := FALSE; ( Material ist JETZT ausgeliehen )
ELSE
; ( Nix tun oder Msg am Panel ausgeben wer Material ausgeliehen hat: Material ist schon weg! )
END_IF
Danke vielmals für deine ausführliche Erklärung! Habe nun eine konkrete Vorstellung wie ich mit meiner Aufgabenstellung fertig werde. DANKE! **MERCI! GRAZIE! **
Euch allen einen schönen Abend!
isom
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo miteinander
Ich plane im Moment meine Abschlussarbeit. Grob beschrieben läuft meine Arbeit auf folgendes hinaus:
Den Barcodeleser (z.B. http://www.sick.com/de/de-de/home/products/product_news/identification_systems/Seiten/clv50x.aspx) wird per serieller Schnittstelle (z.B. 750-650/003-000 ) angeschlossen. Der Barcode wird per ASCII-Protokoll gesendet.
Ich bin mir im Moment im Unklaren, wie ich die Daten weiterverarbeiten kann.
Danke für eure Hilfe!
isom
hallo,
ich würde es so machen. Die Daten die du über die serielle Schnittstelle ausliest in ein Array packen. Am besten in ein drei dimensionales.
ARRAY OF Barcode (Barcode, Zeitstempel, Produkt) musst dir denn natürlich ein Struct schrreiben. Dann hast du dein Array gleich geordnet und kannst es danach weiter verarbeiten. Würde als Bedingung nehmen Lesevorgang beendet und dann das Array in ein File schreiben. Das File kannst dann per Mail verschicken oder auf einen FTP Server ablegen.
MfG
Hallo miteinander!
Erstmals danke für deine Antwort PAKA.
Blicke im Moment noch nicht ganz durch. Die Möglichkeit mit Arrays wurde mir von meinem Fachvorgesetzten auch vorgeschlagen. Habe aber noch nicht mit Array's gearbeitet. Hat vielleicht jemand ein Beispielprogramm mit Arrays oder irgendwelche nützliche Informationen? Die Archivierung der Barcodedaten zu den einzelnen Produkten ist sekundär. Die letzte Ausleihe sollte ersichtlich sein, damit immer gewährleistet ist, welcher Mitarbeiter das Produkt als letzter gebraucht hat.
Mit Gruss
isom
Am besten du besorgst dir mal ein Buch für die SPS Programmierung, weil wie es aussieht du bei null anfängst.
Ein Array ist ein Datenfeld, was beschrieben wird mit vordefinierten Variablen. Hast du auch schon die CodeSys Software? Das heißt ja der Mitarbeiter der den Vorgang bearbeitet muss sich irgendwie einloggen ins System bzw. der Mitarbeiter muss sich irgendwie zur Erkennung geben. Dies könnte man über ein Array lösen, wo man die verschiedenen Mitarbeiter einträgt und ihnen eine feste Zahl zum einloggen gibt. Dann weiß das Array durch sucht und gibt die Mitarbeiter Daten aus.
Wenn ein Vorgang gestartet wird, werden die Daten vom Array gelöscht und wieder neubeschrieben. ARRAY OF Vorgang (Zeitstempel,Mitarbeiter, gebuchte Materialien)
Nach Beendigung des Vorgangs werden dann die Daten vom Array in einen CSV Datei geschrieben, das sie nicht verloren gehen und man diese nachvollziehen kann.
Du kannst auch mal direkt bei Wago schauen, da gibt es eine ganze Menge an Programmbeispielen.
Unbedingt Basic´s schaffen für die Programmierung, Array, Variablen, Structs und allgemeine Sachen.
In was für einen Sprache sollst du denn programmieren? FUP, CFC, ST?
MFG
Danke für deine schnelle Antwort, PAKA!
Habe schon diverse Sachen programmiert, nur keine Arrays und Structs bis jetzt. Die CoDeSys-Software ist vorhanden.
Zur Erkennung des Mitarbeiters; ich weiss nicht ob du etwas falsch interpretiert hast, denn der Mitarbeiter identifiziert sich per persönlichen Barcode , der auf seiner Mitarbeiterkarte aufgedruckt ist. Die Erkennung des Mitarbeiters erfolgt also über den Barcodescanner der seriell an die Wago angeschlossen wird. Das Material hat keinen Barcode. Ich muss also nur seinen persönlichen Code zum Material, welches er ausleihen will, schreiben.
Beispiel eines Ablaufs:
Herr Müller trifft im Magazin ein. Per Barcodescanner identifiziert sich Herr Müller an der Bedieneroberfläche. Eine Liste mit Materialien erscheint. Er will die Bohrmaschine ausleihen. Falls die Bohrmaschine schon ausgeliehen ist, soll lediglich eine Statusmeldung "nicht verfügbar" und der Name des derzeitigen Besitzers erscheinen. Die Freischaltung der Materialien erfolgt mittels Verschlusszylindern - die Detektierung "verfügbar"/"nicht verfügbar" mittels Sensoren.
Ich hoffe Du kannst Dir nun ein vollkommenes Bild meiner Arbeit machen.
Ps. Programmiersprache ist frei wählbar.
Mit Gruss
isom
Originally created by: blackenslaver666
Hi.
In deinem Fall lege dir eine benutzerdefinierte Datenstruktur an, das geht im Reiter "Datentypen". Ich würde idealerweise diese als "Material" bezeichnen, z.B.
so:
TYPE Material
STRUCT
Status : BOOL; ( 0 = ausgeliehen, 1 = verfügbar )
IdNummer : STRING; ( Id-Nummer vom Mitarbeiter: Barcode )
...
END_STRUCT
END_TYPE
Diese selbstdefinierter Datentyp sichert dir also deine Materialeigenschaften, je nach Belieben kannst da noch mehr Var/Infos reinpacken, die Datentypen ändern (z.B. Status : INT; (* 0 = ausgeliehen, 1 = verfügbar, 2 = reserviert usw.) oder was löschen.
Jetzt musst du im deinem Programm irgendwo ein ARRAY von diesem selbstdefinierten Datentyp deklarieren, damit der Controller den Speicherbedarf reserviert. Das Array sollte von "0" bis "Anzahl Materialien" laufen. Beispiel: Es gibt nur 2 Materialien: 1 = Bohrmaschine, 2 = Schleifmaschine.
VAR CONSTANT
ANZ_MATERIAL : INT := 2;
END_VAR
Array-Deklaration:
LagerMaterial : ARRAY[0..ANZ_MATERIAL] OF Material; ( Array vom selbstdefinierten Datentyp "Material" für 2 Lagermaterialien )
Das Schöne an diesen Datentypen ist, dass du über den Index auf jede vorhandene Var des Typs zurückgreifen kannst, indem du den Arraynamen, den Punkt und die symbolischen Identifier aneinanderreihst. Z.B. greift das Kommando
LagerMaterial[1].Status
den Ausleihstatus der Bohrmaschine ab. Jetzt dann alles noch in einen logischen zeitlichen Zusammenhang gebracht und fertig ist dein Projekt. Ein Ablauf wäre z.B.:
IF LagerMaterial[Materialauswahl].Status THEN ( Material ist verfügbar )
LagerMaterial[Materialauswahl].IdNummer := Barcode; ( Material vom MA "Barcode" ausgeliehen )
LagerMaterial[Materialauswahl].Status := FALSE; ( Material ist JETZT ausgeliehen )
ELSE
; ( Nix tun oder Msg am Panel ausgeben wer Material ausgeliehen hat: Material ist schon weg! )
END_IF
Viel Spass damit!
Gruss Andy
Related
Talk.ru: 1
Hi blackenslaver666!
Danke vielmals für deine ausführliche Erklärung! Habe nun eine konkrete Vorstellung wie ich mit meiner Aufgabenstellung fertig werde. DANKE! **MERCI! GRAZIE! **
Euch allen einen schönen Abend!
isom