Tuesday, November 12, 2013

Error example: The case of the not quite identical clones.

This is the story of one error in a system with two approximately cloned units.
 
The error message is simple.  It says that a FC 36 8 input qualified or (QOR) block does not have enough inputs wired to be able to trigger a "1".
 
Image 1 shows the following DBDOC aspects of the error message, starting from the Error Browser.
  • A - The error is selected in the Error Browser.  Note it is the only error of this type.
  • B - Clicking on it brings up the detailed description, plus the location on the sheet where the error is found (Image 2).
  • C - Note how Error Browser makes new detailed error documentation available to the user.
  • D - The documentation called up by asking for "Complete error documentation".
  • E - The documentation showing explanation and example (not from this system, of course).
Image 1
  
Image 2 shows how Error Browser brought up the flagged block in the sheet.
  • F - The block number is highlighted, and the block index available to show where it is used.
  • G - The specifications show S9 is 8.  With only 6 inputs, the output can never be 1.
Note, however, that this is a clone of another unit, which did not have the error. 
  • H - The text of the reference on this output, which we can search for in the other unit.
Image 2
 
Image 3 shows how Hyperview text searching finds the reference text to resolve this question.
  • I - Search for the (case insensitive) text of the reference on the sheet with the error.
  • J - Go to the result in the first unit.
  • K - Here is what you find.
  • L - The logic in the first unit was originally a rung block - FC 111.  
Image 3
 
The error, it turns out, was introduced when the rung block was changed into AND logic implemented with the FC 36 block, but incorrectly.  There is a good reason not to have cloned errors. 
 
Cloning is beautiful - it replicates tested, working logic.  When a message or error is noted, it would be expected to be in all similar instances.  If a message is not replicated, it can mean:
  1. the error was fixed in another copy
  2. the error has not yet been made in the other copy
  3. the copy is not an exact clone
The error in this example is in the third category, logic that is not exactly the same in the clone.  Watch out for situations like this!
 

No comments:

Post a Comment