Comparing languages

IngisKahn said:
I work for an AGV company (Automatic Guided Vehicle). We have sites with hundreds of vehicles and applications such as hospitals, newspapers, automotive manufacturers, banks(mint/vault), nuclear power(fuel handling), etc.


Often a computer app is mainly providing the human interface and is communicating parameters with modules which provide the actual motor control or handle sensor input.

Now, I realize that you can't hook motors directly up to 5 volt computers, but .NET is used to read sensor input, resolvers and encoders, calculate directions, forces, motor currents or steps, and God knows what else is involved with AGV manuevering and operation in real time?? There are no other controllers involved that do not use .NET?

I mean this as sincere desire for information: I would like to know what hardware is available to do these kinds of things under the control of Visual Basic.NET. I would love to get my crummy little veenerskinners on some of that stuff.
 
Of course all the sensors and encoders have their own 3rd party interface but the actual vehicles(robots) run on Windows CE, the electronics are all in-house. All interpritation of input and controller output is done by .NET as well as communications with the server, IOW the brains of the vehicle. The vehicles also have a touch screen interface which was a pleasure to implement as oppesed to the horrible old system we used.
 
IngisKahn said:
Of course all the sensors and encoders have their own 3rd party interface but the actual vehicles(robots) run on Windows CE...
From everything I've read on the subject, Windows CE is the closest you can get a real time operating system for Windows. It is a Real time OS, but it is almost exclusively used for small devices such as cell phones and pocket PC's. A good article on that subject.

I beleive realolman's comment is absolutely true. That article comparing Java's VM and .Net's CLR in a previous post is a good one to read. It will be the case that a pure .Net system cannot run in a real time environment. You're looking at about a 7X loss in speed performance when compared to the same app compiled for native execution. The big thing the CLR gives us is the ability to handle both MIL and native code at the same time. This gives somewhere between the real time response and the 7X loss. Is it enough for a real time system? Maybe. I would think that any time you introduce on the fly compilation you would also introduce lag.

It is a very common practice to use high level interfaces to the low level stuff (written in low level languages like C) in any complex system so that was definately a legitimate question. How do you handle the low level interactions or is that taken care of via API's in Windows CE? IngisKahn, you guys seem to be pretty cutting edge and willing to take risks on new technologies. Sounds like really cool stuff.
 
All of our .NET apps are compiled to native code. Thou even that shouldn't matter since the vehicles "reflexes" (e.g. making sure wheel rotation matches the change in sensed positon [otherwise you'll be digging a hole in the floor :) ]) are controlled by asm device drivers running on a higher priority than its "normal brain" (e.g. goto point A and drop load). Since our vehicles are large and expensive (avg. > $100k) we can afford to go overboard on the hardware. This is leading to more decision making on the part of the vehicle and inter-vehicle communication. Maybe they'll start programming themselves soon. :p Have to give 'em names instead of numbers.
 
Back
Top