Sure ,
I am still working on it . Once it comes to workable form I will post code .
But meanwhile others can try how this is organised .
AdvHMI at local PC has application to communicate with PLC and works as a usual SCADA station.
This PC has SQL Server database having a table with only one row as latest values all tags that you need to monitor on WebClients .
AdvHMI appln UPDATES these values after reading those from PLC at whatever interval you desire (100 tags every 500 Ms or so).
There is another table, "commands" , having three Columns , TagID , Address and value .
Our AdvHMI appln keeps looking for "Commands" table for any new commands issued by clients . If it sees new commands , it writes these to PLC . After executions these could be marked done or simply deleted .
A simple web application made in ASP.net gets data from the SQL database values table and displays on screen. It is deployed on IIS .
Now comes tricky part , user actions on web page to write to PLC , actually write to SQL commands table .
Our AdvHMI appln keeps looking for "Commands" table for any new commands issued by clients . If it sees new commands , it writes these to PLC . After executions these could be marked done or simply deleted .
This mechanism WORKS , now to make it deployable various checks and balances are to be made . It is quite OK within company network over LAN. Over internet there are issues like static IP , Firewall , security , reliable connection etc.
Hoping for the best .