15
Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 1 RFID Integration in die digitale Fabrik Teilbereich RFID-Writer beim Zulieferer

Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 1

RFID Integration in die digitale Fabrik

Teilbereich RFID-Writer beim Zulieferer

Page 2: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 2

Inhaltsverzeichnis:

1. Ziel 2. Kommunikationsmodell 3. Hardware 4. Integration der Hardware in das bestehende System 5. Die RS-232 Leitung 6. Position Writer 7. Die DLL (icrdll40.dll) 8. Einbinden der DLL in WIN-CC 9. Neue Funktion RFID_SCHREIBEN(); 10. Änderungen der mes2.pas Aktion 11. Änderungen in der lies_ca.bac (MES2) 12. Änderung des SPS Programms 13. Speicherorganisation Titan Tag

14. Stückliste

15. Funktion RFID_SCHREIBEN();

16. Runtime „bild1.pdl“

17. Headerfile „rfid_funktionen.h“

Page 3: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3

1. Das Ziel:

Ziel des Projektes ist es die Anlage in loser Kopplung fertigen zu lassen und zwar mit Hilfe

von RFID. Mit dieser Technologie ist es den einzelnen Fertigungsstationen möglich, nahezu

unabhängig von den Aktionen der anderen Stationen zu fertigen. Der Zulieferer beschreibt

einmalig für einen Auftrag den in den Zulieferer-Teilen enthaltenen RFID-Tag mit den

aktuellen Auftragsdaten.

An den Fertigungsstationen des Stammwerks kann dieser Tag jetzt wieder ausgelesen

werden, die relevanten Auftragsdaten für die Station extrahiert werden und die für diesen

Baustein notwendigen Arbeitsschritte ausgeführt werden.

Es kann somit zu keiner Verwechselung der Aufträge kommen. Bausteine können vom Band

entfernt werden und zu einem beliebigen Zeitpunkt wieder aufs Band gelegt werden die

Auftragszugehörigkeit geht nicht verloren.

Diese Ausarbeitung beschreibt die Integration von RFID beim Zulieferer.

Schema für Ablauf:

Baustein auf

Band

vorfahren

Baustein unter

RFID-Writer

PLCSIM setzt

RFID-Start = 1

Baustein

beschreiben

MES2 setzt

RFID-Busy = 1

Baustein

weiterfahren

an Werkstor

Warten auf

Lichtschranke

Soft-SPS: M0.1=1

Handshake

MES2 wartet auf

RFID-Start = 1

Handshake

MES2 setzt

RFID-Busy = 0

Page 4: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 4

2. Kommunikationsmodell:

Übersicht über die Kommunikationsstruktur des Zulieferers

ERP

MES 2

icrdll40.dll

RFID-Writer Prozessebene

Easy-Port SPS

RS232 RS232

EzOPC

Page 5: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 5

3. Hardware: Die Auswahl der Hardware wurde aufgrund von Kriterien wie Preis, Unterstützung von Verbreiteten

Tag-Standards, RS232/RS485-Fähigkeit und Tag-Größe ausgewählt. Ebenso musste die Firma eine

Stabantenne anbieten um mechanisch möglichst flexibel zu bleiben. Unsere Wahl ist auf die Firma

Megaset gefallen, da unsere Kriterien von ihren Produkten erfüllt werden konnten und der Preis

sehr konkurrenzfähig war.

Von uns bestellte Hardware:

RFID-Writer ICR40-RW-RS232

Der Writer ist von der Firma Megaset und wird über RS232

am Server angeschlossen. Er unterstützt sowohl Titan-Tags wie

Unique-Tags.

World Tag Titan 20mm

Kunststoffgehäuse

Lieferant:

MEGASET Systemtechnik GB der MEGATRON Elektronik AG & Co.

Hermann-Oberth-Str. 7

85640 Putzbrunn/ München

Tel.: +49 (0) 89 / 460 94 - 410

Fax: +49 (0) 89 / 460 94 - 411

Email: [email protected]

http://www.megaset.com

Page 6: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 6

4. Integration der Hardware in das bestehende System:

Um den RFID-Writer seriell mit RS232 ansteuern zu können, wurde er an den Com4 des Servers

(zusätzlich eingebaute RS232-Karte) angeschlossen. Der VM-Host anackin leitet diesen Com4 um

auf die virtuelle Maschine MES2 wo dieser dann wieder als Com2 zur Verfügung steht.

5. RS-232 Leitung:

Die Verbindung ist mittels einer neu verlegten RS232-Leitung vom Server, welcher sich im Keller des

Schulgebäudes befindet, zum RFID-Writer in Raum 13.25 realisiert. Zur Verbindung der beiden

