Applies to:
PcVue 16.3.4 onwards
Summary:
This article explains how to trigger a Data Export generation from a WebVue client and how to open the resulting file directly in the browser. It covers the Data Export configuration, the status variable with enumerated labels, the SCADA Basic scripts, the mimic setup, and the required IIS virtual directory configuration.
Details:

Overview

The workflow consists of two actions available from a WebVue mimic:

  1. Generate – triggers the Data Export engine to produce an Excel file.
  2. Open – opens the generated file directly in the WebVue browser tab.

status variable (GENERAL.EXPORTS.DIAGNOSTIC.STATUS) reflects the current state of the export in real time, using enumerated labels to display a human-readable status (e.g., IdleIn progressDoneError).


Prerequisites

  • Microsoft Excel installed on the local machine.
  • PcVue Web Server and PcVue Backend with Data Export on the same station.

Step 1 – Configure the Data Export

In PcVue Application Explorer > Data Analysis > Data Exports, create a new export named DIAGNOSTIC and configure it as follows:

SettingValue
Export nameDIAGNOSTIC
Output typeExcel (.xlsx)
Template fileDiagnostic.xlsx (in DataExportTemplates\)
Output file nameDiagnostic
Output folderDataExports\ (relative to the project root)
Behaviour if file existsOverwrite
Status variableGENERAL.EXPORTS.DIAGNOSTIC.STATUS

The output file will be written to the DataExports\ folder at the root of the project, for example:

C:\PcVue Projects\WebVueDataExport\DataExports\Diagnostic.xlsx

Step 2 – Add Enumerated Labels to the Status Variable

The Data Export engine writes a numeric code to the status variable to indicate the current export state. Adding enumerated labels to that variable makes the status readable at a glance in mimics with “Label display” animation.

image
image

Note: The exact numeric values and their meanings are documented in the Data Export section of the PcVue Reference Guide.


Step 3 – Write the SCADA Basic Scripts

The two actions are implemented as subroutines in the program PROGLOADED.SCB (located in the P\ folder of the project). This program is loaded at PcVue startup.

' PROGRAM : PROGLOADED.scb
' Loaded at start-up from the program INIT.scb

SUB GenerateExport()
  Export("GENERATE", "DIAGNOSTIC");
END SUB

SUB OpenExportFromWebVue()
  Webvue("HYPERLINK", "/DataExports/Diagnostic.xlsx", 1);
END SUB

GenerateExport()

Calls the Export() instruction with the GENERATE mode to trigger the production of the export named DIAGNOSTIC. The engine updates the status variable throughout the generation process.

OpenExportFromWebVue()

Calls the Webvue() instruction with the HYPERLINK mode to instruct the WebVue client to navigate to the URL /DataExports/Diagnostic.xlsx. The third parameter 1 opens the file in a new browser tab.

Note: The /DataExports/ path is a virtual directory configured in IIS – see Step 5.


Step 4 – Configure the Mimic

Open mimic Mimic 01 in PcVue. The mimic contains three objects:

4a – Status display (text object)

A text object shows the current value of the status variable using the Display animation linked to @GENERAL.EXPORTS.DIAGNOSTIC.STATUS. Thanks to the enumerated labels configured in Step 2, the label (e.g., Done) is displayed instead of the raw numeric value.

4b – “GENERATE” button

A push-button calls GenerateExport() on click via a Run Program animation:

Animation propertyValue
ProgramPROGLOADED.SCB
SubroutineGenerateExport

4c – “OPEN” button

A second push-button calls OpenExportFromWebVue() on click via a Run Program animation:

Animation propertyValue
ProgramPROGLOADED.SCB
SubroutineOpenExportFromWebVue

This button also has a Visible animation based on @System.LocalHost.Session.Type set to show the button only in WebVue sessions (session type = 100), hiding it in PcVue desktop sessions. This is intentional: the Webvue("HYPERLINK", ...) instruction only works in a WebVue context.

image
image

Step 5 – Configure the IIS Virtual Directory

The Webvue("HYPERLINK", "/DataExports/Diagnostic.xlsx", 1) instruction uses the path /DataExports/ relative to the WebVue web application root in IIS. By default, IIS does not know where to find this folder, so a virtual directory must be added.

Procedure

  1. Open IIS Manager (inetmgr).
  2. Expand the tree to locate the WebVue website.
  3. Right-click on it and select Add Virtual Directory…
  4. Fill in the dialog: FieldValue Alias as DataExports and Physical path as Full path to the DataExports\ folder of the PcVue project, e.g. C:\PcVue Projects\WebVueDataExport\DataExports
  5. Click OK.
image
image
image
image

Important: The IIS application pool user (or the IUSR account) must have Read permission on the DataExports\ folder so that IIS can serve the file.

After this configuration, the URL https://<webclient_binding>/DataExports/Diagnostic.xlsx will resolve to the physical file generated by PcVue.


End-to-End Workflow

Once everything is configured:

  1. The WebVue operator connects to the WebVue interface and navigates to Mimic 01 – Data Export.
  2. The operator clicks GENERATE. The GenerateExport() subroutine fires Export("GENERATE", "DIAGNOSTIC").
  3. The status label updates in real time: Idle → In progress → Done.
  4. When the status label shows Done, the operator clicks OPEN. The OpenExportFromWebVue() subroutine fires Webvue("HYPERLINK", "/DataExports/Diagnostic.xlsx", 1).
  5. The browser opens a new tab and downloads/displays Diagnostic.xlsx from the IIS virtual directory.

Sample Project

The sample PcVue project used in this article is available here:

WebVueDataExport.zip

Applies to:
PcVue 16.3.4 onwards
Summary:
This article explains how to use the `EXPORT_TREND` instruction with the `GETSTATISTIC` mode and the `COUNTER` statistical flag to compute energy consumption counters (active and reactive) over multiple time periods: current day, last day, current month, last month, current year, and last year. The result is written as a formatted string into two SCADA registers (`ACTIVE_ENERGY_TXT`, `REACTIVE_ENERGY_TXT`) that can be displayed directly in a synoptic.
Details:

Overview

The script is structured around a single common export launcher (DoExport) that is called by six period-specific sub-routines. Each sub-routine calculates the appropriate start/end timestamps for its period and invokes the common launcher.

Two trend variables are sampled per export:

Trend variableMeaning
@BUILDING.ACTIVE_ENERGYActive energy (kWh)
@BUILDING.REACTIVE_ENERGYReactive energy (kvarh)

The COUNTER statistical flag (value 128) is used so that Export_Trend returns the difference between the last and first recorded values within the requested period, automatically handling meter rollover. Here below is the home mimic of the sample project with current day consumption display:

image
image

Scheduling

Counters are refreshed by two complementary mechanisms declared in Sub Main():

Cyclic triggers — current-period counters

Prime-spaced intervals are used to prevent simultaneous execution of the three cyclic jobs:

PeriodInterval (s)Sub-routineTarget branch
Current day127Export_CurrentDayCountersBUILDING.CONSUMPTION.CURRENTDAY
Current month131Export_CurrentMonthCountersBUILDING.CONSUMPTION.CURRENTMONTH
Current year137Export_CurrentYearCountersBUILDING.CONSUMPTION.CURRENTYEAR

Crontab triggers — closed-period counters

These fire once per period boundary to capture the definitive counter value:

PeriodScheduleSub-routineTarget branch
Last dayEvery day at 00:01Export_LastDayCountersBUILDING.CONSUMPTION.LASTDAY
Last month1st of month at 00:02Export_LastMonthCountersBUILDING.CONSUMPTION.LASTMONTH
Last year1st of month at 00:03Export_LastYearCountersBUILDING.CONSUMPTION.LASTYEAR

Note on offsets: The one- to three-minute offsets ensure that archiving of the last timestamp has completed before the export is triggered.


Period-Timestamp Calculation

All timestamps are expressed in milliseconds since 01/01/1980, as required by Export_Trend.

PeriodStartEnd
Current dayDateTimeValue(DAY, MONTH, YEAR, 0, 0, 0)DateTimeValue() (now)
Last dayYesterday at 00:00:00Yesterday at 23:59:59
Current monthDateTimeValue(1, MONTH, YEAR, 0, 0, 0)DateTimeValue() (now)
Last month1st of previous month at 00:00:00Last day of previous month at 23:59:59
Current yearDateTimeValue(1, 1, YEAR, 0, 0, 0)DateTimeValue() (now)
Last yearDateTimeValue(1, 1, YEAR-1, 0, 0, 0)DateTimeValue(31, 12, YEAR-1, 23, 59, 59)

Previous-month bounds are computed by GetPreviousMonthBounds: subtracting 1 ms from the first instant of the current month always lands on the last instant of the previous month, giving the correct day, month, and year without any calendar arithmetic.


Export Flow

Period sub-routine
      │
      └─► DoExport(dStart, dEnd, sPeriod)
               │
               ├── g_sPeriod = sPeriod          ← store branth tag for the callback
               ├── Event("ADDPROG", "@EXPORT.STATUS", …, sPeriod, "Get_Counters")
               ├── Export_Trend("GETSTATISTIC", …, COUNTER)
               └── CheckExportReturn(iResult)
                         │
              ┌──────────┘ (async – on @EXPORT.STATUS change)
              │
              └─► Get_Counters()
                       │
                       ├── status 0 / 4 / 5 → read buffer, write registers, DISPOSE
                       ├── status 1          → still running, do nothing
                       └── other             → log error, CANCEL + DISPOSE

The completion event (@EXPORT.STATUS) is registered before Export_Trend is called to avoid a race condition where the export completes synchronously before the event listener is armed.


Buffer Reading — Get_Counters

Export_Trend("READBUFFER", …) returns a block structured as:

Line 0  — variable names  (skipped)
Line 1  — descriptions    (skipped)
Line 2  — data row:  <Counter> ; <active_energy> ; <reactive_energy>

Seq_Buffer with "\n" separator iterates lines; with ";" separator it iterates fields within a line. The Counter column (field 0) is discarded; fields 1 and 2 are read as DOUBLE and rounded before formatting.


Output Formatting — FormatWithSpaces

Raw integer values are converted to strings and a space character is inserted every three digits from the right (e.g., 1254300 → "1 254 300"). This is done with a single forward pass:

  • Convert the number to a string with TOC().
  • For each character at position i (1-based), insert a space when (len − i) MOD 3 == 2 and i > 1.

Values of three digits or fewer are returned unchanged.


Error Handling — CheckExportReturn

