$BEREMIZPYTHONPATH - > >(
# Wait for server to print modified value
if [[ "$line" == 3.4 ]]; then
echo "PLC could write value"
from opcua import ua, Server
server.set_endpoint("opc.tcp://127.0.0.1:4840/freeopcua/server/")
uri = "http://beremiz.github.io"
idx = server.register_namespace(uri)
objects = server.get_objects_node()
testobj = objects.add_object(idx, "TestObject")
testvarout = testobj.add_variable(idx, "TestOut", 1.2)
testvar = testobj.add_variable(idx, "TestIn", 5.6)
print testvar.get_value()
# Start PLC with opcua test
setsid $BEREMIZPYTHONPATH $BEREMIZPATH/Beremiz_cli.py -k \
--project-home $BEREMIZPATH/tests/projects/opcua_client build transfer run > >(
# Wait for PLC runtime to output expected value on stdout
if [[ "$line" == 1.2 ]]; then
echo "PLC could read value"
echo all subprocess started, start polling results
res=110 # default to ETIMEDOUT
if [[ -a ./SRVOK && -a ./PLCOK ]]; then
# Kill PLC and subprocess
echo will kill PLC:$PLC_PID and SERVER:$SERVER_PID