Seems like you will be using HF RFID, which is short range(Upto 10cm lets say)
Here is a general SOP to integrated RFID into your plant's production flow:
- You start by figuring out the mechanical piece first. Is there one RFID attached to you part, to your pallet?
- Do you want to store the part number on the RFID datatag, or the pallet's number only?
- Part number would need to be re-written on the load station every time the part comes around.
- Pallet number would only need to be read at the load station, and the part# would come from a secondary source like QR/Barcode/RFID/NewPart#
- Now decide if you want to write the process data inside the RFID, or in a multidimensional array/UDT inside the PLC which is referenced via the Pallet Number. I would suggest an external backup area such as an OPC or a secondary PLC which keeps this pallet map.
- If you are just using the RFID as an identifier, and the data is kept on the PLC in a array/UDT, you can use FAL/indexing to search/retrieve/write data.
For your system, I would suggest linking all the RFID readers to the same Controllogix PLC, making a UDT, and then keeping your PartNumbers/PartLocationsInTray/OK/NotOK information for each station in this UDT. Then create a UDT array with the tray number as an index for maintenance friendliness.
Your RFID tag would have the tray number. It will be read on the 1st station, PLC will make a determination if we should proceed on this station, then once the op is successfully done, it'll turn a bit on for your part, saying that the operation was done successfully.
UDT can look like this:
Code:
TrayUDT
[INDENT]TrayOnHold(Bit)
TrayPassedStation1(Bit)
TrayPassedStation2(Bit)
TrayPassedStation3(Bit)
TrayPassedStation4(Bit)
TrayPassedStation5(Bit)
PartUDT[1]
PartUDT[2]
PartUDT[3]
.
.
PartUDT[N][/INDENT]
PartUDT
[INDENT] PartLocationInTray(1->N)
PartPassedStation1
PartPassedStation2
PartPassedStation3
PartPassedStation4
PartPassedStation5
AnyProcessSpecificParameters[/INDENT]
In the end, you can create a new TrayUDT Array, like TrayUDT[50] for 50 trays.
Code can use this information to keep track of data in the PLC. I would 100% keep an OPC server which keeps track of this information too, so if your PLC dies, your WIP doesn't need to be thrown away. Hopefully this helps.