If Export_Trend returns a non-zero value immediately (synchronous error), CheckExportReturn prints a human-readable description of every documented error code (−1 through −30) and calls CANCEL + DISPOSE to release the internal request object.


Debug Mode

Set Const DEBUG = 1 at the top of the script to enable Print trace output in the SCADABasic log. Set back to 0 in production.


Required Configuration

ItemRequirement
Trend recording@BUILDING.ACTIVE_ENERGY and @BUILDING.REACTIVE_ENERGY must be configured for trend recording in PcVue.
Data Export licenceThe Data Export module must be licensed in the PcVue protection key. Without it, Export_Trend runs in demonstration mode only.
Output variablesACTIVE_ENERGY_TXT and REACTIVE_ENERGY_TXT must exist as text variables in the application.
Status register@EXPORT.STATUS must exist as a register in the application.
UnitThe UnitName parameter is set to PROP_UNIT01; adjust to match your project’s unit name.

Attached Files

PowerCalcs.SCB

SampleProject.zip

Applies to:
PcVue 16.3 onwards
Summary:
IEC 60870-5-104 (IEC104) brings standard TCP/IP communication to SCADA for power and utility systems, but it can feel unfamiliar if you’ve mostly used Modbus or OPC. With PcVue, establishing an IEC104 link is fast and straightforward. This guide shows how to go from zero to a Connected state in minutes, using the exact PcVue UI steps you’ll find in the Application Explorer
Details:

What is IEC104 and why use it?

IEC104 is the TCP/IP variant of the IEC 60870-5 family and is widely used in electric utilities and grid automation for real-time telecontrol. It’s designed for secure, structured transfer of time-tagged measurements, commands, and status information between control centers and field equipment.

For engineers, IEC104 offers:

Native TCP connectivity for WAN, fiber, and routed networks
Standardized ASDU/IOA addressing for predictable mapping
Strong support for time tagging, commands, and reporting
PcVue supports IEC104 natively, letting you connect, verify, and map data without dealing with low-level protocol complexity.

Setting Up Your IEC104 Device in PcVue

Step 1 – Gather Your Device Information

Before opening PcVue, collect a few essential parameters from your device. These are usually all you need for a successful connection:

ParameterExampleDescription
IP Address192.168.1.10The IP address of your IEC104 device
Port2404Default TCP port for IEC104 communication
ASDU (Common) Address1The ASDU/CA assigned to the outstation

💡 Tip: These values are usually in the device’s communications menu or vendor manual. 

PcVue connected to an IEC104 device on port 2404 and ASDU common address 1

Step 2 – Create an IEC104 Network

In PcVue, communication is organized using Network objects. Networks group IEC60870-5 devices and define the communication context, which is especially helpful when you have multiple stations or distributed architectures.

To add an IEC60870-5 Network:

  1. Open the Application Explorer.
  2. Expand Communication → Data acquisition → IEC 60870-5.
  3. Click the Add a Network button and give the new network a clear name (for example, “IEC104_Network”).
  4. Keep default settings unless you’re implementing multi-station setups.

The Network is your communication backbone — once created, add IEC104 Device objects underneath it. If you only run a single PcVue station, no extra configuration in the Network is normally required.

Add an IEC 60870-5 network on PcVue Application Explorer

Step 3 – Configure the IEC104 Device

Once your Network is created, the next step is to add the actual IEC 104 device — this represents your field equipment.

  1. In the Application Explorer, navigate into the newly created IEC104 Network.
  2. Click the Add an IEC 104 device button.
  3. In the General tab:
    Enter the device’s IP Address.
  4. In the Advanced tab:
    Confirm the Port number (default: 2404).
General and advanced properties of an IEC 104 device

With this information PcVue will automatically attempt to connect to the device. If the parameters are correct, the device State should switch to Connected within seconds.

💡 Tip: At this stage, you don’t need to map any variables — seeing “Connected” confirms the TCP session.

IEC device status on Application Explorer

Step 4 – Add a Sector (required to see data)

A connected device gives you network-level communication, but PcVue needs a Sector to interpret and browse IEC104 data. You can think of it as the layer that tells PcVue which ASDU (Common Address) to associate with that device’s application data.

To add a Sector:

  1. In the Application Explorer, navigate into the newly created IEC104 Device.
  2. Click Add a Sector.
  3. In the Sector dialog, enter the device’s Common Address of ASDU (required).
IEC 104 Sector creation

Once the Sector is present and the ASDU is correct, mapping and browsing will show meaningful IEC104 objects (IOAs) in the Mapping window.

Step 5 – Verify and Troubleshoot Communication

Once your IEC104 Device is configured, PcVue will automatically try to connect.
If the setup is correct, you’ll see the State column display “Connected.”
If it shows “Disconnected,” here are a few quick ways to check what’s going on:

Ping the device:

Right-click the IEC104 Device in the Application Explorer.

Select “Ping XXX.XXX.XXX.XXX” to verify that the device is reachable
If the ping fails, check your network cabling, firewall, or IP configuration.

Ping the device directly from Application Explorer

View the Traces tab:

Open the Traces tab in the Device configuration.

Enable traces to generate detailed communication logs in the Event Viewer.
This helps identify connection issues such as mismatched link addresses or unreachable ports.

Device Traces tab on properties

Usually, if the parameters in the General and Advanced tabs are correct, you’ll get a Connected state within seconds.
No further setup or variable mapping is required to confirm that your IEC104 communication is working.

Step 6 – Explore Your Data with Mapping

Once your device shows Connected, you’ve successfully established communication — congratulations!
The next step is to start visualizing or using your field data inside PcVue.

PcVue provides an intuitive Mapping tool to make this process simple.
In the Application Explorer, select the IEC104 Network you created (or right-click on it), and choose Mapping.
This opens a browser window where you can explore the objects available in your IEC104 device — such as digital inputs, analog values, or counters — and link them directly to variables in your PcVue project. 

You can:

Map to new variables automatically created from the device’s structure.
Link to existing variables already configured in your application.
Filter or browse by object type to find exactly what you need.
Once mapped, these variables can be displayed in mimic diagrams, logged, or used in alarms — just like any other PcVue variable.

💡 Tip: You don’t need to complete this step to confirm your connection. Mapping simply allows you to take the next step: transforming raw data into actionable SCADA information.

IEC mapping dialog box

Why PcVue Makes IEC104 Integration Simple

PcVue reduces the friction of IEC104 commissioning by combining a clear UI model (Network → Device → Sector → Mapping) with sensible defaults and built-in diagnostics:

Native IEC104 driver — no middleware required.
Minimal mandatory fields — IP, Port (Device), and ASDU (Sector).
Quick diagnostics — Ping, State, and Traces help isolate issues fast.
Scalable workflow — from one device in a lab to multiple devices across substations.

“With PcVue, IEC104 setup becomes as simple as entering an IP address and an ASDU.”

Discover PcVue’s full portfolio of communication drivers and supported protocols.  

Conclusion

IEC104 gives you a standardized path to integrate field equipment over TCP/IP. With PcVue’s Network/Device/Sector model, only a few values are required to establish a working link and start mapping data. Start with one device, confirm Connected, add a Sector, and map the points you need.


Applies to:
PcVue 16.3 onwards
Summary:
DNP3 is one of the most reliable communication protocols in the utility and power world, but for many engineers, it also sounds complex. Setting up a DNP3 connection can feel like diving into configuration files and network parameters. With PcVue, it doesn’t have to be that way. In this quick guide, we’ll show how to connect your DNP3 device to PcVue in just five minutes and start reading live data without the headaches.
Details:

Understanding DNP3: The Reliable Language of Utilities

DNP3 (Distributed Network Protocol) is a robust and secure protocol used primarily in power, water, and critical infrastructure to exchange data between remote devices and SCADA systems. It’s designed for reliability, time-stamped events, and operation over unreliable networks, key features for distributed systems.

In simple terms, DNP3 allows your SCADA to talk to remote devices like RTUs, relays, and IEDs with high accuracy and resilience, even in tough conditions.
The only challenge? DNP3 setup can seem intimidating for newcomers. That’s where PcVue’s native DNP3 driver makes life easy, so you can focus on your process, not protocol syntax.


Setting Up Your DNP3 Device in PcVue

Step 1 – Gather Your Device Information

Before starting PcVue, note a few essential parameters from your device. These are usually all you need for a successful connection:

ParameterExampleDescription
IP Address192.168.1.10The IP address of your DNP3 device
Port20000Default TCP port for DNP3 communication.
Link Address1The link-layer address of your DNP3 device.
Local Link Address0The link-layer address used by PcVue (the client/master).

💡 Tip: These are typically available in the device’s communication menu or technical datasheet.

PcVue local link address 0 connected to DNP3 device on port 20000 with link address 1
image

Step 2 – Create a DNP3 Network

In PcVue, communication is organized using Network objects. Networks group DNP3 devices and define the communication context, which is especially helpful when you have multiple stations or distributed architectures.

To add a DNP3 Network:

  1. Open the Application Explorer.
  2. Expand Communication → Data acquisition → DNP3.
  3. Click the Add a Network button and give the new network a clear name (for example, “DNP3_Network”).
  4. Keep default settings unless you’re implementing multistation setups.

The Network is your communication backbone — once created, add DNP3 Device objects underneath it. If you only run a single PcVue station, no extra configuration in the Network is normally required.

Add a network in Application Explorer of PcVue
image

Step 3 – Configure the DNP3 Device

Once your Network is created, the next step is to add the actual DNP3 Device — this represents your field equipment.

  1. In the Application Explorer, navigate into the newly created DNP3 Network.
  2. Click the Add a Device button.
  3. In the General tab:
    • Enter the device’s IP Address.
    • Enter the Link Address (the address of the remote DNP3 device).
  4. In the Advanced tab:
    • Confirm the Port number (default: 20000).
    • Set the Local Link Address (the address used by PcVue as the DNP3 client/master).

Once you’ve entered these parameters, save your configuration.
If everything is correct, PcVue will automatically attempt to connect. Within seconds, you should see the state change to “Connected” in the State column.

DNP3 general and advanced properties
image

💡 Tip: At this stage, you don’t need to map any variables — seeing “Connected” confirms your communication setup is working.

DNP3 device status on Application Explorer
image

Step 4 – Verify and Troubleshoot Communication

Once your DNP3 Device is configured, PcVue will automatically try to connect.
If the setup is correct, you’ll see the State column display “Connected.”
If it shows “Disconnected,” here are a few quick ways to check what’s going on:

  1. Ping the device:
    • Right-click the DNP3 Device in the Application Explorer.
    • Select “Ping XXX.XXX.XXX.XXX” to verify that the device responds on the configured IP address.
      If the ping fails, check your network cabling, firewall, or IP configuration.
  2. View the Traces tab:
    • Open the Traces tab in the Device configuration.
    • Enable traces to generate detailed communication logs in the Event Viewer.
      This helps identify connection issues such as mismatched link addresses or unreachable ports.

Usually, if the parameters in the General and Advanced tabs are correct, you’ll get a Connected state within seconds.
No further setup or variable mapping is required to confirm that your DNP3 communication is working.

Possibility to ping a DNP3 device directly from Application Explorer
image
Traces tab of DNP3 device
image

Step 5 – Explore Your Data with Mapping

Once your device shows Connected, you’ve successfully established communication — congratulations!
The next step is to start visualizing or using your field data inside PcVue.

PcVue provides an intuitive Mapping tool to make this process simple.
In the Application Explorer, select the DNP3 Network you created (or right-click on it), and choose Mapping.
This opens a browser window where you can explore the objects available in your DNP3 device — such as digital inputs, analog values, or counters — and link them directly to variables in your PcVue project.

You can:

  • Map to new variables automatically created from the device’s structure.
  • Link to existing variables already configured in your application.
  • Filter or browse by object type to find exactly what you need.

Once mapped, these variables can be displayed in mimic diagrams, logged, or used in alarms — just like any other PcVue variable.

💡 Tip: You don’t need to complete this step to confirm your connection. Mapping simply allows you to take the next step: transforming raw data into actionable SCADA information.

DNP3 mapping dialog box
image

Why PcVue Makes DNP3 Integration Simple

Many SCADA systems require long configuration cycles or external tools to bring a DNP3 device online. PcVue reduces that complexity by design. Here’s how:

  • Native DNP3 over TCP: Fully integrated and ready to use — no add-ons or middleware needed.
  • Smart Defaults: Standard parameters like port 20000 and retry logic are preconfigured for quick tests.
  • Built-In Diagnostics: Real-time connection status helps you confirm communication instantly.
  • Scalable Architecture: From a single test bench to full utility networks, PcVue keeps your configuration consistent and expandable.

“With PcVue, DNP3 configuration takes minutes, not hours. It’s plug, configure, and go.”

Learn more about PcVue’s communication drivers and protocol suite.


Conclusion

DNP3 is a powerful and reliable protocol — and with PcVue, it’s also simple.
In just a few minutes, you can go from zero to live data, integrating complex field devices into a modern SCADA system with minimal setup.

Start small, connect fast, and scale confidently — with PcVue.


Watch our step-by-step guide through the configuration process –> https://youtu.be/Uxg2695EKJY?si=WjSwFD3HBfp-3Cfv


Applies to:
PcVue 16.3.4, PcVue 15.2.13, PcVue 12.0.32
Summary:
Security features have been implemented in versions 16.3.4, 15.2.13 and 12.0.32 to protect PcVue networking messages. You will find a description of the features and how to apply them.
Details:

The discovery of vulnerabilities in the PcVue client/server networking feature resulted in major fixes (see the security bulletin SB2025-4).
These fixes include the addition of security features to ensure the confidentiality and integrity of the messages exchanged between PcVue stations.

These security features are enabled by default only for new projects but not for migrated project (e.g. from version 16.2 to 16.3.4).
To apply them please follow the steps described below :

  1. Open the Application Explorer
  2. Go to the Networking feature
  3. Open the Settings dialog from the left panel
  4. In the Interoperability issues section uncheck the following options :
    • Allow any node addresses
    • Allow stations with altered security
  5. Save and deploy the modified project to all stations
Networking Security settings

If these settings are not the same at each station, they can’t communicate with each other. This situation will persist until the stations are configured in the same way.

During this transient stage, the following warnings are logged and displayed in the event viewer :

2025/09/01,10:37:27.760,3,D,,3388,,11,Networking message version of station SERVER1 = 163000
2025/09/01,10:37:27.760,3,W,,3712,,11, Networking, the version ‘163000’ of the remote station ‘SERVER1’ is not compatible due to security constraints
2025/09/01,10:37:27.760,3,W,,3072,,11,Client->server connection CLIENT10C -> SERVER10S is aborted


2025/09/01,10:37:46.228,3,I,,3070,,11,Server->client connection CLIENT10S -> SERVER10C is OK
2025/09/01,10:37:46.230,3,W,,3716,,11,Networking, connection CLIENT10S -> SERVER10C is not secure, the remote node ‘DATASERVER10’ must not alter the security or the local node must allow it
2025/09/01,10:37:46.230,3,W,,3142,,11,Server->client connection CLIENT10S -> SERVER10C is rejected

We strongly recommend applying the security features as soon as possible to avoid exposing the SCADA system to the discovered vulnerabilities.

The ‘Allow stations with altered security‘ option has been implemented to disable the security feature when a migration is to be carried out in several stages over a period of time.
The ‘Allow any node addresses‘ option has been implemented to disable a whitelist filter controlling which IP addresses are authorised to connect to the station.
This whitelist is defined by the Networking configuration.

Please contact your technical support if you have any question regarding these security features.

Applies to:
PcVue 8.10 onwards
Summary:
This article aims to highlight the importance of minimizing errors in PcVue’s Event viewer and Trace.log files. Large Trace.log files can be difficult to manage and analyze, especially when they are filled with minor errors. By reducing these errors, users can improve system performance and make it easier to identify and resolve serious issues.
Details:
Introduction to Trace.log and Event viewer
  • The Event viewer in PcVue is limited to displaying a few hundred lines of errors. You can call it by pressing F7 on the keyboard.
  • The Trace.log file can grow up to 10MB, making it difficult to handle with standard text editors.
  • Sorting through many minor errors to find important problems can be difficult.
Importance of Minimizing Errors
  • Large Trace.log files can slow down system performance and make error analysis too complex.
  • Reducing minor errors can help in identifying and resolving more serious issues efficiently.
  • Unnecessary errors can create noise, making it harder to focus on critical problems.
Steps to Minimize Errors
  • Regular Monitoring and Maintenance: Implement continuous monitoring of system variables and adjust archiving parameters accordingly.
  • Resolve Minor Errors: Addressing minor errors can sometimes resolve more serious issues, improving overall system health.
  • Limit HDS Traces: Configure tracing parameters to limit continuous insertions, especially for files. Disable non-essential Audit traces.
    • Navigate to the HDS icon in the Windows bar.
    • Open “General parameters…” in the “Debug” menu.
    • Validate with only essential options ticked (e.g., Error, Warning).
    • More information on HDS here.
Best Practices
  • Regularly review and clean up the Event viewer and Trace.log files.
  • Configure the scripts to only log significant changes or errors.
  • Schedule regular maintenance tasks to prevent the accumulation of errors.
Meaning of error code
image
image

I     Infomation 

Generally useful information to log (service start/stop, project loading,  user logon, license number, …). Info that are important in the lifecycle  of the application/project, but that are usually not useful under normal  circumstances. 

E     Error 

Any error that is fatal to the project, but not to the application  (communication loss with equipment, license expiration, …). These errors will force user (administrator, or direct user) intervention. 

W     Warning 

Anything that can potentially cause application and/or project oddities, but for which they can automatically recover (such as switching from a  primary to passive server, retrying an operation, incorrect setting, …). 

D     Debug 

Information that is diagnostically helpful to people more than just developers  (integrators, IT, sysadmins, etc.). 

T     Trace 

Only for “tracing” the code and to track specific details in one part of a function. They should be activated on demand and per component, as they can be very verbose. 

A     Application 

Error generated by the project. (Configuration error) 

F     Fatal 

Any error that is forcing a shutdown of the application to prevent data loss (or further data loss), or due to application instability (null pointer, …). 

How to fix errors
An image showing PcVue's event viewer with a warning about a client -> server connection abort, message number 3072.

Search for a Warning or an Error you want to fix, W or E in the event viewer or Trace.log file.

Then do a research in our knowledge base of either the message (connection abort) or the code for this message (3072).

The advantage of searching for the message code is that it does not change depending on the display language of PcVue.

Applies to:
PcVue 12 onwards
Summary:
This article explains how to configure Windows Server to correctly display Non-Latin characters (e.g., Chinese) in PcVue projects, especially when using bilingual projects involving East-Asian languages.
Details:

Prerequisites

  • Images are from Windows Server 2019
  • PcVue installed
  • Administrative access to the server

Step-by-Step Configuration

1. Add and Set the Default App Language
  • Open Settings > Time & Language > Language.
  • Under Preferred languages, click Add a language and select the desired No-Latin language (e.g., Chinese (Simplified, China)).
  • Set the newly added language as the default app language by dragging it to the top of the list.

Example: Chinese set as the default app language in Windows Server 2019.

image

2. Change Region Settings for Non-Unicode Programs
  • Open Settings > Time & Language > Region.
  • Go to the Administrative tab.
  • Under Language for non-Unicode programs, click Change system locale….
  • Select the appropriate language (e.g., Chinese (Simplified, China)) and confirm with OK.

Example: System locale set to Chinese (Simplified, China).

image

3. Update Region Format Settings
  • In the Region settings, go to the Formats tab.
  • Set the Format to match the No-Latin language (e.g., Chinese (Simplified, China)).
  • Ensure date, time, and number formats are consistent with the selected language.

Example: Region format set to Chinese (Simplified, China).

image

Important Notes

  • Restart Required: After applying these changes, restart the server for the settings to take full effect.
  • PcVue Controls: If the region format is not updated, Non-Latin characters may not display correctly in PcVue controls (e.g., event viewer, combobox).
Applies to:
PcVue 16 onwards
Summary:
Learn how ACLs (Access Control Lists) work with PcVue, and why they matter for securing your projects—even if you’re not a system admin. This guide breaks down the basics and shows you how to manage permissions like a pro.
Details:

1. What Are ACLs?

  • Simple Explanation: ACLs (Access Control Lists) are like “permission rules” for your files and folders. They decide who can read, edit, or delete them.
  • Analogy: Think of ACLs as a “guest list” for a party. Only people on the list (or with the right “key”) can enter certain rooms (files/folders).

2. Why Do ACLs Matter in PcVue?

  • Security: ACLs help protect your PcVue projects from unauthorized changes.
  • Collaboration: They let you share projects with colleagues while controlling what each person can do.
  • Example: If you’re working on a PcVue mimic, you might want your team to view it but not modify it.

3. How ACLs Work in Windows

Operating systems Windows 10, Windows Server 2016 and later provides powerful command-line tools that simplify the process of managing file and folder permissions. These tools are especially useful for scripting tasks, allowing administrators to automate the setting, modification, and backup of access control lists (ACLs) efficiently.

  • icacls displays or modifies discretionary access control lists (DACLs) on specified files and applies stored DACLs to files in specified directories.
  • takeown enables an administrator to recover access to a file that previously was denied, by making the administrator the owner of the file. This command is typically used on batch files.

Guide with examples for these two commands: Using the Icacls Command in Windows: A Complete Guide with Examples

PowerShell equivalents to these commands: Get-Acl and Set-Acl

Trick for finding out the owner of directories or files: use the dir command with the /Q flag

While these tools are usually for admins, understanding the basics helps everyone.

  • Save ACLs Command
icacls "D:\PcVue Projects" /save "D:\AclFile.txt" /T
  • This command saves a folder ACLs to a file. No need to have elevated priviledges to do that.
  • Grant ACLs command (for context, not for users to run!)
icacls "D:\PcVue Projects" /grant:r "MACHINE\Username":(OI)(CI)(RX,D) /T /C
  • This command gives (to a specific user) read access to the folder “D:\PcVue Projects” and all files/directories below it.
  • Restore ACLs command
icacls "D:" /restore "D:\AclFile.txt" /T
  • This command restores a folder ACLs from a file. Administrator priviledges are required to do that. The command must point to the parent folder (here “D:”).

4. PcVue and ACLs

Below are some examples of ACLs on PcVue installation folders retrieved using the icacls and dir commands.

Examples of ACLs on PcVue installation folders

Running context

Windows Server 2022 was used to run the following commands.


Command

icacls "C:\ARC Informatique\PcVue 16"

Output

NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(AD)
BUILTIN\Users:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)

Remarks

  • This command was executed before an administrator made changes to the folder’s access control lists (ACLs).

Command

icacls "C:\Program Files"

Output

NT SERVICE\TrustedInstaller:(F)
NT SERVICE\TrustedInstaller:(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(M)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)

Command

icacls "C:\Program Files\ARC Informatique\PcVue 17"

Output

NT SERVICE\TrustedInstaller:(I)(F)
NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(I)(OI)(CI)(IO)(GR,GE)

Command

icacls "C:\ProgramData"

Output

NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
CREATOR OWNER:(OI)(CI)(IO)(F)
BUILTIN\Users:(OI)(CI)(RX)
BUILTIN\Users:(CI)(WD,AD,WEA,WA)

Command

icacls "C:\ProgramData\ARC Informatique\PcVue 17"

Output

NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(WD,AD,WEA,WA)

Remarks

  • This command was executed before the administrator made changes to the folder’s access control lists (ACLs).

Command

dir "C:\ARC Informatique\PcVue 16" /AD /Q

Output

NT AUTHORITY\SYSTEM    .
NT AUTHORITY\SYSTEM    ..
NT AUTHORITY\SYSTEM    Bin
NT AUTHORITY\SYSTEM    Development kits
NT AUTHORITY\SYSTEM    Documentation
NT AUTHORITY\SYSTEM    Etc
NT AUTHORITY\SYSTEM    Lib
NT AUTHORITY\SYSTEM    Usr

Remarks

  • This command was executed immediately after installing PcVue 16, before starting the sv32 application.

Command

dir "C:\Program Files\ARC Informatique\PcVue 17" /AD /Q

Output

NT AUTHORITY\SYSTEM    .
NT AUTHORITY\SYSTEM    ..
NT AUTHORITY\SYSTEM    bin
NT AUTHORITY\SYSTEM    config
NT AUTHORITY\SYSTEM    doc
NT AUTHORITY\SYSTEM    ext

Command

dir "C:\ProgramData\ARC Informatique\PcVue 17" /AD /Q

Output

NT AUTHORITY\SYSTEM    .
NT AUTHORITY\SYSTEM    ..
NT AUTHORITY\SYSTEM    devkits
NT AUTHORITY\SYSTEM    etc
NT AUTHORITY\SYSTEM    lib
NT AUTHORITY\SYSTEM    logs
NT AUTHORITY\SYSTEM    usr

Remarks

  • This command was executed immediately after installing PcVue 17, before starting the sv32 application.

Command

dir "C:\ProgramData\ARC Informatique\PcVue 17" /AD /Q

Output

NT AUTHORITY\SYSTEM    .
NT AUTHORITY\SYSTEM    ..
USER-MACHINE-ID\Dev    bmp
USER-MACHINE-ID\Dev    databases
NT AUTHORITY\SYSTEM    devkits
USER-MACHINE-ID\Dev    dumps
NT AUTHORITY\SYSTEM    etc
USER-MACHINE-ID\Dev    gis
NT AUTHORITY\SYSTEM    lib
NT AUTHORITY\SYSTEM    logs
USER-MACHINE-ID\Dev    pki
USER-MACHINE-ID\Dev    prg
USER-MACHINE-ID\Dev    scr
USER-MACHINE-ID\Dev    sym
USER-MACHINE-ID\Dev    tmp
NT AUTHORITY\SYSTEM    usr
USER-MACHINE-ID\Dev    win
USER-MACHINE-ID\Dev    wtp

