Difference between revisions of "Detnov"

From HSYCO
Jump to navigation Jump to search
 
(19 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 124: Line 148:
 
|-
 
|-
  
|rowspan="2" |global.test
+
|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
 +
|-
 +
 
 +
 
 +
|rowspan="2" |global.mute
 +
|0
 +
|R
 +
|mute is not active
 +
|-
 +
|1
 +
|R
 +
|mute is active
 +
|-
 +
 
 +
|rowspan="2" |global.sounders
 +
|0
 +
|R
 +
|sounders are not active
 +
|-
 +
|1
 +
|R
 +
|sounders are active
 +
|-
 +
 
 +
|rowspan="2" |global.sounders.silenced
 +
|0
 +
|R
 +
|sounders are not silenced
 +
|-
 +
|1
 +
|R
 +
|sounders are silenced
 +
|-
 +
 
 +
|rowspan="2" |intest.zone.exists
 +
|0
 +
|R
 +
|at least one zone is in test
 +
|-
 +
|1
 +
|R
 +
|no zones are in test
 +
|-
 +
 
 +
|rowspan="2" |disabled.zone.exists
 +
|0
 +
|R
 +
|at least one zone is disabled
 +
|-
 +
|1
 +
|R
 +
|no zones are disabled
 +
|-
 +
 
 +
|rowspan="2" |output.disabled
 +
|0
 +
|R
 +
|at least one output is disabled
 +
|-
 +
|1
 +
|R
 +
|no outputs are disabled
 +
|-
 +
 
 +
|rowspan="2" |sounders.disabled
 +
|0
 +
|R
 +
|at least one sounder is disabled
 +
|-
 +
|1
 +
|R
 +
|no sounders are disabled
 +
|-
 +
 
 +
|rowspan="2" |sounders.delayed
 +
|0
 +
|R
 +
|at least one sounder is delayed
 +
|-
 +
|1
 +
|R
 +
|no sounders are delayed
 +
|-
 +
 
 +
|rowspan="2" |global.panel.fault
 +
|0
 +
|R
 +
|panel has no fault
 +
|-
 +
|1
 +
|R
 +
|there is at least one fault in the panel
 +
|-
 +
 
 +
|rowspan="2" |global.power.fault
 +
|0
 +
|R
 +
|panel has no power fault
 +
|-
 +
|1
 +
|R
 +
|panel has a power fault
 +
|-
 +
 
 +
|rowspan="2" |global.pcb.fault
 +
|0
 +
|R
 +
|panel has no pcb fault
 +
|-
 +
|1
 +
|R
 +
|panel has a pcb fault
 +
|-
 +
 
 +
|rowspan="2" |global.loops.fault
 +
|0
 +
|R
 +
|the panel has no loop fault
 +
|-
 +
|1
 +
|R
 +
|panel has a loop fault
 +
|-
 +
 
 +
|rowspan="2" |global.device.fault
 +
|0
 +
|R
 +
|panel has no device fault
 +
|-
 +
|1
 +
|R
 +
|panel has a device fault
 +
|-
 +
 
 +
|rowspan="2" |global.alarm
 +
|0
 +
|R
 +
|the panel is not in alarm
 +
|-
 +
|1
 +
|R
 +
|panel is in alarm
 +
|-
 +
 
 +
|rowspan="2" |global.alarm.from.network
 +
|0
 +
|R
 +
|panel is not in network alarm
 +
|-
 +
|1
 +
|R
 +
|panel is in network alarm
 +
|-
 +
 
 +
|rowspan="2" |global.mcp.alarm
 +
|0
 +
|R
 +
|panel has no mcp alarm
 +
|-
 +
|1
 +
|R
 +
|panel has a mcp alarm
 +
|-
 +
 
 +
|rowspan="2" |global.main.supply.fault
 +
|0
 +
|R
 +
|panel has no main supply fault
 +
|-
 +
|1
 +
|R
 +
|panel has a main supply fault
 +
|-
 +
 
 +
|rowspan="2" |global.ground.fault
 +
|0
 +
|R
 +
|panel has no global ground fault
 +
|-
 +
|1
 +
|R
 +
|panel has a global ground fault
 +
|-
 +
 
 +
|rowspan="2" |global.sounder<n>.short.cut
 +
|0
 +
|R
 +
|the sounder <n> is not in short cut
 +
|-
 +
|1
 +
|R
 +
|the sounder <n> is in short cut
 +
|-
 +
 
 +
|rowspan="2" |global.sounder<n>.quiescent
 +
|0
 +
|R
 +
|the sounder <n> is not quiescent
 +
|-
 +
|1
 +
|R
 +
|the sounder <n> is quiescent
 +
|-
 +
 
 +
|rowspan="2" |global.sounder<n>.short.fault
 +
|0
 +
|R
 +
|the sounder <n> is not in short fault
 +
|-
 +
|1
 +
|R
 +
|the sounder <n> is in short fault
 +
|-
 +
 
 +
|rowspan="2" |global.sounder<n>.sounders.on
 +
|0
 +
|R
 +
|the sounder <n> is not active
 +
|-
 +
|1
 +
|R
 +
|the sounder <n> is active
 +
|-
 +
 
 +
|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
 
|0
 
|R
 
|R
|panel in not in test mode
+
|zone <n> is not normal status. n = 1..250
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|panel is in test mode
+
|zone <n> is in normal status
 
|-
 
|-
  
|rowspan="2" |global.daynight
+
|rowspan="2" |z<n>.disabled
 
|0
 
|0
 
|R
 
|R
|panel in day mode
+
|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
 
|1
 
|R
 
|R
|panel is night mode
+
|name assigned to the zone <n>
 
|-
 
|-
  
|rowspan="2" |global.mcpalarm
+
|rowspan="2" |l<k>.d<n>.fault
 
|0
 
|0
 
|R
 
|R
|mcp alarm off
+
|device <n> is not in fault. n = 1..250, k = 1..8
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|mcp alarm on
+
|zone <n> is in fault
 
|-
 
|-
  
|rowspan="2" |global.sounder.delay.enabled
+
|rowspan="2" |l<k>.d<n>.alarm
 
|0
 
|0
 
|R
 
|R
|sounders delay disabled
+
|device <n> of loop <k> is not in alarm. n = 1..250, k = 1..8
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|sounders delay enabled
+
|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" |global.sounder.delay.in.progress
+
|rowspan="2" |l<k>.d<n>.disabled
 
|0
 
|0
 
|R
 
|R
|sounders delay not in progress
+
|device <n> of loop <k> is not disabled. n = 1..250, k = 1..8
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|sounders delay in progress
+
|device <n> of loop <k> is disabled
 
|-
 
|-
  
|rowspan="2" |global.sounder.outputs.activated
+
|rowspan="2" |l<k>.d<n>.test
 
|0
 
|0
 
|R
 
|R
|sounders outputs not active
+
|device <n> of loop <k> is not in test. n = 1..250, k = 1..8
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|sounders outputs active
+
|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 190: 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)

IO Server Detnov Panel.jpg

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.