logoalt Hacker News

amlutotoday at 12:28 AM2 repliesview on HN

Sometimes I wonder whether one could design PLC-style software by first expressing the system’s constraints and then writing the actual code and having either (preferably) formal verification that the code will not violate the constraints or (less preferably) enforced assertions that will send the machine into a safe state if the constraints do not hold.

The system I mentioned in my other post controlled some VFDs, and one would occasionally get stuck running at minimum speed forever instead of turning all the off when it should have. Fortunately the only harm done was a stupid waste of power and and nothing was physically damaged. If it had gotten stuck at maximum speed it might have been a different story.


Replies

aliasxneotoday at 1:19 AM

A lot of PLC controllers can certainly be unforgiving. I mentioned overflowing a 16 bit float point because that's exactly what happened at a waste water treatment plant I was called out to and the resulting regulatory fiasco that ensued probably cost the company tens if not hundreds of thousands of dollars.

I'd love to see more formal methods come to the field. Part of me says I'll return one day, maybe if AI kicks me out of my software field, but I'd really want to come back at a position I could healthily influence towards safety and correctness.

tedd4utoday at 1:41 AM

Seems like, here in the 21st century, one could reasonably have a model of the plant that tests could be executed against. Anything like that exist?

show 2 replies