Hello,
We confirm with many test that when we create opc ua server method in wincc oa, if we use system() function inside of it, it stuck. No error, no warning it simply stucks. We even tried it with simple debug message executable but whatever we call through system() simply stucsks.
I want to report this bug and is there any workaround (without passing this information to another manager, we can do it this way)
WinCC OA 3.19 System call on OPC UA Server Method
Search
- hpuchegger
- Posts: 86
- Joined: Fri Oct 08, 2021 10:38 am
Re: WinCC OA 3.19 System call on OPC UA Server Method
This behavior may occur because the system() function is designed to run a shell command synchronously, which means it waits for the command to finish executing before continuing. If the command being executed does not terminate or takes a long time to complete, it can cause the method to hang.
To avoid this issue, consider using the options parameter of the system() function to set a timeout or to run the command asynchronously. For example, setting the timeout option to a positive integer value will allow the process to be terminated if it exceeds the specified duration. Alternatively, using timeout set to -1 will run the command in a detached mode, which does not wait for the command to finish.
Here is a brief overview of the system() function parameters relevant to your situation:
-- timeout: Defines the maximum time (in milliseconds) to wait for the command to finish. If the command does not finish within this time, it can be terminated.
-- options: A mapping that can include the timeout key to specify the timeout behavior.
For more details on the system() function and its parameters check our online documentation:
https://www.winccoa.com/documentation/W ... ystem.html
Br, Herbert
To avoid this issue, consider using the options parameter of the system() function to set a timeout or to run the command asynchronously. For example, setting the timeout option to a positive integer value will allow the process to be terminated if it exceeds the specified duration. Alternatively, using timeout set to -1 will run the command in a detached mode, which does not wait for the command to finish.
Here is a brief overview of the system() function parameters relevant to your situation:
-- timeout: Defines the maximum time (in milliseconds) to wait for the command to finish. If the command does not finish within this time, it can be terminated.
-- options: A mapping that can include the timeout key to specify the timeout behavior.
For more details on the system() function and its parameters check our online documentation:
https://www.winccoa.com/documentation/W ... ystem.html
Br, Herbert
Re: WinCC OA 3.19 System call on OPC UA Server Method
Hi Herbert,
Yes to make sure the executable is not the problem we created new executable that only generates message via Console.WriteLine() nothing else. When we try it from UI and control manager it finishes in 1ms and we get the output from the system call. However in Opc UA Method it simply hangs.
Thanks
Yes to make sure the executable is not the problem we created new executable that only generates message via Console.WriteLine() nothing else. When we try it from UI and control manager it finishes in 1ms and we get the output from the system call. However in Opc UA Method it simply hangs.
Thanks
- hpuchegger
- Posts: 86
- Joined: Fri Oct 08, 2021 10:38 am
Re: WinCC OA 3.19 System call on OPC UA Server Method
If you suspect a product error, please create a support request with all available data. You can do this as described here:
https://www.winccoa.com/support.html
Br, Herbert
https://www.winccoa.com/support.html
Br, Herbert
Re: WinCC OA 3.19 System call on OPC UA Server Method
Hello we already reported the problem now. We also tested with WinCC OA 3.20 also and problem is still there.