I wrote a fairly large and involved desktop app in Python and PyQt5 to enable me to execute a project I was on where I the functional safety engineer for some fairly serious industrial Burner Management Systems, for a lithium processing plant.
The app enabled me to define the behavior of the BMS system as a state machine represented by a table (using PyQt tableview). It also simulated execution of the code as would be implemented, one scan at a time.
Once there, I added a bunch of tools to print out reports/documentation, run diff against models, extract transition comments where certain tags or similar existed (eg show all transitions with a comment that include "IEC 61511"), version tracking, etc etc etc.
It might sound slightly a trivial problem on first description, but one of the systems had ten burners and it ended up being a hierarchical set of 15 state machines 3 deep and it would have been almost impossible to define the behavior on paper - simulation picked up heaps of minor sequencing issues and allowed us to correct them before actual software was written and tested.
Basically, I ended up with an executable specification (not far off the IEC 61499 dream) that self documented. I could have made it write the core PLC code and export it as XML for import to the PLC programming tool, but it was sort of break even to go that far on SIL 2 systems, so I did not go the full distance on that. At one stage it looked like we might go SIL 3, so this would have been useful in that case.
In the end, I put in maybe 1200 hours to build this, in my spare time. Lots of late nights for well over a year, but I don't think we could have really done the project well without it, or something like it.
I looked at it, and decided to actually commercialize it in the form where I could maybe sell/give it to random punters was whole new level of effort. Plus it seemed to be the sort of software that people go broke trying to sell and support, so I just use it for my own purposes now.