Miscellaneous

How to access methods of shapes placed in another module

There is no problem if you want to access a property of a specific shape in another panel or module. You can do it as described in Online Help:

setValue("moduleName.panelName:shapeName","property","value");

main()
{
string sColor;
setValue("ModuleEllipse.PanelEllipse:MyEllipse","foreCol","Red");
getValue("ModuleEllipse.PanelEllipse:MyEllipse","backCol", sColor);
}

But if you want to access a method of a shape in another panel or module you cannot use the syntax above. You have to access the method of the shape with the help of the CTRL - function invokeMethode() or by using the “shape” data type.

Example:

User wants to call the method selectedItems() for the a tree widget “TREE1”, which is placed in panel “PanelViews” in a module named “ModuleBase”.

If only getValue() function is used:

main()
{
  dyn_string dsItems;
  getValue("ModuleBase.PanelViews:TREE1","selectedItems",dsItems ); 
}

The WinCC OA UI throws following error message in the Log Viewer:

Object "TREE1" of type "TREE" does not know the attribute "selectedItems" for "getValue()"

Solution: Use of “invokeMethode” or “shape” data type:

main()
{
  dyn_string dsItems;
  invokeMethod("ModuleBase.PanelViews:TREE1", " selectedItems ", dsItems);
  // OR
  shape s = getShape("ModuleBase. PanelViews:TREE1");
  dsItems = s.selectedItems();
}

How do I get the information if a backup is running?

The information as to whether a backup is running is stored in the data point element _DataManager(_2).Backup.Status.

The DPE is set by the server which is doing the backup.

When the backup is started, the value 1 is written.

If the backup was completed successfully, the value 0 is written.

A negative value is written if an error occurred during the execution of the backup.

The error codes and their description can be found in the WinCC OA documentation: System Management > Database > Online Backup > Configuration of the backup

Can I use AMQP in WinCC OA?

The integration of an AMQP interface within WinCC OA is not planned.

There is an MQTT driver to fulfill requirements such as connecting WinCC OA to IoT.

The MQTT driver is not able to communicate with AMQP as they are different protocols based on the idea of a publish-and-subscribe mechanism.

Please check if MQTT can be used in the WinCC OA project.

How to read information from the _lock config

Basically there are the following attributes which can be read with a dpGet:

Attribute Type Description
_locked bool Config blocked
_man_id Int The manager ID as an int like it is returned by the CTRL function convManIdToInt().
_man_nr Char Manager number. Numerical char data type that takes the values 0 to 255
_man_type Char Manager type. Numerical char data type that takes the values 0 to 255.
_type Int Type of lock.
_user_id Uint User ID

To find out from which system the _lock config was set, the function getManIdFromInt(int manIdInt, char &manType, char &manNum [, int &sysNum [, char &replica]]); must be used.

Is it possible to connect to web services like Azure IOT Hub with WinCC OA?

Azure IOT Hub has an MQTT interface. It should therefore be possible to connect the Azure IOT Hub using 'sMQTT driver.

Azure IOT Hub provides a web interface which you can connect to by using the existing WinCC OA commands (net*), e.g. netGet() and parsing the answer inside a CTRL script.

A detailed description of the functions can be found in the WinCC OA documentation: CONTROL --> Control functions --> Functions N --> net*.

How to get the Datapoint type name by the type ID?

If you want to know the name of a DP type and only the ID is known you can use the tool WCCOAtoolNameToId.

  1. Open a cmd-shell and go to the WinCC OA version/bin - directory
  2. Enter the following command: WCCOAtoolNameToId.exe -proj <your projectname> -t <Type ID>

Example: WCCOAtoolNameToId.exe -proj MYPROJECT -t 523

Details can be found within the WinCC OA documentation -> Special Functions -> Identification Caching & DP Identification

How do I read the output of the debug flag "-dbg STAT_HISTO"?

If the debug flag -dbg STAT_HISTO is activated, detailed information about the processed value changes and changes to alert instances is reported

The information is written to the log file for the Event Manager.

The interval can be defined with the config entry MessageDiagSecs in the [general] section. The default value is 30 seconds.

The output may slightly differ from WinCC OA version to WinCC OA version.

