Peter Nachtwey
Member
I got involved with Modicon when we were asked to make motion controllers for the old 984 PLCs. Back then the programming was done using Modsoft which was kind of clunky. What made it really strange was the scan order. However, the Modicon PLC had a very cool feature that was never or rarely used. The program could be divided up into segments. A program that might take 30 ms to scan but had code that needed to updated even 10 ms could be broken up into segments. Usually I would tell people to divide the program into 3 segments but 4 or more were possible.
Why?
We made motion modules for Modicon. The problem was that most users did not understand or even know about program segmentation.
Most users would write their PLC program in one big segment/program. The problem was that the scan time might be 30 ms and the motion modules needed to be updated faster than that. Every 10 milliseconds would be better. The solution would be to break the program into 3 segments. The motion control code could be put into segment 1 and the other code that didn't need to run as often in segments 2 and 3. Modicon allowed one to schedule the order of running the segments so it was possible to run segment 1, the motion code, then segment 2, then segment 1 again, then segment 3. This would extend the scan time a bit but the motion could run every 10 ms or so. If another segment was added then the segment execution order could be segments 1,2,1,3,1,4. If each segment takes about 10 ms to execute then the total scan time would be 60 ms but the motion code could still run every 10 ms. Most I//O didn't need to run that fast it is it just looking a push buttons and doing safety things.
Another thing that Modicon did right is that the inputs for a segment would be read just before the segment executed. This means that the motion control inputs were always recent. Also, as soon as a segment finished updating, the outputs would be updated. This means that the inputs for segment 2 were being read while segment 1 was just ending and the outputs from segment 1 were updated while segment 2 was executing. This avoided the problem were the input data was 50 ms at the end of the scan.
The engineers that came up with this had vision and knew how to make the best of what they had back in the 1980s. The problem is that Modicon's technical people or sales force either didn't know about this advantage or didn't understand it. Obviously the PLC users were clueless.
BTW, the first Modicon PLCs used AMD bit splice processors to emulate a PDP-11. PDP-11 were made by Digital Equipment Corporation back in the 70s. These were good mini computers at the time and an inspiration for the Motorola 68000 that AB used in their PLC-5s. Both the 68000, and PDP-11 were big endian computers were the high byte came first.
Why?
We made motion modules for Modicon. The problem was that most users did not understand or even know about program segmentation.
Most users would write their PLC program in one big segment/program. The problem was that the scan time might be 30 ms and the motion modules needed to be updated faster than that. Every 10 milliseconds would be better. The solution would be to break the program into 3 segments. The motion control code could be put into segment 1 and the other code that didn't need to run as often in segments 2 and 3. Modicon allowed one to schedule the order of running the segments so it was possible to run segment 1, the motion code, then segment 2, then segment 1 again, then segment 3. This would extend the scan time a bit but the motion could run every 10 ms or so. If another segment was added then the segment execution order could be segments 1,2,1,3,1,4. If each segment takes about 10 ms to execute then the total scan time would be 60 ms but the motion code could still run every 10 ms. Most I//O didn't need to run that fast it is it just looking a push buttons and doing safety things.
Another thing that Modicon did right is that the inputs for a segment would be read just before the segment executed. This means that the motion control inputs were always recent. Also, as soon as a segment finished updating, the outputs would be updated. This means that the inputs for segment 2 were being read while segment 1 was just ending and the outputs from segment 1 were updated while segment 2 was executing. This avoided the problem were the input data was 50 ms at the end of the scan.
The engineers that came up with this had vision and knew how to make the best of what they had back in the 1980s. The problem is that Modicon's technical people or sales force either didn't know about this advantage or didn't understand it. Obviously the PLC users were clueless.
BTW, the first Modicon PLCs used AMD bit splice processors to emulate a PDP-11. PDP-11 were made by Digital Equipment Corporation back in the 70s. These were good mini computers at the time and an inspiration for the Motorola 68000 that AB used in their PLC-5s. Both the 68000, and PDP-11 were big endian computers were the high byte came first.