Difference between revisions of "Siemens Vanderbilt Edp"

From HSYCO
Jump to navigation Jump to search
 
(51 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Siemens / Vanderbilt is a family of security panels compatible with the control protocol EDP. This driver has been developed following the EDP protocol specification rev 2.2, 2012-11-12  
+
Siemens / Vanderbilt is a family of security panels compatible with the control protocol EDP (Vanderbilt/Siemens series 4000, 5000 and 6000) with firmware >= 2.3. This driver has been developed following the EDP protocol specification rev 2.2, 2012-11-12  
  
 
The integration with HSYCO can be accomplished with a TCP/IP network connection.
 
The integration with HSYCO can be accomplished with a TCP/IP network connection.
Line 5: Line 5:
 
== Siemens / Vanderbilt Configuration ==
 
== Siemens / Vanderbilt Configuration ==
  
Login in the panel web configuration page using a Engineer account.
+
Login in the panel web configuration page using a Full Engineer account.
  
 
You should see something like this in the upper right corner of the web page:
 
You should see something like this in the upper right corner of the web page:
Line 27: Line 27:
  
 
The "Polling Time" is a very crucial parameter. In the event receiver configuration 8 seconds should be fine because every change of status is sent in asynchronous way by the panel and the polling time only represent the interval between one polling ack and the next one. In the command receiver configuration set 2 seconds, this time, by empirical methods, it's the best one to ensure the connection stability.
 
The "Polling Time" is a very crucial parameter. In the event receiver configuration 8 seconds should be fine because every change of status is sent in asynchronous way by the panel and the polling time only represent the interval between one polling ack and the next one. In the command receiver configuration set 2 seconds, this time, by empirical methods, it's the best one to ensure the connection stability.
 +
 +
In Communication > Reporting > EDP > Settings this is the suggested configuration:
 +
 +
[[File:vanderbilt05.png|700px]]
 +
 +
At the end of the configuration process switch from Engineer user to Soft Engineer mode.
 +
 +
[[File:vanderbilt06.png|250px]]
  
 
== HSYCO Configuration ==
 
== HSYCO Configuration ==
Add a SIEMENS EDP TCP I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
+
Add a SIEMENSEDP I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
  
 
=== Communication ===
 
=== Communication ===
Line 92: Line 100:
 
|8000
 
|8000
 
|number
 
|number
|the event receiver polling time in ms
+
|the event receiver polling time in ms. It must be equal to the value set on the Siemens Vanderbilt device as "Polling interval" parameter.
 
|-
 
|-
  
Line 98: Line 106:
 
|2000
 
|2000
 
|number
 
|number
|the command receiver polling time in ms
+
|the command receiver polling time in ms. It must be equal to the value set on the Siemens Vanderbilt device as "Polling interval" parameter.
 
|-
 
|-
  
Line 128: Line 136:
 
|-
 
|-
  
|rowspan="1"|last.message.frame
+
|rowspan="2"|areas.armed
 +
|1
 +
|R
 +
|at least one area has mode equal to fullset, part_A or part_B
 +
|-
 +
|0
 +
|R
 +
|no area has mode equal to fullset, part_a or part_b
 +
|-
 +
 
 +
|rowspan="1"|area.<n>.mode.cmd.unset
 +
|1
 +
|W
 +
|disarm area <n>
 +
|-
 +
 
 +
|rowspan="1"|area.<n>.mode.cmd.part.set.a
 +
|1
 +
|W
 +
|partially arm area <n>, partition a
 +
|-
 +
 
 +
|rowspan="1"|area.<n>.mode.cmd.part.set.b
 +
|1
 +
|W
 +
|partially arm area <n>, partition b
 +
|-
 +
 
 +
|rowspan="1"|area.<n>.mode.cmd.fullset
 +
|1
 +
|W
 +
|full arm area <n>
 +
|-
 +
 
 +
|rowspan="4"|area.<n>.mode
 +
|unset
 +
|R
 +
|area <n> is disarmed
 +
|-
 +
|part_a
 +
|R
 +
|area <n>, partition a is armed
 +
|-
 +
|part_b
 +
|R
 +
|area <n>, partition b is armed
 +
|-
 +
|fullset
 +
|R
 +
|area <n>, area is full armed
 +
|-
 +
 
 +
|rowspan="1"|area.<n>.name
 
|<text>
 
|<text>
 
|R
 
|R
|last message frame (hex) received from the panel
+
|name assigned to area <n>
 
|-
 
|-
  
|rowspan="2"|a<n>.mode.cmd.unset
+
|rowspan="2"|zones.inhibited
 
|1
 
|1
 
|R
 
|R
|area is disarmed
+
|at least one zone is inhibited
 
|-
 
|-
 
|0
 
|0
|RW
+
|R
|area is armed
+
|no zone is inhibited
 
|-
 
|-
  
 +
|rowspan="2"|zones.isolated
 +
|1
 +
|R
 +
|at least one zone is isolated
 +
|-
 +
|0
 +
|R
 +
|no zone is isolated
 +
|-
  
 +
|rowspan="2"|zones.alarmed
 +
|1
 +
|R
 +
|at least one zone is alarmed
 +
|-
 +
|0
 +
|R
 +
|no zone is alarmed
 +
|-
  
 +
|rowspan="2"|zones.shorted
 +
|1
 +
|R
 +
|at least one zone is shorted
 +
|-
 +
|0
 +
|R
 +
|no zone is shorted
 +
|-
 +
 +
|rowspan="2"|zones.offline
 +
|1
 +
|R
 +
|at least one zone is offline
 +
|-
 +
|0
 +
|R
 +
|no zone is offline
 +
|-
 +
 +
|rowspan="2"|zone.<n>.mode.cmd.isolate
 +
|1
 +
|W
 +
|isolate zone <n>
 +
|-
 +
|0
 +
|W
 +
|de-isolate zone <n>
 +
|-
 +
 +
|rowspan="2"|zone.<n>.mode.cmd.inhibit
 +
|1
 +
|W
 +
|inhibit zone <n>
 +
|-
 +
|0
 +
|W
 +
|disinhibit zone <n>
 +
|-
 +
 +
|rowspan="1"|zone.<n>.name
 +
|<text>
 +
|R
 +
|name assigned to zone <n>
 +
|-
 +
 +
|rowspan="18"|zone.<n>.type
 +
|alarm
 +
|R
 +
|zone <n> type is ALARM
 +
|-
 +
|entryexit
 +
|R
 +
|zone <n> type is ENTRY EXIT
 +
|-
 +
|fire
 +
|R
 +
|zone <n> type is FIRE
 +
|-
 +
|firex
 +
|R
 +
|zone <n> type is FIREX
 +
|-
 +
|line
 +
|R
 +
|zone <n> type is LINE
 +
|-
 +
|panic
 +
|R
 +
|zone <n> type PANIC
 +
|-
 +
|holdup
 +
|R
 +
|zone <n> type HOLDUP
 +
|-
 +
|tamper
 +
|R
 +
|zone <n> type is TAMPER
 +
|-
 +
|fault
 +
|R
 +
|zone <n> type is FAULT
 +
|-
 +
|fault_holdup
 +
|R
 +
|zone <n> type is FAULT HOLDUP
 +
|-
 +
|fault_warning
 +
|R
 +
|zone <n> type is WARNING
 +
|-
 +
|tech
 +
|R
 +
|zone <n> type is TECH
 +
|-
 +
|medic
 +
|R
 +
|zone <n> type MEDIC
 +
|-
 +
|keyarm
 +
|R
 +
|zone <n> type is KEYARM
 +
|-
 +
|shunt
 +
|R
 +
|zone <n> type is SHUNT
 +
|-
 +
|xshunt
 +
|R
 +
|zone <n> type is XSHUNT
 +
|-
 +
|locksup
 +
|R
 +
|zone <n> type is LOCKSUP
 +
|-
 +
|seismic
 +
|R
 +
|zone <n> type is SEISMIC
 +
|-
 +
 +
|rowspan="11"|zone.<n>.state
 +
|isolate
 +
|R
 +
|zone <n> is ISOLATED
 +
|-
 +
|inhibit
 +
|R
 +
|zone <n> is INHIBIT
 +
|-
 +
|soak
 +
|R
 +
|zone <n> is SOAK
 +
|-
 +
|offline
 +
|R
 +
|zone <n> is OFFLINE
 +
|-
 +
|dcsub
 +
|R
 +
|zone <n> is DCSUB
 +
|-
 +
|alarm
 +
|R
 +
|zone <n> is ALARMED
 +
|-
 +
|masked
 +
|R
 +
|zone <n> is MASKED
 +
|-
 +
|closed
 +
|R
 +
|zone <n> is CLOSED
 +
|-
 +
|open
 +
|R
 +
|zone <n> is OPEN
 +
|-
 +
|short
 +
|R
 +
|zone <n> is SHORT CUTTED
 +
|-
 +
|discon
 +
|R
 +
|zone <n> is DISCONNECTED
 +
|-
 +
|}
 +
 +
== UISET Actions ==
 +
 +
{| class="wikitable"
 +
!ID
 +
!Attribute
 +
!colspan="2"|Set to
 +
|-
 +
|log
 +
|value
 +
|colspan="2"|latest security log lines (as many as specified by the 'logsize' option)
 +
|-
 +
|log0
 +
|value
 +
|colspan="2"|latest line of the security log when a new entry is added, set back to blank after a short period
 +
|-
 +
|rowspan="2"|areas.armed
 +
|rowspan="2"|visible
 +
|true
 +
|when at least one datapoint area<n>.mode is equal to fullset or part_a or part_b
 +
|-
 +
|false
 +
|when no datapoint area<n>.mode is equal to fullset or part_a or part_b
 +
|-
 +
|area.<n>.name
 +
|value
 +
|colspan="2"|name assigned to area<n>
 +
|-
 +
|area.<n>.mode
 +
|value
 +
|colspan="2"|area<n> mode value
 +
|-
 +
|rowspan="2"|area<n>.mode.fullset
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint area<n>.mode = fullset
 +
|-
 +
|false
 +
|when datapoint area<n>.mode != fullset
 +
|-
 +
|rowspan="2"|area<n>.mode.unset
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint area<n>.mode = unset
 +
|-
 +
|false
 +
|when datapoint area<n>.mode != unset
 +
|-
 +
|rowspan="2"|area<n>.mode.part.set.a
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint area<n>.mode = part_a
 +
|-
 +
|false
 +
|when datapoint area<n>.mode != part_a
 +
|-
 +
|rowspan="2"|area<n>.mode.part.set.b
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint area<n>.mode = part_b
 +
|-
 +
|false
 +
|when datapoint area<n>.mode != part_b
 +
|-
 +
|rowspan="2"|output<n>.1
 +
|rowspan="2"|visible
 +
|true
 +
|when output<n> has value '1'
 +
|-
 +
|false
 +
|when output<n> has value '0'
 +
|-
 +
|rowspan="2"|output.<n>.0
 +
|rowspan="2"|visible
 +
|true
 +
|when output<n> has value '0'
 +
|-
 +
|false
 +
|when output<n> has value '1'
 +
|-
 +
|rowspan="2"|zones.inhibited
 +
|rowspan="2"|visible
 +
|true
 +
|when at least one datapoint zone<n>.state is equal to inhibit
 +
|-
 +
|false
 +
|when no datapoint zone<n>.state is equal to inhibit
 +
|-
 +
|rowspan="2"|zones.isolated
 +
|rowspan="2"|visible
 +
|true
 +
|when at least one datapoint zone<n>.state is equal to isolate
 +
|-
 +
|false
 +
|when no datapoint zone<n>.state is equal to isolate
 +
|-
 +
|rowspan="2"|zones.shorted
 +
|rowspan="2"|visible
 +
|true
 +
|when at least one datapoint zone<n>.state is equal to short
 +
|-
 +
|false
 +
|when no datapoint zone<n>.state is equal to short
 +
|-
 +
|rowspan="2"|zones.offline
 +
|rowspan="2"|visible
 +
|true
 +
|when at least one datapoint zone<n>.state is equal to offline
 +
|-
 +
|false
 +
|when no datapoint zone<n>.state is equal to offline
 +
|-
 +
|rowspan="2"|zones.alarmed
 +
|rowspan="2"|visible
 +
|true
 +
|when at least one datapoint zone<n>.state is equal to alarm
 +
|-
 +
|false
 +
|when no datapoint zone<n>.state is equal to alarm
 +
|-
 +
|zone.<n>.name
 +
|value
 +
|colspan="2"|name assigned to zone<n>
 +
|-
 +
|zone.<n>.type
 +
|value
 +
|colspan="2"|zone<n> type value
 +
|-
 +
|zone.<n>.state
 +
|value
 +
|colspan="2"|zone<n> state value
 +
|-
 +
|rowspan="2"|zone<n>.state.inhibit
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint zone<n>.state = inhibit
 +
|-
 +
|false
 +
|when datapoint zone<n>.state != inhibit
 +
|-
 +
|rowspan="2"|zone<n>.state.isolate
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint zone<n>.state = isolate
 +
|-
 +
|false
 +
|when datapoint zone<n>.state != isolate
 +
|-
 +
|rowspan="2"|zone<n>.state.open
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint zone<n>.state = open
 +
|-
 +
|false
 +
|when datapoint zone<n>.state != open
 +
|-
 +
|rowspan="2"|zone<n>.state.closed
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint zone<n>.state = closed
 +
|-
 +
|false
 +
|when datapoint zone<n>.state != closed
 
|}
 
