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. Yaskawa Motoman 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

YASKAWA - YRC1000 - Programing Issues

  • apakrat13
  • May 24, 2025 at 9:58 AM
  • Thread is Resolved
  • apakrat13
    Trophies
    3
    Posts
    72
    • May 24, 2025 at 9:58 AM
    • New
    • #1

    Hi all,

    I have a program as shown below. The intended behavior is for the robot to move to position P002 and then trigger the output (OT#) to the PLC. Everything works fine during normal production runs.

    However, I'm encountering an issue:
    If an external hold signal is sent while the robot is moving between P1 and P2, the cursor stops at line 003. After I reset the hold signal and issue an external start from the PLC, the robot immediately triggers the pulse—even though it's not yet at P002.

    I tried adding a timer (T = 0.1s) before the PULSE instruction, but the result is still the same.

    Could anyone please advise how to fix this? Thank you so much for your help.

  • TSGIR
    Reactions Received
    81
    Trophies
    6
    Posts
    714
    • May 25, 2025 at 8:38 PM
    • New
    • #2

    When you reset the stop job, do you give any message to reset and confirm?

  • apakrat13
    Trophies
    3
    Posts
    72
    • May 26, 2025 at 2:48 AM
    • New
    • #3
    Quote from TSGIR

    When you reset the stop job, do you give any message to reset and confirm?

    I don't. Just send external start and job run.

  • The Minnesota Guy
    Reactions Received
    2
    Posts
    7
    • May 27, 2025 at 1:11 AM
    • New
    • #4

    I've experienced this type of thing before, only on DX200. It's as if the PL=0 tag is ignored when the robot is stopped mid-path and close enough to position. There are a couple things you can try as a work-around:

    1. Duplicate your current LINE 3 MOVL P002 PL=0 so that when the cursor moves past the first MOVL P002 PL=0 it will execute the second line. This causes only minimal cycle-time loss.

    2. Setup an Interference cube with Feedback as the CHECK MEASURE setting. Use the WAIT SOUT# instruction to reference if the robot in the correct position for the PULSE.

    Images

    • Feedback Check Measure.png
      • 28.51 kB
      • 771 × 330
      • 0
    • JOB Sample.png
      • 16.99 kB
      • 400 × 365
      • 0
  • apakrat13
    Trophies
    3
    Posts
    72
    • May 27, 2025 at 4:12 AM
    • New
    • #5
    Quote from The Minnesota Guy

    I've experienced this type of thing before, only on DX200. It's as if the PL=0 tag is ignored when the robot is stopped mid-path and close enough to position. There are a couple things you can try as a work-around:

    1. Duplicate your current LINE 3 MOVL P002 PL=0 so that when the cursor moves past the first MOVL P002 PL=0 it will execute the second line. This causes only minimal cycle-time loss.

    2. Setup an Interference cube with Feedback as the CHECK MEASURE setting. Use the WAIT SOUT# instruction to reference if the robot in the correct position for the PULSE.

    The 2. option is hard to do because this program is for a place and shift Z for several racks, so the positions are not stable. I can't set up a good interference cube.

    I’ll try the first option, hope this work.

    Thanks so much for your help!

  • The Minnesota Guy
    Reactions Received
    2
    Posts
    7
    • May 27, 2025 at 4:31 AM
    • New
    • #6
    Quote from apakrat13

    The 2. option is hard to do because this program is for a place and shift Z for several racks, so the positions are not stable. I can't set up a good interference cube.

    I’ll try the first option, hope this work.

    Thanks so much for your help!

    You are correct that Option 2 is harder, but please let me know whether Option 1 solves it for you. To implement Option 2, you can write a User frame from the Job that appropriately surrounds P002 regardless of where it varies. Happy programming!

  • apakrat13
    Trophies
    3
    Posts
    72
    • May 27, 2025 at 12:28 PM
    • New
    • #7
    Quote from The Minnesota Guy

    You are correct that Option 2 is harder, but please let me know whether Option 1 solves it for you. To implement Option 2, you can write a User frame from the Job that appropriately surrounds P002 regardless of where it varies. Happy programming!

    Option 1 was working, thank you. But can you tell me more detail how to implement option 2? I still don't get it. That may help me while programming next time.

  • The Minnesota Guy
    Reactions Received
    2
    Posts
    7
    • May 29, 2025 at 2:47 AM
    • New
    • #8
    Quote from apakrat13

    Option 1 was working, thank you. But can you tell me more detail how to implement option 2? I still don't get it. That may help me while programming next time.

    Hi, sorry for the delayed response. I will attach screenshots of option 2 cube and job sample from Notepad++. (I'm assuming your P002 is in a coordinate rather than pulse.) Also, I thought more about it and a Jump instruction seems to make more sense as it provides a way to execute the MOV again after a hold, for instance.

    Here's the English breakdown:

    1. Setup user frame and interference cube of your choice.
      • User frame origin does not matter as job will rewrite it anyway.
    2. Write job with move to P002.
      • Get P002 data.
      • Do math to put the user origin at P002 plus shift.
      • use MFRAME instruction to write the user frame in the location and orientation as configured by the preceding math
      • Jump with If statement won't let cursor past Mov until specific output associated with cube is on (or off- your choice).
      • Note: the job could get stuck if P002 is changed, etc. You will want to know how you want to recover from this. It can be programmed to escape, or you can require operator intervention.

    Images

    • User Cube.png
      • 34.07 kB
      • 772 × 529
      • 1
    • Sample Job2.png
      • 21.22 kB
      • 525 × 801
      • 1
  • apakrat13
    Trophies
    3
    Posts
    72
    • May 29, 2025 at 8:56 AM
    • New
    • #9
    Quote from The Minnesota Guy

    Hi, sorry for the delayed response. I will attach screenshots of option 2 cube and job sample from Notepad++. (I'm assuming your P002 is in a coordinate rather than pulse.) Also, I thought more about it and a Jump instruction seems to make more sense as it provides a way to execute the MOV again after a hold, for instance.

    Here's the English breakdown:

    1. Setup user frame and interference cube of your choice.
      • User frame origin does not matter as job will rewrite it anyway.
    2. Write job with move to P002.
      • Get P002 data.
      • Do math to put the user origin at P002 plus shift.
      • use MFRAME instruction to write the user frame in the location and orientation as configured by the preceding math
      • Jump with If statement won't let cursor past Mov until specific output associated with cube is on (or off- your choice).
      • Note: the job could get stuck if P002 is changed, etc. You will want to know how you want to recover from this. It can be programmed to escape, or you can require operator intervention.

    I understand now, thank you for your support. The MFRAME inform look really useful.

  • 95devils
    Reactions Received
    233
    Trophies
    8
    Posts
    1,946
    • May 29, 2025 at 2:48 PM
    • New
    • #10

    You could try adding the ADVSTOP instruction between the move and the pulse. This is in the INFORM LIST under CONTROL in Expanded Language Level.


    You could also change S2C654 to 100. This is move completion. Downside is that parameter is global.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • apakrat13
    Trophies
    3
    Posts
    72
    • June 10, 2025 at 11:41 AM
    • New
    • #11
    Quote from 95devils

    You could try adding the ADVSTOP instruction between the move and the pulse. This is in the INFORM LIST under CONTROL in Expanded Language Level.


    You could also change S2C654 to 100. This is move completion. Downside is that parameter is global.

    Thank you for your support. I will try this next time visit that system cause I have some others robot but don't meet that issue.

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

Users Viewing This Thread

  • 1 Guest
  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