Etagen wurde das bereits verlegte Ethernet-Kabel (in unserem Fall Farbe Grau) verwendet. Die Pin-

Belegung ist aus folgender Tabelle ersichtlich:

Pin Belegung

Sub-D F 9 pol.

RS232-

Verlängerung

Ethernet-Kabel

Etagendurchbruch

RS232-

Verlängerung

Pin Belegung

Sub-D M 9 pol.

Keller Keller Keller<->13.25 Raum 13.25 Raum 13.25

2 RXD Rot / Schwarz Blau Weiß 2

3 TXD Rot / Braun Braun Grün 3

5 Ground Rot / Gelb Orange Gelb 5

Page 7: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 7

6. Position Writer:

Der Writer / Reader ist nahezu am Ende des Bandes angebracht und beschreibt die RFID-Tags von

oben wenn sie mit dem Band an die Schreibposition gefahren werden.

Der Writer besitzt genau ausreichend viel Platz um drei Bausteine (eine Charge) zwischen sich und

dem Werkstor unterzubringen.

RFID_Writer_Antenne

Herr Doll ;-)

RFID_Tag_Lichtschranke

Page 8: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 8

7. Die DLL (icrdll40.dll):

Im Lieferumfang des RFID-Writers ist die icrdll40.dll enthalten. Diese DLL enthält bereits alle

Funktionen die für den Betrieb des RFID-Writers notwendig sind.

Alle Funktionen geben bei erfolgreichem Ausführen den Wert 0 zurück. Konnte die Funktion nicht

ausgeführt werden, z.B. wenn der Com Port schon belegt ist, dann gibt die Funktion den Wert -1

zurück.

Die Funktionen der DLL sind wie folgt deklariert:

int ComInit(int, int); ComInit(Com Port Nummer,0=RS232/1=RS485)

Mit dieser Funktion wird die Nummer des Com Ports festgelegt und anschließend geöffnet sowie

der Verbindungsstandart (RS232/RS485) festgelegt. In unserem Fall ist das Com=2 und RS232=0.

Achtung die DLL schließt den Com-Port nicht mehr. Soll dieser für andere Funktionen wieder

freigegeben werden muss neugestartet werden oder mit der ComInit-Funktion ein anderer Com-

Port geöffnet werden, am besten einer der nicht existiert.

int ReadPage(int,*char); ReadPage(Seiten Nummer, Seiteninhalt)

int WritePage(int,*char); WritePage(Seiten Nummer, Seiteninhalt)

Page => 1 DWord (4 Byte)

Mit diesen beiden Funktionen wird ein Titan-Tag entweder beschrieben bzw. ausgelesen. Dazu wird

die betreffende Nummer der Seite (page) übergeben und gleichzeitig der Seiteninhalt als Adresse

einer Stringvariablen mit 4-Bytes-Länge übergeben.

Weitere relevante Funktionen:

int ResetTag(void); Tag neustarten

int ResetSystem(void); System neustarten

int PowerDown(void); Stromsparen

int SetOutput(int); Ausgang z.B. Led oder Alarmton setzen

Page 9: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 9

8. Einbinden der DLL in Win-CC:

Die DLL-Datei (icrdll40.dll) muss bevor sie verwendet werden kann in WIN-CC eingebunden werden.

Dazu wurde ein Headerfile erzeugt mit dem Namen rfid_funktionen.h im Projektverzeichnis

\MES2_RFID unter \library (Vollständiger Header siehe Ende Dokumentation).

Um Funktionen einer DLL einbinden zu können benötigt WIN-CC folgende Struktur des C-Codes:

#pragma code ("…DLL-Pfad\DLL-Name…")

int …Funktionsname… (int,int);

#pragma code ()

9. Neue Funktion RFID_SCHREIBEN():

In der Funktion RFID_SCHREIBEN wird die gesamte Schreibroutine abgearbeitet. Als Parameter

muss der Funktion die Nummer des aktuell zu beschreibenden Turmes übergeben werden. Es wird

anschließend bei erfolgreichem Beschreiben der Wert 0 zurückgeliefert. Desweiteren wird der

aktuelle Zustand des Writers immer in der WIN-CC Runtime angezeigt.

Die Funktion benötigt jetzt alle zuvor definierten RFID Funktionen, welche mit

#include „RFID_funktionen.h“ eingebunden wurden.

Funktionsablauf:

Com Port öffnen ComInit();

Abfrage nach Baustein vorhanden ReadPage();

Chargennummer; Turmnummer schreiben WritePage();

Auftragsdaten, Lagerort eines Turmes schreiben WritePage();

