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