• Not Answered

Detecting #IGNORE on an External Reference

Hello,

In an application of mine, I am linking an external reference to the TRK_IN_D parameter of an EDC block. This is so I can handle HOA switches in another module and link them if one exists. The issue that I am running into is when I configure the external reference with #IGNORE, the default value of #IGNORE is so large (3.4 E+038) that is causes an input error on the EDC and throws a MODBAD alarm.

I would like to logically determine if the external reference has an actual reference or if it uses #IGNORE and then condition it if necessary.   I have tried looking at the ST, CST, and $REF to see if there is anything I can use, but to no avail. I am currently thinking about just checking to see if the value of the external reference is < 255 (or some other similarly smaller value) to determine this. However, I am not sure if this is the most reliable method.

Is there a better way to detect this or change the value of #IGNORE? 

Thanks,

Dave

4 Replies

  • We had a similiar situation on our project and added a calc block between the parameter and the DC block. We just limited the max value going forward to 255. Here is the calc block expression I used for our 4 inputs:

    OUT1 := MIN(255, IN1);
    OUT2 := MIN(255, IN2);
    OUT3 := MIN(255, IN3);
    OUT4 := MIN(255, IN4);
    'OUT1.ST' := 'IN1.ST';
    'OUT2.ST' := 'IN2.ST';
    'OUT3.ST' := 'IN3.ST';
    'OUT4.ST' := 'IN4.ST';

    I believe in V15 there is a potential fix in the works (no guarantees of course) to not cause a modbad in this scenario.

    Thanks,
    Matt
  • In reply to Matt Forbis:

    Hi Matt,

    Thanks for the reply. I'm glad to see someone else had the same conclusion.

    Thanks,
    Dave
  • Something to try is to configure external reference module parameter to it's own EDC/TRL_IN_D parameter rather than setting #IGNORE. I'm not sure if this "trick" has some side effects so extensive testing must be done (waht happens after download, switchover, see if module status becomes bad, and so on)
  • In reply to gamella:

    Hi Gamella,

    We do that from time to time, but usually with a dummy parameter in the module. The side effects are usually non-existent. The difficulty with that solution though, is that you cannot do that at the class level. In this case, this item will be linked in the minority of the cases, so I don't what to force the engineer to have to set it to an internal dummy parameter each time.

    Thanks!