I am connecting to kepware KepServerEX 6.8 to write ignition production values for historical access. Is there a table or reference of some sort so I can make an item in Kepware be the same data type as its ignition counterpart? Or if not that, if there an abstract type I can use that will allow a write of any value?
I’m failing to understand what you are doing. Is Kepware providing tags to Ignition? Or are you exposing Ignition tags to Kepware? Either way, it seems they should already be compatible types. Got any more details?
Reading tags configured in Ignition and writing them out to an external Kepware server instance.
Essentially, I’m looking for what an int4 is equivelant to in Kepware and viceversa so I can structure my projects correctly.
What mechanism is going to write them out?
Ignition and Kepware both use standard data types defined by OPC-UA - they might not have 1:1 compatibility on the edge cases, but strings, integers, longs, floats, etc are all directly compatible. But, what you’re asking for is still fairly vague. If you’re making a connection betweeen Ignition and Kepware, you’re not recreating any tags - you’re literally viewing the tags from one server on the other client. The OPC-UA specification and protocol defines how those data types are sent between servers; it’s not something you have to worry about the vast majority of the time.
(Ignition = Kepware)
Int1 = Byte
Int2 = Short
Int4 = Long
Int8 = LLong
Float = Float
Double = Double
See this Kepware reference: https://www.kepware.com/getattachment/1b1e7d7c-6eeb-4f8f-ad41-5d6a7bae1b64/canonical-data-types.pdf
Ignition’s types are signed.
I will add to the part about it not being something I need to worry about:
My process is as follows:
- read desired Ignition tag.
- Write value from read to the preconfigured Kepware tag.
This falls apart when the data types do not match. I initially set all my Kepware tags to be DWORDs trying to do a mass configuration all at once. Each data type from Ignition that does not match Kepware’s tag fails to write and fills us the wrapper log quite quickly…
Is there a more complete list of equivalents? I’m trying to find a more efficient way to create the kepware project that properly reflects that tags that are being written out to the KepServerEX. There is some 9000 tags needing written out, doing it 1 at a time is not really an option.
More complete in what way? The other Ignition tag types don’t have an equivalent in Kepware AFAIK.
I just want to be able to run this script without so many failures due to nonmatching types. I’m trying to start with 90% compatibility and adjust based on errors from there. I have an Excel sheet with all the tags I want and their ia type for the tags being read. From that I need to make a kepware Device import declaring the correct data types. There are a few float4 types which don’t correspond to anything I see, possibly a Kepware double?
Float4 is Float in Kepware. Float8 is Double in Kepware.
Thank you for that.
In your original post you mentioned historical access. Ignition has a built-in tag historian. Is there a different reason to why you are using Kepware, or are you doing something completely different? Just curious
Completely Different. Customer case where we are pushing(writing) ia values from a production system out to Kepware where the customer is reading from Kepware with an OSI PI historian which combines the rest of their plant systems…
Any suggestions on what to do when the IA tag is of the DataSet type?