Actions

Difference between revisions of "OPC Server"

From Zenitel Wiki

Line 1: Line 1:
[[Category:AlphaCom E Software]]
+
== Description ==
[[Category:3rd party integration]]
 
[[Wikipedia:OLE_for_process_control|OPC]] is an open standards specification which gives a
 
consistent method of accessing data from to controlling
 
system connected hardware. Hardware, such as the
 
AlphaCom E exchange, presents information about the
 
capabilities and status of its connected intercom stations in a
 
defined manner to any OPC based system management
 
software package. This consistency means that there is no
 
need to write specific interface protocol software for each
 
combination of hardware and management software.
 
Especially in projects where the management software
 
needs to control more than just the intercom exchange this
 
is an enormous saving in cost and time.
 
  
The AlphaCom E exchange communicates to the
+
The AlphaCom OPC[http://en.wikipedia.org/wiki/OLE_for_process_control] Server implements the following OPC standards:
management system that it can report different statuses of
+
• OPC Data Access (OPC DA V2/V3)
its intercom stations as detailed further on. Furthermore it
+
• OPC Alarm & Events (OPC AE V1.1)
lets the management software know that it can accept
 
commands such as calling, cancelling of calls, and many
 
more.
 
  
A typical application is a large building with an AlphaCom E
+
The Server is running on the Microsoft .NET framework and requires .NET 2.0 to be installed on the PC running the server.  
intercom exchange, CCTV, intruder alarm, fire alarm and
 
access control, all connected to an OPC based management
 
system. The guards receive information from all these
 
different systems in a recognizable and consistent way
 
which allows for easy operation of the total system.
 
  
 +
The OPC Server communicates with the AlphaCom over the TCP/IP protocol on the TCP port 61112. This port must be opened in the [[AlphaWeb#Filtering.2C_the_AMC-IP_firewall|Filter settings]] in AlphaWeb.
 +
For the server to operate a license has to be supplied to the AlphaCom. In an [[AlphaNet]] each exchange must have its own OPC license. When the OPC server initiates contact with the AlphaCom node, the node will report back the number of licensed station the server can handle. 
  
== Features ==
+
The possible OPC station licenses are:
 +
*1009649902: OPC interface supporting 80 stations
 +
*1009649903: OPC interface supporting 138 stations
 +
*1009649904: OPC interface supporting 225 stations
 +
*1009649906: OPC interface supporting 400 stations
 +
*1009649907: OPC interface supporting 552 stations
  
*Standards based on integration with OPC and Microsoft .Net
+
When the number of licenses station for a node is reached it will stop registering more stations. Tags for the number of stations registered and the number of licensed status can be found in the item tree for each node.
*True interoperability and scalability with OPC and Microsoft .Net
 
*Reduce implementation time and cost of systemintegration
 
*Easy and fast configuration, only limited configuration data is required
 
  
 +
== Server Configuration ==
  
== Configuration ==
+
The Server is very much self configured, but some parameters needs to be supplied during installation.
  
The STENTOFON OPC server is a self configuring
+
The one required parameter for the OPC Server is the IP address of AlphaCom it will be connected to.  
software package, which needs only very little
+
The following parameters are optional:
information during commissioning; only the node
 
numbers of the AlphaCom exchanges which are
 
present in the system and the IP-address of the
 
connected AlphaCom need to be entered, all other
 
information will automatically be extracted by the OPC
 
server. The OPC Server will at start-up ask all
 
AlphaCom exchanges in an AlphaNet it knows about for
 
a list of all Stations with their current status. The Server
 
will build an OPC item tree for these stations. The
 
access path for a specific station will be a node number
 
and directory number. Each station will have multiple
 
items defining different properties of that station.
 
  
If a DA-Client application is set-up with one or more
+
In an AlphaNet the Server needs to know for which nodes it shall build the OPC DA item tree from. This node list will also be used to filter which events are reported. If no node list is supplied the server will by default only handle the local node it is directly connected to.
master stations, these should be added to a ‘Master
+
If a DA-Client application is set-up with one or more master stations, these should be added to a “Master Station List”. The Client can then use the unique ID from the list to refer to a Master station.  
Station List’. The Client can then use the unique ID from
+
For OPC AE all AlphaCom Events for a station can be individual configured. See also [[AlphaCom_OPC_Server#OPC_Alarm_.26_Events|AlphaComOPC AE]]
the list to refer to a Master station.
 
  
Each exchange in the AlphaNet must have its own OPC
+
A seperate [[OPCServerConfigurator|ServerConfiguration Tool]] will be install togheter with the AlphaComOPCServer.
licenses. An exchange will only report as many stations
 
to the OPC server as determined by the license in that
 
exchange, see Ordering Information.
 
  
For OPC AE all AlphaCom Events for a station can be
+
== OPC Data Access ==
individually configured.
 
  
 +
The OPC Server will at startup ask the AlphaCom for a list of all Stations with their current status. If AlphaNet nodes are configured, these stations will also be asked for. The Server will build an OPC item tree for these stations. The access path for a specific station will be a node number and directory number. Each station will have multiple items defining different properties of that station.
  
 +
===Station Item Table===
  
 +
These items relates to a AlphaCom station.
 +
Root DA Item is '''node{nn}.station{xxx}''' where nn is the AlphaNet node number and xxx is a station directory number, i.e '''node1.station.101'''
  
  
== Operation ==
+
{| border="1"
 
+
! style="background:#ffdead;" width="170" |Item Name
The OPC server software runs on a PC. For proper
+
! style="background:#ffdead;" width="70" |Data Type
operation, Microsoft .NET 2.0 must also be installed on
+
! style="background:#ffdead;" width="70" |Access
this PC. In an AlphaNet configuration, only 1 AlphaCom
+
! style="background:#ffdead;" width="600" |Description
E needs to be specified with which the OPC server will
+
|-
communicate, although, via AlphaNet, the server will
+
| align=center| busy ||align=center|UI||align=center|RO||Station Busy state: 0 = Free, 1 = Busy
communicate with all exchanges in the network. The
+
|-
exchange which is specified to communicate directly
+
| align=center| mailqueue ||align=center|UI||align=center|RO||Station mail queue state: 0 = no mail, 1 = mail queue
with the OPC server must have TCP port 61112 opened
 
in the ‘Filter page’ in AlphaWeb.
 
 
 
 
 
 
 
== Specification ==
 
 
 
 
 
{|border="1"
 
|Supported Operating Systems<br>
 
<br><br>
 
|| Microsoft Windows 2000<br>Microsoft Windows XP<br>Microsoft Windows Server 2003<br>Microsoft Windows Vista
 
 
|-
 
|-
|Software dependency || Requires Microsoft .NET 2.0 to be installed
+
| align=center| linestate||align=center|UI||align=center|RO||Line State:
 +
0 Board not present
 +
1 SLI board present, no station
 +
2 SLI board present, station with failure
 +
3 Station connected to SLI board
 +
16 IP station configured, not connected
 +
17 IP station connected but not authorized
 +
18 IP station connected and registered OK, auth not required
 +
19 IP station connected and authorized
 +
20 IP station connected but no license available
 
|-
 
|-
|Communication with AlphaCom E || TCP/IP via TCP port 61112
+
| align=center| operational ||align=center|UI||align=center|RO|| 0 – the station is not operational, 1 – the station is operational
 
|-
 
|-
|Server registration name ||Zenitel.AlphaCom.1
+
| align=center| phyno ||align=center|UI||align=center|RO|| Station Physical number
 
|-
 
|-
|Applicable OPC standards<br><br><br> || OPC DA V2 (OPC Data Access)<br>OPC DA V3 (OPC Data Access)<br>OPC AE V1.1 (OPC Alarms & Events)
+
| align=center| text ||align=center|UI||align=center|RO|| Station display text, maximum 16 characters
 
|-
 
|-
|Event string format<br><br><br><br><br> || OneLine: Single line human readable format containing relevant information<br>Detailed: Multi line human readable with detailed information<br>Short: Human readable format containing minimum required information<br>XML: Same as Detailed, but in XML format<br>XMLPretty: Same as Detailed, but in line formatted XML<br>Custom: The event strings can be customised to suit the exact requirement
+
| align=center| rco** ||align=center|BSTR||align=center|RW|| Station RCO bitmap
 +
1: RCO 1, 0 = off, 1 = on
 +
2: RCO 2....
 
|-
 
|-
|Minimum hardware requirement <br><br><br>|| Processor speed<br>RAM size<br>Hard disk size required for installation<br>Hard disk size for data storage
+
| align=center| related_to ||align=center|UI||align=center|RO|| Related station in connection
|}
+
A digit string representing the directory number of a connected station. Only set if the station is in active connection.
  
 
+
Writing a valid directory number to this item will setup a call between the stations.
 
+
The format of the station reference is the OPC access path of the related station, example:
 
+
node1.station101
== License information ==
+
An AlphaCom Station reference format is also accepted for local and global numbers, example:
 
+
L(1)101
Each AlphaCom exchange in an AlphaNet must have its own OPC licenses.
+
G2000
 
+
Writing the string “null” to this item will cancel the call.
1009649902 OPC interface supporting 80 stations<br>
+
|-
1009649903 OPC interface supporting 138 stations<br>
+
| align=center| alarmmsg ||align=center|UI||align=center|RW*|| Set up (or disconnect) an ASVP Alarm message to a single station
1009649904 OPC interface supporting 225 stations<br>
+
|-
1009649906 OPC interface supporting 400 stations<br>
+
| align=center| signalled ||align=center|UI||align=center|RO|| Set to true for signalling to the client that the station needs some kind of attention.
1009649907 OPC interface supporting 552 stations
+
An AlphaCom call request sent from this station triggers this state. When the call request is removed this state will be reset.
 
 
== OPC Alarm and Events ==
 
 
 
A set of AlphaCom events can be sources for OPC AE Events.
 
 
 
{|border="1"
 
| width="150" |CallStatus
 
| width="400" |A Call Initiated from Station A to Station B, with time, priority, and call mode
 
 
|-
 
|-
|StationConnect || A Call connection with connection time and reference
+
| align=center| connect ||align=center|UI||align=center|RW|| Used to connect to this station from a pre-configured “Master station”. A list of master stations can be programmed, and referenced to by its unique ID (1-100).
 +
Writing a ‘0’ will cancel the active connection.
 
|-
 
|-
|StationDisconnect || A call disconnection with time, reference and duration
+
| align=center| synchronized ||align=center|UI||align=center|RW|| If this variable reads a ‘1’ the station information, and the stations call request queue should be in sync with the AlphaCom.
 +
If the event based synchronization is not trusted it is possible to write a ‘0’ to the “synchronized” item. All states and queue for this station will then be refreshed from the AlphaCom.
 
|-
 
|-
|CallReject || The Call was not accepted (Disconnect without a Connect) with time
+
| align=center| cr_queue_length ||align=center|UI||align=center|RO|| The length of this stations Call Request Queue.
 
|-
 
|-
|CallRequest || A Call Request with Receiving Station, Sending Station, mail tag, priority, mail text and time
+
| align=center| cr_iterate_station ||align=center|BSTR||align=center|RO|| The ID (OPC station tag format) of the active station during a iteration process
 
|-
 
|-
|RequestRemoved || A Call Request Removed with Receiving Station, and mail tag
+
| align=center| cr_iterate_command ||align=center|BSTR||align=center|RW|| “First” gets the first station in queue to tag cr_iterate_station. “Next” gets the next station in the queue. If no more stations after a “Next” cr_iterate_station is set to “eol”
 
|-
 
|-
|StationOK || Station Up and OK with station type details. (sent when a station with failure is back up)
+
| align=center| cr_delete_command ||align=center|BSTR||align=center|RW|| If a valid station ID is written to this tag and it exist in the queue list a $DELETE_MAIL is sent to the AlphaCom.
 
|-
 
|-
|StationFail || Station Failure with details
+
 
 
|}
 
|}
 +
(*) Reads back last written value (or default if not written to)
 +
(**) Only implemented for IP substations with three RCOs
  
 +
===Node Item Table===
  
For each of the above AlphaCom event sources it is possible to configure OPC AE parameters as detailed in the table
+
These items relates to a AlphaCom node in an AlphaNet.
below.
+
Root DA Item is '''node{nn}''' where nn is the AlphaNet node number, i.e '''node1'''
  
{|border="1"
+
 
| width="150" | Source Name
+
{| border="1"
| width="700" |A string with the event source name. This will be appended to the access path of the station.
+
! style="background:#ffdead;" width="170" |Item Name
Example: node1.station1.{sourcename}
+
! style="background:#ffdead;" width="70" |Data Type
The same sourcename can be used for multiple AlphaCom events, but then they need to be of
+
! style="background:#ffdead;" width="70" |Access
the same type. Typically the same name will be used for two condition events with the
+
! style="background:#ffdead;" width="600" |Description
Alarm/Normal state.
 
 
|-
 
|-
|Severity || The Event severity in the range 1..1000.
+
| align=center| NodeStatus ||align=center|UI||align=center|RO|| 0 – No node connection, 1 – Node connection OK
 +
|-
 +
| align=center| ResponseTime ||align=center|UI||align=center|RO|| When connection OK the Ping return time from OPC server to node.
 +
|-
 +
| align=center| StationsAdded ||align=center|UI||align=center|RO|| 0 – No stations added, probably no license or some other error, 1 – Stations has been successfully added
 +
|-
 +
| align=center| AddedMessage ||align=center|BSTR||align=center|RO|| A detailed status on the station add process
 +
|-
 +
| align=center| NumberOfStations ||align=center|UI||align=center|RO|| The number of stations added to this node tag tree.
 +
|-
 +
| align=center| StationLicenseCount ||align=center|UI||align=center|RO|| The number of stations licensed for this node.
 
|-
 
|-
|Message Text || A Set of pre-defined formats or a custom format with possible parameter insertion.
 
 
|}
 
|}
 +
<br>
  
 +
===Global Item Table===
  
 +
These items relates to the AlphaCom system.
 +
Root DA Item is '''AlphaComOPCServer'''
  
== Supported OPC data access objects ==
 
  
{|border="1"
+
{| border="1"
! width="300"|Item name
+
! style="background:#ffdead;" width="170" |Item Name
! width="40" |Data type
+
! style="background:#ffdead;" width="70" |Data Type
! width="40" |Access
+
! style="background:#ffdead;" width="70" |Access
! width="300" |Description
+
! style="background:#ffdead;" width="600" |Description
 
|-
 
|-
!'''Objects for each station connected to a node'''|| &nbsp; || &nbsp; || &nbsp;
+
| align=center| TCPConnected ||align=center|UI||align=center|RO|| 0 - No TCP connection, 1 - TCP connection with AlphaCom is established.
 
|-
 
|-
|acenodenr.stationdirnr.busy || UI || RO || Station Busy state:<br>0 = Free, 1 = Busy
+
| align=center| AlphaIPAddress ||align=center|UI||align=center|RO|| The IP address of the connected AlphaCom
 
|-
 
|-
|acenodenr.stationdirnr.mailqueue || UI || RO || Station mail queue state:<br>0 = no mail, 1 = mail queue
+
| align=center| AlphaTCPPort ||align=center|UI||align=center|RO|| The port of the IP connection
 
|-
 
|-
|acenodenr.stationdirnr.linestate || UI || RO || '''Line State''':<br>0 = Board not present<br>1 = SLI board present, no station<br>2 = SLI board present, station with failure<br>3 = Station connected to SLI board<br>16 = IP station configured, not connected<br>17 = IP station connected but not authorized<br>18 = IP station connected and registered OK, authorization not required<br>19 = IP station connected and authorized<br>20 = IP station connected but no license available
+
| align=center| PingTime ||align=center|UI||align=center|RO|| The application-level Ping time in milliseconds (monitored each 5th second)
 
|-
 
|-
|acenodenr.stationdirnr.operational || UI || RO || 1 = The station is operational<br>0 = The station is not operational
+
| align=center| NumberOfNodes ||align=center|UI||align=center|RO|| Number of AlphaCom nodes the OPC Server is registered with.
 
|-
 
|-
|acenodenr.stationdirnr.phyno || UI || RO || Station Physical number.
+
| align=center| NumberOfStations ||align=center|UI||align=center|RO|| The total number of stations registered by the OPC Server
 
|-
 
|-
|acenodenr.stationdirnr.text || BSTR || RO || Station display text, max. 16 characters.
+
| align=center| Maters.NN ||align=center|UI||align=center|RO|| A list of the configured Master stations.
 +
When using the nodeXX.stationYY.connect item listed above the numeric ID from this list has to used.
 
|-
 
|-
|acenodenr.stationdirnr.rco<br>(This data object is only available for IP stations with 3 RCO’s) || UI || RW || Station RCO bitmap:<br>1: RCO 1, 0 = off, 1 = on<br>2: RCO 2, 0 = off, 1 = on<br>3: RCO 3, 0 = off, 1 = on
+
|}
 +
<br>
 +
<br>
 +
 
 +
==OPC Alarm & Events==
 +
 
 +
A set of AlphaCom events can be sources for OPC AE Events. The OPC event type, state, severity and message text can be configured for each AlphaCom Event.
 +
 
 +
===AlphaCom Event table===
 +
 
 +
{| border="1"
 +
! style="background:#ffdead;" width="200" |AlphaCom Event Name
 +
! style="background:#ffdead;" width="700" |Description/Parameters
 
|-
 
|-
|acenodenr.stationdirnr.relatedto || BSTR || RW ||Related station in connection.<br>A digit string representing the directory number of a connected station. Only set if the station is in active connection.<br>Writing a valid directory number to this item will set up a call between the stations.<br>The format of the station reference is the OPC access path of the related station.<br>Example: node1.station101.<br>An AlphaCom Station reference format is also accepted for local and global numbers.<br>Example: L(1)101 G2000.<br>Writing the string “null” to this item will cancel the call.
+
| align=center| CallStatus || A Call Initiated from Station A to Station B, with time, priority, and call mode.
 
|-
 
|-
|acenodenr.stationdirnr.alarmmsg || UI || RW || Set up (or disconnect) an ASVP Alarm message to a single station.<br> Reads back last written value, or default value if not written to.
+
| align=center| StationConnect || A Call connection with connection time and reference.
 
|-
 
|-
|acenodenr.stationdirnr.signalled || UI || RO || Set to true for signaling to the client that the station needs some kind of attention.<br> An AlphaCom call request sent from this station triggers this state. When the call request is removed this state will be reset.
+
| align=center| StationDisconnect || A call disconnection with time, reference and duration.  
 
|-
 
|-
|acenodenr.stationdirnr.connect || UI || RW || Used to connect to this station from a pre-configured “Master station”.<br> A list of master stations can be programmed and referenced to by its unique ID (1-100).<br> Writing a ‘0’ will cancel the active connection.
+
| align=center| CallReject || The Call was not accepted (Disconnect without a Connect) with time
 
|-
 
|-
|acenodenr.stationdirnr.synchronized || UI || RW || If this variable reads a ‘1’ the station information, and the stations call request queue should be in sync with the AlphaCom.<br>If the event based synchronization is not trusted, it is possible to write a ‘0’ to the “synchronized” item. All states and queue for this station will then be refreshed from the AlphaCom.
+
| align=center| CallRequest || A Call Request with Receiving Station, Sending Station, mail tag, priority, mail text and time.
 
|-
 
|-
|acenodenr.stationdirnr.cr_queue_length || UI || RO || The length of this stations Call Request Queue.
+
| align=center| RequestRemoved || A Call Request Removed with Receiving Station, and mail tag
 
|-
 
|-
|acenodenr.stationdirnr.cr_iterate_station || BSTR || RO || The ID (OPC station tag format) of the active station during a iteration process.
+
| align=center| StationOK || Station Up and OK with station type details. (sent when a station with failure is back up)
 
|-
 
|-
|acenodenr.stationdirnr.cr_iterate_command || BSTR || RW || “First” gets the first station in queue to tag cr_iterate_station. “Next” gets the next station in the queue. If there are no more stations after a “Next”, cr_iterate_station is set to “eol”.
+
| align=center| StationFail || Station Failure with details.
 
|-
 
|-
|acenodenr.stationdirnr.cr_delete_command || BSTR || RW || If a valid station ID is written to this tag and it exist in the queue list a $DELETE_MAIL is sent to the AlphaCom.
+
|}
 +
 
 +
For each of the above AlphaCom Event sources the following OPC AE parameters can be configured:
 +
 
 +
===OPC Event parameter table===
 +
 
 +
{| border="1"
 +
! style="background:#ffdead;" width="200" |OPC AE parameter
 +
! style="background:#ffdead;" width="700" |Description
 
|-
 
|-
!'''Objects for each node''' || &nbsp; || &nbsp; ||&nbsp;
+
| align=center| Type || The OPC Event type, possible values:
 +
Simple
 +
Condition
 +
NoEvent
 
|-
 
|-
|acenodenr.stationsadded || UI || RO || 1 = Stations has been successfully added <br> 0 = No stations added, probably no license or some other error.
+
| align=center| Source Name || A string with the event source name. This will be appended to the access path of the station, example: '''node1.station1.{sourcename}'''
 +
The same sourcename can be used for multiple AlphaCom events, but then they need to be of the same type. Typically the same name will be used for two condition events with the Alarm/Normal state.
 
|-
 
|-
|acenodenr.addedmessage || BSTR || RO || A detailed status on the station add process.
+
| align=center| Severity || The Event severity in the range 1..1000
 
|-
 
|-
|acenodenr.numberofstations || UI || RO || The number of stations added to this node tag tree.
+
| align=center| Condition State || The state to set for a condition event:
 +
Alarm
 +
Normal
 
|-
 
|-
|acenodenr.stationlicensecount || UI || RO || The number of stations licensed for this node.
+
| align=center| Message Text || A Set of pre-defined formats or a custom format with possible parameter insertion.
 
|-
 
|-
!'''Global AlphaCom objects''' || &nbsp; || &nbsp; || &nbsp;
+
|}
 +
<br>
 +
 
 +
===OPC Event message format===
 +
 
 +
The event message format is configurable from a separate configuration tool (see xxx). A set of predefined formats is defined but the OPC integrator can also chose to use a customable format:
 +
 
 +
{| border="1"
 +
! style="background:#ffdead;" width="100" |Format
 +
! style="background:#ffdead;" width="700" |Description/Example
 
|-
 
|-
|AlphaGobal.Masters.NN || BSTR || RO || A list of the configured Master stations.<br>When using the ‘nodeXX.stationYY.connect’ item listed above the numeric ID from this list has to used.
+
| align=center| OneLine || Message formatted in a single line humane readable with most of the message information
 +
<tt>StationConnect: (Node 3, DirNo 1001)->(Node 3, DirNo 1000) at 31.10.2007 10:52:29, Ref:100</tt>
 
|-
 
|-
!'''Global OPC server objects''' || &nbsp; || &nbsp; ||| &nbsp;
+
| align=center| Detailed|| A multiline format with all information in a message.
 +
<tt>AlphaNet Message: Station Connect
 +
Connection at time: 31.10.2007 10:52:29
 +
Connection Ref: 100
 +
Station A: Node 3, DirNo 1001
 +
Station B: Node 3, DirNo 1000</tt>
 
|-
 
|-
|AlphaComOPCServer.TCPConnected || UI || RO || True if the connection with the AlphaCom is established.
+
| align=center| Short || A very short message with little information (i.e for STATION_STATE only the directory number is presented).
 +
<tt>(Node 3, DirNo 1001)->(Node 3, DirNo 1000)</tt>
 
|-
 
|-
|AlphaComOPCServer.AlphaIPAddress || BSTR || RO || The IP address of the connected AlphaCom.
+
| align=center| XML || Detailed information in a XML format with no formatting (line shifts, indenting etc).
 +
<tt><ALPHAMSG TYPE=StationConnect><STATION_A><NODE>3</NODE><DIRNO>1001</DIRNO></STATION_A><STATION_B><NODE>3</NODE><DIRNO>1000</DIRNO></STATION_B><TIME>31.10.2007 10:52:29</TIME><REF>100</REF></ALPHAMSG></tt>
 
|-
 
|-
|AlphaComOPCServer.AlphaTCPPort || UI || RO || The port of the IP connection.
+
| align=center| XMLPretty || Same as above, but with line formatting.
 +
<tt><ALPHAMSG TYPE=StationConnect>
 +
  <STATION_A>
 +
    <NODE>3</NODE>
 +
    <DIRNO>1001</DIRNO>
 +
  </STATION_A>
 +
  <STATION_B>
 +
    <NODE>3</NODE>
 +
    <DIRNO>1000</DIRNO>
 +
  </STATION_B>
 +
  <TIME>31.10.2007 10:52:29</TIME>
 +
  <REF>100</REF>
 +
</ALPHAMSG>
 +
</tt>
 
|-
 
|-
|AlphaComOPCServer.PingTime || UI || RO || The application-level Ping time in milliseconds<br>(monitored each 5th second).
+
| align=center| Custom || Customable strings.
 +
Format string: “Call Connect {0}->{1} at {2}, ref={3}”
 +
<tt>Call Connect Node 3, DirNo 1001->Node 3, DirNo 1000 at 31.10.2007 10:52:29, ref=100</tt>
 
|-
 
|-
|AlphaComOPCServer.NumberOfNodes || UI || RO || Number of AlphaCom nodes the OPC Server is registered with.
 
|-
 
|AlphaComOPCServer.NumberOfStations || UI || RO || The total number of stations registered by the OPC Server.
 
 
|}
 
|}
 +
 +
[[Category:AlphaCom E Software]]

Revision as of 13:54, 5 August 2008

Description

The AlphaCom OPC[1] Server implements the following OPC standards:

• OPC Data Access (OPC DA V2/V3)
• OPC Alarm & Events (OPC AE V1.1)

The Server is running on the Microsoft .NET framework and requires .NET 2.0 to be installed on the PC running the server.

The OPC Server communicates with the AlphaCom over the TCP/IP protocol on the TCP port 61112. This port must be opened in the Filter settings in AlphaWeb. For the server to operate a license has to be supplied to the AlphaCom. In an AlphaNet each exchange must have its own OPC license. When the OPC server initiates contact with the AlphaCom node, the node will report back the number of licensed station the server can handle.

The possible OPC station licenses are:

  • 1009649902: OPC interface supporting 80 stations
  • 1009649903: OPC interface supporting 138 stations
  • 1009649904: OPC interface supporting 225 stations
  • 1009649906: OPC interface supporting 400 stations
  • 1009649907: OPC interface supporting 552 stations

When the number of licenses station for a node is reached it will stop registering more stations. Tags for the number of stations registered and the number of licensed status can be found in the item tree for each node.

Server Configuration

The Server is very much self configured, but some parameters needs to be supplied during installation.

The one required parameter for the OPC Server is the IP address of AlphaCom it will be connected to. The following parameters are optional:

In an AlphaNet the Server needs to know for which nodes it shall build the OPC DA item tree from. This node list will also be used to filter which events are reported. If no node list is supplied the server will by default only handle the local node it is directly connected to. If a DA-Client application is set-up with one or more master stations, these should be added to a “Master Station List”. The Client can then use the unique ID from the list to refer to a Master station. For OPC AE all AlphaCom Events for a station can be individual configured. See also AlphaComOPC AE

A seperate ServerConfiguration Tool will be install togheter with the AlphaComOPCServer.

OPC Data Access

The OPC Server will at startup ask the AlphaCom for a list of all Stations with their current status. If AlphaNet nodes are configured, these stations will also be asked for. The Server will build an OPC item tree for these stations. The access path for a specific station will be a node number and directory number. Each station will have multiple items defining different properties of that station.

Station Item Table

These items relates to a AlphaCom station. Root DA Item is node{nn}.station{xxx} where nn is the AlphaNet node number and xxx is a station directory number, i.e node1.station.101


Item Name Data Type Access Description
busy UI RO Station Busy state: 0 = Free, 1 = Busy
mailqueue UI RO Station mail queue state: 0 = no mail, 1 = mail queue
linestate UI RO Line State:
0 Board not present 
1 SLI board present, no station 
2 SLI board present, station with failure 
3 Station connected to SLI board 
16 IP station configured, not connected 
17 IP station connected but not authorized 
18 IP station connected and registered OK, auth not required 
19 IP station connected and authorized 
20 IP station connected but no license available
operational UI RO 0 – the station is not operational, 1 – the station is operational
phyno UI RO Station Physical number
text UI RO Station display text, maximum 16 characters
rco** BSTR RW Station RCO bitmap

1: RCO 1, 0 = off, 1 = on 2: RCO 2....

related_to UI RO Related station in connection

A digit string representing the directory number of a connected station. Only set if the station is in active connection.

Writing a valid directory number to this item will setup a call between the stations. The format of the station reference is the OPC access path of the related station, example:

node1.station101

An AlphaCom Station reference format is also accepted for local and global numbers, example:

L(1)101
G2000

Writing the string “null” to this item will cancel the call.

alarmmsg UI RW* Set up (or disconnect) an ASVP Alarm message to a single station
signalled UI RO Set to true for signalling to the client that the station needs some kind of attention.

An AlphaCom call request sent from this station triggers this state. When the call request is removed this state will be reset.

connect UI RW Used to connect to this station from a pre-configured “Master station”. A list of master stations can be programmed, and referenced to by its unique ID (1-100).

Writing a ‘0’ will cancel the active connection.

synchronized UI RW If this variable reads a ‘1’ the station information, and the stations call request queue should be in sync with the AlphaCom.

If the event based synchronization is not trusted it is possible to write a ‘0’ to the “synchronized” item. All states and queue for this station will then be refreshed from the AlphaCom.

cr_queue_length UI RO The length of this stations Call Request Queue.
cr_iterate_station BSTR RO The ID (OPC station tag format) of the active station during a iteration process
cr_iterate_command BSTR RW “First” gets the first station in queue to tag cr_iterate_station. “Next” gets the next station in the queue. If no more stations after a “Next” cr_iterate_station is set to “eol”
cr_delete_command BSTR RW If a valid station ID is written to this tag and it exist in the queue list a $DELETE_MAIL is sent to the AlphaCom.
(*) Reads back last written value (or default if not written to) 
(**) Only implemented for IP substations with three RCOs

Node Item Table

These items relates to a AlphaCom node in an AlphaNet. Root DA Item is node{nn} where nn is the AlphaNet node number, i.e node1


Item Name Data Type Access Description
NodeStatus UI RO 0 – No node connection, 1 – Node connection OK
ResponseTime UI RO When connection OK the Ping return time from OPC server to node.
StationsAdded UI RO 0 – No stations added, probably no license or some other error, 1 – Stations has been successfully added
AddedMessage BSTR RO A detailed status on the station add process
NumberOfStations UI RO The number of stations added to this node tag tree.
StationLicenseCount UI RO The number of stations licensed for this node.


Global Item Table

These items relates to the AlphaCom system. Root DA Item is AlphaComOPCServer


Item Name Data Type Access Description
TCPConnected UI RO 0 - No TCP connection, 1 - TCP connection with AlphaCom is established.
AlphaIPAddress UI RO The IP address of the connected AlphaCom
AlphaTCPPort UI RO The port of the IP connection
PingTime UI RO The application-level Ping time in milliseconds (monitored each 5th second)
NumberOfNodes UI RO Number of AlphaCom nodes the OPC Server is registered with.
NumberOfStations UI RO The total number of stations registered by the OPC Server
Maters.NN UI RO A list of the configured Master stations.

When using the nodeXX.stationYY.connect item listed above the numeric ID from this list has to used.



OPC Alarm & Events

A set of AlphaCom events can be sources for OPC AE Events. The OPC event type, state, severity and message text can be configured for each AlphaCom Event.

AlphaCom Event table

AlphaCom Event Name Description/Parameters
CallStatus A Call Initiated from Station A to Station B, with time, priority, and call mode.
StationConnect A Call connection with connection time and reference.
StationDisconnect A call disconnection with time, reference and duration.
CallReject The Call was not accepted (Disconnect without a Connect) with time
CallRequest A Call Request with Receiving Station, Sending Station, mail tag, priority, mail text and time.
RequestRemoved A Call Request Removed with Receiving Station, and mail tag
StationOK Station Up and OK with station type details. (sent when a station with failure is back up)
StationFail Station Failure with details.

For each of the above AlphaCom Event sources the following OPC AE parameters can be configured:

OPC Event parameter table

OPC AE parameter Description
Type The OPC Event type, possible values:
Simple
Condition
NoEvent
Source Name A string with the event source name. This will be appended to the access path of the station, example: node1.station1.{sourcename}

The same sourcename can be used for multiple AlphaCom events, but then they need to be of the same type. Typically the same name will be used for two condition events with the Alarm/Normal state.

Severity The Event severity in the range 1..1000
Condition State The state to set for a condition event:
Alarm
Normal
Message Text A Set of pre-defined formats or a custom format with possible parameter insertion.


OPC Event message format

The event message format is configurable from a separate configuration tool (see xxx). A set of predefined formats is defined but the OPC integrator can also chose to use a customable format:

Format Description/Example
OneLine Message formatted in a single line humane readable with most of the message information
StationConnect: (Node 3, DirNo 1001)->(Node 3, DirNo 1000) at 31.10.2007 10:52:29, Ref:100
Detailed A multiline format with all information in a message.
AlphaNet Message: Station Connect
Connection at time: 31.10.2007 10:52:29
Connection Ref: 100
Station A: Node 3, DirNo 1001
Station B: Node 3, DirNo 1000
Short A very short message with little information (i.e for STATION_STATE only the directory number is presented).
(Node 3, DirNo 1001)->(Node 3, DirNo 1000)
XML Detailed information in a XML format with no formatting (line shifts, indenting etc).
<ALPHAMSG TYPE=StationConnect><STATION_A><NODE>3</NODE><DIRNO>1001</DIRNO></STATION_A><STATION_B><NODE>3</NODE><DIRNO>1000</DIRNO></STATION_B><REF>100</REF></ALPHAMSG>
XMLPretty Same as above, but with line formatting.
<ALPHAMSG TYPE=StationConnect>
  <STATION_A>
    <NODE>3</NODE>
    <DIRNO>1001</DIRNO>
  </STATION_A>
  <STATION_B>
    <NODE>3</NODE>
    <DIRNO>1000</DIRNO>
  </STATION_B>
  
  <REF>100</REF>
</ALPHAMSG>

Custom Customable strings.

Format string: “Call Connect {0}->{1} at {2}, ref={3}”

Call Connect Node 3, DirNo 1001->Node 3, DirNo 1000 at 31.10.2007 10:52:29, ref=100