from the Visual Basic ActiveX department...
Visual Basic App Interface to Ethernet/IP remote I/O
Communications systems and equipment. topic
Posted by Mark Gustafson on 26 July, 2008 - 1:35 am
Anybody ever find an ActiveX OCX to allow a PC based Visual Basic or C++ application read and write directly through an ethernet port to any Ethernet/IP Remote I/O system? I want to write a PC based controller / HMI to read and write to 256 inputs and 256 outputs via a common PC RJ-45 Ethernet port. Open source would be much better then some proprietary source. I goodled ActiveX Ethernet/IP remote I/O and get just crap. ActiveX data aquistion is better, but the companies who offer the ActiveX want $900 per year for the license, which seems a bit high. I have used CimQuest ActiveX for AB PLC's in the past. let me know if you have heard of any kind of new tech for this. thanks, M.G

Posted by JJC on 26 July, 2008 - 1:09 pm
I used Automated Solutions' Modbus/TCP ActiveX a couple of years ago in an VB6 HMI / VisionPro application. It has been a very reliable way to both scan I/O and swap bits with a PLC. The best I/O read/write scan time I could depend on was about 75 mSec.

Posted by Michael Griffin on 27 July, 2008 - 11:58 am
Do you have a specific reason for using Ethernet/IP? This is a proprietary protocol, so support for it is somewhat limited. If you use an open protocol such as Modbus/TCP, you have a lot more choice available to you.

Also, why do you want to use ActiveX? I was under the impression that ActiveX is obsolete and is being phased out. Again, with Modbus/TCP there are lots of free source code libraries available that you can link directly into your application.

Regardless of what software or protocol you use, something to keep in mind is whether the I/O is all in one rack or whether it is scattered in different addresses. If the I/O is in multiple racks or units, you either have to poll them one at a time (which can be slow), or use a more sophisticated approach. One method for example is to run as a separate process as a proxy server which polls all the I/O in parallel (it doesn't wait for one module to respond before polling the next one). Your main application then polls that proxy server to get all the information at once without delay. This greatly simplifies your main application while improving overall performance.

I have a project with about half a dozen separate packages at
which you might want to look at. The download page is at:
There is documentation is at: and the MBServer package has additional on-line documentation.

This project is in Python rather than the C++ or VB that you asked about, but you might find the explanations it gives to be useful (or you might decide to do your project in Python). The SimpleClient library can be used as a simple Modbus/TCP client library. The MBServer can run as a stand alone proxy to gather information which can then be read by another program.

Posted by Romulo Rodriguez on 27 July, 2008 - 11:59 am
Why don't you try python instead? Download this and try:

Java is another good option since jamod is excellent:

And if you like Ruby you may try:



Posted by Spark on 8 June, 2011 - 12:22 am
very nice

Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2014 Nerds in Control, LLC. All rights reserved.

Users of this site are benefiting from open source technologies, including PHP, MySQL and Apache. Be happy.

When you're not looking at it, this fortune is written in FORTRAN.
Advertise here
our advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive