Looking for fast remote I/O


Thread Starter


I'm looking for fast remote I/O. I need to have an update time less than 1 ms (including I/O cycle time). My application will have around 150 distributed digital I/O and I need to save each 800 µs the state of I/O.

I know I can do that with Beckhoff and National Instrument but I need another solution.

Thank you.
It would also be hard to realize with an EtherCAT solution.

The transfer of a packet with 700 bits over 100Mb/s Ethernet takes
~10us, but you have to add the transfer time of the K-bus which is in the range of 0.5ms ( documented for e.g. Profubus modules) and at least 200us for the overhead created by the PCI bus, the Ethernet controller and its master driver.

A comparable (or better) performance is also possible with PROFIBUS DP at 12Mb/s and a small number of I/O modules. The the poll cycle of PROFIBUS DP slaves goes down to ~20us with a small packet size, so with 10 slaves the bus cycle can be in the range of 200us! With an I/O filter duration of 0.2ms or lower an bus cycle of 800us is also
possible with PROFIBUS DP!

Best Regards

Armin Steinhoff
Check out Acromag's EtherStax Model ES2113. It's a 96ch dio card that speaks Ethernet Modbus TCP/IP or UDP/IP. All i/o is updated in 1ms or less.

Goto: www.acromag.com and search on es2113.

If any questions or I can assist, just let me know.

Kind Regards,
Donald Lupo
Director of Marketing and Sales
Process Products
Direct: 248-295-0860
Cell: 248-787-3882
Hello Donald,
Where can I find detailed information about these update cycles? I found at www.acromag.com only a statement about update cycles with "less than 50ms, typical 28ms".

Best Regards
Armin Steinhoff
You should be able to find the info in the datasheet and manual.

I can email it to you if you send me an email direct to [email protected]


Donald Lupo
Director of Marketing and Sales
Process Products
Direct: 248-295-0860
Cell: 248-787-3882
In reply to Don Lupo: You have three PDF files on your Acromag web site that are relevant to this model of I/O. There is a 2 page brochure (file name "ES2113.pdf", document number "Bulletin #8400-454c"), and two data sheets (Etherstax_355.pdf Etherstax_453.pdf, document numbers 8400-355 and 8400-453). None of these contain any information about I/O polling update times. The manuals might contain this information, but access to them is controlled by a password and they are not available to the public.

So, while it is no doubt true that we "*should* be able to find the info in the datasheet and manual", in actual fact we can't because the information is either not there, or the documents which might contain the information are not available.
In reply to dss: How many nodes are you splitting that 150 I/O over? Is it all in one rack, or is it split into multiple modules?

Also, you said you "need to save each 800 µs the state of I/O". Do you need to react to the I/O state every 800 µs, or is that just the sampling rate? If you just need to sample at that rate, what you may really want is an I/O system that will buffer the inputs and let you grab large blocks of data at once. Also, how accurate does the sample rate need to be?

I can't point out an off the shelf solution for this though, except perhaps to suggest doing it with a PC/104, small form factor PC, or some other computer system. At these data rates, you are out of the realm of industrial I/O and into data acquisition hardware territory.

You said you know you can do what you want using Beckhoff or NI kit. That may be so, but I haven't seen any information that would give me the confidence to say that is so. That 800 µs would need to be an end-to-end number, and the numbers I have seen cited by NI are for sub-systems only. Unless you've already done this before, or have a guaranty from NI or Beckhoff that they can do this, I would hesitate to assume they can do this for a complete end-to-end solution (input point to final data destination).
My apologies group. I was mistaken on where the information was located. The datasheet on the ES2113 (8400-454) only contains peer to peer timing of better then 5mS which is all inclusive of two hardware modules talking to each other. In testing, the thru put time between two units using Modbus tcp/ip communication is about 4mS (ie; about 1-1.5ms for each io unit and about 1-1.5mS for acknowledged communications between the two). Peer to peer mode has a little more overhead than simply polling the units but is good reference information for benchmark timing.

The manual (8500-777) does indicate on page 70 a polling time of 1mS. The manual can be freely downloaded from the website but does require user registration one time. If that's too much trouble, just send an email to [email protected] or me, and it will be emailed directly to you.

If you're looking for fast, off the shelf discrete io, then the ES2113 should be considered. The update times are 1ms nominally and, if you use Modbus Udp/ip (ie; unacknowledged comms) the wire time delays should be sub 1ms at ethernet 10/100. If you use Modbus Tcp/ip communications, the wire time delays approach 1 ms. These benchmark times are best case and assuming a clean network with no significant collissions or delays.

I'll work with Acromag on getting the html and datasheet updated as well.


