• Not Answered

Overall Integrity of PK controller

In our current project, we are at IFAT stage. 

We have PK controller connected to Schneider PLC directly to PK controller Ports.

We have some module which is in Bad Integrity as below. 

I found that some are having bad values but still GOOD and some doesn't have any issue but still BAD. 

Is there anyway we can narrow down and clear these so we can have the overall integrity is GOOD ??

Kind Regards

Senthilkrishnan 

4 Replies

  • Just some ideas...need to drill down into the question marks on the controllers/modules make sure that modules are firmware up to date and have assigned controllers etc. Maybe even an update download status from the engineering workstation.

    I do know from a controller if you have a DST tag setup for a sensor at the IO point on the card and in the field say maintenance disconnects that sensor then that would give the controller an overall integrity bad. All the DST's must be good or overall integrity = Bad, check with the diagnostics and if it isn't the sensor (open or shorted) then I would look at replacing the IO card.
  • In reply to ShaneG:

    Hi Shane,


    I have only registers (SCADA modules) and I get the status through a register state ( True = Good status & False = Bad status). I have wrote a code at class level for checking this bit and writing the PV status (PV.ST) to 128 or 63. Since this is from logic and not any hardwired or paramater bad status, I believe integrity error shouldn't appear for this.. but I see most of the modules with integrity error is due to this reason.. Anyway to remove PV status = 63 from integrity error ??..

    Senthilkrishnan
  • In reply to Senthilkrishnan M:

    I don't think the controller has been downloaded the latest updated information from your engineering workstation changes, as in the second image it shows CONT as BAD so I would look into downloading to the controller or even a partial download on the module only and see if that changes things. Simply go to the module with the error and right click mouse and look for download and it is partial due to only downloading that one module to the controller.
  • In reply to ShaneG:

    The DeltaV dianostic Explorer is indicating a Bad Status on the modules. It is likely a common problem that once identified, is the same on all modules, maybe. So the first step is focus on one module and review its status. If you scroll to the right in this diagnostic view, you see the various MERROR and MSTATUS values. You can sort on each column to see all modules with the same condition. (Sort twice so that YES is at the top. Focusing on one module, you can see all the conditions that are "YES". Such as FBBAD or FBAbnormal, or Unresolved Reference etc. Within Each Module, you can see these two bitstring parameters which will indicate "Non-Zero" if one or more bits are set. Open the parameter to view which conditions are true/present.

    These two parameter have an associated MASK (MERROR_MASK and MSTATUS_MASK). The masks are used to set which conditions, if True, will set the module's BAD_ACTIVE parameter. Conditions that are not mask will cause the module's Abnormal_Active parameter to be true. With the BAD_ACTIVE True, the module flags an integrity error.

    The module also has a BLOCK_ERROR parameter, Each Function block has this paramater along with a BAD_MASK. Similar to the above masks, if a condition is set in the mask, the Block's BAD_ACT parameter is set. If the block has a bad condition, this will set the MERROR FBBAD bit, and if masked, will set the module BAD_ACTIVE. If the block Error condition is set but is not set in the mask, it will set the MSTATUS FBAbnormal bit. If the MSTATUS_MASK for FBAbnormal is set, then this Block condition will set the Module BAD_ACTIVE. Typically, FBAbnormal is not masked in MSTATUS.

    Anyway, the bad integrity of the module will be the result of an MERROR, MSTATUS , and could originate from a BLOCK_ERR status. Diagnostics will tell you what bits are currently set and you can pen the module online to view the masks and take action. For instance, if you have set an AI block simulation Enabled, this sets the Block_err for Simulate Active. This can cascade up to Mstatus or Merror and on up to BAD ACTIVE.

    If you have a CALC, CND or ACT expression with an error, these would report a component error. For example, a Divide by Zero condition, and infinite While/Do loop or a bad connection of a parameter reference. If all modules are class based the issue may be addressed for all modules with one simple fix. The trick is to identify the issue(s) in one module and then look to see what might be common to all.

    Andre Dicaire