Industrial Messaging Protocol Design

So I am working on a simulation of an industrial process and want to allow users to connect to the simulation over a LAN and see simulation values (e.g. gauges and values of various measurements) as well as issue commands to the simulation. The client software would need to be able to update about 10 times per second with any values that have been changed in the simulation.

I have looked at some of the large-scale current industrial automation protocols but these are all way to complex for what I am trying to do. My idea was to maintain a hierarchy of values on the simulation side, and every time a value is changed, push an object representing that value onto a stack. Ten times per second the stack would be read out into a JSON object containing all of the changed variables, and this would be sent via LAN to the client, which would use it to update it's local hierarchy of values ( a subset of what is available on the server).

Does this make sense, and does anyone have suggestions for a better way to do it? Thanks!

by TristanJ via /r/csharp

Leave a Reply