Jump to content

Recommended Posts

Posted

I'm trying to read a temperature in Celsius with a type K Thermocouple.  I'm reading 252, which seems to be off by a factor of 10 because 25.2 would actually make sense. Is there some way I should be scaling this? I'm bringing the value in as MI, should I be using ML?

Posted
14 minutes ago, Mitchell said:

I'm trying to read a temperature in Celsius with a type K Thermocouple.  I'm reading 252, which seems to be off by a factor of 10 because 25.2 would actually make sense. Is there some way I should be scaling this? I'm bringing the value in as MI, should I be using ML?

I should've added this before, but I'm also having trouble with a 0-10V Analog input. Do I need to use a linearization block to scale the 0-10V into what's actually useful? Also, is there a way to see what my raw analog input voltage value is?

  • MVP 2023
Posted

All temperature readings come out of the I/O module in tenths of a degree, therefore the number you see is the temperature x 10. You can display this properly on the HMI screen by selecting to display with one decimal point. Any calculations you do with the temperature will need to have the factor of ten accounted for.

For 0-10V analog inputs, you will need to have an understanding of how analog inputs work. The 0-10V input is scaled to an integer that has either 10, 12, or 14-bit resolution (i.e. is a number that ranges from zero to 2^10, 2^12, or 2^14 - check the specifications on your I/O module). You will need to use a linearization function block to rescale that number to the specifications of the sensor you are using (the sensor will indicate what the values are for 0V and 10V).

  • MVP 2023
Posted
1 hour ago, Mitchell said:

Also, is there a way to see what my raw analog input voltage value is?

Of course. As an example, say your input module is 12-bit. That means the value you see will be 0-4095. Just linearize that value from 0-10 to see what the voltage is that is appearing at the module (linearize from 0-100 to see the voltage to the tenth of a volt).

  • MVP 2023
Posted

Flex, didn't we also discuss here that Unistream automatically adjusts raw values ranges for 4-20 ma readings against 0-20 etc?  Unlike Vision? 

cheers, Aus

  • MVP 2023
Posted
15 hours ago, Ausman said:

Flex, didn't we also discuss here that Unistream automatically adjusts raw values ranges for 4-20 ma readings against 0-20 etc?  Unlike Vision? 

Yes it does, though some of the Vision modules do that also (don't remember which ones off the top of my head).

19 hours ago, Mitchell said:

Do I need to use a linearization block to scale the 0-10V into what's actually useful?

I forgot which forum I was in. UniLogic allows you to linearize an analog input or output right in the hardware definition for convenience, thus hiding the behind-the-scenes analog to digital conversion process.

Posted
23 hours ago, Flex727 said:

Yes it does, though some of the Vision modules do that also (don't remember which ones off the top of my head).

I forgot which forum I was in. UniLogic allows you to linearize an analog input or output right in the hardware definition for convenience, thus hiding the behind-the-scenes analog to digital conversion process.

Unfortunately, I'm using Visilogic. Here is the screen where I select the type of input. I'm trying to use a 0-10V sensor that measures UV intensity. The scale is supposed to be 0V = 0 uW/cm^2 to 10V = 10uW/cm^2. I seem to be getting some strange data and I'm sure it's due to the fact that I have something configured wrong. I am trying to bypass translating the 14 bit resolution into 0-10V and go directly from scaling 0-16383 to 0-10uW/cm^2. Is This valid or do I first need to translate into 0-10V and then translate that into UV intensity? I've attached a screenshot of this too. I should add that I'm trying to scale it to 100 instead of ten to get an extra digit of precision as you suggested to me above.  Also, I've attached a screenshot of the variable display for the HMI, I'm using 2.3 as the decimal configuration. I know this shouldn't be very difficult and I feel like I'm missing a small piece of the puzzle. I'd really appreciate some help.

HW_Configuration.JPG

Linearization.JPG

HMI.JPG

  • MVP 2023
Posted

My spec sheet says the Samba analog inputs are 12-bit. You should be linearizing from 0 to 4095. Otherwise your linearization function block looks correct.

Your HMI Numeric Variable display looks wrong though. I think the format should be 2.1, not 2.3.

Posted

I see that the resolution says 12 bit at "fast mode" and 14 bit at "normal mode" I had assumed normal speed is default, maybe this was a bad assumption? And is there a reason I should be using 2.1 instead of 2.3? Does it have to deal with the literal amount of data being transferred due to the resolution size?

datasheet.JPG

  • MVP 2023
Posted
28 minutes ago, Mitchell said:

I see that the resolution says 12 bit at "fast mode" and 14 bit at "normal mode" I had assumed normal speed is default, maybe this was a bad assumption?

You are correct. I was stupidly looking at the analog OUTPUTS on the spec sheet instead of the inputs. Yes, Normal Mode is 14-bit and your hardware config looks to be in Normal Mode.

 

30 minutes ago, Mitchell said:

And is there a reason I should be using 2.1 instead of 2.3?

This is referring to how the MI 3 operand is displayed. It is an integer, but you can display it with a specified number of decimals. For example, you are linearizing your input of 0-10uW/cm^2 using 0-100. This gives you one decimal place of precision. If your input after linearization is about 6.3uW, the result in MI 3 will be 63. You will then display it on the HMI with one decimal and it will appear as 6.3. You specify that right in the middle of your HMI Numeric Variable block, just to the right of where it says "Base Format: Decimal". The first number is the number of places to the left of the decimal and the second number is the number of places to the right of the decimal. Since you are linearizing to one decimal place of precision, and since the maximum value is 10.0, you should select 2 and 1 (2.1).

Posted
12 minutes ago, Flex727 said:

This is referring to how the MI 3 operand is displayed. It is an integer, but you can display it with a specified number of decimals. For example, you are linearizing your input of 0-10uW/cm^2 using 0-100. This gives you one decimal place of precision. If your input after linearization is about 6.3uW, the result in MI 3 will be 63. You will then display it on the HMI with one decimal and it will appear as 6.3. You specify that right in the middle of your HMI Numeric Variable block, just to the right of where it says "Base Format: Decimal". The first number is the number of places to the left of the decimal and the second number is the number of places to the right of the decimal. Since you are linearizing to one decimal place of precision, and since the maximum value is 10.0, you should select 2 and 1 (2.1).

I'm understanding now. Thank you! I've taken these steps and it seems to be giving me the data I expected.

  • MVP 2023
Posted

This is all a good result, but Mitchell, please note that you posted in the Unistream part of the forum.  There are dedicated forum areas for different model types.  The initial responses here were based somewhat on you using Unistream, which then turned out to be Vision after all.

When you have another little hiccouph which we'll gladly help with, please ensure it is in the correct area.  It's bad enough the regular responders getting confused as to where they are, let alone those asking the questions!   🤔

cheers, Aus

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.