RT DbProvider/Db drivingProvider: Bool Tag or Alarm not sync

Hi,

I try to test the database/database driving providers.
My aims is to realize a proof of concept for the exchange of tag data between 2 gateways with no “tag copy”

On the first server I’ve installed a GW1 in 7.5 with an Real Time Database Driving Provider connected to a local H2 db server
On the second server I’ve installed GW2 in 7.5 with an Real Time Database Provider connected to the H2 remote db server.

I’ve created tag.
String or int4 is ok, I can write it in bath Designer connected to each GW, without problems.
Data is updated both sides.

For Boolean tag, the behavior is strange :

  • write from the GW1 is ok, update on the GW2
  • write (true or false) from the GW2 has no effect ???

For Boolean or Analog Tag with alarming,
the AlertActive state and AlertCurrentState are not updated on the GW2 ? is there a way to synchronize these states ?

Typically with setups like these, one server will be the ‘Database Driving Provider’ and the other will simply be a ‘Database Provider’. Is there a particular reason you need both gateways to be driving the tag values?

The GW1 is connected to PLC on one site and the GW2 is the centralized.
Vision client will be connected on the GW2. The project use the tags from all the sites.
With the addition of other site, we plan to add other GWs.

I’ve created tag.
String or int4 is ok, I can write it in bath Designer connected to each GW, without problems.
Data is updated both sides.

For Boolean tag, the behavior is strange :

  • write from the GW1 is ok, update on the GW2
  • write (true or false) from the GW2 has no effect ???

For Boolean or Analog Tag with alarming,
the AlertActive state and AlertCurrentState are not updated on the GW2 ? is there a way to synchronize these states ?

Can you perform writes to other tags on GW2?

You cannot synchronize the alarm states since only one Ignition server is driving the tags. The one that is driving the tags knows the current states. The other one is simply reading them.

Yes, i can write analog or string tag from GW1 or GW2 without problem.
But i can’t write boolean tag from GW2.
Why the alarms state is not synchronized ?

Hi,

I’m trying to track down the problem with writing booleans. I don’t know if I’m seeing the same problem that you are, but something is definitely a little strange. Are you trying to write from screens, or only in the designer? In the designer, there seems to be a very strange problem where it will always write “true” for the boolean tag when the write is from the second provider. However, it appears to work fine on a screen, when you bind the tag from the second provider to a 2-state toggle on a screen. Can you confirm this?

As for the alert properties- those are “runtime properties” that only exist on the driving provider and are not stored in the database. This has been requested a few times, but is not easy to implement, as we would need to adjust the sqlt_meta table to allow updating values on the fly, instead of requiring that the entire tag get reloaded. I know it’s inconvenient, but information about alert activity can be derived from the alert log, if necessary.

Regards,

Hi,

I’ve figure out the problem with the booleans- as I thought yesterday, it was more of an issue with the tag tree, so it shouldn’t actually affect the use of the tags on the screen. However, it will be fixed for 7.5.5. The problem was simply that “external tags” (tags in the database driven by a different provider) weren’t converting the value to the correct type. This is only really an issue with booleans, which are stored in the database as integers. It was confusing the check box on the tag tree into thinking the value was always “true”.

Regards,

I try to write from the designer.
I’ll wait for the fix in 7.5.5 to test again.
Thanks.

Regards.