PLCYard

PLCYard is a free, open-source PLC trainer. You write a program in ladder (LD), structured text (ST) or function block diagram (FBD), run it on a simulated PLC wired to an animated machine, and check it against the written requirements of an exercise.