1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

KR C4 Automatic External

  • iDio
  • April 27, 2018 at 1:36 PM
  • Thread is Resolved
  • iDio
    Trophies
    3
    Posts
    140
    • April 27, 2018 at 1:36 PM
    • #1

    Hello all,

    I have a brand new KR16-2 KRC4 in a cell with different conveyors, everything running smoothly and synchronized in automatic mode.

    They client visited us but does not like the idea of the operators touching the robot smartpad for start and homing the robot when there's a need of SAK reset.

    My question is, how can i overcome this situation using external start?
    I've read all the documentation and yet i have no idea on how to do it.

    I have X11 interface, a siemens PLC 1214DCDCDC and a HMI. I also have a start/stop button for the conveyors.

    I was thinking that i could use that button to start the robot and pass through some errors ( p.ex.: keep the start button pressed to send the robot to a SAK position).
    I have 1-2 , 19-20 connected to a external safety relay ( for the cell doors and stuff). All the other X11 signals are bypassed.

    Can someone help me here? I've never used external start before. Thank you

  • animisiewaz
    Trophies
    3
    Posts
    36
    • April 27, 2018 at 2:48 PM
    • #2

    Hello,
    everything is well described in KSS Operating and Programming Instruction for System Integrators, Chapter 6.11 Configuring Automatic External. You will find there signal diagrams for all cases.

    Next thing you will have to do is prepare "auto home" program, which will bring back your robot to $Home from any other position, but this thing you have to do by yourself. This is problem is much more complex, because you have to be 100% sure, that robot will return to home pos in right way everytime, when operator will hit START button.

  • iDio
    Trophies
    3
    Posts
    140
    • April 27, 2018 at 5:03 PM
    • #3
    Quote from animisiewaz


    Hello,
    everything is well described in KSS Operating and Programming Instruction for System Integrators, Chapter 6.11 Configuring Automatic External. You will find there signal diagrams for all cases.

    Next thing you will have to do is prepare "auto home" program, which will bring back your robot to $Home from any other position, but this thing you have to do by yourself. This is problem is much more complex, because you have to be 100% sure, that robot will return to home pos in right way everytime, when operator will hit START button.

    OK, i get it. I've read it already.. I've configured cell.src and whatsoever, yet i don't know the "good practice" to send/receive inputs/outputs like $ext_start, $drives_on etc ( both from PLC and from robot controller! )
    Do you have any sample program?


    Yep, i have everything ready to avoid collision when it's moving towards Home.

  • iDio
    Trophies
    3
    Posts
    140
    • April 27, 2018 at 6:10 PM
    • #4

    by the way, i think it's better this way, how am i suppose to do the mapping for automatic external?
    I'm using profinet and configured just 8IN/8OUT. It was enough for the program to run as i wanted. Do i need to configure this in the profinet tab as well? I'm a bit lost :flower:

  • Online
    panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • April 27, 2018 at 6:22 PM
    • #5

    8in/8out is very low, it is barely enough to make functional AutoExternal interface. try 256in/256out and map all signals

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • iDio
    Trophies
    3
    Posts
    140
    • April 27, 2018 at 6:39 PM
    • #6
    Quote from panic mode


    8in/8out is very low, it is barely enough to make functional AutoExternal interface. try 256in/256out and map all signals

    That's exactly what i just did.
    Do you have a clue on how do I send the binary number for GNO = 1 ? p.ex.
    I know that i need to send 00 00 00 01, but how do i program an output to do that?

    btw2, do I need to configure anything aditional on workvisual ? Profinet was running ok, i just changed to256in/out and remapped.

  • Online
    panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • April 27, 2018 at 7:51 PM
    • #7
    Quote

    [size=2]Do you have a clue on how do I send the binary number for GNO = 1 ? p.ex.
    I know that i need to send 00 00 00 01, but how do i program an output to do that?
    [/size]


    Most PLCs will allow you to address block of outputs as a byte. in that case you can use MOV or equivalent...
    the other way is to turn on bit by bit. this is handy when using PGNO type 3 for example and no feedback from KRC (no mirrored PGNO).


    Quote

    [size=2]do I need to configure anything aditional on workvisual ? Profinet was running ok, i just changed to256in/out and remapped.[/size]

    [size=2]maybe... i don't know what you have there... chances are that should be ok if this is the only change. did you add comments?[/size]

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • iDio
    Trophies
    3
    Posts
    140
    • April 30, 2018 at 12:04 PM
    • #8

    Everything's mapped, cell.src programmed and everything.

    Now i'm stuck on the PLC related stuff. I can't manage to send the signals properly..

    Does anyone has a ladder sample? :hmmm:

  • Online
    panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • April 30, 2018 at 1:55 PM
    • #9

    what exactly you are stuck on?
    how are signals transferred between PLC and KRC?
    how many? do they all work? (changing output on KRC is seen by PLC and the other way around)


    how many programs PLC need to be able to choose from?
    what program type your are using? (PGNO encoding scheme)
    are you using parity?


    it's been long since i worked with Siemens and don't know your CPU but you should be able to either use outputs individually (Q12.3) or group them into a byte or word etc (QB1, QW1)

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • iDio
    Trophies
    3
    Posts
    140
    • April 30, 2018 at 3:22 PM
    • #10
    Quote from panic mode


    what exactly you are stuck on?
    how are signals transferred between PLC and KRC?
    how many? do they all work? (changing output on KRC is seen by PLC and the other way around)

    All the signals work perfectly via Profinet.
    P.ex., which robot input is used for the PGNO_TYPE and PGNO_LENGTH? should i send a "normal" array of outputs to $IN[1] p.ex?


    Quote from panic mode


    how many programs PLC need to be able to choose from?
    what program type your are using? (PGNO encoding scheme)
    are you using parity?


    it's been long since i worked with Siemens and don't know your CPU but you should be able to either use outputs individually (Q12.3) or group them into a byte or word etc (QB1, QW1)

    Just 2 programs. I was thinking PGNO type 3, that does not require parity. I think it suits ok this purpose

  • NoMad
    Trophies
    3
    Posts
    67
    • April 30, 2018 at 3:37 PM
    • #11

    what data types are you trying to send?

    Int?
    Real?
    Bool?

    try and see if you set a value on PLC side you can see it on robot side and vice versa.

    ---
    on PLC side send a Word or double word
    on KRC you should recieve the same length of bits, map these in or outputs as signals with the same length : $In[startbit] to $In[Endbit]/ $out[startbit] to $out[Endbit] (byte 8 bits, Word 16 bits, ...)

    Check that bytes have to be swaped or not.
    ---

    Kind regards,
    Nomad

  • iDio
    Trophies
    3
    Posts
    140
    • April 30, 2018 at 4:12 PM
    • #12
    Quote from NoMad


    what data types are you trying to send?

    Int?
    Real?
    Bool?

    try and see if you set a value on PLC side you can see it on robot side and vice versa.

    ---
    on PLC side send a Word or double word
    on KRC you should recieve the same length of bits, map these in or outputs as signals with the same length : $In[startbit] to $In[Endbit]/ $out[startbit] to $out[Endbit] (byte 8 bits, Word 16 bits, ...)

    Check that bytes have to be swaped or not.
    ---

    Kind regards,
    Nomad

    Display More

    I tested everything with BOOL.
    I'll try what you said in 15min, i'll give feedback asap. Tks

  • Online
    SkyeFire
    Reactions Received
    1,051
    Trophies
    12
    Posts
    9,423
    • April 30, 2018 at 4:47 PM
    • #13

    PGNO_TYPE and PGNO_LENGTH are internal variables that define the PGNO-related inputs. They are not inputs themselves. This is all explained in detail in the configuration manual.

    The module P00 contains all the code that makes use of the PGNO variables. It looks more complicated than it really is, because P00 is designed to enable a large number of user-selected options.

    Put very briefly, the variable PGNO receives a value from the Inputs, based on PGNO_FBIT and PGNO_LENGTH. Rather than declare a fixed $IN block, PGNO_FBIT is the number of the first input for PGNO, and PGNO_LENGTH defines the number of bits. So with a PGNO_FBIT of 17, and a PGNO_LENGTH of 8, your PGNO value would need to be received on $IN[17] through $IN[24].

    When running CELL.SRC, P00 is called and waits for PGNO_VALID to be received. When PGNO_VALID becomes True, P00 reads in the PGNO value from the inputs mathematically, and sends back handshaking signals, before passing PGNO back to CELL. CELL then selects which branch of the SWITCH statement to execute based on the integer value of PGNO.

  • iDio
    Trophies
    3
    Posts
    140
    • April 30, 2018 at 5:33 PM
    • #14

    Ok. I just tried something like this:
    - changed the $motion_enable value to 20.
    - sent a bool value of TRUE to the input 20.
    - the robot received the value properly ( i checked in the automatic external display I/Os)
    - error message KSS00203 : General motion enable.

    I went to cell.src, tried T1 until the case select sentence but it doesn't work ( i can't move in T1).

    Should i keep the default values and work this way?

  • NoMad
    Trophies
    3
    Posts
    67
    • April 30, 2018 at 5:49 PM
    • #15

    It doesn't work is pretty vague, what does and what doesn't work?

    Kind regards,
    NoMad

  • iDio
    Trophies
    3
    Posts
    140
    • April 30, 2018 at 6:11 PM
    • #16

    Let's start over.
    I've reconfigured the robot project in workvisual for 2032 I/O's in order to use the default automatic external variable values. Already changed the PLC side project as well.

    Now i get the error KSS06503 - I/O driver PNIO-DEV -> $IN[1025] IOSYS_IN_TRUE/-FALSE configuration error.

  • iDio
    Trophies
    3
    Posts
    140
    • April 30, 2018 at 7:13 PM
    • #17

    I have mapped all inputs to outputs in the workvisual : 2024 I/O's.
    After that i get the error : I/O driver PNIO-DEV -> $In[1025] IOSYS_IN_TRUE/-FALSE configuration error.

    It doesn't look critical because i can move the robot in T1 when i select cell.src

    But when i change the key to EXT to start i get the message $MOVE_ENABLE configuration not allowed ( kss00249)

  • NoMad
    Trophies
    3
    Posts
    67
    • April 30, 2018 at 9:16 PM
    • #18

    From the top of my head: I think the move enable message is because you have set the move enable input to always true($in[1025]) you should use an input coming from the plc.

    For the other error, did you map your i/o from the plc over input 1025 or 1026 or any other i/o signals reserved for the robot system?

    Kind regards,
    Nomad

  • Online
    Leon
    Reactions Received
    35
    Trophies
    5
    Posts
    471
    • May 1, 2018 at 1:39 PM
    • #19

    Isn't motion enable a boolean? it doesn't make sense to send a value to it. Either you enable it or you don't

    Every problem has a solution, that isn't the problem. The problem is the solution.

  • Online
    panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • May 1, 2018 at 1:56 PM
    • #20

    Boolean variables have values... TRUE or FALSE are values

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download