Actions

Difference between revisions of "OPC Server"

From Zenitel Wiki

(Server Configuration)
m (OPC Alarm & Events)
 
(71 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{A}}
+
{{AI}}
== Description ==
+
==Description==
 
The AlphaCom OPC[http://en.wikipedia.org/wiki/OLE_for_process_control] Server implements the following OPC standards:
 
The AlphaCom OPC[http://en.wikipedia.org/wiki/OLE_for_process_control] Server implements the following OPC standards:
 +
 
*OPC Data Access (OPC DA V2/V3)
 
*OPC Data Access (OPC DA V2/V3)
 
*OPC Alarm & Events (OPC AE V1.1)
 
*OPC Alarm & Events (OPC AE V1.1)
 +
*OPC UA
  
 
The Server is running on the Microsoft .NET framework, and OPC Core Components must be installed on the PC running the server.  
 
The Server is running on the Microsoft .NET framework, and OPC Core Components must be installed on the PC running the server.  
  
 
Prerequisites:
 
Prerequisites:
* .NET Framework 4.0, 2.0 or 1.1
+
 
* OPC Foundation OPC Core Components or Advosol OPC Core Components for 32-bit/64-bit operation
+
*.NET Framework 4.6.2
 +
*OPC Foundation OPC Core Components or Advosol OPC Core Components for 32-bit/64-bit operation
  
  
 
The OPC Server communicates with the AlphaCom over the TCP/IP protocol on the TCP port 61112 or 61113. This port(s) must be opened in the [[AlphaWeb#Filtering.2C_the_AMC-IP_firewall|Filter settings]] in AlphaWeb.
 
The OPC Server communicates with the AlphaCom over the TCP/IP protocol on the TCP port 61112 or 61113. This port(s) must be opened in the [[AlphaWeb#Filtering.2C_the_AMC-IP_firewall|Filter settings]] in AlphaWeb.
For the server to operate an [[Licenses#API License|API License]] has to be supplied to the AlphaCom. In an [[AlphaNet]] each exchange must have its own API 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.   
+
For the server to operate an [[Licenses#API License|API License]] has to be supplied to the AlphaCom. In an [[AlphaNet]] each exchange must have its own API license. When the OPC server initiates contact with the AlphaCom node, the node will report back the number of licensed stations the server can handle.   
  
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.
+
When the number of licensed stations 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.
  
For step by step instructions, see [[OPC Server - Installation|Installation of AlphaCom OPC Server]]
+
<br>
  
== Server Configuration ==
+
==Server Configuration==
  
 
The Server is very much self configured, but some parameters needs to be supplied during installation.
 
The Server is very much self configured, but some parameters needs to be supplied during installation.
Line 30: Line 33:
 
For OPC AE all AlphaCom Events for a station can be individual configured. See also [[OPC_Server#OPC_Alarm_.26_Events|AlphaCom OPC AE]]
 
For OPC AE all AlphaCom Events for a station can be individual configured. See also [[OPC_Server#OPC_Alarm_.26_Events|AlphaCom OPC AE]]
  
A seperate [[OPCServerConfigurator|ServerConfiguration Tool]] will be install together with the AlphaComOPCServer.
+
A seperate [[OPCServerConfigurator|ServerConfiguration Tool]] will be installed together with the AlphaComOPCServer.
  
For more details on configuration see [[OPC Server - Installation|Installation of AlphaCom OPC Server]]
+
For more details on configuration see [[OPC Classic for AlphaCom - Installation]]
  
== OPC Data Access ==
+
<br>
 +
 
 +
==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.
 
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.
Line 52: Line 57:
 
         -> g{n}
 
         -> g{n}
 
     -> [[OPC_Server#Station_Item_Table|station{xxx}]]
 
     -> [[OPC_Server#Station_Item_Table|station{xxx}]]
 +
 +
<br>
  
 
===OPC Server Item Table===
 
===OPC Server Item Table===
Line 65: Line 72:
 
! style="background:#ffdead;" width="600" |Description
 
! style="background:#ffdead;" width="600" |Description
 
|-
 
|-
| align=center| Version ||align=center|BSTR||align=center|RO|| The AlphaComOPCServer Version (1st release is 4.0.0.0)
+
| align="center" |Version|| align="center" |BSTR|| align="center" |RO||The AlphaComOPCServer Version (1st release is 4.0.0.0)
 
|-
 
|-
| align=center| TCPConnected ||align=center|UI||align=center|RO|| 0 - No TCP connection, 1 - TCP connection with AlphaCom is established.
+
| align="center" |TCPConnected|| align="center" |UI|| align="center" |RO||0 - No TCP connection, 1 - TCP connection with AlphaCom is established.
 
|-
 
|-
| align=center| AlphaIPAddress ||align=center|UI||align=center|RO|| The IP address of the connected AlphaCom
+
| align="center" |AlphaIPAddress|| align="center" |UI|| align="center" |RO||The IP address of the connected AlphaCom
 
|-
 
|-
| align=center| AlphaTCPPort ||align=center|UI||align=center|RO|| The port of the IP connection
+
| align="center" |AlphaTCPPort|| align="center" |UI|| align="center" |RO||The port of the IP connection
 
|-
 
|-
| align=center| PingTime ||align=center|UI||align=center|RO|| The application-level Ping time in milliseconds (monitored each 5th second)
+
| align="center" |PingTime|| align="center" |UI|| align="center" |RO||The application-level Ping time in milliseconds (monitored each 5th second)
 
|-
 
|-
| align=center| NumberOfNodes ||align=center|UI||align=center|RO|| Number of AlphaCom nodes the OPC Server is registered with.
+
| align="center" |NumberOfNodes|| align="center" |UI|| align="center" |RO||Number of AlphaCom nodes the OPC Server is registered with.
 
|-
 
|-
| align=center| NumberOfStations ||align=center|UI||align=center|RO|| The total number of stations registered by the OPC Server
+
| align="center" |NumberOfStations|| align="center" |UI|| align="center" |RO||The total number of stations registered by the OPC Server
 
|-
 
|-
| align=center| LicenseCode ||align=center|??||align=center|RO|| ''Obsolete (To be removed)''
+
| align="center" |LicenseCode|| align="center" |??|| align="center" |RO||''Obsolete (To be removed)''
 
|-
 
|-
| align=center| LicenseStatus ||align=center|??||align=center|RO|| ''Obsolete (To be removed)''
+
| align="center" |LicenseStatus|| align="center" |??|| align="center" |RO||''Obsolete (To be removed)''
 
|-
 
|-
 
|}
 
|}
Line 99: Line 106:
 
! style="background:#ffdead;" width="600" |Description
 
! style="background:#ffdead;" width="600" |Description
 
|-
 
|-
| align=center| Masters.NN ||align=center|UI||align=center|RO|| A list of the configured Master stations.
+
| align="center" |Masters.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 be used.
 
When using the '''nodeXX.stationYY.connect''' item listed above, the numeric ID from this list has to be used.
 
|-
 
|-
Line 118: Line 125:
 
! style="background:#ffdead;" width="600" |Description
 
! style="background:#ffdead;" width="600" |Description
 
|-
 
|-
| align=center| NodeStatus ||align=center|UI||align=center|RO||  
+
| align="center" |NodeStatus|| align="center" |UI|| align="center" |RO||
 
Node status reported from the AlphaCom
 
Node status reported from the AlphaCom
 
  0 – No node connection  
 
  0 – No node connection  
Line 125: Line 132:
 
  6 – Overlapping registration of same OPC device from different nodes
 
  6 – Overlapping registration of same OPC device from different nodes
 
|-
 
|-
| align=center| ResponseTime ||align=center|UI||align=center|RO|| When connection OK the Ping return time from OPC server to node.
+
| 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" |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" |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" |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.
+
| align="center" |StationLicenseCount|| align="center" |UI|| align="center" |RO||The number of stations licensed for this node.
 
|-
 
|-
| align=center| rco* ||align=center|UI||align=center|RW|| Remote Controlled Outputs Item Subtree
+
| align="center" |rco*|| align="center" |UI|| align="center" |RW||Remote Controlled Outputs Item Subtree
'''Sub Items''':<br/>
+
'''Sub Items''':<br />
 
  RW: .o{n}.state
 
  RW: .o{n}.state
 
  WO: .o{n}.setwithtime
 
  WO: .o{n}.setwithtime
 
  WO: .o{n}.setvalue
 
  WO: .o{n}.setvalue
Where n is node RCO number in range 1..500<br/>
+
Where n is node RCO number in range 1..500<br />
'''Note1!''' RCO items range needs to be configured in the [[OPCServerConfigurator]] tool<br/>
+
'''Note1!''' RCO items range needs to be configured in the [[OPCServerConfigurator]] tool<br />
'''Note2!''' Setting .setwithtime value to 0 will set rco on infinity!<br/>
+
'''Note2!''' Setting .setwithtime value to 0 will set rco on infinity!<br />
 
|-
 
|-
| align=center| rci* ||align=center|UI||align=center|RO|| Remote Controlled Inputs Item Subtree
+
| align="center" |rci*|| align="center" |UI|| align="center" |RO||Remote Controlled Inputs Item Subtree
'''Sub Items''':<br/>
+
'''Sub Items''':<br />
 
  RO: .i{n}.state
 
  RO: .i{n}.state
Where n is node RCI number in range 1..140<br/>
+
Where n is node RCI number in range 1..140<br />
'''Note1!''' RCI items range needs to be configured in the [[OPCServerConfigurator]] tool<br/>
+
'''Note1!''' RCI items range needs to be configured in the [[OPCServerConfigurator]] tool<br />
'''Note2!''' RCI event update needs to be configured in [[AlphaPro]], see alse [[OPC_Server_-_Installation#Configure_the_AlphaCom|AlphaPro OPC Config]]
+
'''Note2!''' RCI event update needs to be configured in [[AlphaPro]], see alse [[OPC Classic for AlphaCom - Installation#Configure_the_AlphaCom|AlphaPro OPC Config]]
 
|-
 
|-
| align=center| groups ||align=center|UI||align=center|RW|| Local station Groups
+
| align="center" |groups|| align="center" |UI|| align="center" |RW||Local station Groups
'''Sub Items''':<br/>
+
'''Sub Items''':<br />
 
  RW: .g{n}.playmsg -> Play an alarm message to group (with optional parameters). Sends [[GROUP MSG|$GM]] command to AlphaCom.
 
  RW: .g{n}.playmsg -> Play an alarm message to group (with optional parameters). Sends [[GROUP MSG|$GM]] command to AlphaCom.
 
  RW: .g{n}.stopmsg -> Stop alarm message playing to group. Sends [[GROUP MSG STOP|$GMS]] command to AlphaCom.
 
  RW: .g{n}.stopmsg -> Stop alarm message playing to group. Sends [[GROUP MSG STOP|$GMS]] command to AlphaCom.
 
  RW: .g{n}.alarmmsg -> Simplified start/stop alarm message playing to group (write 0 to stop playing).  
 
  RW: .g{n}.alarmmsg -> Simplified start/stop alarm message playing to group (write 0 to stop playing).  
 
                       Sends [[ALARM MSG|$ALRM]] command to AlphaCom. Uses [[Volume and handset override]].
 
                       Sends [[ALARM MSG|$ALRM]] command to AlphaCom. Uses [[Volume and handset override]].
Where n is node Group number in range 1..250<br/>
+
Where n is node Group number in range 1..250<br />
 
Item value: [[Alarm_message|Alarm Message]] number for playback in group.
 
Item value: [[Alarm_message|Alarm Message]] number for playback in group.
<br/>
+
<br />
Item value for .playmsg: In the simplest form the message number as above<br/>
+
Item value for .playmsg: In the simplest form the message number as above<br />
 
Other '''optional parameters''' can be coded into the four bytes of I4 data type (one parameter in each byte):
 
Other '''optional parameters''' can be coded into the four bytes of I4 data type (one parameter in each byte):
 
  byte1,          {n}: n -> Announcement message for playback in group.  
 
  byte1,          {n}: n -> Announcement message for playback in group.  
Line 173: Line 180:
 
  .stopmsg =      0x2 -> Stop Playing Message number two
 
  .stopmsg =      0x2 -> Stop Playing Message number two
  
'''Note1!''' Group items range needs to be configured in the [[OPCServerConfigurator]] tool<br/>
+
'''Note1!''' Group items range needs to be configured in the [[OPCServerConfigurator]] tool<br />
 
|-
 
|-
 
|}
 
|}
Line 181: Line 188:
 
===Station Item Table===
 
===Station Item Table===
  
These items relates to a AlphaCom station.
+
These items relates to a Zenitel Intercom station/device.
 +
 
 
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.station101'''
 
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.station101'''
  
Line 191: Line 199:
 
! style="background:#ffdead;" width="600" |Description
 
! style="background:#ffdead;" width="600" |Description
 
|-
 
|-
| align=center| busy ||align=center|UI||align=center|RO||Station Busy state: 0 = Free, 1 = Busy  
+
| align="center" |busy|| align="center" |UI|| align="center" |RO||Station Busy state: 0 = Free, 1 = Busy
 
|-
 
|-
| align=center| mailqueue ||align=center|UI||align=center|RO||Station mail queue state: 0 = no mail, 1 = mail queue
+
| align="center" |mailqueue|| align="center" |UI|| align="center" |RO||Station mail queue state: 0 = no mail, 1 = mail queue
 
|-
 
|-
| align=center| linestate||align=center|UI||align=center|RO||Line State:  
+
| align="center" |linestate|| align="center" |UI|| align="center" |RO||Line State:  
0 Board not present  
+
* 0 Board not present  
1 SLI board present, no station  
+
* 1 ASLT board present, no analog station connected
2 SLI board present, station with failure  
+
* 2 ASLT board present, analog station with failure  
3 Station connected to SLI board
+
* 3 ASLT board present, analog station connected  
16 IP station configured, not connected
+
* 16 IP (CCoIP) station/SIP User configured, but not registered
17 IP station connected but not authorized  
+
* 17 IP station connected but not authorized (Note: Currently not supported)
18 IP station connected and registered OK, auth not required
+
* 18 IP (CCoIP) station/SIP User connected and registered OK
19 IP station connected and authorized  
+
* 19 IP station connected and authorized (Note: Currently not supported)
20 IP station connected but no license available
+
* 20 IP station connected but no license available
 
|-
 
|-
| align=center| tonetest ||align=center|UI||align=center|RO|| 0 = Tone test OK, 1 = Failed. (valid from AlphaSys v 11.1.3.2)  
+
| align="center" |tonetest|| align="center" |UI|| align="center" |RO||0 = Tone test OK, 1 = Failed. (valid from AlphaSys v 11.1.3.2)
 
|-
 
|-
| align=center| operational ||align=center|UI||align=center|RO|| 0 – the station is not operational, 1 – the station is operational
+
| align="center" |operational|| align="center" |UI|| align="center" |RO||0 – the station is not operational, 1 – the station is operational
 
|-
 
|-
| align=center| phyno ||align=center|UI||align=center|RO|| Station Physical number
+
| align="center" |phyno|| align="center" |UI|| align="center" |RO||Station Physical number
 
|-
 
|-
| align=center| text ||align=center|BSTR||align=center|RO|| Station display text, maximum 16 characters
+
| align="center" |text|| align="center" |BSTR|| align="center" |RO||Station Display Text, maximum 16 characters
 
|-
 
|-
| align=center| related_to ||align=center|UI||align=center|RW|| Related station in connection
+
| align="center" |relatedto|| align="center" |BSTR|| align="center" |RW||Related station in connection
A digit string representing the directory number of a connected station. Only set if the station is in active connection.  
+
A digit string representing the directory number of a connected station. The item is set when the station in busy, ringing or connection is established.  
  
 
Writing a valid directory number to this item will setup a call between the stations.
 
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:
+
The format of the station reference is the OPC access path of the related station, example: '''node1.station101'''
node1.station101
+
 
An AlphaCom Station reference format is also accepted for local and global numbers, example:
+
An AlphaCom Station reference format is also accepted for local and global numbers, example '''L(1)101''' or '''G2000'''
L(1)101
+
 
  G2000
+
Writing the string “null” to this item will cancel the call.
Writing the string “null” to this item will cancel the call.<br\ >
+
 
'''Note 1''': The value is case sensitive! <u>'''N'''</u>ode1.station101 won't work. Use lower case values, only!
+
'''Note''': The value is case sensitive! <u>'''N'''</u>ode1.station101 won't work. Use lower case values only!
 
|-
 
|-
| align=center| callapri ||align=center|UI||align=center|RO***|| If station A in conversation the the tag is set to the A subcriber priority.
+
| align="center" |callapri|| align="center" |UI|| align="center" |RO***||If station A in conversation the the tag is set to the A subscriber priority.
 
If station B in conversation set to 0.
 
If station B in conversation set to 0.
 
Call Priorities:
 
Call Priorities:
1=Low  
+
*1 = Low  
2=Medium(normal)  
+
*2 = Medium(normal)  
3=High  
+
*3 = High  
4=Alarm  
+
*4 = Alarm  
 
|-
 
|-
| align=center| callmode ||align=center|UI||align=center|RO***|| The Call Mode describing the .relatedto connection. Set for both A-Station and B-Station.
+
| align="center" |callmode|| align="center" |UI|| align="center" |RO***||The Call Mode describing the .relatedto connection. Set for both A-Station and B-Station.
 
Call Mode:
 
Call Mode:
0=No access  
+
*0 = No access  
1=Open call  
+
*1 = Open call  
2=Private call  
+
*2 = Private call  
3=Busy
+
*3 = Busy
4=Connected
+
*4 = Connected
 
|-
 
|-
| align=center| alarmmsg ||align=center|UI||align=center|RW*|| Set up (or disconnect) an ASVP Alarm message to a single station. The command [[ALARM_MSG|$ALRM]] is sent to the AlphaCom. Uses [[Volume and handset override]].
+
| align="center" |alarmmsg|| align="center" |UI|| align="center" |RW*||Set up (or disconnect) an ASVP Alarm message to a single station. The command [[ALARM_MSG|$ALRM]] is sent to the AlphaCom. Uses [[Volume and handset override]].
 
|-
 
|-
| 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.  
+
| align="center" |signaled|| align="center" |UI|| align="center" |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.
 
An AlphaCom call request sent from this station triggers this state. When the call request is removed this state will be reset.
 
|-
 
|-
| 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).
+
| 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.
 
Writing a ‘0’ will cancel the active connection.
 
|-
 
|-
| 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.
+
| 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.
 
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| cr_queue_length ||align=center|UI||align=center|RO|| The length of this stations Call Request Queue.  
+
| align="center" |cr_queue_length|| align="center" |UI|| align="center" |RO||The length of this stations Call Request Queue.
 
|-
 
|-
| 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
+
| 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
 
|-
 
|-
| align=center| cr_iterate_command ||align=center|BSTR||align=center|RW|| Writing “First” (case sensitive) will get the first station in queue to tag cr_iterate_station. Writing “Next” (case sensitive) will get the next station in the queue. If no more stations after a “Next” cr_iterate_station is set to “eol”
+
| align="center" |cr_iterate_command|| align="center" |BSTR|| align="center" |RW||Writing “First” (case sensitive) will get the first station in queue to tag cr_iterate_station. Writing “Next” (case sensitive) will get the next station in the queue. If no more stations after a “Next” cr_iterate_station is set to “eol”
 
|-
 
|-
| 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.
+
| 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.
 
|-
 
|-
| align=center| dialdigits ||align=center|UI4||align=center|RW*|| Simulates Dialing the supplied digits on the station. Up to nine digits are supported through the UI4 varibale. <br/>
+
| align="center" |dialdigits|| align="center" |BSTR|| align="center" |RW*||Simulates Dialing the supplied digits on the station. Up to nine digits are supported through the UI4 varibale. <br />
 
One or more DIAL_DIGITS messages can be used in sequence. The digits are interpreted in the current station state, i.e. dialing both from idle and during connection.
 
One or more DIAL_DIGITS messages can be used in sequence. The digits are interpreted in the current station state, i.e. dialing both from idle and during connection.
 
|-
 
|-
| align=center| dialdak ||align=center|UI||align=center|RW*|| Dial DAK key on a station (DAK 1-100)  
+
| align="center" |dialdak|| align="center" |UI|| align="center" |RW*||Dial DAK key on a station (DAK 1-100)
 
|-
 
|-
| align=center| ckey||align=center|UI||align=center|RW*|| Write value '1' -> Order station to press C key.<br/>Note: C-key has no key-press/key-release operation "  
+
| align="center" |ckey|| align="center" |UI|| align="center" |RW*||Write value '1' -> Order station to press C key.<br />Note: C-key has no key-press/key-release operation "
 
|-
 
|-
| align=center| mkey||align=center|UI||align=center|RW*|| Write value '1' -> Order station to press M-key.<br/> Write value '0' -> Order station to release M-key.  
+
| align="center" |mkey|| align="center" |UI|| align="center" |RW*||Write value '1' -> Order station to press M-key.<br /> Write value '0' -> Order station to release M-key.
 
|-
 
|-
| align=center| output** ||align=center|UI||align=center|RW|| Station output item subtree
+
| align="center" |station_cos|| align="center" |UI|| align="center" |WO||Write value to change the Class of Service, valid values '1' to '16'.
.output.1: 0 = off, 1 = on<br/>
 
.output.2: 0 = off, 1 = on<br/>
 
.output.3: 0 = off, 1 = on<br/>
 
 
|-
 
|-
| align=center| input** ||align=center|UI||align=center|RO|| Station input item subtree
+
| align="center" |output**|| align="center" |UI|| align="center" |RW||Station output item subtree. Read status of output or activate output on an IP station. <br>0 = Off. 1 = On.
.input.1: 0 = off, 1 = on<br/>
+
* INCA stations: Output 1 - 3
.input.2: 0 = off, 1 = on<br/>
+
* Turbine Compact: Output 1 - 8
.input.3: 0 = off, 1 = on<br/>
+
* Turbine Extended: Output 1 - 10
 +
* IPARIO: Output 1 - 8
 
|-
 
|-
| align=center| rco ||align=center|BSTR||align=center|RW|| Station RCO bitmap
+
| align="center" |input**|| align="center" |UI|| align="center" |RO||Station input item subtree<br>0 = Off. 1 = On.
 +
* INCA stations: Input 1 - 3
 +
* Turbine Compact: Input 1 - 8
 +
* Turbine Extended: Input 1 - 10
 +
* IPARIO: Input 1 - 8
 +
|-
 +
| align="center" |rco|| align="center" |BSTR|| align="center" |RW||Station RCO bitmap
 
Obsolete (Removed in 5.0.0.0) - Please use .output
 
Obsolete (Removed in 5.0.0.0) - Please use .output
 
|-
 
|-
| align=center| rci||align=center|UI||align=center|RO|| Station RCI bitmap
+
| align="center" |rci|| align="center" |UI|| align="center" |RO||Station RCI bitmap
 
Obsolete (Removed in 5.0.0.0) - Please use .input
 
Obsolete (Removed in 5.0.0.0) - Please use .input
 
|-
 
|-
| align=center| customparameter1 ||align=center|UI||align=center|RO|| Customized parameter (16 bit integer) set from the Event Handler in AlphaCom.<br>
+
| align="center" |customparameter1|| align="center" |UI|| align="center" |RO||Customized parameter (16 bit integer) set from the Event Handler in ICX-AlphaCom.<br>
 +
 
 
Examples of event action strings:
 
Examples of event action strings:
  @01C7 M7F01 L(1)101 <u>U0</u> W1200 <u>W0</u> <u>W0</u> <u>W0</u> <u>W0</u>: Sends value 0x1200 to node 1, port 61112, station 101
+
  @*D1 M7F01 L(1)101 <u>U0</u> W1200 <u>W0</u> <u>W0</u> <u>W0</u> <u>W0</u>: Sends value 0x1200 for station 1/ node 1 to all nodes from all open OPC ports (61112 and 61113)
@02C4 M7F01 L(1)110 <u>U0</u> W0200 <u>W0</u> <u>W0</u> <u>W0</u> <u>W0</u>: Sends value 0x0200 to node 2, port 61113, station 110
 
  
 
The underlined parameters are not used by the OPC server, and should be set to "0".
 
The underlined parameters are not used by the OPC server, and should be set to "0".
 +
 +
Obsolete format:
 +
@01C7 M7F01 L(1)101 <u>U0</u> W1200 <u>W0</u> <u>W0</u> <u>W0</u> <u>W0</u>: Sends value 0x1200 for station 1/ node 1 to node 1, port 61112 (use this format for AMC-IP software prior to 12.3.3.1)
 +
@02C4 M7F01 L(1)110 <u>U0</u> W0200 <u>W0</u> <u>W0</u> <u>W0</u> <u>W0</u>: Sends value 0x0200 for station 10/ node 1 to node 2, port 61113 (use this format for AMC-IP software prior to 12.3.3.1)
 +
 +
|-
 +
| align="center" |itemref|| align="center" |UI|| align="center" |RO||OPC Item reference (for internal use)
 
|-
 
|-
| align=center| itemref||align=center|UI||align=center|RO|| OPC Item reference (for internal use)
+
|hwtype
 +
|UI
 +
|RO
 +
|Hardware type:
 +
* 0x100 = SIP user (incl. ITSV phones)
 +
* 0x101 = Dummy IP Station
 +
* 0x7024 = SoftClient
 +
* 0x7026 = Mixer SubChannel
 +
* 0x8020 = DualDisplay station
 +
* 0x8021 = INCA_Board_1
 +
* 0x8022 = INCA_Board_2
 +
* 0x8023 = Console station (Flush Master, IP-CROR..)
 +
* 0x8024 = Desktop station
 +
* 0x8026 = IP-ARIO unit
 +
* 0x8121 = Turbine Compact
 +
* 0x8124 = Turbine Extended
 +
* 0x8169 = IP HeavyDuty, TKIE-3/4
 +
* 0x8511 = Ex station
 +
* 0x8630 = ENA-2100 amplifier
 +
* 0x8674 = ENA-2200 amplifier
 +
 
 
|-
 
|-
 +
|sttype
 +
|UI
 +
|RO
 +
|Station type:
 +
*0 = Illegal
 +
*1 = AlphaCom (Intercom server)
 +
*2 = RIO (Remote I/O unit with RCIs and RCOs)
 +
*3 = Control Handler (PC with call queuing features)
 +
*4 = Operator (Passive device without PING/PING, for Simple Link Layer terminal)
 +
*255 = Unknown (External computer with unspecific functionality)
  
 
|}
 
|}
 
  (*) Reads back last written value (or default if not written to)  
 
  (*) Reads back last written value (or default if not written to)  
  (**) Only implemented for IP substations with three outputs, and three inputs.
+
  (**) Items .output and .input are implemented for IP stations only.
 
  (***) Only valid when the .relatedto station is set
 
  (***) Only valid when the .relatedto station is set
 +
 +
 +
{{note|'''Station Items and SIP Users'''
 +
The OPC Station Items are designed for Zenitel (CCoIP) stations and devices. However, most OPC items are also supported when using SIP Users, including the ITSV-x video phones.
 +
 +
OPC Station Items that are '''not supported''' when using SIP users (including ITSV-x phones):
 +
 +
* ''dialdak''
 +
* ''dialdigits''
 +
* ''mkey''
 +
* ''tonetest''
 +
 +
OPC Station Items that are '''partly supported''':
 +
* The ''connect'' and ''relatedto'' items are used for initiating calls. The following limitations apply to these items:
 +
** Initiate call from a Zenitel (CCoIP) station device is supported
 +
** Initiate call from a generic SIP user is '''not supported'''
 +
** Initiate call from an ITSV-x video phone is supported if '''AutoAnswer''' is set to [[ITSV-5_(ICX-AlphaCom)#Using_ITSV-5_as_operator_station|Intercom/Paging only]] in the ITSV phone
 +
 +
* The ''alarmmsg'' is supported if the SIP user has AutoAnswer enabled, and the AlphaPro flag [[Exchange_%26_System_(AlphaPro)#VoIP|Allow SIP Stations in Group Calls and as default speaker in SX Conference]] is enabled.}}
  
 
==OPC Alarm & Events==
 
==OPC Alarm & Events==
Line 311: Line 379:
 
! style="background:#ffdead;" width="700" |Description/Parameters
 
! style="background:#ffdead;" width="700" |Description/Parameters
 
|-
 
|-
| align=center| CallStatus || A Call Initiated from Station A to Station B, with time, priority, and call mode.
+
| align="center" |CallStatus||A Call Initiated from Station A to Station B, with time, priority, and call mode.
 
|-
 
|-
| align=center| StationConnect || A Call connection with connection time and reference.
+
| align="center" |StationConnect||A Call connection with connection time and reference.
 
|-
 
|-
| align=center| StationDisconnect || A call disconnection with time, reference and duration.  
+
| align="center" |StationDisconnect||A call disconnection with time, reference and duration.
 
|-
 
|-
| align=center| CallReject || The Call was not accepted (Disconnect without a Connect) with time
+
| align="center" |CallReject||The Call was not accepted (Disconnect without a Connect) with time
 
|-
 
|-
| align=center| CallRequest || A Call Request with Receiving Station, Sending Station, mail tag, priority, mail text and time.
+
| align="center" |CallRequest||A Call Request with Receiving Station, Sending Station, mail tag, priority, mail text and time.
 
|-
 
|-
| align=center| RequestRemoved || A Call Request Removed with Receiving Station, and mail tag
+
| align="center" |RequestRemoved||A Call Request Removed with Receiving Station, and mail tag
 
|-
 
|-
| align=center| StationOK || Station Up and OK with station type details. (sent when a station with failure is back up)
+
| align="center" |StationOK||Station Up and OK with station type details. (sent when a station with failure is back up)
 
|-
 
|-
| align=center| StationFail || Station Failure with details.
+
| align="center" |StationFail||Station Failure with station type details.
 
|-
 
|-
| align=center| StationSignaled || The station has sent a Call Request (Requires Attention)
+
| align="center" |StationSignaled||The station has sent a Call Request (Requires Attention)
 
|-
 
|-
| align=center| StationSignalHandled || The sent Call Request has been handled (removed from receiving queue)
+
| align="center" |StationSignalHandled||The sent Call Request has been handled (removed from receiving queue)
 
|-
 
|-
 
|}
 
|}
Line 341: Line 409:
 
! style="background:#ffdead;" width="700" |Description
 
! style="background:#ffdead;" width="700" |Description
 
|-
 
|-
| align=center| Type || The OPC Event type, possible values:
+
| align="center" |Type||The OPC Event type, possible values:
 
  Simple
 
  Simple
 
  Condition
 
  Condition
 
  NoEvent
 
  NoEvent
 
|-
 
|-
| 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}'''
+
| 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.
 
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.
 
|-
 
|-
| align=center| Severity || The Event severity in the range 1..1000  
+
| align="center" |Severity||The Event severity in the range 1..1000
 
|-
 
|-
| align=center| Condition State || The state to set for a condition event:
+
| align="center" |Condition State||The state to set for a condition event:
 
  Alarm
 
  Alarm
 
  Normal
 
  Normal
 
|-
 
|-
| align=center| Message Text || A Set of pre-defined formats or a custom format with possible parameter insertion.
+
| align="center" |Message Text||A Set of pre-defined formats or a custom format with possible parameter insertion.
 
|-
 
|-
 
|}
 
|}
Line 370: Line 438:
 
! style="background:#ffdead;" width="700" |Description/Example
 
! style="background:#ffdead;" width="700" |Description/Example
 
|-
 
|-
| align=center| OneLine || Message formatted in a single line humane readable with most of the message information
+
| 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>
 
  <tt>StationConnect: (Node 3, DirNo 1001)->(Node 3, DirNo 1000) at 31.10.2007 10:52:29, Ref:100</tt>
 
|-
 
|-
| align=center| Detailed|| A multiline format with all information in a message.
+
| align="center" |Detailed||A multiline format with all information in a message.
 
  <tt>AlphaNet Message: Station Connect
 
  <tt>AlphaNet Message: Station Connect
 
  Connection at time: 31.10.2007 10:52:29
 
  Connection at time: 31.10.2007 10:52:29
Line 380: Line 448:
 
  Station B: Node 3, DirNo 1000</tt>
 
  Station B: Node 3, DirNo 1000</tt>
 
|-
 
|-
| align=center| Short || A very short message with little information (i.e for STATION_STATE only the directory number is presented).
+
| 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>
 
  <tt>(Node 3, DirNo 1001)->(Node 3, DirNo 1000)</tt>
 
|-
 
|-
| align=center| XML || Detailed information in a XML format with no formatting (line shifts, indenting etc).
+
| 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>
+
  <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>
 
|-
 
|-
| align=center| XMLPretty || Same as above, but with line formatting.
+
| align="center" |XMLPretty||Same as above, but with line formatting.
 
  <tt><ALPHAMSG TYPE=StationConnect>
 
  <tt><ALPHAMSG TYPE=StationConnect>
 
   <STATION_A>
 
   <STATION_A>
Line 397: Line 465:
 
   </STATION_B>
 
   </STATION_B>
 
   <TIME>31.10.2007 10:52:29</TIME>
 
   <TIME>31.10.2007 10:52:29</TIME>
   <REF>100</REF>
+
   <ref>100</ref>
 
  </ALPHAMSG>
 
  </ALPHAMSG>
 
  </tt>
 
  </tt>
 
|-
 
|-
| align=center| Custom || Customable strings.
+
| align="center" |Custom||Customable strings.
 
Format string: “Call Connect {0}->{1} at {2}, ref={3}”
 
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>
 
  <tt>Call Connect Node 3, DirNo 1001->Node 3, DirNo 1000 at 31.10.2007 10:52:29, ref=100</tt>
Line 407: Line 475:
 
|}
 
|}
  
== Related articles==
+
==Related articles==
* [[OPC Server - Installation]]
+
 
[[Category:AlphaCom E Software]]
+
*[[OPC Classic for AlphaCom - Installation]]
 +
*[[OPC UA for AlphaCom - Installation]]
 +
 
 +
[[Category:OPC]]

Latest revision as of 14:46, 27 March 2024

AI.png

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)
  • OPC UA

The Server is running on the Microsoft .NET framework, and OPC Core Components must be installed on the PC running the server.

Prerequisites:

  • .NET Framework 4.6.2
  • OPC Foundation OPC Core Components or Advosol OPC Core Components for 32-bit/64-bit operation


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

When the number of licensed stations 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 AlphaCom OPC AE

A seperate ServerConfiguration Tool will be installed together with the AlphaComOPCServer.

For more details on configuration see OPC Classic for AlphaCom - Installation


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.

OPC Item tree structure:

Stentofon.AlphaCom.1
-> AlphaComOPCServer
-> AlphaGlobal
    -> Masters
-> Node1
    -> rci
        -> i{n}
    -> rco
        -> o{n}
    -> groups
        -> g{n}
    -> station{xxx}


OPC Server Item Table

These items relates to the OPC Server. Root DA Item is AlphaComOPCServer


Item Name Data Type Access Description
Version BSTR RO The AlphaComOPCServer Version (1st release is 4.0.0.0)
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
LicenseCode ?? RO Obsolete (To be removed)
LicenseStatus ?? RO Obsolete (To be removed)



Global Item Table

These items relates to the Master stations defined in the OPC Server. Root DA Item is AlphaGlobal


Item Name Data Type Access Description
Masters.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 be used.



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

Node status reported from the AlphaCom

0 – No node connection 
1 – Node connection OK
4 – No OPC license
6 – Overlapping registration of same OPC device from different nodes
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.
rco* UI RW Remote Controlled Outputs Item Subtree

Sub Items:

RW: .o{n}.state
WO: .o{n}.setwithtime
WO: .o{n}.setvalue

Where n is node RCO number in range 1..500
Note1! RCO items range needs to be configured in the OPCServerConfigurator tool
Note2! Setting .setwithtime value to 0 will set rco on infinity!

rci* UI RO Remote Controlled Inputs Item Subtree

Sub Items:

RO: .i{n}.state

Where n is node RCI number in range 1..140
Note1! RCI items range needs to be configured in the OPCServerConfigurator tool
Note2! RCI event update needs to be configured in AlphaPro, see alse AlphaPro OPC Config

groups UI RW Local station Groups

Sub Items:

RW: .g{n}.playmsg -> Play an alarm message to group (with optional parameters). Sends $GM command to AlphaCom.
RW: .g{n}.stopmsg -> Stop alarm message playing to group. Sends $GMS command to AlphaCom.
RW: .g{n}.alarmmsg -> Simplified start/stop alarm message playing to group (write 0 to stop playing). 
                      Sends $ALRM command to AlphaCom. Uses Volume and handset override.

Where n is node Group number in range 1..250
Item value: Alarm Message number for playback in group.
Item value for .playmsg: In the simplest form the message number as above
Other optional parameters can be coded into the four bytes of I4 data type (one parameter in each byte):

byte1,           {n}: n -> Announcement message for playback in group. 
byte2,     {n}*0x100: n -> SVP Message repetitions 0-255. 0 or unspecified means 1 repetition. 255 means repeat indefinitely (use .stopmsg  to stop) 
byte3,   {n}*0x10000: n -> Gong type. 1 = no gong. 255 or unspecified = use gong type of group.
byte4, {n}*0x1000000: n -> Group call priority, default 0 = use priority of group call.  

Examples:

.playmsg =       0x2 -> Play Alarm message number 2 (No repetition and use group gong and priority ) 
.playmsg =     0x302 -> Play Alarm message number 2, with 3 repetitions 
.playmsg =   0x10302 -> Play Alarm message number 2, with 3 repetitions, using no gong 
.playmsg = 0x2ff0302 -> Play Alarm message number 2, with 3 repetitions, use gong type of group, and priority 2
.stopmsg =       0x2 -> Stop Playing Message number two

Note1! Group items range needs to be configured in the OPCServerConfigurator tool

(*)Note! RCI/RCO states are updated on state changes, but are not synchronized at OPC Server startup


Station Item Table

These items relates to a Zenitel Intercom station/device.

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.station101


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 ASLT board present, no analog station connected
  • 2 ASLT board present, analog station with failure
  • 3 ASLT board present, analog station connected
  • 16 IP (CCoIP) station/SIP User configured, but not registered
  • 17 IP station connected but not authorized (Note: Currently not supported)
  • 18 IP (CCoIP) station/SIP User connected and registered OK
  • 19 IP station connected and authorized (Note: Currently not supported)
  • 20 IP station connected but no license available
tonetest UI RO 0 = Tone test OK, 1 = Failed. (valid from AlphaSys v 11.1.3.2)
operational UI RO 0 – the station is not operational, 1 – the station is operational
phyno UI RO Station Physical number
text BSTR RO Station Display Text, maximum 16 characters
relatedto BSTR RW Related station in connection

A digit string representing the directory number of a connected station. The item is set when the station in busy, ringing or connection is established.

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 or G2000

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

Note: The value is case sensitive! Node1.station101 won't work. Use lower case values only!

callapri UI RO*** If station A in conversation the the tag is set to the A subscriber priority.

If station B in conversation set to 0. Call Priorities:

  • 1 = Low
  • 2 = Medium(normal)
  • 3 = High
  • 4 = Alarm
callmode UI RO*** The Call Mode describing the .relatedto connection. Set for both A-Station and B-Station.

Call Mode:

  • 0 = No access
  • 1 = Open call
  • 2 = Private call
  • 3 = Busy
  • 4 = Connected
alarmmsg UI RW* Set up (or disconnect) an ASVP Alarm message to a single station. The command $ALRM is sent to the AlphaCom. Uses Volume and handset override.
signaled 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 Writing “First” (case sensitive) will get the first station in queue to tag cr_iterate_station. Writing “Next” (case sensitive) will get 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.
dialdigits BSTR RW* Simulates Dialing the supplied digits on the station. Up to nine digits are supported through the UI4 varibale.

One or more DIAL_DIGITS messages can be used in sequence. The digits are interpreted in the current station state, i.e. dialing both from idle and during connection.

dialdak UI RW* Dial DAK key on a station (DAK 1-100)
ckey UI RW* Write value '1' -> Order station to press C key.
Note: C-key has no key-press/key-release operation "
mkey UI RW* Write value '1' -> Order station to press M-key.
Write value '0' -> Order station to release M-key.
station_cos UI WO Write value to change the Class of Service, valid values '1' to '16'.
output** UI RW Station output item subtree. Read status of output or activate output on an IP station.
0 = Off. 1 = On.
  • INCA stations: Output 1 - 3
  • Turbine Compact: Output 1 - 8
  • Turbine Extended: Output 1 - 10
  • IPARIO: Output 1 - 8
input** UI RO Station input item subtree
0 = Off. 1 = On.
  • INCA stations: Input 1 - 3
  • Turbine Compact: Input 1 - 8
  • Turbine Extended: Input 1 - 10
  • IPARIO: Input 1 - 8
rco BSTR RW Station RCO bitmap

Obsolete (Removed in 5.0.0.0) - Please use .output

rci UI RO Station RCI bitmap

Obsolete (Removed in 5.0.0.0) - Please use .input

customparameter1 UI RO Customized parameter (16 bit integer) set from the Event Handler in ICX-AlphaCom.

Examples of event action strings:

@*D1 M7F01 L(1)101 U0 W1200 W0 W0 W0 W0: Sends value 0x1200 for station 1/ node 1 to all nodes from all open OPC ports (61112 and 61113)

The underlined parameters are not used by the OPC server, and should be set to "0".

Obsolete format:

@01C7 M7F01 L(1)101 U0 W1200 W0 W0 W0 W0: Sends value 0x1200 for station 1/ node 1 to node 1, port 61112 (use this format for AMC-IP software prior to 12.3.3.1)
@02C4 M7F01 L(1)110 U0 W0200 W0 W0 W0 W0: Sends value 0x0200 for station 10/ node 1 to node 2, port 61113 (use this format for AMC-IP software prior to 12.3.3.1)
itemref UI RO OPC Item reference (for internal use)
hwtype UI RO Hardware type:
  • 0x100 = SIP user (incl. ITSV phones)
  • 0x101 = Dummy IP Station
  • 0x7024 = SoftClient
  • 0x7026 = Mixer SubChannel
  • 0x8020 = DualDisplay station
  • 0x8021 = INCA_Board_1
  • 0x8022 = INCA_Board_2
  • 0x8023 = Console station (Flush Master, IP-CROR..)
  • 0x8024 = Desktop station
  • 0x8026 = IP-ARIO unit
  • 0x8121 = Turbine Compact
  • 0x8124 = Turbine Extended
  • 0x8169 = IP HeavyDuty, TKIE-3/4
  • 0x8511 = Ex station
  • 0x8630 = ENA-2100 amplifier
  • 0x8674 = ENA-2200 amplifier
sttype UI RO Station type:
  • 0 = Illegal
  • 1 = AlphaCom (Intercom server)
  • 2 = RIO (Remote I/O unit with RCIs and RCOs)
  • 3 = Control Handler (PC with call queuing features)
  • 4 = Operator (Passive device without PING/PING, for Simple Link Layer terminal)
  • 255 = Unknown (External computer with unspecific functionality)
(*) Reads back last written value (or default if not written to) 
(**) Items .output and .input are implemented for IP stations only.
(***) Only valid when the .relatedto station is set


Note icon Station Items and SIP Users

The OPC Station Items are designed for Zenitel (CCoIP) stations and devices. However, most OPC items are also supported when using SIP Users, including the ITSV-x video phones.

OPC Station Items that are not supported when using SIP users (including ITSV-x phones):

  • dialdak
  • dialdigits
  • mkey
  • tonetest

OPC Station Items that are partly supported:

  • The connect and relatedto items are used for initiating calls. The following limitations apply to these items:
    • Initiate call from a Zenitel (CCoIP) station device is supported
    • Initiate call from a generic SIP user is not supported
    • Initiate call from an ITSV-x video phone is supported if AutoAnswer is set to Intercom/Paging only in the ITSV phone


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 station type details.
StationSignaled The station has sent a Call Request (Requires Attention)
StationSignalHandled The sent Call Request has been handled (removed from receiving queue)

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 the ServerConfiguration Tool. A set of predefined formats is defined but the OPC integrator can also choose to use a customable format.

Note that the OPC server reads the configuration at startup. If you change the Event Message format the OPC server needs to be restarted for the changes to take effect. Restart the OPC server by stopping all OPC clients, and start them again.

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

Related articles