Filter FAQs:

Universal Driver Interface

Do I need to split up my projects between a Hosting App and a Driver? Can I combine them?
Creating a separate Driver and Hosting App is not required, but doing so gives you the greatest deployment flexibility. By developing a separate Driver assembly, you can reference it from different project types on different platforms, especially if you target either .NET Standard 2.0. Then you can just create a specific simple Hosting App for each deployment scenario without recompiling your driver. If you only have a single deployment target in mind, you can collapse these two projects into a single Hosting App that contains both the Driver code and the runtime host functionality, whether that be a Console Application, Windows Service, etc.
Which version of .NET should my Driver Library target? .NET Framework? .NET Core? .NET Standard?
Choosing the target framework depends on your chosen deployment platform and other required assembly references.
  • If your platform is Windows and you're required to support the full .NET Framework 4.0 or 4.5, your Driver assembly must target the full .NET Framework. Typically this will be .NET 4.0 for wider compatibility.
  • If you choose to deploy the Driver to Linux or other platforms, or if you want to create a Driver assembly that can be used on all platforms including Windows with .NET Framework 4.6.1+, then target the .NET Standard 2.0.
  • However, if you are required to use a 3rd party assembly for interaction with a data source or API, the target framework will be dependent upon the framework that this assembly supports, and may determine other limitations in deployment.
Which Operating Systems or platforms does the Universal Driver Interface support?
Using the .NET Standard 2.0 specification, and .NET Core, you can build communications drivers for OAS that run on Windows, Linux, Mac, Android, and iOS. You can even deploy a driver to run on a Raspberry Pi running the Raspbian OS. Read more about UDI Platform Support for specific OS versions and requirements.

OPC

How to browse remote Classic OPC Servers by IP Address?

Use the Configure-Options-Networking in the Configure OAS application to define a list of IP addresses in the Network Nodes field as shown in Networking OPC Data.

I am unable to browse and OPC Server or get good data quality for the OPC Items?

View the OPC Communications - Troubleshooting section in this file on how to resolve all OPC Server communication errors.

REST API

How do I troubleshoot REST API calls?

