UNPKG

prisme-flow

Version:

prisme platform flow engine

110 lines (98 loc) 4.07 kB
<!-- Created by prisme.io on 09/06/2017. @author <a href="mailto:hello@prisme.io">savane vamara</a> (prisme.io) --> <script type="text/javascript"> RED.nodes.registerType('OpcUa-Client', { category: 'plc', color: "#3FADB5", defaults: { endpoint: {value: "", required: true, type: "OpcUa-Endpoint"}, action: {value: "read", required: true}, time: {value: 10}, timeUnit: {value: "s"}, name: {value: ""} }, inputs: 1, outputs: 1, align: "right", icon: "opcualogo.png", label: function () { return this.name || "OPC UA Client"; }, labelStyle: function () { return this.name ? "node_label_italic" : ""; }, oneditprepare: function () { var node = this; try { var inputAction = $('#node-input-action'); var inputTime = $('#node-input-timerow'); change_time_input(); // first to fit config now inputAction.change(change_time_input); } catch (err) { console.log(err); } function change_time_input() { if (inputAction.val() == "subscribe" || inputAction.val() == "events") { inputTime.show(); } else { inputTime.hide(); } } } }); </script> <script type="text/x-red" data-template-name="OpcUa-Client"> <div class="form-row"> <label for="node-input-endpoint"><i class="icon-tasks"></i> Endpoint</label> <input type="text" id="node-input-endpoint" placeholder="opc.tcp://localhost:4334"> </div> <div class="form-row"> <label for="node-input-action"><i class="fa fa-tasks"></i> Action</label> <select type="text" id="node-input-action" style="width:72%;"> <option selected value="read">READ</option> <option value="write">WRITE</option> <option value="browse">BROWSE</option> <option value="subscribe">SUBSCRIBE</option> <option value="events">EVENTS</option> <option value="info">INFO</option> </select> </div> <div class="form-row" id="node-input-timerow"> <label for="node-input-time"><i class="icon-time"></i> Interval</label> <input type="number" id="node-input-time" placeholder="number" style="max-width:120px"> <select id="node-input-timeUnit" style="max-width:160px"> <option value="ms">millisecond(s)</option> <option value="s">second(s)</option> <option value="m">minute(s)</option> <option value="h">hour(s)</option> </select> </div> <div class="form-row"> <label for="node-input-name"><i class="icon-tasks"></i> Name</label> <input type="text" id="node-input-name" placeholder=""> </div> </script> <script type="text/x-red" data-help-name="OpcUa-Client"> <p>Connect to an endpoint like opc.tcp://host:port/UA/EndpointName.</p> <p>Actions are:</p> <p> <ul> <li>Read</li> <li>Write</li> <li>Browse</li> <li>Subscribe</li> <li>Event</li> <li>Info</li> </ul> </p> <p>Inject your OPC UA address (NodeId) by the <strong>Topic</strong> of an Inject node or with the OpcUa-Item cotrolled by an Inject node.</p> <p>To Read/Write inject the Topic for every operation.</p> <p>The value to Write should be injected by an OpcUa-Item.</p> <p>Inject the Topic only once on Subscribe or Event for subscription and you got the changing value on every Interval. Every inject subscribes a new monitored Item.</p> <p>Interval is setting for Client <strong>requestedPublishingInterval</strong> (default: 100ms).</p> <p>Input <strong>msg.payload</strong> can bring an samplingInterval for monitored Items/Events in subscription (default: 100ms).</p> </script>