TIA Produktdatenbank direkt auf der PLC

Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit dem String selber wusste ich nicht, habe sie jetzt auch auf 100 begrenzt. Auf der Maschine gibt es ca. 70 Produkte und ich gehe stark davon aus, dass es nicht viel dazu kommt.
Die Bediener sollen eigentlich nur über das HMI das Programm auswählen, dass kann z.b über die eingabe einer Nummer passieren. Dann sollte in dem Testfeld einfach das Produkt stehen, dass sie wissen das es angewählt ist. Im hintergrund möchte ich die Produkte einem Werkzeug zuweisen (z.B Werkzeug 1-6) und dementsprechend die Hubzahl der Maschine reduzieren oder eben erhöhen. Oder ob eine Nietung eingeschaltet ist oder nicht. Für das Kamera Programm muss ich nur eine Zahl der Gruppe vergeben. Dem entsprechend einen Trigger rausgeben.

Also hat der Bediener eine Liste mit den Nummern und zugehörigen Produkten? Oder wie weis der, was für eine Nummer was für ein Produkt ist bei der Auswahl am HMI? Oder soll er am HMI Nummer und Produktname sehen bei der Auswahl?

Bezüglich Werkzeug: Ist das dann auch im Produkt hinterlegt? Also ein zusätzlicher Wert im Rezept? So wie das Kameraprogramm?
 
Wenn die Rezepte tatsächlich fest sind, und sie werden in die Zukunft nicht geändert, dann wurde ich die Lösung mit Ablage in die CPU machen. Sonnst nicht.

Wenn die Rezepte unveränderbar sind, dann wäre es recht einfach. Nach die Inbetriebnahme, eine Snapshot machen, die Snapshot Werte als Startwerte übernehmen, und Aktualwerte initialisieren, und in die CPU übertragen. Dann sind die Rezepte sehr robust abgespeichert, und du hast einen offline Backup in das TIA Projekt.

Wenn die Rezepte veränderbar sein müssen, dann ist es wesentlich komplizierter. Du musst dich überlegen wie du eine Sicherung von die Rezepte machst. Sonnst ist es nicht eine Frage ob die Rezepte verloren gehen sondern wenn.
Und dann wurde ich nach das Standard Rezept Konzept tendieren. Dann bekommst du die Themen erledigt.
Es kostet ein Panel der die Rezepte unterstützt, aber das kostet weniger als die Zeit den man braucht um etwas selber zu basteln.
Ich wurde nicht darauf fokusieren, dass du eine bestehende Basic Panel (1. Generation ?) hast, und die Lösung davon bestimmen lassen.

Nur meine Empfehlung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also hat der Bediener eine Liste mit den Nummern und zugehörigen Produkten? Oder wie weis der, was für eine Nummer was für ein Produkt ist bei der Auswahl am HMI? Oder soll er am HMI Nummer und Produktname sehen bei der Auswahl?

Bezüglich Werkzeug: Ist das dann auch im Produkt hinterlegt? Also ein zusätzlicher Wert im Rezept? So wie das Kameraprogramm?
Welches Werkzeug zu welchen Produkt gehört, gibt es auch Listen zu. Für den Bediener wird ein Zettel mit Programm Nummern vor Ort hängen die soll er einfach eingeben und durch die Eingabe der Zahl Visuell angezeigt werden in einem EA Feld.

Was ich grundlegend nicht verstehe zum aktuellen Zeitpunkt mit was lese ich den INDEX im Array aus?

Um es für mich ein bisschen einfacher zu machen, wenn ich angenommen nur 10 Produkte hätte. Ich im PLC Datentyp einen String [100] für die Artikelnummer erstellt habe und den dazugehörigen DB. Wie kann ich vom HMI aus die einzelnen Produkte anwählen ohne alle 10 Variablen dafür zu nutzen? (ich habe manchmal das Gefühl das ich mich vielleicht falsch ausdrücke, sorry an der stelle)
 
Wenn die Rezepte tatsächlich fest sind, und sie werden in die Zukunft nicht geändert, dann wurde ich die Lösung mit Ablage in die CPU machen. Sonnst nicht.

Wenn die Rezepte unveränderbar sind, dann wäre es recht einfach. Nach die Inbetriebnahme, eine Snapshot machen, die Snapshot Werte als Startwerte übernehmen, und Aktualwerte initialisieren, und in die CPU übertragen. Dann sind die Rezepte sehr robust abgespeichert, und du hast einen offline Backup in das TIA Projekt.