If there are errors executing a REST API call, you can check the OAS Configuration app, click on the triangle icon (should be flashing of there's an error) and you'll see system errors.

Locate the REST API and expand it out and you should see the failed calls. But it often won't give you the detailed HTTP request/response and just contain the failed URL that was attempted. It's a good way to see if people are hitting incorrect endpoints.

If you use Postman to execute REST API calls, you can see the proper URLs, headers, body contents, etc. for making proper calls.

If you ever get these response or codes, this is what they mean:
401: Unauthorized - you have not included the clientid and token fields in the request header, or the session has expired
500: Unknown server error - this may be something we need to investigate since the data was submitted properly but an error occurred on the server processing the request.
404: The object you're trying to GET or PUT (update) does not exist

If you see "Service Unavailable" that means the REST API did not start up properly.
If you see a message indicating the Endpoint does not exist, this means the URL is not correct for the call.

If there's something specific you're attempting and don't know what the issue is, you can always look at a successful call from Postman's console and it will expose everything in the request header/body and response header/body. You can compare it to your failing call to see what you might need, such as the correct Content-type. You can always let us know what call you're stuck on and we can investigate why it might not work for you.

What's the difference between the REST API and Web HMI?

REST API

The OAS Platform REST API, like all APIs is a programmatic interface. It allows developers to read and write real time Tag data, read real time and historical Alarms and Trends, and even create or update Tag configurations. Because it utilizes JSON data over HTTP(s), it can be used by any virtually any development platform or language. It is also a perfect alternative to the .NET Data Connector for applications not running .NET code. Developers need to handle client to server communication to the API within their code. This includes web technologies such as Javascript, but if browser visualization is required, Web HMI may be the preferred product to utilize.

REST API Language Support

  • Any language that can support sending JSON over HTTP/S (.NET, PHP, Python, JS, NodeJS, Java, and more)
  • Fully documented and interactive API found here

Typical Applications

  • Automated solutions without the need for a user interface or data visualization
  • Programmatic configuration of the OAS Platform when using the .NET Data Connector is not possible (e.g. your platform is not .NET)
  • Native mobile applications

Skills Required

  • Knowledge of HTTP processes and methods
  • Familiarity with JSON object structures

Learn more about the OAS REST API >>

Web HMI

The Web HMI product is specifically geared towards web applications that need to visualize real time and historical data. It consists of a set of Javascript libraries intended to be included in your web pages which handle server communication and screen updates. While the Web HMI product does include programmatic methods for reading and writing Tag data, development is strictly done within HTML and intended to be run in a browser.

Web HMI Language and Platform Support

  • Any web application platform - built on standards (HTML, CSS, Javascript)
  • Any web development platform
  • Purely a Javascript solution for browser-to-OAS communications

Typical Applications

  • Real time and historical data visualization
  • System management and control user interfaces
  • Browser-based desktop and mobile applications

Skills Required

  • Web application development skills
  • Familiarity with JSON object structures
  • Javascript skills for direct access to the Web HMI script library functions

Learn more about OAS Web HMI >>

Can the REST API push data to another destination?
REST APIs by their very nature are HTTP services. This means that they are based on a request/response model. They are not event-driven and not capable of pushing data to a destination. You can poll against the REST API for updated values, but the data is only as current as the polling rate. So if the polling rate is longer than the refresh rate on the server value, you may miss updates. If you would like to move data based on events, you must write your own solutions using one of our other developer tools, such as the .NET Data Connector or the Universal Driver Interface.
Is the REST API secure?
YES! There are two levels of security when using the REST API. The first is the authentication required for all operations. You first perform an authentication call using a credential configured within the OAS Server. Then, you can encrypt all communications over the wire by using an SSL certificate and restrict the REST API to using only SSL communications.
After authentication, how long can I use the token and clientid?
The security token and client id granted to the caller after authentication represent a REST API session. As long as the server remains active (not rebooted), and the credentials are continually used, the session will not expire. If there is no activity on the session after 30 minutes, the session will expire and a 401 Unauthorized response will be returned for all operations. This idle timeout can be configured on the server using the OAS Configuration app. Go to Configure > Options, select your OAS server (usually localhost when configuring the current machine) and then go to the Networking tab. Here you can set the REST API Session Timeout in minutes.
When would I use the REST API?
The OAS Platform allows for connectivity and integration with many systems and devices. It also exposes tools for direct data integration and automation using .NET for Windows developers, and libraries for integration with web technologies. If you are developing custom software that runs on other platforms that do not host the .NET Framework, and if you prefer to develop more robust applications with or without user interfaces, the REST API is a perfect solution. It exposes functions for reading and writing real time and historical data, as well as operations for customizing the OAS tag configurations themselves.
How do I test the REST API?
The OAS REST API was developed as a standard REST API, and we have exposed our demo server for you to experiment with it using your own tools. We have also published the full REST API documentation online and have integrated it with the popular Postman tool. This free tool allows you to test operations without writing code, and then generate sample code to get you started. In fact, in our online documentation, just click "Run in Postman" and it will download the full API with examples to your Postman instance. Within Postman, you can then point to your own OAS server to test the REST API with your own data. Read more about Getting Started with REST API.
Can the REST API connect to other REST APIs?
REST APIs expose data or operations in a system via HTTP calls. The OAS REST API is no different in this regard, so it is intended to be used by 3rd party clients and developer tools. If you would like to connect to another 3rd party REST API and integrate the data into OAS Tags, you can use either the .NET Data Connector, or the Universal Driver Interface to develop a custom solution.
Can you run the REST API over SSL?
Yes, the REST API as well as Web HMI can be run over SSL. You must first install an SSL Certificate on your server for the domain name(s) that you intend to use, for example “https://hmi.myserver.com:58725”. Once the certificate is installed properly on the server, check Use SSL and select the installed certificate from the dropdown menu. For detailed instructions, please see read:  Configuring OAS Web Services.  Purchasing and installing an SSL certificate is outside of the scope of the OAS product. For more information on Windows and Certificates, see the following article.

Troubleshooting General

Memory usage of OASEngine.exe or OASReports.exe Windows Service is high.

To see common causes of high memory usage view Memory Management troubleshooting guide.

Once cause of high memory usage is unresolved data logging or alarm logging errors, or Excel has a CSV file open that is currently being logged to. 

Go to Configure-Options-Store and Forward and enable data buffering to disk.

View the following video on how to setup data logging and alarm logging so there is no data loss on a network or database engine failure:

[videopop id="5rZ0GXXQE8E"]

The amount of RAM used on the operating system is very high.
Use the Windows Task Manager under Processes.  If you see that SQL Server is using up too much memory you can limit the amount of memory SQL server uses in the SSMS server properties under the memory section.
To see other causes of high memory usage view Memory Management troubleshooting guide.

Knowledge Base

Tag CSV Export and Import

Import CSV

Select the OAS Service that you desire to import a CSV file to the Tag configuration and click the CSV Import button on the top menu to import a Comma Separated Variable file.
CSV Import
Use the Export CSV feature to generate a CSV file. You can then use Microsoft Excel or other CSV compatible application to add or modify Tags. Only the Tag name is the required field. You can select to include or exclude all other fields. Only those fields that are found in the header will be used to update the properties of the Tags. If a Tag already exists it will be updated. If the Tag does not exist it will be created. Existing Tags that are not specified in the CSV file will not be updated or deleted. The same tag parameter structure can be used to programmatically define tags with the TagCSVImport method on the free to use OASConfig and OPCSystems components. This is demonstrated in  .NET Server Configuration-CSV Import and Export example.

Export CSV

Select the OAS Service that you desire to extract the Tag configuration from and select click the CSV Export button to generate a Comma Separated Variable file.
CSV Export
You can then use Microsoft Excel or other CSV compatible application to add or modify Tags. Use the Import CSV feature to then import the modified CSV file.
If you wish to just export a particular Tag Group, right click on the Tag Group and select Export to CSV.
Export to CSV

Tags

Can I setup Tag programmatically?
Yes, using the OPC Systems component. The most effective method to set up multiple tags in one call is the TagCSVImport method as demonstrated in the Programmatic Interface topic in .NET Configuration - Programmatic Access Tags.
Can I access a bit of an Integer value of an Open Automation Software Tag?
Yes, set the Data Type of the Open Automation Software Tag to Signed Byte, Unsigned Byte, Short Integer, Unsigned Short Integer, Integer, Unsigned Integer, Long, or Unsigned Long. When browsing for a Tag in a client application Bit00 up to Bit63 will be available selection immediately under the Value property. myTag.Bit00 is an example of providing read and write access to bit 0 of an integer value.
A CSV Export and Import does not work when running on a system with Regional Language settings use a comma as a decimal holder.
Because the OAS Service runs under the SYSTEM Account it is not using the Regional Language settings. In some operating systems when you change the Regional Language the SYSTEM account is not updated. To correct this go to Region and Language under Control Panel, and select the Administrative tab. Select Copy settings and select the option to Copy your current settings to: Welcome screen and system accounts and select OK. Restart the OAS Services or restart the operating system. The CSV export and import will now use your decimal separator selected for the operating system.
We have accumulative value and we want to take Delta for this accumulative value at end of each hour. For example value at start of the hour is 100 and at the end of the hour it is 150, so Delta is 50 for this specific hour. How we can use calculation tag option to achieve it?
First create a String Tag called DateTime with the Data Source of DateTimeString. Next create a Double Tag called InitialValue with the Data Source of Calculation and the following Calculation. IF(SUBSTR([DateTime.Value],STRLEN([DateTime.Value])-5,5) = “00:00”,[SourceTag.Value],[InitialValue.Value]) Then you have a second Double Calculation Tag called TheDifference with the following Calculation. [SourceTag.Value]-[InitialValue.Value] A third Calculation Tag called LastHour can be used to hold the last hour’s result. IF(SUBSTR([DateTime.Value],STRLEN([DateTime.Value])-5,5) = “59:59”,[TheDifference.Value],[LastHour.Value])
I want to create a Calculation that gives a result of a sum over 15 minutes and then resets to 0.
Create a Calculation Tag with the following Calculation. AVG(IF(MOD([SumCalcs.TotalSeconds.Value],900)=0,-987654321,[SumCalcs.Input.Value]),900)*MOD([SumCalcs.TotalSeconds.Value],900)
How to display hours, minutes, and seconds as a string from Time On of a Tag.
STRFORMAT([myTagValueTimeOnTotal]%60,"00")&":"&STRFORMAT(MOD([myTagValueTimeOnTotal],60),"00")&":"&STRFORMAT(([myTagValueTimeOnTotal] - ([myTagValueTimeOnTotal]%60)*60 - MOD([myTagValueTimeOnTotal],60))*60,"00")
I want to have a bit go to true at 7, 15, and 23 hours.
  1. Create a Tag called DateAndTime with the Date Type of String and the Data Source of DateTimeString.
  2. Modify the Calculation in both Reset tags to the following.
IF(SUBSTR([DateAndTime.Value],STRLEN([DateAndTime.Value])-8,8) = ""07:00:00"",1,0)|IF(SUBSTR([DateAndTime.Value],STRLEN([DateAndTime.Value])-8,8) = ""15:00:00"",1,0)|IF(SUBSTR([DateAndTime.Value],STRLEN([DateAndTime.Value])-8,8) = ""23:00:00"",1,0)
How can I keep track of how long a Boolean Tag is on or how many times it has transitioned?
Use the Time On and Counts property.
Tag CSV Export and Import

Import CSV

Select the OAS Service that you desire to import a CSV file to the Tag configuration and click the CSV Import button on the top menu to import a Comma Separated Variable file.
CSV Import
Use the Export CSV feature to generate a CSV file. You can then use Microsoft Excel or other CSV compatible application to add or modify Tags. Only the Tag name is the required field. You can select to include or exclude all other fields. Only those fields that are found in the header will be used to update the properties of the Tags. If a Tag already exists it will be updated. If the Tag does not exist it will be created. Existing Tags that are not specified in the CSV file will not be updated or deleted. The same tag parameter structure can be used to programmatically define tags with the TagCSVImport method on the free to use OASConfig and OPCSystems components. This is demonstrated in  .NET Server Configuration-CSV Import and Export example.

Export CSV

Select the OAS Service that you desire to extract the Tag configuration from and select click the CSV Export button to generate a Comma Separated Variable file.
CSV Export
You can then use Microsoft Excel or other CSV compatible application to add or modify Tags. Use the Import CSV feature to then import the modified CSV file.
If you wish to just export a particular Tag Group, right click on the Tag Group and select Export to CSV.
Export to CSV

Web HMI

How do I show different images from multiple states?
Create 5 tags of the Data Type Boolean and set the Data Source to Calculation. Then in the calculation field you would add the logic to convert the integer value to a Boolean state. For example, if you wanted to set a Calculation to True when an integer tag equals 3, it would look like this:
 
[SomeIntegerTag.Value] = 3
 
Then after setting up the 5 Boolean tags you set them up in a group in the oas-tag-src attribute of the image tag in HTML:
 
<div id='test' oas-tag-src='{
    "type": "group",
    "all_f": "DefaultImageUrl",
    "bad_q": "BadDataQualityUrl",
    "group": [
        {
            "tag": "SomeTag01.Value",
            "config": "SomeImageUrl01"
        },
        {
            "tag": "SomeTag02.Value",
            "config": "SomeImageUrl02"
        },
        {
            "tag": "SomeTag03.Value",
            "config": "SomeImageUrl03"
        },
        {
            "tag": "SomeTag04.Value",
            "config": "SomeImageUrl04"
        },
        {
            "tag": "SomeTag05.Value",
            "config": "SomeImageUrl05"
        }
    ]
}'></div>
 
As long as the 5 states are mutually exclusive and only one can be true at a time, your image will switch to the associated image in the group section of the attribute. If none are true, it will default to the all_f URL, and if any tag in the group has bad data quality, the image will switch to the URLin the bad_q section.
 
For more information on Calculation Tags and how to use them, see the following:
How quickly can I update Web HMI screen elements?
We have customers updating over 100 elements on screen every second, but to get such rapid sub-second updates is not always realistic in a web browser. Network requests can take 50-500ms (or more) even on local networks, depending on the networking hardware and configuration. Then the web browser needs to process the incoming data and update elements based on your own javascript or the Web HMI markup rules. There are too many variables so any performance metrics are impossible to supply. We suggest experimentation within your own web application code and networking environment to determine your performance benchmarks.
Does Web HMI support SSL?

Using SSL with Web HMI is fully supported. You must first install an SSL Certificate on your server for the domain name(s) that you intend to use, for example “https://hmi.myserver.com:58726”. Once the certificate is installed properly on the server, check Use SSL and select the installed certificate from the dropdown menu. For detailed instructions, please see read:  Configuring OAS Web Services.  Purchasing and installing an SSL certificate is outside of the scope of the OAS product. For more information on Windows and Certificates, see the following article.

What is a good HTML editor other than Notepad?
You can use any editor you are familiar.  Notepad++ has a lot of options for representing HTML elements as well as editor functions and more...it's also nice and clean: https://notepad-plus-plus.org/  
When there is a large number of Tags specified on one page I do not receive any data.
Use the max_tags_per_msg config parameter as shown in the Programming Reference-HTML5 – Other Configuration Options.
The format of numeric values is showing commas or decimal points and not following the regional language settings.
Use the locale config parameter as shown in the Programming Reference-HTML5 – Other Configuration Options.
What is the client side script to read or write a value?
Use the OPC.get_value(string) or OPC.set_value(string, string) functions as described in Programming Reference-HTML5 – Client Script Library Reference.

.NET WPF HMI

WPF Properties Edit Ellipses Missing in VS 2022
Visual Studio 2022 design time properties no longer support custom property editors for WPF applications.  Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. WinForm applications are still well supported in Visual Studio 2022.
Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
Tag Browse in Visual Studio Missing
Microsoft Visual Studio 2022 no longer supports custom property editors to browse for tags. Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. If you prefer Visual Studio 2022 with WPF application development use the OAS Excel Tag browser to browse for the full tag path of a remote or local tag and copy the full tag path from the Tag field and paste into the desired Tag property in Visual Studio.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\

Visual Studio

WPF Properties Edit Ellipses Missing in VS 2022
Visual Studio 2022 design time properties no longer support custom property editors for WPF applications.  Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. WinForm applications are still well supported in Visual Studio 2022.
Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
Tag Browse in Visual Studio Missing
Microsoft Visual Studio 2022 no longer supports custom property editors to browse for tags. Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. If you prefer Visual Studio 2022 with WPF application development use the OAS Excel Tag browser to browse for the full tag path of a remote or local tag and copy the full tag path from the Tag field and paste into the desired Tag property in Visual Studio.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\
Can WPF applications be deployed to remote systems for Internet communications?
Yes, applications communicate using WCF over a standard TCP port which is adjustable. The default port number is 58724. View the Networking – LAN, WAN, and Internet Videos on how to implement standard communications over the Internet and also the Live Data Cloud networking on how to host your own data without a fixed IP address or registered domain name.
The .NET controls do not appear in the Toolbox after selecting to add them to the Toolbox.
If you right click Toolbox and Choose to Add Items and select the OPCWPFDashboard controls, yet they do not appear in the Toolbox you may have installed Visual Studio after Open Automation Software.  If so uninstall Open Automation Software and reinstall it.  It will then register correctly with Visual Studio for adding the controls.
After updating Open Automation Software with the incremental update the project no longer compiles or the application no longer works.
Make sure to Unblock the dlls before copying to C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\ or C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
To Unblock the files copy to a trusted location for your system, Desktop works well, then right click on the file and select Properties to select Unblock. Then copy from your Desktop to the correct directory in C:\Program Files\Open Automation Software\OAS\Controls\.
My OPCWPFDashboard Button flashes when the user hovers the mouse over the button.
This is default for a WPF Button control, but the behavior can be changed with the following steps using Expression Blend.
  1. Select the button, and right click on the button, select Edit Template-Edit a Copy.  Select OK.
  2. With the new template selected reset the RenderMouseOver, and RenderPressed property.
  3. Select Triggers, and delete the IsKeyboardFocused trigger.
  4. Apply the new template to all buttons.  Select the button, right click, and select Edit Template-Apply Resource.
I want to have my HMI application automatically scale in size when the user changes the size of the application or it is run on different PC with different screen resolution.
Use a ViewBox in the Window XAML code. When you create a WPF application by default the first container in the window is a Grid. Each container has an opening and closing statement in the XAML file. For example:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
.....
</Grid>
</Window>

All of your content will be in the grid. To create a window with resizable content add a ViewBox to the window and put the grid in the ViewBox. Example:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Viewbox>
<Grid>
....
</Grid>
</Viewbox>
</Window>

Select the view box and set the stretch property the way you want the application to respond. The options are None, Fill, Uniform and Uniform to Fill. The default is uniform.
Does OPCWPFHMI.NET support MVC?
Yes
I get a thread exit message in Visual Studio 2013.
The thread exit message is a bug in Visual Studio 2013. https://connect.microsoft.com/VisualStudio/feedback/details/812144/vs2013-reports-incorrect-thread-exit-code Check to see if you have CTP 5 installed for up to date fixes. http://www.visualstudio.com/news/vs2013-update5
How do I implement Data Binding from an Open Automation Software Tag Value?
Use the OPCWPFContent control.  Following is an example:
<Slider Height=""41"" HorizontalAlignment=""Left"" Margin=""70,190,0,0"" Name=""Slider1"" VerticalAlignment=""Top"" Width=""421"" Maximum=""100""
TickPlacement=""BottomRight""
Value=""{Binding Content, ElementName=OPCWPFContent1}"" />
 
<my:OPCWPFContentControl x:Name=""OPCWPFContent1""  Height=""27"" Margin=""222,104,287,0"" VerticalAlignment=""Top""
ToolTipBadQualityText=""0"" ContentBadQualityText=""0"" Content_Tag=""Ramp.Value""/>

I receive an error stating that the Microsoft.Expression.Drawing.dll and Microsoft.Expression.Effects.dll is missing and not found.
These assemblies are included in the installation directory of Open Automation Software and can be included as a Reference in your project as local copy. Or you can install the Blend SDK from the following link that also includes these files. http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=75e13d71-7c53-4382-9592-6c07c6a00207
What assemblies do I need to deploy with my application?
Include the following in References as Local Copy:
  • C1.Win.C1FlexGrid2.dll
  • Microsoft.Expression.Drawing.dll
  • Microsoft.Expression.Effects.dll
  • Microsoft.Expression.Interactions.dll
  • Nevron.Chart.dll
  • Nevron.Chart.WinForm.dll
  • Nevron.GraphicsGL.dll
  • Nevron.Presentation.dll
  • Nevron.System.dll
  • OPCAlarmControl.dll
  • OPCSystemsInterface.dll
  • OPCTrendControl.dll
  • OPCWPFDashboard.dll

.NET Programmatic Configuration

Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\

Redundancy

How can I have my client applications automatically switch to the on-line master service?
Refer to the Client Application Switchover section in this topic.

Trend and Alarm Dashboard

Can I run the Trend and Alarm Dashboard application on remote PCs?
Yes, you can choose a custom install of Open Automation Software and just install the Trend and Alarm Dashboard. For trend Pens include the network node name, IP Address, or registered domain name in the Tag path. For alarms set the AlarmNetworkNodes property to include the service where the alarms are hosted.

Options

How can I backup the configured options on my system?
Backup the file OAS.options from C:\ProgramData\OpenAutomationSoftware\ConfigFiles.
All default configuration files would be specified under Configure-Options.
How can I move the configured options from one system to another?
Copy the file OAS.options from C:\ProgramData\OpenAutomationSoftware\ConfigFiles\ to the new system in the same directory C:Program Files and restart the OAS Services on the new computer. All default file paths will be located under Configure-Options and they should be copied to the same directory structure of the new system.
How can I prevent the options from being modified by unauthorized users?

Setup Security and select which Options you want users to be able to modify in the Default group and for each Security Group.

License Activation