Donald Lupo
Director of Marketing and Sales
Process Products
Direct: 248-295-0860
Cell: 248-787-3882
We had a similar requirement and tried using Phoenix I/O over Ethernet, which was not fast enough. We did find that Wago 750 series I/O was extremely fast. You might give it a try.

Ken Emmons Jr.

Has anyone used B&R X20 with their modbus TCP/UDP coupler option? I
noticed the other day that they have this, which could be used with a
RTNET linux driver. Not everybody supports Modbus UDP which is a cool
option for << 1ms updates.

For fast remote i/o, checkout the following Acromag Ethernet I/O products:

EtherStax Products:
ES2113 - 96ch DIO, 1mS updates
ES2161 - 32ch AI-I, <5mS updates (770uS for 4 channels)
ES2162 - 32ch AI-V, <5mS updates (770uS for 4 channels)
ES2171 - 16ch AO-I, <1ms/ch
ES2172 - 16ch AO-V, <1mS/ch

BusWorks Products:
989EN - 16ch DIO, <1mS updates
967EN - 8ch AI-I, <8mS updates
968EN - 8ch AI-V, <8mS updates

Other products with fast updates are available too. If any questions,
please email me at [email protected]

Kind Regards...

Curt Wuollet

Haven't used it, but I know B&R is doing a lot of cool things with Linux. They may be the first to offer a Linux tool chain for their PLCs. I've tried a couple times to get involved with their stuff, but couldn't get the powers that be to buy their tools. They have APROL which runs on Linux.

800 µs / 150 = 5.33 µs = 0.00533 ms

Sounds like that is impossible to do with any fieldbus/ethernet based system. Take into account that you have to face jitter also. If you want to run a closed loop control over that i would advise against that. The remote system will only be usefull to transmit the reference values for the controllers but not be sufficient for closed loop control.

Instead i would use I/O cards directly plugged into PCI. You can remotely control such an distributed system with http://pvbrowser.org.

PS: The fastest remote I/O system i know is: http://www.gefanuc.com/products/family/reflective-memory-nodes

James Ingraham

>800 µs / 150 = 5.33 µs = 0.00533 ms

I disagree with the logic here. If you needed to serially poll 150 nodes that math would be correct. But presumably there is more than one point per node. All 150 could be on one node. Even if there are multiple nodes, it's possible to speak to more than one at a time.

Yes, the data has to go serially down the wire, but wire speed of say Ethernet is pretty darn quick, and the "receiver" can certainly process data that quickly.

So while I agree that this is a quite fast system, I do think it's possible, depending on how it's done.

-James Ingraham
Sage Automation, Inc.

Ken Emmons Jr.

I second James Ingraham. Most Ethernet IO will have "at least" 8-16 DIO on it. You could do it all in one B&R, Beckhoff, or Wago node.

We did some testing with Wago "slice IO" over 10 years ago with profibus and found that the device itself was slower than 1ms even though the bus was able to update much faster than that. They may have updated this over that time, but it goes to show that the ethernet may not be the slowest guy in the picture.

I would seriously check into B&R, they do a lot of things "right" for high performance machines.

Having said all of that though, your Host machine needs to be able to poll data this fast. If it is a PLC they might limit you to a poll rate over 1ms. One of the realtime linux variants with RTNET driver can probably poll the devices about as fast as the ethernet can keep up if you use UDP transport. And Ethernet can be VERY fast if it is a separate network with nothing else on it congesting the system. This is why I was interested in Modbus UDP interface for B&R X20.

If you want a PLC solution, you might look at Mitsubishi CCLink (They have a new one that runs over Gigabit hardware I believe).

So I guess I'll ask the original person who posted, what are you polling the IO with??


Curt Wuollet

And you would want to do everything you could to prevent collisions. But certainly doable. I would certainly check and make sure that the IO can sustain a high data rate, there's no question a PC with the right stack can, but how bout the IO firmware?

>>800 µs / 150 = 5.33 µs = 0.00533 ms
>I disagree with the logic here.


ping to my local router:
64 bytes from sx ( icmp_seq=1 ttl=64 time=0.424 ms

That is reality.

If such high sampling rates are necessary, stick to I/O cards directly plugged into PCI.
I have measured *average* polling cycle times of 750 µs with an Advantech 6000 series DIO module. That was less than a dozen I/O in a node though and average throughput is not the same thing as sample rate.

However, I have my doubts about the concept as described. I suspect there are a number of other important application characteristics which are either not being taken into account or which were not stated in the original question.

The original description sounds like a multi-channel data acquisition application using digital I/O instead of analogue. There are special digital boards for that, and they're not cheap.