Basic ladder logic?
Try LogixPro from http://www.thelearningpit.com/
. You want to download the complete trial, including the student resources. It's the 12MB one.
Fire up the program and go to Help > Student Exercises. I just ran through the first few lessons, and they seem to be written pretty well.
Many PLC manufacturers include some kind of simulator with their programming software too. The problem is that you buy the PLC hardware, and then they get another $200 out of you for the software. Have you checked the software you have for any PLCs you are already using?
As an alternative, I've been using MC206 controllers from http://www.triomotion.com/
. It's a motion controller with integrated PLC, CANbus, USB interface, and a dll if you want to write your own PC based user interface. It's multithreaded, too (up to 8 simultaneous running processes). At $1300, it's not always the best choice, but very versatile when you can use it.
Their MotionPerfect programming software is a free download and includes a simulator. The programming is VBish.