When the output does not contain all lines described below, the information is still valid for the other lines.

If the output contains more columns then described below, the additional columns must not be taken into account, they are not used.

For every debug three lines of information are written.

  • The first line contains information about the value changes in the system.
  • The second line contains information about the processed alert instance changes. The information is written in the form of a histogram. Each slot of the histogram has a special meaning.
  • The third line contains information about the size of the value changes for a DP element of type string or blob

Value changes

The first column contains the total number of value changes for the last period.

In the following columns detailed information for the latency is reported. The latency is the difference between the value change timestamp and the processing in the Event Manager.

If the value changes due to a dpSet/dpSetWait message, the difference is always 0 because the timestamp is specified by the Event Manager.

If the value is changed in a PLC and the driver provides the timestamp, some latency might be detected. Due to time synchronization there might be negative latency intervals as well, which are counted in a separate slot.

The histogram contains information for following latency intervals:

// slots:
// total number [ 0]
// 0 .. 90 ms [ 1] .. [10]
// 100 .. 900 ms [11] .. [19]
// 1 .. 9 s [21] .. [29]
// 10 .. 90 s [31] .. [39]
// <0.0 [102]
// >= 100s [101]

The log message example shows value changes triggered by a CTRL script running on the same server as the Event Manager. Therefore, no latency is detected.

There are 68 changes in total, and all are detected with a latency of less than 10 ms.

WCCILevent (0), <TIMESTAMP>, STAT_HISTO, "STAT_HISTO, "DPEChanges [10 ms] - decades: total 68 | 
68, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 
0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0 | >= 100000 0, < 0 0"

Changes of alert instances

The first column contains the total number of changes of alert instances for the last period.

In the following columns detailed information is listed according to the alert type (continuous alarms, multi instance alarms, suppressed alarms) and the alert state.

// ALERTEVENT_CAME (0)
// ALERTEVENT_CAME_IMPULSE (1)
// ALERTEVENT_GONE (2)
// ALERTEVENT_MULTIPLE_ACK (3)
// ALERTEVENT_SINGLE_ACK (4)
// ALERTEVENT_GONE_INACTIVE (5)
// ALERTEVENT_GONE_IMPULSE (6)
// ALERTEVENT_GONE_OBSOLETE (7)
// NOEVENT (8) 

The histogram contains the following slots:

// slots:
// total number [ 0]
// continuous alarms [ 1] .. [10] sorted by AlertEvent constant
// multi instance alarms [11] .. [20] sorted by AlertEvent constant
// suppressed alarms due to minPrio setting [32]
// _alert_hdl config was set active/inactive [33]
The following sample shows changes of continuous alarms and multi instance alarms.
1036 alarm changes in total
29 continuous alarms (ALERTEVENT_CAME)
7 continuous alarms (ALERTEVENT_GONE)
1000 multi instance alarms (ALERTEVENT_CAME)

WCCILevent (0), <TIMESTAMP>, STAT_HISTO, "AlarmChanges [#]: total 1036 | 29, 0, 7, 0, 0, 0, 
0, 0, 0, 0 | 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0| 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0,0, 0, 0 | 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0 | > 10 0, < 0 0"

Size of value changes (strings, blobs)

The first column contains the total number of messages which were counted in the last period.

In the following columns the number of messages is listed according to the size of the message in decades.

The histogram contains information for following message sizes:

// slots:
// total number of messages [ 0]
// 0-1 .. 9-9.99 kB [ 1] .. [10]
// 10-19.99 .. 90-99.99 kB [11] .. [19]
// 100-199.99 .. 900-999.99 kB [20] .. [29]
// 1000-1999.99 .. 9000-9999.99 kB [30] .. [39]
// 10000-19999.99 [40]
// >20000 [41]

WCCILevent (0), <TIMESTAMP>, STAT_HISTO, "Msg Size [kB] - decades: total 56 | 11,
10, 10, 10, 10, 5, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0,
0 | 0, 0, 0, 0, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0, 0, 0 | >= 100000 0, < 0 0"

How do I change the system number and system name for distributed systems

If you want to connect WinCC OA systems using distributed systems, they need to have unique system numbers and names.

