We are designing a system with two servers, Server A will host the Ignition gateway and Server B will host an Oracle database. Is there a way to add a watch dog timer that will communicate with the PLC somehow, to let the PLC know when it’s lost communication to either of the servers? We have done this when we are communicating between multiple PLC, example. So my question is there away to poll a value from the server through Ignition to the PLC? The reason I would like to do this is in-case the PLC loses the network connection to the server or the server fails the operator will lose local control of the production line, and I will need to shutdown the line. We have consider putting a local Panel Edition on the touch screens but that would require a PC at each station where if I could use a watch dog timer I could put thin clients at each station reducing cost of the operator terminals.
You can setup a gateway script with a set rate to write a value to the PLC. Seems like this is all you’d need for your watchdog.
The references in there should also give you some ideas.
On the other hand, I just put together some Nettop PC’s for about $250. That’s about mid-range in the thin-client prices, if I remember correctly. Along with a 19" touchscreen monitor that put me at about $1200
I’ve thought about this some more. My thinking is that to not lose control of the line, you may want to put some heavier weight into installing some Panel Editions. You can use the Panel Editions for C-and-C, and use the server installation for SCADA and MES. In fact, you can connect to the OPC server on the Panel editions and keep the connection pool a bit freer (that just does not look right… how about free-er?) for other useful stuff. And it can help keep control local to the line.
My issue with installing panel editions is I have ten terminals so I would have to install ten copies of Panel edition and every time a change is made I would have to remote into each terminal and upload the project into the local gateway.
I would be okay with this if I didn’t have to remote into each terminal and upload the project file. what would be nice is be able to over write the project file without uploading. Like Allen Bradley PanelViews. If this is possible please let me know.
Hmm… That really gets beyond what panel edition is really for. Perhaps a hybrid system of sorts. Under normal circumstances everything would all happily playing nicely with each other. There, you can have your full-blown-all-in-one-stop-shopping-place for your HMI/SCADA. On the same PC’s running the main clients, have Panel Edition also installed to handle things in an emergency-barebones-fake-it-'till-things-are-back-to-normal mode.
Create a tag change script that monitors a bit in all your plcs. Unlatch the bit in the plc. On the tag change script or timer script, latch the bit. In the plc, if that bit is false for more than x seconds, flash an alarm or initiate a shutdown
Kyle’s suggestion is good. If you didn’t want to do this through scripting, and are using the SQL Bridge anyhow, you can do it in a transaction group. Just bring all of your PLC watchdog bits into the group, and set the group to “db to opc”, and “update first row”. This will create one row in the database, with a column per tag. Set each column to 1 in the database.
In the PLC, have the value reset to 0 as soon as 1 is written. Each time the group runs, it will see 0 in the PLC, and 1 in the database, and will write. If the PLC detects X amount of time since the last write, you know that either Ignition isn’t working, or the database isn’t available.
Of course, when it comes to the database being available, there are more direct methods to get that info to the plc. The “isDBConnectionAvailable(datasource)” expression function, or the new Gateway System tags, for example.
Anyhow, just wanted to give you some more ideas,