if == ' main ': app.run(host='0.0.0.0', port=5000)
# plc_rest_bridge.py from flask import Flask, jsonify, request import asyncua from asyncua import Client import asyncio app = Flask() Connect to CODESYS OPC UA server (default port 4840) OPC_URL = "opc.tcp://localhost:4840" PLC_VAR_NODE = "ns=2;s=GVL.myVariable"
@app.route('/api/plc/var', methods=['GET']) def get_var(): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) value = loop.run_until_complete(read_plc_var()) return jsonify({"value": value})
async def read_plc_var(): async with Client(url=OPC_URL) as client: var = client.get_node(PLC_VAR_NODE) return await var.read_value()
Run with: