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. Fanuc 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

Send DO when differents fault occur

  • Gariep
  • February 14, 2014 at 10:15 PM
  • Thread is Resolved
  • Gariep
    Trophies
    3
    Posts
    98
    • February 14, 2014 at 10:15 PM
    • #1

    Hi guys,
    I have a device i want to stop by sending a DO under differents conditions, like when a collision occur, an e-stop is pressed or a DCS fault is detected
    I been able to send an output when a e-stop is pressed in menu-->system-->config.
    i also set an output for the collision detect in setup--coll guard menu but i can't use the same output as the one i use for e-stop.
    It doesn't really matter, i could use differents signal to stop my device but i didn't find a way to send a DO when a DCS fault occur.

    Edited once, last by ArcMan (February 15, 2014 at 9:21 PM).

  • jay
    Reactions Received
    25
    Trophies
    3
    Posts
    82
    • February 17, 2014 at 4:52 PM
    • #2

    You can map many of the Emergency Stop signals via the I/O Interconnect setup ES -> DO screen. I'm not sure if this includes DCS faults as a unique item though.

    ONE Robotics Company

  • leopard
    Reactions Received
    4
    Trophies
    3
    Posts
    73
    • February 17, 2014 at 11:34 PM
    • #3

    Fanuc has an option for you: Error Code Output.
    Call them and find the price.

  • Gariep
    Trophies
    3
    Posts
    98
    • February 19, 2014 at 4:55 PM
    • #4

    Is there a way to send a DO when the fence is open without this option?

  • leopard
    Reactions Received
    4
    Trophies
    3
    Posts
    73
    • February 19, 2014 at 7:31 PM
    • #5

    If you have DCS and safety IO connect, you can try mapping the DO to SSI[2] and reverse the polarity.

  • Gariep
    Trophies
    3
    Posts
    98
    • March 19, 2014 at 9:02 PM
    • #6

    I didn't had the chance to test on real robot but i should be ok for the fence signal with any of both solution you guys gave me.

    The only thing for wich i didn't be able to send a DO yet is the DCS alarm.

    If i could do it withough this option i'll be happy.

    Any idea?

    Thank you

  • Racermike123
    Reactions Received
    13
    Trophies
    4
    Posts
    901
    • March 19, 2014 at 9:38 PM
    • #7

    I use a digital output that is configured as a user output as well. DO6 will be on if the controller is faulted. With some BG logic I turn on another output when the robot is faulted.

    3: IF (DO[6:UOP - Robot Fault]=ON),DO[512]=(ON) ;

  • DuhbCakes
    Guest
    • March 20, 2014 at 8:09 PM
    • #8

    Monitor the safety variable. You can use the Group Output to run the bitwise operation for you, and map the result to a flag. Or external digital outputs.

    If you have a recent enough controller, then you should have access to flags. Flags are internal Boolean logic, they function like I/O, but no field devices access them. $MIX_LOGIC.$use_flg must be set to TRUE for the flags to be displayed. Flags are mapped like any other I/O in logic.

    Flags are on Rack 34 Slot 1. If you want to push it to a output, you can just map an output either to the flag itself, or you can use I/O Interconnect, or write a BG program to set them equal to each other.

    BG Logic EX.
    : DO[Fence]=F[4:Fence] ;

    Map to DO[i].
    Range [i] - [i+10] Rack 34 Slot 1 Start 1

    see attatched picture.
    Category: Variables
    This variable can be set to a register in logic and have bitwise operations performed to determine the cause of safety faults.
    1 = E-stop on controller.
    2 = E-stop on Teach pendent
    3 = Deadman Trigger on Teach pendent
    4 = Fence circuit
    5 = Robot Overtravel
    6 = Hand Broken
    7 = External E-stop
    8 = Pressure Abnormal
    9 = Belt Broken
    10 = Teach Pendent Enabled
    11 = Fault Alarm

    $MOR.$safety_stat
    Minimum: Not available Maximum: Not available Default: Not available KCL/Data: Not available Program: RO UIF: Not available CRTL: Not available Data Type: INTEGER_SK Memory: Not available

    Name: Safety signals status

    Description: $MOR.$safety_stat is bit parameter of safety signals. The bit assignments are as follows. * Bit position for $safety_stat MFS_EMGOP 1 MFS_EMGTP 2 MFS_DEADMAN 4 MFS_FENCE 8 MFS_ROT 16 MFS_HBK 32 MFS_EMGEX 64 MFS_PPABN 128 MFS_BELTBREAK 256 MFS_ENABLE 512 MFS_FALM 1024 When FLTR task detects the above alarms, FLTR set the bit which corresponds to the alarm.

    Power Up: At a cold start, this variable is reset to its default.

    Images

    • io map.jpg
      • 93.46 kB
      • 651 × 522
      • 244

    Files

    io map.jpg_thumb 23.19 kB – 243 Downloads
  • leopard
    Reactions Received
    4
    Trophies
    3
    Posts
    73
    • March 24, 2014 at 7:27 PM
    • #9
    Quote from DuhbCakes


    Monitor the safety variable. You can use the Group Output to run the bitwise operation for you, and map the result to a flag. Or external digital outputs.

    If you have a recent enough controller, then you should have access to flags. Flags are internal Boolean logic, they function like I/O, but no field devices access them. $MIX_LOGIC.$use_flg must be set to TRUE for the flags to be displayed. Flags are mapped like any other I/O in logic.

    Flags are on Rack 34 Slot 1. If you want to push it to a output, you can just map an output either to the flag itself, or you can use I/O Interconnect, or write a BG program to set them equal to each other.

    BG Logic EX.
    : DO[Fence]=F[4:Fence] ;

    Map to DO[i].
    Range [i] - [i+10] Rack 34 Slot 1 Start 1

    see attatched picture.
    Category: Variables
    This variable can be set to a register in logic and have bitwise operations performed to determine the cause of safety faults.
    1 = E-stop on controller.
    2 = E-stop on Teach pendent
    3 = Deadman Trigger on Teach pendent
    4 = Fence circuit
    5 = Robot Overtravel
    6 = Hand Broken
    7 = External E-stop
    8 = Pressure Abnormal
    9 = Belt Broken
    10 = Teach Pendent Enabled
    11 = Fault Alarm

    $MOR.$safety_stat
    Minimum: Not available Maximum: Not available Default: Not available KCL/Data: Not available Program: RO UIF: Not available CRTL: Not available Data Type: INTEGER_SK Memory: Not available

    Name: Safety signals status

    Description: $MOR.$safety_stat is bit parameter of safety signals. The bit assignments are as follows. * Bit position for $safety_stat MFS_EMGOP 1 MFS_EMGTP 2 MFS_DEADMAN 4 MFS_FENCE 8 MFS_ROT 16 MFS_HBK 32 MFS_EMGEX 64 MFS_PPABN 128 MFS_BELTBREAK 256 MFS_ENABLE 512 MFS_FALM 1024 When FLTR task detects the above alarms, FLTR set the bit which corresponds to the alarm.

    Power Up: At a cold start, this variable is reset to its default.

    Display More

    The setup in the screen shot is very smart. I will keep it and use is in the future.

  • Rjalopes5
    Trophies
    3
    Posts
    7
    • May 18, 2024 at 2:25 AM
    • #10

    Hi, maybe I'm making a stupid question and I apologize how do I create that instruction with the $MOR.$safety_stat in the register?

  • gpunkt
    Reactions Received
    119
    Trophies
    6
    Posts
    456
    • May 20, 2024 at 12:19 PM
    • #11
    Quote from Rjalopes5

    Hi, maybe I'm making a stupid question and I apologize how do I create that instruction with the $MOR.$safety_stat in the register?

    When inside the TP editor:

    F1 "Instructions" -> 1 "Registers" -> 8 "...=(...)" -> 2 "R[ ]"
    ***Enter your desired index for the register to use and hit ENTER***
    Then look for the mixed logic instruction called "Parameter name" and then you need to write the parameter name manually.

    The first $-sign is already there, but subsequent $-signs as well as periods (".") must be entered.
    Take good care not to misspell.

  • Rjalopes5
    Trophies
    3
    Posts
    7
    • May 21, 2024 at 11:21 PM
    • #12

    Thank you gpunkt already done thanks alot!!

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