So far as programming things goes, I have done quite a bit of that...
And I have NEVER sat down, written a program, and then had it work 100% perfect or 100% like I want it to work, with the first try.
Programming, even with a fairly simple device like a PLC, takes a bit of writing, testing, and then making changes to get things to work properly.
Sort of a "hands on" thing. Not something which could be done over the internet. (Unless the programmer has the same *exact* device he can use to test his program.)
And the biggest problem with not being able to write a working program from the get go is poor instructions or documentation. There might be a command with options which are poorly explained in the documentation. You pretty much need to try different things to learn how that command works (testing).
Also what should work in theory may not work in real life. You may think 2 seconds is long enough for someone to press a button, but when you test it, 5 or 10 seconds might be better.
With that said, search google.com for the following words and you should find PLC forums...
forum programmable logic controller logo