A PLC (or Programmable Logic Controller) has traditionally been a simple general purpose computer, that can be programmed using a simpler language than those used by "computer programmers". Really what it comes down to is a single (MSDOS) versus Multi tasking (Windows/Unix) computer. A traditional PLC is basically no different than a "PC" running a script interpreter. The only real distinguishing factor is in the type of I/O available and the communications. Other "variables" include the amount of memory and storage.
With this in mind, the question becomes really not so much "what are the disadvantages of a PLC", but more "How do I determine how much computing power and I/O do I need". With software based logic controllers (WinAC RTX, Twincat) becoming more common, the lines are blurred even further. In this instance you can not only have your "PC running a script interpreter" but also other programs that access the I/O to control other parts of the process. The lines blur even further with Twincat 3, where you not only have the "logic interpreter" and traditional PLC languages, but can also put "C" code along side it. My personal feeling is that the only thing that really holds back 'soft controllers" is their reliance on (unstable or insecure) Windows instead of Linux, but I digress.
Keeping this in mind, it really is not a question of "disadvantages" but more knowing what you need to do in your process and selecting the right "tool". Let me give you an example. I am building a water filtration system with its own pump and a UV sterilizer. All I need to do is ensure that the sterilizer is on before the pump starts. This is very basic logic. My inputs are verifying the lamp is working, and a switch to turn it on. Outputs are pump and lamp. For this a programmable relay (which "technically speaking IS a PLC) is plenty of power for the job. On the other hand, I have had tire testing machines with control and analysis jobs. Here a soft controller is in order as the analysis portion can be running in a separate program from the I/O controller. There both systems communicate with each other to carry out the task at hand in a single (hardware) "computer". Carried a step further, the only reason for the two separate programs is the speed of the "interpreter". Another manufacturer of the same type of machine does it all within one "soft controller" (Twincat) because it is fast enough to carry out the computations and data analysis in the same software package.
Now that I have thoroughly confused the original subject, I will give a simple answer to the question. The "disadvantage" would be when the PLC cannot keep up with the demands of the process. In this instance however, you don't "throw away" the PLC, you simply find a type or model more suited to your process.
Leave your comment (Registered user only)