Creating and mapping safety I/O

  • RW 6.07, SafeMove Pro.

    This is a puzzler. I've got a new assignment, where we're supposed to set up an IRC5 with a very specific set of I/O, Safety I/O, and Tasks/Modules created by the end customer. But no installer -- we just got handed a backup of a robot that's "exactly the same" (news flash -- it's not), and so far, we can't find anyone who actually knows anything about how this is supposed to be set up. So we're stuck trying to reverse-engineer the files from the backup.

    So, we have no Safety config file, just a spreadsheet listing the signals. We've been working our way through that, adding the Safe I/Os by hand, and it seems to be okay. But we're getting stuck on something minor.

    The EIO file we were given to load has some Cross Connects that have some of the Safe signals as Actors (mostly copying the status of certain Safe signals to non-safe signals for triggering user messages on the cell PLC). And this is where we're getting stuck: when the robot warm starts, it throws a fault that the CC's Actor 1 is referencing a non-existant signal.

    But! The signal exists -- we created the output soStop0Status in Visual SafeMove, mapped it to the correct Safety Function and the correct offset for the CIP device, and rebooted. After that, when we opened the CC in RobotStudio, and soStop0Status is visible in the dropdown list for the Actor. We set Actor 1 to that soStop0Status, and rebooted. And still got the same message: Actor 1 was referencing a non-existent signal.

    We tried again, rebooted, and suddenly soStop0Status is no longer visible in the CC Actor dropdown list. But it's still present in the Visual SafeMove editor.

    I've tried creating a virtual controller in RobotStudio from the "good" backup we were given, just so I could see the safety config clearly, but the build process dies on a complaint that the EIO file contains too many Internal EIP devices. But the same EIO file loads into our real-world robot without throwing that error.

  • Addendum: The robot I'm working on is actually RW 6.12, but the customer backup I'm supposed to "just dump it in, it'll be fine" was made with RW 6.07.01.

    Now, as I said, when I try to build a virtual controller from the customer backup in RS, it fails on "Too many internal EIP devices". The same happens if we try to just dump the EIO.CFG file into the new robot.

    The customer EIO file has this in the EIP Devices section:


    -Name "EN_Internal_Device" -VendorName "ABB Robotics"\
    -ProductName "EtherNet/IP Internal Adapter Device" -OutputSize 32\
    -InputSize 32 -SafetyEnabled
    -Name "EN_Internal_Device_Safe" -VendorName "ABB Robotics"\
    -ProductName "EtherNet/IP Internal Safety Adapter Device" -SafetyEnabled

    If I comment out the _Safe device, I can load the backup into RS, but end up with an empty Safety config (despite checking the "load safety config" option in the cell creation menu.

    I'm not getting any other errors during build, so I don't think it's an issue with missing option packages.

    So, why would the customer backup have two Internal EIP devices, but RS and my real robot both reject that?

    In every revent IRC5 I've worked on (for which I received a starter Safe Config file that had all the signals pre-made), I've only ever seen a single EN_Internal_Device -- there has never been a separate Safe device. Is this just a matter of version differences between robots?

  • I have been away from commissioning for some years now, and never had any of the safety options which are becoming more prevalent. But, in the help tab of RS I saw the Profinet controller/device which includes the safe option. Maybe you do something similar to this with the newer robotware:

  • Well, I cheated -- I badgered a Safety Config and a newer EIO file out of the customer, and after some hacking, that's settled my load and compile errors. Whew!

    Now I have a different problem. Most of the safety signals created in the Safe I/O Configurator show up in the I/O monitor under the Controller tab. But not all. In fact, looking more closely, it seems like all my Safe Outputs show up in the I/O System tab, but none of the Safety Inputs do. I've checked, and the Safety Outputs that appear in I/O System are not in the EIO file, only in the SC_EIO and SC_CONFIG.

    If I want the Safe Inputs to show up in the RS monitor window like the outputs, is there an extra step I need to do?

  • Well. I tripped over the exact thread I needed, while searching for something else.

    Looks like older RW created two different internal EIP devices (one Safe, the other non-Safe), but later versions (at least RW 6.12) only allow one. The solution in that thread is exactly what I ended up with, once I got a more recent EIO file from the customer.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now