Wenn die Rezepte veränderbar sein müssen, dann ist es wesentlich komplizierter. Du musst dich überlegen wie du eine Sicherung von die Rezepte machst. Sonnst ist es nicht eine Frage ob die Rezepte verloren gehen sondern wenn.
Und dann wurde ich nach das Standard Rezept Konzept tendieren. Dann bekommst du die Themen erledigt.
Es kostet ein Panel der die Rezepte unterstützt, aber das kostet weniger als die Zeit den man braucht um etwas selber zu basteln.
Ich wurde nicht darauf fokusieren, dass du eine bestehende Basic Panel (1. Generation ?) hast, und die Lösung davon bestimmen lassen.

Nur meine Empfehlung.
In meinem Fall sollen die Rezepte nicht zu verändern sein. Sie sollen lediglich das Produkt auswählen und aktivieren. Wenn ein weiteres Produkt hinzukäme würden wir es selber mit dem PG erweitern, da wir immer vor Ort an den Anlagen sind und die Bediener keinen Schaden anrichten können.
 
Wenn das wirklich so rudimentär aufgebaut sein soll, vergiss alles mit filtern, durchblättern usw.

Du machst einfach ein E/A- Feld am HMI, wo der Bediener die Programmnummer eingibt.
Und einen Button mit der Funktion "Produkt aktivieren".

Beim Drücken dieses Buttons kopierst du einfach den Inhalt des entsprechende Array- Indexes, der im E/A- Feld steht, in dein aktives Produkt- Fach (in einem extra DB- vom gleichen Datentyp)

Und als Anzeige am HMI, welches Produkt angewählt ist, zeigst du einfach den String- Wert vom Produktnamen des aktiven Rezeptes in einem E/A- Feld an.
 
Bitte kurze Erklärung, was der Bediener da sieht bzw. wie die Auswahl erfolgen soll.
In den Feld Programm Auswahl soll der Bediener einfach eine Zahl eintragen, wenn dieses Erfolgt ist und er dies mit der Enter Taste bestätigt, soll im Programm aktiv die Nummer stehen die er ausgewählt hat und die anderen Daten Sollen dann angezeigt werden wie Artikel, Produkt usw

Nur das Feld Programm Auswahl ist ein Eingabefeld die anderen nur Ausgabe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In meinem Fall sollen die Rezepte nicht zu verändern sein. Sie sollen lediglich das Produkt auswählen und aktivieren. Wenn ein weiteres Produkt hinzukäme würden wir es selber mit dem PG erweitern, da wir immer vor Ort an den Anlagen sind und die Bediener keinen Schaden anrichten können.
Ok, das war eine wichtige Information.

(ich habe manchmal das Gefühl das ich mich vielleicht falsch ausdrücke, sorry an der stelle)
vielleicht ;)

Was ich grundlegend nicht verstehe zum aktuellen Zeitpunkt mit was lese ich den INDEX im Array aus?
Umgekehrt, der Bediener tippt (oder wählt von eine Liste) der Produkt-ID Nummer ein.
Diese Nummer ist dasselbe wie das Array Index.
Oder was ist das Problem ?

Das ist ein KTP400 ?
Diesen Schirm ist ziemlich klein. Ich wurde die Felder und den Schriftart so gross wie möglich machen.

Das Bild sieht ein bisschen zu einfach aus.
Ich wurde es so machen:
Der Bediener wählt eine Rezeptnummer in die HMI. Damit werden die Array Werte in einen Struktur 'Gewaehlte_Produkt' kopiert.
Auf die HMI eine Rahmen 'gewählte Produkt' mit die Werte von die Rezept Array.

Der Bediener Aktiviert eine Taste 'Gewählte Produkt als nächste aktive Produkt setzen'. Damit werden die Array Werte in einen Struktur 'Naechste_Produkt' kopiert.
Auf die HMI eine Rahmen 'nächste Produkt' mit die Werte von die Struktur 'Naechste_Produkt'.

Der Maschine startet den nächsten Teil. Damit werden die Werte von den Struktur 'Naechste_Produkt' in einen Struktur 'Aktuelle_Produkt' kopiert.
Auf die HMI eine Rahmen 'Aktuelle Produkt' mit die Werte von die Struktur 'Aktuelle_Produkt'.
Das Programm verwendet die Werte in 'Aktuelle_Produkt' um den Sequenz für diesen Teil durchzulaufen.
 
Wenn das wirklich so rudimentär aufgebaut sein soll, vergiss alles mit filtern, durchblättern usw.

Du machst einfach ein E/A- Feld am HMI, wo der Bediener die Programmnummer eingibt.
Und einen Button mit der Funktion "Produkt aktivieren".

Beim Drücken dieses Buttons kopierst du einfach den Inhalt des entsprechende Array- Indexes, der im E/A- Feld steht, in dein aktives Produkt- Fach (in einem extra DB- vom gleichen Datentyp)

Und als Anzeige am HMI, welches Produkt angewählt ist, zeigst du einfach den String- Wert vom Produktnamen des aktiven Rezeptes in einem E/A- Feld an.
Beim Drücken dieses Buttons kopierst du einfach den Inhalt des entsprechende Array- Indexes, der im E/A- Feld steht, in dein aktives Produkt- Fach (in einem extra DB- vom gleichen Datentyp)

genau das bekomme ich aktuell nicht hin, weil ich nicht weiß wie ich den Index auswählen und kopieren kann
 
Ich wurde auch so etwas mit SCL machen.
Mit SCL muss man sich nicht kümmern mit welchen MOVE Baustein der richtige ist.
Einfach Strukturen die mit dieselbe Datentyp definiert sind mit StrukturA := StrukturB ; kopieren. Der SCL Compiler sorgt für die Rest.

Du kannst in einen FUP oder KOP Baustein SCL Zeilen einfügen.

N.B. Ein STRING[100] kann auf den kleinen Schirm nicht angezeigt werden. Einfach die STRINGS etwas realistischer deklarieren. Höchstens STRING[30]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anhang anzeigen 94663
hier müsste ich dann mit dem SCL da Produkt hin kopieren? Wenn ich das richtig verstanden habe?
Dann könnte Ich die Daten weiter verarbeiten?


Ja genau- hier liegt dann das aktive Produkt, dass der Bediener ausgewählt hat und mit dem du auf der Maschine arbeitest.
Das kannst du dann auch auf der HMI anzeigen, so wie du schon mal oben erwähnt hast.
 
Wie gehts? Hast du die Lösung schon implementiert?
Guten Morgen!

Ja habe ich gemacht, hat super geklappt, an der Stelle erstmal DANKE! Das Weiterverarbeiten wird denn auch so hinhauen, wie ich es mir vorstelle.

Dann mal eine Frage nochmal, Ich konnte bei Tia V15.1 wenn ich Z.b den Array angewählt habe nie den Index auswählen. Ich habe gelesen, dass es ab Tia V16 gefixt sein soll?

Sonst hätte ich es vielleicht auch als FUB Lösung hinbekommen, denke ich mal.
Weil mit AWL oder SCL Codes kenne ich mich nicht aus, zumindest wie man die Einweisungen korrekt ausführt.....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde mich an deiner Stelle dann mal mit SCL beschäftigen. Jeder Versuch, anders mit dem Array arbeiten zu wollen, ist "von hinten durch die Brust ins Auge".
Zu deinen Daten vielleicht noch :
Du solltest "Programm Nummer" nicht als 2 Worte schreiben sondern besser so : "ProgrammNummer". Außerdem würde ich dort als Typ nicht WORD sondern INT hernehmen.
Bei den Strings solltest du überlegen wie lang du sie im Einzelnen brauchst. Ich kann mir nicht vorstellen, dass jeder von denen 100 Zeichen lang sein muss ... Es macht also schon aus Sicht der Speicherbelegung Sinn, sie nur so lang zu definieren, wie sie wirklich sein müssen ...
 
Ich würde mich an deiner Stelle dann mal mit SCL beschäftigen. Jeder Versuch, anders mit dem Array arbeiten zu wollen, ist "von hinten durch die Brust ins Auge".
Zu deinen Daten vielleicht noch :
Du solltest "Programm Nummer" nicht als 2 Worte schreiben sondern besser so : "ProgrammNummer". Außerdem würde ich dort als Typ nicht WORD sondern INT hernehmen.
Bei den Strings solltest du überlegen wie lang du sie im Einzelnen brauchst. Ich kann mir nicht vorstellen, dass jeder von denen 100 Zeichen lang sein muss ... Es macht also schon aus Sicht der Speicherbelegung Sinn, sie nur so lang zu definieren, wie sie wirklich sein müssen ...
Ja das denke ich auch, dass ich mich über kurz oder lang damit auch beschäftigen muss. Habe die Strings schon auf 30 reduziert, dass reicht für meine Datenbank und die Programmnummer hatte ich schon auf ein Int geändert gehabt. (war aber noch nicht auf dem letzten Bild ersichtlich)
 
Zurück
Oben