Real I/O on a Virtual Controller

Options
If it's possible for teaching sake: What's the cheapest and easiest way to hook a real I/O unit to a computer and use the real I/O on a virtual controller?

Comments

  • soup
    soup ✭✭✭
    Options
    Suggestions?
  • svoldgaard
    Options
    hmm you could use a small development board, with ethernet. then have it transmit a signal to the robot. Then you could use a alias signal, that you sets equal to the ethernet data.
  • soup
    soup ✭✭✭
    Options
    Thanks for the reply.

    Ethernet IO sounds good -- does the virtual controller have access to this IO via the computer's network?

    Let me change the question slightly: Is there any way (does not need to be cheap, but let's say under $5,000) to connect an IO module for prototyping to the virtual controller?

  • graafderk
    graafderk
    edited May 2015
    Options
    If I remember correctly, a colleague experimented with an OPC server, but I'm not sure about the results. I found this blog post from ABB talking about it, but I'm not sure if it is still supported.
    Also see this thread on another forum.
  • svoldgaard
    Options
    A cheap board like raspberry pi, should do the trick. 
    I have not tried a setup like this, but I know, that you can use ethernet on a virtual controller. Then you will need to use some clever programming, to make it work like an IO signal.
    I might be able to help with the program, but I don't have a lot of spare time though.

  • soup
    soup ✭✭✭
    Options
    Again, thanks for the replies.

    graafderk,
    • Connecting to a PLC: I can see where it would be handy to connect to a PLC, but I'd like to connect a less intelligent I/O module.
    • SmartComponent: Very interesting post on the "OPC fairytale." Mocking real I/O virtually is a great feature, but I've never seen them talk about RS triggering a real output, etc.
    svoldgaard,
    • Pi: As much as I'd love an excuse to buy a Raspberry Pi, it doesn't seem like that would translate very well into a real world application.
    • Help: I appreciate your offer.


  • soup
    soup ✭✭✭
    Options

    http://numato.com/16-channel-ethernet-gpio-module.html

    • I have no idea the specs to look for in an I/O module to do this -- think the above could connect to the PC's network and be configured in the EIO file of a virtual controller? Thoughts?
  • PerSvensson
    PerSvensson ✭✭✭
    Options
    One idea could be to write a smart component that communicates with the real io card connected to the pc. I have used Advantech (booth ISA and USB cards) a lot. But you should be able to find others as well
    Per Svensson
    Robotics and Vision Specialist
    Consat Engineering
  • soup
    soup ✭✭✭
    Options
    Interesting -- how do you configure the USB IO card in the EIO file?
  • PerSvensson
    Options

    Usally a IO card like this comes with an API so that you can communicate with it using for ex. C# so you can write a smart component that handles the communication with the io card. Then you have to connect the IO's between the smart component and the virtual controller io's.

    So there is no direct connection between the EIO.cfg and the USB io card.

    Per Svensson
    Robotics and Vision Specialist
    Consat Engineering
  • Daper
    Options
    Hi there,

    I would like to be able for a real  external PLC to change DI/DO's in my virtual controller using Ethernet IP communication, but I am not sure how I am supposed to set it all up from the RS point of view.

    Does any of you guys know how I could solve my problem ? @soup @PerSvensson or anyone else

    I've also seen a related topic https://forums.robotstudio.com/discussion/12972/opc-smart-component which explains how to do using OPC and smart comp, but I can't find a similar way (if any) to do it with EIP.

  • DenisFR
    DenisFR ✭✭✭
    Options
    Hello,
    I don't think it is possible.
    Is your PLC OPC-UA compatible?
  • Daper
    Options
    Thanks @DenisFR for your input !
    Well I think it could but my goal is really to avoid it for the following reason :
    The real controller and the PLC do communicate together with EIP and the goal is to reproduce the same in virtual, so that the PLC does not have to speak a different language whether we are working on the virtual or the real system. The PLC program can remain untouched in both cases, so as the RAPID code.

    I was thinking about creating a middleware on the PC that acts as an intermediary, which translates real inputs from PLC (with EIP) into virtual signals to the VC (also via internal ethernet frame).

    Do you know by any chance if a REST API functionality could do the job between PC and virtual controller ? Or anything else ?
  • DenisFR
    DenisFR ✭✭✭
    Options
    No, sorry.
  • Daper
    Options
    So I eventually made it work, but not sure if it's the right way to do it:
    - Assigned a new IP address to my PC through the Ethernet system parameters with the one that matches the VC
    - In RS: under Configuration - I/O system - Industrial Network, changed the default EthernetIP network properties from "Private Network" to "IP" in the "Connection" item. (Which by the way I could not set back to "Private Network", the change was rejected by the system)
    - Under Configuration . Communicattion - IP Setting, made sure the IP address matched the one of the PC.

    I tried to deactivate/reactivate the firewall but had no effect; worked with both