Difference between revisions of "Detnov"
(13 intermediate revisions by the same user not shown) | |||
Line 64: | Line 64: | ||
|} | |} | ||
+ | === detnov.ini === | ||
+ | |||
+ | The detnov.ini file is a specific configuration file located in the root directory. | ||
+ | |||
+ | This file is required to provide the I/O Server the name assignment of zones and devices. | ||
+ | |||
+ | This is an example of the file content: | ||
+ | |||
+ | <pre> | ||
+ | detnov.z1 = Zone 1 | ||
+ | detnov.l1.d1 = Device 1 Loop 1 | ||
+ | detnov.l8.d4 = Device 8 Loop 4 | ||
+ | </pre> | ||
+ | |||
+ | Where "detnov" is the I/O Server id of the Detnov I/O Server | ||
+ | |||
+ | If you have multiples Detnov I/O Servers: | ||
+ | |||
+ | <pre> | ||
+ | detnov1.z1 = Zone 1 Detnov 1 | ||
+ | detnov2.z1 = Zone 2 Detnov 2 | ||
+ | detnov1.l1.d1 = Device 1 Loop 1 Detnov 1 | ||
+ | detnov2.l2.d1 = Device 1 Loop 1 Detnov 2 | ||
+ | </pre> | ||
== Datapoints == | == Datapoints == | ||
Line 363: | Line 387: | ||
|- | |- | ||
+ | |rowspan="2" |global.relay.fault | ||
+ | |0 | ||
+ | |R | ||
+ | |global relay fault is off | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |global relay fault is on | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |global.relay.alarm | ||
+ | |0 | ||
+ | |R | ||
+ | |global relay alarm is off | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |global relay alarm is on | ||
+ | |- | ||
+ | |||
+ | |global.faults.counter | ||
+ | |<n> | ||
+ | |R | ||
+ | |n is the number of global faults | ||
+ | |- | ||
+ | |||
+ | |global.alarms.counter | ||
+ | |<n> | ||
+ | |R | ||
+ | |n is the number of global alarms | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |loop.<n>.active | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> is not active | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> is active | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |loop.<n>.shortopen.fault | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> is not in short or open fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> is in short or open fault | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |loop.<n>.comm.fault | ||
+ | |0 | ||
+ | |R | ||
+ | |loop <n> is not in communication fault | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |loop <n> is in communication fault | ||
+ | |- | ||
+ | |||
+ | |||
+ | |rowspan="2" |z<n>.fault | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is not in fault. n = 1..250 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is in fault | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.alarm | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is not in alarm. n = 1..250 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is in alarm | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.normal | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is not normal status. n = 1..250 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is in normal status | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.disabled | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is not disabled. n = 1..250 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is disabled | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |z<n>.test | ||
+ | |0 | ||
+ | |R | ||
+ | |zone <n> is not in test. n = 1..250 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is in test | ||
+ | |- | ||
+ | |||
+ | |z<n>.name | ||
+ | |1 | ||
+ | |R | ||
+ | |name assigned to the zone <n> | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<k>.d<n>.fault | ||
+ | |0 | ||
+ | |R | ||
+ | |device <n> is not in fault. n = 1..250, k = 1..8 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |zone <n> is in fault | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<k>.d<n>.alarm | ||
+ | |0 | ||
+ | |R | ||
+ | |device <n> of loop <k> is not in alarm. n = 1..250, k = 1..8 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <n> of loop <k> is in alarm | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<k>.d<n>.normal | ||
+ | |0 | ||
+ | |R | ||
+ | |device <n> of loop <k> is not normal status. n = 1..250, k = 1..8 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <n> of loop <k> is in normal status | ||
+ | |- | ||
+ | |rowspan="2" |l<k>.d<n>.disabled | ||
+ | |0 | ||
+ | |R | ||
+ | |device <n> of loop <k> is not disabled. n = 1..250, k = 1..8 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <n> of loop <k> is disabled | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<k>.d<n>.test | ||
+ | |0 | ||
+ | |R | ||
+ | |device <n> of loop <k> is not in test. n = 1..250, k = 1..8 | ||
+ | |- | ||
+ | |1 | ||
+ | |R | ||
+ | |device <n> of loop <k> is in test | ||
+ | |- | ||
+ | |||
+ | |rowspan="2" |l<k>.d<n> | ||
+ | |enable | ||
+ | |W | ||
+ | |device <n> of loop <k> is activated | ||
+ | |- | ||
+ | |disable | ||
+ | |W | ||
+ | |device <n> of loop <k> is disabled | ||
+ | |- | ||
+ | |||
+ | |l<k>.d<n>.name | ||
+ | |1 | ||
+ | |R | ||
+ | |name assigned to the device <n> of loop <k> | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === UISET Actions === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !ID | ||
+ | !Attribute | ||
+ | !colspan="2"|Set to | ||
+ | |||
+ | |- | ||
+ | |||
+ | |z<n>.name | ||
+ | |value | ||
+ | |colspan="2"|name assigned to zone <n> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |l<k>.d<n>.name | ||
+ | |value | ||
+ | |colspan="2"|name assigned to device <n> of loop <k> | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|connection.label | ||
+ | |rowspan="2"|visible | ||
+ | |true | ||
+ | |when datapoint connection = offline | ||
+ | |- | ||
+ | |false | ||
+ | |when datapoint connection = online | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|<datapoint_id>.1.label | ||
+ | |rowspan="2"|visible | ||
+ | |true | ||
+ | |when datapoint with ID <datapoint_id> has value '1' | ||
+ | |- | ||
+ | |false | ||
+ | |when datapoint with ID <datapoint_id> has value '0' | ||
+ | |||
+ | |- | ||
+ | |||
+ | |rowspan="2"|<datapoint_id>.0.label | ||
+ | |rowspan="2"|visible | ||
+ | |true | ||
+ | |when datapoint with ID <datapoint_id> has value '0' | ||
+ | |- | ||
+ | |false | ||
+ | |when datapoint with ID <datapoint_id> has value '1' | ||
|} | |} | ||
Line 370: | Line 627: | ||
=== 3.8.0 === | === 3.8.0 === | ||
*initial release | *initial release | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ''Detnov are registered trademarks of Detnov.'' |
Latest revision as of 11:48, 8 March 2021
DETNOV are multi-area fire panels. The integration with HSYCO can be accomplished via a standard Modbus TCP/IP connection. This I/O server was developed following the MODBUS documentation MODBUS REGISTERS FOR DETNOV ADDRESSABLE SYSTEM VERSION 1.11 ENG
This driver has been tested on DETNOV CAD-150-2 panel. (Should be compatible with CAD 150-1, CAD 150-2, CAD 150-8, CAD 150-8+, CAD 150-4)
Contents
Communication
DETNOV panels can be connected via ethernet. A valid IP address must be assigned to the panel. MODBUS PROTOCOL must be enabled. Please refer to the manual for detailed instruction about MODBUS protocol configuration.
HSYCO Configuration
Add a DETNOV I/O Server in the I/O Servers section of the Settings and set its parameters:
Communication
- Address: IP address of the DETNOV panel
- Port: TCP/IP port for MODBUS communication (default 502)
High Availability
- Shutdown when inactive: defaults to false.
Options
ID | Default | Values | Description |
---|---|---|---|
gui | true | true | enable support for the UI object, UISET actions and USER commands |
false | disable UI support | ||
startupevents | false | true | generate IO events also during the driver’s start-up phase |
false | start generating events only after HSYCO is aligned with the current status of the system | ||
unitid | 1 | > 0 | MODBUS unit ID of the DETNOV panel |
pollingtime | 3000 | n >= 3000 | the data polling interval, in milliseconds. |
detnov.ini
The detnov.ini file is a specific configuration file located in the root directory.
This file is required to provide the I/O Server the name assignment of zones and devices.
This is an example of the file content:
detnov.z1 = Zone 1 detnov.l1.d1 = Device 1 Loop 1 detnov.l8.d4 = Device 8 Loop 4
Where "detnov" is the I/O Server id of the Detnov I/O Server
If you have multiples Detnov I/O Servers:
detnov1.z1 = Zone 1 Detnov 1 detnov2.z1 = Zone 2 Detnov 2 detnov1.l1.d1 = Device 1 Loop 1 Detnov 1 detnov2.l2.d1 = Device 1 Loop 1 Detnov 2
Datapoints
ID | Value | R/W | Description |
---|---|---|---|
connection | online | R | connection established |
offline | R | HSYCO can't connect to the panel | |
reset | 1 | W | panel reset |
mute | 1 | W | panel mute |
sounderson | 1 | W | enable sounders |
soundersoff | 1 | W | disable sounders |
info.modbus.status | 0 | R | modbus is disconnected |
1 | R | modbus slave is connected | |
info.panel.type | <n> | R | n=1,2 > CAD 150-1, CAD 150-2 n=4,8 > CAD 150-8, CAD 150-8+, CAD 150-4 |
info.panel.version | <n> | R | n is the version of the panel |
info.panel.network.version | <n> | R | n is the network version of the panel |
info.panel.modbus.version | <n> | R | n is the modbus version of the panel |
global.mute | 0 | R | mute is not active |
1 | R | mute is active | |
global.sounders | 0 | R | sounders are not active |
1 | R | sounders are active | |
global.sounders.silenced | 0 | R | sounders are not silenced |
1 | R | sounders are silenced | |
intest.zone.exists | 0 | R | at least one zone is in test |
1 | R | no zones are in test | |
disabled.zone.exists | 0 | R | at least one zone is disabled |
1 | R | no zones are disabled | |
output.disabled | 0 | R | at least one output is disabled |
1 | R | no outputs are disabled | |
sounders.disabled | 0 | R | at least one sounder is disabled |
1 | R | no sounders are disabled | |
sounders.delayed | 0 | R | at least one sounder is delayed |
1 | R | no sounders are delayed | |
global.panel.fault | 0 | R | panel has no fault |
1 | R | there is at least one fault in the panel | |
global.power.fault | 0 | R | panel has no power fault |
1 | R | panel has a power fault | |
global.pcb.fault | 0 | R | panel has no pcb fault |
1 | R | panel has a pcb fault | |
global.loops.fault | 0 | R | the panel has no loop fault |
1 | R | panel has a loop fault | |
global.device.fault | 0 | R | panel has no device fault |
1 | R | panel has a device fault | |
global.alarm | 0 | R | the panel is not in alarm |
1 | R | panel is in alarm | |
global.alarm.from.network | 0 | R | panel is not in network alarm |
1 | R | panel is in network alarm | |
global.mcp.alarm | 0 | R | panel has no mcp alarm |
1 | R | panel has a mcp alarm | |
global.main.supply.fault | 0 | R | panel has no main supply fault |
1 | R | panel has a main supply fault | |
global.ground.fault | 0 | R | panel has no global ground fault |
1 | R | panel has a global ground fault | |
global.sounder<n>.short.cut | 0 | R | the sounder <n> is not in short cut |
1 | R | the sounder <n> is in short cut | |
global.sounder<n>.quiescent | 0 | R | the sounder <n> is not quiescent |
1 | R | the sounder <n> is quiescent | |
global.sounder<n>.short.fault | 0 | R | the sounder <n> is not in short fault |
1 | R | the sounder <n> is in short fault | |
global.sounder<n>.sounders.on | 0 | R | the sounder <n> is not active |
1 | R | the sounder <n> is active | |
global.relay.fault | 0 | R | global relay fault is off |
1 | R | global relay fault is on | |
global.relay.alarm | 0 | R | global relay alarm is off |
1 | R | global relay alarm is on | |
global.faults.counter | <n> | R | n is the number of global faults |
global.alarms.counter | <n> | R | n is the number of global alarms |
loop.<n>.active | 0 | R | loop <n> is not active |
1 | R | loop <n> is active | |
loop.<n>.shortopen.fault | 0 | R | loop <n> is not in short or open fault |
1 | R | loop <n> is in short or open fault | |
loop.<n>.comm.fault | 0 | R | loop <n> is not in communication fault |
1 | R | loop <n> is in communication fault | |
z<n>.fault | 0 | R | zone <n> is not in fault. n = 1..250 |
1 | R | zone <n> is in fault | |
z<n>.alarm | 0 | R | zone <n> is not in alarm. n = 1..250 |
1 | R | zone <n> is in alarm | |
z<n>.normal | 0 | R | zone <n> is not normal status. n = 1..250 |
1 | R | zone <n> is in normal status | |
z<n>.disabled | 0 | R | zone <n> is not disabled. n = 1..250 |
1 | R | zone <n> is disabled | |
z<n>.test | 0 | R | zone <n> is not in test. n = 1..250 |
1 | R | zone <n> is in test | |
z<n>.name | 1 | R | name assigned to the zone <n> |
l<k>.d<n>.fault | 0 | R | device <n> is not in fault. n = 1..250, k = 1..8 |
1 | R | zone <n> is in fault | |
l<k>.d<n>.alarm | 0 | R | device <n> of loop <k> is not in alarm. n = 1..250, k = 1..8 |
1 | R | device <n> of loop <k> is in alarm | |
l<k>.d<n>.normal | 0 | R | device <n> of loop <k> is not normal status. n = 1..250, k = 1..8 |
1 | R | device <n> of loop <k> is in normal status | |
l<k>.d<n>.disabled | 0 | R | device <n> of loop <k> is not disabled. n = 1..250, k = 1..8 |
1 | R | device <n> of loop <k> is disabled | |
l<k>.d<n>.test | 0 | R | device <n> of loop <k> is not in test. n = 1..250, k = 1..8 |
1 | R | device <n> of loop <k> is in test | |
l<k>.d<n> | enable | W | device <n> of loop <k> is activated |
disable | W | device <n> of loop <k> is disabled | |
l<k>.d<n>.name | 1 | R | name assigned to the device <n> of loop <k> |
UISET Actions
ID | Attribute | Set to | |
---|---|---|---|
z<n>.name | value | name assigned to zone <n> | |
l<k>.d<n>.name | value | name assigned to device <n> of loop <k> | |
connection.label | visible | true | when datapoint connection = offline |
false | when datapoint connection = online | ||
<datapoint_id>.1.label | visible | true | when datapoint with ID <datapoint_id> has value '1' |
false | when datapoint with ID <datapoint_id> has value '0' | ||
<datapoint_id>.0.label | visible | true | when datapoint with ID <datapoint_id> has value '0' |
false | when datapoint with ID <datapoint_id> has value '1' |
Release Notes
3.8.0
- initial release
Detnov are registered trademarks of Detnov.