Bvms - Opc Server
Bvms - Opc Server
Table of contents
1 Introduction 4
2 Bosch VMS OPC Server 6
2.1 OPC Server events 7
2.2 OPC Server commands 9
3 Installation 11
3.1 Bosch VMS Server 11
3.2 Bosch VMS Operator Client and 3rd party client 11
4 Bosch VMS Proxy 13
4.1 Bosch VMS Proxy commands 13
5 Configuration files 15
6 Example for 3rd party client (HTML file) 18
1 Introduction
Notice!
Please note, that OPC is not the preferred solution for connecting Bosch VMS to 3rd party
components. BU-ESS/MKP rather recommends using our existing .NET SDKs.
This document describes the different components that Bosch Video Management System
offers to to establish a connection between Bosch Video Management System and a 3rd party
management system. This description helps you in writing your own commands for controlling
Bosch VMS from inside your management system.
List of used abbreviations:
– AE: Alarms and Events
– Bosch VMS: Bosch Video Management System
– DA: Data Access
– HTML: Hypertext Markup Language
– I/O: Input/Output
– OPC: OLE for Process Control (OLE: Object Linking and Embedding)
– XML: Extensible Markup Language
For details regarding Bosch VMS OPC Server, see Bosch VMS OPC Server, page 6.
For details regarding Bosch VMS Proxy, see Bosch VMS Proxy, page 13.
Installation, page 11 describes how to install a connection between Bosch VMS and a 3rd
party management system.
The files needed by OPC Server and Bosch VMS Proxy, are described in Configuration files,
page 15.
Example for 3rd party client (HTML file), page 18 gives an example for a 3rd party application
in form of an HTML file.
Components
The following software components are used to realize a connection:
– Bosch VMS OPC Server
Forwards events from Bosch VMS to the 3rd party software and forwards commands from
3rd party software to Bosch VMS.
It is installed but not automatically registered in Windows where Bosch VMS Management
Server software is installed.
– Bosch VMS Proxy
Forwards events from Bosch VMS to the 3rd party software and forwards commands from
3rd party software to Bosch VMS.
It is installed on each computer where Bosch VMS Operator Client and/or Bosch VMS
Management Server software is installed.
– 3rd party application
As an example we provide an HTML page with code (JScript) to send commands like
Show Live or Show Playback to Bosch VMS Proxy. This HTML page can be integrated in a
3rd party management system.
It is installed on a computer where Bosch VMS Operator Client software is installed.
You can use Softing OPC Toolbox as a 3rd party application on a Bosch VMS Operator
Client computer or on a standalone computer to send commands like open/close a relais
to the Bosch VMS OPC Server.
The following image shows the connection between a 3rd party application and Bosch VMS
Server via OPC Server and Bosch VMS Proxy.
Bosch VMS
Proxy
Control*
HTML
LAN
Events**
OPC OPC Bosch VMS
Client Server Proxy
Control***
Figure 1.1: Connection 3rd party application – Bosch VMS Management Server
See Bosch VMS Proxy commands, page 13 for commands (*) that you can send from an
application on 3rd party side to Bosch VMS Operator Client.
The connection between a 3rd party application and Bosch VMS Operator Client does not
need OPC Server. The commands being sent by the 3rd party application can be processed by
an HTML file with code. For an example for such an HTML file, see Example for 3rd party client
(HTML file), page 18.
See OPC Server events, page 7 for events (**) that are sent from 3rd party server to
Bosch VMS OPC Server.
See OPC Server commands, page 9 for commands (***) that you can send from 3rd party
server to Bosch VMS OPC Server.
Camera / Brightness
Camera / Noise
Camera / Motion
Relay
Input
Virtual Input
Encoder
Bosch.Vms.Server.EncoderDevice EncoderState On 25
Decoder
Bosch.Vms.Server.Decoder DecoderState On 25
Camera Start Recording Camera as GUID Triggers manual recording start for a
specific camera
Start Pan Left Camera as GUID Pans a PTZ camera to the left.
Start Pan Right Camera as GUID Pans a PTZ camera to the right.
Stop PTZ Camera as GUID Stops the current PTZ action, whether it
was panning, tilting or zooming
Virtual Input Open Virtual Input as GUID Opens the virtual input
3 Installation
This chapter describes the steps required to install the connection between a 3rd party
system and Bosch VMS.
Caution!
Install 3rd party server and Bosch VMS Management Server on separate computers.
Install Management Server and Operator Client on separate computers. If not, the connection
does not work.
Do not use No Touch Deployment for installing a new version of Bosch VMS Operator Client.
Install a new version manually.
5 Configuration files
This chapter describes all configuration files that are required for the connection of the 3rd
party system and Bosch VMS.
To initialize the OPC Server correctly, its configuration is built during the startup of the server
by reading BVMSConfig.xml. and BVMSCommand.xml.
To obtain BVMSConfig.xml, you export this file from within Bosch VMS Configuration Client
after each configuration change.
Note: Bosch VMS OPC Server discards state changes from unknown addresses and ignores
commands on unknown addresses (filtering via GUID).
BVMSConfig.xml
To create BVMSConfig.xml use Bosch VMS Configuration Client (see Bosch VMS Server, page
11). This file lists all Bosch VMS devices with their name and their unique identifier. This file is
used as input for the OPC server.
Structure of a configuration file:
<BVMSServer xmlns:bvms="file:///S3K/BVMSOpcServer">
<bvms:Input name="Input 1" id="ID as GUID"/>
……
<bvms:Input name="Input N" id=" ID as GUID " />
<bvms:VirtualInput name="Virtual Input 1" id=" ID as GUID " />
……
<bvms:VirtualInput name="Virtual Input N" id=" ID as GUID " />
<bvms:Camera name="Camera 1" id=" ID as GUID "/>
……
<bvms:Camera name="Camera N" id=" ID as GUID "/>
<bvms:Relay name="Relais 1" id=" ID as GUID "/>
……
<bvms:Relay name="Relais N" id=" ID as GUID " />
<bvms:Decoder name="Decoder 1" id=" ID as GUID "/>
……
<bvms:Decoder name="Decoder N" id=" ID as GUID "/>
<bvms:Encoder name="Encoder 1" id=" ID as GUID "/>
……
<bvms:Encoder name="Encoder N" id=" ID as GUID "/>
</Bosch VMSServer>
Descriptions:
– Camera: Data of a Camera item (name and identifier of the component).
– Relay: Data of a Relay item (name and identifier of the component).
– Input: Data of a Detector item (name and identifier of the component).
– VirtualInput: Data of a Detector item (name and identifier of the component).
– Decoder: Data of a Decoder item (name and identifier of the component).
– Encoder: Data of an Encoder item (name and identifier of the component).
Description of the attributes:
– Name: name of the component
– id: unique 128 bit key of the component (identifier realized as GUID)
BVMSCommand.xml
The Bosch VMS Proxy command file is automatically installed on the Bosch VMS server
machine (for example, in <Installation directory>\Bosch\VMS\AppData\BVMSCommand.xml).
The definition of an item’s command is stored in BVMSCommand.xml. The OPC server also
reads these data on startup and depending on the item type (camera, relay, etc.) these data is
stored in the properties of the CMD item. Additionally all command items have an attribute id
as GUID, which identifies a relay, virtual input, or camera.
A possible structure of the file can look like this:
<BVMSCommands xmlns:nsPV="file:///S3K/Proxyverwalter">
<nsPV:Camera>
<nsPV:Commands>
<nsPV:Command ID=”guid” .../>
</nsPV:Commands>
</nsPV:Camera>
<nsPV:VirtualInput>
<nsPV:Commands >
<nsPV:Command ID=”guid” .../>
</nsPV:Commands>
</nsPV:VirtualInput>
<nsPV:Relay>
<nsPV:Commands >
<nsPV:Command ID=”guid” .../>
</nsPV:Commands>
</nsPV:Output>
</Bosch VMSCommands>
Descriptions:
– Camera: definition of the commands for the item type Camera
– VirtualInput: definition of the commands for the item type Virtual Input
– Relay: definition of the commands for the item type Relay
An example for displaying a camera on a monitor can look like this:
<nsPV:Commands>
<nsPV:Command Name="ShowLive" OPCServerKlasse="OPCBVMSOpcServer"
Anzeigename="Show Camera" Description="Display images on a monitor" ID=“id as GUID“>
</nsPV:Command>
</nsPV:Commands>
BVMSOpcServer.xml
The OPC Server reads this file during initialization. If the file is not present, the OPC Server
uses default values which are displayed in the example below.
Example of a file:
<BVMSOpcServer debug="0" disconnectionTimeout="0"/>
The file evaluates two values: debug and disconnectionTimeout.
The following values are possible for debug: 1 or 0. If debug = 1, OPC Server logs all
notifications coming from Bosch VMS in %CommonApplicationData%\Bosch\VMS\Log
\BVMSOpcServer.xml
On an English Windows OS, %CommonApplicationData% usually is C:\Documents and
Settings\All Users\Application Data
disconnectionTimeout specifies the number of seconds to wait for the next update of the
Error item (Malfunction), when the connection to Bosch VMS gets lost. disconnectionTimeout
is only required when the connection to Bosch VMS is lost very often for a short time (< 20 s).
BVMSOpcServer_Commands.log contains commands received from BIS Server to send to the
Bosch VMS Proxy.