Updated: 04/03/2007

The WinPLC Software Developer Kit

The majority of our WinPLCs are sold through Automationdirect.com as Entivity WinPLCs (they have also been called ThinknDo WinPLCs). These WinPLCs are preloaded with a runtime image (think Windows CE operating system and preinstalled applications and device drivers) that run programs developed by the Entivity (ThinknDo) development software.

The "WinCE-Only" version of the WinPLC uses a runtime image that has the Window CE operating system and the components needed to run Visual C/C++ programs. This version of the WinPLC is sold and supported directly from here at Host Engineering. We have experienced good success with developers that have an existing Windows CE application running on other hardware that they want ported to the WinPLC. These developers work with our WinPLC SDK and WinPLC hardware without a lot of our help. They're CE-savvy and just need our code and some help initially getting connected to the WinPLC.

The WinPLC itself is built around the Hitachi SH1 processor which had good support in WinCE versions up through v3.x. We decided to use the SH1 partly because of Microsoft's long-term development plan for that processor, which looked very strong in 2000 but faded soon after that. That's why we're still using v2.12 today. We planned to move to WinCE v3.0 when it first came out but the licensing cost was prohibitive considering the relatively small gain in performance and enhancements to the platform.

This is particularly bad news for those people looking to use CE.NET (v4.x and later) and/or C# with the WinPLC. Microsoft does not yet have a headless version of WinCE.NET that targets the SH1 processor, and, sadly, there's no indication that they are working on one.

Development Environment:

  1. Microsoft's eMbedded Visual Tools is certified for Windows 2000 and Windows NT4, but we've been running it under Windows XP Pro with good success. It will NOT RUN under Windows Vista.
     
  2. A 10Base-T (or 10/100) Ethernet adapter and appropriate cabling.
     
  3. Both TCP/IP and IPX Protocols loaded and bound to the Ethernet adapter. TCP/IP is the only protocol supported by Windows CE, so this is needed for remote control and program downloading. IPX protocol is used by the WinPLC's bootstrap loader to initially setup the WinPLC's IP address information. The other reason you can't develop under Windows Vista is that Vista does not have support for IPX protocol.

The WinPLC SDK Software:

To create programs that can be used in our WinCE-Only WinPLCs, you'll need the following two pieces of software:

  1. Microsoft's eMbedded Visual Tools V3.0 for the programming environment - available as a free download from the Microsoft web site. This is a complete programming environment to create C/C++ programs to run under Windows CE.

    A web search for 'Microsoft embedded visual tools 3.0' will usually lead you to the MSDN download page where you can get you own legitimate copy of the programming environment.

    We've included a link to a local copy of the Microsoft software on our web site, simply because we're not sure how long it's going to be available on the Microsoft web site: Microsoft's Embedded Visual Tools v3.0 (~300Mb)
     
  2. Our WinPLC SDK contains the libraries, header files you'll need to build your own programs. We also include and some Visual C example programs. There also some management utilities to configure the WinPLC and establish a connection from your development PC to the WinPLC itself. There's no cost associated with our WinPLC SDK.
    Here's the link to download our WinPLC SDK (~4Mb)

Our WinPLC SDK includes the following two WinCE runtime images:

  1. Nk_min_2_1_2.Ceb: this image is built using WinCE V2.12 and only includes support for Visual C/C++ programming. This is the default image we load into the WinCE-Only WinPLC.
     
  2. Nk_vb.Ceb: this image is built using WinCE V2.11 and includes support for Visual C/C++ and Visual Basic programming.
    NOTE: without going into a lot of boring details, we don't really recommend that you use this image unless you're only choice is to program in Visual Basic. The reason is that the runtime components we use out of WinCE v2.11 were built with a compiler that had a bug in it. This bug would manifest in a random memory corruption during a power cycle; which, in the case of the WinPLC, would result in the WinPLC losing it's TCP/IP address configuration. So our suggestion that is you use Visual C/C++ unless you really, really have to use Visual Basic.

The WinPLC Hardware:

So you're asking yourself "How can I get a WinCE-Only WinPLC to try this stuff with?".

If you already have an Entivity WinPLC in your possession, you can simply use the WinPLC Workbench (one of the management utilities we provide with our WinPLC SDK) to load the WinCE-Only runtime and you're ready to go. You can always reload the Entivity runtime image if you find that you don't want to continue working with your own Visual C/C++ programs.

If you don't have a "donor" WinPLC to work with, we can sell you an H2-WPLC3. This WinPLC has a 100mHz CPU, one onboard serial port (rs-232) and one 10Base-T Ethernet port. It has 8Mb or RAM for user programs, and 8Mb of ROM FLASH file system used for storing the operating system and user created programs. The price for this WinPLC is $549.

We do ask that you sign a beta test agreement with us to pursue this path. If you're interested in signing up, we want to talk to you. We'd like to get a feel for your application so that we can see if it's a good fit for what we have available.

To get started we ask that you send us an email describing your application and we'll get back to you with more information about the process.