Mindtraveller Messages: 917 Registered: August 2007 Location: Russia, Moscow rgn.
Experienced Contributor
This fixture is taken by the nearest of three large cranes
and is put into the first bath. Then it is caught by cran again to be put to next bath. My customer company connected a number of sensors and microcontroller to each crane. Microcontroller is connected to these sensors and controls three engines moving crane itself and it's parts.
So the first part of this solution was to program each crane's controller to make crane getting and putting this fixture automaticly. The solution was made in TheIDE with Borland C++ 5.1 compiler. TheIDE has shown itself very stable and useful code editor even for unsopported platforms (DOS16).
Mindtraveller Messages: 917 Registered: August 2007 Location: Russia, Moscow rgn.
Experienced Contributor
Then all these cranes' controllers where binded into one net with central terminal.
The second part of my work was central terminal's software controlling these cranes autonomously. This will make line fully automated.
Terminal is a PC-compliant device with touch-screen and modified version of Windows 2000. Its program was completely made in U++. With all respect to U++ authors I have to say that application made is working 24 hours each of 365 days without hangup or crash. I achieved this by eliminating any new/delete calls, switching to alt-MT, own RS232 class and using a number of stable control and optimization algorithms.
Control algorithm is rather complex and large (takes about 200+ kBytes of source codes).
GUI was developed according to the fact that there's no mouse or keyboard. All we can do is tap finger to the screen. So, that is the main window:
Mindtraveller Messages: 917 Registered: August 2007 Location: Russia, Moscow rgn.
Experienced Contributor
As a conclusion, some highlights:
* Program consists of 6 threads which are interacting actively. Queueing MT-approach prooved itself stable and fits well into this task.
* Sqlite for program log works good. Even on sudden electricity shutdown it guarantees that log will survive without the need of repair. Actually it still works good with rather big messages database.
* RS232 class (to be introduced into this forum later) proved itself stable and good. Even unwanted signals on line didn't make any problems to correctly made protocols and good RS232 class
* NTL/U++ containers are wonderful solution. No iterators, no new/delete. Stability and reliability even for 24x365 working mode.
It took about 1,5 years to learn U++. It took a year to write and debug this solution. Finally I'm very glad to admit: moving from C++ Builder to U++ made work easier and programs faster. Glad to say to U++ authors that U++ is cool.