UNPKG

prisme-flow

Version:

prisme platform flow engine

252 lines (240 loc) 8.49 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="modbusSerialConfig"> <div class="form-row"> <label for="node-config-input-port"><i class="fa "></i> Port</label> <input type="text" id="node-config-input-port" placeholder="/dev/ttyUSB0"> </div> <div class="form-row"> <table width="100%"> <tr> <td width="100px"><i class="fa fa-wrench"></i> Settings</td> <td width="110px">Baud Rate</td> <td with="70px">Data Bits</td> <td width="80px">Parity</td> <td width="70px">Stop Bits</td> </tr> <tr> <td>&nbsp;</td> <td> <input type="text" id="node-config-input-baud" style="width:100px"> </td> <td> <select type="text" id="node-config-input-data" style="width:70px"> <option value="8">8</option> <option value="7">7</option> <option value="6">6</option> <option value="5">5</option> </select> </td> <td> <select type="text" id="node-config-input-parity" style="width:80px"> <option value="none">None</option> <option value="even">Even</option> <option value="mark">Mark</option> <option value="odd">Odd</option> <option value="space">Space</option> </select> </td> <td> <select type="text" id="node-config-input-stop" style="width:70px"> <option value="2">2</option> <option value="1">1</option> </select> </td> </tr> </table> </div> <div class="form-row"> <label for="node-input-name"><i class="fa "></i> Name</label> <input type="text" id="node-config-input-name" placeholder="ModbusSerial"> </div> </script> <script type="text/x-red" data-help-name="modbusSerialConfig"> <p>Details of the serial port to use to connect to the RS485 bus</p> </script> <script type="text/javascript"> RED.nodes.registerType("modbusSerialConfig",{ category:'config', defaults: { port: {value: '', required: true}, baud: {value: 38400, required: true}, data: {value: 8, required: true}, parity: {value: 'none', required: true}, stop: {value: 1, required: true}, name: {value: ''} }, label: function(){ return this.name || this.port + ":" + this.baud; } }); </script> <script type="text/x-red" data-template-name="modbusSerial in"> <div class="form-row"> <label for="node-input-port"><i class="fa "></i> Port</label> <input type="text" id="node-input-port" placeholder="/dev/ttyUSB0"> </div> <!-- <div class="form-row"> <table width="100%"> <tr> <td width="100px"><i class="fa fa-wrench"></i> Settings</td> <td width="110px">Baud Rate</td> <td with="70px">Data Bits</td> <td width="80px">Parity</td> <td width="70px">Stop Bits</td> </tr> <tr> <td>&nbsp;</td> <td> <input type="text" id="node-input-baud" style="width:100px"> </td> <td> <select type="text" id="node-input-data" style="width:70px"> <option value="8">8</option> <option value="7">7</option> <option value="6">6</option> <option value="5">5</option> </select> </td> <td> <select type="text" id="node-input-parity" style="width:80px"> <option value="none">None</option> <option value="even">Even</option> <option value="mark">Mark</option> <option value="odd">Odd</option> <option value="space">Space</option> </select> </td> <td> <select type="text" id="node-input-stop" style="width:70px"> <option value="2">2</option> <option value="1">1</option> </select> </td> </tr> </table> </div> --> <div class="form-row"> <label for="node-input-slaves"><i class="fa "></i> Slaves</label> <input type="text" id="node-input-slaves"> </div> <div class="form-row"> <label for="node-input-dtype"><i class="fa "></i> Type</label> <select type="text" id="node-input-dtype"> <option value="descrete">Descrete</option> <option value="coil">Coil</option> <option value="input">Input Register</option> <option value="holding">Holding Register</option> </select> </div> <div class="form-row"> <label for="node-input-start"><i class="fa "></i> Start</label> <input type="text" id="node-input-start"> </div> <div class="form-row"> <label for="node-input-count"><i class="fa "></i> Count</label> <input type="text" id="node-input-count"> </div> <div class="form-row"> <label for="node-input-period"><i class="fa "></i> Poll Period</label> <input type="text" id="node-input-period"> </div> <div class="form-row"> <label for="node-input-topic"><i class="fa "></i> Topic Prefix</label> <input type="text" id="node-input-topic"> </div> <div class="form-row"> <label for="node-input-name"><i class="fa "></i> Name</label> <input type="text" id="node-input-name"> </div> </script> <script type="text/x-red" data-help-name="modbusSerial in"> <p>To read values from Modus devices over a serial connection.</p> <p>The node takes a comma seperated list of slave ids and start and number of fields to read. The node will poll each slave in turn at the given interval and send one message per slave.</p> <p>The output messages have a buffer payload and the the slave id appended to the configured topic.</p> </script> <script type="text/javascript"> RED.nodes.registerType("modbusSerial in",{ category:'plc-in', defaults: { port: {type: 'modbusSerialConfig', required: true}, // port: {value:"", required: true}, // baud: {value:38400, required: true}, // data: {value:8, required: true}, // parity: {value:'none', required: true}, // stop: {value:1, required: true}, slaves: {required: true}, start: {required:true}, count: {value:1, required: true}, dtype: {value:'coil', required: true}, period: {value:60, required: true}, topic: {value: ''}, name: {value:''} }, outputs: 1, inputs: 0, label: function() { return this.name || "modbus serial in"; }, color: 'grey', icon: 'modbus.png' }); </script> <script type="text/x-red" data-template-name="modbusSerial out"> <div class="form-row"> <label for="node-input-port"><i class="fa "></i> Port</label> <input type="text" id="node-input-port" placeholder="/dev/ttyUSB0"> </div> <div class="form-row"> <label for="node-input-slave"><i class="fa "></i> Slave</label> <input type="text" id="node-input-slave"> </div> <div class="form-row"> <label for="node-input-dtype"><i class="fa "></i> Type</label> <select type="text" id="node-input-dtype"> <option value="descrete">Descrete</option> <option value="coil">Coil</option> <option value="input">Input Register</option> <option value="holding">Holding Register</option> </select> </div> <div class="form-row"> <label for="node-input-start"><i class="fa "></i> Start</label> <input type="text" id="node-input-start"> </div> </script> <script type="text/x-red" data-help-name="modbusSerial out"> <p>To update the state of a Modbus device.</p> <p>Slave is the address of the device to update (only one device). If left blank then the msg.topic will be used if it's a integer. The last part of topic, seperated by '/' will be used</p> <p>The <i>msg.payload</i> of the input should be a buffer object formated to match what ever format the device expects. The Formating Data section of the has guidence on how to do this.</p> </script> <script type="text/javascript"> RED.nodes.registerType("modbusSerial out",{ category:'plc-out', defaults: { port: {type: 'modbusSerialConfig', required: true}, slave: {}, start: {required:true}, dtype: {value:'coil', required: true}, topic: {value: ''}, name: {value:''} }, outputs: 0, inputs: 1, label: function(){ return this.name || "modbus serial out"; }, color: 'grey', icon: "modbus.png" }); </script>