Best Call method for multiple Jobs

  • Hi guys,


    We have recently purchased a Fanuc robot which will be arriving in about two months time. It has been specced with the Profinet option and we intend to use it with a Siemes s7 1200 PLC. This robot will be installed in Multi-station welding cell.


    My biggest question at the moment is what would be the best method of calling the individual programs. There are going to be 6 stations split into two loading sides. (3 different jigs per side). Only one jig per side will run at a time. So for example jig 1- station 1 and jig 4 - station 2 in tandem. This is to allow the operator time to load one side as the robot welds on the other and so on...


    There shouldn't ever be more than two jobs in the queue at a time, but they should atleast be able to queue a second job while the first is busy welding. As far as I know the only option that allows queuing is RSR's?


    The other issue is that they would like to have the option to change the jigs depending on the needs of production. In other words they would like to take the jig off of station 1 jig 1 and place a second jig in it's place. That's why I would prefer for each jig to have it's own individual "Program" and no rely on DI's and jump logic to accomplish a similar thing. it's just too messy. So using RSR's in this case would be a problem as they only come with 8 of them if I'm not mistaken?


    If anyone has any suggestions or ideas, I woul love to hear them. :merci:

  • My preferred method would be to handle the queuing logic in the PLC. Then I would have the PLC start 1 main program on the robot. It is very easy to have clean logic in the main program call multiple sub-programs for each jig. Using DI's and Jmp labels would be very messy indeed, so instead have the PLC send the job number to a single group input or register then use a select statement to call the sub-program based on that register.


  • My preferred method would be to handle the queuing logic in the PLC. Then I would have the PLC start 1 main program on the robot. It is very easy to have clean logic in the main program call multiple sub-programs for each jig. Using DI's and Jmp labels would be very messy indeed, so instead have the PLC send the job number to a single group input or register then use a select statement to call the sub-program based on that register.


    Thanks for the insight.
    I have seen the logic to handle the queing on one of our older system's PLC and it is ridiculously complicated, that's why I thought it better to let the robot handle it rather. Unless there is an easier way to do it and the integrater just didn't know it was available. Have either of you written this queing logic for the plc?


    So the method you describe wouldn't make use of any typical method of calling then, PNS. RSR etc? Just a main program that looks at the value of a single register?
    I didn't even know it was possible to write a value to the robot from the plc. All of the installations up till now have been with discrete IO not fieldbus/profinet, so I am sure there are going to be some challenges on that front too.

  • I am not a Siemens user, more of an Allen Bradley user, but for Queuing you could use a FIFO stack. Basically an array where when a user queues up then next job it would add the job number to the next empty element in an array. then when a job is complete it can mark it as a 0 and go to the next job.


    I do not use PNS or RSR. I use the "Other" method which has a main program name selected. It always starts with the same main program then will look at the value of a register to call a sub-program. With Profinet you should be able to read/write Registers, UOP, digital IO, group IO, etc, no wiring needed just an Ethernet cable.


    Here is an example of calling the sub-program based on a register value:


    Code
    :  SELECT R[1:Job Number]=1,CALL JOB_1 ;
    :         =2,CALL JOB_2 ;
    :         =3,CALL JOB_3 ;
    :         =4,CALL JOB_4 ;
    :         =5,CALL JOB_5 ;
    :         ELSE,CALL GO_HOME ;

Advertising from our partners