|}
 +
 +
== Log Files ==
 +
If a Vanderbilt unit is connected to HSYCO, the security.log file will be written in the same directories as the daily log files and will include the log entries received by the panel.
 +
 +
This file is never overwritten or deleted from HSYCO SERVER.
 +
 +
 +
 +
=== 3.8.0 ===
 +
*initial version release
 +
 +
----
 +
 +
 +
''Vanderbilt is a registered trademark of Vanderbilt Industries''

Latest revision as of 08:35, 18 December 2023

Siemens / Vanderbilt is a family of security panels compatible with the control protocol EDP (Vanderbilt/Siemens series 4000, 5000 and 6000) with firmware >= 2.3. This driver has been developed following the EDP protocol specification rev 2.2, 2012-11-12

The integration with HSYCO can be accomplished with a TCP/IP network connection.

Siemens / Vanderbilt Configuration

Login in the panel web configuration page using a Full Engineer account.

You should see something like this in the upper right corner of the web page:

Vanderbilt01.png

Select "Configuration" then "Reporting" then "EDP". You must configure 2 different receivers, one for the command session, one for the event session.

Vanderbilt02.png

Let's take a look in detail at the configuration of these receivers. The events receiver is configured as "Primary receiver".

Vanderbilt03.png

Unflag "Primary receiver" for the command receiver. The "IP port" parameter must be different from the one of the event receiver. Set the "Receiver Id" to 1.

Vanderbilt04.png

Flag "Always connected" on both the receivers. Select protocol version 2 on both. The "Receiver IP Address" is the IP address of the HSYCO server that you want to communicate with. Set the "Receiver Id" to 2.

The "Polling Time" is a very crucial parameter. In the event receiver configuration 8 seconds should be fine because every change of status is sent in asynchronous way by the panel and the polling time only represent the interval between one polling ack and the next one. In the command receiver configuration set 2 seconds, this time, by empirical methods, it's the best one to ensure the connection stability.

In Communication > Reporting > EDP > Settings this is the suggested configuration:

Vanderbilt05.png

At the end of the configuration process switch from Engineer user to Soft Engineer mode.

Vanderbilt06.png

HSYCO Configuration

Add a SIEMENSEDP I/O Server in the I/O Servers section of the Settings and set its parameters:

Communication

  • IP Address: Leave empty
  • IP Port: Leave empty

High Availability

  • Shutdown when inactive: defaults to true.

Options

ID Default Values Description
eventsport 50000 number the TCP/IP port specified in the event receiver of the panel
commandsport 50001 number the TCP/IP port specified in the command receiver of the panel
eventsaddress 1 number the event receiver id address
commandsaddress 2 number the command receiver id address
startupevents true 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
gui true true generate uisets
false disable uisets
eventspolling 8000 number the event receiver polling time in ms. It must be equal to the value set on the Siemens Vanderbilt device as "Polling interval" parameter.
commandspolling 2000 number the command receiver polling time in ms. It must be equal to the value set on the Siemens Vanderbilt device as "Polling interval" parameter.

Datapoints

