prisme-flow
Version:
prisme platform flow engine
132 lines (120 loc) • 5.36 kB
HTML
<!--
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('modbus-read', {
category: 'plc',
color: '#E9967A',
defaults: {
name: {value: ""},
showStatusActivities: {value: false},
showErrors: {value: false},
unitid: {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: {type: "modbus-client", required:true}
},
inputs: 0,
outputs: 2,
icon: "modbus.png",
paletteLabel: "Modbus-Read",
label: function () {
return this.name || "modbus read"
}
})
</script>
<script type="text/x-red" data-template-name="modbus-read">
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> <span>Name</span></label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-unitid"><i class="icon-bookmark"></i> <span>Unit-Id</span></label>
<input type="text" id="node-input-unitid">
</div>
<div class="form-row">
<label for="node-input-dataType"><i class="icon-list"></i> <span>FC</span></label>
<select id="node-input-dataType">
<option value="Coil">FC 1: Read Coil Status</option>
<option value="Input">FC 2: Read Input Status</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> <span>Address</span></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> <span>Quantity</span></label>
<input type="text" id="node-input-quantity" placeholder="1-65535">
</div>
<div class="form-row">
<label for="node-input-rate"><i class="icon-bookmark"></i> <span>Poll Rate</span></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> <span>Server</span></label>
<input type="text" id="node-input-server">
</div>
<hr>
<div class="form-row">
<label style="min-width:160px" for="node-input-showStatusActivities"><i class="fa fa-th"></i>
<span>Show Activities</span></label>
<input type="checkbox" id="node-input-showStatusActivities" style="max-width:30px">
</div>
<div class="form-row">
<label style="min-width:160px" for="node-input-showErrors"><i class="fa fa-th"></i> <span>Show Errors</span></label>
<input type="checkbox" id="node-input-showErrors" style="max-width:30px">
</div>
</script>
<script type="text/x-red" data-help-name="modbus-read">
<p><strong>
If you have more than 10 nodes on one communication configuration,
use the Modbus-Flex-Getter or think about multiple connections to your Modbus device, please!
You can do polling with the Modbus-Getter and Modbus-Flex-Getter, too by using an injecting node
with an interval.
</strong></p>
<p>Modbus TCP/Serial read node.</p>
<p>Connects to a Modbus TCP or serial to read registers/coils values with a given polling rate.</p>
<p>
<h4>Function codes currently supported include:</h4>
<ul>
<li>FC 1: Read Coil Status</li>
<li>FC 2: Read Input Status</li>
<li>FC 3: Read Holding Registers</li>
<li>FC 4: Read Input Registers</li>
</ul>
</p>
<p>
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.
</p>
<p>Unit-Id (0..255 tcp | 1..247 serial) - leave empty, otherwise it overrides the default Unit-ID of client
config</p>
<p>
Setup a polling rate (greater than zero) and the time unit.
Choose or edit the Modbus connection configuration.
</p>
<p>Output 1: data Array (PDU), modbus response Buffer, input message</p>
<p>Output 2: modbus response Buffer, data Array (PDU), input message</p>
</script>