When using drivers with HMI applications like InTouch or Ignition, the tag in its database could have address modifiers or simply the tag type to let the Modbus driver know that you're looking for a floating point that is using more than one register.
It appears that there's no way to accomplish the same thing when using KEPServerEX. Instead of a Modbus driver specifically written for Intouch or Ignition HMI applications.
The only option is to manually create tags inside of KEPServerEX and then read those from the HMI?
Solved! Go to Solution.
I was using slave and poll tools from: https://www.modbustools.com/
This added to the confusion and complexity because I could only run it for 10 minutes. I'm sure there's a setting in the tool but I figured the default would work, but to read the value correctly I did need to change the data encoding `First Word Low` option to be disabled.
There was also an issue with getting the simulator and KEPServerEX and Ignition all talking within the 10 minute window. The other day I wasn't seeing any value using `@float` but this morning I believed I was doing the same exact thing and then all the sudden I could see a value but it was still a little off.
124 vs 125.25
`First Word Low` Option fixed that but I don't know way it was `0` all day yesterday.
Hello,
Are you looking to define tags directly in the client instead of creating them in KEPServerEX?
If yes, you can use dynamic tag addressing to retrieve data in the client without defining tags in the Kepware server. Here is an article that clarifies the difference between static and dynamic tags.
CS278481 - Differences between static and dynamic Tags in KEPServerEX / ThingWorx Kepware Server
Thanks
Yes, we were hoping to reference Modbus TCP/IP values without having to define tags inside KEPServerEX, but it looks like if we want a floating point that uses two registers there's no way to do this without creating a point inside KEPServerEX. Drivers provided by the HMI manufacturers normally have a way to do this.
Most OPC clients allow users to specify the data type as part of the request when registering a link for a specific data item. The data type specified by the OPC client is used if it is supported by the communications driver. The @[Data Type] modifier can be useful when ensuring that a communications driver interprets a piece of data exactly as needed
Seems not to work for Ignition and the KEPServerEX Modbus TCP/IP driver.
When the address includes '[]' there is an error.
`PLC.40007@[Float] `
The example they give in the manual `Channel1.Device1.R0001@Short` doesn't have the square brackets so it may just be the Modbus TCPIP driver doesn't support it.
It seems you only added the device or channel name and then the tag address. To pass a dynamic request, you need to include both the channel name and the device name, and then append the data type.
Sorry, that was just an example.
I was mainly concerned with the correct formatting of the data type suffix. I did see in the manual that the square brackets are not included. When we do not include the Square brackets there's no error and we do get a value but it's the same value with or without adding the data type.
So now we're wondering if maybe this data typing is not supported by Ignition or the KEPServerEX Modbus TCP IP driver?
Doesn't seem to work.
I set up Modbus Simulator with a Float at 40005 that has the value of `125.25`.
In Ignition, if I read the value 40005 as Short I get `17146`.
nsu=KEPServerEX;s=E1_110_01.MODBUS.40005
In Ignition, if I read the value 40006 as Short I get `-32768``.
nsu=KEPServerEX;s=E1_110_01.MODBUS.40006
In Ignition, if I read the value 40005 as Float get `0``.
nsu=KEPServerEX;s=E1_110_01.MODBUS.40005@Float
If I use the poll simulation software to read it as a Float, I get the correct value of `125.25` at 40005.
Hello,
You would need to Check the Device Properties > Settings > Data Encoding settings of Modbus Driver.
Please take a look at the following article as it may help resolve your issue:
CS299224 - Modbus device readings show wrong values in PTC Kepware Products
If you are prompted to log in to view the complete article, you can use your MyKepware login credentials. Thanks
I was using slave and poll tools from: https://www.modbustools.com/
This added to the confusion and complexity because I could only run it for 10 minutes. I'm sure there's a setting in the tool but I figured the default would work, but to read the value correctly I did need to change the data encoding `First Word Low` option to be disabled.
There was also an issue with getting the simulator and KEPServerEX and Ignition all talking within the 10 minute window. The other day I wasn't seeing any value using `@float` but this morning I believed I was doing the same exact thing and then all the sudden I could see a value but it was still a little off.
124 vs 125.25
`First Word Low` Option fixed that but I don't know way it was `0` all day yesterday.