With the command line tool WCCOAtoolSyncTypes (can be found in WinCC OA installation folder/bin) it is possible to change the name and number of an existing system.

  1. Stop the project
  2. Make a backup of the database. If HDB archiving is used, it is not necessary to back up the VA_* directories as they are not modified when changing the system number and/or system name.
  3. Open a command line window/terminal and switch to the bin folder of your used WinCC OA installation (e.g. C:\Siemens\Automation\WinCC_OA\3.19\bin).
  4. Run the following command:
    WCCOAtoolSyncTypes -proj <the project name> -system <new System number> <new System name> -log +stderr
  5. Wait until the command is finished and check the log output if an error is written

DistSync feature - How long is the synchronization time?

We have measured the synchronisation times for 1000 configs per config-types:

feature synchronization time (sec)

DpGroup

7.991

UserDefDpGroup

11.437

Alarmclass

8.414
Trend 8.56
AES 22.483
User 6.17

Also we know that the number of configs and the synchronization times are linear with each other.

From that you can predict the synchronization time for a given number of configs.

e.g.: If you have 5000 AES configs, the estimated time would be 5 * 22.483 sec

How to avoid copy of string variables, mappings, and dyn_arrays at function call?

On passing a variable to a function in CTRL (including UI), the value of the variable will copied. On using large variables (e.g. big strings, arrays or mappings), it is a good idea to use a reference variable. That would avoid the overhead of copying the variable, saves performance and reduce the memory consumption of the manager.

Example for using a reference:

myFunction(dyn_dyn_anytype &ddaMuchData)

To sign that the variable will only be used for reading and the function is not modifying its value, the reference variable can declared as const:

myFunction(const dyn_dyn_anytype &ddaMuchData)

What is an alternative to use dpGet() inside a callback function?

dpGet() is a blocking function, which should not be used inside callback functions (because it could lead to too much pending runs, which would be thrown away).

  • Option 1: Connect to all required values.

    On using dpConnect it is easy to add all required DPEs to the connection list.

  • Option 2: Keep slow changing values on global variables.

    Create a global variable, and do a dpConnect on the additional DPE, the callback should fill the current state to that global variable. Every time that additional state is required, it is just needed to read it from the global variable (instead of doing the dpGet).

Can there be problems with WinCC OA installation and Matrox cards ?

Yes, in rare cases installation of WinCC OA 3.17+ is not possible due to a conflict with Qt and the Matrox driver.

Our Recommendation:

  • Install the newest Matrox driver.
  • Set the environment variable QT_OPENGL and try one of the following values:
    • software
    • angle
    • desktop

How do I create my own object library (symbols and DPTs)?

The easiest and fastest way to create your own object library (including symbols, DPTs, faceplates) is to use the Stdlib.

The Stdlib is a framework that allows creating an object library by following some Rules instead of the required CTRL programming.

The basic rules are the location where to save panels, how to name DPTs and functions. Details about how to create an object library based on the Stdlib framework can be found in the Online help of the Stdlib. The BasicS7, AdvS7 and BACnet libraries are all created with the Stdlib.

The object library should be used as sub project and has a high level of reusability.

How can I enforce a faster start-up when the RDB Manager takes too long to establish a connection with the Oracle Server?

In the default configuration of WinCC OA, the RDB tries to establish a connection to the Oracle Server during start-up. This could take a few minutes in dependency of the actual state of the Oracle Server (stopped, currently starting up, heavy load and so on)

In this situation all following WinCC OA managers will not be started until the RDB gets its connection to the Oracle Server.

To avoid this situation and to optimize the start-up behavior, it is possible to start the RDB manager in an offline mode. In this mode, the RDB manager will begin buffering all of its values until it gets the command to establish a connection with the Oracle Server. This command can be triggered a few minutes after the complete start-up of the WinCC OA project with a manual set of the _RDBArchive.connection.openDBConnection DPE.

With this configuration, there is no need to be concerned about the actual state of the Oracle Server during the start-up of the WinCC OA project, because the start-up is not interrupted by a RDB manager trying to establish a connection with the Oracle Server.