How can I see how many tags are currently in use for my license?
Select Configure-System Status using the Configure application and view the Totals section of the information provided.
Why do I get a warning my tag count license is exceeded?
There is a default demo Tag configuration file that is set to load under Configure-Options.  If you are not using these tags remove this default file or create your own only with your own tags and restarted the 3 OAS Services using the OAS Service Control.
How do I license the software?
Use Configure-License with the Configure application with one of the methods listed in the System Configuration – License section of this help file.
What happens when I exceed the tag limit?
  • A warning appears when you use the Configure application.
  • Also the Runtime will not start if you have too many Open Automation Software Tags loaded.
  • If you are using DirectOPC once you reach the tag limit no other DirectOPC Items will be added.
  • You can see how many tags you are using under Configure-System Status in the Totals section.
Do I need to reinstall the software after I purchase a license?
No, the one common download of Open Automation Software contains all of the products, drivers, and is activated with a Serial Number with an Internet connection, or with a License Key without an Internet connection.
I just purchased a 100 tag license and now I get a message that the tag limit is exceeded?
There are more than 100 tags in the demo tag configuration. Delete the demo tags and set the default tag configuration file under Configure Option Default Files.
Do I need to Kill a license if I am upgrading the version of Open Automation Software?
No, the license will remain active while you uninstall and reinstall Open Automation Software.
How do I move a license from one computer to another?
If you software license is up to date with a current maintenance use the steps in Moving a Software License.
Do I need to kill or backup the license when I uninstall and reinstall the software?
No the license will remain, but do not delete any files from C:\Program Files\Open Automation\OAS\ or C:\ProgramData\OpenAutomationSoftware\ after you uninstall Open Automation Software.
What will make my license stop working?
  • If you upgrade your software to the latest version without an active maintenance plan that covers that version.
  • If you change the CPU mother board. This includes cloning the image of the drive and restoring to a new PC.
  • If you remove all of the hard disks from the system that were present when the software was licensed.
  • With older OAS version 9 or less if you remove all of the Ethernet cards from the system that were present when the software was licensed.

Expression Blend

How can I learn about Expression Blend and how to use it?
View the Expression Blend for WPF video in the WPF HMI Videos section.
After updating Open Automation Software with the incremental update the project no longer compiles or the application no longer works.
Make sure to Unblock the dlls before copying to C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\ or C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
To Unblock the files copy to a trusted location for your system, Desktop works well, then right click on the file and select Properties to select Unblock. Then copy from your Desktop to the correct directory in C:\Program Files\Open Automation Software\OAS\Controls\.
My OPCWPFDashboard Button flashes when the user hovers the mouse over the button.
This is default for a WPF Button control, but the behavior can be changed with the following steps using Expression Blend.
  1. Select the button, and right click on the button, select Edit Template-Edit a Copy.  Select OK.
  2. With the new template selected reset the RenderMouseOver, and RenderPressed property.
  3. Select Triggers, and delete the IsKeyboardFocused trigger.
  4. Apply the new template to all buttons.  Select the button, right click, and select Edit Template-Apply Resource.

.NET WinForm HMI

Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\
Can WinForm applications be deployed to remote systems for Internet communications?
Yes, applications communicate using WCF over a standard TCP port which is adjustable. The default port number is 58724. View the Networking – LAN, WAN, and Internet Videos on how to implement standard communications over the Internet and also the Live Data Cloud networking on how to host your own data without a fixed IP address or registered domain name.
The .NET controls do not appear in the Toolbox after selecting to add them to the Toolbox.
If you right click Toolbox and Choose to Add Items and select the OPCControls components, yet they do not appear in the Toolbox you may have installed Visual Studio after Open Automation Software. If so uninstall Open Automation Software and reinstall it.  It will then register correctly with Visual Studio for adding the controls.
After updating Open Automation Software with the incremental update the project no longer compiles or the application no longer works.
Make sure to Unblock the dlls before copying to C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\.
To Unblock the files copy to a trusted location for your system, Desktop works well, then right click on the file and select Properties to select Unblock. Then copy from your Desktop to the correct directory in C:\Program Files\Open Automation Software\OAS\Controls\.
.
What assemblies do I need to deploy with my application?
Include the following in References as Local Copy:
  • OPCControls.dll
  • OPCSystemsInterface.dll

OAS WinForm Gauge .NET

Are there gauge controls for WPF and HTM5 web interfaces?
Yes, use the WPF Circular Gauges and the gauges example in the HTML files samples. View the WPF Radial Gauges video in the WPF HMI Videos section.

Web Trend

Where can I find the steps to setup the Web Trend?

OPC Client

OPCSystems.NET OPC Server is not listed after installation

Please enable .NET Framework 3.5 in the operating system and then reinstall OAS.

https://docs.microsoft.com/en-us/dotnet/framework/install/dotnet-35-windows-10

How to run OPCSystems.NET OPC Server as a Windows Service

Step 1 – Unregister server.

Using the Windows Command Prompt running As Administrator go to the directory C:\Program Files\Open Automation Software\OAS\ and type DANSrv.exe /Unregserver.

Step 2 – Register to run as a Windows Service

Using the Windows Command Prompt running As Administrator go to the directory C:\Program Files\Open Automation Software\OAS\ and type DANSrv.exe /Service /AutoStart.

Step 3 – Verify OPC Server is Registered

Using the Service Control Manager the Windows Service OPCSystems.NET DA Server should be listed to run in Automatic Startup Type.  You can select to manually start the server or restart the operating system and the server will start automatically.

When browsing for Network Nodes in the OPCSystems.NET OPC Server from a 3rd party OPC Client how can I get an IP Address or specific Node Name to show up?
Modify the file NetworkNodes.txt in the directory C:\Program Files\Open Automation Software\OAS\ with Notepad or a text editor.
When browsing the OPCSystems.NET OPC Server from a 3rd party OPC Client for OPCSystems.NET Tags I only get the Value parameters. How can access the rest of the properties when browsing?
Modify the file DANSrv.exe.config in the directory C:\Program Files\Open Automation Software\OAS\ with Notepad or a text editor. Set the property ValueOnlyBrowsing to False.
<add key=""ValueOnlyBrowsing"" value=""False""/>
How can I change the WCF Port Number that communicates to OAS Services?
Note: WCF is now a legacy communication transport for OAS.  The default communications no longer uses WCF and is more secure and faster on port 58727.  You can modify both WCF and TCP ports under Configure-Options-Networking. To adjust the port for the OPCSystems.NET OPC Server modify the file DANSrv.exe.config in the directory C:\Program Files\Open Automation Software\OAS\ with Notepad or a text editor. Set the properties TCPPortNumber and WCFPortNumber to the desired TCP port number. The default is 58727.
<add key=""TCPPortNumber"" value=""58727""/>
<add key=""WCFPortNumber"" value=""58724""/>
View the following video on how to adjust WCF port number in the realtime service and all client applications: [videopop id="hzdyr2bj4eo"]
How can I access a legacy OAS Service on a different node that is older than version 5.0.0.0?

Note: Remoting is a legacy format of communications and it is recommended to update to the latest version of OAS for the most secure transport.

For the OPCSystem.NET OPC Server modify the file DANSrv.exe.config in the directory C:\Program Files\Open Automation Software\OAS] with Notepad or a text editor.

Set the property EnableRemoting to True.

<add key=""EnableRemoting"" value=""True""/>

 

How can I set the UserName and Password the OPCSystems.NET OPC Server uses to communicate with the OAS Services when security is enabled on those services?
Modify the file DANSrv.exe.config in the directory C:\Program Files\Open Automation Software\OAS\ with Notepad or a text editor. Set the properties UserName and Password to the desired login authentication.
<add key=""UserName"" value=""""/>

<add key=""Password"" value=""""/>

.NET Realtime Data Access

Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\

Allen Bradley

How Do I Address AB Classic Output Registers?

Please use the chart below for conversion.

Data Logging

MS Access Error microsoft.ace.oledb.12.0 provider is not registered
MS Access Class not Registered System Error

For Office 2010, the following update will correct this issue.

https://www.microsoft.com/en-us/download/details.aspx?id=39664

For Office 365 (please note, by default Office365 installs the 32-bit version regardless of your system), use:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

I receive a System Error when trying to log or access an Oracle database

