UNPKG

prisme-flow

Version:

prisme platform flow engine

201 lines (186 loc) 8.34 kB
<!-- Created by prisme.io on 09/06/2017. @author <a href="mailto:hello@prisme.io">savane vamara</a> (prisme.io) --> <script type="text/x-red" data-template-name="modbustcp-server"> <div class="form-row"> <label for="node-config-input-host"><i class="icon-bookmark"></i> Host</label> <input type="text" id="node-config-input-host"> </div> <div class="form-row"> <label for="node-config-input-port"><i class="icon-bookmark"></i> Port</label> <input type="text" id="node-config-input-port"> </div> <div class="form-row"> <label for="node-config-input-unit_id"><i class="icon-bookmark"></i> Unit Id</label> <input type="text" id="node-config-input-unit_id"> </div> <div class="form-row1"> <label for="node-config-input-reconnecttimeout"><i class="fa fa-clock-o"></i> Reconnect Interval (s)</label> <input type="text" id="node-config-input-reconnecttimeout"> </div> </script> <script type="text/x-red" data-help-name="modbustcp-server"> <p>Uses MODBUSTCP to read/write ethernet host:port and register/coil addresses.</p> <p>Reconnect Interval allows the MODBUSTCP connection to automatically reconnect after the interval has elapsed to re-establish a TCP connection. Reconnect Interval is an optional input. Leave blank if auto-reconnect is not desired. </p> </script> pid control <script type="text/x-red" data-template-name="modbustcp-write"> <div class="form-row"> <label for="node-input-name"><i class="icon-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Name"> </div> <div class="form-row"> <label for="node-input-dataType"><i class="icon-list"></i> Type</label> <select id="node-input-dataType"> <option value="Coil">FC 5: Write Single Coil</option> <option value="HoldingRegister">FC 6: Write Single Holding Register</option> <option value="Coils">FC 15: Write Multiple Coils</option> <option value="HoldingRegisters">FC 16: Write Multiple Holding Registers</option> </select> </div> <div class="form-row"> <label for="node-input-adr"><i class="icon-bookmark"></i> Address</label> <input type="text" id="node-input-adr"> </div> <div class="form-row"> <label for="node-input-server"><i class="icon-bookmark"></i> Server</label> <input type="text" id="node-input-server"> </div> </script> <script type="text/x-red" data-help-name="modbustcp-write"> <p>Modbus TCP client node. Connects to a Modbus TCP server to write <b>msg.payload</b> to a coil or register. <h4>Function codes currently supported include:</h4> <ul> <li>FC 5: Write Single Coil</li> <li>FC 6: Write Single Holding Register</li> <li>FC 15: Write Multiple Coils</li> <li>FC 16: Write Multiple Holding Registers</li> </ul> Choose a function code (FC) from the dropdown menu, select the coil/register start address (0:65535). Choose or edit the Modbus TCP server configuration. <br><br> For FC 5, <b>msg.payload</b> must be a number or string value of 0 or 1. For FC 6, <b>msg.payload</b> must be a number or string value between 0:65535. For FC15, <b>msg.payload</b> must be an array of numbers or strings with values of 0 or 1. For FC 16, <b>msg.payload</b> must be an array of numbers or strings with values between 0:65535. </p> </script> <script type="text/x-red" data-template-name="modbustcp-read"> <div class="form-row"> <label for="node-input-name"><i class="icon-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Name"> </div> <div class="form-row"> <label for="node-input-dataType"><i class="icon-list"></i> FC</label> <select id="node-input-dataType"> <option value="Coil">FC 1: Read Coils</option> <option value="Input">FC 2: Read Discrete Inputs</option> <option value="HoldingRegister">FC 3: Read Holding Registers</option> <option value="InputRegister">FC 4: Read Input Registers</option> </select> </div> <div class="form-row"> <label for="node-input-adr"><i class="icon-home"></i> Address</label> <input type="text" id="node-input-adr" placeholder="0:65535"> </div> <div class="form-row"> <label for="node-input-quantity"><i class="icon-bookmark"></i> Quantity</label> <input type="text" id="node-input-quantity" placeholder="1-65535"> </div> <div class="form-row"> <label for="node-input-rate"><i class="fa fa-clock-o"></i> Poll Rate </label> <input type="number" id="node-input-rate" placeholder="1-65535" style="max-width:120px"> <select id="node-input-rateUnit" 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-server"><i class="icon-globe"></i> Server</label> <input type="text" id="node-input-server"> </div> </script> <script type="text/x-red" data-help-name="modbustcp-read"> <p>Modbus TCP client node. Connects to a Modbus TCP server to read register values at a given poll rate. <h4>Function codes currently supported include:</h4> <ul> <li>FC 1: Read Coils</li> <li>FC 2: Read Discrete Inputs</li> <li>FC 3: Read Holding Registers</li> <li>FC 4: Read Input Registers</li> </ul> Choose a function code (FC) from the dropdown menu, select the coil/input/register start address (0:65535), and the quantity of coils/inputs/registers to be read from the start address. Input a poll rate (greater than zero) in seconds to setup the poll rate. Choose or edit the Modbus TCP server configuration. <br><br> Outputs an object called <b>msg</b> containing <b>msg.payload</b> with an array of the read coils/inputs/registers.</p> </script> <script type="text/javascript"> RED.nodes.registerType('modbustcp-server', { category: 'config', defaults: { host: {value: "127.0.0.1", required: true}, port: {value: 502, required: true, validate: RED.validators.number()}, unit_id: {value: 1, required: true, validate: RED.validators.number()}, reconnecttimeout: {value: "", required: false} }, label: function () { return "modbustcp@" + this.host + ":" + this.port; } }); </script> <script type="text/javascript"> RED.nodes.registerType('modbustcp-write', { category: 'plc-output', color: '#E9967A', defaults: { name: {value: ""}, dataType: {value: "", required: true}, adr: {value: "", required: true, validate: RED.validators.number()}, server: {value: "", type: "modbustcp-server"} }, inputs: 1, outputs: 0, icon: "bridge.png", align: 'right', paletteLabel: "modbustcp", label: function () { return (this.name || "modbus tcp write"); } }); </script> <script type="text/javascript"> RED.nodes.registerType('modbustcp-read', { category: 'plc-input', color: '#E9967A', defaults: { name: {value: ""}, dataType: {value: "", required: true}, adr: {value: "", required: true, validate: RED.validators.number()}, quantity: {value: "", required: true, validate: RED.validators.number()}, rate: { value: "", required: true, validate: function (v) { return v > 0 } }, rateUnit: { value: "", required: true, validate: function (v) { return "ms" == v || "s" == v || "m" == v || "h" == v } }, server: {value: "", type: "modbustcp-server"} }, inputs: 0, outputs: 1, icon: "modbus.png", paletteLabel: "modbustcp", label: function () { return (this.name || "modbus tcp read"); } }); </script>