For more information regarding this configuration please check chapter: “Details on data buffering” in the RDB manager section of the WinCC OA Online Help

How to migrate panels/message catalogues for an ISO project to UTF8?

When using WinCC OA 3.16 or a newer version, only UTF8 languages are supported.

If your project framework uses ISO languages ​​and you want to use UTF8 languages you need to follow the instructions given below to migrate the panels and message catalogs into your project framework.

Modification of panels

When using special characters in the panel, texts may not be displayed correctly if the panels with ISO texts are used in a UTF8 project. This rule also applies to $ parameters defined in the panel files.

The easiest way to make the panels readable in UTF8 projects is to save them as XML files. A panel file in XML format is always saved as a UTF8 file.

All you need to do is change the format of the panel file. Even if the panel file is saved as an XML file, you can use the file extension “.pnl” or another extension..

  • The conversion of panel files in PNL format to XML is done via the WinCC OA UI with the command line option -xmlConvert. The file names are given the extension ".xml".

    For example, conversion of the main.pnl for the PlantProject

    WCCOAui -xmlConvert main.pnl -proj PlantProject

  • Rename the converted panels back to “.pnl” or the extension you used before. Then you don't need to change the scripts or code that refers to the panel names.

If you have many panels, you can write a script (e.g. a CTRL script) that performs the tasks.

Change in message catalogs

The encoding for the catalog files must be changed to UTF8. This can be done with a text editor, e.g. Notepad++

You must save the converted message catalog in the msg/<language>.utf8 directory.

  • Open the news catalog with a text editor
  • Change encoding to UTF8 without BOM
  • Save the message catalog in the correct directory

Why is an OPC error "No such interface supported(0x80004002)" reported when starting a OPC DA process?

Causes of the following log messages

When the OPC DA Client is started:
WCCOAopc (1), 2016.11.23 08:07:02.465, IMPL, WARNING, 54, Unexpected state, OPCServer, 
CheckSrvInterfaces, Server does not support IOPCBrowseAddressSpace -> no browse info (No such interface 
supported(0x80004002))WCCOAopc (1), 2016.11.23 08:07:02.465, IMPL, SEVERE, 54, Unexpected state, OPCServer, 
CheckSrvInterfaces, Server does not support IOPCServer -> server cannot be used (No such interface 
supported(0x80004002))

When the OPC HDA Client is started:

WCCOAopchda (2), 2016.11.23 08:11:58.283, PARAM,SEVERE, 54, Unexpected state, 
OpcHDAClientServer, OpcHDAClientServer, Error when creating instance for server WINCC_OA.OPCHDA. hr 
= 524306, -2147467262, -2147467262, 0

While browsing for available OPC DA Servers in the panel System Management > OPC > Driver > OPC Driver

WCCOAui1:CreateInstance Failed (80040154)
WCCOAui1:Are you sure you have registered the latest OPCPROXY.DLL?          

These log messages occur if the installation of the OPC Core Components is missing or if different versions are installed.

See below for a detailed description:

  1. OPC Core components are not installed
  2. WinCC OA 3.14 or newer was installed after the installation of WinCC OA 3.12 or WinCC OA 3.13 or the OPC Core Components Redistributable 105.0 was installed.

    During the setup an update of the OPC Core Components Redistributable (x64) from 105.0 to 106.0 is made. This update sometime fails and therefore the new version 106.0 is not installed properly.

If you try to uninstall the OPC Core Components 106.0 manually, you will receive this error message:

There is a problem with this Windows Installer package. A program that is required to complete the installation could not be executed...

Solution:

Please use the "Repair" function, which is available via the Windows function Control Panel > Programs and Features

If you have not installed any OPC Core Components before the installation of WinCC OA 3.14 or a newerWinCC OA version, the upgrade of the OPC Core Components is not necessary.

If the current OPC Core Components (x64) 106.0 have already been installed before the installation of WinCC OA 3.14 or newer, the error does not occur.

How to use user defined icons in PARA

With version 3.10 of WinCC OA we introduced the feature to use your own icons for data points, data point elements, etc.

For this purpose you must create a script called icons.ctl.

This script might look as following:

main()
{ 
  mapping map;
  map["dist_1:"] = "dist_1.png";       //the system dist_1 gets this icon
  map["dist_1:[PUMP1]"] = "pump1.png"; //the data point type PUMP1 in the system
          dist_1 gets this icon

  map["dist_1:[PUMP1].state.on"] = "on.png"; //the data point element .state.on of
          the data point type PUMP1 in the system dist_1 gets this icon
  map["dist_1:[PUMP1].state.on_2"] = "on_2.png";
  map["dist_1:[PUMP1].state.off"] = "off.png";
  map["dist_1:[PUMP1].state.mode.remote"] = "remote.png";
  map["dist_1:[PUMP1].state.mode.local"] = "local.png";
  map["dist_1:[PUMP1].state.mode.auto"] = "auto.png";
  map["dist_1:[PUMP1].state.mode.man"] ="man.png";
  map["dist_1:[PUMP1].state.mode.service"] = "service.png";
      
dpTreeSetIcons(map); //set the icons
}

The User Interface where these icons should be used must be started in the following way:

PVSS00ui -m para -s icons.ctl

Note:

The icons that are used must be located in the “pictures” folder of the project.

With which user should I start the WinCC OA Pmon Service when I’m using Kerberos?

The correct answer for this question depends on the specific requirements for every project. Every option has some advantages and disadvantages:

Option 1: Start Pmon as Network Service

  • Advantage: This is the recommended option if high security requirements have to be fulfilled. With this option it is possible to limit the access to local folders on the own machine and it is not possible to get access to remote resources like printers and UNC-paths.
  • Disadvantage: In case where it is needed it is not possible to grant permission for remote resources

Option 2: Start Pmon as Local Service

  • Advantage: No permissions for local and remote resources but it’s possible to grant access to local resources if they are required.
  • Disadvantage: In case where it is needed it is not possible to grant permission for remote resources

Option 3: Start Pmon as Local System

  • Advantage: No permission for remote resources and full access to local resources but it is possible to limit the access to local resources.
  • Disadvantage: In case where it is needed it is not possible to grant permission for remote resources

Option 4: Start Pmon as specific User

  • Advantage: A detailed distribution of permissions is possible. Access to local and remote resource could be granted.
  • Disadvantage: Malpractice of this user is possible and root permission in WinCC OA could be archived very easily. A high effort of working time could be possible to define a secure system.

How to keep project files synchronized (redundancy and UIs)

On a redundant System it is necessary that the project files are synchronized between both redundant hosts.

WinCC OA has a feature to keep the projects of redundant hosts synchronized. With the CTRL script fileSync.ctl you can use the split mode for testing your changes. On leaving split mode, by answering the question which host should recover, the projects files can be synchronized as well.

You can also synchronize by pressing the FileSync button in the system overview panel on demand.

For using the file synchronization in the redundant project, a CTRL manager with different number on both hosts which runs the script fileSync.ctl is required.

Example

on left host1: fileSync.ctl -num 98 –connectToRedundantHosts

on right host2: fileSync.ctl -num 99 –connectToRedundantHosts

Note:

According to WinCC OA Online Help (chapter File Synchronization), the CTRL debug DPs for those managers (e.g. 98 and 99) are required as well:

DPT: _CtrlDebug

DPs: _CtrlDebug_CTRL_98 and _CtrlDebug_CTRL_99

This functionality can overwrite, add and delete files. All deleted and overwritten files will be moved to an zip backup file.

Project files on UI or web clients

To keep the UI client projects up to date, you can use the web client, which caches the project files.

The same is possible with an UI outside of a browser by starting the UI process with the option –server http://<web client server>.

Can I harden my WinCC OA project by limiting the amount of started WinCC OA processes in a RDB Project?

Yes, there is no need for the databg Manager in a pure RDB project both events and alerts are logged into a Oracle DB.

The startup of the databg manager could be prevented with this config entry in the [data] section from config file of the WinCC OA project:

[data]
dataBgName = ""  

How can I start a remote WinCC OA process for a redundant pair of servers?

In this case, it is recommended to have a local project installation on the remote computers with a correct link to the Data and Event Manager on the server computers. This can be configured by creating a new remote UI project using the WinCC OA Project Administrator.

