Reading about Christians PLC homelab and it made me wonder about how/if any others have them in their labs.
Other than some power controllers on home assistant I hadn’t gone into the PLC world.
I’d like to learn more about PLC networking protocols (MMS, GOOSE, DNP3, etc) but it’s slow sailing as getting hold of relay or rtu for playing can be an expensive exercise.
I’ve bought some railway surplus routers and switches to teach myself specific vendor networking OS’s because I couldn’t find a way to virtualise and this has been great but now I want to see the controls over the network.
I’m wondering if anyone here has had experience building up their own ICS lab at home?

I dont recognise the protocols you are mentioning, but for plc stuff, beckhoff are exelent at virtualizing their hardware and protocols. You can run it all on your laptop or you can dedicate hardware as a soft PLC. Its super easy with their package manager. They even has a Linux based software plc you can install and use as a PLC. You can generate infinite amounts of one week tiral licences for all their stuff so you can develop and learn without paying anything.
It seems like they support some of the stuff you mention
https://infosys.beckhoff.com/english.php?content=..%2Fcontent%2F1033%2Ftf6510_tc3_iec61850%2F8101905419.html&id=
And dnp3 seems to be a codesys library so you might be able to just load that into twincat.
Protip for twincat. If you install visual studio 2026 and install twincat add-on you get a much more modern development experience and much faster project complie and loading times compared to their own VS2022 twincat shell build.
Another protip. Using GIT in twincat shell is buggy AF and should be avoided. Only use visual studio with twincat add-on instead.
Thank you @TDCN, I’ll take a look at Beckoff.
The protocols I mentioned are used in electrical substations and in water controls adjacent to my work. It’s probably used in other places too but I’ve only worked around those.