Massiv Automated PLC-Robot Interface Rev5.0 May5, 2015 Document subject to changes This document describes the PLC to Robot interface for Massiv standard North American projects. Robot Area Enter (Robot to tooling interface) 8 bits required each way, one per area (Bits 65 to 72). From Robot to PLC, signal high means Robot Clear of Area. From PLC to Robot, signal high means Robot Clear to Enter Area An Area is defined as the volume surrounding a station to avoid a robot-to-station collision. When the Robot wants to enter an area, it will check the Robot Clear to Enter Area bit from the PLC. If this bit is On, the robot can enter the area, but before it must turn Off its Robot Clear of Area bit. As soon as the robot exits the area, it should turn back On its Robot Clear of Area output. As a convention, Area 1 is the first area the robot moves into, Area 2 is the second one, and so forth. If a robot is entering the same tool more than once per cycle, it will use the same area number; the interlock conditions will be the controlled via PathAck’s to distinguish the different conditions for each process. Robot Enter Zone Logic (Robot to Robot Interface) 14 bits required each way, one per zone (Bits 73 to 86). From Robot to PLC, signal high means Robot Clear of Zone. From Robot to PLC, signal low means Robot Request to Enter Zone or Robot In Zone. From PLC to Robot, signal high means Robot Clear to Enter Zone. PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 1 of 13 A zone is to be defined whenever two or more robots can collide. The PLC will arbitrate the zones to allow only one robot at a time inside a given zone. When the Robot wants to enter a zone, it will turn Off its Robot Clear of Zone output. The PLC will check that no other robot is in the zone, and will turn On the Robot Clear To Enter Zone bit. The robot can now enter the zone. As soon as the robot exits the zone, it should turn back On its Robot Clear of Zone output. As a convention, Zone 1 is the first zone the robot moves into, Zone 2 is the second one, and so forth. Robot zones within a tool (i.e. 2 robots enter a station at the same time to weld) should start at Zone 2, Zone 1 for the welding robots would be used to interface with a material handling robot(s) that picks/drops from/to the machine. Pathsegs/PathAck’s 8 Pathseg Number bits required from the Robot to the PLC (Bits 57 to 64) 1 Pathseg Request bit required from the Robot to the PLC (Bit 56) 1 Path OK bit required from the PLC to the Robot (Bit 56) There are two types of interface used with Path segments; The “Pathseg” is simply to inform the PLC of the Path in which the robot is currently running. The “PathAck” is used to control the path of the robot with the PLC, whereby the robot must wait for an acknowledge from the PLC before it can continue motion. The Pathseg Number must remain on at the robot outputs at all times. It is cleared to zero only when the robot goes back home and finishes executing its program. Path Ack usage is as follows (there is a separate document showing the details of each one) PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 2 of 13 Path Acknowledge Function Acknowledge 0 Usage Control Robot At Home Robot At Home Service Move to Tip Dress Description 1 2 3 4 Move to Service 5 Return from Service 6 Move to Tip Change 7 Return From Tip Change 8 In Process Tool Changer In Process Tool Changer 9 1st Pickup Pickup #1 Move To Pounce 10 Pickup #1 Move To Position 11 Pickup #1 Reposition (If Req'd) 12 There are five groups for pick up, controlled by four segments Pickup #1 Part Present Check 2nd Pickup 13 - 16 3rd Pickup 17 - 20 4th Pickup 21 - 24 5th Pickup 25 - 28 29 1st Drop off Drop-off #1 Move Early 30 Drop-off #1 Move To Position 31 Drop-off #1 Reposition (If Req'd) 32 There are five groups for drop off, controlled by four segments Drop-off #1 Part Present Check 2nd Drop off 33 - 36 3rd Drop off 37 - 40 4th Drop off 41 - 44 5th Drop off 45 - 48 PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 3 of 13 49 1st Process Process #1 Move To Pounce 50 Process #1 Move to Process 51 Process #1 Reposition 1 52 Process #1 Reposition 2 53 There are eight groups for process, controlled by five segments Process #1 Process Complete 2nd Process 54 - 58 3rd Process 59 - 63 4th Process 64 - 68 5th Process 69 - 73 6th Process 74 - 78 7th Process 79 - 83 8th Process 84 - 88 Custom Process There are 29 Path ack groups reserved for a Custom Process if needed Decision Code Pathsegs/Process 1-6 There are 6 Path ack reserved for Decision Code Process 1-6 100 - 128 129 - 134 136 Decision Code Pathsegs Global Cap Change Complete Decision Code Pathsegs/Service 137 Decision Code Pathsegs/Tip Dress 138 Decision Code 135 PLC-Robot Interface V2.0 – Subject to Change Decision Code used if you have more than weld gun Decision Code use if you have more Than EOAT Decision Code used if you have more than weld gun Decision Code used if you have more Massiv Automated Systems Oct3, 2012 Page 4 of 13 Pathsegs/Cap Change than weld gun 139 Decision Code-Thickness Check-Acknowledge Ok Confirmation of Thickness Check is ok to cont. 140 Decision Code-Thickness Check-Release Confirmation of Thickness Check is ok to cont. Released by another robot through PLC signal 141 Decision Code Pathsegs/Racking 142 Decision Code Pathsegs/Sealer 143 - 145 Racking 1 Multi rack selection Racking 2 Verify Part count mis match Sealer 1 There are 3 Path ack per sealer app reserved for Decision Code Sealer, Selection for Re-do, Reject, Pass and By-pass. Sealer 2 Sealer 3 146 - 147 Decision Code Pathsegs/Reamer 148 - 149 Decision Code Pathsegs/Rivet Reamer 1 Reamer 2 Rivet 1 There are 2 Path ack reserved for Decision Code Rivet Rivet 2 150 Aux Axis1 Pathsegs There are 2 Path ack reserved for Decision Code Reamer Aux Axis1 To Service 151 Aux Axis1 To Position 1 152 Aux Axis1 To Position 2 153 Aux Axis1 To Position 3 154 Aux Axis1 To Position 4 155 Aux Axis1 To Position 5 156 Aux Axis1 To Position 6 157 Aux Axis1 To Position 7 158 Aux Axis1 To Position 8 159 Spare Aux Axis2 Pathsegs There are 10 Path ack reserved for Aux Axis 1 There are 10 Path ack reserved for Aux Axis 2 160 - 169 Aux Axis3 Pathsegs 170 - 179 There are 10 Path ack reserved for Aux Axis 3 180 - 192 Spare Path ack 193 Mig Weld 1 Service Move To Reamer 194 Start Reamer Cycle 195 Start to Spray 196 Shroud Present 197 Arc Weld Recovery 198 Spare PLC-Robot Interface V2.0 – Subject to Change There are 7 Path ack reserved for Mig Weld 1 Service Massiv Automated Systems Oct3, 2012 Page 5 of 13 199 Spare Mig Weld 2 Service There are 7 Path ack reserved for Mig Weld 2 Service 200 - 206 207 Feeder Feeder 1 Inspect Req 208 Feeder 1 Max Re-Try 209 Feeder 2 Inspect Req 210 Feeder 2 Max Re-Try 211 Clinch Clinch 1 Comp Failed 212 Clinch 1 Spare 213 Clinch 2 Comp Failed 214 Clinch 2 Spare 215 Emhart Emhart 1 ReTry/Reject 216 Emhart 1 Ack Reject 217 Emhart 2 ReTry/Reject 218 Emhart 2 Ack Reject There are 4 Path ack reserved for Feeder There are 4 Path ack reserved for Clinch There are 4 Path ack reserved for Emhart 219 - 256 PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 6 of 13 Decision Codes 8 bits required from the PLC to the Robot (Bits 89 to 96) Works with the Pathacknolegdement Logic. When the robot comes to a position where it must follow one out of many different paths, it will request a Pathack Number in the range 1 to 256 to ensure the robot has a selected decision before it continues to eliminate continuous programming loops. Pounce The robot will move from home to the pounce position directly after the main program is called. The robot will use the appropriate Path ack in either the pick or process section of each group of path acks. Once in the pounce position the robot will wait for a decision to continue or return home. Path Ack Sent To PLC 1 Continue After Pounce 2 Abort After Pounce PLC-Robot Interface V2.0 – Subject to Change Decision from PLC 9 Pickup #1 Move To Pounce 49 Process #1 Move To Pounce Massiv Automated Systems Oct3, 2012 Page 7 of 13 Note: The pounce function is not used for the drop programs. Tip Dress Tip dressers will be controlled by the Robot. Tip dress can be initiated either by the robot, or manually through the Panel View. Tip Dress Requested from the Bosch When the robot wants to initiate a Tip dress in response to a Weld Controller Tip Dress Request (DI 370), it turns On the Tip Dress Request (DO 115) signal to inform the PLC. The robot will run a Bosch check program at the appropriate point in the process and if the Tip Dress Request is on the robot will start the tip dress process at the end of its current selected cycle. As the robot enters the Tip dress program the robot turns on (DO 122) and turn it off when the tip dress is complete. At the end of each weld routine the robot routine, “BOSCH1CHECK(*)”. In the variable you put the gun number that you are checking. When the Bosch1check routine executes it takes that variable and sets the gun number. It then sets the appropriate weld schedule on the bus so that the Bosch weld control will reflect back the status of that gun numbers electrode which will turn on DI370 for “tip dress” and DI371 for “approaching cap change”. The Bosch1check routine then calls the appropriate function either tip dress or tip change. Built into the Bosch1check routine are recovery routines in the case of a failure due to tip wear checks. When the robot executes its tip dress/change routines they use the background pathsegs exclusively for indication of position in which routine they are. The background pathseg values as well as the diagnostic values that are used to drive the robot panelview diagnostic screen are also used to flag that the tip dress/change routines have started. These values are used in the PLC to latch on the tip dress/change requests. Should a program get aborted or not complete for any reason, these latches will not get reset since the normal execution of the routine will set and reset these latches. So in the case where a routine doesn’t complete on the next initiation of cycle of the robot it will automatically get the appropriate service call first so that the proper completion of the routine can be done. There are no digital I/O passed between the robot and the PLC anymore for these functions. PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 8 of 13 Tip Dress Requested from the Panel View The same action can be triggered by pressing the Tip Dress button on the Panel View for 5 3 seconds. The PLC will latch the request, and will wait until the robot finishes executing its current PNS program call. After that, the PLC will call PNS Program 51, with the Tip Dress Request signal On. The robot will turn (DO 122) On, to inform the PLC the robot is in a tip dress routine, once complete it will send (DO 122) OFF, to inform the PLC that tip dressing is complete. See bosch called tip dressing as reference. Note: If there is more than one Tip Dress Request signal active from the PLC (e.g. For Gun1 and for Gun2), the robot must finish the Tip Dress cycle on all of the guns before requesting again. Note: Tip dressers are not to be shared between two or more robots. Tip Change Tip Change sequence can be initiated manually through the Panel View by pressing the Tip Change button on the Panel View for 5 3 seconds, or is triggered automatically from either the weld control sending “tip change request”, or the servo gun (if applicable) sending DO125 DO121 (Max Wear). The PLC will latch the request (in the case of Cap Change request), and will wait until the robot finishes executing its current program. After that, the PLC will call Robot Program 52, with the Tip Change Request bit On. If the robot reaches the max wear indicator, it will fault and needs to be manually run home to run the service routine. “Max Tip Wear” DO121 is only used in the PLC for fault messaging and diagnostics. If the max tip wear output, DO121 is flagged the tipdress routine will flag it and internally call the tip change routine. The same applies if the tip wear update finds that not enough material has been taken off and then it will tip dress again. If after the second time there is still not enough material taken off it will also initiate a tip change routine. The robot must will then signal Pathseg Number 6, and move to Service Position. Once it is in Service Position, it must will request PathAck 7. This PathAck will be released by pressing the Tip Change button on the Panel View. The operator should change the tips before pressing the Tip Change button for the second time. The PLC will only acknowledge a Tip Change if a gate has been opened and the water has been turned off to the robot. PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 9 of 13 When the operator presses the Tip Change button after changing the tips, PathAck 7 will be released and Steppers Reset signal will go high until the robot Steppers Reset signal from the Robot goes high. The robot will then run the Cap Seat program, and proceed to tip dress. At this point the robot will return home and is ready for production. Service Position Move to Service Position is initiated from the Panel View. This button is now on the Robot screen, and not in a separate Service screen. This button is on the global service screen as well as the local robot service screen. The PLC will latch the request, and will wait until the robot finishes executing its current program. After that, the PLC will call PNS Program 50. The Robot will signal Pathseg Number 4, and move to Service Position. It must then request PathAck 5 and wait for acknowledge. PathAck 5 will be released by pressing the Service button on the Panel View one more time. Diagnostics Diagnostics are meant primarily to be used for Panel View display. There are 8 bits reserved for this, allowing for display of up to 1024 messages/alarms. Diagnostics numbers 1-256 will be used for messages, i.e. status indication of the robot, which might cause the robot to stop while it waits for a signal coming from the PLC. This category will include Waiting to Enter Area, Waiting to Enter Zone, Waiting for Pathseg to be Released, etc. These messages will be shown on the Panel View Robot Screen, as a Local Message. Diagnostics numbers 257-1024 will be used for alarms, or situations originating in equipment connected to the robot, but not to the PLC. This category will include Clamps Open / Close faults, Shot pin Engage / Disengage Faults, Vacuum Faults, PP check Faults, Tool Changer faults, Nut Clincher faults (when the Nut Clincher is controlled by the robot), etc. Any number higher than 257 will trigger a pop-up alarm on the Panel View: “Robot Process Fault. Check Robot screen for details”. Most of these faults will be time-out triggered, so the time it takes to complete the motion must be monitored by the robot, to trigger the appropriate message number. Weld and Glue Faults will be handled differently, as described in the following sections. The natures of the alarms displayed through the Diagnostics alarms require intervention on the robot equipment. PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 10 of 13 Weld Schedule Every time the robot welds a spot on a part, it will increment a counter which is sent to the PLC. Once the robot has completed welding in a particular station, the PLC will do a compare between the planned and actual number of welds. If this doesn’t match, the PLC will not release the Robot and an alarm message will be flagged to the HMI. Weld Faults Weld Faults will be signaled to the PLC through Robot Outputs Major Fault (119 for Weld Controller 1, and 198 for Weld Controller 2). When any of these signals go high, the PLC will display an Alarm. The PLC will turn on FltRstWC for retrying the weld (input 106 for WC1 or 186 for WC2) The signal will be held high as long as the Major Fault signal coming from the Robot is high. This is something that we need to look at. It is in the code but generally does nothing. The robot re-tries with fault reset/auto initiate pb and these buttons, although are up on the robot screen, are never used. We will do some testing and see where we go with this. Glue Faults The details of Glue Faults are equipment-specific, so these guidelines may not be applicable to particular glue equipment. The PLC interface supports up to 3 glue systems per robot, with up to 3 faults per system (GlueErr1 to GlueErr3). These fault signals are used to trigger the alarms on the Panel View. The Glue OK signal is the one that is actually used by the PLC to know whether the application was successful or not. This signal must be high at the beginning of the application (it is a condition to release Pathseg 50). After applying the glue, if there was any glue application error, the robot must turn off this signal before requesting PathAck 143 (Glue Complete). If the robot is holding the part, it should also move to a position where the part is easily visible from the outside of the cell, to allow the operator to select the best recovery action (again, before requesting PathAck 143, Glue Complete). The combination of PathAck 143 and Glue OK low will make the PLC to prompt the operator for the recovery action: Redo, Reject or Bypass. Selecting Redo will turn On the Glue Redo signal while releasing PathAck 143. This will trigger a new application cycle. The robot must turn On the Glue OK signal, request Pathseg 50 and reapply the glue. The Glue Redo signal will stay high as long as the robot is in Pathseg 143 and Glue OK is low. Selecting Bypass will turn On the Glue Byps signal while releasing PathAck 143. The robot must then turn On the Glue OK signal and continue to the next step. The Glue Byps signal will stay high as long as the robot is in Pathseg 143 and Glue OK is low. PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 11 of 13 The action triggered by selecting Reject will depend on the particular cell and system. If the fault occurs while the part is on a station controlled by the PLC, on the Robot side it will appear as a Glue Bypass, while on the PLC the part will be marked for reject at a later station. The same will happen if the robot is holding the part and there is a suitable reject station further down the road. On the other hand, if the robot is holding the part and there is no suitable reject station, the Glue Reject signal will be turned On by the PLC while releasing PathAck 52. This will cause a defined action for the robot: Either dropping the part on the floor and going back to home position for the next cycle or moving to a position where the part can be manually removed from the end-effector, open the clamps, turn off any vacuum suction cups, wait for No Parts Present, and finally wait for Pathseg 52 Process complete to be released. Pathseg 52 will be released by pressing the Glue Reject button once more on the Panel View, after the part has been manually removed from the robot. Program Call Program call will be issued to all of the robots whenever the cell enters Auto Mode to start the main program. When the Cycle Start button is pressed on the Panel View, all the robots will move to pounce and wait or either decision 1 to continue or decision 2 to move home. Ok this portion doesn’t need to be like this. The way that the code is setup now the initialization of the routine is based on the Pre-enter pathseg, which is based on what job you are doing. 9, 11, 13, 49, etc. This can stay this way and if we agree to use the loop method it will generally work the same way. Once the 1st initialization of the PNSxxxx call, it will stay in the loop until required to leave the loop. Requirements to leave would be style change or any service routines that are requested. This presents a problem though with the way that is proposed here. The general concept of a pounce(pre-enter position) is to allow the robot to start ahead of the tool being clear to enter and to allow it to move into a closer proximity to the actual enter position. This is required in most cases because the close proximity position is usually within interference zones of other robots so you need this to be able to prioritize who enters when. In some cases there isn’t a need for a pounce and if using this method the robot would probably just initiate pounce at home position. That being said when you have situations where you are using pounce as it should be, to get to a close proximity to the tool, the option of exiting the program for a style change or manual service would mean that the robot would have to move to pounce to get the clear to return and abort the program. This doesn’t make a lot of sense to me. What way that we should be doing it if we are going down this road is that at the end of the program there should be an option to abort and allow a new PNSxxxx to be called. In this way when we have a style change, which in some cases could be every other part, although that is rare, the robot would constantly be moving to pounce and back to get a new program call. I think if we add a decision to the end of the PNSxxxx call to have the option to abort and be able to call another PNSxxxx then this loop method will work properly. All the current code and routines would stay the same. Pounce would go at the beginning of each main PNS call, not any service PNS calls. Once initiated the first time PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 12 of 13 the robot, as long as it doesn’t get a request for any other PNSxxxx calls will stay within the loop. At the end of the PNSxxx programs we add a common pathack/decision code to have the ability to abort at the end. In the case of style calls we will know ahead of when the program ends that a new call is coming and if we don’t then it reverts to having to abort through the Pounce routine. This will almost never happen in a line running production because the style change will be right behind the other style and we can see ahead of when it is coming and a style change will be flagged so as soon as the robot gets to the end of the routine it will finish and then just be waiting at home for a new call. Once it gets the new call it gets trapped in the loop again. Once the decision is received on which application to run, Material Handler Robots will stop there, waiting for PathAck 9 to be released. Glue and Welder Robots will stop, waiting for PathAck 49 to be released. These Pathsegs will be released as soon as the conditions are met on the stations (part present, station in position, other robots clear, light screens reset, etc.). These Pathsegs will also be released if the Return From Pounce button is pressed on the Panel View, or if the Tip Dress, Tip Change or Service Position button is pressed. When these Pathsegs are released, the robot must check for the decision code coming from the PLC. If it is 2, the robot must go back to Home Position, reset all I/O and stop there, waiting for a new Program Call and Cycle Start signal from the PLC. The decision code will remain stable at the PLC outputs as long as the robot Pathseg is 9 or 49. Other Decision Codes must be ignored by the robot, and it should proceed to pick up or weld or glue, unless the process requires a valid defined Decision Code at this point. PLC-Robot Interface V2.0 – Subject to Change Massiv Automated Systems Oct3, 2012 Page 13 of 13