Outside of this project, it is possible to start remote processes with the “-proj” option via CMD-Line. In this case, you don't have to worry about the actual status of redundant servers because the connection is established automatically

  1. Start a remote UI with this CMD line:

    WCCOAui –proj [project name]

  2. Start a remote UI with a local license (this is used when a dongle with a Para license is connected to the remote machine and this license is to be used instead of the license on the servers):

    WCCOAui –localLicense –m para -proj [project name]

    This option is available for many WinCC OA processes could also be used for CMD-based tools from WinCC such as: “WCCOAtoolNameToId”

ExcelReport - Compile error in hidden module

Due to internal changes of registration keys through Windows security updates, it can occur that the WinCC OA Excel Report cannot be used anymore and returns errors like "Compile error in hidden module".

To solve this issue, the registration for the WCCOAcom.dll, the SubTimer.dll, mscomctl.ocx and the mscomct2.ocx must be removed and a new registration must be created.

e.g. for WinCC OA 3.12 following steps must be taken:

  1. Open the command line interface (cmd.exe) as administrator
  2. Change to the directory SysWOW64 - use "cd C:\Windows\SysWOW64\"
  3. Unregister the WCCOAcom.dll - use "regsvr32 /u <WinCC OA Installation Path>\bin\windows\WCCOAcom.dll"
  4. Register the WCCOAcom.dll again - "regsvr32 <WinCC OA Installation Path>\bin\windows\WCCOAcom.dll"
  5. Unregister the SubTimer.dll - use "regsvr32 /u <WinCC OA Installation Path>\bin\SubTimer.dll"
  6. Register the SubTimer.dll again - "regsvr32 <WinCC OA Installation Path>\bin\SubTimer.dll"
  7. Unregister the mscomctl.ocx - use "regsvr32 /u mscomctl.ocx"
  8. Register the mscomctl.ocx again - "regsvr32 mscomctl.ocx"
  9. Unregister the mscomct2.ocx - use "regsvr32 /u mscomct2.ocx"
  10. Register the mscomct2.ocx again - "regsvr32 mscomct2.ocx"

Further details regarding the changes through the Windows security updates can be found here.

How do I simulate NaN (not a number) values for testing purposes

