Is Windows CE appropriate for a PLC-type device?
Posted on 2006-04-20
Hi, we are trying to put together a concept for an automated field device (a medium-sized valve). The valve has local sensors and has some custom logic which allows it to actuate. It also is on a network and can receive commands to remote control it or to request data. I think there are two paths we can take here:
1) embed a PROFIBUS (or MODBUS, etc) PLC into the valve, download our logic, wire it up and communicate with it according to the PROFIBUS spec
2) embed a regular microprocessor in there, write our own application that communicates (with no rules) using a TCP/IP stack, and wire it up over ethernet
#2 is attractive for several reasons. We will have the freedom to do exactly what we want to do to meet the needs of the application and the networking. We can get creative; for example if it's a TCP/IP-enabled application, we can put a little web server and it can serve out its own little configuration page (just like a Linksys router). This feature would really be a home run, since remote configuration has been a headache in the past. I suppose we'd have to write our own little data server and listener, but we don't require high network data performance and that might be a fair tradeoff for ultimate flexibility.
Anyway, to the heart of my question: I am familiar with VS.NET 2005 and I see that it has built-in stuff for writing CE applications. My question is:
* is CE a suitable choice for such a device, and VS.NET an appropriate development tool?
I think it would give us everything we need, the logic structures, memory management, the TCP/IP libraries, etc. But I'm also afraid it's overkill, and/or not robust (i.e., windows-robust, not PLC robust). Our device is essentially a PLC, with medium-complexity logic, local I/O, a network interface, and no HMI. I think there are low-level RTOSs and the like out there, but then we'd have to make sure it can support everything we want, and we'd have to learn a new development system. It would be nice to use CE and .NET, but I really have no idea.
p.s., as you're reading this, don't assume I know what I'm talking about on any point. I am fairly new to the world of embedded devices and programming.
Sorry so rambling an open ended. I am open to any relevant ideas. Thanks in advance!