I don't have a ton of PLC experience, but you really don't need much of an education to create basic PLC programs. I wouldn't personally recommend PLCs to anyone who enjoys programming, but I understand the appeal of trying one out.
The programming languages are all defined in IEC 61131-3, and you can more or less use them interchangeably. You can use structured text for (clunky) text-based programming, ladder logic if you want to feel like an electrician in the 70s, or functional block diagrams if you like flowcharts. They each have pros and cons, and being able to use the different languages (with different paradigms) in a single application is one of the more interesting things about PLC programming. There are probably good textbooks for this, but I don't know of any.
PLC programs execute in a constant loop (scan inputs, execute program, set outputs), so basic programming problems (e.g. delaying execution of some function) often require some re-thinking on PLCs. Having a basic understanding of how a PLC actually executes your code is pretty critical. Again, there are probably textbooks for this, but if you buy a physical PLC, its datasheet might also explain this.
You'll need to connect the PLC to some hardware for it to do anything meaningful, so having a basic knowledge of electronics would be useful. If it's just a hobby, you probably wouldn't need to know any more than you would if you were working with an Arduino.
There aren't that many major PLC vendors, so to get started, you could by an entry-level PLC from one of the big players (e.g. Allen-Bradley Micro800 series). Admittedly, I haven't looked at PLC options in 5+ years so there might be better options these days. Unfortunately, PLCs are pretty pricey, and even a small one will probably set you back a few hundred bucks. There are probably simulators available if you're just curious about PLC programming languages, but I don't have any experience there.
The programming languages are all defined in IEC 61131-3, and you can more or less use them interchangeably. You can use structured text for (clunky) text-based programming, ladder logic if you want to feel like an electrician in the 70s, or functional block diagrams if you like flowcharts. They each have pros and cons, and being able to use the different languages (with different paradigms) in a single application is one of the more interesting things about PLC programming. There are probably good textbooks for this, but I don't know of any.
PLC programs execute in a constant loop (scan inputs, execute program, set outputs), so basic programming problems (e.g. delaying execution of some function) often require some re-thinking on PLCs. Having a basic understanding of how a PLC actually executes your code is pretty critical. Again, there are probably textbooks for this, but if you buy a physical PLC, its datasheet might also explain this.
You'll need to connect the PLC to some hardware for it to do anything meaningful, so having a basic knowledge of electronics would be useful. If it's just a hobby, you probably wouldn't need to know any more than you would if you were working with an Arduino.
There aren't that many major PLC vendors, so to get started, you could by an entry-level PLC from one of the big players (e.g. Allen-Bradley Micro800 series). Admittedly, I haven't looked at PLC options in 5+ years so there might be better options these days. Unfortunately, PLCs are pretty pricey, and even a small one will probably set you back a few hundred bucks. There are probably simulators available if you're just curious about PLC programming languages, but I don't have any experience there.