Ausgabe der Erfolgsbestätigung in Runtime SetTagCharWait(„Rfid_status“,“…“);

Page 10: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 10

10. Änderungen der mes2.pas Aktion:

Die Änderungen der mes2.pas beziehen sich auf das Aufrufen der Funktion RFID_SCHREIBEN(); und

dem Abhandeln des RFID-Handshakes zwischen der SPS und WIN-CC. Die RFID_SCHREIBEN-

Funktion wird aufgerufen nachdem des RFID-Start-Bit gesetzt worden ist. Anschließend wird das

RFID-Busy-Bit gesetzt und die Funktion aufgerufen. War die Funktion erfolgreich wird das RFID-

Busy-Bit zurückgesetzt und der nächste Auftrag wird gestartet.

11. Änderungen in der lies_ca.bac (MES2):

Es waren Anpassungen in der lies_ca.bac notwendig da diese nur die Daten für die jeweils unteren

Bausteine der Türme ausgelesen hat. Sie wurde jetzt auf die Funktionen der lies_ca.bac der MES1

aufgerüstet. Die MES1 muss in loser Kopplung mit RFID gar nicht mehr auf die Aufträge vom ERP-

Server zugreifen. Die Auftragsannahme übernimmt jetzt komplett die MES2. Den Aufbau des

Turmes können die Stationen komplett aus den RFID-Tags herauslesen.

12. Änderung des SPS Programmes:

Aufgrund eines „Timing“ Problems muss das SPS-Programm der Zulieferer-SPS erweitert werden.

Mittels eines Sensors wird erkannt wann ein Baustein unter dem RFID-Writer liegt. Der Sensor ist

an den Eingang E0.1 des Easy-Ports angeschlossen.

Page 11: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer

Um das vollständige Beschreiben des Titan

Schreibens angehalten werden, da sonst der Tag zu schnell den Writer passieren und die

Vollständigkeit der Daten nicht garantiert werden könnte

wird das Band wieder gestartet und de

Für die Kommunikation zwischen WIN

M2.0 RFID_start

M2.1 RFID_busy

deklariert. Das SPS-Programm setzt RFID_start auf E

WIN-CC bestätigt dies mit dem RFID_busy und beschreibt diesen dann

auf Null zurückgesetzt. Nach beendeter Arb

das SPS-Programm setzt seine normale Funktion f

Yari Belgacem Hubert Sewald

Um das vollständige Beschreiben des Titan-Tags zu garantieren muss das Band für die Zeit des

Schreibens angehalten werden, da sonst der Tag zu schnell den Writer passieren und die

Vollständigkeit der Daten nicht garantiert werden könnte. Wenn der Schreibvorgang beendet ist

wird das Band wieder gestartet und der Stein wird bis ans Werkstor des Zulieferers befördert

ür die Kommunikation zwischen WIN-CC und dem SPS-Programm wurden die

Programm setzt RFID_start auf Eins, wenn ein Baustein unter de

CC bestätigt dies mit dem RFID_busy und beschreibt diesen dann. RFID_start wird jetzt wieder

. Nach beendeter Arbeit wird das RFID_busy Bit auf Null zurückgesetzt und

Programm setzt seine normale Funktion fort.

11

ieren muss das Band für die Zeit des

Schreibens angehalten werden, da sonst der Tag zu schnell den Writer passieren und die

der Schreibvorgang beendet ist,

bis ans Werkstor des Zulieferers befördert.

die Merker

tein unter dem Writer liegt.

. RFID_start wird jetzt wieder

ull zurückgesetzt und

Page 12: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 12

13. Speicherorganisation Titan Tag: Um zu garantieren, dass die Aufträge welche jetzt nur noch in dem Tag gespeichert sind, von den

Fertigungsstationen richtig verwendet werden, muss festgelegt werden an welcher Stelle des Tags

sich welcher Auftrag befindet und welche Formatierung sie besitzt. Die Größe der Speicherzellen

wurde von der Funktion WritePage übernommen. Deshalb werden immer 4 Byte gleichzeitig

geschrieben und gelesen.

Achtung!! 1 Speicherzelle (page) => 4 Byte => DWORD

Speicherzellen sind Überschneidungsfrei

Alle Zahlen und Nummern sind im ASCII Format

Byte 4 Byte 3 Byte 2 Byte 1

Speicherzelle 1

Herstellerspezifisch reserviert für Tag interne Funktionen

Speicherzelle 2

Speicherzelle 3

Speicherzelle 4 Chargen Nummer Turm Nummer

Speicherzelle 5 Lagerort Baustein oben Baustein mitte Baustein unten

