J
Responding to Vladimir E. Zyubin:
You have never heard anyone state before that ladder diagram is a parallel language? Where have you been?
I looked at your link, but don't understand what exactly it is trying to state. From what I gather, if we just started calling it parallel LD, then it would fit? The languages listed in your citation are either defined as " a parallel version of <language>" or "not implemented".
The difference in semantics may be explained if you are coming from an IT position, and think of parallel automatically meaning 'more than one processor'. The definition you provide seems to support this, and would mean that even programs written on the intel platform that are multi-threaded are not *truly* parallel, but only very quickly sequenced. This is true of LD as well. It is not truly parallel in that there is only one processor, however program execution occurs at all lines of code per scan, as opposed to a traditionally sequential language where program execution follows step by step, and blocks on each step waiting for completion. In contrast, a ladder rung that fails completion (ie is false) does not slow the rest of the rungs (lines of code) from executing. Likewise, while in C it is easy to block parts of code on and off using { }, if then else conditions, etc, in ladder, it is assumed that every line of logic will be attempted to execute every processor scan, unless more explicit measures are taken to disable sections of code.
Finally, in a traditional sequential language, the program is not expected to execute in its entirety in a timeframe of milliseconds. if more than one task is to (seem to) occur at once, seperate threads are spawned in an effort to simulate multi-tasking (aka parallel processing). By contrast, if the entire ladder diagram fails to execute within a few milliseconds a problem exists, and the processor will typically stop executing the program.
When viewed at the processor switching transistors level, no language is parallel, however, traditionally LD is considered a parallel language, especially when contrasted to more sequential languages such as C, forth, pascal, et al. If you have never heard it stated that LD is a parallel language, you must have been hiding from the rest of the industrial automation world.
--Joe Jansen
You have never heard anyone state before that ladder diagram is a parallel language? Where have you been?
I looked at your link, but don't understand what exactly it is trying to state. From what I gather, if we just started calling it parallel LD, then it would fit? The languages listed in your citation are either defined as " a parallel version of <language>" or "not implemented".
The difference in semantics may be explained if you are coming from an IT position, and think of parallel automatically meaning 'more than one processor'. The definition you provide seems to support this, and would mean that even programs written on the intel platform that are multi-threaded are not *truly* parallel, but only very quickly sequenced. This is true of LD as well. It is not truly parallel in that there is only one processor, however program execution occurs at all lines of code per scan, as opposed to a traditionally sequential language where program execution follows step by step, and blocks on each step waiting for completion. In contrast, a ladder rung that fails completion (ie is false) does not slow the rest of the rungs (lines of code) from executing. Likewise, while in C it is easy to block parts of code on and off using { }, if then else conditions, etc, in ladder, it is assumed that every line of logic will be attempted to execute every processor scan, unless more explicit measures are taken to disable sections of code.
Finally, in a traditional sequential language, the program is not expected to execute in its entirety in a timeframe of milliseconds. if more than one task is to (seem to) occur at once, seperate threads are spawned in an effort to simulate multi-tasking (aka parallel processing). By contrast, if the entire ladder diagram fails to execute within a few milliseconds a problem exists, and the processor will typically stop executing the program.
When viewed at the processor switching transistors level, no language is parallel, however, traditionally LD is considered a parallel language, especially when contrasted to more sequential languages such as C, forth, pascal, et al. If you have never heard it stated that LD is a parallel language, you must have been hiding from the rest of the industrial automation world.
--Joe Jansen