Hi Alexander,
Thank you very much for your detailed reply.
Is there any more data, for example like alarm modules, audit trails or so?
AuditTrail was deactivated because there were problems with the export.
I can see in the screenshot, that around 1 second before the pagefault happened, a (new?) mappview client connected.
Indeed there is always an entry with a client that (re)connects before the page fault.
Why, if the machine isn’t operated, maybe some type of temporary connection loss?
In one of the cases, the the page fault happend right after the operator got back to the plant with a mobile panel.
I would have to find out why the connection was interrupted in the other cases, I honestly don’t know.
What does the code in such situations, for example creating alarm entries via the text […]
Alarms are all generated directly after startup with the FUB MpAlarmXConfigAlarm.
If possible, I also would recommend to update to mappView 5.24.3.
We will do at the next opportunity.
From the call stack in your screenshot, I would start to look into the direction of text snippets.
We have only this two Snippets for a dynamic text from a TextList
<Snippets>
<Snippet id="snMsgCauseTextId" xsi:type="session" type="IndexText" formatItem="MsgCause.{1}" />
<Snippet id="snMsgRemedyTextId" xsi:type="session" type="IndexText" formatItem="MsgRemedy.{1}" />
</Snippets>
</SnippetsSet>
An ItemDoubleClick event in the AlarmList widget writes those session variables:
<EventBinding id="ebMessageListHelp">
<Source xsi:type="widgets.brease.AlarmList.Event" contentRefId="coMessageList" widgetRefId="AlarmList1" event="ItemDoubleClick" />
<EventHandler>
<Sequence>
<Step order="0">
<Action>
<Target xsi:type="session.VariableAction" refId="svMsgListCode">
<Method xsi:type="session.VariableAction.SetValueNumber" value="=code" />
</Target>
</Action>
</Step>
<Step order="1">
<Action>
<Target xsi:type="session.VariableAction" refId="svMsgListMessage">
<Method xsi:type="session.VariableAction.SetValueString" value="=message" />
</Target>
</Action>
</Step>
<Step order="2">
<Action>
<Target xsi:type="session.VariableAction" refId="svMsgListTyp">
<Method xsi:type="session.VariableAction.SetValueString" value="=category" />
</Target>
</Action>
</Step>
<Step order="3">
<Action>
<Target xsi:type="clientSystem.Action">
<Method xsi:type="clientSystem.Action.OpenDialog" dialogId="diMsgListHelp" mode="modal" verticalPos="middle" headerText="$IAT/Dialog.Msg" autoClose="true" />
</Target>
</Action>
</Step>
</Sequence>
</EventHandler>
</EventBinding>
Dialog is opened and shows the corresponding text
<Content id="coMsgListHelp" height="500" width="900" ">
<Widgets>
<Widget xsi:type="widgets.brease.TextOutput" id="TextOutput_Message" top="10" left="10" width="880" height="80" zIndex="2" multiLine="true" value="Meldungsausgabe" wordWrap="true"/>
<Widget xsi:type="widgets.brease.GroupBox" id="GroupBox_Cause" top="105" left="10" width="435" height="385" zIndex="1" text="$IAT/Sys.Cause" style="styleGrey_333333">
<Widgets>
<Widget xsi:type="widgets.brease.TextOutput" id="TextOutput_Cause" top="0" left="0" width="420" height="320" zIndex="0" multiLine="true" value="$IAT/MsgCause.1" wordWrap="true" textAlign="left top" />
</Widgets>
</Widget>
<Widget xsi:type="widgets.brease.GroupBox" id="GroupBox_Remedy" top="105" left="455" width="435" height="385" zIndex="0" text="$IAT/Sys.Remedy" style="styleGrey_333333">
<Widgets>
<Widget xsi:type="widgets.brease.TextOutput" id="TextOutput_Remedy" top="0" left="0" width="420" height="320" zIndex="0" multiLine="true" value="$IAT/MsgRemedy.1" wordWrap="true" textAlign="left top" />
</Widgets>
</Widget>
</Widgets>
</Content>
And the bindings:
<BindingsSet id="coMsgListHelp_binding">
<Bindings>
<Binding mode="oneWay">
<Source xsi:type="session" refId="svMsgListCode" attribute="value" />
<Target xsi:type="snippet" refId="snMsgCauseTextId" attribute="value" />
</Binding>
<Binding mode="oneWay">
<Source xsi:type="session" refId="svMsgListCode" attribute="value" />
<Target xsi:type="snippet" refId="snMsgRemedyTextId" attribute="value" />
</Binding>
<Binding mode="oneWay">
<Source xsi:type="snippet" refId="snMsgCauseTextId" attribute="value" />
<Target xsi:type="brease" widgetRefId="TextOutput_Cause" contentRefId="coMsgListHelp" attribute="value" />
</Binding>
<Binding mode="oneWay">
<Source xsi:type="snippet" refId="snMsgRemedyTextId" attribute="value" />
<Target xsi:type="brease" widgetRefId="TextOutput_Remedy" contentRefId="coMsgListHelp" attribute="value" />
</Binding>
<Binding mode="oneWay">
<Source xsi:type="session" refId="svMsgListMessage" attribute="value" />
<Target xsi:type="brease" contentRefId="coMsgListHelp" widgetRefId="TextOutput_Message" attribute="value" />
</Binding>
</Bindings>
</BindingsSet>
And that’s all we do with snippets (except for the Alarm Text Snippets)