Database driving provider


I have a problem with database driving provider.
I made a project in version 7.3 in wich I had a database driving provider. It was not possible for me to make change the value of the tags by just changing the intvalue and the valuechange cells as indicated in the documentation of providers. But I could do this by changing the intvalue and the configchange cells.

I updated this project in 7.5 and when I change the intvalue and configchange, the tag in the designer goes into stale until it reaches the configchange time and then goes back to its initial value. The valuechange does nothing as before.

Is there’s an update of the database provider documentation ? Or can you explain me the way to change a value in the database ? My provider is a database driving provider and not a database provider.

An other question :
Is that possible to make bulk insertion in the database driving provider and then how ? Is that the reason of the writequeue table ?

Thanks for your help.

I don’t remember if I raised a forum topic on this or just a support call. (a quick search failed to find a forum topic)

Some time between 7.2 and 7.5 they (the devs) ‘fixed’ how the database driving provider worked. The correct way to write a new value is to use the sqlt_wq. Insert a new value in there and it will appear in the sqlt_core table. The row in the sqlt_wq table will be updated with the request result and eventually deleted.

The problems with this:
*the value entered into the sqtl_wq must be scaled, the driver will not scale it.
*you can not set the field time of the event change. The time will be the processed time.
*you can not change the status/quailty.

To extend and/or clarify what Robert said:

o If the provider is a driving provider, and the tag’s drivername is set to that provider’s driver name, that means that Ignition is the one who is responsible for the value. Thus if you want to change the value, you now have to write to it through the write queue table.

o If the tag is NOT driven by the driving provider (the drivername is not equal to “driver name” property of the provider), then someone else is driving the tag (presumably you). In this case, you absolutely should set the value directly and update valuechange.

o You should not update configchange in order to modify the value, though I guess this technically works. It’s just a heavy way to do it, because it causes a complete reload of the tag, instead of just updating the value in memory.

I’m not sure any of this really pertains to your question, which seems to be more about the quality going stale. Is Ignition driving the tag, or you? If you’re driving it, you’ll need to make sure there’s an entry for the tag’s scan class in the sqlt_sci (scan class instance) table, whose lastexec/nextexec values are getting updated regularly. This is how Ignition knows that the driver is alive and active.