# Adjustable Scaling Capability

**URL:** <https://forum.inductiveautomation.com/t/adjustable-scaling-capability/2415>\
**Category:** Ignition\
**Created:** [December 10, 2010, 7:27pm UTC](https://forum.inductiveautomation.com/t/adjustable-scaling-capability/2415 "2010-12-10T19:27:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![robertkjonesjr](https://avatars.discourse-cdn.com/v4/letter/r/e9c0ed/32.png) [@robertkjonesjr](https://forum.inductiveautomation.com/u/robertkjonesjr)\
**Post date:** [December 10, 2010, 7:27pm UTC](https://forum.inductiveautomation.com/t/adjustable-scaling-capability/2415/1 "2010-12-10T19:27:20Z")

</div>

I have an application that reads Modbus data and display/stores in a database. I want to upgrade the application to have an engineering screen where the calibration team can enter in calibrated slopes/offsets and then have these corrections applied to my OPC tags, and then everything in the app should use these ‘adjusted’ values.

I did some searching on scaling but didn’t see much. Does anyone have design ideas? I need to have the calibration data available, so I assume I need to create my engineering page and have a button at the bottom with something like ‘write to database’. Then maybe when the app opens, I read all of these values (slope/offsets) into client tags, then do math? So create a whole separate set of tags…

Adjusted Tag = OPC tag \* slope + offset

where Adjusted Tag will be a DB or Expression tag. I will then put the Adjusted tags into my transaction groups, into my trends, etc, instead of the OPC tags I have now.

There are scaling fields in the OPC tag setup, but that doesn’t look like it takes variables.

Thanks in advance for your design ideas!

---

<div class="post-metadata">

**Author:** ![Carl.Gould](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/carl.gould/32/7262_2.png) [@Carl.Gould](https://forum.inductiveautomation.com/u/Carl.Gould)\
**Post date:** [December 11, 2010, 2:05am UTC](https://forum.inductiveautomation.com/t/adjustable-scaling-capability/2415/2 "2010-12-11T02:05:19Z")

</div>

I think you were pretty close in your ideas. I’d create 4 actual tags for each modbus tag:

1. “TagX\_Raw” - OPC Tag tied to modbus
2. “TagX\_Slope” - DB tag
3. “TagX\_Offset” - DB tag
4. “TagX” DB Tag set to Expression mode: TagX\_Raw \* TagX\_Slope + TagX\_Offset

And then use TagX for history, etc. Your calibration screen would simply have numeric entry fields tied directly to TagX\_Slope and TagX\_Offset.

---

<div class="post-metadata">

**Author:** ![robertkjonesjr](https://avatars.discourse-cdn.com/v4/letter/r/e9c0ed/32.png) [@robertkjonesjr](https://forum.inductiveautomation.com/u/robertkjonesjr)\
**Post date:** [December 13, 2010, 10:47am UTC](https://forum.inductiveautomation.com/t/adjustable-scaling-capability/2415/3 "2010-12-13T10:47:54Z")

</div>

Thanks Carl - I wanted to make sure I was headed in the right direction.
