I've recently gotten involved in some small process control projects, and having had most of my controls background be involved in discrete PLC control, I'm hoping someone here can shed some light on a few things. Two major differences I see are the way the program cycle works (tasks every 50, 250, 1000ms) for example, as opposed to the continuous cycle in a typical PLC, and the additional diagrammatic programming languages as opposed to the standard IEC languages. So my first "question" is, what is the reasoning behind the task based structure and how do they work exactly? I'm assuming if I select a 250ms cycle for my main program, that it reads inputs, runs the code, writes outputs, then waits until the rest of the 250ms have elapsed and repeats the process. Is this correct? Is this determinism especially advantageous for process control tasks in a way that a traditional PLC program cycle is not? Second, what is the significance of the diagrammatic languages? I know Siemens has PCS7, AB PlantPax, ABB 800xA, etc. and they all have preconfigured blocks in graphical languages that can be used. Is it most common to use these languages in process control as opposed to the IEC languages like Ladder or FBD? Is there really a benefit to one over another? Thanks for any input!