Hi Everyone.
I am trying to execute the UaSrv_FireEvent Function Block but i am calling it within the other function block.
If i execute the UaSrv_FireEvent function block in a program, it works fine but goes to service mode (EXCEPTION Page Fault) when called from inside.
I have also added the AdvIecCheck library to back trace, but it leads me no where.
Any suggestions that can make this work?
Thanks
Hello,
Do you call the FUB properly until the Busy is reset to FALSE? Are entries in the Connectivity logger different if you call the FUB in a task or inside another FUB? Could you share implementation details?
Hi Pavel,
Here’s the code implementation inside the Function Block -
4: UaSrv_FireEvent_0(
Execute := TRUE,
EventType := EventType,
EventFieldCount := EventFieldCount,
EventFields := EventFieldsAdr);
IF NOT (UaSrv_FireEvent_0.Busy) THEN
UaSrv_FireEvent_0.Execute := FALSE;
IF (UaSrv_FireEvent_0.Done) THEN
UaSrv_FireEvent_0(
Execute := FALSE,
EventFields := EventFieldsAdr);
EventFlag := FALSE;
// Step := 2;
END_IF
END_IF
I need to check the connectivity in the both the scenarios
Are you sure the state 4 is executed until the UaSrv_FireEvent_0 finishes its execution?
Yes, i have checked it. The function Block’s BUSY is active and DONE is False and it goes to service.
The attached image is just before it goes to service mode
Hello,
I’ve used the OPC UA Project from the Start Page and its SrvFireEvent task, which works as expected.
I’ve wrapped the task into a FUB and must confirm that the ArSim goes to the SERV mode as well.
Please contact the local B&R support.
Used versions:
Thank you for the replies and the efforts.
I will reach out to local B&R Office,.
But is there any workaround that you can suggest for generating the OPC UA events inside the function blocks?