OAS version 12.00.0043 now uses OracleManagedDataAccess assembly. If you are using an older version of OAS we recommend to update to the latest version. If you have upgraded from a previous version and using TNSNAMES.ORA name in the Database file please see the FAQ on TNSNAMES.ORA.

Data Logging System Error occurs with database engine error null values not allow.
The cause of this error is one or more of the database table columns has been modified  to not allow null values.  OAS creates the columns in the table to allow null values so when the data quality is bad for a tag value a null value will be inserted into the table.  The only column that should be set to not allow null values is the DateAndTime column.  There are 2 solutions to this error:
  1. Please review the columns in each table with the SQL Server Management Studio.  If they have been changed to not allow null values change them back to allow null values.
  2. Go to each logging group and enable the property Discard Null Rejects under the Database tab.  Keep in mind that with this property enabled the records to be logged that contain null values will be discarded and not logged.
Menu Configure Data Logging Discard Null Rejects
Security Login Error occurs with Open or Create routines
View the Database Security Login topic on how to setup security logins and access writes to create, open, and read and write to the database.
Data is not logged to the database engine

View the Data Logging Errors troubleshooting guide for a complete list of error causes and solutions.

View the source of the problem under Configure-System Errors.

The complete history of errors can be viewed under C:\Program Files\Open Automation Software\OAS\Log or the path that is set under Configure-Options-System Logging.

Enable Log Data Logging Transactions under Configure-Options-System Logging to see the details of each transaction and error returned from the database engine.

CSV Logging to a Remote Mapped Drive
Either enable the SYSTEM account to have read and write access to the mapped drive and directory, or set the OAS Engine Service LogOn to a user account that would have access to the remote mapped drive using these steps in setting the OAS Engine Service LogOn.
Logging to MS Access on a Remote Mapped Drive
Either enable the SYSTEM account to have read and write access to the mapped drive and directory, or set the OAS Reports Service LogOn to a user account that would have read and write access to the remote mapped drive.
Error reports LogIn failure to database engine when trying to open connection
View the following video on how to setup security in the database engine: [videopop id="geQZQafgiaU"] Direct link: /videos/#troubleshoot-connection-login
The database engine language is different than the Regional Language settings of the Data Logging and / Alarm Logging Service. Data Logging updates, Alarm Logging updates, trend history, and / alarm history is not working due to invalid date format.
Go to Configure-Options-History and Enable History Date Format. Examples: yyyy-MM-dd HH:mm:ss MM/dd/yyyy HH:mm:ss
I need to log to an Oracle database engine using the TNSNAMES.ORA file.
OAS version 12.00.0043 now uses OracleManagedDataAccess assembly which does not support TNSNAMES.ORA.  You can set the entire path from the TNSNAMES.ORA file in the Database field of the data logging, alarm logging, or recipe group directly. Use the following as the Database name: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID))) As example for a system with a computer name GWDESK and the Oracle database name OPCDb: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=GWDESK)(PORT = 1521)))(CONNECT_DATA=(SERVER= DEDICATED)(SERVICE_NAME=OPCDb)))
How much memory on the hard disk is taken up when logging to SQL Server?
The following should be used as an aid in sizing database requirements. The method used is to store 100 Tags each, of a few common data types for one hour at a 1 second continuous interval to separate tables. SQL Server 2005 Express was used to gather this information. As always your final results may vary. In SQL Server you can set the Database property under Options for Recovery model to Simple to reduce disk usage. Boolean Data type table size Rows: 3598 Reserved: 200 KB Data: 152 KB Index Size: 16 KB Unused: 32 KB Double data type table size Rows: 3598 Reserved: 3272 KB Data: 3200 KB Index Size: 16 KB Unused: 56 KB Integer data type table size Rows: 3598 Reserved: 1672 KB Data: 1600 KB Index Size: 16 KB Unused: 56 KB String data type table size (100 char / tag) Rows: 3589 Reserved: 84752 KB Data: 84552 KB Index Size: 144 KB Unused: 56 KB
Which database engine is most efficient with OPCDatabase.NET?
SQL Server provides the ability to log multiple records in one call, so using SQL Server on a local or remote server is the best choice.
Which database engine uses the least amount of disk space when logging values?
CSV files without a database are the smallest usage. SQL Server and mySQL are very comparable. Oracle uses approximately 4 times the disk space as SQL Server and mySQL. In SQL Server you can set the Database property under Options for Recovery model to Simple to reduce disk usage.
Setup SQL Server for authentication with UAC which was introduced on Windows Vista.

Data Sources

Tag CSV Export and Import

Import CSV

Select the OAS Service that you desire to import a CSV file to the Tag configuration and click the CSV Import button on the top menu to import a Comma Separated Variable file.
CSV Import
Use the Export CSV feature to generate a CSV file. You can then use Microsoft Excel or other CSV compatible application to add or modify Tags. Only the Tag name is the required field. You can select to include or exclude all other fields. Only those fields that are found in the header will be used to update the properties of the Tags. If a Tag already exists it will be updated. If the Tag does not exist it will be created. Existing Tags that are not specified in the CSV file will not be updated or deleted. The same tag parameter structure can be used to programmatically define tags with the TagCSVImport method on the free to use OASConfig and OPCSystems components. This is demonstrated in  .NET Server Configuration-CSV Import and Export example.

Export CSV

Select the OAS Service that you desire to extract the Tag configuration from and select click the CSV Export button to generate a Comma Separated Variable file.
CSV Export
You can then use Microsoft Excel or other CSV compatible application to add or modify Tags. Use the Import CSV feature to then import the modified CSV file.
If you wish to just export a particular Tag Group, right click on the Tag Group and select Export to CSV.
Export to CSV

.NET Trend

