Depending on what you want to protect you have some options.
Protect the program? Most PLC will let you 'lock' the code so it can't be opened, edited, looked at w/out the passwords.
Protect the data coming out of the PLC? I've seen some modules(for rockwell plcs) that will serve the data via an interface that supports SSL/TLS.