BM Cimplicity Networking Master
BM Cimplicity Networking Master
1
Networking
No part of this publication may be reproduced in any form, or stored in a database or retrieval system, or transmitted or distributed in any
form by any means, electronic, mechanical photocopying, recording or otherwise, without the prior written permission of General Electric
Company. Information contained herein is subject to change without notice.
Trademark Notices
GE, the GE Monogram, and Predix are either registered trademarks or trademarks of General Electric Company.
Microsoft® is a registered trademark of Microsoft Corporation, in the United States and/or other countries.
We want to hear from you. If you have any comments, questions, or suggestions about our documentation, send them to the following email
address:
doc@ge.com
Chapter 1. CIMPLICITY Server to Viewer Announcements.........................................................9
About CIMPLICITY Server to Viewer Announcements.............................................................. 9
1. Set up the Viewer to Server Connection...................................................................................9
2. Check that Point Values Display on the Viewer.....................................................................11
3. CimView Screen Viewer Configuration Guidelines............................................................... 16
3. CimView Screen Viewer Configuration Guidelines....................................................... 16
3.1 Specify Viewer Global Parameters................................................................................16
3.2. Set up the CimView Screen Source for the Viewer.....................................................18
3.3. Set up Points to be Seen from a Viewer...................................................................... 19
4. Troubleshooting Checklist....................................................................................................... 19
4. Troubleshooting Checklist............................................................................................... 19
4.1. Double-check the CIMPLICITY License Key............................................................. 20
4.2. Computer Name/IP Address Resolution.......................................................................20
4.3. Multiple NIC's on the Server........................................................................................21
4.4. Connections on Port 32000.......................................................................................... 22
Chapter 2. Remote Project Configuration...................................................................................... 24
About Remote Project Configuration.......................................................................................... 24
1. Configure a Remote Project.................................................................................................... 24
1. Configure a Remote Project............................................................................................ 24
Step 1. Open a Remote Project Dialog Box........................................................................25
Levels of Redundancy................................................................................................................173
Recovery Procedures..................................................................................................................233
Recovery Procedures..........................................................................................................233
Normal Operating Procedures............................................................................................233
IP Status API......................................................................................................................251
IP Status API Functions.....................................................................................................252
CCM2 Communications.....................................................................................................259
Allen-Bradley Communications.........................................................................................260
Modbus TCP/IP..................................................................................................................262
Point Bridge........................................................................................................................262
Series 90 TCP/IP Triplex Device Communications.......................................................... 262
Connection Failures............................................................................................................263
As well as supporting Server to Viewer announcements, Servers may also be networked together to
allow the display of data from many Servers on a Server.
CIMPLICITY v.6.2 and over provides straightforward methods for sending and receiving project
announcements from the Server to the Viewer.
Node name Data from the project that started first on the node will display on the Viewer.
IP address Data from the project that started first at the IP address will display on the Viewer.
Following is an overview for setting up, testing and troubleshooting a Viewer to Server connection.
Step Description
1 Set up the Viewer to Server connection.
(page
9)
4 Troubleshooting checklist.
(page
19)
2. Ping the Server from the Viewer to obtain a basic confirmation that the Viewer can access the
Server.
6. Enable Broadcast/Multi-cast on the Server to send project announcements over the network.
a. Open the project that will be broadcast and/or multi-cast to the Viewers in the
CIMPLICITY Workbench.
b. Click Project>Project Properties on the Workbench menu bar. The Project Properties
dialog box opens.
c. Select the Options tab.
d. Check one or both of the following.
Note: Confirm that there are no other projects broadcasting on the network with the same
name.
B Get a point value from the Server using a command line utility.
(page
12)
C Get a point value from the Server through the Point Control Panel.
(page
14)
a. Click OK.
CIMPLICITY provides a basic command line utility that you can use to connect to the Server in
a simple straight-forward manner; extraneous factors can be kept at a minimum.
Where
...\CIMPLICITY\exe\
a. Type ptq_onchange.exe
b. Press Enter.
B Name the qualified point that should return a value, using the IP address.
Where Is the
<Server IP address> IP address of the Server being contacted, which qualifies the point.
a. Press Enter.
a. Enter a valid User ID and Password for the project you are trying to access.
b. Click OK to close the CIMPLICITY® Login dialog box.
If there is a problem accessing the Server or displaying the point value, go to the
Troubleshooting checklist (page 19).
8. Type ptq_onchange.exe
9. Press Enter.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 14
12. Enter a valid User ID and Password for the project you are trying to access.
14. Re-use the ptq_onchange.exe utility, using the Server's node name and the same point ID.
a. Type the following at the c:\> prompt.
ptq_onchange.exe.
a. Press Enter.
If there is a problem accessing the Server or displaying the point value, go to the
Troubleshooting checklist (page 19).
15. Re-use the ptq_onchange.exe utility, using the Server's project name and the same point ID.
a. Type the following at the c:\> prompt.
ptq_onchange.exe.
a. Press Enter.
b. Type \\<Project name>\<Point ID>
c. Enter your User ID and Password.
If there is a problem accessing the Server or displaying the point value, go to the
Troubleshooting checklist (page 19).
a. Get a point value from the Server through the Point Control Panel
17. Select (All) Programs>Proficy HMI SCADA - CIMPLICITY version>Point Control Panel
.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 15
Note: You can also enter the Server's IP address or node name in the Project field. However, the available
points will be in the first project that started on the Server. If more than one project is running on the Server, it
may not be the project you want.
B Click Browse.
D Click OK.
If there is a problem accessing the Server or displaying the point value, go to the
Troubleshooting checklist (page 19).
Note: Review CimView screen Viewer configuration guidelines (page 16) for CimView
screen setup on the Viewer.
21. Check if you are able to see values for points configured by the CimView screen after one has
been set up.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 16
Note:
• If you can see point values in the Point Control Panel, but not on your CimView screen
(page 16), the problem could be with your point qualification (page 19).
• If you can see point values in the Point Control Panel and on a CimView screen, you are
connected.
• If you cannot see point values go through the troubleshooting checklist (page 19).
If you cannot see point values after troubleshooting, contact CIMPLICITY support.
Step Description
3.1 Specify Viewer global parameters.
(page
16)
• Create the same global parameter values for the Server and Viewers.
• Create different global parameter values for the Server and Viewer.
• /Keypad option on a Viewer.
Create the same global parameter values for the Server and Viewers.
1. (On the Server) make sure that you have configured the required global parameters for the
CIMPLICITY project.
Create different global parameter values for the Server and Viewer.
Note: This project will be used only to create global parameters for the Viewer.
6. Configure global parameters with the values that will be used on one or more of the Viewers.
10. Repeat 1 – 5 until you have created, copied and pasted all of the global parameters that must be
different for different Viewers.
If you want users to display a keypad on the Viewer the option configure the …\Proficy
CIMPLICITY\Data\gefkeypad.cfg file on each Viewer.
There are two options for displaying CimView screens on the Viewer.
• Each viewer can have its own copy of the screen files (.cim) in a local directory.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 19
Note:
Use the following techniques to make sure the viewer can locate the projects for each point:
4. Troubleshooting Checklist
4. Troubleshooting Checklist
Step Description
4.1 Double-check the CIMPLICITY license key.
(page
20)
Step Description
4.4 Connections on Port 32000.
(page
22)
1. Make sure that the license hardware key is secure in the Server's and Viewer's parallel or USB
port.
If you are trying to connect to the Server by node name, it is possible that your Viewer and Server
may not be able to resolve each other’s node names.
If you are trying to connect to the Server by IP address and the Server has multiple NIC (network)
cards, make sure that you are trying to access an IP address that is being used
If the computer has more than one NIC, a Network tab will display.
Note: If both NIC cards are in what would normally be considered a class A (001.y.z.w to
126.y.z.w) or Class B network (128.y.z.w to 191.y.z.w) it is possible that the network class will
supersede the subnet mask. In this case, It may be advisable to try a 10.y.z.w network on the
internal, non-exposed, NIC card.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 22
If you do not see connections on Port 32000 or only on UDP port 32000
If you do not see connections on both UDP port 32000 and TCP port 32000
Try to un-install and reinstall the TCP/IP protocol. Consult Microsoft documentation.
8. Try to un-install and reinstall the TCP/IP protocol on the Viewer. Consult your Microsoft
documentation.
• Router listens on TCP ports 32000, 32256, 32512 and 32768 for incoming connections.
Not configurable.
• Router listens on UDP port 32000 for project announcements. Not configurable.
• RtrPing uses TCP port 4000 by default. Configurable using REDUND_PROBE_PORT
global parm. This is for server redundancy.
• Cabling redundancy uses ports 5000 - 6000. Configurable in CIMHOSTS.TXT file.
Chapter 2. Remote Project Configuration
If your computer is on a network with other CIMPLICITY computers, you can retrieve point
information from projects running on the other computers in a variety of ways.
You can:
Remote Projects must be defined if Point Bridge or the Point Data Logger need to get point values
from projects on other computers that run CIMPLICITY projects.
Note: The Remote Registry Service must be running in order for remote node features, for
example, Server Redundancy, start/stop projects CIMPLICITY Options System Sentry, Database
Logger and Login Panel to work properly.
If you are configuring a remote project on Vista, you will need to:
• Set the Remote Registry Service to automatic start mode. It is not automatic by default.
• Make sure that the following are added to the firewall:
• CIMPLICITY process
Networking | 2 - Remote Project Configuration | 25
• File/printer sharing.
Step Description
Step 1 Open a Remote project dialog box.
(page
25)
Step Description
Option Create a new remote project.
1.1 (page
25)
Either Or
The New Project dialog box opens when you use any method.
8. Click OK.
Networking | 2 - Remote Project Configuration | 27
Either Or
Options on the General tab in the Remote Project dialog box are as follows.
Option Description
User ID Enter the CIMPLICITY User ID that will be accepted for the remote project login.
Password Enter a password, if you want to require one, for the remote project login.
Enable
• Check to enable the login.
• Clear so login will not be made.
Resident
Process Use • Check so resident processes will automatically log in to remote projects. Users will still have to
Only log in at the Application level.
• Clear so users will not have to log in at the Application level, and they are automatically given
the same privileges as the CIMPLICITY User ID for the remote login.
If you want to use your current project as an Enterprise Server, you must define a remote project for
each project in your enterprise from where you want to concentrate data or alarm information.
The Resource and Device are pre-configured on the Enterprise tab in the Remote Project dialog box.
Users who want to view point and alarm information from a remote project on an Enterprise Server
must have the remote projects Resource configured in their view.
Collect Collects point information from the provider project. All points on the remote project that have been configured
points as Enterprise Points are available to the current project. Points from remote projects are identified by Remote
ID and Point ID as < remote_id >\< point_id > for CimView and Point Control Panel windows.
Note:
• Only one level of concentration is supported. In other words, if you are connecting to a remote
project that has local and concentrated points, you will only be able to collect local points from
the remote project.
• When the Enterprise Server project starts:
Point Bridge, which is part of the Base System, enables separate CIMPLICITY systems to exchange
point data.
Review:
• Have a complex system architecture where users on Viewers need to display points from
Servers.
• Want to generate alarms on your Server for points on another Server.
Up (page 30)
1. Configure a Remote Project for the source system on the destination system.
Important: Make sure the Device Name matches the Remote Project name.
4. Define the points you want to retrieve from the source system.
Important: Make sure that the Point Address matches the source project's point name.
The data types and number of elements of the two points have to match.
Networking | 2 - Remote Project Configuration | 31
When the source point changes value, the point value is updated on the local system.
• The local point and the associated remote (source) point must have identical:
• Point Class,
• Data Type, and
• Number of Elements.
• Reading and writing points are supported.
If a point is configured for WRITE access on both systems, a user on the Point Bridge system
can set the value of the Point Bridge point.
Up (page 30)
Point Bridge Points require the following entries in the device Point Properties dialog box on the
destination server.
Note: The name does not need to match the Point ID on the source system, but it can if desired.
The Point Properties dialog box General and Device tabs include entry decisions that need to
address Point Bridge requirements.
• Point Bridge Point Properties: General Tab
• Point Bridge Point Properties: Device Tab
The following entry decisions need to take Point Bridge into consideration
Networking | 2 - Remote Project Configuration | 32
Item Description
1 Read Specifies if the Point Bridge process can set the value of a point on a source system.
only
2 Change If change approval is required to set points, the change approval configuration, including valid
approval user names/passwords must be the same on both the source and destination machine. If the
configuration is not the same Point Bridge will treat the point as an invalid configuration and log an
error.
Option Description
1 Device ID Node name of the source system where the Point Translation process is running.
4 Diagnostic Diagnostic points are not available for the Point Bridge. Clear the Diagnostic Data
Data checkbox.
5 Poll After Set Poll After Set is not supported by Point Bridge. Clear the Poll After Set check box.
Data coercion between points of the following types is supported provided that the data value is
within the range of both the source and destination:
• SINT
• INT
• DINT
• QINT
• USINT
• UINT
• UDINT
• UQINT
• REAL
Networking | 2 - Remote Project Configuration | 34
• BOOL
Note: If the IP addresses used by the RAS server are for a different network than the one for
the server on which the CIMPLICITY project is running, you may need to establish routes from the
CIMPLICITY project computer to the RAS link network. You can use Windows RAS tools to do
this. Consult Microsoft Windows documentation for details.
If the Use default gateway on remote network in the TCP/IP options of the RAS PhoneBook entry
used to dial the remote network:
Not on the same subnet as the RAS Server's RAS connection to the default gateway assigned by the RAS
NIC server.
Not on the same subnet as the RAS server's assigned RAS IP address RAS server's NIC.
Networking | 3 - Remote Access | 38
• Your LAN is divided into two Class C subnets, 1.1.1.x and 1.1.2.x,
• You configure your computer on the 1.1.1.x subnet to use RAS with the Use default gateway on
remote network option enabled.
All packets that you send to the 1.1.2.x subnet will be sent via the RAS connection...not your
computer's NIC.
• Use the Windows route.exe command to add a static route to your TCP/IP route table
• The static route should instruct Windows to send packets intended for the 1.1.2.x subnet to a
router on the 1.1.1.x subnet.
Consult Microsoft Windows documentation for details about the route.exe command.
• It will take up to 10 seconds for a list of CIMPLICITY projects to be received by the RAS
Client.
• You will not be able to use a computer running CIMPLICITY Computer Cabling Redundancy
as the RAS server.
• Connection speeds below 4800 Baud are not supported.
• You can have only one RAS connection at a time from a RAS Client to a RAS Server.
• CimView screens and CimLayout screens can be converted into HTML files and worked with
through Proficy WebSpace.
• Integration with WebSpace simply includes starting/stopping the WebSpace server through
CIMPLICITY and creating the CIMPLICITY HTML files.
Step Description
1 WebSpace: CIMPLICITY Configuration Location
(page
41)
Step Description
5 WebSpace: Create a CimLayout Web Page
(page
51)
Check or clear Start Proficy WebSpace server at boot time (page 41) to do either of the
following.
Check Starts the Proficy WebSpace Application Publishing Service automatically at boot time.
Clear Does not start the Proficy WebSpace Application Publishing Service at boot time.
The WebSpace server will start each time the server reboots.
Note: Proficy WebSpace requires the Microsoft Internet Information Server (IIS). However, IIS
must be started separately.
Refer to Proficy WebSpace and Microsoft Windows documentation for more details.
Start the Proficy WebSpace Application Publishing Service through the Services Window
The Proficy WebSpace Application Publishing Service can be configured to start automatically,
automatically (delayed start), manually or be disabled in the Microsoft Services window like any
other Microsoft service.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 43
Click the Proficy WebSpace Admin (page 41) button to open the Proficy WebSpace
Administration window.
Consult the WebSpace documentation that is available in the Thin Client Server Administration
window for details about the Proficy WebSpace Administration and client configuration.
If you plan to have users logon to WebSpace through a specified URL, WebSpace simply requires
that you create an entry point Web page. During the WebSpace session, the CimView Open and
Overlay screens can launch other screens.
A CimView screen can be converted quickly into a Web page through the CIMPLICITY Options
dialog box.
Note: Web pages that are created in WebSpace's Create Web Page dialog box use WebSpace.
rect 0, 19, 23, 43 4.1. Web Page: Screen Selection (page 45)
rect -1, 54, 22, 78 4.2. Web Page: Screen Options (page 47)
rect 0, 196, 23, 220 4.3. Web Page: Update Rates (page 47)
rect 0, 260, 23, 284 4.4. Web Page: Printer Options (page 49)
Section Description
4.1 (page WebSpace Web Page: Screen Selected
45)
Note: Selections (except for Variables) in the Create Web Page dialog box that are made for one
Web page become the default selections for the next Web page.
The name assigned to the HTML file that is created from the selected CimView screen will be
included in the Logon URL.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 46
A CimView screen
The selected CimView screen (*.cim or *.cimrt) will display when a user logs onto the Web site.
Where
guide: Guideline
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 47
The full path and HTML filename can be entered easily, as follows.
1. Click Browse Page to select the directory for the file location.
2. Do the following.
C Click Save.
the Find Web Page browser closes; the complete path and HTML filename are entered in the Web
Page file field.
1. Click Add.
The cursor goes to the first or next line.
4. Click Delete.
Wait n seconds and then update the screen every n seconds represent command line arguments.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 48
Enter values and CIMPLICITY will enter the complete argument in the HTML file.
WebSpace will continue to send updates to the client at the normal rate for the number of seconds
entered until the user stops using the keyboard and/or mouse.
When the number of seconds to wait before the user stops using the keyboard and/or mouse have
been reached, WebSpace will begin the Time between updates when quiescent update rate and
wait the number of seconds entered in the field between each update.
Time between updates while the user is using the mouse and/or keyboard.
Important: Updates to clients require a trade-off between screen size/update frequency and
server CPU usage; the more data a screen needs to transmit and more frequent the updates, the more
CPU will be required. These factors in relation to the amount of RAM installed on the server, directly
affect how many clients can connect at the same time.
A way to optimize update rates and the number of clients that can connect is to
1. Determine which screens need fast updates for some users and which can update more slowly.
The WebSpace Object options represent the parameters of the WebSpace ActiveX object browser
plugin.
Step Description
A Compression.
(page
49)
C Autoconfigure printers.
(page
50)
A: Compression
Check to enable compression.
Default: Checked.
State Description
Checked Closing the Program Window closes the associated browser window and ends the user’s WebSpace
session.
Clear Closing the Program Window does not close the associated browser window and does not end the user’s
WebSpace session
C: Autoconfigure Printers
WebSpace can provide transparent access to client-side printers.
Option Description
Default (Default) Only attempt to automatically configure the default printer at startup, enabling clients to print a
printer only WebSpace screen on the default printer only.
All Attempt to automatically configure all client printers at startup, enabling clients to select and print on any
available printer.
Note: If the print option is changed after a client session, it may be necessary to delete a print.ini
file that was created when CimView printing used during a WebSpace session.
The file is generally located in the c:\documents and settings\<user name>\Local Settings
\Application Data directory.
The next time CimView printing is used during a WebSpace session on the client machine, a new
print.ini file will be created with the new settings.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 51
rect 0, 37, 22, 66 5.1. CimLayout Web Page: CimLayout Configuration Selected (page 52)
rect 0, 119, 22, 148 5.2. CimLayout Web Page: Printer Options (page 54)
Section Description
5.1 (page CimLayout Web page: Screen selected.
52)
The name assigned to the HTML file that is created from the selected CimLayout file will be
included in the Logon URL.
A CimLayout file
The selected CimLayout configuration will display when a user logs onto the Web site.
• Enter the path and the CimLayout file that you select.
• Click Browse layout file to find and select the CimLayout file.
Where
guide: Guideline
The full path and HTML filename can be entered easily, as follows.
1. Click Browse Page to select the directory for the file location.
2. Do the following.
C Click Save.
the Find Web Page browser closes; the complete path and HTML filename are entered in the Web
Page file field.
The CimLayout Object options represent the parameters of the WebSpace ActiveX object browser
plugin.
Step Description
A Compression.
(page
54)
C Autoconfigure printers.
(page
55)
A: Compression
Check to enable compression.
Default: Checked.
State Description
Checked Closing the Program Window closes the associated browser window and ends the user’s WebSpace
session.
Clear Closing the Program Window does not close the associated browser window and does not end the user’s
WebSpace session
C: Autoconfigure Printers
WebSpace can provide transparent access to client-side printers.
Option Description
Default (Default) Only attempt to automatically configure the default printer at startup, enabling clients to print a
printer only WebSpace screen on the default printer only.
All Attempt to automatically configure all client printers at startup, enabling clients to select and print on any
available printer.
Note: If the print option is changed after a client session, it may be necessary to delete a print.ini
file that was created when CimView printing used during a WebSpace session.
The next time CimView printing is used during a WebSpace session on the client machine, a new
print.ini file will be created with the new settings.
Important: To ensure normal WebSpace functionality Disallow file open in CimView should be
clear.
Default: Checked.
The CIMPLICITY HMI Webspace Plug-in is introduced to enable users to access CIMPLICITY
CimView screens from Operations Hub. It can be integrated with other Operations Hub plug-ins
for better consolidation and visualization of data. This provides the users an end-to-end solution for
better data analysis, visualization and monitoring.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 57
Video Links
Watch the following videos for demos on CIMPLICITY HMI Webspace Plug-in Setup:
Architecture Diagram
Components
• Operations Hub Server allows you to collect and analyze data from other machines and
applications. It provides a user-friendly interface to create components of an application such as
queries, database tables (called entities), events, email templates, users, and so on.
• Operations Hub Browser is the browser from which you can access the Operations Hub user
interface.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 58
• Webspace Plug-in is an add-on for Operations Hub user interface. It enables you to access
CimView screens from Operations Hub Browser.
• Webspace Session Manager interacts with UAA and creates Webspace sessions that allow
secure connection between Webspace Plug-in and CimView through Webspace.
• CIMPLICITY Server processes the data received from PLCs and displays the processed data
though viewers.
• CimView displays screens that are created in CimEdit for specific applications.
Sequence of Communication
1. When you access a CimView screen from Operations Hub, the CimView parameters entered
in the CIMPLICITY HMI Webspace Plug-in along with a user permissions token is sent to the
Webspace Session Manager through a web service interface .
2. Webspace Session Manager sends the user information entered to UAA.
3. Webspace sessions are created using windows credentials.
4. Webspace Widget starts communicating with CimView.
5. You can view CimView pages on Operations Hub Browser.
• Proficy Webspace 6.0 with the latest SIM (Minimum SIM 3a)
• CIMPLICITY 11.1
• Operations Hub 2.0 SIM 4
Note: Proficy Webspace and CIMPLICITY must be installed on the same machine and requires
a Webspace Strong Encryption license. Contact your local sales representative for details.
1. Select Install Certificates on Webspace Install screen. The Webspace Certificate Configuration
Tool appears.
2. Ensure the port your binding to is not already in use (Ex: If Operations Hub was installed
on the same machine and is already using port 443, you cannot bind the certificate to port
443).
3. Select Create and Bind.
4. Select Restart IIS Site.
5. In the Webspace Admin Console, Select Host Options.
6. Select the Security tab. Select Encrypted in Transport drop-down list.
7. Select the encryption Ex: 256-bit DES.
1. Copy the root certificate created on the relay server in the above procedure to the dependent
server machine.
2. Open the root certificate.
3. Select the Store Location as Local Machine. Save the certificate in the Trusted Root
Certification Authorities folder.
4. Select Next, and then select Finish.
5. Copy the CIMPLICITY root certificate CimScadaConfigRootCA.crt located at
<installation_path>\Proficy\Proficy CIMPLICITY\ScadaConfigPki from the relay server
machine to the same location on dependent server machine.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 60
Warning: Do not copy the .pfx or .key file. Exposure of private key may compromise the
security of the system. You must copy only the root certificate.
• User name: The user name that is used to log in to Operations Hub
5. For SSL Security:
• Select the Require trusted connection checkbox. The connection is trusted and a success
message appears.
6. If you are using an external UAA with OpsHub, enter the Server URL in UAA/
OAth2Configuration section.
7. Click OK.
The following configuration allows you to use Operations Hub authentication to access CimView
screens from Operations Hub.
Access the CIMPLICITY® Options window, and then select the Webspace tab. Perform the
following steps to configure CIMPLICITY HMI Webspace Plug-in.
2.4. Configure a Secure Connection between CimView and the Webspace Session Manager (page
65)
application.
The Webspace Session Manager starts, and the Startup Type of the service is set to Automatic. The
Session Manager will start automatically on system start up until the Auto-start option is deselected.
Note: By default, the Auto-start check-box is disabled. The Webspace Session Manager is not
running and is set to Manual mode.
1. Enter the URL of Operation Hub UAA in the Operations Hub UAA/OAuth2 Setup textbox.
2. Optional: If you have a proxy server, select Use proxy check box and enter the proxy server
URL.
3. Select Test. A success message appears if the URL entered is valid.
4. Select View Certificate to view the certificates. Read the details of the certificate to know
whether you can trust the certificate.
5. If you trust the certificate, select Trust Certificate.
6. Select Generate UAA Client. UAA Administrator Credentials window appears.
7. Enter the UAA admin client secret that was entered during Operations Hub installation. The
Client ID used for Operations Hub default UAA installation is ‘admin’.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 65
2.4. Configure a Secure Connection between CimView and the Webspace Session
Manager
To set up a secure connection between CimView and the Webspace Session Manager:
You must install CIMPLICITY server on Webspace single/relay server to enable Webspace
authentication. However, CIMPLICITY Viewer license would suffice.
2. Note: These are not existing credentials. You must create new credentials
3. Select Apply.
4. Select Ok.
To set up a secure connection between relay and dependent servers perform the following steps:
Note: You must install CIMPLICITY server on Webspace dependent server to enable
Webspace authentication. However, CIMPLICITY Viewer license would suffice.
2. Enter the Relay server and its admin credentials in the Dependent Server section of
CIMPLICITY Options to allow the Webspace Session Manager to trust CimView.
a. Select the Dependant Server tab in the bottom section.
b. In the Relay Server text box, enter the host name or fully qualified domain name of the
relay server to which the dependent server will connect.
c. Enter the user name and password set on the single/relay server in the Administrator
Credentials section.
d. Select the Test button. A success message appears if the dependent server is securely
communicating with the relay server.
e. Select Apply.
f. Select Ok.
Note: Enter details only in the Dependent Server section. Do not enter any details in the other
sections of the Server tab.
Note: If you have dependent servers that are running the actual SCADA project and want to use
the Scada Web configuration to browse OPC UA Servers for staging points (Scada Web Config uses
the same certificate that you will be replacing), when you copy the certificate from the relay server to
the dependent server, you must:
1. Rename the root certificate copied from the relay server. Example: Rename to
'CIMSCadaConfigRootCA_2.crt'.
2. Update the certificate path in the client-configuration section of webspace-session-
manager.json file located at <installation_path>\Proficy\Proficy
CIMPLICITY\webspace-session-manager\webspace-session-
manager.json
Example:
"client-configuration" :{
"register-timeout-seconds" : 5, "relay-server-reverse-proxy-port" :
"9443",
"root-ca-certificate" : "..\\ScadaConfigPki\
\CimScadaConfigRootCA_2.crt",
"wsm-admin-password" : "AD2tSYUmQJ3l++ToAVBfF6nrCTRaPmgUhS3odSauoW0=",
"wsm-admin-user" : "admin",
"wsm-client-socket-port" : "4958",
"wsm-hostname" : "localhost"
},
page.
8. Select Settings on the right pane.
9. In the Webspace server section, enter the Webspace server machine name manually, or
configure it to be dynamically updated by other Operation Hub widgets or queries.
10. In the CIMPLICITY screen path section, enter the full screen path of the CimView screen
that want to view manually, or configure it to be dynamically updated by other Operation Hub
widgets or queries. Example: C:\PROJECTS\WidgetProject\screens\CimEdit1.cim
11. Set the following parameters as per your requirement:
• Height offset: Webspace frame will take the proportion specified in Relative height of the
height of the browser window minus this offset. It is useful when there are other widgets on
the page above or below the Webspace frame.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 68
• Relative height (%): Webspace frame will take this proportion of the height of the
browser window minus the Height offset. It is useful when there are multiple Webspace
widgets placed vertically on the page.
• Webspace server: The host name of the Webspace server.
• CIMPLICITY screen path: The full path (on the Webspace server) to the CIMPLICITY
screen to display.
• Screen variables: A list of name/value pairs that correspond to the variables used on a
CIMPLICITY screen. For non-manual configuration this list is expected to be a JSON
string:[{ "name":"..", "value": ".."}, ...]
• Project for unqualified points: CimView will use this project name to provide values for
unqualified points.
• Zoom to best fit: If the CimView screen sizes are different, zoom to best fit provides
automatic consistency in the Webspace frame.
• Disable point targets: Prevents point targets, e.g. Point Control Panel and quick trends,
from being available.
• Disable setpoints: Prevents point values from being set on the CIMPLICITY screen.
• Port for the Webspace Session Manager: The port configured on the Webspace system
for the Webspace Session Manager service.
• Start maximized: Opens CimView screen in a maximized window filling the whole
Webspace frame.
• Always maximized: The screen will always be maximized in the Webspace frame.
• Restrict screen opening: Users will be able to open only the CimView screens that are
explicitly mentioned in Open Screen and Overlay Screen actions.
• Disable window resizing: Users will not be able to resize the CimView screens within the
Webspace frame.
• Don't show caption and menu: The CimView menu bar and caption will not display in
the Webspace frame.
• Time without input till quiescent update rate: Webspace will continue to send updates to
the client at the normal rate for the number of seconds entered after the user stops using the
keyboard and/or mouse.
• Time between updates when quiescent: When the number of seconds to wait after the
user stops using the keyboard and/or mouse have been reached, Webspace will begin
sending the updates at this rate.
12. Select Save App.
13. Select Open App. The CimView Screen appears on the browser.
Default Firewall
Service Port must be Configuration Files
Number opened?
NGINX 9443 Yes
%BSM_ROOT%\Web\exe\nginx.conf:
http {
server {
listen 9443 ssl default_server;
%BSM_ROOT%\webspace-session-manager\ webspace-session-manager.json:
"client-configuration" :
{ "relay-server-reverse-proxy-port" : "9443",
Default Firewall
Service Port must be Configuration Files
Number opened?
SCADA Web 4955 No
%BSM_ROOT%\Web\exe\nginx.conf:
Configuration, http {
REST server {
location /cim-config/v1 {
proxy_pass https://localhost:4955/cim-config/v1;
%BSM_ROOT%\data\cim_config_service.json
"port" : “4955”,
OPC UA 4956 No
%BSM_ROOT%\Web\exe\nginx.conf:
browse http {
service, server {
REST location /uabr/v1 {
proxy_pass https://localhost:4956/uabr/v1;
%BSM_ROOT%\data\opcua-browse-config.json
"port" : “4956”,
Webspace 4957 No
%BSM_ROOT%\Web\exe\nginx.conf:
session http {
Manager, server {
REST location /wsm/v1 {
proxy_pass https://localhost:4957/wsm/v1;
%BSM_ROOT%\webspace-session-manager\ webspace-session-manager.json:
"port" : “4957”,
(*) The firewall must be opened on the Webspace relay server only if you are using a Webspace
dependent server.
1. In the CIMPLICITY Workbench window, select Project, and then select Properties.
2. In the Project Properties window, select the Operations Hub tab and enter the following details:
• Server Name: The machine name on which Operations Hub is running or the URL of the
Operations Hub Server
• Port: The port on which Operations Hub is running
• User Name: The Operations Hub user name used to publish the Mimic
• Require Trusted Connection: Select this check box to use a trusted connection to
publish Mimics. You can also select View Certificate to view the certificate used for the
connection.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 72
3. Select OK.
4. Close the CIMPLICITY Workbench window (if it is open), and launch CimEdit from the
Start menu.
6. In the Global Configuration window, select the Operations Hub tab and enter the following
details:
• Server Name: The server name on which Operations Hub is running
• Port: The port on which Operations Hub is running
• User Name: The Operations Hub user name used to publish the Mimic
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 74
Note: In the Publish window, the Server Name, Port, and User Name are automatically
populated if Operations Hub has already been configured at the project level. If the fields are
blank, enter the details before proceeding to the next step.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 75
Note: These details are saved after you publish the Mimics. You only need to enter the
password if you close and reopen the CIMPLICITY Workbench window.
11. To publish a Mimic to Operations Hub directly from CimEdit, go to the location where the
Mimic file you want to publish is saved, right-click the file, and select Edit.
Note: You can publish only one Mimic at a time to Operations Hub from CimEdit.
12. In the CimEdit window, select , and then select Publish to Operations Hub.
Note: In the Publish window, the Server Name, Port, and User Name are automatically
populated if Operations Hub has already been configured (depending on the project context) at
the project level or globally. If the fields are empty, enter the details as described in step 2 of the
Configure Operations Hub section before proceeding to the next step.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 77
Note: If you want to save the Mimic to a shared location on a remote server, the network
drive should be mapped to the shared location.
• Save To: The location where the Mimic will be saved locally. You can choose this location
since you are publishing only one Mimic at a time.
• Publish to Operations Hub: Select this check box to publish the Mimic to Web HMI.
• Overwrite: Select this check box to overwrite any Mimic with the same name.
• Password: The password to publish the Mimic.
• Require Trusted Connection: Select this check box to publish Mimics only when a
trusted connection is used. You can also select View Certificate to view the certificate used
for the connection.
Note: These details are saved after you publish the Mimic. You only need to enter the
password if you close and reopen the CimEdit window
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 78
1. In the CIMPLICITY Workbench window, select Project, and then select Publish Model to
Operations Hub.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 79
Be aware that:
• The Server name, Port, and User name fields are automatically populated if Operations
Hub has already been configured at the project level.
• All the details in the Model Publish window are saved for a project after you publish
the Model data. You only need to enter the password if you close and reopen the
CIMPLICITY Workbench window.
• The connection is not trusted when the server has a blank or invalid name, or has an invalid
certificate.
Networking | 4 - Proficy WebSpace Integration with CIMPLICITY | 80
3. Select Publish.
The Model data is published to Operations Hub and appears in the Assets workspace with
classes mapped to asset types and objects mapped to assets.
Chapter 5. Document Delivery
Important: Your system's network and operating system must support at least one of the
following:
• FTP
• HTTP
• Mapped network local disk drives.
Note: Document Delivery objects support dynamic configuration. For the Document Delivery
resident process, changes to the Document Delivery Base object are allowed, as well as changes to
the delivery objects themselves. New delivery objects can be created dynamically. Once a delivery
object has been created, the type cannot be changed.
1. A file triggers a CIMPLICITY script that creates an output document with a header from the
file.
2. The output document is sent to a temporary directory.
3. A CIMPLICITY script copies the output document from the temporary to the delivery directory.
(page 88)
Networking | 5 - Document Delivery | 83
Note: Details about delivery to the remote system are based on the existing conditions static
to the delivery method (page 84).
Delivery Operation
Review the operation for the:
Step Description
1 Output document header evaluation (performed before delivery).
(page
83)
2 Delivery process.
(page
84)
3 Delivery conclusion.
(page
87)
1. Watcher thread that is dedicated to watching its directory using completion ports.
2. Control thread that checks each file in the preliminary list (if there are files) to make sure that it
has the required header.
If the file:
• Does have a valid header
Networking | 5 - Document Delivery | 84
Document Delivery:
a. Copies the file without the header into the work directory.
b. Makes a new entry for the output document list, which contains the name of the:
• File.
• Destination file.
a. Places the entry at the end of the list, to ensure that the output documents are processed in
sequence.
• Does not have the required header
Document Delivery:
a. Generates an audit message.
b. Moves the file to the flush directory.
a. Delivery process
• Network or FTP
• HTTP
Network or FTP delivery attempts to deliver the first file in the output document list. The
method that is used is defined in the delivery object configuration.
Options are:
• Overwrite
• Fail On Existing
• Append
Overwrite
Document Delivery
3. Delivers the output file to the remote location with the following name.
Where
<destination file name> is the name the file will be when it reaches its destination.
5. Changes the output file name with the DDTEMP_ prefix to the original destination filename.
6. Delivers the output file to the remote location with the following name.
Where
<destination file name> is the name the file will be when it reaches its destination.
7. Changes the output file name with the DDTEMP_ prefix to the original destination filename.
Fail On Existing
Checks the remote location to see if the destination file already exists.
Document Delivery:
8. Delivers the output file to the remote location with the following name.
Where
9. Changes the output file name with the DDTEMP_ prefix to the original destination filename.
Up (page 84)
Append
Document Delivery:
10. Copies the remote file to the working directory with the following name.
Where
11. Appends the append file with the body of the output document.
12. Delivers the append file to the remote location with the following name.
Where
14. Changes the destination file name with the DDTEMP_ prefix to the original destination
filename.
Document Delivery:
15. Delivers the append file to the remote location with the name of the destination file pre-pended
with DDTEMP_.
16. Changes the destination file name with the DDTEMP_ prefix to the original destination
filename.
HTTP delivery
HTTP attempts to deliver the first file in the output document. The method that is used is
defined in the delivery object configuration.
Options are:
• Overwrite
• Fail On Existing
Overwrite
Up (page 84)
Fail On Existing
Document Delivery checks the remote location to see if the destination file already exists.
If in during delivery:
• Any of the delivery steps are interrupted by an error
Document Delivery stores the status of the delivery so a step does not have to be repeated.
• Delivery fails
a. Document Delivery logs an audit message.
b. If a retry count has been configured:
Document Delivery:
a. Attempts the retry after the retry interval has elapsed.
b. Keeps a count of the number of times this particular delivery has failed.
c. If the number of failures is greater than the number of configured failures before alarm:
• Delivery succeeds
Document Delivery:
a. Logs an audit message.
b. Resets all error parameters.
c. Deletes the output document.
• Number of retries has been exceeded
Document Delivery:
a. Logs an audit message.
b. Resets all error parameters.
c. Moves the output document to the flush directory.
Note: There may be occasions when the project has been shut down before all deliveries
have occurred. When the project starts up again, the directory notification will not see these files
as new, so it will not do a notification. To solve this issue, an Document Delivery does an initial
directory scan to process any unsent output documents. This scan will put output documents on
the output document list in the order that they were created; the oldest document is sent out first.
1. Base Directory
Each delivery object has a directory. The name is the name of the delivery object. Delivery
directories are monitored for output documents.
3. Flush Directory
The flush directory stores output documents that have been flushed. The purpose is to monitor
the flushed files to manually find out why the document was not sent. Output documents can be
flushed in three ways:
• Invalid Header: If the output document does not have the required header, then there is
no way for the document to be delivered, so it is moved to the Flush directory, and an audit
message is logged.
Networking | 5 - Document Delivery | 90
• Retry Count Exceeded: If the retry count is exceeded and the output document has still
not been successfully delivered, then the document is flushed, and an audit message is
logged.
• Manual Flush: If an output document is flushed from the ActiveX status object, then the
output document is moved to the flush directory.
4. Work Directory
The work directory contains the content of the output documents to be delivered without the
required header. Any append files that are created and modified also use this work directory.
Step Description
Step 1 Enable Document Delivery.
(page
90)
Important: Document Delivery must be selected as an option when you installed CIMPLICITY.
If it does not display in the options lists, re-run your CIMPLICITY DVD and select Documentation
Delivery to install.
• A new project.
Networking | 5 - Document Delivery | 91
• An existing project.
Result: Document Delivery will be enabled when the project is created. CIMPLICITY adds a
Document Delivery folder to the Workbench left pane that contains a Document Delivery Base
object and Document Delivery object.
Document Delivery is enabled in the existing project. CIMPLICITY adds a Document Delivery
folder to the Workbench left pane.
Note: There is only one object for the Document Delivery, named DeliveryBase. You cannot
delete this object, or create another one. However, you can edit its properties.
Either Or
6. Right-click DeliveryBase.
The parameters that can be edited in the Document Delivery Base Properties dialog box are as
follows.
Networking | 5 - Document Delivery | 94
Parameter Description
Audit Level Main attribute for Auditing. The three levels are:
Level Description
Maximum File File size of Audit log file in bytes. When the log file reaches this size, the audit file will start over
Size logging again.
Option Details
YES The audit file will save itself to a separate file when the file has
reached it’s configured size.
• Date=
Number that:
◦ Starts at 0
◦ Increments each time the file is archived for the current
date.
NO No archiving occurs. The audit file starts over with an empty file.
Document Delivery requires at least one delivery object to communicate with a remote system.
Networking | 5 - Document Delivery | 95
Communication with each remote system is defined by parameters that are stored with the delivery
object.
Options are:
Option Description
Option Create a new delivery object.
4.1 (page
95)
Either Or
Result: A New Document Delivery dialog box opens when you use any method.
8. Click OK.
Note: You will select the object type (page 97) when the Delivery Properties dialog box
opens.
Either Or
Step Description
Option Network delivery object.
5.1 (page
98)
1. Enter a name for the network delivery object in the New Document Delivery dialog box.
2. Click OK.
A Delivery Properties dialog box opens for the named delivery object.
Parameter Value
Alarm CIMPLICITY Alarm that will be triggered if a delivery has failed the number of times specified in the
Delivery Failure Count parameter. Note: A default alarm of $DOCUMENT_DELIVERY has been
provided, but a custom alarm can be used.
Retry Number of times the delivery object will try to resend an output document before it gives up and
Count flushes the file.
Failures The number of times the delivery object needs to fail in order to generate the alarm.
Before
Alarm
File Determines how to handle the delivery when a remote file of the same name as the one to be
Handling delivered is encountered. Options are:
Note: If the destination is a mapped drive, CIMPLICITY Service Log On parameters must use an
account that has access to the mapped drive, otherwise the PS Delivery will not have access to the
mapped drive. The Destination field does not support forward slashes.
Enable When set to YES enables, auditing for this delivery object.
Audit
1. Enter a name for the network delivery object in the New Document Delivery dialog box.
2. Click OK.
A Delivery Properties dialog box opens for the named delivery object.
Alarm CIMPLICITY Alarm that will be triggered if a delivery has failed the number of times specified in
the Delivery Failure Count parameter. Note: A default alarm of $DOCUMENT_DELIVERY has
been provided, but a custom alarm can be used.
Retry Count Number of times the delivery object will try to resend an output document before it gives up and
flushes the file.
Failures The number of times the delivery object needs to fail in order to generate the alarm.
Before Alarm
File Handling Determines how to handle the delivery when a remote file of the same name as the one to be
delivered is encountered. Options are:
Up (page APPEND Attempts to append the current file to the end of the existing file.
100)
Destination Name of the directory on the remote machine to which the file will be copied. The parameter
must show the path from the root directory.
Enable Audit When set to YES enables, auditing for this delivery object.
Server Name The FTP server name, or IP Address. The FTP prefix is not required or accepted.
/IP Address
Port The port number to be used. Tip: If you do not know the port number, enter 0 and the Document
Delivery process will attempt to determine the correct port number.
Networking | 5 - Document Delivery | 102
User Name Name of the user to log in. Note: If empty, the user name is anonymous.
Maximum 20 characters.
length
Password Opens a Change Password dialog box in which you can enter a password that will be required
for log in.
Note:
YES Delivery object will attempt to keep the FTP Connection open.
NO Delivery object will close the FTP Connection on completion of the delivery.
1. Enter a name for the network delivery object in the New Document Delivery dialog box.
2. Click OK.
Networking | 5 - Document Delivery | 103
A Delivery Properties dialog box opens for the named delivery object.
Alarm CIMPLICITY Alarm that will be triggered if a delivery has failed the number of times specified in the
Delivery Failure Count parameter. Note: A default alarm of $DOCUMENT_DELIVERY has been
provided, but a custom alarm can be used.
Networking | 5 - Document Delivery | 104
Retry Number of times the delivery object will try to resend an output document before it gives up and
Count flushes the file.
Failures The number of times the delivery object needs to fail in order to generate the alarm.
Before
Alarm
File Determines how to handle the delivery when a remote file of the same name as the one to be
Handling delivered is encountered. Options are:
Destination The name of the directory or page on the remote machine to which the file will be copied.
Enable When set to YES enables, auditing for this delivery object.
Audit
Server The HTTP server name. The HTTP prefix is not required or accepted.
Name /IP
Address
Port The port number to be used. Tip: If you do not know the port number, enter 0 and the Document
Delivery process will attempt to determine the correct port number.
User Name Name of the user to log in. Note: If empty, the user name is anonymous.
Password Opens a Change Password dialog box in which you can enter a password that will be required for
log in.
Networking | 5 - Document Delivery | 105
Up (page
103) Note:
YES Delivery object will attempt to keep the HTTP Connection open.
NO Delivery object will close the HTTP Connection on completion of the delivery.
You can change the password for the following two delivery types:
• FTP
• HTTP
Document Delivery Viewer object is an ActiveX object that a user can use to:
Note: Multiple Document Delivery Viewer objects can be used to allow the user to view the
status of more than one configured delivery objects.
Step Description
Step 1 Place the Document Delivery Viewer Object on a CimEdit screen.
(page
106)
Step 2 Open the CIMPLICITY Document Delivery Viewer Properties dialog box.
(page
108)
Method 1
Method 2
a. Click Tools on the CimEdit toolbar.
b. Select OLE object.
Networking | 5 - Document Delivery | 107
3. Position the bracket where you want the object's top left corner to be placed.
Method 1
2. Select CIMPLICITY Document Delivery Viewer Object>Properties from the Popup menus.
Networking | 5 - Document Delivery | 109
Method 2
4. Select CIMPLICITY Document Delivery Viewer Object>Properties from the Edit menus.
The CIMPLICITY Document Delivery Viewer Properties dialog box opens when you use either
method.
Networking | 5 - Document Delivery | 110
The Configuration tab in the CIMPLICITY Document Delivery Viewer Properties dialog box
contains the ActiveX Parameters that control how the Document Delivery object operates in a
CimView screen.
Option Description
Delivery Delivery object that will be monitored
Object
Networking | 5 - Document Delivery | 111
Option Description
Update Interval at which the control will check if the Delivery Object has sent the control a status update.
Interval
Important: If this interval is set to a large number, the control might miss a status update.
Format: hh:mm:ss.ttt
Unresponsive Maximum amount of time between status updates from the delivery object that the control will consider
After the delivery object responsive. If the specified amount of time passes between status updates, the
control will enter the Unresponsive state.
Flush Roles that are allowed to flush files from the delivery object when the control is running.
Permissions
Format: Comma-delimited string.
Note: Configured roles in this dialog box are automatically added to the Flush Permissions list
when you click OK to close the box.
Available Roles Roles that are available, but not given permission to flush unsent
files.
Allow Flush
Action Description
Note: Options on the Configuration tab are writable in CimEdit; they are read-only in CimView.
All of the text displayed in the ActiveX Object may be configured to use a different font, size, height,
style, character set, and color. Also, the ambient font of the system can be chosen to be used.
Select the Text tab in the CIMPLICITY Document Delivery Viewer Properties dialog box.
Text
3. Click OK.
You can configure the following text that displays during runtime.
Networking | 5 - Document Delivery | 113
2 Status label
6 Alarm message
7 Retries label
8 List header
11 Status value
15 Retries value
Use Ambient
Checked Uses the ambient properties defined at the CimEdit screen level.
Clear Enables the color palette and other text properties for custom configuration.
Font/Size
Method 1
Method 2
The Font dialog box opens when you use either method.
Each row in the grid represents a text type that can be displayed in the ActiveX object. The
following diagram shows the possible text types that can be configured in the grid.
Color
You can change the color of the selected text, if you have not checked Use Ambient.
The color displays in the Color field and will be the color for the selected text.
You can configure non-text appearance properties on the Document Delivery object on the
Appearance tab in the CIMPLICITY Document Delivery Viewer Properties dialog box.
Networking | 5 - Document Delivery | 115
2 File List Color of the unsent document list displayed by the ActiveX object when there are unsent
color documents currently in the delivery object.
3 Displayed Status that is currently displayed in the ActiveX object. This property:
Status
• Is only editable from a CimEdit screen since the displayed status in a CimView screen is
determined by the status of the ActiveX object.
• Can be used to change the status of the ActiveX object to one where the text type being
configured is visible, since some text types are not visible while different statuses are
displayed.
Up (page 115)
Networking | 5 - Document Delivery | 116
There are several different possible views for the ActiveX component based on the status of the
delivery object.
Status Description
Nonexistent The delivery object specified by the delivery name parameter for the ActiveX component cannot be found
In Configuration
Status Description
In Configuration The delivery is currently being configured, either on initialization or by dynamic configuration
Status Description
Waiting for Document The specified delivery object is waiting for an output document to send.
In Delivery
Status Description
In Delivery The specified delivery object is attempting a delivery for the first time.
Networking | 5 - Document Delivery | 118
Parameter Description
Delivery Name of the delivery object being monitored.
Object
Status Status of the delivery object being monitored, as listed on this page.
Percent Percentage complete of the current delivery. Note: This does not include retrieving files for appending.
Complete
Alarm after Number of failed attempts that need to happen before an alarm is sent to the alarm manager.
Failed
Attempts
Retries to Number of times that a failed delivery will be retried before the delivery object will give up and flush the
attempt file.
Unsent Output List of all the unsent documents that this delivery object still needs to process. Note: The name of the
Documents output document does not need to be the same as the Destination Filename.
Networking | 5 - Document Delivery | 119
Retrieving File
Status Description
Retrieving The file is being retrieved. If the file being delivered must be appended to an existing file, the existing file
File must first be retrieved from the destination.
Appending File
Status Description
Appending File is being appended. The file being delivered must be appended to an existing file, after the file being
File appended is retrieved from the destination
Status Description
Waiting Delivery object is waiting for the retry interval time to elapse in order to retry the delivery. Note: All of the text
For in the ActiveX status object is customizable. There are two different entries that are applicable.
Retry
• Waiting For Retry Status Before Alarm
• Waiting For Retry Status After Alarm.
The color of the status text is based on these two entries and whether or not the alarm has been set.
Networking | 5 - Document Delivery | 121
Flushing Files
Status Description
Flushing Files Delivery Object is flushing unsent files.
Unresponsive
Status Description
Unresponsive ActiveX control successfully connected to the delivery object but does not receive a status update in a
configured time period.
Technical Notes
The order is: Version Number; NULL Character; Header; NULL Character; Carriage Return and
Line Feed; Content
Each output document must have a unique name in the directory in which it is created. Each
output document is created in a specific directory. As a result, there will be instances where
another file already exists in the directory. Giving each output document a unique name will
prevent the overwriting of output documents.
2. Version Number (in header)
The first characters in the output document must be an ASCII representation of the version
number.
• The version number is currently 101.
The header:
• Must immediately follow the version number and NULL character.
• Will be an XML data structure that contains the destination filename and extra commands
that may be required for:
◦ HTTP or network delivery.
◦ FTP delivery.
• The destination will be NULL terminated, followed by a carriage return and line feed.
4. Content
• Version number
• Destination file name (included in header)
• Separating carriage return
• Line feed
Note: The version number and destination file name will be removed from the document
before it is sent to the remote location.
Document
Delivery
Description
Rule
1
3 Header
4 Content
<Header> The main wrapper tag for the XML style header. There are no attributes for this tag
<DestinationFilename> Contains the remote destination filename. There are two attributes for all systems for this tag
"No" The rename feature cannot be used. Important: If this condition is found
on an APPEND type delivery, the delivery will fail; APPEND deliveries
must be able to rename.
When there are no Pre and Post commands, it is not necessary to use the header tag.
Networking | 5 - Document Delivery | 124
1. No header
101 <DestinationFilename filename="remoteFilename.txt" rename="yes"/>
Data
2. Header
101 <Header>
<DestinationFilename filename="remoteFilename.txt" rename="yes"/>
</Header>
Note: Pre and Post commands are available to FTP delivery only.
If Pre and Post commands are used for Network or HTTP deliveries the:
• Header will be considered invalid.
• Output document will be flushed.
There is now a mechanism for doing small FTP commands before and after the actual delivery.
For instance, you might be required to manually change the directory before the delivery takes place,
and then change the directory back to the root when finished.
<Header> The main wrapper tag for the XML style header. There are no attributes for this tag
Networking | 5 - Document Delivery | 125
<DestinationFilename> Contains the remote destination filename. There are four attributes for all systems for this tag:
PreCommands Wrapper for all Pre commands that are to be attempted before the delivery occurs. There are
no attributes for this tag.
PreCommand Holds one FTP command to take place before the delivery occurs. The raw FTP command
is written verbatim in the command attribute. There is one attribute for this tag. command: The
command to be sent.
PostCommands Wrapper for all the Post commands that are to be attempted after the delivery is completed.
There are no attributes for this tag.
PostCommand Holds one FTP command to take place after the delivery is successfully completed. The raw
FTP command is written verbatim in the command attribute. There is one attribute for this tag.
command: The command to be sent.
Pre commands Delivery and the post commands are not processed. Delivery is considered to be failed.
Note: If the actual delivery of the remote file succeeds and the commands fail, subsequent
delivery attempts will try to do only the pre and post commands since the delivery of the actual file
has already succeeded.
• If Pre and Post commands are used for Network or HTTP deliveries, the header will be
considered invalid, and the output document will be flushed.
1. Simple file
101 <Header>
<DestinationFilename filename="remoteFilename.txt"/>
</Header>
Data
101 <Header>
<PreCommands>
<PreCommand command="SITE Stats"/>
</PreCommands>
<DestinationFilename filename="remoteFilename.txt" rename="No"/>
<PostCommands>
<PostCommand command="SITE file=yes"/>
</PostCommands>
</Header>
101 <Header>
<PreCommands>
<PreCommand command="CWD subdirectory"/>
</PreCommands>
<DestinationFilename filename="DestinationFilename.txt"
rename="yes"/>
<PostCommands>
<PostCommand command="CDUP"/>
</PostCommands>
</Header>
Data to be sent.
This example will force the connection to close after the delivery has been completed.
<DestinationFilename
filename="FTP_O_RemoteFilename230.txt"
rename="Yes"
overrideKeepConnectionOpen="YES"
keepConnectionOpen="No"/>
The following two simple examples demonstrate how a file is delivered using the overwrite and
append methods.
Data
4. FTPobj:
a. Monitors the preliminary list
b. (When a file appears) creates a file, OutputDocument1, in the \Project
\DocumentDelivery\FTPobj\Work directory.
Data
11. FTPobj:
a. Monitors the preliminary list.
b. (When a file appears) creates a file, OutputDocument2, in the \Project
\DocumentDelivery\FTPobj\Work directory.
Note: The header in this sample script is the minimum required and can be used for all delivery
types.
'Format Bottlingyyyymmdd.txt
'Total Bottles
'Bottles Failed
'Gripper Errors
'Boxes Processed
uniqueIndex.value = uniqueIndex.value + 1
uniqueIndex.set
Kill temporaryFilename
End Sub
Networking | 5 - Document Delivery | 132
CAUTION: Version 100 is still supported for systems in which it is implemented. Use version
101 to develop any new systems.
Document
Delivery Description
Rule
1 Unique Each output document must have a unique name in the directory in which it is created. Each output
Output document is created in a specific directory. As a result, there will be instances where another
Document file already exists in the directory. Giving each output document a unique name will prevent the
Name overwriting of output documents.
2 Version The first characters in the output document must be an ASCII representation of the version number.
Number (in The initial version number will be 100 until a change is made that will make it necessary to increment
header) the version number. The version number will be followed by a NULL character.
3 Destination The destination file name must immediately follow the version number and NULL character. This will
File Name be the name of the file actually created or appended to at the remote location. This destination will be
NULL terminated, followed by a carriage return and line feed.
• Version number,
• Destination file name,
• Separating carriage return and
• Line feed.
Note: The version number and destination filename will be removed from the document before it is
sent to the remote location.
Note: The header in this sample script is the minimum required and can be used for all delivery
types.
'Format Bottlingyyyymmdd.txt
'Total Bottles
'Bottles Failed
'Gripper Errors
'Boxes Processed
uniqueIndex.value = uniqueIndex.value + 1
uniqueIndex.set
Kill temporaryFilename
End Sub
Chapter 6. Microsoft Remote Desktop and
CIMPLICITY
Microsoft provides extensive documentation for Remote Desktops, both in Windows documentation
and at the Microsoft web site.
• Microsoft Corporation provides licenses to run Remote Desktop on a Windows Remote Desktop
Server and a specified number of clients. Review Microsoft documentation for current details
about Remote Desktop licenses.
• GE Digital provides licenses that enable Remote Desktop clients to work with CIMPLICITY
projects.
Step Description
Step 1 Set up the Remote Desktop security.
(page
137)
To ensure that Remote Desktop clients have the appropriate levels of control in the Remote Desktop
server, refer to your Microsoft documentation, as well as the documentation on CIMPLICITY users,
to organize the necessary privilege levels.
The Remote Desktop server must be installed on a CIMPLICITY server. Microsoft Remote Desktop
enables clients to work with all supported CIMPLICITY features for which a user has privileges, as
follows.
• Remote Desktop clients directly access the CIMPLICITY Remote Desktop server.
• Remote Desktop clients interact directly with the CIMPLICITY Remote Desktop server.
The client displays runtime data from the CIMPLICITY server and sends setpoint data to the
CIMPLICITY server database
Users who have the required licenses can work with CIMPLICITY through the Remote Desktop
options.
CIMPLICITY can be used almost the same as if a user is sitting at the project's PC when any Remote
Desktop session is being used.
There are some guidelines, mainly to insure the proper implementation of project revisions if
multiple users are working with a project at the same time through Remote Desktop sessions.
Guidelines for CIMPLICITY Projects through Remote Desktop
A user can control any feature on the Remote Desktop server for which he or she has authorization.
Users can work with CIMPLICITY as if they are sitting at the Remote Desktop server.
1. You can have different CIMPLICITY Remote Desktop client sessions open simultaneously so
you can work concurrently on different projects in CIMPLICITY applications.
Example: If two clients display the Workbench on each desktop and one user closes the
Workbench, the second client desktop continues to display the Workbench.
2. Any changes made to CIMPLICITY during all client sessions go directly into the CIMPLICITY
database.
3. All projects run in the global session on a CIMPLICITY Remote Desktop server-CIMPLICITY
server. Therefore, if several people are working on a project and one person stops it, the project
stops for all of them.
4. When the router stops on a CIMPLICITY Remote Desktop server-CIMPLICITY client, runtime
applications stop on the Remote Desktop server and for all CIMPLICITY Remote Desktop
clients.
You can use the following global parameters with CIMPLICITY through Remote Desktop:
Feature Supported?
Action Calendar Yes
BCEUI Yes
CimEdit/CimView Yes
CWServ Yes
DGR No
Pager No
Recipes Yes.
Networking | 6 - Microsoft Remote Desktop and CIMPLICITY | 140
Feature Supported?
Registration/Licensing Yes
Report Manager No
Workbench Yes
*Remote Desktop client failover is not supported; remote administration through Remote Desktop is
supported.
Allen-Bradley DF-1 Y Y
Allen-Bradley RF-ID NA NA
CCM2 Y Y
DC Toolkit Y Y
DDE/DDE Client Y Y
FloPro/FloNet Ethernet N N
Genius N N
Mitsubishi Serial N N
Mitsubishi TCP/IP Y Y
MODBUS RTU Y Y
MODBUS TCP/IP Y Y
Networking | 6 - Microsoft Remote Desktop and CIMPLICITY | 141
N2 Serial Y Y
OMRON TCP/IP Y Y
OPC Client Y Y
Series 90 Ethernet Y Y
Sharp TCP/IP Y Y
Siemens TI Serial Y Y
SNP Y Y
SNPX Y Y
SQUARE D Y Y
TOYOPUC TCP/IP NA NA
Triplex Y Y
NA = Not tested.
Chapter 7. CIMPLICITY Cluster Resource
A license is required to run CIMPLICITY on a cluster. If you do not have a license you can
configure a project, open it from the Workbench and run it as you would any CIMPLICITY project.
However, it cannot be started by the Cluster Manager and will not have the cluster benefits. The
license is programmed into your hardware key.
• Must have a dependency on that shared drive where the files are located.
• A resource.
• Dependant on the physical disk.
• Assigned to a cluster.
• Started either when the cluster is brought online, or in the Workbench, which can be opened
through the resource's Properties dialog box.
The Cluster reports the project status depending on where the project is started, as follows.
The Cluster reports the project status depending on where the project is started/stopped, as follows.
The CIMPLICITY Router keeps track of what IP addresses are in use on the computer.
Important: You cannot use the cluster IP address as one of the IP addresses so CIMPLICITY
will not listen for incoming connections on the cluster IP address.
Important: A license is required to run CIMPLICITY on a cluster. If you do not have a license
you can configure a project, open it from the Workbench and run it as you would any CIMPLICITY
project. However, it cannot be started by the Cluster Manager and will not have the cluster benefits.
The license is programmed into your hardware key .
Steps to configure a cluster on a Microsoft® Windows® Server 2012/2012 R2/2016 are as follows.
Step Description
Step 1 Create a Cluster
(page
145)
Networking | 7 - CIMPLICITY Cluster Resource | 145
Step Description
Step 2 Configure a Role
(page
146)
For Microsoft® Windows® Server 2012/2012 R2/2016: Open the Failover Cluster Manager and
Create a Cluster.
Create a Cluster
For Microsoft® Windows® Server 2012/2012 R2/2016: Create an Empty Role, Open a New Role
Properties Dialog Box, and Configure the New Role Properties.
1. To create an Empty Role, expand the Cluster tree in the Failover Cluster Manager left-pane.
A Click Action>Create Empty Role on the Failover Cluster Manager menu bar.
B Right-click Failover Cluster Manager in the Failover Cluster Manager left-pane; select Create Cluster on the
Popup menu.
3. Open a New Role Properties Dialog Box by select the new role in the Failover Cluster Manager
window center-pane.
A New Role Properties dialog box opens when you use either method.
The New Role Properties dialog box provides the following options.
• General Tab
• Failover Tab
General Tab
Select the General tab in the New Role Properties dialog box. Options are as follows:
B Preferred Owners Machines that may be available for the selected role.
Failover Tab
Failover values must be entered. However, they are dependent on your system needs.
There are no specific recommendations or requirements for a cluster that uses a CIMPLICITY
project resource.
Networking | 7 - CIMPLICITY Cluster Resource | 149
1. Select the new role item in the Failover Cluster Manager window center-pane.
A Right-click the new role; select Add Storage on the Popup menu.
B Click New Role>Add Storage on the Failover Cluster Manager window right-pane.
Networking | 7 - CIMPLICITY Cluster Resource | 150
4. Click OK.
All of the selected disks will be available; one disk will be selected as a dependency for the
CIMPLICITY project resource
For Microsoft® Windows® Server 2012/2012 R2/2016, make an IP Address Available for a Cluster.
Open the New Resource Wizard, Configure the New Resource Wizard, and then Bring the Resource
Online.
1. Select the new role item in the Failover Cluster Manager window center-pane.
A Right-click the new role; select Add Resource>Client Access Point on the Popup menu.
B Click New Role>Add Resource>Client Access Point on the Failover Cluster Manager window right-pane.
3. From the Client Access Point Screen, enter and check the following.
4. Click Next.
A Confirmation screen opens.
The New Resource Wizard configures the access point; a Summary screen opens.
7. Click Finish.
8. Bring the server/IP address online before you configure the CIMPLICITY resource in order to
make sure they will be available for that resource. Bring the resources online, as follows:
For Microsoft® Windows® Server 2012/2012 R2/2016, add a CIMPLICITY Project Resource.
A Add Resource
B More Resources
C CIMPLICITY Project
Result: A new CIMPLICITY project resource is added to the Other Resources list in the
Failover Cluster Management window middle-Pane.
Even if you used the Microsoft High Efficiency Wizard to configure most of the CIMPLICITY
cluster, you can customize the configuration for the CIMPLICITY resource cluster in the
CIMPLICITY Project Resource Name Properties dialog box. These steps are for Microsoft®
Windows® Server 2012/2012 R2/2016.
Step Description
A Open the <CIMPLICITY Project Resource Name> Project Properties Dialog Box
(page
155)
B Configure the <CIMPLICITY Project Resource Name> Project Properties Dialog Box
(page
156)
Result: A <CIMPLICITY Project Resource Name> Project Properties dialog box opens.
• General Tab
• Dependencies Tab
• Policies Tab
• Advanced Policies Tab
• Parameters Tab (CIMPLICITY project)
General Tab
General specifications based on CIMPLICITY cluster requirements are as follows.
Networking | 7 - CIMPLICITY Cluster Resource | 157
Item Description
Resource Name that clearly identifies the CIMPLICITY resource.
Name
• Any name is acceptable for the resource.
• The title bar will display a changed name after the dialog box is closed and re-opened.
Maximum Length
State (Read-only) A resource needs to be brought online for runtime performance. Note: During initial
configuration, the CIMPLICITY resource has not yet been brought online. States are as follows:
Dependencies Tab
The CIMPLICITY project resource dependencies (e.g. disk drives, IP address) are listed on the
Dependencies tab.
You can select as many available resource dependencies as needed from a drop down list.
Networking | 7 - CIMPLICITY Cluster Resource | 158
2 Shared The shared disk on which the CIMPLICITY project resource resides.
Disk
3 IP An IP address that is assigned to the CIMPLICITY project resource. Note: When the project is
Address made dependent on the IP address resource then all of the components in the cluster will move
as a group. This will make the cluster more stable than if an IP address was not assigned.
Important: Important:Click Apply before you select another tab or close the <CIMPLICITY
Project Resource Name> Properties dialog box. This is required in order to confirm your selections.
If you do not click Apply, the selections will not be applied.
Enable (checked).
Pending timeout
Default: 03:00
Warning: Make sure you allow enough time for all CIMPLICITY processes to shut down
and restart. Although it is highly recommended that you only include one CIMPLICITY project
(page 165) in the cluster, if your system requires more than one project, the time needs to be
increased accordingly. The projects shut down consecutively, not simultaneously. If enough time is
not allowed some processes could still be in the process of shutting down when a restart is initiated.
rect 2, 50, 379, 305 CIMPLICITY Cluster Configuration Tool for 64-Bit Machines (page 166)
A CIMPLICITY tab in the <CIMPLICITY Project Resource Name> Project Properties dialog box is
not available on 64-bit machines.
Instead, a Cluster Configuration tool for 64-bit machines/operating systems (page 166) is available
to configure the CIMPLICITY server properties.
The CIMPLICITY project resource can be brought online as soon as the parameters are successfully
entered in the CIMPLICITY Cluster Configuration Tool for 64-Bit Machines (page 166). These
steps are for Microsoft® Windows® Server 2012/2012 R2/2016.
2. Do the following.
Networking | 7 - CIMPLICITY Cluster Resource | 164
A Right-click the CIMPLICITY project resource that was successfully configured in the Cluster64ServerConfig
(page 166) dialog box.
The CIMPLICITY project resource is online, associated with IP resources and will be protected in a
cluster configuration.
Networking | 7 - CIMPLICITY Cluster Resource | 165
• The single side of the cluster has to have the capability to support all the projects.
• In a cluster configuration the router is a single point of failure; if the router fails all projects in
the cluster fail.
• In a single drive set up as a shared drive where you host the projects, the projects are shut down
in order on one node before the drive is transferred to the other node in reverse order.
If you have multiple drives set up to host each individual project, then you have dependencies on
each individual drive set up for that specific project. The router dying will effectively take them
down in order.
Although it is highly recommended that you only include one CIMPLICITY project in the cluster, if
your system requires more than one project, the time needs to be increased accordingly. The projects
Networking | 7 - CIMPLICITY Cluster Resource | 166
shut down consecutively, not simultaneously. If enough time is not allowed some processes could
still be in the process of shutting down when a restart is initiated.
The Cluster Configuration Tool for 64-Bit Machines tool enables you to perform the CIMPLICITY
configuration hat is available in the <CIMPLICITY Project Resource Name> Project Properties
dialog box>CIMPLICITY tab for 32-bit machines on 64-bit machines/ operating systems.
Step Description
1 Cluster Information
(page
168)
2 Parameters
(page
168)
3 Status
(page
170)
1: Cluster Information
Cluster information includes the following.
• Cluster Name: Name of the cluster server selected in the Cluster Failover Manager.
• Resource Name: CIMPLICITY Resource ID that was selected in the Cluster Failover Manager.
2: Parameters
The project can be selected and opened in the Parameters section.
• Project/Browse Button
• Workbench Button
Project/Browse Button
The CIMPLICITY project for which the cluster is created.
Important: The project must be on the shared drive that was selected as a resource dependency.
Manual Entry:
Browse Button:
1. Click the Browse button to the right of the Project field. An Open dialog box opens.
2. Select the connected drive (that was selected as a resource dependency).
Note: You can access the drive only if you are working on the node that is controlling the
resource.
Networking | 7 - CIMPLICITY Cluster Resource | 169
Result: The project name and path will be entered in the Project field.
Workbench Button
Important: You can open the Workbench only if you are working on the node that is controlling
the resource.
Note: The Workbench remains open after the Cluster64ServerConfig dialog box is closed; you
can continue configuration.
Workbench online
Start the project the same way you do when it is not in a cluster.
Networking | 7 - CIMPLICITY Cluster Resource | 170
3: Status
The Cluster64ServerConfig tool enables you to see immediately if the entries are valid by clicking
the Set Parameter button and viewing the Status box.
Status Box
When the Set Parameter button is clicked, results display in the Status box.
SUCCESS
If all entries are valid the Status box displays SUCCESS and the Resource Parameter List.
You can confirm the CIMPLICITY project path is set as a cluster Resource in the Failover Cluster
Manager.
ERROR
• Any entries (Cluster Name, Resource Name or Project Path) are empty.
Networking | 7 - CIMPLICITY Cluster Resource | 171
Important: Projects configured with Server Redundancy will not start without a valid Server
Redundancy license. This includes starting in Demo mode.
Levels of Redundancy
• Overview
• PLC redundancy
• Cabling redundancy
• Server redundancy
• Computer network redundancy
Overview
The principle of redundancy in automated systems provides for switchover of functionality to
a backup component in case of failure of a primary component. The switchover is considered
Networking | 8 - Server Redundancy | 174
automatic if no operator intervention is required. Redundancy applies to both hardware and software,
and implies minimal loss of continuity during the transfer of control between primary (active) and
redundant (standby) components. Redundant systems reduce single points of failure, preventing loss
of functionality.
• PLC.
• Cabling (PLC LAN or serial connections to server).
• Computer server redundancy.
• Computer networks.
Each level of redundancy provides a failover system that allows continuous system activity with
minimal loss of data. The following sections briefly describe each level.
PLC Redundancy
PLC redundancy lets control transfer from a primary programmable controller to a redundant one in
case of failure.
When the primary PLC comes back on line, control can be transferred from the redundant PLC back
to the primary with minimal loss of data.
The redundancy can be synchronous or independent. Synchronous systems coordinate control and
handling of data between CPUs of the active and standby units, while in independent systems each
PLC acts like an active unit and is not constrained by the others.
Cabling Redundancy
Cabling redundancy (page 244) involves separate physical connections to the same device.
Networking | 8 - Server Redundancy | 175
The devices can be on a LAN (GENIUS, MAP, etc.) or may require serial connections (SNP, CCM,
etc.). Redundant cabling provides an alternate communication path to the device in case of primary
path failure. The implementation of cable redundancy with respect to host monitoring/control
systems differs with the device protocol involved.
Server Redundancy
Server redundancy (page 181) involves a primary factory monitoring server and a secondary "Hot
Standby" server.
The secondary server is essentially a mirror image of the primary server, running alternate
monitoring/control processes and applications. Data collection is performed via independent or
shared network paths to the same devices, depending on the protocol. The characteristics of the
selected communications protocol(s) determine the details of the configuration.
Upon detection of failure of the primary server, the secondary server can assume control of data
collection, alarm functions, applications, and allow user access with minimal loss of continuity.
When the primary server comes back on line, control can be transferred back, and the secondary
server will resume its backup role.
• Server Redundancy
• Computer Cabling Redundancy
Server Redundancy
Server Redundancy (page 181) is fully integrated with CIMPLICITY software's base system
functionality, enhancing its already powerful monitoring capability in a full range of computer
integrated manufacturing environments.
Simply enabling server redundancy for your project provides you with a wealth of redundancy
features. However, server redundancy is only a part of your system. The other key parts of your
system are your Project, PLCs and the communications network. Combined together these pieces
form a mission critical application. Therefore, the application is only as robust as its weakest link.
While server redundancy provides many built in features, it cannot repair a faulty network or fix
incorrectly written logic. Server redundancy depends on you, the Control Engineer to build a robust
environment to enable server redundancy to perform its job.
Networking | 8 - Server Redundancy | 177
Review these topics for an overview of the decisions you need to make while designing your mission
critical application:
Because the secondary server (page 181) in a redundant pair will be set up to run exactly the
same functions (except for configuration functions) as the primary server, the secondary server in a
redundant pair must be identical to the primary server; that is, the disk, memory, and input/output
peripherals should be identical.
Cabling (page 244) to devices may place the primary and redundant servers on the same
or different cables. The type of cabling used will depend on the requirements of the device.
Communications interface software supported by CIMPLICITY Server Redundancy attempts to
minimize network traffic to and from the secondary server.
Or, you can connect a device to redundant servers on the same cable.
Networking | 8 - Server Redundancy | 178
• Computer
• Network
1. Steady-State CPU Utilization of Primary, Secondary and viewers is less than 40%.
Note: Using the Windows Performance Monitor observe, the Memory / Pages/Sec Counter.
This value should be zero.
Server Redundancy requires that the primary and secondary servers and viewers run a
CIMPLICITY supported operating system.
2. Primary and secondary servers connected into the same intelligent network switch or hub.
Note: A large volume of network traffic occurs between the primary and secondary computers.
These two computers should be plugged into a network switch that will isolate the inter-server
communications from the rest of the network.
Note: Using the Windows Performance Monitor observe, the Memory / Pages/Sec Counter.
This value should be 0.
4. Ping times between primary and secondary servers must be less than 10ms, between viewers
and servers less than 30ms.
6. The servers should not use DHCP unless the leases never expire.
Networking | 8 - Server Redundancy | 179
7. Primary and secondary servers connected into the same intelligent network switch or hub
Note: A large volume of network traffic occurs between the primary and secondary computers.
These two computers should be plugged into a network switch that will isolate the inter-server
communications from the rest of the network.
8. Consider using 100mbs Ethernet between the primary and secondary computers.
Server redundancy requires a reliable network, if network reliability is an issue you should
consider implementing cabling redundancy between the servers and viewers.
Server redundancy provides automatic synchronization of Point and Alarm Databases. Server
redundancy provides automatic switch over of CimView application using Points and Alarms. Before
you start building your application you should review the section in this documentation entitled
"Limitations of Server Redundancy", to verify that the features of CIMPLICITY that you intend on
using are supported in server redundancy.:.
CIMPLICITY will run your application as you design it. CIMPLICITY cannot automatically fix
your project if you design it incorrectly. Therefore, it is important that you design your project to be
mission critical from the ground up. Also, it is imperative that you test your application in a server
redundant environment with viewers during the development stage. Only with a properly configured
project can you switch on server redundancy and have it work flawlessly.
We, at GE Intelligent Platforms, have designed many redundant systems using CIMPLICITY. We
understand the methodology and design techniques needed to build a robust system. Therefore, we
do recommend contacting your salesperson to obtain several days of design consultation before you
start your first project, and several days of on-site support during deployment.
Important: The primary computer should use a UNC path (e.g. \\COMPUTER\SHARE
\) to connect to the secondary computer. It is through this path that a qualified user (a user with
administrative privileges) can start and stop the standby.
Note: A UNC path is recommended. A mapped drive may also be used; however, a mapped drive
may not be a valid configuration in all situations.
Deployment
Important: : Server redundancy does not support CIMPLICITY deployment .
Networking | 8 - Server Redundancy | 181
CIMPLICITY software's Base System Functionality fully integrates Automatic Server Redundancy
(page 176) . This functionality transfers control from a primary to a secondary server when the
primary goes down and, as a result, the connection between the primary and secondary is severed.
Redundant features are integrated into Point Management, Device Communications, User
Registration and Alarm Management. The focus of redundancy in CIMPLICITY software centers on:
• Data collection
• Applications driven by these data
• Alarms
• Users accessing these applications
CIMPLICITY also offers the capability for manual redundancy. Manual Server Redundancy (page
190) lets control be transferred from a primary to a secondary server, even if the primary is active
and the two servers are connected. Transfer capability includes:
For CIMPLICITY Server Redundancy, there are two configured computers–the primary server and
the secondary server.
A Primary Server is the Server that normally takes the primary role in a redundant configuration.
Each Primary Server has one Secondary Server.
A Secondary Server is essentially a mirror image of the Primary Server. It runs the same version of
the software as the Primary Server and communicates to the same devices. When the Primary Server
fails, the Secondary Server assumes control of the appropriate functions that normally run on the
Primary Server. A Secondary Server cannot be a primary configuration node, and does not support
any configuration functions.
Networking | 8 - Server Redundancy | 182
Important: A user must be logged on with administrative privileges when mapping the drive
the standby will be running on. If the user does not have administrative privileges the project will not
start on the standby.
In a normal state:
• The primary obtains Alarm and User information from the secondary and automatically takes
over these functions.
• The secondary continues to provide and collect point data for the viewers and the primary for
synchronization.
Example
When the network recovery occurs, the two servers will negotiate to decide which will be the active
and which will be the standby. Thus, the primary as the standby, and the secondary will be the active.
You cannot choose which of the two nodes in the redundant pair will be the active after a dual active
recovery; it will always be the secondary.
• The primary collects point data and takes over point management as well as all other project
functions.
• The secondary returns to standby mode.
Server Redundancy is configured from within the Workbench on the primary computer. The primary
computer most frequently uses a UNC path (e.g. \\COMPUTER\SHARE\) to connect to a secondary
computer. The Workbench will automatically distribute the configuration data to the secondary and
can control startup / shutdown of the pair.
There are some limitations to automatic server redundancy functionality and failure. Manual server
redundancy is a solution for some of these limitations.
5. If you are accessing at logged data when the primary server fails, you will have to switch to the
secondary data source to continue accessing the logged data for Trending.
7. Configuration changes that cannot be made dynamically require the entire project to be shut
down on both computers then be updated and restarted.
8. Dynamic configuration changes can only be made when both computers are running.
Note: You will have to configure the CIMPLICITY Windows service (page 226) if you
want to create Logging tables dynamically triggered by an event.
This includes using an event to trigger scripts that turn on dynamic configuration using
object model methods and properties, e.g. CimProject.DynamicMode (property) and
CimSystem.OpenSystem (method) .
9. During fail over, device values are not read and setpoints are not written.
CIMPLICITY Server Redundancy will not cover the following failures. Application development for
manual server redundancy can frequently circumvent these limitations: Loss of data due to failure of
a single component involved in data collection.
If a cable or LAN interface fails, CIMPLICITY software detects the problem, but it will not
automatically start collecting data on the secondary server. Under these circumstances, a user may
choose to shut down the primary server to allow the secondary server to take over.
Networking | 8 - Server Redundancy | 185
When both servers are acting as the Primary server [dual active condition], the Primary Server will
go to standby mode and allow the secondary server to take over as active.
Loss of the communications link between CIMPLICITY primary and secondary servers while the
primary server is still running.
If the link is lost, both servers will act as the primary server. The secondary server will need to be
shut down, and the network repaired. CIMPLICITY software can then be restarted on the secondary
server.
If device communications processes are running on the primary server, the corresponding
processes also run on the secondary server.
While the primary server is the active server, the device communication modules on the
secondary server operate in standby mode to minimize the impact of redundant data collection
on the communications LAN or the programmable controller.
5. The primary server immediately updates user registration and alarm data from the secondary
server while it automatically takes over these functions.
6. A CIMPLICITY System manager issues a manual command for the primary server to take over
point management and device communication.
Users can make setpoint requests on either the primary or secondary server via:
While the primary server is running, all setpoints from the secondary server except those from the
Automatic Control Function will be routed to the primary computer. All setpoint originating from
Automatic Control Functions on the secondary will be discarded when the primary is in control.
Let's consider the case of the Event Manager. The Event Manager runs on both the primary and
secondary computers. Events are triggered on both the primary and secondary computers. All
Networking | 8 - Server Redundancy | 188
setpoint requests invoked from the action or script tied to the event will be ignored on the standby
computer. In other words, your scripts execute in tandem on both computers, but the output to the
points is processed only on the active computer.
A Custom Program would be a PTMAP API program written by you that executes as a resident
process within CIMPLICITY. Setpoints originating from this program will work the same as the
Event Manager.
When the primary server is in control, both the primary and the secondary server log alarm and
point data into their separate databases. As a result, if the primary fails the secondary computer can
continue to log data without loss of information.
When you bring a server back on line after a failure, a datamerge.exe utility:
When you set up your redundant logged database configuration, you have to make sure that both
the primary and secondary servers know where to log their own data. You also have to make
sure that the primary server knows where the secondary server is logging data, in case it needs
to access the secondary logged database after a failure.
3. Set up the same database on the primary and secondary servers so you will have two actual
databases that, under normal operation, will be identical.
See Server Redundancy Configuration Procedures (page 195) in this documentation for
configuration details.
Important: Viewer applications, such as Trending, that use logged data from a server will
not fail over to the database on the redundant server.
The Alarm Manager on the primary server receives its updates from CIMPLICITY services on
both the primary and secondary servers. CIMPLICITY applications that generate alarms (Point
Management, Event Manageretc.) will not generate alarms when the corresponding application is
running on the primary server.
A runtime database for users is maintained by User Registration on the primary server. This
information is passed to User Registration on the secondary server.
CimView applications running on the primary server or viewers receive point updates from the
primary point manager. CimView applications running on secondary server receives updates from
the point manager running on the secondary server. All setpoints are routed to the primary point
manager. When the primary server is lost, CimView applications on viewers automatically begin
receiving updates from the secondary point manager.
Important: Trend Controls on CimView screens that use logged data will not fail over to the
database on the redundant server.
The functions reside in the Redundancy.dll and can be called by any programming language,
like the Basic Control Engine, that is capable of calling a DLL entry point.
Networking | 8 - Server Redundancy | 191
Causes the current standby computer to become the current active computer.
COR_BOOLEAN redundant_is_redundant()
int redundant_local_index()
Returns the index of the global point element that has the status of the local device.
Returns If on the
0 Primary
1 Secondary.
int redundant_remote_index()
Returns the index of the global point element that has the status of the remote device
Returns If on the
0 Primary
1 Secondary.
You, the system manager, will configure a specific global point and provide the logic to
determine when a changeover will occur. Basically the logic can be whatever you want, as long
as it is running as part of the project.
Note: Aids that are in your CIMPLICITY directory, if you installed the server redundancy
option include:
The devcom toolkit provides the current status of a device connection to Point Management
(PTM). Whenever the status of the connection changes the devcom will send a message to Point
Management.
Point Management will set a global point based on the status of the device connection.
• Devcom: All the devices for the devcom are marked unavailable
• Remote PTM: All of the remote devices are marked unavailable
• Local PTM: The application fails over to the remote PTM
A global BOOLEAN array point of two (2) elements indicates the status of the device connection.
In a normal state the primary server carries out several processes that can be classified as point
management.
• Data collection
• Virtual point processing
• Sending information to CimView screens
Networking | 8 - Server Redundancy | 193
If the primary server stops collecting data from one device, but is still running and communicating
with the secondary computer, there is no automatic fail over.
Under these circumstances or for whatever reasons you specify, you can manually transfer point
management from the primary to the secondary server.
Software
• Database logging
• Alarm viewer
• Base control engine
Devcom
todo: To manually transfer point management from the primary to secondary server:
1. Create a specific Boolean point with the same name as the device being monitored.
failover_data_collection()
3. Specify what actions should occur if the point changes from 1 to 0 through a Basic script.
Example
Your primary server is connected to a PLC for a conveyor belt called CB_PLC and a CimView
screen.
The primary server stops collecting data from the CB_PLC device.
Networking | 8 - Server Redundancy | 194
The system manager is alerted and switches data collection to the secondary server.
If the primary server loses contact with one device, but is still running and communicating with the
secondary server, there is no automatic fail over.
Under these circumstances or, for whatever reasons you specify, you can manually force a fail over
from the primary to the secondary server.
1. Create a specific Boolean point with the same name as the device being monitored.
failover_project ()
3. Specify what actions should occur if the point changes from 1 to 0 through a Basic script.
Example
Your primary server is connected to a PLC for a conveyor belt called CB_PLC and a CimView
screen.
The system manager is alerted and fails over the entire project from the primary to the
secondary server.
Before you begin configuration, make sure that the same version of CIMPLICITY software is
installed and licensed on both servers of each redundant pair. In addition, you must install all
required application options, protocols and databases software on both computers.
Review:
Step Description
1 A project.
(page
196)
3 Device communications.
(page
199)
Note: Global points are obsolete as of CIMPLICITY 5.0. Instead use the points that are created
in the redundancy object.
2. Select Settings.
Project path Enter the directory on the secondary Server where the CIMPLICITY project will be stored.
• (Recommended) A UNC path, e.g. \\SERVER2\Redund.
Note: UNC filenames are supported.
• A mapped drive on the primary server.
Note: A mapped drive may not be a valid configuration in some situations.
Configuration files and screens are copied from the primary server to the Project path whenever
a Configuration Update is performed.
Note: Make sure you configure the logging setup on both the primary and secondary server
through the Database Logger in the CIMPLICITY Workbench.
The second step when configuring a base system for server redundancy is to configure and verify the
network.
Important: SR requires that all computers (primary, secondary and viewer) must have their
names and IP addresses configured and these names must match the actual computer names. You
may configure the host names in DNS, WINS or in the local host file on each computer, depending
on the networking resources available at your site. SR will not function correctly if this information
is not configured. If you do not understand network configuration you should obtain the services of
someone that does.
1. From the primary computer ping primary, secondary and all viewers by name and by address.
2. From the secondary computer ping primary, secondary and all viewers by name and by address.
Networking | 8 - Server Redundancy | 198
3. From each viewer, ping primary and secondary by name and address.
Ping Example
C:\WINNT\system32>ping albsagp2
Pinging albsagp2 [3.26.4.215] with 32 bytes of data:
Reply from 3.26.4.215: bytes=32 time<10ms TTL=128
Reply from 3.26.4.215: bytes=32 time<10ms TTL=128
Reply from 3.26.4.215: bytes=32 time<10ms TTL=128
C:\WINNT\system32>ping -a 3.26.4.215
Pinging ALBSAGP2 [3.26.4.215] with 32 bytes of data:
Reply from 3.26.4.215: bytes=32 time<10ms TTL=128
Reply from 3.26.4.215: bytes=32 time<10ms TTL=128
Reply from 3.26.4.215: bytes=32 time<10ms TTL=128
C:\WINNT\system32>set computername
COMPUTERNAME=ALBSAGP2
C:\WINNT\system32>
To
Verify Referencing the Above Example
Names
Ping by ping albsagp2 first translates albsagp2 to an IP Address and then verifies communication to the
Name computer. albsagp2 has an IP address of 3.26.4.215. The time required to Ping must be less than 10ms
between primary and secondary and less than 30ms between viewers. This step verifies that the network
software can convert a hostname to an IP Address.
Ping by Type ping –a 3.26.4.215 . The output of ping albsagp2 provides the IP Address. This step verifies that
Address the network software can convert the IP Address back to the same node name as entered in the first
step. If you obtain a different IP Address back this may indicate that you have duplicate entries for the IP
Address in you network lookup tables. This must be corrected before continuing.
Continue In this example we just ping one computer. You would continue to ping the other computers (secondary,
Pinging viewers, etc)
Check Type set computername to return the current setting. This final step on each computer is determines
Computer if the system's computer name is the same as the computer name configured in the network. This
Names setting must match the name returned in the above two tests. If not this must be corrected by either
changing your computername or changing the network software configuration before continuing.
Networking | 8 - Server Redundancy | 199
Unsolicited Data
The Device Communications module receives and processes unsolicited data reported from factory
devices.
Unsolicited data must be directed to the secondary server in addition to the primary server, so it
can be processed by the Device Communications/Point Manager on the secondary server when the
primary server fails.
Note: To enable PTMRP to buffer the data from OPC DA and UA, select Buffer data
forredundant failovercheckbox in Point Device Properties. In case of a failover, thedata changes are
buffered to avoid any data loss during the switch over. When thesecondary server starts working, the
relevant Alarms and Events can be generatedbased on the buffered data.
The next step is to configure virtual points to track redundant server status during system operation.
The points have the following requirements:
The current Primary Point Manager will only change the values. This implies that point updates to
the global points will occur when:
Important: If you are using point lines in Trending that automatically look for the data source,
you must configure ACTIVE_PTM_RP and STANDBY_PTM_RP . These are the points that
Trending needs to failover to the secondary server if the primary is down.
Following are the procedures to setup Server redundancy and starting/stopping of remote projects on
Windows Server 2008.
Important: You must be a user in the administrators group to set up server redundancy on a
remote machine that is part of a Workgroup.
•
• Server Redundancy Setup
•
• On the primary and secondary servers
•
• On the secondary server
•
• On the primary server
Networking | 8 - Server Redundancy | 201
1. Follow the CIMPLICITY documentation requirements for Server Redundancy to set up the
hardware and network, including
• Hardware.
• Computer.
• Network.
5. Click OK.
Networking | 8 - Server Redundancy | 202
Note: If you want to start the project on the primary server from the secondary server, you
also have to do these procedures on the primary server,
Note: If the account is a local computer member of the Administrators group, the User Account
Control (UAC) does not allow access to the WinRM service.
Warning: Making changes to the registry is very dangerous and should be done with care.
Configure project with server redundancy and use a UNC path name for the Project path under
the Redundancy tab on the Project Properties.
The following procedure enables selected users to start a remote project from the Workbench.
11. Map a drive from remote computer to the local computer to access the project.
12. Grant full access for each administrative user who will perform administrative tasks, including
configuration update, dynamic configuration, as follows.
a. Open a command window.
b. Enter the following.
Where
Sharename=drive:path Drive and path of the share
Networking | 8 - Server Redundancy | 204
Username You can enter as few as one name to as many names as should have this privilege.
• Username1 is the first name entered for selected users.
• Username2 is the second user name for selected users.
• UsernameN is the user name with N corresponding to the sequence number for
selected users.
13. Continue setup using the same procedures that you use to set up (page 201) server
redundancy.
When you set up the same database on the primary and secondary server (so you will have two actual
databases that, under normal operation, will be identical) you need to identify them for data logging.
• The primary and secondary servers log data in parallel to their own database.
• The primary server logs to the database on the primary SQL Server.
• The secondary server logs to the database on the secondary SQL Server.
The only time the primary or secondary server will connect to the other node's database is when the
data on the two servers needs to be merged.
• P = Primary Server
• S = Secondary Server
Step Description
Step 1 Configure the Windows ODBC Data Source Administrator
(page
205)
Note: Viewer applications, such as Trending, that use logged data from a primary server will not
fail over to the database on the redundant server.
CAUTION: On the primary server, make sure you have specified the redundant server in the
Project Properties (page 196) dialog box.
Step Description
Step 1.1 Primary Server: Configure Windows ODBC data sources.
(page
206)
Step Description
Step 1.1.1 Display the System DSN Tab.
(page
206)
32-bit system
a. Open the Windows desktop on the primary Server.
b. Open the Administrative Tools> Datasources (ODBC)> ODBC Data Source
Administrator dialog box.
64-bit system
• Use the ODBCAD32 utility to:
a. Open the ODBC data Source Administrator.
b. Populate the System DSN tab.
3. Click Add.
Networking | 8 - Server Redundancy | 207
Do the following.
Networking | 8 - Server Redundancy | 208
1. Select the appropriate driver in the Create New Data Source list.
2. Click Finish.
Result: An ODBC SQL Server dialog box opens in which you begin to set up the data source.
Step 1.1.3. Configure the Primary Data Source on the Primary Server
The SQL Server storing data from the primary server is the primary data source.
P = Primary Server
S = Secondary Server
1. Enter specifications in the Create a new Data Source to SQL Server dialog box as follows:
Networking | 8 - Server Redundancy | 209
A Name Unique for the primary server data source. PRIMARY SQL
SERVER
C Server The SQL Server for the primary server. Note: Select the SQL Server SQLSERVER1
from the drop down menu.
D Click Next.
2. Do the following.
A Check: With SQL Server authentication using a login ID and password entered by the user.
B Enter the following. Login ID: Valid database username. Password: Password associated with the username.
C Click Next.
3. Do the following.
Networking | 8 - Server Redundancy | 210
A Check: Change the default database to the dropdown list of databases that are connected to the selected
data source is enabled.
The dropdown list of databases that are connected to the selected data source is enabled.
B Select a default database. Important: The default database should have the same name as the database ID
for the seconadry server.
C Click Next.
4. Do the following.
B Click Finish.
An ODBC Microsoft SQL Server Setup screen displays the details of your configuration.
The SQL Server data source (e.g. PRIMARY SQL SERVER) is created and displays in the Data
Source list on the System DSN tab.
Step 1.1.4. Configure the Secondary Data Source for the Primary Server
The SQL Server storing data from the secondary server is the secondary data source.
The primary server must be aware of this data source. However, the only time the primary or
secondary server will connect to the other node's database is when the data on the two servers needs
to be merged.
Networking | 8 - Server Redundancy | 212
P = Primary Server
S = Secondary Server
1. Enter specifications in the Create a new Data Source to SQL Server dialog box as follows:
A Name Unique for the secondary server data source. SECONDARY SQL
SERVER
C Server The SQL Server for the secondary server. Note: Select the SQL Server SQLSERVER2
from the drop down menu.
D Click Next.
2. Do the following.
Networking | 8 - Server Redundancy | 213
A Check With SQL Server authentication using a login ID and password entered
by the user.
C Click Next.
3. Do the following.
The dropdown list of databases that are connected to the selected data source is enabled.
B Select A default database Important: The default database should have the same name as the database
ID for the primary server.
C Click Next.
4. Do the following.
B Click Finish.
An ODBC Microsoft SQL Server Setup screen displays the details of your configuration.
The SQL Server data source (e.g. SECONDARY SQL SERVER) is created and displays in the Data
Source list on the System DSN tab.
Networking | 8 - Server Redundancy | 215
Step Description
Step 1.2.1 Display the System DSN Tab.
(page
215)
32-bit system
a. Open the Windows desktop on the primary Server.
b. Open the Administrative Tools> Datasources (ODBC)> ODBC Data Source
Administrator dialog box.
64-bit system
• Use the ODBCAD32 utility to:
a. Open the ODBC data Source Administrator.
Networking | 8 - Server Redundancy | 216
3. Click Add.
Do the following.
Networking | 8 - Server Redundancy | 217
1. Select the appropriate driver in the Create New Data Source list.
2. Click Finish.
Result: An ODBC SQL Server dialog box opens in which you begin to set up the data source.
Step 1.2.3. Configure the Primary Data Source on the Secondary Server
The SQL Server storing data from the primary server is the primary data source.
The secondary server must be aware of this data source. However, the only time the primary or
secondary server will connect to the other node's database is when the data on the two servers needs
to be merged.
P = Primary Server
Networking | 8 - Server Redundancy | 218
S = Secondary Server
1. Enter specifications in the Create a new Data Source to SQL Server dialog box as follows:
A Name Unique for the primary server data source. PRIMARY SQL
SERVER
C Server The SQL Server for the primary server. Note: Select the SQL Server SQLSERVER1
from the drop down menu.
D Click Next.
2. Do the following.
A Check With SQL Server authentication using a login ID and password entered
by the user.
C Click Next.
3. Do the following.
The dropdown list of databases that are connected to the selected data source is enabled.
B Select A default database Important: The default database should have the same name as the database
ID for the secondary server.
C Click Next.
4. Do the following.
B Click Finish.
Networking | 8 - Server Redundancy | 220
An ODBC Microsoft SQL Server Setup screen displays the details of your configuration.
The SQL Server data source (e.g. PRIMARY SQL SERVER) is created and displays in the Data
Source list on the System DSN tab.
Step 1.2.4. Configure the Secondary Data Source for the Secondary Server
The SQL Server storing data from the secondary server is the secondary data source.
P = Primary Server
S = Secondary Server
1. Enter specifications in the Create a new Data Source to SQL Server dialog box as follows:
A Name Unique for the secondary server data source. SECONDARY SQL
SERVER
C Server The SQL Server for the secondary server. Note: Select the SQL Server SQLSERVER2
from the drop down menu.
D Click Next.
Networking | 8 - Server Redundancy | 222
2. Do the following.
A Check: With SQL Server authentication using a login ID and password entered by the user.
C Click Next.
3. Do the following.
A Check Change the default database to the dropdown list of databases that are connected to the selected
data source is enabled.
B Select A default database Important: The default database should have the same name as the database
ID for the primary server.
C Click
Next.
Networking | 8 - Server Redundancy | 223
4. Do the following.
B Click Finish.
An ODBC Microsoft SQL Server Setup screen displays the details of your configuration.
The SQL Server data source (e.g. SECONDARY SQL SERVER) is created and displays in the Data
Source list on the System DSN tab.
Networking | 8 - Server Redundancy | 224
2. Select Properties.
5. Click Settings.
Field Description
ODBC data source The data source for the server from the drop down list of available data sources. Tip: Click
the ODBC Data Source button to the right of the ODBC data source field to open the
ODBC Data Source Administrator dialog box. You can then see the drivers configured for
each data source and make any necessary changes or additions.
Database user (Required if you are connecting to a SQL Server) user who has the privilege to connect to
the selected database driver.
Password (Required if you are connecting to a SQL Server) needed to connect to the selected
database driver.
Reconnect wait Amount of time the Database Logger waits between reconnect attempts when the
period connection to the database is lost in the. Enter a value between 0 seconds (continuous
retries) and 24 hours. The default is 30 seconds.
Enable Store and Checked enables Store and Forward. After you enable the feature, check one of the
Forward following:
• Unlimited: Database Logger stores an unlimited number of records while its connection
to the database is down. The number of records actually stored is determined by the
amount of time the connection is lost and by the amount of free disk space you have.
• Max number of stored records: Database Logger stores a specified number of
records when its connection to the database is down. Enter a number between 1 and
4,294,967,295.
8. Repeat these steps for the other three tabs so you will have configured all four tabs:
Tab Server
CIMPLICITY validates your entries. If the Data Logger is unable to connect to the selected database,
validation fails.
Important: On each tab, make sure that you select the correct data source for the computer
(Primary / Secondary) that the tab represents.
2.1 Configure a Service for Creating Logging Tables Dynamically Triggered by an Event.
(page
226)
2.1. Configure a Service for Creating Logging Tables Dynamically Triggered by an Event
Note: A script can be run to create logging tables dynamically triggered by an event.
However, for this to work in a redundant environment, a CIMPLICITY service has to be configured
to log on as an account that has access to both the primary and the secondary computer.
CIMPLICITY uses file access calls to determine if the project is running on the secondary.
If a service is not configured this will fail because the test is being done by the CIMPLICITY service.
An error message will indicate Project must be running on secondary computer to use dynamic
configuration. even if the project is running on both servers.
Field Description
This account Enabled when checked. CIMPLICITY user ID that can access CIMPLICITY projects on both
servers.
6. Click OK.
The CIMPLICITY service can now log on to both computers. Therefore, a script can now be used to
dynamically create logging tables which is triggered by an event.
If you are connecting to a SQL Server, you may be prompted for a database name during validation.
Oracle Database
You may see the ODBC data source that you created for Oracle.
You may be prompted for a Server ID during validation. Enter the Alias Name for the Oracle
database in this field.
Networking | 8 - Server Redundancy | 228
Redundancy Object
Redundancy Object
When you activate the server redundancy option in the Workbench, CIMPLICITY automatically
installs a Redundancy object, which is an object of the redundancy class.
This capability enables you to efficiently switch control back and forth while ensuring that data is not
lost.
Note: The class object and screen are automatically created when Redundancy is enabled.
Section Description
1 Class objects
1. GefRedundancy class.
2. Redundancy object.
REDUNDANCY.RESTORE_PRIMARY When set to 1(by a button on the Redundancy CimView screen), the
active is switched to the primary computer.
REDUNDANCY.SWITCH_TO_SEC When set to 1(by a button on the Redundancy CimView screen), the
active is switched to the secondary computer.
Note: You do not have to do any configuration for the redundancy class and object.
CIMPLICITY does it all for you.
Step Description
Step 1 Display the Redundancy CimView screen.
(page
230)
2. Do the following.
Networking | 8 - Server Redundancy | 231
Once the Redundancy CimView screen displays for the project, you can review which:
The secondary computer the active and the primary computer is offline.
The secondary computer displays as the active; the primary computer displays as offline.
5. Switch roles.
The primary computer is the active; the secondary computer is the standby.
Recovery Procedures
Recovery Procedures
When all hardware is working correctly, CIMPLICITY software can be started and shut down using
the Run and Stop tools in the CIMPLICITY Workbench on the primary server.
Important: Under most circumstances you should use the Workbench to start redundant
projects. This is because the Workbench:
1. Allows you to start up both systems in one coordinated action. (If you use CIMPLICITY
Options to startup on the primary, you need to wait for the primary to finish its startup and then
start the secondary.)
2. Will update the standby node configuration as required before starting the project, making sure
that the active and standby nodes are synchronized.
A rare exception to normal startup occurs if, there is a catastrophic event that forces both
computers to shut down, e.g. the power failed. In this situation, the last active server must be the
first restarted to ensure data integrity in the following areas:
• Manual mode data and values.
• Saved point values.
If, the secondary server was the only computer running before shutting down, it should start
first, as the active Data that was collected before the shutdown can then be failed over to the
primary server before it is reinstated as the active.
Tip: If one project is running and one is stopped both the Run and Stop buttons on the
Workbench toolbar are active . Click either button to determine which project is running.
Method 1
a. Click Project on the Workbench menu bar.
b. Select Run.
Method 2
The Redundant project stop dialog box opens when you use either method.
Networking | 8 - Server Redundancy | 235
4. Select Run.
Method 1
a. Click Project on the Workbench menu bar.
b. Select Stop.
Method 2
Note: The buttons are disabled for servers that are not running.
The project can be configured to start on both the primary and secondary computers when they
power up.
Important: Make sure that the projects do not start at the same time if they are configured to
start on both the primary and secondary computers when they power up. Failure to ensure this can
result in both computers considering themselves the active server.
To provide a mechanism for dealing with a Power On situation where both computers boot at the
same time you can configure a parameter to delay the secondary computer's startup until the primary
is complete.
To delay the secondary computer's startup until the primary is running, configure the following
global parameter in the project:
Where
Time-minutes is the amount of time it takes for the project to start on the primary computer plus an
additional minute.
This value you empirically determine by measuring the startup time on the active server.
Note: It is recommended that you use the Workbench to start redundant projects.
When the server fails in automatic server redundancy, the secondary server automatically takes
control.
Review:
When the primary server of a redundant pair fails, the secondary server goes from standby to active
mode to insure that all essential areas in the project continue to operate.
Areas include:
Note: Between the time that the primary server is lost and before the secondary server takes
over, users may notice an interruption in system performance. During this time, point values will not
be updated, setpoints and alarm acknowledgments will not complete, and users will not be able to log
on or off.
Alarm Management
The Alarm Manager on the secondary server becomes the primary Alarm Manager. No alarm data
is lost because the Alarm Manager on the primary server continually updated the alarm list for the
Alarm Manager on the secondary server. The new primary Alarm Manager will now process all
alarm updates and provide alarm information to all interested processes.
Networking | 8 - Server Redundancy | 238
User Logons
The User Registration process on the secondary server becomes the primary User Registration
process. No user registration data is lost because User Registration on the primary server continually
updated the user list for User Registration on the secondary server. The new primary User
Registration will now process all user logins and logouts and provide information on user views.
Runtime Interfaces
When the primary server fails, all CimView, Alarm Viewer and Point Control Panel sessions running
on that server are lost.
When the primary server fails, this console is no longer usable. The user will have to move to the
console on the secondary server, log in, and access the CIMPLICITY user interface from there.
Server failure is detected by the IPC Router, which is the communications process that runs on each
server.
1. The Router sets up links to each server in the system and sends messages to each node at a set
interval.
2. If no reply is received from the server for a set number of tries (defined in
REDUND_PROBE_COUNT) the server is then declared to have failed.
3. The Router sends a Partner Dead message to any processes that have outstanding messages to
processes on that server.
Networking | 8 - Server Redundancy | 239
After a primary server has failed and recovered, processes on the secondary server need to be told
that the primary sever is now available. The Redundancy object provides a straightforward way
to reset the primary server. CIMPLICITY automatically displays this object when the redundancy
feature is activated.
1. Make sure that CIMPLICITY software is running on the primary and secondary servers.
The Redundancy screen appears displaying the primary computer as the standby and the
secondary as the active.
6. Click Switch.
Note: The Alarm Manager and User Registration on the primary and secondary servers will
automatically resynchronize themselves to their primary and secondary roles when the primary
server initially comes on line.
• Device communications modules on the secondary server will stop collecting data and return to
standby mode.
• The Point Manager on the secondary server resumes its secondary role.
• All viewer applications will automatically resynchronize to the primary Point Manager.
The Point Manager on the primary server will resume its primary role, and will initiate device
communications modules on the primary server to start collecting data.
The Database Logger uses ODBC database tables to store historical data. For Server redundancy, the
same database tables are created on the primary and secondary servers.
With <timestamp> as the date and time the file was created the ptnr_<timestamp>.log records on the:
Server Clocked time
Secondary When one of the servers went down and came back up.
Primary When one of the servers went down and came back up.
Note: If there is no data with the exact time stamp that is at the exact End time stated in the
destination database , the Datamerge utility will:
Networking | 8 - Server Redundancy | 241
• Search for the next latest logged data in the destination and
• Merge to that point.
Datamerge will automatically use the found next latest logged data as the END time even though an
End time was specified at the command line or via the ptnr* files.
Datamerge Command
A Note: The command prompt should display the path to the selected project.
a. Type the following.
datamerge /?
a. Press Enter.
C Enter the datamerge.exe command with parameters to merge specific times. The command format is:
DATAMERGE.EXE SOURCE DEST TIME1 TIME2 Where
TIME2 End time (page 240) for merging data [dd-Mmm-yyyy hh:mm:ss]
Important:
• The month (only the month) has the first letter capitalized.
Networking | 8 - Server Redundancy | 242
CAUTION: Datamerge must include command line options for both the primary and
secondary servers if either the primary or the secondary server is restarted without the other.
Examples
• The Primary Only or Secondary Only server is checked on the Start Redundant Project
(page 234) dialog box and the Start button is clicked.
• The Primary Only or Secondary Only server is checked on the Stop Redundant Project
(page 235) dialog box and the Stop button is clicked.
• Data is logged to one server and not the other.
or
Following is how datamerge.exe is executed from the primary to the secondary server.
5. Press Enter.
6. Reads the ptnr_ < timestamp > .log files on the primary and secondary servers.
7. Determines from the ptnr_ < timestamp > .log files in the primary server's \log directory
what data needs to be merged from the primary server's database to the secondary server's
database.
9. Determines from the ptnr_ < timestamp > .log files in the secondary \log directory what
data needs to be merged from the secondary server's database to the primary server's database
Note:
• The process from the secondary to primary server merges the files from the secondary
server to the primary server first.
• When you run the datamerge.exe utility with specific start and end times, the
ptnr_timestamp.log files on the secondary and primary servers are not used.
There are two categories of failure exceptions that CIMPLICITY automatic Server Redundancy will
not handle:
• Process failures.
• Network failures.
Process Failures
A process failure occurs when a single process on a server fails. If this occurs on a primary server,
the recovery method depends on which process failed.
• If the Alarm Manager or User Registration on the primary server fails, control automatically
passes the corresponding process on the secondary server. If the process on the primary server is
restarted (via cpc), control will automatically pass back to the process on the primary server.
• If a device communications process on the primary server fails, control will not pass to the
corresponding process on the secondary server, and point data will be lost.
• If the Point Manager on the primary server fails, control automatically passes to the Point
Manager on the secondary server.
3. When the project is running, reset the primary server to be the active.
Use either of two manual redundancy functions to anticipate and deal with this possibility.
Network Failures
1. On each secondary server, use Stop to shut down the CIMPLICITY project.
3. After the network is restored, use Start to bring the project on the secondary server back online.
Note: The above procedure assumes that the CIMPLICITY project is still running on the
primary server. If the project has been shut down, then use the normal startup procedures to
restart the project on both the primary and secondary server.
You can use CIMPLICITY Computer Cabling Redundancy to create a redundant cabling
configuration for your CIMPLICITY for Windows Servers and Viewers.
In a network with CIMPLICITY Computer Cabling Redundancy, you can have two types of
computers; computers with single IP addresses and computers with dual IP addresses.
• Computers with dual addresses–can continue to communicate with other computers with dual IP
addresses even if one of the Ethernet network connections is lost.
Networking | 8 - Server Redundancy | 245
• A computer with a single IP address– can communicate with a computer with dual IP addresses.
If the Ethernet connection that the computer with the single IP address is using is lost, then all
communication to the dual IP address computer will be lost.
When a CIMPLICITY project detects that it is sending a message to a computer that has Computer
Cabling Redundancy, the project sends duplicate messages to each IP address. CIMPLICITY
software on the receiving computer processes the first message and deletes the second one.
Review:
The following rules describe the overall operation of a computer with Computer Cabling
Redundancy:
• When a loss of a network is detected Ethernet traffic continues on the other network.
• When the network is repaired the computers will re-establish communication automatically,
within 45 seconds.
• If both networks are lost then CIMPLICITY software acts as if communication was lost to the
project. CIMPLICITY software will re-establish the connections to the other computer when the
network is repaired.
There are some limitations when using computer cabling redundancy that you need to be aware of
before you implement it.
Functionality Limits
The following functionality limitations apply for Computer Cabling Redundancy:
• If you are viewing logged data remotely with the Trend Control and the Ethernet cable that
ODBC is currently using is lost then the Trend Control will stop updating the logged data.
• If you are logging to a remote database and the Ethernet cable that ODBC is currently using is
lost then some data may not be logged.
• Non-CIMPLICITY applications might experience interruptions as they fail over to the
remaining Ethernet cable.
Networking | 8 - Server Redundancy | 246
• It is not possible to have two Ethernet cards installed and only use one of them for
CIMPLICITY software.
CIMPLICITY Computer Cabling Redundancy supports two network interface cards (NIC) in each
computer.
• IP network and
• Physical Network
• A,
• B and
•C
If you configure one card for an A class IP network and the other for a C class, by default they will
be connected to different IP networks.
You can configure each card to the same class IP network. However, you have to make sure that they
are, in fact, different IP networks.
Example
Where
You can configure the second card with a Class C IP address by simply changing the number that is
unique to the address.
Where
Note: You can use any subnet mask for two IP addresses. However, you cannot use a single
subnet mask to differentiate the networks. You have to use a different IP network number for each IP
address, disregarding the subnet mask.
Note: Make entries on the Hosts tab and Network tab in the CIMPLICITY Options dialog box.
Entries on the Hosts tab are written to the CimHosts.txt file. When CimHosts.txt is edited through the
Hosts tab, comments that have been written:
#SOCKET_CONNECT_TIMEOUT <seconds>
Example: #SOCKET_CONNECT_TIMEOUT 3
PING_INTERVAL * (PING_COUNT + 1)
The two parameters, PING_INTERVAL and PING_COUNT are defined in the cimhosts.txt
file.
where
<seconds > is the number of seconds between probe attempts and <count> is the number of probes
to make.
Example
#PING_INTERVAL 2
#PING_COUNT 10
A related parameter is CONNECT_TIMEOUT. This is the number of seconds to wait after forming
the TCP/IP connection for the initial data to arrive from the other computers. The default value is 10
seconds. There should be no reason to change this value.
Networking | 8 - Server Redundancy | 249
where
< flags > is a value used to control what types of diagnostic output to generate.
You can add any of the following values together to form the < flags > value:
Value Output
1 Print errors
where
< port > is the TCP/IP port to start with and < count > is the number of ports to use.
Example
#START_PORT_RANGE 5000
Networking | 8 - Server Redundancy | 250
#NUMBER_OF_PORTS 1000
The Computer Cabling Redundancy Monitoring API allows you to determine how the network
connections at your site will be monitored. You can write BASIC scripts or C programs that can set
points, generate alarms or pop up dialogs to inform the operator that a network connection has been
lost. The following APIs are available:
• The IP Status API can be used to monitor when a connection to an IP address has been lost or
formed.
• The Socket Status API provides more detail about each of the connections in use by
CIMPLICITY.
Review:
• IP Status API.
• IP Status API functions.
The APIs are callable from any programming language that can call exported C functions from a
DLL. This includes the CIMPLICITY BASIC Control Engine.
In the api\redundant_api directory under the CIMPLICITY root directory are two samples
programs that demonstrate the APIs.
• The BASIC script ip_status.bcl generates and resets alarms as IP connections are lost or
formed.
• The C program sock_status.cpp will print out the status information for all the sockets
currently in use.
Review:
IP Status API
Use the Computer Cabling Redundancy IP Status API to monitor the state of connections to IP
addresses.
The following BASIC script generates or clears an alarm depending upon the state of the connection
to an IP address.
• InitSocketChange
• WaitSocketChange
• CloseSocketChange
• GetNextSocketChange
InitSocketChange
Function Description
Syntax void *InitSocketChange();
Comments This function returns a pointer used in other functions to identify this request, or NULL if the initialization
failed.
WaitSocketChange
Function Description
Syntax DWORD WaitSocketChange (void *arg, DWORD timeout );
Description This function waits for the next change in an IP status to occur.
Networking | 8 - Server Redundancy | 253
Function Description
Comments The arg pointer is the pointer returned by the InitSocketChange function. The timeout parameter
is the length of time in milliseconds to wait for a change to occur. If the value is –1 then the function will
wait forever. This function returns a 1 if a status has changed or 0 if the function timed out.
CloseSocketChange
Function Description
Syntax void CloseSocketChange (void *arg);
Comments The arg pointer is the pointer returned by the InitSocketChange function. This function does not have
a return status.
GetNextSocketChange
Function Description
Syntax DWORD GetNextSocketChange (void *arg, TCHAR *node,
DWORD *ipAddress, DWORD *state);
Description This function gets the information about the next IP status change.
Value State
0 Not connecting
1 Connecting
2 Connected
3 Deleted
4 Unknown
You can use the Computer Cabling Redundancy Socket Status API to monitor the state of all the
sockets currently in use by CIMPLICITY Computer Cabling Redundancy.
The following C program prints out the status of each of the sockets.
#include <string.h>
#include <inc_path/cor.h>
#include <inc_path/redwinsock.h>
void print_sockaddr_in(struct sockaddr_in *addr);
TCHAR *socketUse[] =
{
_T("None"),
_T("Listen"),
_T("Connect"),
T("Accept"),
};
TCHAR *socketState[] =
{
_T("None"),
_T("Connecting"),
_T("Connected"),
};
int main()
{
HANDLE dwChangeHandle;
dwChangeHandle = FindFirstSocketChangeNotification();
if(dwChangeHandle == INVALID_HANDLE_VALUE)
return 0;
HANDLE objectArray[1];
WORD objectCount = 1;
objectArray[0] = dwChangeHandle;
DWORD dwWaitStatus = WAIT_OBJECT_0;
while(1)
{
time_t ltime = time(NULL);
printf("\n%s", ctime(<ime));
switch(dwWaitStatus)
{
case WAIT_OBJECT_0:
struct SocketFindData findSocketData;
if(FindFirstSocket(dwChangeHandle, &findSocketData))
{
do
Networking | 8 - Server Redundancy | 255
{
if(findSocketData.opened)
{
printf("%-10s ", findSocketData.prcName);
printf("%-10s ", findSocketData.imageName);
printf("%-6s ", findSocketData.opened ? "Opened" :
"Closed");
printf("%-7s ", socketUse[findSocketData.socketUse]);
rintf("%-9s ", findSocketData.isRedundant ? "Redundant" :
"");
printf("%-9s ", findSocketData.connectionCompleted ?
"Completed" : "");
printf("%-10s ", findSocketData.hostName);
printf("\n");
unsigned int i;
for(i = 0; i < findSocketData.connectionCount; i++)
{
if(findSocketData.sockets[i].isOpen)
{
printf("\t%2d: %-10s ", i,
socketState[findSocketData.sockets[i].socketState]);
printf("%-9s ", findSocketData.sockets[i].hasException
? "Exception" : "");
if(findSocketData.socketUse == SOCKET_ACCEPT
|| findSocketData.socketUse == SOCKET_CONNECT)
{
print_sockaddr_in(
&findSocketData.sockets[i].partnerAddr);
}
else if(findSocketData.socketUse == SOCKET_LISTEN)
{
print_sockaddr_in(
&findSocketData.sockets[i].localAddr);
}
printf("\n");
}
}
}
} while(FindNextSocket(dwChangeHandle, &findSocketData));
printf("\n");
FindCloseSocket(dwChangeHandle);
}
break;
default:
FindCloseSocketChangeNotification(dwChangeHandle);
return 0;
}
dwWaitStatus = WaitForMultipleObjects(objectCount,
objectArray,
FALSE,
INFINITE);
if(FindNextSocketChangeNotification(dwChangeHandle) == FALSE)
Networking | 8 - Server Redundancy | 256
{
FindCloseSocketChangeNotification(dwChangeHandle);
return 0;
}
}
return 0;
}
void print_sockaddr_in(struct sockaddr_in *addr)
{
printf(_T(" %d.%d.%d.%d %u "),
addr->sin_addr.s_net,
addr->sin_addr.s_host,
addr->sin_addr.s_lh,
addr->sin_addr.s_impno,
ntohs(addr->sin_port));
}
• FindFirstSocketChangeNotification
• FindNextSocketChangeNotification
• FindCloseSocketChangeNotification
• FindFirstSocket
• FindNextSocket
• FindCloseSocket
FindFirstSocketChangeNotification
Function Syntax
Syntax HANDLE FindFirstSocketChangeNotification();
Description This function initializes notification that the socket data has changed.
Comments There are no input or output arguments. This function returns the handle used in the find socket routines,
or INVALID_HANDLE_VALUE on failure.
HANDLE dwChangeHandle;
dwChangeHandle = FindFirstSocketChangeNotification();
if(dwChangeHandle == INVALID_HANDLE_VALUE)
return 0;
Networking | 8 - Server Redundancy | 257
FindNextSocketChangeNotification
Function Description
Syntax BOOL FindNextSocketChangeNotification ( HANDLE changeHandle);
Description This function prepares to receive the next socket change notification.
HANDLE dwChangeHandle;
if(FindNextSocketChangeNotification(dwChangeHandle)==FALSE)
{
FindCloseSocketChangeNotification(dwChangeHandle);
return 0;
}
FindCloseSocketChangeNotification
Function Description
Syntax BOOL FindCloseSocketChangeNotification ( HANDLE changeHandle);
HANDLE dwChangeHandle;
FindCloseSocketChangeNotification(dwChangeHandle);
FindFirstSocket
Function Description
Syntax BOOL FindFirstSocket ( HANDLE changeHandle, Struct SocketFindData *findSocketData);
HANDLE dwChangeHandle;
struct SocketFindData findSocketData;
Networking | 8 - Server Redundancy | 258
if(FindFirstSocket(dwChangeHandle, &findSocketData))
;
FindNextSocket
Function Description
Syntax BOOL FindNextSocket ( HANDLE changeHandle, Struct SocketFindData *findSocketData);
HANDLE dwChangeHandle;
struct SocketFindData findSocketData;
do
{
} while(FindNextSocket(dwChangeHandle, &findSocketData));
FindCloseSocket
Function Description
Syntax BOOL FindCloseSocket ( HANDLE changeHandle);,
HANDLE dwChangeHandle;
FindCloseSocket(dwChangeHandle);
This appendix documents the redundant communication interfaces supported by Server Redundancy.
• CCM2
Networking | 8 - Server Redundancy | 259
• Genius
• SNPX
• Allen-Bradley Communications
• DDE Client
• Modbus RTU
• Modbus TCP/IP
• OPC Client
• Point Bridge
• Series 90 TCP/IP Triplex Device Communications
CCM2 Communications
Server redundant computer configurations that use the CCM2 Communications option must be
configured as in the following diagram:
The primary and secondary servers must have independent cable paths to the PLC. The PLC must
have two serial ports available for CCM2 communications. Both of the PLC's serial ports must be
configured with the same CPU ID.
The recommended configuration is to use the CMM module in CCM2 mode. Both ports on the CMM
module can be configured for CCM2 communications.
Genius Communications
Server redundant computer configurations that use the Genius Communications option must be
configured as in the following diagram:
Networking | 8 - Server Redundancy | 260
The primary and secondary servers must have different PCIM addresses. Unsolicited datagrams sent
from the PLC must be sent to both the primary and secondary servers.
SNPX Communications
Server redundant computer configurations that use the SNPX Communications option must be
configured as in the following diagram:
The primary and secondary servers must have independent cable paths to the PLC. The PLC must
have two serial ports available for SNPX communications. Both of the PLC's serial ports must be
configured with the same CPU ID.
Allen-Bradley Communications
Server redundant computer configurations that use the Allen-Bradley Communications option must
be configured as in the following diagram:
Networking | 8 - Server Redundancy | 261
Communications can be done over an Ethernet network or over a Data Highway Plus network using
Allen-Bradley 1784 KTX cards. Unsolicited data sent from the PLC must be sent to both the primary
and secondary servers.
Server redundant computer configurations that use the DDE Client Communications option must be
configured in one of the following ways:
• The NetDDE Server must be installed and configured identically on both the primary and
secondary servers.
• The NetDDE Server must be installed and configured on a computer other than the primary and
secondary servers.
Server redundant computer configurations that use the Modbus RTU Communications option must
be configured as in the following diagram:
The programmable controller needs to respond through both of its serial cards at the same standby
address at the same time. However, the standby node is only heart beating. It is not reading the full
data set. The active node reads the full data set.
Networking | 8 - Server Redundancy | 262
Important: Because both RTU cards have the same ID they have to be in separate networks.
Modbus TCP/IP
Server redundant computer configurations that use the Modbus TCP/IP Communications option must
be configured as in the following diagram:Communications
The primary and secondary servers are on the same Ethernet LAN connected to a single Ethernet
card in the programmable controller.
OPC Client
If your OPC Server is configured to support server redundant configurations, OPC Client will also
support server redundant configurations.
Point Bridge
Series 90 TCP/IP Triplex Device communications is fully supported in server redundant computer
configurations.
Parameter Description
REDUND_LINK_SLEEP Wait time before the Router creates a link to the standby node.
SECONDARY_STARTUP_TIMEOUT Starting time delay for the secondary server project, when both the project on
both the primary and secondary start at boot.
The following is a list of errors you may encounter in the CIMPLICITY Status Log relating to
Computer Cabling Redundancy.
• Binding failures.
• Connection failures.
• Socket failures.
• Missed communications.
Binding Failures
This error should only occur if a non-CIMPLICITY communication program is using IP ports in the
same range as the Computer Cabling Redundancy option.
CIMPLICITY attempts to use the same IP port on both network interface cards (NIC). If this error
occurs try changing the range of IP ports that Computer Cabling Redundancy is using.
Connection Failures
These errors occur when the Computer Cabling Redundancy option starts a connection with another
computer:
When the option starts a connection with another computer it exchanges some identifying
information. If this information is not received, the connection will fail.
This is typically caused by an incorrect configuration. If the local computer believes that the remote
computer is supporting Computer Cabling Redundancy but the remote computer is not configured for
Computer Cabling Redundancy, then this error will occur. This error can also occur if the network is
broken during the connection setup time.
Socket Failures
This error occurs when the local socket is waiting for data:
Missed Communications
This error occurs when network traffic is not being received from the remote computer:
If this error occurs and the network is functioning you should check the PING_INTERVAL and
PING_COUNT parameters in the cimhosts.txt file. You may need to increase them depending on
the load on your computers or network.