WPF Properties Edit Ellipses Missing in VS 2022
Visual Studio 2022 design time properties no longer support custom property editors for WPF applications.  Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. WinForm applications are still well supported in Visual Studio 2022.
Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\
How do I programmatically add pens to a trend window?
The following two (2) examples are for WinForm and WPF applications on how to add pens to a trend window during runtime programmatically.
WinForm:
Dim NewPen As OPCTrendControl.ClassPen
Dim NewPens As OPCTrendControl.ClassPen()
ReDim NewPens(2)
If NetworkPath = """" Then
NewPen = New OPCTrendControl.ClassPen(NetworkPath + ""Ramp.Value"", ""localhost"")
Else
NewPen = New OPCTrendControl.ClassPen(NetworkPath + ""Ramp.Value"", NetworkNode)
End If
NewPen.LineBorderColor = Color.Blue
NewPen.LineFillColor = Color.Blue
NewPen.Description = "Ramp"
NewPen.LineStyle = OPCTrendControl.ClassPen.LineStyleTypes.Ellipsoid
NewPens(0) = NewPen

If NetworkPath = "" Then
NewPen = New OPCTrendControl.ClassPen(NetworkPath + ""Sine.Value"", ""localhost"")
Else
NewPen = New OPCTrendControl.ClassPen(NetworkPath + ""Sine.Value"", NetworkNode)
End If

NewPen.LineBorderColor = Color.Red
NewPen.LineFillColor = Color.Red
NewPen.Description = "Sine"
NewPen.YAxisRangeHigh = 1
NewPen.YAxisRangeLow = -1
NewPen.LineStyle = OPCTrendControl.ClassPen.LineStyleTypes.Tube
NewPens(1) = NewPen

If NetworkPath = "" Then
NewPen = New OPCTrendControl.ClassPen(NetworkPath + ""Random.Value"", ""localhost"")
Else
NewPen = New OPCTrendControl.ClassPen(NetworkPath + ""Random.Value"", NetworkNode)
End If

NewPen.LineBorderColor = Color.Green
NewPen.LineFillColor = Color.Green
NewPen.Description = "Random"
NewPen.MarkerFillColor = Color.Green
NewPen.MarkerStyle = OPCTrendControl.ClassPen.MarkerStyleTypes.Sphere
NewPen.MarkerSize = 20
NewPens(2) = NewPen

frmTrend.OpcTrendControl1.Pens = NewPens

WPF:

VB
Dim Pens As New OPCWPFDashboard.PensList
Dim NewPen As New OPCTrendControl.ClassPen

'Add Ramp Pen
NewPen = New OPCTrendControl.ClassPen("Ramp.Value", "localhost")
NewPen.Units = ""MGD""
NewPen.YAxisRangeHigh = 2
NewPen.LineStyle = OPCTrendControl.ClassPen.LineStyleTypes.Line
NewPen.Description = "Ramp Value"
Pens.Add(NewPen)

'Add Random
NewPen = New OPCTrendControl.ClassPen("Random.Value", "localhost")
NewPen.Units = "NTU"
NewPen.Description = "Random Pen"
Pens.Add(NewPen)
OPCWPFTrend1.Pens = Pens

C#
OPCWPFDashboard.PensList Pens = new OPCWPFDashboard.PensList();
OPCTrendControl.ClassPen NewPen = new OPCTrendControl.ClassPen();

//Add Ramp Pen
NewPen = new OPCTrendControl.ClassPen("Ramp.Value", "localhost");
NewPen.Units = "MGD";
NewPen.YAxisRangeHigh = 2;
NewPen.LineStyle = OPCTrendControl.ClassPen.LineStyleTypes.Line;
NewPen.Description = "Ramp Value";
Pens.Add(NewPen);

//Add Random
NewPen = new OPCTrendControl.ClassPen("Random.Value", "localhost");
NewPen.Units = "NTU";
NewPen.Description = "Random Pen";
Pens.Add(NewPen);
OPCWPFTrend1.Pens = Pens
The database engine language is different than the Regional Language settings of the Data Logging and / Alarm Logging Service. Data Logging updates, Alarm Logging updates, trend history, and / alarm history is not working due to invalid date format.
Go to Configure-Options-History and Enable History Date Format. Examples: yyyy-MM-dd HH:mm:ss MM/dd/yyyy HH:mm:ss
After updating Open Automation Software with the incremental update the project no longer compiles or the application no longer works.
Make sure to Unblock the dlls before copying to C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\.
To Unblock the files copy to a trusted location for your system, Desktop works well, then right click on the file and select Properties to select Unblock. Then copy from your Desktop to the correct directory in C:\Program Files\Open Automation Software\OAS\Controls\.
I want to add annotations to the trend window.
Create a String Tag with the Trend Point property enabled. Add the String Tag to the Trend Window as a new Pen. In one of the other existing pens where you want the annotation to appear on set the property Pen.LabelAnnotationTag to the String Tag. Set the Data Logging Group to the String Tag to a String field you will be updating directly from your application.
I would like to show multiple Y Axis on the trend window.
Set YAxis-ScaleMode to one of the Stacked chart types. Set each Pen’s StackedChartNumber to the desired stacked chart to display the pen.
Does OPCTrend.NET support OPC HDA?
No, OPCTrend.NET is a client/server architecture that does not require DCOM and the communications uses the built in networking to the .NET Framework. This makes it possible for trend clients to view real-time data and historical data with OPCDatabase.NET from anywhere in the world over the Internet. The OAS Service can bring in data values from Data Access OPC Servers, Data Access OPC Clients, databases like SQL Server, Oracle, Access, and mySQL, Microsoft Excel, and .NET applications (web, WinForm, WCF, WPF, and Windows Services). The values can then be cached for unlimited trend clients and logged to databases with OPCDatabase.NET. Trend clients can be running on both Windows Operating systems and non Windows Operating systems like smart phones and the iPads. Visit the Trend .Net Product page for more information and to run a live example.
Trend history is running very slow from the database.
Make sure the date and time span is defined to return a subset of data instead of all of the data. You can also reindex the database in SQL Server to run faster. Reorganizing and Rebuilding Indexes http://msdn.microsoft.com/en-us/library/ms189858.aspx
How do I programmatically get realtime and historical trend data?
Use the GetTrendDataTable method to return a DataTable object with all trend values.
 DataTable myDataTable;
            myDataTable = opcTrendControl1.GetTrendDataTable();
The following code can be used to programmatically get history data and return the data to a DataTable.
private void button1_Click(object sender, EventArgs e)
        {
            DateTime endTime = DateTime.Now;
            DateTime startTime = endTime.AddMinutes(-20);
            opcTrendControl1.HistorySelect(startTime, endTime);
        }
 
        private void opcTrendControl1_HistoryDataArrived()
        {
            DataTable myDataTable;
            myDataTable = opcTrendControl1.GetTrendDataTable();
            dataGridView1.DataSource = myDataTable;
        }

What assemblies do I need to deploy with my application?
Include the following in References as Local Copy:
  • Nevron.Chart.dll
  • Nevron.Chart.WinForm.dll
  • Nevron.GraphicsGL.dll
  • Nevron.Presentation.dll
  • Nevron.System.dll
  • OPCSystemsInterface.dll
  • OPCTrendControl.dll

Web Alarm

Where can I find the steps to setup the Web Trend?
We have a HTML5 project with and one of the requirements is to be able to click on an alarm in the alarm control and move to a specific page based on the alarm. Is that possible or would the alarm control need to be modified?
In the alarmbinding, add the following config field: rowClickCallback : yourFunction The callback passes one argument that represents the data in the row that was clicked.  You could then parse the data, which is just an array of all the fields in the alarm.

Siemens

I get the error 33028 Error: device error (S7) 0X00008104 Function is not supported.
The error is related  to the security setting in the PLC. Follow these steps in Step 7 (TIA Portal): Siemens Security Setup

Alarm Logging

MS Access Error microsoft.ace.oledb.12.0 provider is not registered
MS Access Class not Registered System Error

For Office 2010, the following update will correct this issue.

https://www.microsoft.com/en-us/download/details.aspx?id=39664

For Office 365 (please note, by default Office365 installs the 32-bit version regardless of your system), use:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

Security Login Error occurs with Open or Create routines.
View the Database Security Login topic on how to setup security logins and access writes to create, open, and read and write to the database.
The database engine language is different than the Regional Language settings of the Data Logging and / Alarm Logging Service. Data Logging updates, Alarm Logging updates, trend history, and / alarm history is not working due to invalid date format.
Go to Configure-Options-History and Enable History Date Format. Examples: yyyy-MM-dd HH:mm:ss MM/dd/yyyy HH:mm:ss

Databases - Recipes

MS Access Error microsoft.ace.oledb.12.0 provider is not registered
MS Access Class not Registered System Error

For Office 2010, the following update will correct this issue.

https://www.microsoft.com/en-us/download/details.aspx?id=39664

For Office 365 (please note, by default Office365 installs the 32-bit version regardless of your system), use:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

If my Recipe is not working how can I find the solution?
Go to Configure-Options-System Logging. Enable the Recipe Transaction Log and the details of each recipe execution will be logged within the file.
How can I return aggregate results of the last 24 hours of a database table?
Set the field names to use your desired aggregate functionsExample: AVG(myField), MIN(myField), MAX(myField), and SUM(myField). In the Query String property enter the following: WHERE DateAndTime <= CURRENT_TIMESTAMP AND DateAndTime > DATEADD(hh,-24,CURRENT_TIMESTAMP)

.NET Alarm

WPF Properties Edit Ellipses Missing in VS 2022
Visual Studio 2022 design time properties no longer support custom property editors for WPF applications.  Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. WinForm applications are still well supported in Visual Studio 2022.
Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\
The database engine language is different than the Regional Language settings of the Data Logging and / Alarm Logging Service. Data Logging updates, Alarm Logging updates, trend history, and / alarm history is not working due to invalid date format.
Go to Configure-Options-History and Enable History Date Format. Examples: yyyy-MM-dd HH:mm:ss MM/dd/yyyy HH:mm:ss
After updating Open Automation Software with the incremental update the project no longer compiles or the application no longer works.
Make sure to Unblock the dlls before copying to C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\.
To Unblock the files copy to a trusted location for your system, Desktop works well, then right click on the file and select Properties to select Unblock. Then copy from your Desktop to the correct directory in C:\Program Files\Open Automation Software\OAS\Controls\.
Does OPCAlarm.NET support OPC Alarm & Events specification?
Yes, go to Configure-OPC Alarm and Event Servers using the Configure OAS application to define each A&E OPC Server to subscribe to.
How do I programmatically get realtime and historical alarms?
Use the GetAlarmDataTable method to return a DataTable object with all alarms and the values for each property of an alarm.
DataTable myDataTable;
            myDataTable = opcAlarmControl1.GetAlarmDataTable();

What assemblies do I need to deploy with my application?
Include the following in References as Local Copy:
  • C1.Win.C1FlexGrid2.dll
  • OPCAlarmControl.dll
  • OPCSystemsInterface.dll

Alarm Notification

How to escalate an alarm notification if not acknowledged within a specified time

Create a new Boolean Tag with the tag name EscalateAlarm.

Enable the Digital Alarm limit in this new Tag with a Time Delay of ? Seconds.

Under the Tags tab of an existing or new Alarm Notification group the property “Set Tag When Alarm Active and Not Acknowledged” to a Boolean Tag with the Data Source of Value.

EscalateAlarm.AlarmStatusDigital can then be used to enable a second Alarm Notification monitoring the same alarms of the first Alarm Notification group with the Activate with Tag property in the second Alarm Notification Group.

Note: Under Configure-Options-Alarms uncheck “Update Alarm Status Immediately Without Alarm Time Delay”.

This will then enable the second alarm notification group when the alarms monitored in the first group.

I am using GMAIL as the sending address.
Make sure to enable SSL and also set the outgoing port number to 465.
I want to send a text message without the need for a Twillio account.
If the cell phone provider can provide an email address to receive texts setup to send an email. To send a text message to someone on AT&T in the To Address, just enter the 10 digit phone number @txt.att.net. Example 5555551234@txt.att.net.

.NET Data Connector

Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\
Is there example code of the .NET Data Connector?

Yes, refer to the OAS Example Service Code for working code examples if both C# and Visual Basic.

What assemblies do I need to deploy with my application?
Include OASData.dll as Local Copy reference to target the following.
  • .NET 5
  • .NET Core 2.o or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
For .NET Framework 4.6 or less include OPCSystemsDataConnector.dll.

Networking

How can I define IP Addresses when browsing for network nodes?
Use the Configure-Options-Networking in the Configure OAS application to define a list of IP addresses in the Network Nodes field as shown in Networking OPC Data.
How can I change the default WCF Port Number to use in the OAS Service and Client applications?
Go to Configure-Options Networking and set the WCF Port Number. View the following video for adjusting the client applications and how to adjust WCF port number in the realtime service and all client applications: [videopop id="hzdyr2bj4eo"]
How can I host my OAS Service on the Internet without a fixed IP Address or registered domain name?
Use the Live Data Cloud feature that is free to use. How to host data from any Windows PC with a standard Internet connection.  No fixed IP Address or registered domain name required. [videopop id="VL_WVlbuhuQ"]
Do I need to make a web application in order to access data over the Internet?
No, all Open Automation Software client applications and services support Internet communications in Open Automation Software by default. You can deploy them as Smart Clients.
When trying to connect to a local or remote OAS Service an error occurs and access is denied.
View the Remove OAS Service Access section is this file.
When I select localhost I receive an error
Try 127.0.0.1.  If it works you can correct your hosts file where is shows localhost.
Data packet size is limited on Windows XP and Windows Server 2003 for UDP Broadcasts
If you setup a large number of tags to be transferred via UDP Broadcast sent from or received on XP or Windows Server 2003 and the data is not transferred, but is with a small number of tags download and install the following Hotfix. https://support.microsoft.com/en-us/kb/824838

.Net Application

WPF Properties Edit Ellipses Missing in VS 2022
Visual Studio 2022 design time properties no longer support custom property editors for WPF applications.  Use Visual Studio 2019 to develop WPF applications. The free Community Edition of Visual Studio 2019 can be download from https://visualstudio.microsoft.com/vs/older-downloads/. WinForm applications are still well supported in Visual Studio 2022.
Bad Data Quality in .NET Application.
Below are some possible reasons your .NET application is not able to read OAS tag values.

Data Source Quality

Use Configure-Tags to verify that the data quality of the source tags is "Good Quality". Menu Configure Tags
Quality Good

Security

The Default security group on either the local or remote OAS Engine may have Disable All Tags from Reading checked under the Read Tags Tab.  See Restrict Tag Access of Security setup to see how read, write, and browse access can be restricted. View how to Implement User Credentials in Client Applications to provide log in method for each user in the .NET application.

Network

.NET applications can be defined to communicate to remote OAS Engines.  See Network Communications Troubleshooting to verify that port 58727 is allowing both incoming and outgoing traffic through your firewall.

Tag Path

The full tag path would include the full tag name including its parent groups and the variable of the Tag.
MyGroup.MyTag.Value
Tag names are case sensitive and the current value of a tag would be .Value as the most common variable.
If the tag is from a remote OAS Engine see Basic Networking for standard remote tag syntax or Live Data Cloud Networking if the OAS Engine system has a dynamic IP address.
\\192.168.0.1\TagName.Value

License

Use Configure-License to verify that a product feature .NET Data Connector, WinForm HMI, or WPF HMI is enabled on the data source system where the tags are located. Menu Configure License
Enabled Products

Target Framework for WPF and WinForm Applications

The project type for WinForm and WPF applications should be set to include (.NET Framework) and target .NET Framework 4.6.1 or greater. WinForm Target Framework See the correct project type for WinForm above that is listed as Windows Forms App (.NET Framework) while Windows Forms App would not be the correct project type.

Assembly References

Visual Studio on some operating systems will assign a legacy assembly to the project causing an incompatibility due to an older version of the reference assembly.  A common assembly that can be incorrect is Newtonsoft.Json that has been registered in the GAC by another software product. Select Newtonsoft.Json under the Project References to verify the correct path and version as 13.0.0.0.
Newtonsoft.Json Assembly Reference If the Path does not reference the OAS installation directory remove the reference and select to Add Reference and browse for dll from the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\. See a list of locations for the correct type in the troubleshooting type After updating to OAS Version 17 the project no longer compiles for a list of correct project reference paths for each type of Visual Studio Project.

.NET Assembly is Blocked

If you have copied an application or project to another computer you may need to Unblock one or more the .dll files. Right click on the .dll file that you have downloaded. Check the Unblock checkbox for security as shown in the example below, then click Apply or OK. Excel Add-In

Legacy .NET Application with OAS Version 17

 If the OAS .NET assemblies are from OAS version 16 or less contact support@oasiot.com for compatibility instructions.
After updating to OAS Version 17 the project no longer compiles
OAS version 17 implements an improved network interface which requires some additional assemblies. All dependent .dlls are located in the relative subdirectory of the Controls directory of the OAS installation directory, typically C:\Program Files\Open Automation Software\OAS\Controls\. To add a reference to a Visual Studio project right click on References in the Solution Explorer. Add Reference Select Browse to browse the directory for each application feature. Browse Assemblies Include all .dlls files in the respective directory for the specific product feature. For .NET Framework applications include the .dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\. The Target Framework set for the VS project must be .NET Framework 4.6.1 or greater. For .NET Standard supporting the following targets include the. dlls located in C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\.
  • .NET 6
  • .NET 5
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater
WPF HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCWPFDashboard\
WinForm HMI Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\
Alarm .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCAlarmDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASAlarms\
Trend .NET Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendControl\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCTrendDataOnly\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASTrends\
.NET Data Connector Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystemsDataConnector\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASData\
Server Configuration Assemblies
  • C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCSystems\
  • C:\Program Files\Open Automation Software\OAS\Controls\NetStandard\OASConfig\

Security

How do I log in my client application with a user name and password?
For each application type there is either a login programmatic method or user interface dialog to log in the application.
  • Configure OAS application: Use the LogIn from the menu.
  • WPF application: Use the OPCWPFDashboard.OPCWPFLogIn component with the LogIn method. (Only need to do this once for the entire application)
  • WinForm application: Use the OPCControls.OPCControlsLogIn component with the LogIn method. (Only need to do this once for the entire application)
  • OPCTrend control in WPF or WinForm application: Use the LogIn method. (Need to do this for each trend control)
  • OPCAlarm control in WPF or WinForm application: Use the LogIn method. (Need to do this for each trend control)
  • Excel: Use the security login RTD formula generated with the OAS Excel Wizard application. (Only need to do this once for the entire Workbook)
  • HTML5 Web application: Use the authentication token see the Authentication topic in the Web HMI Programming Reference-HTML5 section.

Excel

Can you access data over the Internet in a local Excel Spreadsheet?
Yes, for both reading and writing.  View the following networking video on how to network to remote data services: Easy Networking How to network all products to central service using a fixed IP Address or registered domain name for the Internet. [videopop id="Y8jrVnuunWM"]
Can you protect remote data from being accessed from unauthorized use?
Yes, refer to the following Security video on how to setup user security. With the Excel Workbook use the OAS Excel Wizard with the Security option to add a security login function.  This is shown in Step 12 of the Excel - Getting Started section. Security Setup How to setup security for Open Automation Software in the service and in client applications. [videopop id="9PHq18fkxPU"]
Do I need a license for each remote Excel Workbook?
No, Open Automation Software is server based licensing and all licensing is enabled as the service to allow local and remote access for the number of concurrent licensed users activated.
I am running Microsoft Excel 2010, and I cannot get my data into the Excel Workbook.
Download the following Microsoft Hotfix for Excel 2010. https://support.microsoft.com/en-us/kb/2405840
What is the proper syntax for an RTD formula?
Use the OAS Excel Wizard found under the program group Open Automation Software. The following article describes RTD formulas in general: https://support.microsoft.com/en-us/kb/289150

Smart Client Deployment

How do I deploy my application as a Smart Client?
View the steps in the Getting Started - Smart Client Click Once Deployment section in this topic.

Reports

When I use multiple DataSets in the same report it only returns data from the first DataSet.
Use and RDL Report type.
I am using GMAIL as the sending address.
Make sure to enable SSL and also set the outgoing port number to 465.
Report queries are running very slow from the database.
Make sure the date and time span or Query String is defined to return a subset of data instead of all of the data. You can also reindex the database in SQL Server to run faster. Reorganizing and Rebuilding Indexes http://msdn.microsoft.com/en-us/library/ms189858.aspx
Create Report for mySQL and other database engines without OLE-DB Provider
In order to use MySQL you will need to have the MySQL Connector/ODBC driver installed on the system where the OAS Engine is running. If it is not currently installed you can download from here: https://downloads.mysql.com/archives/c-odbc/ In order to use the ODBC Administrator you may also need to install the Visual C++ Redistributable for Visual Studio x86. In MySQL create a separate user from root. You will uses this user in the string below. ServerIPAddress=xxx.xxx.xxx.xxx DataBaseName=The database name of interest inside mySQL MYSQLUserName = The MySQL username provided above MYSQLUserNamePassword = The Password to the database for the username provided No spaces between elements. Database = DatatBaseName Table = a table within the database. Dataset should now show table elements.
Set Printer Driver to work with Automated Reports
The OAS Services by default run under the SYSTEM account. The following link is a guide for setting up the printer driver to work with the SYSTEM account. https://support.microsoft.com/en-us/help/184291/com-objects-fail-to-print-when-called-from-asp

Programmatic Interface

After authentication, how long can I use the token and clientid?
The security token and client id granted to the caller after authentication represent a REST API session. As long as the server remains active (not rebooted), and the credentials are continually used, the session will not expire. If there is no activity on the session after 30 minutes, the session will expire and a 401 Unauthorized response will be returned for all operations. This idle timeout can be configured on the server using the OAS Configuration app. Go to Configure > Options, select your OAS server (usually localhost when configuring the current machine) and then go to the Networking tab. Here you can set the REST API Session Timeout in minutes.
How can I programmatically browse OPC Servers?
Yes, using the free to use OPCSystems component. Refer to the WinForm Example Code under the program group Open Automation Software-Example in the Form FormConfigureOPC. This example is also listed in this help file in Programmatic Interface - .NET Programmatic Configuration - Programmatic Access OPC Browsing.

Getting Started

What do I do if I cannot find the answer to my question in this help file?
Contact Open Automation Software Technical Support Team at support@oasiot.com.
Where can download the latest version of Open Automation Software?
How do I check what changes are available in different versions of Open Automation Software?
You can view what version you are currently running using the Configure application and select Help-Versions. On that dialog there is a button to take to the following to check current versions. Visit: Open Automation Software Version History
What is the price of the software?
View OAS Pricing for some basic examples. Visit Request a Quote to request a product quotation.
Is there anything special that needs to be installed to run on Windows Embedded operating system?
Yes, the Microsoft Visual C++ libraries need to be installed.  Download from the following. http://www.microsoft.com/en-us/download/details.aspx?id=5582
Can I install Open Automation Software in silent mode?
Yes, run the following Setup.exe /s /v"/qn".
Should I develop a WPF, WinForm, or HTML5 client application?
All support communications over the Internet, so networking is not a deciding factor. Windows HMI is a good choice if:
  • The customer is not experienced in creating WPF applications but has strong knowledge in building Windows Forms applications and the application is not graphics intensive.
  • The application is for mainly displaying values.
  • The customer wants to use Open Automation Software Controls in an existing Windows Forms Application.
  • The customer wants to write a service to read and write data to Open Automation Software.
  • The customer application will be running on Windows 2000 Professional.
WPF HMI is a good choice if:
  • The customer has no preference and he want to use graphics.
  • The customer would like Lamps, Switches, Shapes, Gauges, Pie Charts, Bar Charts, PID Controls or story boards built into the control library.
  • The customer wants to be using the latest technology.
  • The customer’s application is graphic centered as opposed to mainly a data display.
  • The customer wants to automatically scale his application to the monitor size.
  • The customer wants the ability to Scale, Rotate or Skew object in the application.
Web HMI is a good choice if:
  • If you plan to run the application on a smart phone or non widows operating system.
I have a problem uninstalling Open Automation Software due to a missing MSI.
I am prompted to install the .NET Framework 3.5 during installation?
The .NET Framework 3.5 needs to be enabled. a) Press “Windows Logo” + “R” keys on the keyboard. b) Type “appwiz.cpl” in the “Run” command box and press “ENTER”. c) In the “Programs and Features” window, click on the link “Turn Windows features on or off”. d) Check if the “.NET Framework 3.5 (includes .NET 2.0 and 3.0)” option is available in it. e) If yes, then enable it and then click on “OK”. f) Follow the on-screen instructions to complete the installation and restart the computer, if prompted.

Windows Services

When do I need to use the OPC Data Fix?
Only when the OPC Server(s) you are connecting to do not run as a Windows Service and cannot be accessed from the SYSTEM account due to DCOM security.
What account are the OAS Services run under?
By default the SYSTEM account, but you can change the Service LogOn using the Service Control Manager.

Live Data Cloud

Do I need to use the Live Data Cloud for communications over the Internet?
No, you can use the standard networking in Open Automation Software if the data source has a fixed IP Address or domain name registered with the Internet. The Live Data Cloud is best when the data source IP Address is dynamic or you are just using a standard Internet connection.

UDP Broadcast

Do I need to use UDP Broadcast to send data across a network of the Internet?
No, you only need to use UDP Broadcast on networks that have a communication diode that only allow one way communications.
Can UDP Broadcast be used to send data to multiple remote services?
Yes.
Do I need to have all of the source tags defined in the remote receiving services?
No, set the Data Source in the receiving node to UDP Client.  View the video in the Videos-UDP Broadcast section.

OPC Server to OPC Server

Do I need Data Route to write to OPC Servers?
No, the products WinForm HMI, Web HMI, WPF HMI, .NET Data Connector, Recipe Connector, and Excel Connector will all have the ability on their own to write to OPC Servers when a write occurs. The Data Source of the Tag will determine where the value will be written.
Can Data Route be used to transfer data over the Internet?
Yes, by installing the OAS Service at the data source and the destination the values can be setup to automatically transfer remotely.  At the destination set the Data Source of the Value as Tag and set define the data source tag Value, then in the Target tab defines either a local OPC Item or a local or remote Open Automation Software Tag if using a Driver Interface Tag as a destination.
Do I need a license of Data Route on the source and destination?
If transferring values directly to OPC Items, yes. If transferring values to remote Open Automation Software tags you only need a license on the source where the Target is being defined.
Can I use Data Route to transfer data from PLC to other PLCs without using OPC?
Yes, the following Driver Interfaces are incorporated directly into Open Automation Software: