Jump to content

Problem in Linearization of Analog Input.

Recommended Posts



Hello everybody,


I have an analog force gauge (4-20mA,  -5.000[N] ranged 5.000[N]) . I'm using an OPLC  JZ-10-11-UN20. (has 3 AI's and a TC input)


I read a few posts in this forum as well as the U90 help example regarding linerarization, and for some reason  (probably  there's something I'm missing ) it just doesn't work.


the force gauge has a LED panel, which showed 0.291 [N], while the U90 program I wrote is attached.  I notice changes in the result in the LED panel while applying force, but the U90 showed no change. can anyone point out what I'm doing wrong?


secondly, the results I get from the TC (K type, range -200 to around 1000 deg. celsius)  are around 220. I understood that since I use this specific model of JAZZ, this would not require special linerarization 22 would make sense, not 220. any Ideas ? does this require some kind of calibration?


Thanks ,





Link to comment
Share on other sites

Hello Tzachi,


Thank you for using our Unitronics Forum.


For your force gauge, does it work when you have a value within range?  I see your X input value is at 2, which is not within 204-1023, which explains the out of range value in your Y conversion. 


For your thermocouple, the value you are receiving is multiplied by 10 for more precision.  For instance, a value of 220 would really mean 22 degrees Celsius (assuming you chose the Celsius mode).  There is not linearization required for this input, just be sure you do your math in accordance to your value being a multiple of 10, and you display it with a forced one-decimal place offset.


Please let us know if this resolves your issue(s).

Link to comment
Share on other sites

On your 4-20ma linearization you are running out of space to show the value when you dfo the linearization.  The linearization function only uses a 16 bit (signed) integer so any number while being manipulated in the function that exceeds 32767 will put out an unusable value for you.


Do not use the linearization function and do it long hand using the special system bit SB82.  Putting this bit in the corect places will allow you to string two successive 16 bit MI locations together to allow you the use of a functional 32 bit signed integer of space or a number of 2147483647.  This will generally give ample size to allow you to do the multiplication required to get the linearization you want.


There are several requirements to using this special system bit so read the help section.  Just type in SB82 into the "search" box in the help file.  Special notes I missed the first time I tried to use this one.


1)  All data going into a block where you are going to use the SB82 = extended integer function musr be done by Mis only no constants.  If you use a constant in any of the math blocks it will not work. Just force a couple of MIs to the constant falues you want and then use those.


2)  Whenever you call this function up the result of the math block you are using will allways need two 'Consecutive" MI locations to store the result in so be careful to mark out your use of MIs in groups of two.


3)  Just in case you do not know...there are no decimals in integer math (they are alweays lost) so if you want better accuracy you will multiply your starting numbers by at least 100,1000, or even 10000 so that when you perform the dividing math you will end up with better end results (sometimes those missing fractional numbers in the middle make a huge difference to the end result).  Then at the very end divide by your original 100, 1000, or 10000 to end up at a final number with the decimal places you wanted.


For example in your original post you asked why you were seeing 220.  Because the temperatures pre built into the controller for thermocouples always have one decimal point.  Integers do not have decimal points so to successfully show a value of 22.0 on screen you have a value of 220 in the MI and as you know thermcouple values need no linearization.


Here is an example of a 4-20 linearization I have used before.  The end result has 1 decimal place because the two starting MIs Mi 28 and 29 had a decimal place on screen when the user entered the low and high ranges of the 4-20ma signal.


Good luck





Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...