Shop OBEX P1 Docs P2 Docs Learn Events
Propeller Material Control and Data Collections — Parallax Forums

Propeller Material Control and Data Collections

Computer Geek 101Computer Geek 101 Posts: 179
edited 2011-08-19 12:12 in Robotics
I work for a small aerospace company. We have to keep close tabs on all "Class A" material. My boss asked me to design a system to maintain an accounting of where the material is at all times. If a "Class A" material is found without any way to trace it, it must be scrapped. My system uses a propeller powered unit to track the material in and out of the material crib with an Xport, VGA, barcode scanner, keypad, and several buttons.

The operator uses the device to check in the material and assign it a specific location in the material crib. When the material is needed, the operator checkes the material out to a machinist. The system verifies that the material and job match, so we do not use the wrong material on a job. Once the material is out on the shop floor, its the job of the data collections untis to track its progress.
0415111329a.jpg
0415111321.jpg
0415111329.jpg
0418111417.jpg
0324111316.jpg
0415111320.jpg
1024 x 768 - 89K
1024 x 768 - 78K
1024 x 768 - 99K
1024 x 768 - 59K
1024 x 768 - 109K
1024 x 768 - 109K

Comments

  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-05-07 07:49
    MaterialControl.spin
    DataCollections_v2.spin
    BTI_MatSafeServer.zip

    The software is divided into three parts. Material control device, data collections device, and the windows server that process them. These units use the Xport in TCP mode to transfer to the VB.net windows service.
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-05-07 07:57
    The Circuit layout and schematic are in ExpressPCB formats. Alot of the work was completed before I switched to DipTrace.


    DataCollections.sch

    DatacollectionV1_5.pcb
  • sam_sam_samsam_sam_sam Posts: 2,286
    edited 2011-05-07 09:05
    Very Nice Project

    Done with the Propeller Chip and RFID Reader
  • WBA ConsultingWBA Consulting Posts: 2,934
    edited 2011-05-07 10:35
    EXCELLENT WORK!!! I am working on a similar project for work that includes basically the same hardware except no XPort. What barcode scanner are you using? What format are your labels? Code39? I have had some issues with my project, but I believe it's because I am using UPC labels for debugging. I am using Symbol LS1220 Scan Engines for my project and it dumps out through a standard RS232 port.
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-05-07 11:05
    This is the barcode scanner I used. http://www.posguys.com/barcode-scanner_3/DataLogic-QuickScan-2130-Imager-Series_964/QD2130-BKK3_12932/

    Since I needed a keypad, It made sense to just use a keyboard wedge.
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-05-07 16:02
    All of the information gets recorded into a SQL database so we can create several crystal reports to display the information.

    The Material control records:

    Check In:
    The person that logged in the material
    The material's serial number
    Job number
    Material quantity
    The location where the material is stored

    Check Out:
    The person that logged in the material
    The material's serial number
    Job number
    Material quantity
    The location where the material is stored
    The person that checked out the material


    Several errors can be generated:
    The Job number and the material's serial number do not match
    The quantity tanke out is larger than the quantity recorded
    The material and location do not match with the recorded information


    The Data Collections records:

    Clock In:
    The employee doing the machining
    The Job Number
    The Jobs operation number
    The material's serial number if the material is "Class A"
    The CNC machine the operation was ran on
    The starting time

    Clock Out:
    The employee doing the machining
    The Job Number
    The Jobs operation number
    The Quantity ran
    The number of parts scrapped
    The ending time

    Several errors can be generated:
    The Job number and the material's serial number do not match
    The RFID scanned does not match an employee
    The Job has already been closed or completed
  • WBA ConsultingWBA Consulting Posts: 2,934
    edited 2011-05-07 16:26
    Funny, I looked at your code and thought maybe you were using a keyboard wedge scanner since you are using the keyboard.spin object for the scanner. Thanks for the update on details too, very impressive!
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-05-09 04:02
    I have seen several requests for TCP examples, so I thouight this might be of interest.
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-08-11 05:56
    The material control/data collections system were enough for GE Aerospace to certify us as a tier one supplier!! I have made a few changes to the system. Ill post a completed updat in a few days.
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-08-16 09:24
    Here is the command set for the data collections

    Britt Aero Data Collections Command Set

    <V_JobOperation_/>: This command verifies that the Job Operation exists and returns if it is a class “A” material.
    JobOperation: The unique ID number for the specific job operation.
    The response to this command from the server can be:
    <vA/>: This is a class “A” material
    <vO/>: This is a non class “A” material
    <vE/>: The job does not exist in the system

    <S_Employee_JobOperation_SerialNumber_RunType_Machine_UPS_/>: This command clocks the employee into a specific job operation.
    Employee: The RFID code for the specific employee.
    JobOperation: The unique ID number for the specific job operation.
    SerialNumber: The serial number of the class “A” material or “N/A” if it is not a class “A” material.
    RunType: This can be SETUP or RUN.
    Machine: This is the work center unique ID number.
    UPS: This is the UPS tracking number for and operation that is shipped for offsite processing.
    The response to this command from the server can be:
    <s0/>: No error.
    <s1/>: The Job and the material serial number do not match.
    <s2/>: Unspecific error.
    <s3/>: The Employee RFID code was not found in the database.
    <s4/>: The job has been closed.
    <s5/>: The data stream has been damaged.
    <s7/>: The job has an action alert.
    <E_Employee_JobOperation_Quantity_Scrap_/>: This command clocks the employee out of a specific job operation.
    Employee: The RFID code for the specific employee.
    JobOperation: The unique ID number for the specific job operation.
    Quantity: The total quantity of parts ran.
    Scrap: The total number of parts scrapped.
    The response to this command from the server can be:
    <e0/>: No Error.
    <e2/>: Unspecific error.
    <e3/>: The Employee RFID code was not found in the database.
    <e4/>: The job has been closed.
    <e5/>: The data stream has been damaged.
    <e6/>: The quantity is larger than the ordered quantity.

    <X_Employee_SpecOp_/>: This command clocks an employee into a special operation (i.e. maintenance, cleaning, etc.)
    Employee: The RFID code for the specific employee.
    SpecOp: The special operation ID these operations are located in a SQL database and start with the letter “x”.
    The response to this command from the server can be:
    <x0/>: No Error.
    <x2/>: Unspecific error.
    <x3/>: The Employee RFID code was not found in the database.
    <x8/>: The special operation was not found in the database.

    <Y_Employee_SpecOp_/>: This command clocks an employee out of a special operation (i.e. maintenance, cleaning, etc.)
    Employee: The RFID code for the specific employee.
    SpecOp: The special operation ID these operations are located in a SQL database and start with the letter “x”.
    The response to this command from the server can be:
    <y0/>: No Error.
    <y2/>: Unspecific error.
    <y3/>: The Employee RFID code was not found in the database.
    <y8/>: The special operation was not found in the database.

    <B_Employee_SpecOp_JobNumber_SerialNumber_RunType_Machine_/>: This command clocks the employee into a specific job under a special operation (i.e. re-work or re-op).
    Employee: The RFID code for the specific employee.
    SpecOp: The unique ID number for the special operation.
    JobNumber: The unique ID for the specific job.
    SerialNumber: The serial number of the class “A” material or “N/A” if it is not a class “A” material.
    RunType: This can be SETUP or RUN.
    Machine: This is the work center unique ID number.
    The response to this command from the server can be:
    <b0/>: No Error.
    <b1/>: The Job and the material serial number do not match.
    <b2/>: Unspecific error.
    <b3/>: The Employee RFID code was not found in the database.
    <b7/>: The job has an action alert.

    <C_Employee_SpecOp_JobNumber_Quantity_Scrap_/>: This command clocks the employee out of a specific job under a special operation (i.e. re-work or re-op).
    Employee: The RFID code for the specific employee.
    SpecOp: The unique ID number for the special operation.
    JobNumber: The unique ID for the specific job.
    Quantity: The total quantity of parts ran.
    Scrap: The total number of parts scrapped.
    The response to this command from the server can be:
    <c0/>: No Error.
    <c2/>: Unspecific error.
    <c3/>: The Employee RFID code was not found in the database.
    <c4/>: The job has been closed.
    <c6/>: The quantity is larger than the ordered quantity.

    <W_SpecOp_JobNumber_/>: This command verifies that the SpecOp exists and returns if it is a class “A” material.
    SpecOp: The unique ID number for the special operation.
    JobNumber: The unique ID for the specific job.
    The response to this command from the server can be:
    <vA/>: This is a class “A” material
    <vO/>: This is a non class “A” material
    <vE/>: The job does not exist in the system

    <T_/>: This is a request for a time update.
    The response to this command is:
    <t_Month_Day_Year_Hour_Minute_Second_AMPM_/>
    Month: The two digit month.
    Day: The two digit day.
    Year: The two digit year.
    Hour: The two digit hour.
    Minute: The two digit minute.
    Second: The two digit second.
    AMPM: The one character am or pm (i.e. A or P)

    <K_Employee_/>: This command requests the total hours works for the specified employee.
    Employee: The RFID code for the specific employee.
    The response to this command is:
    <k_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday_TotalHours_/>
    Monday: The total hours worked for Monday.
    Tuesday: The total hours worked for Tuesday.
    Wednesday: The total hours worked for Wednesday.
    Thursday: The total hours worked for Thursday.
    Friday: The total hours worked for Friday.
    Saturday: The total hours worked for Saturday.
    TotalHours: The total hours worked for the week.
  • Computer Geek 101Computer Geek 101 Posts: 179
    edited 2011-08-19 12:12
    Here is the SQL databases for the system:


    database.pdf
Sign In or Register to comment.