Most PLCs allow online editing of the program. This means editing the logic while the machine is actually running. The advantages are that you can see the effects if your changes immediately, and you don't have to stop the machine that's being controlled. It is usually only used for minor enhancements. I find myself doing some major changes online for the fact that it doesn't stop production. The disadvantage to online editing is that if you make a mistake, the results can be detrimental, and even dangerous to the machine operation. Offline programming refers to writing/editing logic with a PC that isn't "online" with a PLC. Starting a new program from scratch is usually done offline. Some configuration changes to a PLC must be done offline. Once the program is written, it is then downloaded to the PLC. Offline editing is usually faster, and definitely safer, but the disadvantages include:
1. When you're ready to download, the PLC processor must be stopped to download the changes.
2. It's easy to accidently delete lines of ladder logic (RSLogix).
My experience is limited to Reliance/Allen-Bradley PLCs...Hope this helps.