Files
red-briq-nodes/red/opcua/opcua-briq.html
T
2026-09-29 20:56:49 +02:00

97 lines
4.6 KiB
HTML

<script type="text/javascript">
RED.nodes.registerType('opcua-briq-write', {
category: 'plc',
color: '#ffaaff',
defaults: {
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "serial.png",
label: function () {
return this.name || "opcua write";
}
});
</script>
<script type="text/html" data-template-name="opcua-briq-write">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/html" data-help-name="opcua-briq-write">
<p>Scrive variabili multiple su opcua</p>
<code>msg.opcua_server</code> deve contenere
<ul>
<li><code>id</code>: identifica questa connessione al server (se già aperta in precedenza, viene riutilizzata). Esempio: <code>"plc_macchina_1"</code>.</li>
<li><code>url</code>: url connessione, per esempio <code>opc.tcp://127.0.0.1:4840/</code></li>
<li><code>client_settings</code>: dizionario di impostazioni per libreria node-opcua, in <a href="https://node-opcua.github.io/api_doc/latest/classes/node-opcua.OPCUAClient.html">questo formato</a>. Può essere vuoto.</li>
</ul>
<code>msg.nodesToWrite</code> deve essere una lista di oggetti fatti così:
<ul>
<li><code>nodeId</code>: indirizzo del nodo (per esempio <code>ns=3;s="DB"."Varname"</code>)</li>
<li><code>dataType</code>: tipo di dato del nodo, per esempio <code>"String"</code>. Tutti i tipi <a href="https://node-opcua.github.io/api_doc/latest/enums/node-opcua.DataType.html">sono elencati qui</a>.</li>
<li><code>value</code>: il valore da scrivere, coerente con il <code>dataType</code> indicato.</li>
<li><code>label</code>: se fornito, sostituisce <code>nodeId</code> in eventuali messaggi di errore</li>
</ul>
<code>msg.verifyWrittenValues</code>: se <code>true</code>, richiede al nodo di rileggere subito le variabili e verificare che i valori siano quelli appena scritti.
<p>
Il messaggio di uscita aggiunge a quello d'ingresso le chiavi:
<li><code>msg.payload</code>: <code>"write ok"</code> oppure <code>"write ok & verified"</code></li>
<li><code>msg.raw_response</code>: risposta grezza della libreria node-opcua</li>
<li><code>msg.error</code>: errore, se presente</li>
</p>
<p>
Il messaggio di uscita toglie a quello d'ingresso le chiavi:
<li><code>msg.error</code>: se non c'è errore</li>
</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('opcua-briq-read', {
category: 'plc',
color: '#ffaaff',
defaults: {
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "serial.png",
label: function () {
return this.name || "s7 read";
}
});
</script>
<script type="text/html" data-template-name="opcua-briq-read">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/html" data-help-name="opcua-briq-read">
<p>Legge variabili multiple da opcua</p>
<code>msg.opcua_server</code> deve contenere
<ul>
<li><code>id</code>: identifica questa connessione al server (se già aperta in precedenza, viene riutilizzata). Esempio: <code>"plc_macchina_1"</code>.</li>
<li><code>url</code>: url connessione, per esempio <code>opc.tcp://127.0.0.1:4840/</code></li>
<li><code>client_settings</code>: dizionario di impostazioni per libreria node-opcua, in <a href="https://node-opcua.github.io/api_doc/latest/classes/node-opcua.OPCUAClient.html">questo formato</a>. Può essere vuoto.</li>
</ul>
<code>msg.nodesToRead</code> deve essere una lista di oggetti fatti così:
<ul>
<li><code>nodeId</code>: indirizzo del nodo (per esempio <code>ns=3;s="DB"."Varname"</code>)</li>
<li><code>label</code>: se fornito, sostituisce <code>nodeId</code> come chiave di questo valore nel dizionario <code>msg.payload</code></li>
</ul>
<p>
Il messaggio di uscita aggiunge a quello d'ingresso le chiavi:
<li><code>msg.payload</code>: dizionario label -> valore</li>
<li><code>msg.raw_response</code>: risposta grezza della libreria node-opcua</li>
<li><code>msg.error</code>: errore, se presente</li>
</p>
<p>
Il messaggio di uscita toglie a quello d'ingresso le chiavi:
<li><code>msg.error</code>: se non c'è errore</li>
</p>
</script>