-> Hier kostenlos registrieren
Hallo Leute,
ich brauche dringend Eure Hilfe. Sitze an meiner Studienarbeit und habe mir ein Konzept überlegt wie ich die Schreib - / Lesestation IPT-FP mit U-P6-B5 von Pepperl und Fuchs in Verbindung mit dem IPC 03 TAG (Transponder) automatisieren möchte.
Ich habe eine S7-Steuerung (413 2DP) die ich mit der Step 7 Software programmieren kann. Die SPS ist über den Interbus mit der Schreib -/ Lesestelle verbunden. Die Schreiblesestelle belegt mit insgesamt 10 Byte (EB20 - EB29 Eingangsbytes und AB20 - AB29 Ausgangsbytes den Interbus bzw. die SPS).
Ich versuche schon seit ein paar Wochen dafür ein Prog. zu schreiben, bin aber nicht versiert in der SPS-Programmierung, insbesondere nicht von AWL.
Wer mir wirklich helfen möchte sollte sich das Handbuch zu IPT-FP mit U-P6-B5 und der Pepperl und Fuchs Homepage downloaden. Hier stehen alle relevanten details ab S. 20 erklärt und das sollte dem Verständnis meiner Ausführungen dienlich sein.
http://www.pepperl-fuchs.de/selector/navi/productInfo/doct/tdoct0109__ger.pdf
Das Prog. soll folgendermaßen funktionieren:
- Es soll im Vorfeld eingestellt werden können ob gelesen oder geschrieben werden soll. (Single Read / Single Write)
- Die zu lesen oder zu schreibenden Daten sollen frei verwaltet werden können. Hierzu muß man wissen das der Tag einen Speicher von 928 Bit = 116 Byte = 29 DWORD´s besitzt. Die Adressen 0-28 (29) werden von 00hex -1Chex adressiert. Man kann allerdings min. sowie max. 32 Bit, also ein DWORD in einem Zyklus schreiben. Ich möchte nun Bytes frei anparametrieren können, so dass ich wählen kann welche Bytes ich unter welcher Adresse speichern kann.
Also wähle ich z.B die Adressen 11, 13, 15 aus unter denen ich jeweils 4 Byte also 32 Bit speichern (schreiben) kann. Das selbe auch umgekehrt wenn ich Daten auslesen möcht.
Die zu schreibenden Bytes möchte ich an irgendwelchen schnittstellen (abhängig von der verwendungdstelle) abgreifen, dann nach Lust und Laune zu 32 Bit DWORD´s zusammenstellen und an den TAG übertragen können. Da ich aber immer nur 32 Bit pro Zyklus schreiben kann, muß ich eine Schleif programmieren, die ausserhalb des Zyklus liegt. Hier müssen die Anzahl der zu schreibenden DWORD´s und die Tag-Adressen sowie die entsprechenden Daten verwaltet werden.
Meine Gedanke wäre es 2 FB´s zu verwenden:
1. Vorverarbeitender FB100
Hier sollen die Daten erfasst und die Adressen FB zur Verfügung gestellt werden. hierfür habe ich an einen oder auch zwei Global-DB´s gedacht. Bei einem entweder mit nem Stuct, wo der Adresse die man einträgt irgendwie auch die zu verarbeitenden 4 Byte zugeteilt werden, oder mit zwei DB´s, wo einer die Adressen eingetragen bekommt und der Zweite die zugehörigen Daten. Hierzu fehlt mir aber das know how. Es müß hier geschickt mit Pointern gearbeitet werden.
2. Schreib / Lese - FB FB200
Hier sollen nur die nötigen Daten wie Adresse und 32 Bit Datensatz ankommen und je nach übergebenem Befehl gelesen oder geschrieben werden.
Ist die Adresse 11 erfolgreich beschrieben worden, was anhand des Statuswortes (Antwort der Schreib -/ Lesestelle erfasst werden kann), wird von dem vorbereitendem FB100 die nächste Adresse und die entsprechenden Daten zur verfügung gestellt bis max alle 29 Adressen Ihre Daten erhalten haben. Das ganze muß auch umgekehrt beim lesen möglich sein, so das ich die Adressbereiche, die ich vom TAG lesen möcht und den Ablageort im dafür vorgesehenem DB bestimmen kann.
Ich möchte hier also ein Programm entwerfen das überall anparametrierbar ist. Hierzu brauche ich natürlich auch solche Schnittstellen wie Start, schreiben bzw. lesen I.O. und eine Fehlerausgabe.
Ich danke Euch für jeden brauchbaren Tip.
Gruß Spawn
ich brauche dringend Eure Hilfe. Sitze an meiner Studienarbeit und habe mir ein Konzept überlegt wie ich die Schreib - / Lesestation IPT-FP mit U-P6-B5 von Pepperl und Fuchs in Verbindung mit dem IPC 03 TAG (Transponder) automatisieren möchte.
Ich habe eine S7-Steuerung (413 2DP) die ich mit der Step 7 Software programmieren kann. Die SPS ist über den Interbus mit der Schreib -/ Lesestelle verbunden. Die Schreiblesestelle belegt mit insgesamt 10 Byte (EB20 - EB29 Eingangsbytes und AB20 - AB29 Ausgangsbytes den Interbus bzw. die SPS).
Ich versuche schon seit ein paar Wochen dafür ein Prog. zu schreiben, bin aber nicht versiert in der SPS-Programmierung, insbesondere nicht von AWL.
Wer mir wirklich helfen möchte sollte sich das Handbuch zu IPT-FP mit U-P6-B5 und der Pepperl und Fuchs Homepage downloaden. Hier stehen alle relevanten details ab S. 20 erklärt und das sollte dem Verständnis meiner Ausführungen dienlich sein.
http://www.pepperl-fuchs.de/selector/navi/productInfo/doct/tdoct0109__ger.pdf
Das Prog. soll folgendermaßen funktionieren:
- Es soll im Vorfeld eingestellt werden können ob gelesen oder geschrieben werden soll. (Single Read / Single Write)
- Die zu lesen oder zu schreibenden Daten sollen frei verwaltet werden können. Hierzu muß man wissen das der Tag einen Speicher von 928 Bit = 116 Byte = 29 DWORD´s besitzt. Die Adressen 0-28 (29) werden von 00hex -1Chex adressiert. Man kann allerdings min. sowie max. 32 Bit, also ein DWORD in einem Zyklus schreiben. Ich möchte nun Bytes frei anparametrieren können, so dass ich wählen kann welche Bytes ich unter welcher Adresse speichern kann.
Also wähle ich z.B die Adressen 11, 13, 15 aus unter denen ich jeweils 4 Byte also 32 Bit speichern (schreiben) kann. Das selbe auch umgekehrt wenn ich Daten auslesen möcht.
Die zu schreibenden Bytes möchte ich an irgendwelchen schnittstellen (abhängig von der verwendungdstelle) abgreifen, dann nach Lust und Laune zu 32 Bit DWORD´s zusammenstellen und an den TAG übertragen können. Da ich aber immer nur 32 Bit pro Zyklus schreiben kann, muß ich eine Schleif programmieren, die ausserhalb des Zyklus liegt. Hier müssen die Anzahl der zu schreibenden DWORD´s und die Tag-Adressen sowie die entsprechenden Daten verwaltet werden.
Meine Gedanke wäre es 2 FB´s zu verwenden:
1. Vorverarbeitender FB100
Hier sollen die Daten erfasst und die Adressen FB zur Verfügung gestellt werden. hierfür habe ich an einen oder auch zwei Global-DB´s gedacht. Bei einem entweder mit nem Stuct, wo der Adresse die man einträgt irgendwie auch die zu verarbeitenden 4 Byte zugeteilt werden, oder mit zwei DB´s, wo einer die Adressen eingetragen bekommt und der Zweite die zugehörigen Daten. Hierzu fehlt mir aber das know how. Es müß hier geschickt mit Pointern gearbeitet werden.
2. Schreib / Lese - FB FB200
Hier sollen nur die nötigen Daten wie Adresse und 32 Bit Datensatz ankommen und je nach übergebenem Befehl gelesen oder geschrieben werden.
Ist die Adresse 11 erfolgreich beschrieben worden, was anhand des Statuswortes (Antwort der Schreib -/ Lesestelle erfasst werden kann), wird von dem vorbereitendem FB100 die nächste Adresse und die entsprechenden Daten zur verfügung gestellt bis max alle 29 Adressen Ihre Daten erhalten haben. Das ganze muß auch umgekehrt beim lesen möglich sein, so das ich die Adressbereiche, die ich vom TAG lesen möcht und den Ablageort im dafür vorgesehenem DB bestimmen kann.
Ich möchte hier also ein Programm entwerfen das überall anparametrierbar ist. Hierzu brauche ich natürlich auch solche Schnittstellen wie Start, schreiben bzw. lesen I.O. und eine Fehlerausgabe.
Ich danke Euch für jeden brauchbaren Tip.
Gruß Spawn
Zuletzt bearbeitet: