Hello!
I am running a Logix L63 processor with some Phoenix Inline I/O connected over EtherNet/IP. One of the Phoenix modules is a 2 channel thermocouple module, IB IL TEMP 2 UTH.
I noticed I was getting readings from the module that were way off.
One thing I observed...when the INT input value reads 454 in decimal (aka 45.4º celsius) the binary is like so:
input.0 = 1
input.1 = 1
input.2 = 1
input.3 = 0
input.4 = 0
input.5 = 0
input.6 = 1
input.7 = 1
input.8 = 0
input.9 = 0
input.10 = 0
input.11 = 0
input.12 = 0
input.13 = 0
input.14 = 0
input.15 = 0
This is way off from the actual measured value from an infrared gun, however. Whenever I flip around the MSB and LSB, however, resulting in a binary of 011000111, I get a decimal value of 199 (or 19.9º celsius aka the temperature value I am actually looking for!)
So due to this flip, I have searched up and down for ways to swap bits, bytes, change endian in my code to make this work! I haven't had any luck and I am in a bind for a solution! It doesn't appear the module itself supports any swap around, so now I am wondering if someone has a genius (or at least somewhat brilliant) way to pull this flip off in Logix PLC?! Any help or code would be much appreciated!
P.S. here's what I tried before resorting to looking at bit-level PLC stuff:
Everything with the module was left at default, which means K-type thermocouple, 0.1 celsius resolution. Things seem fine, such as when I apply heat to the thermocouple the appropriate INT input value in the PLC increases; when cooling it drops. But a red flag is that at room temperature, the thermocouple reads around 45º celsius. That's obviously crazy high, and my tested room temperature is between 19-21º celsius. I tried a new thermocouple, different channel, different phoenix module, different ethernet adapter, performed setup over again.....no change in results.
I am running a Logix L63 processor with some Phoenix Inline I/O connected over EtherNet/IP. One of the Phoenix modules is a 2 channel thermocouple module, IB IL TEMP 2 UTH.
I noticed I was getting readings from the module that were way off.
One thing I observed...when the INT input value reads 454 in decimal (aka 45.4º celsius) the binary is like so:
input.0 = 1
input.1 = 1
input.2 = 1
input.3 = 0
input.4 = 0
input.5 = 0
input.6 = 1
input.7 = 1
input.8 = 0
input.9 = 0
input.10 = 0
input.11 = 0
input.12 = 0
input.13 = 0
input.14 = 0
input.15 = 0
This is way off from the actual measured value from an infrared gun, however. Whenever I flip around the MSB and LSB, however, resulting in a binary of 011000111, I get a decimal value of 199 (or 19.9º celsius aka the temperature value I am actually looking for!)
So due to this flip, I have searched up and down for ways to swap bits, bytes, change endian in my code to make this work! I haven't had any luck and I am in a bind for a solution! It doesn't appear the module itself supports any swap around, so now I am wondering if someone has a genius (or at least somewhat brilliant) way to pull this flip off in Logix PLC?! Any help or code would be much appreciated!
P.S. here's what I tried before resorting to looking at bit-level PLC stuff:
Everything with the module was left at default, which means K-type thermocouple, 0.1 celsius resolution. Things seem fine, such as when I apply heat to the thermocouple the appropriate INT input value in the PLC increases; when cooling it drops. But a red flag is that at room temperature, the thermocouple reads around 45º celsius. That's obviously crazy high, and my tested room temperature is between 19-21º celsius. I tried a new thermocouple, different channel, different phoenix module, different ethernet adapter, performed setup over again.....no change in results.