Speicherzelle 6

Reserviert für Erweiterungen (z.B. Zeitstempelung) Speicherzelle 7

Speicherzelle 8

Speicherzelle 9 frei

… frei

14. Stückliste:

Anzahl Art. Nr Beschreibung SNR-Nr.

3 801045 ADIC ICR40-RW-SLAVE-RS485-12 OEM-Read/Write-SLAVE-Controll mitRS485 Schnittstelle LED1, 24047-24049

LED3, Relais, Klemmen und Buzzer bestückt

3 800549 ADIC Gehäuse B3 komplett für ICR40/ISO-Reader

1 800899 ADIC ICR40-RW-RS232-12-B3KL Read/Write-Controller mit RS232-Schnittstelle im Gehäuse B3, 24025

Klemmanschluss; 7-12V Spannungsversorgung

Tags:

Anzahl Art. Nr Beschreibung SNR-Nr.

20 800541 ADIC Disc-PC-Titan-20 Scheibe Polycarbonat d=20mm k.A.

Page 13: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 13

15. Funktion „RFID_SCHREIBEN();“

#include "RFID_funktionen.h"

int RFID_SCHREIBEN(int Turm_NR)

{

char Daten [5]; char Test[5];

long long int Time1,Time2;

SetTagChar("Rfid_status","Start");

if(ComInit(2,0)) //Com2 als RFID öffnen

{

SetTagChar("Rfid_status","Error open Com"); //Text bei Com belegt ausgeben

SetBackColor("bild1","EAFeld14",CO_RED);

return(-1); //Bei fehler -1 zurückgeben

}

if (! ReadPage(3, Daten)) // Auf Baustein warten

{

sprintf(Daten,"%2d%2d",Turm_NR,GetTagChar("lesenummer")); // Daten wird beschrieben mit Turm NR und

//Chargen NR

if(WritePage(4,Daten)) //Tag schreiben und Rückmeldung abwarten

{

SetBackColor("bild1","EAFeld14",CO_RED);

SetTagChar("Rfid_status","Error Write Tag");

return(-1); // CharegenNR. Turm NR schreiben

}

//Umformatierung in String

if (Turm_NR==1)

sprintf(Daten,"%1d%1d%1d%1d",GetTagByte("t1u"),GetTagByte("t1m"),GetTagByte("t1o"),GetTagByte("lager"));

if (Turm_NR==2)

sprintf(Daten,"%1d%1d%1d%1d",GetTagByte("t2u"),GetTagByte("t2m"),GetTagByte("t2o"),GetTagByte("lager"));

if (Turm_NR==3)

sprintf(Daten,"%1d%1d%1d%1d",GetTagByte("t3u"),GetTagByte("t3m"),GetTagByte("t3o"),GetTagByte("lager"));

// Daten werden geschrieben mit Turmteilen

//und Lagerort

//if (Turm_NR>=4) return(-1);

if(WritePage(5,Daten))

{

SetBackColor("bild1","EAFeld14",CO_RED);

SetTagChar("Rfid_status","Error Write Tag");

return(-1); // Turmauftrag Lager schreiben

}

//if(WritePage(6,Daten)) return(-1); // Uhrzeit schreiben

SetBackColor("bild1","EAFeld14",CO_GREEN);

SetTagChar("Rfid_status","Write OK");

return(0); //Alles Ausgeführt und OK! 0 als Rückgabe

}

return(-1);

Page 14: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 14

16. Runtime „bild1.pdl“:

In der Runtime ist die Anzeige der Handshake-Bits für Start_RFID und Busy_RFID hinzugefügt

worden. Ebenso eine Textausgabe über den Aktuellen Zustand der RFID Schreibfunktion.

Handshake-Bits zwischen SPS und MES2

Zustandsanzeige (Text) der RFID-Funktion

Page 15: Ausarbeitung Teil3 RFIDxportal.ts-muenchen.de/Dateien/Ausarbeitungen3/RFID_1.pdf · Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 3 1. Das Ziel: Ziel des Projektes ist es die Anlage

Gruppe: RFID_Writer Yari Belgacem Hubert Sewald 15

17. Headerfile „rfid_funktionen.h“

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int ComInit (int,int);

#pragma code ()

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int WritePage (int,char*);

#pragma code ()

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int ReadPage (int,char*);

#pragma code ()

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int ReadUnique (char*);

#pragma code ()

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int ResetTag (void);

#pragma code ()

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int PowerDown (void);

#pragma code ()

#pragma code ("C:\Programme\Siemens\WinCC\WinCCProjects\mes2_RFID\icrdll40.dll")

int SetOutput (int);

#pragma code ()