Jump to content

Recommended Posts

I am having a little trouble making the display reading on the V290-E1B read what my Sc1000 controller from Hach is reading on the NTU. For example the Sc1000 would read 0.265NTU and then the PLC would read just 0.2 but I want it to read accordingly.I tried moving the decimal on the settings but all it does is move the 2 before or after the decimal. I am using a 4-20mA signal and a linear function in my ladder and just that. Does anyone have any suggestions?

Link to comment
Share on other sites

Do not use the linearization function block for this to work out. You need to do your own linearization the old fashioned way and use floats or MLs instead of MI memory locations (the linearization function only uses MIs) to get better resolution. You did not mention what Snap IO or expansion modules you were using to get the data into the PLC, however most of the snap IO modules only have 10 bit resolution so your 4-20ma signal can only be divided by 820 to get your maximum resolution. If you need a very precise number translated from your 4-20 this is your first and most serious obstacle to getting a value to the .000 decimal place. (using a 14 bit input chanel gives you so much better resolution) I generally do not use floats unless I have to so I use MLs instead. An example of one way to do this is attached.

1st block is getting the range for this particular 4-20ma transducer (high range - low range (on my projects that is always customer enterable and I do not know what it will be)

Take the product of that block and multiply by 10,000. Why 10,000 because when working with MI or ML locations decimal points are not allowed and are dropped automatically in math operations so if I temporarily change the size of my math calculations my fractional remainders will be so far down from the actual number I want they will no longer affect me.

Then I make my resolution calculation. In this case it is a 10 bit input chanel and have 0-1024(1023 actually) steps available to me on a 0-20ma signal. Since I am using a 4-20ma device I lose the 0-4ma part of the signal so I will only ever see 204 - 1023 unless my 4-20ma signal is bad.

Which is why in the next step I am subtracting 203 from my actual incomming 4-20ma signal so that I can represent 203 (the minimum signal I will see) as a zero value on screen.....At this point some of you are asking why 203 and not 204....only because I know my sensors and I know that 203 gives me a better zero value than the 204 value does :-)

now we take the corrected input value times the resolution value to get incomming value times 10,000

now after we have done all of this wwe divide by 10,000 to get us back to the real values we want to use

last add the lower range value to the product from the previous division so that we show the correct value on screen (if the low range is zero this would not be needed, but many of my sensors are - value to +value pressure transducers so this step is needed...I always include it even if I don't think I need to just in case a customer uses an different sensor I never anticipated.

Thats it



Link to comment
Share on other sites

  • 2 weeks 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...