Bm Cimplicity Networking Master
Bm Cimplicity Networking Master
PROFICY CIMPLICITY
HMI/SCADA
Networking
Proprietary Notice
The information contained in this publication is believed to be accurate and reliable. However, General
Electric Company assumes no responsibilities for any errors, omissions or inaccuracies. Information
contained in the publication is subject to change without notice.
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:
[email protected]
Contents
Chapter 1. CIMPLICITY Server to Viewer Announcements..................................................................... 8
4. Troubleshooting Checklist..................................................................................................................... 20
4. Troubleshooting Checklist............................................................................................................. 20
Step 2. Open the CIMPLICITY Document Delivery Viewer Properties Dialog Box........................132
Levels of Redundancy..............................................................................................................................205
Contents | vi
Recovery Procedures........................................................................................................................279
Allen-Bradley Communications........................................................................................................311
Modbus TCP/IP.................................................................................................................................312
Point Bridge.......................................................................................................................................313
Binding Failures.................................................................................................................................314
Socket Failures..................................................................................................................................315
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.
Project (Recommended) The user controls the data source the Viewer will display.
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 View
er.
Following is an overview for setting up, testing and troubleshooting a Viewer to Server connection.
Step Description
Note:
Confirm that there are no other projects broadcasting on the network with the same name.
B (on Get a point value from the Server using a command line utility.
page
12)
C (on Get a point value from the Server through the Point Control Pan
page el.
14)
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 11
b. Click the Run button on the Workbench toolbar to start the project.
a. Click OK.
a. Get a point value from the Server using a command line utility
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 (on page 20).
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 14
8. Type ptq_onchange.exe
9. Press Enter.
10. Type \\<Server IP address>\<Point ID>.
11. Press Enter.
12. Enter a valid User ID and Password for the project you are trying to access.
13. Click OK to close the CIMPLICITY® Login dialog box.
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 (on page 20).
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 (on page 20).
a. Get a point value from the Server through the Point Control Panel
16. Click Start on the Windows task bar.
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. Howev
er, 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 (on page 20).
Note: Review CimView screen Viewer configuration guidelines (on 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.
Note:
◦ If you can see point values in the Point Control Panel, but not on your CimView screen (on
page 16), the problem could be with your point qualification (on 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 (on page 20).
If you cannot see point values after troubleshooting, contact CIMPLICITY support.
Step Description
3.2 (on Set up the CimView screen source for the View
page er.
19)
• 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.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 17
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.
2. Open the <project name>\master\ directory in Windows Explorer.
Create different global parameter values for the Server and Viewer.
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 18
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.
7. Open the <project name>\master\ directory in Windows Explorer.
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.
◦ Benefit: The screens will load faster.
◦ Issue: A screen designer or system administrator will have to make sure that whenever a
screen is modified, it will be re-copied to every Viewer it is on.
Note:
Use the following techniques to make sure the viewer can locate the projects for each point:
• Use a /project command line option to open the screens from a short cut.
• The /project command line option will specify the project to use for any unqualified points.
4. Troubleshooting Checklist
4. Troubleshooting Checklist
Step Description
1. Make sure that the license hardware key is secure in the Server's and Viewer's parallel or USB port.
2. Click Start on the Windows task bar.
3. Select (All) Programs>Proficy Common>License Viewer.
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
Networking | 1 - CIMPLICITY Server to Viewer Announcements | 22
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.
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.
◦ TCP connection to your Server on Port 32000 and the Server’s IP address.
◦ UDP connection on Port 32000 and *:* for the IP address.
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:
Networking | 2 - Remote Project Configuration | 25
• CIMPLICITY process
• File/printer sharing.
Step Description
Step Description
Either Or
The New Project dialog box opens when you use any method.
8. Click OK.
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.
Networking | 2 - Remote Project Configuration | 29
Option Description
Resident • Check so resident processes will automatically log in to remote projects. Users
Process Use will still have to log in at the Application level.
Only • Clear so users will not have to log in at the Application level, and they are auto
matically given the same privileges as the CIMPLICITY User ID for the remote lo
gin.
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.
Col Collects point information from the provider project. All points on the remote project that have
lect been configured as Enterprise Points are available to the current project. Points from remote
points 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:
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.
1. Configure a Remote Project for the source system on the destination system.
2. Configure the Point Bridge port.
3. Define a device for the Point Bridge port.
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 Point ID on the destination system does not have to match the Point ID on the source
system.
The data types and number of elements of the two points have to match.
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.
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.
The following entry decisions need to take Point Bridge into consideration
Item Descrip
tion
Networking | 2 - Remote Project Configuration | 33
1 Read Specifies if the Point Bridge process can set the value of a point on a source system.
only
2 ChangeIf change approval is required to set points, the change approval configuration, includ
ap ing valid user names/passwords must be the same on both the source and destination
proval machine. If the configuration is not the same Point Bridge will treat the point as an in
valid configuration and log an error.
Option Description
1 Device ID Node name of the source system where the Point Translation process is run
ning.
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
• 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.
Has one or more Network Interface Cards The IP address configured for each of the
(NIC's). NIC's.
If the RAS client is connected to a local network with a NIC and you are using RAS, the destination host is
located using the following process:
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 Serv RAS connection to the default gateway assigned by the
er's NIC RAS server.
The packets
Destination Address is:
are sent via the:
On the same subnet as the RAS Server's assigned RAS IP address RAS connection.
Not on the same subnet as the RAS server's assigned RAS IP ad RAS server's NIC.
dress
• 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.
Networking | 3 - Remote Access | 40
Note:
(For clients who have upgraded from previous CIMPLICITY versions) Webspace replaces
GlobalView, providing the benefit that the same application can now be used with iFix, Plant
Applications and CIMPLICITY.
CIMPLICITY:
• 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
Step Description
3 (on Webspace: Open Thin Client Server Admin window through CIMPLICI
page TY
45)
Check or clear Start Proficy Webspace server at boot time (on page 43) to do either of the
following.
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.
Click the Webspace Admin Console (on page 43) 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.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 47
Note:
Web pages that are created in Webspace's Create Web Page dialog box use Webspace.
Click Create Web Page (on page 43) on the Proficy Webspace tab in the CIMPLICITY Options dialog
box.
The Create a Web Page dialog box provides the following options to create a CIMPLICITY Webspace
HTML: file.
Section Description
Section Description
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.
A CimView screen
The selected CimView screen (*.cim or *.cimrt) will display when a user logs onto the Web site.
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.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 51
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.
2. Enter the following.
3. Select a line (with our without a variable).
4. Click Delete.
Wait n seconds and then update the screen every n seconds represent command line arguments.
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 qui
escent 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
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 53
1. Determine which screens need fast updates for some users and which can update more slowly.
2. Create separate sessions to address the separate needs.
a. Send screens that require faster updates to URL's that are different from screens requiring
fewer updates.
b. Enter different values for each screen update session; the values should address the update
needs of that session only.
The Webspace Object options represent the parameters of the Webspace ActiveX object browser plugin.
Step Description
A (on Compression.
page
54)
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 54
Step Description
A: Compression
Default: Checked.
Note:
When compressed is:
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
Option Description
Default (Default) Only attempt to automatically configure the default printer at startup, enabling
printer on clients to print a Webspace screen on the default printer only.
ly
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.
The Create CimLayout Web Page dialog box provides the following options to create a CIMPLICITY
CimLayout Web page .
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 57
1. 5.1. CimLayout Web Page: CimLayout Configuration Selected (on page 57)
2. 5.2. CimLayout Web Page: Printer Options (on page 59)
Section Description
The name assigned to the HTML file that is created from the selected CimLayout file will be included in
the Logon URL.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 58
A (on CimLayout
page screen
58)
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
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 59
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.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 60
Step Description
A (on Compression.
page
60)
A: Compression
Default: Checked.
Note:
When compressed is:
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 61
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
Option Description
Default (Default) Only attempt to automatically configure the default printer at startup, enabling
printer on clients to print a Webspace screen on the default printer only.
ly
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.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 62
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.
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. From the installed location, open the Proficy Webspace Admin Console.
2. Select the relay server under All Hosts.
3. In the main menu, click Tools, and then select Host Options.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 64
8. In the Configuration tab, select Application Host Manager and Relay Load Balancer.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 66
1. On the relay server that you configured, from the [Install location]\Proficy\Proficy CIMPLICITY
\ScadaConfigPKI copy the CimScadaConfigRootCA.crt and install it under the Trusted Root
Certification Authorities on the dependent server.
2. Open the Proficy Webspace Admin Console.
3. Select the dependent server under All Hosts.
4. In the main menu, click Tools, and then select Host Options.
10. In the Relay Load Balancer address field, enter the relay server's host name.
11. Click OK to save the changes.
12. Restart your Proficy Webspace Application Publishing Service.
The CIMPLICITY HMI Webspace widget is introduced to enable users to access CIMPLICITY CimView
screens from Operations Hub. It can be integrated with other Operations Hub widgets 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 | 69
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.
• Webspace widget 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 widget and CimView through Webspace.
• Proficy Authentication provides identity-based security for applications. It provides tokens for
secure webspace sessions.
• Configuration Hub allows you to configure CIMPLICITY Webspace widget on Operations Hub using
Proficy Authentication credentials.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 70
• 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 widget 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 Proficy Authentication.
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.
You must configure Webspace on the Configuration Hub using the CIMPLICITY plug-in. So, you must first
register the CIMPLICITY plug-in of the standalone server, or relay and dependent servers in the Relay/
Dependent server scenario, with Configuration Hub. To register the CIMPLICITY plug-in, follow the steps
described in the Register CIMPLICITY Plug-in with Configuration Hub and Proficy Authentication (on page
) section, available in Getting Started.
Note:
Ensure that the CIMPLICITY plug-in of the standalone server, or relay and all dependent servers in
the Relay/Dependent scenario are registered with the same Configuration Hub.
1. Access CIMPLICITY plug-in on Configuration Hub. For more information, see Access CIMPLICITY
Plug-in (on page ) section, available in Getting Started.
Once you log in to Configuration Hub and expand the CIMPLICITY plug-in node. You will see
Webspace plug-in under the CIMPLICITY plug-in node.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 71
Once you log in to Configuration Hub and expand the CIMPLICITY plug-in node. You will see
Webspace plug-in under the CIMPLICITY plug-in node.
Note:
These are not the existing credentials. You must create new credentials
1. Access CIMPLICITY plug-in on Configuration Hub. For more information, see Access CIMPLICITY
Plug-in (on page ) available in the Getting Started Guide.
Once you log in to Configuration Hub and expand the CIMPLICITY plug-in node. You will see
Webspace plug-in under the CIMPLICITY Plug-in node.
1. From the relay server, copy the Root.crt certificate available at C:\Program Files\Proficy\Proficy
WebSpace\Programs\PKI.
2. Paste the copied Root.crt certificate at C:\Program Files\Proficy\Proficy WebSpace\Programs
\PKI and rename it. For example, RelayRoot.crt.
This step must be done on all the dependent servers.
3. Open the webspace-session-manager.json file available at C:\Program Files\Proficy\Proficy
WebSpace\Programs\webspace-session-manager.
4. Below client-configuration, update the root-ca-certificate path to point to the relay server's root
certificate that you pasted on the dependent server as follows:
"client-configuration" :{
"root-ca-certificate" : "..\\PKI\\RelayRoot.crt",
"wsm-admin-password" : "AD2tSYUmQJ3l++ToAVBfF6nrCTRaPmgUhS3odSauoW0=",
"wsm-admin-user" : "admin",
"wsm-client-socket-port" : "4958",
"wsm-hostname" : "localhost"
},
5. Access CIMPLICITY Plug-in on Configuration Hub. For more information, see Access CIMPLICITY
Plug-in (on page ), available in the Getting Started Guide.
Once you log in to Configuration Hub and expand the CIMPLICITY plug-in node. You will see
Webspace plug-in under the CIMPLICITY Plug-in node.
This topic is meant to ensure that you have enabled Mixed Authentication along with Proficy
Authentication for the project with the screens that you want to access on Webspace, and you have
created security groups as needed and assigned them to the relevant Proficy Authentication user that
will access the screens. If you have not done, you can perform the steps given in the Enable Proficy
Authentication (on page ), Create Security Groups (on page ), and Publish Security Groups to
Proficy Authentication Server (on page ) sections, available in Getting Started.
1. From the standalone server, or relay server in the Relay/Dependent scenario, copy the
CimScadaConfigRootCA.crt certificate available at [Install location]\Proficy\Proficy CIMPLICITY
\ScadaConfigPKI and on the Operations Hub server, install the copied certificate under Trusted
Root Certification Authorities.
2. Once you have installed the certificate, open any browser and try to access the relay server in the
following format: https://<relay-server>:491.
On successful connection, you will see the Proficy Webspace page.
5. In the Webspace server section, set to Manual and enter the relay server name.
6. In the CIMPLICITY screen path section, set to manual and enter the project screen path of the
CimView screen that want to view manually. For example: C:\PROJECTS\WidgetProject\screens
\CimEdit1.cim
7. In the Port for the Webspace Session manager, ensure that port number is same as the
CIMPLICITY Configuration Microservice (CIMConfigService) port.
8. Set the properties for your widget as needed. For more information on the widget properties, see .
9. Select Save App.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 79
10. Select Open App. The CimView Screen appears on the browser.
The Webspace widget properties in Operations Hub offer two options for configuring values: manually
or utilizing Global Variables, Queries, or Formulas to retrieve data from other Operations Hub plug-ins. By
using these options, the Webspace widget can dynamically respond to different settings. For example,
you can modify the Webspace server to fetch data from various geographically distributed systems in
runtime by using Global Variables.
Another example is, you can use more than one property with different global variables and switch
between screens from one site to another site. For more information, see the Operations Hub help
documentation on Globals, Queries, and Events.
Project for unqualified points CimView will use this project Yes
name to provide values for un
qualified points.
Port for the Webspace Session The port configured on the Web Yes
Manager space system for the Webspace
Session Manager service. 9443 is
the default port setting.
Don't show caption and menu Select the check box if you want No
to hide the CimView menu bar
and caption in the Webspace
frame.
HTTPD 9443 Yes To change the port number, you must look for the port number in
stances given below and change them in all the relevant files.
Listen 9443
"client-configuration" : {
"relay-server-reverse-proxy-port" : "9443",
ProxyPassMatch "/confighub_plugin/(.*)/plugin_bundle.js(.*)"
"https://localhost:9443/cimplicity-web-config/main-es2015.js$2"
ProxyPassMatch "/confighub_plugin/(.*)/assets/(.*)"
"https://localhost:9443/cimplicity-web-config/assets/$2"
Webspace 491 Yes Open Webspace Admin Console, select Tools >Host Options > Secu
Application rity:
Publishing
Service
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 83
SCADA Web 4955 No To change the port number, you must look for the port number in
Configuration, stances given below and change them in all the relevant files.
REST
• cimplicity_config_service.conf file, located at [Installation
deirectory]\Proficy\Proficy CIMPLICITY\Web\apache\conf
\cimplicity_config_service.
ProxyPass https://localhost:4955/cim-config/v1
ProxyPassReverse https://localhost:4955/cim-config/v1
</Location>
"port" : “4955”,
OPC UA 4956 No To change the port number, you must look for the port number in
browse ser stance given below and change it in the relevant file.
vice, REST
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 84
ProxyPass https://localhost:4956/uabr/v1
ProxyPassReverse https://localhost:4956/uabr/v1
</Location>
Webspace 4957 No To change the port number, you must look for the port number in
session Man stances given below and change them in all the relevant files.
ager, REST
• cimplicity_config_service.conf file, located at [Installation
deirectory]\Proficy\Proficy CIMPLICITY\Web\apache\conf
\cimplicity_config_service.
ProxyPass https://localhost:4957/wsm/v1
ProxyPassReverse https://localhost:4957/wsm/v1
</Location>
"port" : “4957”,
Webspace 4958 Yes(*) To change the port number, you must look for the port number in
Session stance given below and change it in the relevant file.
Manager,
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 85
"client-configuration" :
"wsm-client-socket-port" : "4958",
(*) 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 | 87
3. Select OK.
4. Close the CIMPLICITY Workbench window (if it is open), and launch CimEdit from the Start menu.
5. In the CimEdit window, select , and then select Global Configuration.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 88
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 | 89
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 | 90
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.
Note:
You can publish only one Mimic at a time to Operations Hub from CimEdit.
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 92
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 | 93
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 Operations Hub.
◦ 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 | 94
1. In the CIMPLICITY Workbench window, select Project, and then select Publish Model to
Operations Hub.
For example, you have a project called Assembly1 and you want to publish a
model to a specific branch. If you enter AssemblyBranch1 as the Branch name, the
Networking | 4 - Proficy Webspace Integration with CIMPLICITY | 96
published model and its associated objects will have the branch name prefixed as
AssemblyBranch1_root.Assembly1.
This enables you to publish different models with the same object names to a branch
instead of the root directly.
Note:
The branch name that you enter can contain only letters, digits, underscore (_), and
period (.).
◦ Include Historian source: Select this check box to include points configured to the Historian
server in the Model data published to Operations Hub.
◦ Include non-class/object points: Select this check box to include points that are not related
to classes or objects in the Model data published to Operations Hub.
◦ Require trusted connection: Select this check box to publish Model data only when a
trusted connection is used. You can also select View Certificate to view the certificate used
for the connection.
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 | 97
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
About Document Delivery
The Document Delivery system can publish data gathered from the various projects and deliver user
specified information in user specified format to remote systems. The information is transferred to the
remote systems using FTP, HTTP or Network files.
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. (on
page 106)
4. A directory thread adds the new document to a preliminary output list.
5. A control thread checks each file in the preliminary output list to see if it has the required header.
a. If the file does not have the required header, an audit message is generated. The file is then
moved to the flush directory.
b. When an output document is found that does have a valid header, a file without the header is
copied into the work directory.
6. The control function sends the filename to an Output Document list.
7. The document is delivered to a remote system.
Note:
Details about delivery to the remote system are based on the existing conditions static to
the delivery method (on page 101).
Delivery Operation
Review the operation for the:
Step Description
1. Watcher thread that is dedicated to watching its directory using completion ports.
a. Adds the name of the file to the preliminary output document list.
b. Goes back to monitoring the directory.
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:
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:
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
Networking | 5 - Document Delivery | 102
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.
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.
Networking | 5 - Document Delivery | 103
Where
9. Changes the output file name with the DDTEMP_ prefix to the original destination filename.
Append
Important:
Append only applies to Mapped Network and FTP delivery.
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
Document Delivery:
Networking | 5 - Document Delivery | 104
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
Fail On Existing
Document Delivery checks the remote location to see if the destination file already exists.
a. Delivery conclusion
If in during delivery:
Networking | 5 - Document Delivery | 105
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. Document Delivery continues to resend the document until all retries have been attempted.
◦ Delivery succeeds
Document Delivery:
Document Delivery:
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.
Networking | 5 - Document Delivery | 106
1. Base Directory
2. Delivery Directories
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.
◦ 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 Description
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.
• 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
The parameters that can be edited in the Document Delivery Base Properties dialog box are as follows.
Parameter Description
Audit Lev Main attribute for Auditing. The three levels are:
el
Level Description
Maximum File size of Audit log file in bytes. When the log file reaches this size, the audit file will start
File Size over logging again.
Option Details
Parameter Description
Option Details
Note:
The name of the archived file will
be named in the following format:
DocumentDelivery_Date_Count.log
Where:
• Date=
• Count=
Number that:
◦ Starts at 0
◦ Increments each time
the file is archived for
the current date.
Document Delivery requires at least one delivery object to communicate with a remote system.
Communication with each remote system is defined by parameters that are stored with the delivery
object.
Options are:
Option Description
Either Or
Result: A New Document Delivery dialog box opens when you use any method.
Note:
You will select the object type (on page 117) when the Delivery Properties dialog box
opens.
Either Or
Step Description
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.
Para Value
meter
Alarm CIMPLICITY Alarm that will be triggered if a delivery has failed the number of times spec
ified 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 | 119
Retry Number of times the delivery object will try to resend an output document before it gives
Count up and flushes the file.
Fail The number of times the delivery object needs to fail in order to generate the alarm.
ures
Be
fore
Alarm
File Determines how to handle the delivery when a remote file of the same name as the one
Han to be delivered is encountered. Options are:
dling
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 slash
es.
Networking | 5 - Document Delivery | 120
En When set to YES enables, auditing for this delivery object.
able
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.
Para Value
meter
Alarm CIMPLICITY Alarm that will be triggered if a delivery has failed the number of times spec
ified 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
Count up and flushes the file.
Fail The number of times the delivery object needs to fail in order to generate the alarm.
ures
Be
fore
Alarm
Networking | 5 - Document Delivery | 122
File Determines how to handle the delivery when a remote file of the same name as the one to
Han be delivered is encountered. Options are:
dling
Des Name of the directory on the remote machine to which the file will be copied. The para
tina meter must show the path from the root directory.
tion
En When set to YES enables, auditing for this delivery object.
able
Audit
Serv The FTP server name, or IP Address. The FTP prefix is not required or accepted.
er
Name /
IP Ad
dress
Networking | 5 - Document Delivery | 123
Port The port number to be used. Tip: If you do not know the port number, enter 0 and the Doc
ument Delivery process will attempt to determine the correct port number.
User Name of the user to log in. Note: If empty, the user name is anonymous.
Name
Pass Opens a Change Password dialog box in which you can enter a password that will be re
word quired for log in.
Note:
YES Delivery object will attempt to keep the FTP Connection open.
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.
Para Value
meter
Alarm CIMPLICITY Alarm that will be triggered if a delivery has failed the number of times spec
ified 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
Count up and flushes the file.
Fail The number of times the delivery object needs to fail in order to generate the alarm.
ures
Be
fore
Alarm
File Determines how to handle the delivery when a remote file of the same name as the one to
Han be delivered is encountered. Options are:
dling
Des The name of the directory or page on the remote machine to which the file will be copied.
tina
tion
page
124)
En When set to YES enables, auditing for this delivery object.
able
Audit
Serv The HTTP server name. The HTTP prefix is not required or accepted.
er
Name /
IP Ad
dress
Port The port number to be used. Tip: If you do not know the port number, enter 0 and the Doc
ument Delivery process will attempt to determine the correct port number.
User Name of the user to log in. Note: If empty, the user name is anonymous.
Name
Pass Opens a Change Password dialog box in which you can enter a password that will be re
word quired for log in.
Networking | 5 - Document Delivery | 128
Up
Note:
(on
page
◦ There is no password on initialization.
124)
◦ If you forget an existing password is forgotten, you will have to delete the delivery
object and recreate it.
YES Delivery object will attempt to keep the HTTP Connection open.
NO Delivery object will close the HTTP Connection on completion of the deliv
ery.
You can change the password for the following two delivery types:
• FTP
• HTTP
Networking | 5 - Document Delivery | 129
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 2 Open the CIMPLICITY Document Delivery Viewer Properties dialog box.
(on page
132)
Method 1
Method 2
3. Position the bracket where you want the object's top left corner to be placed.
Networking | 5 - Document Delivery | 131
Method 1
Method 2
The CIMPLICITY Document Delivery Viewer Properties dialog box opens when you use either method.
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.
Networking | 5 - Document Delivery | 134
Op
Description
tion
Up Interval at which the control will check if the Delivery Object has sent the control a status update.
date
Inter Important:
val If this interval is set to a large number, the control might miss a status update.
Format: hh:mm:ss.ttt
Networking | 5 - Document Delivery | 135
Op
Description
tion
Unre Maximum amount of time between status updates from the delivery object that the control will
spon consider the delivery object responsive. If the specified amount of time passes between status
sive updates, the control will enter the Unresponsive state.
After
Flush Roles that are allowed to flush files from the delivery object when the control is running.
Per
Format: Comma-delimited string.
mis
sions
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 permis
sion to flush unsent files.
Op
Description
tion
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 | 138
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 configura
tion.
Font/Size
Method 1
Method 2
Networking | 5 - Document Delivery | 139
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.
Sec
Option Description
tion
2 File Color of the unsent document list displayed by the ActiveX object when there are unsent
List documents currently in the delivery object.
color
3 Dis Status that is currently displayed in the ActiveX object. This property:
played
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 sta
tuses are displayed.
There are several different possible views for the ActiveX component based on the status of the delivery
object.
Status Description
Nonexis The delivery object specified by the delivery name parameter for the ActiveX component
tent cannot be found
In Configuration
Status Description
In Configura The delivery is currently being configured, either on initialization or by dynamic configu
tion ration
Status Description
Waiting for Docu The specified delivery object is waiting for an output document to
ment send.
Networking | 5 - Document Delivery | 143
In Delivery
Status Description
In Delivery The specified delivery object is attempting a delivery for the first
time.
Parameter Description
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
Complete for appending.
Networking | 5 - Document Delivery | 144
Parameter Description
Failed At Number of failed attempts for the current output document.
tempts
Alarm after Number of failed attempts that need to happen before an alarm is sent to the alarm man
Failed At ager.
tempts
Retries to at Number of times that a failed delivery will be retried before the delivery object will give up
tempt and flush the file.
Unsent Out List of all the unsent documents that this delivery object still needs to process. Note: The
put Docu name of the output document does not need to be the same as the Destination Filename.
ments
Retrieving File
Status Description
Retriev The file is being retrieved. If the file being delivered must be appended to an existing file, the
ing File existing file must first be retrieved from the destination.
Appending File
Status Description
Append File is being appended. The file being delivered must be appended to an existing file, after the
ing File file being appended is retrieved from the destination
Networking | 5 - Document Delivery | 146
Status Description
Wait Delivery object is waiting for the retry interval time to elapse in order to retry the delivery. Note:
ing For All of the text in the ActiveX status object is customizable. There are two different entries that
Retry are applicable.
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 | 147
Flushing Files
Status Description
Unresponsive
Status Description
Unre ActiveX control successfully connected to the delivery object but does not receive a status
sponsive update in a configured time period.
Networking | 5 - Document Delivery | 148
Technical Notes
Document Delivery 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.
The first characters in the output document must be an ASCII representation of the version
number.
Note:
If a change is made the version number will be incremented.
The header:
Networking | 5 - Document Delivery | 149
Note:
The version number and destination file name will be removed from the document before it
is sent to the remote location.
3 Header
4 Content
<Header> The main wrapper tag for the XML style header. There are no attributes for this tag
Networking | 5 - Document Delivery | 150
<Destina Contains the remote destination filename. There are two attributes for all systems for this
tionFile tag
name>
"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.
1. No header
Data
2. Header
101 <Header>
</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:
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.
XML Description
Tag
<Head The main wrapper tag for the XML style header. There are no attributes for this tag
er>
<Des Contains the remote destination filename. There are four attributes for all systems for this tag:
tina
Filename: The remote destin
tion
File
• ation filename to be delivered to.
name>
• Rename: Allows the file to be renamed during the delivery process. Options are: Yes and
No. "Yes": (Default) The rename feature can be used. "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.
• KeepConnectionOpen: Options are Yes and No. "Yes": An FTP connection will stay open.
"No": An FTP connection is not forced to stay open.
• overrideKeepConnectionOpen: Options are Yes and No. "Yes": Enables ability to override
the open FTP connection so the connection can close. "No": Does not allow an override
to the open FTP connection tag.
Pre- Wrapper for all Pre commands that are to be attempted before the delivery occurs. There are no
Com- attributes for this tag.
mands
Pre- Holds one FTP command to take place before the delivery occurs. The raw FTP command is
Com- written verbatim in the command attribute. There is one attribute for this tag. command: The com
mand mand to be sent.
Networking | 5 - Document Delivery | 152
Post- Wrapper for all the Post commands that are to be attempted after the delivery is completed.
Com- There are no attributes for this tag.
mands
Post- Holds one FTP command to take place after the delivery is successfully completed. The raw
Com- FTP command is written verbatim in the command attribute. There is one attribute for this tag.
mand command: The command to be sent.
guide:
FTP specific guidelines
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"/>
Networking | 5 - Document Delivery | 153
</Header>
Data
101 <Header>
<PreCommands>
</PreCommands>
<PostCommands>
</PostCommands>
</Header>
101 <Header>
<PreCommands>
</PreCommands>
<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
a. Checks the remote location to see if the file FinalDestinationFileName.txt exists in the
configured remote directory.
b. Delivers the existing OutputDocument1 document
Data
a. Checks the remote location to see if the file FinalDestinationFileName.txt exists in the
configured remote directory.
b. Finds the file that was just delivered using the Overwrite (on page 154) method.
c. Retrieves the remote FinalDestinationFileName.txt from the remote system.
d. Copies the remote file to a file DDTEMP_FinalDestinationFileName.txt in the \Project
\DocumentDelivery\FTPobj\Work directory.
e. (In the \Project\DocumentDelivery\FTPobj\Work directory) copies the contents of
OutputDocument2 to the end of the DDTEMP_FinalDestinationFileName.txt file.
Networking | 5 - Document Delivery | 156
Note:
The header in this sample script is the minimum required and can be used for all delivery types.
'Format Bottlingyyyymmdd.txt
destinationFileName = "Bottling"
currentDate = Date
DocumentDeliveryHeader = DOCUMENTDELIVERYVERSION
'Total Bottles
totalBottles.Id = "\\NORTH1\TOTALBOTTLES"
totalBottles.Get
'Bottles Failed
bottlesFailed.Id = "\\NORTH1\BOTTLESFAILED"
bottlesFailed.Get
'Gripper Errors
gripperErrors.Id = "\\NORTH1\GRIPPERERRORS"
gripperErrors.Get
gateOpenErrors.Id = "\\NORTH1\GATEOPENERRORS"
gateOpenErrors.Get
Networking | 5 - Document Delivery | 158
noBoxErrors.Id = "\\NORTH1\NOBOXERRORS"
noBoxErrors.Get
'Boxes Processed
boxesProcessed.Id = "\\NORTH1\BOXESPROCESSED"
boxesProcessed.Get
outputDocument = "MYDelivery"
uniqueIndex.Id = "\\NORTH1\MYDELIVERYINDEX"
uniqueIndex.Get
uniqueIndex.value = uniqueIndex.value + 1
uniqueIndex.set
Close #1
Networking | 5 - Document Delivery | 159
Kill temporaryFilename
End Sub
CAUTION:
Version 100 is still supported for systems in which it is implemented. Use version 101 to develop
any new systems.
Docu
ment De Description
livery Rule
1 Unique Each output document must have a unique name in the directory in which it is created.
Output Each output document is created in a specific directory. As a result, there will be instances
Docu where another file already exists in the directory. Giving each output document a unique
ment name will prevent the overwriting of output documents.
Name
2 Version The first characters in the output document must be an ASCII representation of the version
Num number. The initial version number will be 100 until a change is made that will make it nec
Networking | 5 - Document Delivery | 160
Docu
ment De Description
livery Rule
ber (in essary to increment the version number. The version number will be followed by a NULL
header) character.
3 Des The destination file name must immediately follow the version number and NULL character.
tina This will be the name of the file actually created or appended to at the remote location. This
tion File destination will be NULL terminated, followed by a carriage return and line feed.
Name
• Version number,
• Destination file name,
• Separating carriage return and
• Line feed.
Note: The version number and destination filename will be removed from the document be
fore 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
destinationFileName = "Bottling"
currentDate = Date
Networking | 5 - Document Delivery | 161
DocumentDeliveryHeader = DOCUMENTDELIVERYVERSION
'Total Bottles
totalBottles.Id = "\\NORTH1\TOTALBOTTLES"
totalBottles.Get
'Bottles Failed
bottlesFailed.Id = "\\NORTH1\BOTTLESFAILED"
bottlesFailed.Get
'Gripper Errors
gripperErrors.Id = "\\NORTH1\GRIPPERERRORS"
gripperErrors.Get
gateOpenErrors.Id = "\\NORTH1\GATEOPENERRORS"
gateOpenErrors.Get
noBoxErrors.Id = "\\NORTH1\NOBOXERRORS"
noBoxErrors.Get
'Boxes Processed
boxesProcessed.Id = "\\NORTH1\BOXESPROCESSED"
boxesProcessed.Get
outputDocument = "MYDelivery"
uniqueIndex.Id = "\\NORTH1\MYDELIVERYINDEX"
uniqueIndex.Get
uniqueIndex.value = uniqueIndex.value + 1
uniqueIndex.set
Close #1
Kill temporaryFilename
End Sub
Chapter 6. Microsoft Remote Desktop and
CIMPLICITY
About Microsoft Remote Desktop and CIMPLICITY
When you set up a CIMPLICITY server as a Remote Desktop server, you can use the CIMPLICITY Web site
to make use of the Remote Desktop features.
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
Note:
Remote Desktop has a 256-color limit.
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
Networking | 6 - Microsoft Remote Desktop and CIMPLICITY | 166
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.
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.
Networking | 6 - Microsoft Remote Desktop and CIMPLICITY | 167
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.
Feature Supported?
Feature Supported?
BCEUI Yes
CimEdit/CimView Yes
CWServ Yes
DGR No
Pager No
Recipes Yes.
Registration/Licensing Yes
Report Manager No
Feature Supported?
Workbench Yes
*Remote Desktop client failover is not supported; remote administration through Remote Desktop is
supported.
Remote Con
Device Communications Data Collection
figuration
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
N2 Serial Y Y
Remote Con
Device Communications Data Collection
figuration
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
About the CIMPLICITY Cluster Resource
CIMPLICITY Cluster, which is incorporated into the Microsoft Cluster technology, is available in Proficy™
HMI/SCADA CIMPLICITY® version 6.2 or higher.
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.
Note:
The Failover Cluster Administrator is included in the Microsoft® Windows® Server 2012,
Microsoft® Windows® Server 2012 R2, and Microsoft® Windows® Server 2016 operating
systems.
• 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.
Networking | 7 - CIMPLICITY Cluster Resource | 172
The Cluster reports the project status depending on where the project is started/stopped, as follows.
Start Project through the: Stop Project through the: Then the cluster will indicate that the:
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.
• Cluster: Configuration Microsoft® Windows® Server 2012/2012 R2/2016 (on page 173)
• Technical Reference: Cluster Configuration (on page 196)
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.
Networking | 7 - CIMPLICITY Cluster Resource | 174
Step Description
For Microsoft® Windows® Server 2012/2012 R2/2016: Open the Failover Cluster Manager and Create a
Cluster.
Networking | 7 - CIMPLICITY Cluster Resource | 175
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.
2. Do either of the following.
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.
4. Make sure the role is stopped.
5. Do either of the following.
Networking | 7 - CIMPLICITY Cluster Resource | 177
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:
Networking | 7 - CIMPLICITY Cluster Resource | 178
B Preferred Own Machines that may be available for the selected role.
ers
Failover Tab
Failover values must be entered. However, they are dependent on your system needs.
Networking | 7 - CIMPLICITY Cluster Resource | 179
There are no specific recommendations or requirements for a cluster that uses a CIMPLICITY
project resource.
1. Select the new role item in the Failover Cluster Manager window center-pane.
2. Do either of the following.
Networking | 7 - CIMPLICITY Cluster Resource | 180
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.
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.
2. Do either of the following.
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.
Networking | 7 - CIMPLICITY Cluster Resource | 182
4. Click Next.
A Confirmation screen opens.
5. Check the new resource details.
The New Resource Wizard configures the access point; a Summary screen opens.
Networking | 7 - CIMPLICITY Cluster Resource | 183
7. Click Finish.
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.
Networking | 7 - CIMPLICITY Cluster Resource | 186
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 (on Open the <CIMPLICITY Project Resource Name> Project Properties Dialog Box
page
186)
B (on Configure the <CIMPLICITY Project Resource Name> Project Properties Dialog
page Box
187)
A. Open the <CIMPLICITY Project Resource Name> Project Properties Dialog Box
Result: A <CIMPLICITY Project Resource Name> Project Properties dialog box opens.
B. Configure the <CIMPLICITY Project Resource Name> Project Properties Dialog Box
The following tabs are available for other Microsoft cluster resources. However, values that are entered
for many cluster configuration options are based on system requirements for a CIMPLICITY cluster, as
follows
Review Microsoft documentation for detailed descriptions of cluster resource configuration, in general.
• General Tab
• Dependencies Tab
• Policies Tab
• Advanced Policies Tab
• Parameters Tab (CIMPLICITY project)
General Tab
Item Description
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.
Important:
Required dependencies are as follows.
Sec
Object Description
tion
2 Shared The shared disk on which the CIMPLICITY project resource resides.
Disk
Networking | 7 - CIMPLICITY Cluster Resource | 190
Sec
Object Description
tion
3 IP Ad An IP address that is assigned to the CIMPLICITY project resource. Note: When the
dress project is 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.
Sec
Respond to resource failure
tion
The failover will take over without attempting any restart of the process
The number of seconds the resource should wait for the project resource to attempt to
restart. The resource will fail after the entered time.
Note:
Include the entered Pending timeout value (below) in your calculation to help insure
that the desired number of restart attempts will occur.
The maximum number of restart attempts that will be performed in the specified restart
time period.
Note:
If the resource does not start, the Cluster service will take the actions specified on
the Policies tab.
Enable (checked).
Networking | 7 - CIMPLICITY Cluster Resource | 192
Sec
Respond to resource failure
tion
Important:
Failing over all resources is required for a CIMPLICITY project resource.
3 If all the restart attempts fail, begin restarting again after the specified period (hh:mm)
Pending timeout
The time the resource takes before the Cluster service puts the resource from Online to Offline and
into the Failed state.
Important:
Change the estimated time required for the CIMPLICITY project resource to start if it is dif
ferent from the Cluster service default. Make sure there is enough time for the CIMPLICI
TY project to start.
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 (on page 196)
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.
The Advanced Policies tab enables you to select the computers (nodes) that can host the CIMPLICITY
project resource.
Networking | 7 - CIMPLICITY Cluster Resource | 193
1. CIMPLICITY Cluster Configuration Tool for 64-Bit Machines (on page 197)
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 (on page 197) 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 (on page 197). These steps
are for Microsoft® Windows® Server 2012/2012 R2/2016.
A Right-click the CIMPLICITY project resource that was successfully configured in the Clus
ter64ServerConfig (on page 197) 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 | 196
• 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 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.
The following information will provide the information so a CIMPLICITY project can be brought online as a
cluster resource.
Networking | 7 - CIMPLICITY Cluster Resource | 199
Step Description
2 (on Parameters
page
200)
3 (on Status
page
202)
Networking | 7 - CIMPLICITY Cluster Resource | 200
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
• Project/Browse Button
• Workbench Button
Project/Browse Button
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.
Result: The project name and path will be entered in the Project field.
Networking | 7 - CIMPLICITY Cluster Resource | 201
Workbench Button
Important:
You can open the Workbench only if you are working on the node that is controlling the resource.
Stop the project the same way you do when it is not in a cluster. The project is taken off line. Configure the
project while it is stopped (off line).
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 | 202
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.
Click the Set Parameter button to save the CIMPLICITY project name (parameter) to the CIMPLICITY
Project Resource.
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.
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
Networking | 8 - Server Redundancy | 206
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 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 (on page 291) involves separate physical connections to the same device.
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 (on page 214) 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.
Networking | 8 - Server Redundancy | 208
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.
Computer cabling redundancy is similar to cabling redundancy, except it covers computer to computer
communications rather than computer to programmable controller. Computer cabling redundancy
provides an alternate network path in case of failure of the primary network.
• Server Redundancy
• Computer Cabling Redundancy
Server Redundancy
Server Redundancy (on page 214) 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.
CIMPLICITY Computer Cabling Redundancy (on page 291) provides network redundancy between
CIMPLICITY Servers and Viewers. The CIMPLICITY Ethernet traffic travels over both networks in parallel,
thus the loss of a single network causes no loss of communications.
Networking | 8 - Server Redundancy | 209
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.
Review these topics for an overview of the decisions you need to make while designing your mission
critical application:
Note:
DO NOT use switch button from GefRedundancy.cim screen to simulate Server Redundancy
Failover.
Because the secondary server (on page 214) 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 (on page 291) 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.
Networking | 8 - Server Redundancy | 210
Or, you can connect a device to redundant servers on the same cable.
1. Steady-State CPU Utilization of Primary, Secondary and viewers is less than 40%.
2. Steady-State Memory Utilization does not require page faulting.
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.
Networking | 8 - Server Redundancy | 211
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.
5. Use equipment rated for the ambient temperature of your environment.
6. The servers should not use DHCP unless the leases never expire.
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.
9. Consider isolating Server to PLC Traffic on a private network segment.
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.
Networking | 8 - Server Redundancy | 212
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 D, 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.
The single biggest issue in building a server redundancy system is your user defined scripts. During
failover, point values may be unavailable for a short time. Scripts must be written to properly handle these
intermittent periods and to exit cleanly. Scripts that depend on cleanly exiting must be coded to trap the
errors that can occur when a point goes unavailable. You must test your scripts during fail over to verify
they operate correctly.
The purpose of your primary and secondary computers is to read and process data from your devices,
distribute it to viewers, and to remain synchronized. They need available CPU bandwidth to handle
exception conditions in your process. If you have viewers in your system, the primary and secondary
servers should not run user interface applications such as CimView. The secondary server is not a "spare"
computer to be used to perform other chores like word processing, etc. It is a hot backup, dedicated to
providing redundancy for your mission critical application.
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.
If you are planning on using database logging, you should certainly read the information in this document
on how to use logging within a server redundancy project. Additionally, in a mission critical application,
Networking | 8 - Server Redundancy | 213
the use of Microsoft Access (As-Is product) as a database is not supported. Instead, Microsoft SQL
Server, Oracle, or other supported database server must be used. If you plan on logging a large volume
of data you may want to consider locating the database servers on separate computers within the same
LAN / switch as the primary and secondary. Remember the total CPU utilization, including the database
server, must be less than 40%.
In addition to having a solid physical network, server redundancy requires specific network software
configuration to be performed on every computer in the system. Since specific configuration is required
on every computer you cannot just "plug" another viewer into the network and expect it to work. The
network configuration must be updated on the viewer and related computers.
When you are setting up redundancy on viewer nodes using Proficy Authentication, ensure you do the
following:
The times on the Primary and Secondary computer must be synchronized. Additionally, if using trending
on viewer computers, the times on the viewers must be synchronized with the servers. It is your
responsibility to ensure that the computer times are synchronized. There are a variety of commercial
products available to maintain time synchronization between computers. If you choose to automatically
synchronize your clocks do so at any time other than midnight.
Networking | 8 - Server Redundancy | 214
Deployment
Important:
Server redundancy does not support CIMPLICITY deployment .
CIMPLICITY software's Base System Functionality fully integrates Automatic Server Redundancy (on page
209) . 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 (on page 224)
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.
Networking | 8 - Server Redundancy | 215
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.
Note:
In case of Redundant setup using Proficy Authentication, ensure that both the Primary and
Secondary servers are configured to a same Proficy Authentication server.
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.
Note:
You will have to configure the CIMPLICITY Windows service (on page 270) 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.
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.
Networking | 8 - Server Redundancy | 219
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.
Important:
Applications affected by duplicated point values are not supported.
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.
7. The primary server:
◦ Collects point data from the secondary server
◦ Takes control of point management and device communication
Networking | 8 - Server Redundancy | 221
Users can make setpoint requests on either the primary or secondary server via:
Networking | 8 - Server Redundancy | 222
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 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:
Note:
Guidelines for Redundant Logged Database Identification
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.
Networking | 8 - Server Redundancy | 223
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.
4. Give the database on each redundant server:
◦ The same name as the database on the other server
◦ A different name Data Source Name (DSN) from the corresponding DSN on the other server
5. Set up the primary server to point to:
◦ Its own database
◦ The database on the secondary server
6. Set up the secondary server to point to
◦ Its own database.
◦ The database on the primary server.
See Server Redundancy Configuration Procedures (on page 230) 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.
Networking | 8 - Server Redundancy | 224
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.
Although automatic server redundancy is an essential feature of CIMPLICITY, it requires total failure of
the primary server for the secondary server to take over. There are specific failures when you need the
secondary server to take over a function or the entire project, even when the primary server has not failed.
Therefore server redundancy provides an application interface to allow you to trigger a failover when a
specific criteria is reached.
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.
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
Networking | 8 - Server Redundancy | 226
1 Se
condary.
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 Se
condary.
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:
◦ Redundancy.h, a "C" header file that contains the prototypes for the function. It is located at:
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
Networking | 8 - Server Redundancy | 227
A global BOOLEAN array point of two (2) elements indicates the status of the device connection.
The val
Indicates that the devcom...
ue of...
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
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.
2. Call this function:
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.
The system manager is alerted and switches data collection to the secondary server.
Networking | 8 - Server Redundancy | 229
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.
Networking | 8 - Server Redundancy | 230
todo:
To manually force a project transfer:
1. Create a specific Boolean point with the same name as the device being monitored.
2. Call the function:
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 (on A project.
page
231)
Important:
You need to install the redundancy option on all Viewers.
Note:
Global points are obsolete as of CIMPLICITY 5.0. Instead use the points that are created in the
redundancy object.
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.
Networking | 8 - Server Redundancy | 233
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.
3. From each viewer, ping primary and secondary by name and address.
4. Verify computer names of each computer match.
Note:
Keep alives are automatically configured on a:
Ping Example
C:\WINNT\system32>ping albsagp2
C:\WINNT\system32>ping -a 3.26.4.215
C:\WINNT\system32>set computername
COMPUTERNAME=ALBSAGP2
C:\WINNT\system32>
To
Ver
Referencing the Above Example
ify
Names
Ping ping albsagp2 first translates albsagp2 to an IP Address and then verifies communication to
by the computer. albsagp2 has an IP address of 3.26.4.215. The time required to Ping must be less
Name than 10ms between primary and secondary and less than 30ms between viewers. This step veri
fies that the network software can convert a hostname to an IP Address.
Ping Type ping –a 3.26.4.215. The output of ping albsagp2 provides the IP Address. This step veri
by fies that the network software can convert the IP Address back to the same node name as en
Ad tered in the first step. If you obtain a different IP Address back this may indicate that you have
dress duplicate entries for the IP Address in you network lookup tables. This must be corrected before
continuing.
Con In this example we just ping one computer. You would continue to ping the other computers
tinue (secondary, viewers, etc)
Ping
ing
Networking | 8 - Server Redundancy | 235
To
Ver
Referencing the Above Example
ify
Names
Check Type set computername to return the current setting. This final step on each computer is deter
Com mines if the system's computer name is the same as the computer name configured in the net
puter work. This setting must match the name returned in the above two tests. If not this must be cor
Names rected by either changing your computername or changing the network software configuration
before continuing.
Specific Device Communications configuration such a driver or interface card configuration will need to
be configured and tested on the secondary before starting redundancy. Consult the appropriate device
communications manual for additional details.
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.
Networking | 8 - Server Redundancy | 236
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:
Networking | 8 - Server Redundancy | 237
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
• Remote project start from the Workbench
1. Follow the CIMPLICITY documentation requirements for Server Redundancy to set up the hardware
and network, including
◦ Hardware.
◦ Computer.
◦ Network.
2. Create the same user on both servers.
5. Click OK.
6. Configure the network(s) between the computers as Private.
Networking | 8 - Server Redundancy | 239
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.
a. Enter LocalAccountTokenFilterPolicy in the new field that displays in the Registry Editor
right-pane.
b. Press Enter.
c. Double click LocalAccountTokenFilterPolicy
d. Enter 1in the Value Data field.
e. Click OK.
f. Close the Registry Editor.
10. Set Remote Registry startup to Automatic, as follows.
a. Open the Control Panel>Administrative Tools>Services.
b. Right-click Remote Registry; select Properties.
c. Select Automatic in the Startup type list field.
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.
Networking | 8 - Server Redundancy | 241
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
Username You can enter as few as one name to as many names as should have this priv
ilege.
◦ 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 (on page 237) 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.
In a redundant configuration:
Networking | 8 - Server Redundancy | 242
• 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
In logged database redundancy, configure CIMPLICITY server redundancy, on both the primary and
secondary server, through Windows Control Panel..
Step Description
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 (on page 231) dialog box.
Step Description
Step Description
Step Description
32-bit system
64-bit system
3. Click Add.
Note:
If the data source already exists do the following.
2 (on Continue to configure the Primary Data Source on the Primary Serv
page er
246)
Do the following.
Networking | 8 - Server Redundancy | 246
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.
Networking | 8 - Server Redundancy | 247
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 primary server data source. PRIMARY SQL
SERVER
Networking | 8 - Server Redundancy | 248
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 | 249
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.
Networking | 8 - Server Redundancy | 250
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.
Networking | 8 - Server Redundancy | 251
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 | 252
P = Primary Server
S = Secondary Server
1. Enter specifications in the Create a new Data Source to SQL Server dialog box as follows:
C Server The SQL Server for the secondary server. Note: Select the SQL SQLSERVER2
Server from the drop down menu.
D Click Next.
2. Do the following.
Networking | 8 - Server Redundancy | 253
C Click Next.
3. Do the following.
Networking | 8 - Server Redundancy | 254
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 | 256
Step Description
32-bit system
64-bit system
3. Click Add.
Note:
If the data source already exists do the following.
2 (on Continue to configure the primary Data Source on the secondary Serv
page er.
258)
Do the following.
Networking | 8 - Server Redundancy | 258
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.
Networking | 8 - Server Redundancy | 259
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 primary server data source. PRIMARY SQL
SERVER
Networking | 8 - Server Redundancy | 260
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.
C Click Next.
3. Do the following.
Networking | 8 - Server Redundancy | 261
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.
Networking | 8 - Server Redundancy | 262
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.
Networking | 8 - Server Redundancy | 263
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
Networking | 8 - Server Redundancy | 264
1. Enter specifications in the Create a new Data Source to SQL Server dialog box as follows:
C Server The SQL Server for the secondary server. Note: Select the SQL SQLSERVER2
Server from the drop down menu.
D Click Next.
2. Do the following.
Networking | 8 - Server Redundancy | 265
A Check: With SQL Server authentication using a login ID and password entered by the user.
C Click Next.
3. Do the following.
Networking | 8 - Server Redundancy | 266
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.
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 | 268
Field Description
Networking | 8 - Server Redundancy | 269
ODBC The data source for the server from the drop down list of available data sources. Tip:
data Click the ODBC Data Source button to the right of the ODBC data source field to open the
source ODBC Data Source Administrator dialog box. You can then see the drivers configured for
each data source and make any necessary changes or additions.
Data (Required if you are connecting to a SQL Server) user who has the privilege to connect to
base the selected database driver.
user
Pass (Required if you are connecting to a SQL Server) needed to connect to the selected data
word base driver.
Re Amount of time the Database Logger waits between reconnect attempts when the con
con nection to the database is lost in the. Enter a value between 0 seconds (continuous re
nect tries) and 24 hours. The default is 30 seconds.
wait
peri
od
En Checked enables Store and Forward. After you enable the feature, check one of the fol
able lowing:
Store ◦ Unlimited: Database Logger stores an unlimited number of records while its con
and nection to the database is down. The number of records actually stored is deter
For mined by the amount of time the connection is lost and by the amount of free disk
ward 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 (on Configure a Service for Creating Logging Tables Dynamically Triggered by an
page Event.
270)
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.
A Microsoft SQL Server data source that logs data to an on-node SQL Server database. You must install
SQL Server (sold separately) to use this data source.
If you are connecting to a SQL Server, you may be prompted for a database name during validation.
Networking | 8 - Server Redundancy | 272
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.
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.
Networking | 8 - Server Redundancy | 273
Section Description
1 Class objects
1. GefRedundancy class.
2. Redundancy object.
Networking | 8 - Server Redundancy | 274
REDUNDANCY.RES When set to 1(by a button on the Redundancy CimView screen), the ac
TORE_PRIMARY tive is switched to the primary computer.
REDUNDAN When set to 1(by a button on the Redundancy CimView screen), the ac
CY.SWITCH_TO_SEC tive 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.
Note:
DO NOT use switch button from GefRedundancy.cim screen to simulate Server
Redundancy Failover.
Step Description
Step Description
Once the Redundancy CimView screen displays for the project, you can review which:
The secondary computer the active and the primary computer is offline.
Networking | 8 - Server Redundancy | 278
The secondary computer displays as the active; the primary computer displays as offline.
5. Switch roles.
Networking | 8 - Server Redundancy | 279
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.
Networking | 8 - Server Redundancy | 280
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:
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
Method 2
The Redundant project stop dialog box opens when you use either method.
Networking | 8 - Server Redundancy | 281
4. Select Run.
Method 1
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:
STARTUP_STARTUP_TIMOUT|1|< TIME-MINUTES>
Networking | 8 - Server Redundancy | 283
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:
Device Communications on the secondary server begins actively polling for data and passes point data to
the Point Manager on the secondary server, which now becomes the primary Point Manager. Any viewer
Networking | 8 - Server Redundancy | 284
process that was connected to the original primary Point Manager will automatically switch over to the
new primary Point Manager, which will now assume all supervisory and control functions.
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.
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.
The probe interval is defined in REDUND_PROBE_DELAY that is set to 3000 millisecond by default.
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.
◦ When a secondary server fails, functionality is not lost, because all functions are also
running on the primary server.
◦ When a primary server fails, the secondary server initiates procedures to take over
redundant CIMPLICITY functions.
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.
todo:
To reset the primary server on CIMPLICITY:
1. Make sure that CIMPLICITY software is running on the primary and secondary servers.
2. Start a project's Workbench on the primary server.
3. Select the Objects icon in the Workbench left pane.
4. Right-click the Redundancy object.
5. Select Quick View from the popup menu.
Networking | 8 - Server Redundancy | 286
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:
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:
• 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 (on page 287) for merging data [dd-Mmm-yyyy hh:mm:ss]
Important:
◦ The month (only the month) has the first letter capitalized.
◦ MASTER and SLAVE must be capitalized.
◦ Use either MASTER or SLAVE (as KEYWORDS) for the SOURCE and DEST servers.
◦ If no arguments are supplied, no merge occurs.
Networking | 8 - Server Redundancy | 289
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 (on
page 280) dialog box and the Start button is clicked.
◦ The Primary Only or Secondary Only server is checked on the Stop Redundant Project (on
page 281) 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.
8. Executes the merge from primary to secondary.
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
10. Executes the merge from secondary to primary.
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.
2. Repair the network.
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.
Networking | 8 - Server Redundancy | 292
• 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.
• 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
• 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.
• It is not possible to have two Ethernet cards installed and only use one of them for CIMPLICITY
software.
CIMPLICITY Computer Cabling Redundancy will not cover the following failures:
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
Networking | 8 - Server Redundancy | 294
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.
Each of two network interface cards must be connected to its own physical network. This is needed to
provide for a backup network in the case that one of the networks is lost.
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:
To prevent the Windows Firewall from creating a failure mode you can enable a time-out on initial socket
connection. Add SOCKET_CONNECT_TIMEOUT to cimhosts.txt file. The optimal value may differ from
system to system. However, the recommended range of values is >=2 seconds and <=5 seconds. The
format for this parameters is:
#SOCKET_CONNECT_TIMEOUT <seconds>
Example: #SOCKET_CONNECT_TIMEOUT 3
The default value for detecting that a network connection has been lost is 20 seconds. Due to the
seamless nature of CIMPLICITY Computer Cabling Redundancy, this should be a reasonable default.
It can be modified, depending on the needs of the application. The loss detection rate should never be
modified to less than 3 seconds.
PING_INTERVAL * (PING_COUNT + 1)
The two parameters, PING_INTERVAL and PING_COUNT are defined in the cimhosts.txt file.
where
Networking | 8 - Server Redundancy | 296
<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.
The CIMPLICITY Computer Cabling Redundancy option can generate diagnostic output that you can use
to track down problems with the functioning of the cabling redundancy system. To generate diagnostic
output, enter a valid value for the DEBUG parameter in the cimhosts.txt file.
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:
Val
Output
ue
1 Print errors
To support CIMPLICITY Computer Cabling Redundancy, you need to use a set of TCP/IP ports in the
range 5000 to 6000. Depending on other communication software you are running you might have to alter
this range. This is controlled by the START_PORT_RANGE and NUMBER_OF_PORTS parameters in the
cimhosts.txt file.
where
< port> is the TCP/IP port to start with and <count> is the number of ports to use.
Example
#START_PORT_RANGE 5000
#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.
Networking | 8 - Server Redundancy | 298
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.
() As Long
Sub Main()
im node As String
n256 = 256
data = InitSocketChange()
While 1
= WaitSocketChange(data, 5000)
If i = 1 Then
ode = Space(256)
ipStr$ = CvtIPAddress(ipAddress)
refId$ = ipAddress
If state = 2 Then
Else
End If
node = Space(256)
Wend
End If
Wend
i = CloseSocketChange(data)
End If
End Sub
CvtIPAddress = mod1 & "." & mod2 & "." & mod3 & "." & mod4
End Function
• InitSocketChange
• WaitSocketChange
• CloseSocketChange
• GetNextSocketChange
InitSocketChange
Function Description
Com This function returns a pointer used in other functions to identify this request, or NULL if the
ments initialization failed.
data = InitSocketChange()
WaitSocketChange
Func
Description
tion
Func
Description
tion
De This function waits for the next change in an IP status to occur.
scrip
tion
Com The arg pointer is the pointer returned by the InitSocketChange function. The timeout parame
ments ter 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.
i = WaitSocketChange(data, 5000)
CloseSocketChange
Function Description
Com The arg pointer is the pointer returned by the InitSocketChange function. This function does
ments not have a return status.
i = CloseSocketChange(data)
GetNextSocketChange
Func
Description
tion
De This function gets the information about the next IP status change.
scrip
tion
Networking | 8 - Server Redundancy | 302
Func
Description
tion
Com The arg pointer is the pointer returned by the InitSocketChange function. The node buffer is
ments used to hold the name of the node for this IP address. It should be 255 characters or larger. The
ipAddress is the IP address that has had a status change. The state is the new state of the IP
address. The states are:
Value State
0 Not connecting
1 Connecting
2 Connected
3 Deleted
4 Unknown
Node = Space(256)
Wend
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>
TCHAR *socketUse[] =
Networking | 8 - Server Redundancy | 303
_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;
while(1)
printf("\n%s", ctime(<ime));
switch(dwWaitStatus)
case WAIT_OBJECT_0:
if(FindFirstSocket(dwChangeHandle, &findSocketData))
do
if(findSocketData.opened)
"Closed");
"");
"Completed" : "");
printf("\n");
unsigned int i;
if(findSocketData.sockets[i].isOpen)
socketState[findSocketData.sockets[i].socketState]);
? "Exception" : "");
if(findSocketData.socketUse == SOCKET_ACCEPT
|| findSocketData.socketUse == SOCKET_CONNECT)
print_sockaddr_in(
&findSocketData.sockets[i].partnerAddr);
print_sockaddr_in(
&findSocketData.sockets[i].localAddr);
printf("\n");
} while(FindNextSocket(dwChangeHandle, &findSocketData));
printf("\n");
Networking | 8 - Server Redundancy | 305
FindCloseSocket(dwChangeHandle);
break;
default:
FindCloseSocketChangeNotification(dwChangeHandle);
return 0;
dwWaitStatus = WaitForMultipleObjects(objectCount,
objectArray,
FALSE,
INFINITE);
if(FindNextSocketChangeNotification(dwChangeHandle) == FALSE)
FindCloseSocketChangeNotification(dwChangeHandle);
return 0;
return 0;
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
Func
Syntax
tion
De This function initializes notification that the socket data has changed.
scrip
tion
Com There are no input or output arguments. This function returns the handle used in the find sock
ments et routines, or INVALID_HANDLE_VALUE on failure.
HANDLE dwChangeHandle;
dwChangeHandle = FindFirstSocketChangeNotification();
if(dwChangeHandle == INVALID_HANDLE_VALUE)
return 0;
FindNextSocketChangeNotification
Func
Description
tion
De This function prepares to receive the next socket change notification.
scrip
tion
Com The changeHandle input argument is the handle returned by the FindFirstSocketChangeNoti
ments fication function. There are no output arguments. This function returns TRUE if successful, or
FALSE on failure.
Networking | 8 - Server Redundancy | 307
HANDLE dwChangeHandle;
if(FindNextSocketChangeNotification(dwChangeHandle)==FALSE)
FindCloseSocketChangeNotification(dwChangeHandle);
return 0;
FindCloseSocketChangeNotification
Func
Description
tion
Com The changeHandle input argument is the handle returned by the FindFirstSocketChangeNoti
ments fication function. There are no output arguments. This function returns TRUE if successful, or
FALSE on failure.
HANDLE dwChangeHandle;
FindCloseSocketChangeNotification(dwChangeHandle);
FindFirstSocket
Func
Description
tion
Com The changeHandle input argument is the handle returned by the FindFirstSocketChangeNoti
ments fication function. The findSocketData output argument contains all the information about the
Networking | 8 - Server Redundancy | 308
Func
Description
tion
found socket. This structure is defined in <inc_path/toolkit.h>. This function returns TRUE if a
socket is found, or FALSE if there are no more sockets.
HANDLE dwChangeHandle;
if(FindFirstSocket(dwChangeHandle, &findSocketData))
FindNextSocket
Func
Description
tion
Com The changeHandle input argument is the handle returned by the FindFirstSocketChangeNoti
ments fication function. The SocketFindData output argument contains all the information about the
found socket. This structure is defined in <inc_path/toolkit.h>. This function returns TRUE if a
socket is found, or FALSE if there are no more sockets.
HANDLE dwChangeHandle;
do
} while(FindNextSocket(dwChangeHandle, &findSocketData));
FindCloseSocket
Networking | 8 - Server Redundancy | 309
Func
Description
tion
Com The changeHandle input argument is the handle returned by the FindFirstSocketChangeNotifi
ments cation function. This function returns TRUE if successful, or FALSE if an error occurred.
HANDLE dwChangeHandle;
FindCloseSocket(dwChangeHandle);
This appendix documents the redundant communication interfaces supported by Server Redundancy.
• CCM2
• Genius
• SNPX
• Allen-Bradley Communications
• DDE Client
• Modbus RTU
• Modbus TCP/IP
• OPC Client
• Point Bridge
• Series 90 TCP/IP Triplex Device Communications
In addition, CIMPLICITY supports the development of Server Redundant Device Communication Toolkit
drivers. Use the heartbeat function in the enabler to determine if the secondary server can communicate
with its configured devices.
CCM2 Communications
Networking | 8 - Server Redundancy | 310
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:
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.
Networking | 8 - Server Redundancy | 311
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:
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.
Networking | 8 - Server Redundancy | 312
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.
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
Networking | 8 - Server Redundancy | 313
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_ Wait time before the Router creates a link to the standby node.
SLEEP
Parameter Description
SECONDARY_START Starting time delay for the secondary server project, when both the project on
UP_TIMEOUT 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.