OUT_HI_LIM setting for Analog input

I have some temperature analog inputs that I want to change the scaling from using C to F.  I am able to adjust the scaling value and get the correct temp output, but the OUT_HI_LIM setting in the LIM block is set to low so it shows a fault for that sensor since the value is > the HI_LIM.  Looking at the block offline and it has a default value of 100, but when I go online the default value is 129.6.  Changing the default value (I tried changing to 250) doesn't change anything when online.  I haven't been able to find where/how I can change this parameter or where it is getting it's online value from.

I only have experience with my one emerson system so I am not sure if this is a standard soft_ai block or something that was made for just my application.   I suspect the answer is probably something really simple that I don't know.

Maybe a bit more complicated question would be is there an easy way to change a group of AI from being scaled from one set of units to another and back again.  For example placing a button on one of the pictures that will convert the AI and their associated pictures / scaling from using kpa to psi, C to F and m to ft?   Only thing I can think of is to make a set of blocks for each set of units and a set of pictures for each set of units and having the push button change you from using one set to the other set and back.

  

  • I’m guessing that this piece of configuration is contained within a “linked composite block”.  If that’s the case, you could break the link by converting it to an “embedded composite” – you’d then be allowed to edit the configuration of the limit block.  Books on-Line has a decent write-up on the differences between linked and embedded composites.  Just out of curiosity, what is the Action block in the lower left doing?
     
    Steve Elves, Spartan Controls
     
  • In reply to Steve Elves:

    Yes this is linked to a composite Template named Soft_AI   as well as several other of the analog inputs.  Each input has different scaling and HI/lo limits.   Going to each one I can see and change the output scaling, but the HI/LO limits only show the default value and when you go online they show a different value for each sensor depending on that sensors range.  There has to be some place that it gets the information of how to set those HI/LO limits yet I can't figure out where that data comes from or where the link is.  

    Throwing some more pics in case anything there can help.

    For the Action block in the lower left...  I have no idea what it is doing.

  • In reply to AggieRalph:

    If you want to change the scaling, then you will also need to write "logic" somewhere to convert all the values as well (Alarm Limits, Out Limits, etc).

    What is the reason for needing to change the units?
  • In reply to Matt Stoner:

    The alarm limits are easy to change in the UI. The fault limit is the one that I am having trouble changing. I can't find what the source of the value is to change it though. Any suggestions of where it could be getting the value change from default to online? In the first picture in the original post the HI_LIM has a default value of 250 but online value of 129.6. I can't find this online value setting anywhere that I know of to look (and my knowledge is limited).

    Reason for the change is this is for engine parameters that are all locally on engines in imperial units and the manuals are all in imperial units. Shipyard where this was setup (China) put the units in DCS all in metric. Mechanics are all used to using imperial units.
  • In reply to AggieRalph:

    Look at the expression of the ACT1 block by right clicking the block and selecting expression, it most likely is updating the values.
  • In reply to Matt Stoner:

    That is it... thanks.... I am a little confused about how/why they did it this way. If you are looking for a bad status on the input why base that off the final values of the output based on the input scale.

    The ACT1 block uses the XD_SCALE value and sets the LIM block upper and lower values off the range of the XD_SCALE which is also used as the input scaling for the SCLR block.
    For example in one of the inputs (Fuel filter D/P) the serial input is supposed to be -10~800kpa XD_SCALE is set to -20~1600 with OUTPUT_SCALE -10~800
    So the ACT1 block sets the Upper limit to 1697.2 and Lower limit to -117.2
    The LIM block compares the OUTPUT with these limits to determine a bad value so base on this the output value would need to be double its high scale value (800) before it registered as a bad value.
    I would think that it would be better to have the LIM block compare the IN value to the XD_SCALE values to determine a bad input instead of using the output value of the SCLR.
  • This is indeed a linked composite block – when you look at the block at the module level, you can see the little icon in the upper right-hand corner has a small black arrow on the lower left.  You can edit the composite from the library, but not in the instance.
     
    Furthermore, this linked composite is being used in a class-based module, which is where your difficulty lies.  You can’t actually edit parameters of a class-based module in Control Studio – you have to do it from the tree in Explorer.  When you right-click the module in the tree, you will get an option to edit parameters.  If you select that, you will get a pop-up that will allow you to modify only those parameters that the original configuration engineer decided that you could.
     
    The Action block has an input that is fixed at a 1 (“TRUE”), which means it is executing each time the module executes. If you right-click on this block and select “Expression”, you will see the code that runs.  I’m guessing that the code in there may be writing values to the LIM block.
     
    I’d suggest you proceed very carefully here – I’m not sure you should be modifying stuff until you understand exactly how this logic was originally put together, and why.
     
    Good luck!
    Steve Elves
     
  • In reply to Steve Elves:

    Thanks Steve. Got it figured out and units changed, and alarm / fault limits set correctly. Big thing I didn't know was the expression code in the ACT block. I knew there had to be something somewhere setting those values I just didn't know about looking in that block. I also rewired the composite block so that the limit settings where checking against the input values based on the input range instead of how they had it set which was making the limit range based on the input scale and comparing that to the final output value. So now if the input scale is 0~100 ACT block sets limits at -6 ~ 106 and compares that to the input value where as originally done if the input scale was 0~100 and the output scale was 0~1000 the limits would be set by the ACT block the same as -6~106 but it would compare that to the output value which would be at 500 at just half range thus indicating a fault.
  • Glad you got it sorted!  Everything is immensely easier to understand when you know where to look!