I spent the summer 2004 working with Control Developments. I was with them for three months, and worked exclusively for a single customer: Dorman Long. Dorman Long are a civil engineering contractor based in Birmingham who specialise in lifting of large and heavy structural sections across the globe. The company was responsible for such projects as the lifting of the new Wembley stadium roof and main arch, as well as the steel roof of Heathrow Terminal 5 weighing some 18,500 tonnes.
Dorman Long generally use strand jacks to do their lifting. These strand jacks are designed to clamp onto steel cables and lift a load by repeatedly extending, retracting and reclamping to draw the cable through. The company provide jacks specified to lift loads anywhere between 15 and 580 tonnes, but to lift large sections, a group of these jacks must be operated synchronously.
This was the aim of the DL-P40 project. Control Developments had been contracted to produce a system to allow synchronous computer control of a system of up to 40 jacks. Their solution was to design and produce a series of nodes, which would communicate with a Windows application over a CAN Bus (Controller Area Network). When I arrived at the company I was immediately tasked with producing windows application.
After the three months work, I had completely designed and written a 40,000 line MFC/C++ project complete with an installer and HTML help file. The purpose of the program was to make controlling the system extremely safe, but also extremely easy. Lifting and lowering was made trivial as the software would take care of the orchestration and sequencing of even the most complex of lift projects. This is by no means trivial, especially when lifting rigid sections, because the jacks must extend in extremely tight formation. Sometimes a variance of as little as 5mm or less may be required to prevent catastrophic deformation of the load.
The software provided a simple GUI, in which each jack's load, stroke, and clamp state represented graphically in the main work space by a custom control. The back-end consisted of a worker thread which would receive incoming data from the nodes, and send a continuous stream of command messages to ensure the jacks could be synchronised when necessary.
We used USB-CAN adaptors to do our communication, but one of the biggest challenges of the project was the bus protocol. A CAN message provides space for only 8 bytes, and we found real challenges fitting all our data into such a small structure, and getting a high enough message rate without degraded signal quality. Fortunately after a lot of hard work from the team and myself, we overcame the problems to run a robust system.
The project was first used on the Sutong Cable Stayed bridge over the Yangtze river in China. There's a brief write-up of the events here. The lift was successful, although sadly I wasn't there to witness it.