The whole journey on one page, from your first variable to a machine program built from reusable library blocks and design patterns. The course has fifteen chapters in three acts; click any chapter to see where it fits.
These chapters are the spine of structured programming on an Omron controller. Each act builds on the one before it, and every other Academy track plugs into one of these chapters.
Methods and properties come from the third edition of IEC 61131-3, and CODESYS and TwinCAT support them. Sysmac Studio function blocks have neither, so on an NJ/NX you give a block named actions through command inputs. Here is a small conveyor block with Start and Stop inputs; click the buttons to call it.
FUNCTION_BLOCK FB_Conveyor VAR_INPUT Start : BOOL; Stop : BOOL; END_VAR VAR_OUTPUT running : BOOL; speed : UINT; END_VAR IF Start THEN running := TRUE; speed := 120; END_IF; IF Stop THEN running := FALSE; speed := 0; END_IF;
The caller only sets a command. The logic that acts on it lives inside the block, next to the data it touches, and keeping the two together is what encapsulation means in practice.
Which act introduces the function block, the core unit of reuse?