ID Value R/W Description
connection online R connection established
offline R connection failed
log0 <text> R latest line of the security log when a new entry is added
areas.armed 1 R at least one area has mode equal to fullset, part_A or part_B
0 R no area has mode equal to fullset, part_a or part_b
area.<n>.mode.cmd.unset 1 W disarm area <n>
area.<n>.mode.cmd.part.set.a 1 W partially arm area <n>, partition a
area.<n>.mode.cmd.part.set.b 1 W partially arm area <n>, partition b
area.<n>.mode.cmd.fullset 1 W full arm area <n>
area.<n>.mode unset R area <n> is disarmed
part_a R area <n>, partition a is armed
part_b R area <n>, partition b is armed
fullset R area <n>, area is full armed
area.<n>.name <text> R name assigned to area <n>
zones.inhibited 1 R at least one zone is inhibited
0 R no zone is inhibited
zones.isolated 1 R at least one zone is isolated
0 R no zone is isolated
zones.alarmed 1 R at least one zone is alarmed
0 R no zone is alarmed
zones.shorted 1 R at least one zone is shorted
0 R no zone is shorted
zones.offline 1 R at least one zone is offline
0 R no zone is offline
zone.<n>.mode.cmd.isolate 1 W isolate zone <n>
0 W de-isolate zone <n>
zone.<n>.mode.cmd.inhibit 1 W inhibit zone <n>
0 W disinhibit zone <n>
zone.<n>.name <text> R name assigned to zone <n>
zone.<n>.type alarm R zone <n> type is ALARM
entryexit R zone <n> type is ENTRY EXIT
fire R zone <n> type is FIRE
firex R zone <n> type is FIREX
line R zone <n> type is LINE
panic R zone <n> type PANIC
holdup R zone <n> type HOLDUP
tamper R zone <n> type is TAMPER
fault R zone <n> type is FAULT
fault_holdup R zone <n> type is FAULT HOLDUP
fault_warning R zone <n> type is WARNING
tech R zone <n> type is TECH
medic R zone <n> type MEDIC
keyarm R zone <n> type is KEYARM
shunt R zone <n> type is SHUNT
xshunt R zone <n> type is XSHUNT
locksup R zone <n> type is LOCKSUP
seismic R zone <n> type is SEISMIC
zone.<n>.state isolate R zone <n> is ISOLATED
inhibit R zone <n> is INHIBIT
soak R zone <n> is SOAK
offline R zone <n> is OFFLINE
dcsub R zone <n> is DCSUB
alarm R zone <n> is ALARMED
masked R zone <n> is MASKED
closed R zone <n> is CLOSED
open R zone <n> is OPEN
short R zone <n> is SHORT CUTTED
discon R zone <n> is DISCONNECTED

UISET Actions

ID Attribute Set to
log value latest security log lines (as many as specified by the 'logsize' option)
log0 value latest line of the security log when a new entry is added, set back to blank after a short period
areas.armed visible true when at least one datapoint area<n>.mode is equal to fullset or part_a or part_b
false when no datapoint area<n>.mode is equal to fullset or part_a or part_b
area.<n>.name value name assigned to area<n>
area.<n>.mode value area<n> mode value
area<n>.mode.fullset visible true when datapoint area<n>.mode = fullset
false when datapoint area<n>.mode != fullset
area<n>.mode.unset visible true when datapoint area<n>.mode = unset
false when datapoint area<n>.mode != unset
area<n>.mode.part.set.a visible true when datapoint area<n>.mode = part_a
false when datapoint area<n>.mode != part_a
area<n>.mode.part.set.b visible true when datapoint area<n>.mode = part_b
false when datapoint area<n>.mode != part_b
output<n>.1 visible true when output<n> has value '1'
false when output<n> has value '0'
output.<n>.0 visible true when output<n> has value '0'
false when output<n> has value '1'
zones.inhibited visible true when at least one datapoint zone<n>.state is equal to inhibit
false when no datapoint zone<n>.state is equal to inhibit
zones.isolated visible true when at least one datapoint zone<n>.state is equal to isolate
false when no datapoint zone<n>.state is equal to isolate
zones.shorted visible true when at least one datapoint zone<n>.state is equal to short
false when no datapoint zone<n>.state is equal to short
zones.offline visible true when at least one datapoint zone<n>.state is equal to offline
false when no datapoint zone<n>.state is equal to offline
zones.alarmed visible true when at least one datapoint zone<n>.state is equal to alarm
false when no datapoint zone<n>.state is equal to alarm
zone.<n>.name value name assigned to zone<n>
zone.<n>.type value zone<n> type value
zone.<n>.state value zone<n> state value
zone<n>.state.inhibit visible true when datapoint zone<n>.state = inhibit
false when datapoint zone<n>.state != inhibit
zone<n>.state.isolate visible true when datapoint zone<n>.state = isolate
false when datapoint zone<n>.state != isolate
zone<n>.state.open visible true when datapoint zone<n>.state = open
false when datapoint zone<n>.state != open
zone<n>.state.closed visible true when datapoint zone<n>.state = closed
false when datapoint zone<n>.state != closed

Log Files

If a Vanderbilt unit is connected to HSYCO, the security.log file will be written in the same directories as the daily log files and will include the log entries received by the panel.

This file is never overwritten or deleted from HSYCO SERVER.


3.8.0

  • initial version release


Vanderbilt is a registered trademark of Vanderbilt Industries