FactoryTalktotheHand
Member
My understanding is that it depends on the processor. For example, I believe older Allen-Bradley processors (PLC5, SLC etc) executed synchronously (top to bottom), whereas the newer Logix (Control/CompactLogix) execute asynchronously. Can't speak to other manufacturer's PLCs.
Asynchronous just means the I/O updating and other comms tasks aren't tied to the program execution task. At the program execution level, the code is still processed left-to-right, top-to-bottom. In a synchronous processor, the input data table is always updated before the program scan and the output data table is always updated after the program scan. In an asynchronous processor, it's updated at the RPI you set in the module setup. So in an asynchronous processor, the data table might be updated in the middle of a program scan, so an input boolean that's false on one rung will be true on another in the same scan. To get around this, you can map the hardware input data table to internal tags and use a program instruction to copy the data over, guaranteeing any given input will have the same state at every point in the program scan.