rdrast
Lifetime Supporting Member
'Morning All,
I've run into something that is just annoying me on a CLX System using counter modules.
The counter modules have 24 bit counters per channel, and since my application has to deal with up/down counting and rollover, I sign extend each raw count channel before doing other math. Basically:
TEMP_DINT = RAW_COUNT * 256;
SIGNED_COUNT = TEMP_DINT / 256;
It works fine with my application, BUT the CLX Processor reports minor math error (overflow) on the above, even though no overflow is really there. No big deal, except that the fault pops up every scan, and looking at controller properties and seeing 86,242 faults since powerup is, well, annoying.
Annoying, and it masks other possible faults.
Is there any way to temporarily mask the fault? Resetting S:Minor, using GSV/SSV before and after doesn't work... and I'd rather not go through a more elaborate bit-based method of sign extension.
Any ideas?
I've run into something that is just annoying me on a CLX System using counter modules.
The counter modules have 24 bit counters per channel, and since my application has to deal with up/down counting and rollover, I sign extend each raw count channel before doing other math. Basically:
TEMP_DINT = RAW_COUNT * 256;
SIGNED_COUNT = TEMP_DINT / 256;
It works fine with my application, BUT the CLX Processor reports minor math error (overflow) on the above, even though no overflow is really there. No big deal, except that the fault pops up every scan, and looking at controller properties and seeing 86,242 faults since powerup is, well, annoying.
Annoying, and it masks other possible faults.
Is there any way to temporarily mask the fault? Resetting S:Minor, using GSV/SSV before and after doesn't work... and I'd rather not go through a more elaborate bit-based method of sign extension.
Any ideas?