Remarks

  • This command was executed immediately after running the sv32 application for the first time.
  • The interactive user at runtime was USER-MACHINE-ID\Dev.
Applies to:
PcVue 7 to PcVue 15
Summary:
This article describes how to resolve compatibility issues with the Microsoft® ActiveX web browser by configuring the Windows Registry to use a more recent browser engine.
Details:

Context

On versions of PcVue prior to 16, there was no native browser (Web Browser Control). Instead, it was possible to use a browser via ActiveX.

However, when using this browser, error messages may appear when loading web pages, indicating compatibility issues. By default, ActiveX uses the Internet Explorer 7 web engine, which is obsolete and does not support modern website features.

For example, you might encounter the message: ‘Webvisu not supported due to missing browser feature HTML5-Canvas’.

Solution

To resolve this issue, you can force ActiveX to use the Internet Explorer 11 web engine, which is more recent. Here is how to proceed:

Note: Ensure you have administrator rights on your machine to make these changes.

1. Open the Registry Editor: Type regedit in the Windows search bar and press Enter

2. In the Registry Editor, navigate to the following path: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

3. Right-click in the right-hand pane, select New, then DWORD (32-bit) Value.

4. Name it sv32.exe, double-click on it, and assign it the value 11001 (select Decimal).
The value 11001 (in decimal) on these registry keys forces ActiveX to use the IE11 engine instead of the obsolete IE7 engine.

5. Now, navigate to this second key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

6. Reproduce exactly the same steps to create a DWORD sv32.exe with the value 11001.

You can activate the silent mode on the properties of the Microsoft® ActiveX control browser to avoid error messages :


Conclusion

Restart your PcVue project. By following these steps, you should be able to resolve the compatibility issues with the Microsoft® ActiveX browser.

Note

If you set the DWORD registry key to 0, it will select the latest Microsoft® browser available on the PC.

Applies to:
PcVue 16.0 onwards
Summary:
This article explains a change in the behavior of the “Bit Send” animation when configured in “Pulse” mode with a duration set to 0 seconds. This change primarily affects projects migrated from PcVue 15 (or earlier) to PcVue 16 or higher.
Details:

Context

When migrating a project from PcVue 15 to 16, you may encounter issues where commands or switches using the “Bit Send” animation no longer work as expected. This occurs specifically under the following configuration:

  • Animation Type: Bit send
  • Mode: Pulse checked
  • Duration: 0 seconds
Pasted image 20251211143233

Analysis & Root Cause

The interpretation of a “0-second pulse” has been updated in PcVue 16 to improve logical consistency.

  • In PcVue 15: A 0-second pulse was treated as a Direct Activation, functioning like a standard switch and maintaining the value.
  • In PcVue 16: A 0-second pulse is now interpreted literally as an instantaneous pulse. As a result, the value may not be held long enough to trigger the expected state change in the connected device or variable.

Solution

Choose the appropriate solution based on the desired behavior for your equipment:

Case 1: Direct state change

If the control was intended to toggle a state (e.g., turn a valve ON/OFF) and maintain it, the “Pulse” setting is no longer suitable.

  1. Open the symbol or mimic containing the control.
  2. Open the properties of the Bit Send animation.
  3. Uncheck the “Pulse” (Impulsionnel) option.
  4. Save the symbol.

This restores the behavior observed in V15, where the switch toggles the state.

Case 2: Momentary signal (True Pulse)

If the PLC or device actually requires a rising edge or a temporary signal:

  1. Open the properties of the “Bit Send” animation.
  2. Keep “Pulse” checked.
  3. Set the duration to a valid time (e.g., 1 second or more).

Note: The value will automatically return to its initial state (0) after the specified duration.

Applies to:
PcVue 12.0.31, PcVue 15.2.12, PcVue 16.3.1, PcVue 16.3.2
Summary:
This is a known issue discovered thanks to SPR #76112 in version 16.3.2

Fix planned in 12.0.32, 15.2.13 and 16.3.3

Details:

If the security fix described in security bulletin SB2025-4 is enabled, networking packets can be falsely detected as malformed, causing a server station to force a disconnection. This issue leads to a situation where a client station may not be able to stay connected to a server station in a stable way.
Recommendation:

The issue does not manifest itself if the recent hardened connection mechanism is disabled. To disable this mechanism, the security alteration setting named ‘Networking.Allow security altering configuration options’ must be checked and the property ‘Allow stations with altered security’ on Nodes must be set to Yes.

Applies to:
PcVue 16.3.0, PcVue 16.3.1, PcVue 16.3.2
Summary:
This is a known issue discovered thanks to SPR #76089 and 75445 in version 16.3.2

Fix planned in 16.3.3

Details:

Since 16.3.0, BACnet COV re-subscriptions are not handled correctly, leading to a situation where BACnet variables are no longer monitored nor refreshed. Because the issue is related to re-subscription, it becomes obvious only after some time, once a re-subscription is necessary (typically 1 hour).
Recommendation:

A workaround exists. The issue does not exist in the legacy COV implementation. While it is no longer the default, it can be re-activated by adding the following key in the Etc\experimental.ini file:

[BACnetStackCov]

Enabled=1