Professional Documents
Culture Documents
Process Envelope Issue Investigation Report
Process Envelope Issue Investigation Report
Issue
Configure list of tags in SH process envelope in one SH report. When reading tags’ value
from the Historian server (IP21), if one of the tags having ResultID as E_FAIL (problematic
tag), then the whole tag list will be affected.
No tag value will be retrieved successfully even if other tags are having good quality and
proper tag value in historian server.
Root Cause
SH Process Envelope use ReadAtTime method to read SystemValue from historian. SH
Process Envelope make one call only to read SystemValue for all tags configured (e.g. if 10
tags are configured, SH Process Envelope make only one call to historian to get all 10 tags’
SystemValue for configured tags).
During this process, if one of the tag in the tag list having “E_FAIL” status, then
ReadAtTime method will return the whole list of tags with “E_FAIL” result. Therefore,
causing all other tags to be failed to read even though those tags are having good quality and
value in historian.
Work Around
#1 Use ReadAtTime method – but make each call to each tag to retrieve tag value from
server (if 10 tags is configured, then need to make 10 calls to historian server to get tag value)
Advantages – able to ensure one fail tag does not affect other good tags.
Disadvantages – performance is slower compare to ReadAtTime reading taglist method.
#2 Use ReadRaw method – when using ReadRaw method, one fail tag in a tag list does not
affect others tag result.
Advantages – able to ensure one fail tag does not affect other good tags. Besides, its
performance is faster as compare to ReadAtTime method.
Disadvantages – it is different from ReadAtTime method, ReadAtTime read at a specific
time. However, ReadRaw read list of value of the given interval. Then we need to take the
last available from the list as the System Value.
SH Process Envelope columns and its method used
Method Result
ReadAtTime (Taglist) Bad
ReadAtTime (TagByTag) Good & Bad
ReadRaw (Taglist) Good & Bad
ReadRaw (TagByTag) Good & Bad
ReadProcessed (Taglist) Good & Bad
-Average value
ReadProcessed (TagByTag) Good & Bad
-Average value
ReadProcessed (Taglist) Good & Bad
-Max value
ReadProcessed (TagByTag) Good & Bad
-Max value
ReadAttribute (TagByTag) -
Note:
Bad = All tags return bad result (incorrect behaviour)
Good = All tags return good result (correct behaviour)
Good & Bad = Good tags return good result, bad tags return bad result (correct behaviour)
Performance
Below is performance test result with 10 good and 10 bad (problematic) tags (total 20 tags):