Updated: 07/09/2013

Our Ethernet Software Developers Kit for EBCs, EBC100s, ECOMs, ECOM100s & EDRVs

As part of our federation's effort to provide best value to the customer, we are providing an Ethernet Software Development Kit (SDK) for our EBCs, EBC100s, ECOMs, ECOM100s and EDRVs  free of charge. Because of the obvious economic implications of doing so, we can't provide telephone support for these tools. We have tried to provide clear documentation and sample applications. We will provide answers to specific implementation questions via email.

The interface code as a package is written with the “less is more” philosophy. It is intended to be the minimum layer between the client application and the I/O interface module. As such, the client application has the responsibility of initialization, building up I/O requests, parsing responses, handling error conditions and cleanup when the client application closes.

Being that our other software products are Win32 applications, the examples included in our Ethernet SDK are for Microsoft Visual C/C++ and for Microsoft Visual Basic. However, they should build under any 32-bit compiler with a few tweaks. As more people convert our SDK to run on platforms, we'll make them available here. The demonstration programs are included to help you understand the process of communication with the EBCs, ECOMs and EDRVs.

We will be adding additional documentation files, example code, and other goodies to the SDK as we learn more about what is required to use our SDK efficiently. As developers of the products, we sometimes over-simplify some aspects of communicating with our modules. As we get questions from developers using our SDK, we will publish FAQs, tip sheets, tables of information, etc. that address these issues and try to head off some of the common problems.

Source Code for our Ethernet SDK

For professional software developers who, for legitimate reasons, cannot use our Ethernet SDK as provided, we will make the source code to the Ethernet SDK available. Some legitimate reasons are: you’re developing for a non-Windows environment (UNIX, Linux, etc.), you’re not using Microsoft’s Visual C/C++ development environment, or you want to include the SDK's APIs directly into your application and not use the provided DLLs. We will provide this source code free of charge and will provide assistance in its use via email. 

Along with the Win32 version of the source code, we do have available two customer provided ports of the source code, one for Linux (RH v8.1) and one for VB.Net v2003 / 2005.

To request the source code for our Ethernet SDK, send us an email with the information described below

This document and the products it represents are a work in progress. We desire your feedback, so if you have some constructive criticism or enhancement ideas, please don’t hesitate to send them in. The preferred method of communicating with us about the Ethernet SDK is via an email sent to SDKSupport@hosteng.com.

NOTE: Some of the example programs were built before the Terminator I/O system was designed. As such, they do not work with the T1H-EBC or T1H-EBC100. The examples can be made to so do with a few minor changes. The changes are necessary because Terminator I/O systems can potentially be larger than either 205 or 405 systems. The changes consist of allowing for more bases and slots, and changing the way we express the amount of I/O data.

Changes are needed in four areas, they can be summarized as follows: 

  • BASE and SLOT are now BYTEs, they used to be 4 bits each
  • The amount of I/O data is expressed as the number of bytes for all modules
  • READIO, WRITEIO and setup packets must begin with a 'B1 00'
  • All terminator I/O modules are type 7

We've also updated the 205 and 405 EBC firmware to work with this new packet style. If you are using mixed EBC systems, you can update the 205 and 405 EBC firmware and use only one driver for all of our EBCs.

Ethernet SDK Files
  • Ethernet SDK (Win32 Version)
    01 Oct 2004
    1.5 Mb

    This ZIP file contains all the DLLs, LIBs, header files and example programs for both Visual C/C++ and Visual Basic. Make sure to maintain the directory structure during the UNZIP operation.
  • CCMDetails.Pdf
    15 January 2004

    The ECOM and ECOM100 modules provide an Ethernet interface to the AutomationDirect PLCs. These PLCs use the CCM protocol (also known as DirectNET) for communications. The ECOMs and ECOM100s essentially provide an Ethernet wrapper around CCM protocol transactions. This chart contains most of the information necessary for writing a driver that will communicate with all of our ECOM modules. It details the CCM Data Types, Ranges, Offsets, etc. that you'll need.

    We also suggest that you download the DirectNET User manual as it has complete information about the DirectNET (CCM) protocol. A lot of the information is PLC networking specific, but the protocol components are in there as well.

    If you want to use the K-Sequence protocol, that requires a document from AutomationDirect that we cannot give you. It's the K-Sequence Protocol Specification. They require that you sign a non-disclosure agreement to get that document. The only reason you should need K-Sequence protocol is if you need to write to individual BITs of PLC data, like writing to a single CR. Unless you specifically need this capability, we recommend that you pack the BITs into BYTEs and write complete BYTEs using CCM protocol.

  • Host Ethernet Interface Specification Version 3.0
    4 October 2008

    The Host Ethernet Interface Specification in PDF format. This copy is usually more up-to-date than the one included in the Ethernet SDK download.

Code Conversions


The following files are customer provided conversions of the SDK source code to a different platform. Since we are exclusively a Win32 shop, we provide these for your use but do not offer any technical support for them.

These conversions DO NOT include all of the SDK source files, they only include the files that were changed during the port. You still need to request the SDK source to get the complete set of code.

Both of these conversions were done before Terminator I/O was developed, as such, they do not support the T1H-EBC or T1H-EBC100. Refer to the above note about the changes needed to add T1H-EBC support.

These ZIP files contain (at a minimum) new versions of  Interface.Cpp, EQ.Cpp, EtherCCM.Cpp, EtherIO.Cpp. We don't know which version of Linux and Solaris these files work with, but hey, they're a good starting point, and did mention they are free !

New! - We also have a LABView v7.0 (or later) library available that implements some basic functionality of the Ethernet SDK such as basic device query and reading and writing PLC memory. Consult the included Readme.Txt file for installation guidelines.

Request the Ethernet SDK Source Code

We are making the source code to the Ethernet SDK available to professional software developers who, for legitimate reasons, cannot use our Ethernet SDK DLLs and libraries as provided. Some of the more popular legitimate reasons are that you're developing for a Unix or Linux environment, or that you want to include our SDK code directly into your application, or that you need the source code to debug your application and you need the source doe four our libraries.

We will provide the source code free of charge and will provide assistance in it's use via email. 

In addition to the Win32 version of the source code, we do have available two customer-provided ports of the source code, one for Linux (RH v8.1) and one for VB.Net 2003. If you'd like to have those source code conversions, let us know when you make the request.

What we would like from you is some information about who you are and why you need the source code. This information is for our internal use only. Click the following hyperlink to send an email with the required information to SDKSourceRequest@hosteng.com:

Your name

Your Company name

Your Company's Street Address

The Email address to send the SDK Source Code. The source code is contained in a 45Kb WinZIP file, so the Email address must be capable of receiving a .ZIP file as an attachment.

A short description of why the SDK itself is not sufficient for your needs and you need the source code, for example: developing for Linux application.