In some cases, it is necessary to simulate NaN (not a number) values for testing purposes (f.e. if you want to test, how your business logic is able to handle such values (they could come from PLCs in case of errors).

Here is a code-sample for generating a NaN-value (-1.#QNAN0) with a Control-Script:

main()
{
  blob source;
  int len, pos;
  string s;
  float value;
  s = "7F,FF,FF,FF";
  source = s;
  len = 4;
  pos = 0;

  blobGetValue(source, pos, value, len, FALSE);
  DebugN(isnan(value));        //this will result into a TRUE output<o:p></o:p>
  dpSet("System1:TestValue.", value);  //If some other Script is connected to this DPE, 
                                         it must be able to handle this value
}

Why is a SQL Query on _alert_hdl.._act_state not possible?

A query like SELECT ALERT '_alert_hdl.._act_state' FROM '*.**' WHERE _DPT = "myDPType" is not possible because the alert_hdl.._act* attributes can not be used alone in Query Connects since they don't trigger a work function.

If the Select statement contains an attribute which can be used for connects, the query will be possible.

e.g. such a query will work:

SELECT ALERT '_alert_hdl.._act_state', '_alert_hdl.._ack_time' FROM '*.**' WHERE _DPT = "myDPType"

How to query DPs and DPGroups in one SQL statement?

To query data points and data point groups in one SQL statement, write the 'FROM' statement like this:

FROM '{<DP>,<DP2>,DPGROUP(_DpGroup00017_Public),DPGROUP(_DpGroup00016_Public)}'

Why is my stylesheet.css file not working correctly?

If you used a CSS editor/text editing program (Notepad is a well known "culprit" for this) that saves the file with a BOM (Byte Order Mark), WinCC OA can no longer apply that .css file correctly.

Please note: There is no log viewer message.

You can easily check if your file uses a BOM by validating it here: http://validator.w3.org/i18n-checker/check

Solution: Use a different editor (e.g. Notepad++) or disable the BOM option.

How to change System number and name of an existing project

Because only Systems with different names and numbers can be connected via dist, each system in WinCC OA needs to have a unique System name and number.

If Systems with should be connected which have the same numbers or names, one of the Systems need to be renamed and the number needs to be changed:

  1. Stop the project if it is running
  2. Run the command line tool WCCOAtoolSyncTypes.exe from bin folder of the WinCC OA installation with the following options:

    WCCOAtoolSyncTypes -system <new System number> <new System name> -proj <your project name>

    e.g. C:\Siemens\Automation\WinCC_OA\3.11\bin\ WCCOAtoolSyncTypes –system 3 dist_3 –proj myDistSystem3

Does the TLS Gateway run on Linux?

Yes, the TLS Gateway is available for all delivered WinCC OA platforms.

Is it possible to print a trend with legend?

After configuring a trend and viewing it in the trend panel there is the possibility to print this view. This can be triggered by using the "Print" button in the bottom bar of the panel.

If the user wants to print the panel with the legend there is also the "Legend" button in the bottom bar. This includes the legend of the currently configured datapoints of this trend on the top of the print.

How to show an alert message for ULC UX when the browser is not running on 100% zoom display?

When the browser is (accidentally) zoomed, panel design may not be displayed as planned in ULC UX. Add the following lines to [projectdirectory]\data\ulc\customer.js to show the user an info about it

$(document).ready(function()
{
  if(window.devicePixelRatio != 1)
  {
    alert("window zoom level is not 100%.");
  }
}
);

Can the standard port number of Webclient be changed manually ?

The used standard portnumber of the WinCC OA webclient can be changed by editing <Version_Dir>/scripts/webclient_http.ctl in the following way (and saving it into the <Project_Dir>/scripts):

Grep for the following statement...

httpServer(false, 80, 443);

...and change it to your needs

httpServer(false, <your used port number>, 443);

Use of WinCC OA in VMware vSphere cluster solutions

This FAQ is for information about the advantages and disadvantages about the usage of VMware vSphere clusters with WinCC OA.

There are 5 configuration options:

  1. VMware vSphere vMotion®
  2. VMware vSphere Storage vMotion
  3. VMware vSphere High Availability (HA)
  4. VMware vSphere Fault Tolerance (FT)
  5. vSphere Storage Appliance (VSA)

____________________________________

  • WinCC OA is already released for:

    Virtualization on vmWare

  • WinCC OA will be released for:

    Virtualization on vmWare Clusters (without special vSphere options)

  • WinCC OA evaluates the release for:

    vSphere High Availability virtualization on vmWare Clusters

  • WinCC OA will not be released (in near future) for:

    vSphere Fault Tolerant option (Nr. 4)

    vSphere vMotion option (Nr.1)

Note: Due to known issues with the 5th option is this one not supported by WinCC OA.

This table shows the advantages and disadvantages of a WinCC OA System in combination with a VMware vSphere cluster.

Functionality WinCC OAwith built in redundancy on dedicated servers VMware HAwithout built in WinCC OA redundancy WinCC OARedundant WinCC OA on vSphere HA cluster
Operability Seamless redundancy switch >15s Seamless redundancy switch
Data loss No data loss >15s No data loss
Connection loss to PLC Seamless redundancy switch >15s Seamless redundancy switch
Failover Supervises the status of both redundant servers and the rules for the switchover of the active system can be parameterized Cover faults caused by a total failure of a server both advantages available
Geographically distribution Yes Yes Yes
Availability High Availability High Availability High Availability
Setup and reinstallation of a destroyed server hardware ~4hours ~minutes ~minutes
Performance High Performance Performance degraded due to virtualization Performance degraded due to virtualization
Configuration High effort Lower effort Lower effort
Online Version Upgrade WinCC OA can be updated in split mode during system operation Offline update WinCC OA can be updated in split mode during system operation
IEC 61508 (SIL) certification Up to SIL 3 for use on non virtualized platforms Not available Not available

Can I run the web server that is used for communication for the Desktop UI on the same server as my project?

Although it is technically possible, we strongly recommend - for increased security - to use different machines for the server project and the webserver.