I do quite a bit of my work in the area of industrial automation, and one of the more interesting initiatives to come along in a while is called MTConnect (“MT” presumably for “Machine Tool”). MTConnect is an open standard for communicating with a machine tool to retrieve information about its current or past status – everything from executing controller line of code to tool head positions. It’s interesting enough that I joined the Technical Advisory Group and am helping to review and improve the specification (version 1.1.0 was just ratified last week).
As frequently seems to be the case, there was a bit of interest from other members on exposing MTConnect data from tools running Windows OSes (both CE and XPe), but no one working on providing an actual SDK to allow a standardized way to actually do it. Well implementing code from nothing but a spec is actually something I find pretty fun and interesting, so I took up the challenge. My first attempt was, as is typical, more of a throw-away attempt at writing code to help me understand how the spec itself works. I spent a couple weeks on it then tossed it all out.
I then took the knowledge I gained from that first effort and put together a more coherent SDK that I’m releasing a loose Beta of today over on Codeplex. It’s not done – in fact I wanted to get a few more features in and get it to a releasable point before publishing it, but I’ve already gotten inquiries and volunteers to test out the beta work, so I’m publishing early to facilitate sharing the code between teams and to allow me to track bugs and discuss the SDK in a publicly searchable location.
I’m working on a specific project that is going to use this SDK, so I have a specific set of funtionality that I’m driving toward, but that doesn’t mean I’m not open to making it easier for everyone to use. If you’re working on machine tool controllers and are interested in exposing data meeting the MTConnect standard, I encourage you to take a look at the Agent SDK, post questions in the Discussions area and report bugs/desired features to help drive the effort forward.