Videos – .NET Alarm

View the following video for basic steps on defining an alarm window for a Windows application.

Alarm .NET

Real-time and historical alarming desktop application and component for use in WinForm, and WPF applications.

Alarm .NET Windows

View live and historical alarms with 100% .NET control for WPF and WinForm applications for local and remote deployment.

Alarm Limits

How to setup alarm limits in real-time tag configuration.

Trends and Alarms Dashboard

How to use the Trend and Alarm Historian container.  Pre-built application to run locally and remotely.

.NET Alarm Window

How to add alarm windows to WPF and WinForm applications for local and remote connections.

Getting Started – .NET Alarm

The following resources will provide you information to integrate the .NET Alarm control into a Visual Studio project targeting .NET Framework.

The .NET Alarm windows can also be accessed in the prebuilt Trends and Alarms Dashboard that can be used directly for local and remote deployment.

If you do not have a copy of Visual Studio you can download a free version of Visual Studio Community (formerly Visual Basic Express or C# Express) from visualstudio.microsoft.com/vs/community.  You can choose whether to use Visual Basic or C#, but if you have no experience with either language, Visual Basic is easier for new developers.  No programming is required to use .NET Alarm.

The following steps can be used to add an alarm window to a C#, C++, or Visual Basic.NET application. All properties are programmatically accessible.

The following example demonstrates the alarm window with no code required. You can use Visual Studio 2019 with WPF applications and Visual Studio 2022 with WinForm applications.

Alarm Properties

The descriptions of each property of the alarm control can be viewed when selecting the property.

Step 1: Create New Project

Start Visual Studio and select File->New->Project to create a new C# or VB project for Windows Forms App (.NET Framework).

Visual Studio New Project

When prompted choose C# or Visual Basic as language to target Windows Desktop applications.

Visual Studio Project Selection

Choose Windows Forms App (.NET Framework) as the new project type for C# or Visual Basic.

Visual Studio Windows Forms App

Set the Project name, Location, and the Framework of 4.6.2 or greater.

Visual Studio WinForm New Project

Select Create in the lower right corner.

VS Project Create

Step 2: Add OPCAlarmControl to Form

Select View-Toolbox to select controls from the Open Automation Software group.

VS View Toolbox

From the Toolbox if OPCAlarmControl components are not available right click in the Toolbox and select Choose Items.

.NET WinForm HMI 294

NOTE: If you have installed Visual Studio after Open Automation Software you can either right click on the Toolbox and select Choose Items to include the OPCControls.dll assembly from C:\Program Files\Open Automation Software\OAS\Controls\NetFramework\OPCControls\ or uninstall Open Automation Software and reinstall to register the OPCControls.dll assembly with Visual Studio.

From the .NET Framework Components select the OPCAlarmControl component and then select OK.

.NET Alarm 402

Step 3: Add OPCAlarmControl to Form

Add the OPCAlarmControl or OPCWPFAlarm component onto the Form or Window.

.NET Alarm 403

Resize both the form and alarm window to the desired size.

.NET Alarm 404

Right click on the alarm window and select Properties.

.NET WinForm HMI 297

Set the Anchor property to Top, Bottom, Left, Right.

.Net Trend 363

Step 4: Define Alarm Properties

Expand the AlarmFilter property and set the desired filter settings for the alarm window.

.NET Alarm 405

Step 5: Networking Alarms

To define remote OAS Engines to interface with select the AlarmNetworkNodes property and click on the small grey square with the 3 dots at the right.

.NET Alarm 406

Select all network nodes you wish to receive alarms from to this alarm window.

.NET Alarm 407

NOTE: If you want the application to be deployed across a network to remote PCs select the Network Node or enter an IP Address in the NetworkNode field and use the Select button to include the network node or IP Address of the OAS Engine source.

Step 6: Retain Runtime Changes to File

If you desire for the operator’s changes to the alarm window during runtime to remain set the ConfgiurationFile property to a valid file path. Make sure each system the application will run on that the directory path is valid.

.Net Trend 371

Note: If you set this property to a file make sure you deploy the file with the application in the directory you specify.

Leave this property blank if you wish to have the default properties set during configuration remain on the application restarting.

Step 7: Build Project

Set the compile mode on the Visual Studio toolbar to Release.

VS Release Mode

Select Build from the VS menu and select to build the application.

VS Build App

Step 8: Run Project

Use Windows Explorer to browse for the application located in the bin\Release directory and run the application.

.NET Alarm 408

Step 8: Deploy Application

To deploy the application to remote nodes first make sure the AlarmNetworkNodes selection as described in Step 9 is set to a Network Node or IP Address. Then simply copy the files in the bin\Release directory to the target systems or follow the Smart Client deployment section in this help file to deploy your application using Click Once Deployment.

To deploy the application simply copy the files in the bin\Release directory to the target systems, or follow the Smart Client Deployment guide using Click Once Deployment. The remote system that will run the application should have the .NET Framework version installed that the application targets.

Overview – .NET Alarm

The OAS Alarm .NET product provides the features of viewing real-time and historical alarms on unlimited local and remote systems, alarm logging, alarm notification, and alarm statistics.

This product includes the windows services to monitor alarm limits, a .NET component to be used on local and remote systems to connect to the local windows service.

Alarming can be enabled to monitor both analog and digital signals with fixed, adjustable, and tracking alarm limits.

Alarm limits can be defined for high high, high, low, low low, rate of change, and digital alarms.

The first step is to define the Alarm Limits. This is demonstrated in the Quick Start Section under Configure Tags – Alarm Limits.

Alarm Limits are also demonstrated in the Alarm Limits video.

The next step is determine how you want to present the alarm to the user.

Users can view what is currently in alarm and history of alarms in both Windows and Web versions of the alarm windows. Both support Internet communications as well.

For Smart phones the Web Alarm Window is the right choice. For Windows and WPF applications the Windows Alarm Window is the one to use.

If you do not want to develop an application and just want to trend window to display your data you can use the OPC Trends and Alarms Dashboard.

Additional Information about Alarms:

  • Setup alarm notifications to send e-mails when alarms occur.
  • Setup alarm statistics to write results back to the real-time data service also using the Alarm Notification feature.
  • Setup Alarm Logging to SQL Server, Oracle, Access, mySQL, and CSV files.

Frequently Asked Questions – .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 5 or greater
  • .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 https://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

Videos – .NET Trend

View the following video for a quick introduction to OAS Trend .NET.

Trend .NET

Real-time and historical trending desktop application and component for use in WinForm, and WPF applications.

Trend .NET Windows

Realtime and historical trending for WPF and WinForm applications with 100% managed component for local and remote deployment.

Trends and Alarms Dashboard

How to use the Trend and Alarm Historian container.  Pre-built application to run locally and remotely.

.NET Trend Window

How to add a trend window to WPF or WinForm application for local and remote connections.

History and RealTime Compare

How to setup trending for historical and realtime trending in the same window with multiple time axis.

X/Y Plot

How to setup trending for an X/Y plot scale with one value assigned to the X Axis and multiple values to the Y Axis.

OAS Trend .NET Programmatic Methods

OAS Trend .NET Programmatic Methods 16There are several different methods to programmatically access the trend data and call history for the trend OPCTrendControl. Refer to the OPCTrendControl help file for all properties and methods with their description and syntax.

Use the GetTrendDataTable method to return a DataTable of all data in the current view.

Get Trend History Data Programmatically

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;
        }

OAS Trend .NET Toolbars

Modify Properties Button

Modify Properties Button 376Use the Modify Properties button to make on-line changes to all properties of the Trend Window.

Modify Properties Button 377

View Data Grid Button

View Data Grid Button 378Select the View Data Grid button to show a table of all values of the current trend.

Start Runtime Button

Start Runtime Button 379Select the Start Runtime button to put the Trend Window in real-time update mode. This button is useful if the Trend Window was previously stopped using the Stop Runtime button (see below).

Stop Runtime Button

Select the Stop Runtime button to freeze the Trend Window. Stop Runtime Button 380The Data Cursor button is then selectable.

Data Zoom Button

Data Zoom Button 381Select the Data Zoom button to zoom in on a section of the Trend Window. There are many other zoom types also.

Data UnZoom Button

Data UnZoom Button 382Select the Data UnZoom button to return the Trend Window to 100% data zoom if the Data Zoom button was previously used. There are many other zoom types also.

Data Cursor Button

Data Cursor Button 383The Data Cursor button is available with the Trend Window has been stopped with the Stop Runtime button (see above). Select the Data Cursor to bring up the data plane in 3D mode or data line in 2D mode. Use the mouse to move the data plane to see the date/time and values at the position of the data plane.

History Button

History Button 384Use the History button to freeze the Trend Window and select a Date and Time range to retrieve historical data for all Pens that have been logged using OAS Data Log.

Hide Toolbar Button

Hide Toolbar Button 385Select this button to hide the Toolbar. Click on the Trend Window with the Right Mouse button to show the Toolbar again.

Print Trend Window Button

Print Trend Window Button 386Select this button to print up the Print Preview window that can be used to print the current trend.

 

Print Trend Window Button Warning 387Some printer drivers do not support 3D Window rendering so the application will halt if the printer driver cannot handle the large memory for the print.

2D View Button

2D View Button 388Select this button to view the Trend in just 2 dimensions. Note this selection will not be retentive. Use the View Property to make the change retentive.

3D Perspective View Button

3D Perspective View Button 389Select this button to view the Trend in Perspective View. Note this selection will not be retentive. Use the View Property to make the change retentive.

3D Orthogonal View Button

3D Orthogonal View Button 390Select this button to view the Trend in Orthogonal View. Note this selection will not be retentive. Use the View Property to make the change retentive.

3D Free Rotate Button

3D Free Rotate Button 391Select this button to rotate the Trend Window on all 3 planes. This feature can be used to obtain non standard view perspectives of the data. Note this selection will not be retentive. Use the View Property to make the change retentive.

Predefined Projection Button

Predefined Projection Button 392Select this button to select predefined 2D and 3D views. Note this selection will not be retentive. Use the View Property to make the change retentive.

Predefined Projection Button 393

View Zoom Button

View Zoom Button 394Select this button to enable the mouse to Zoom In and Out by moving the mouse up and down. Note this selection will not be retentive.

Move Trend Button

Move Trend Button 395Select this button to move the Trend. Note this selection will not be retentive.

Lighting Button

Predefined Projection Button 392Use this button to select the desired lighting effect. Note this selection will not be retentive. Use the View Property to make the change retentive.

Lighting 396

User Log In

User Log In 397Use this button to Log In to the trend control when security is enabled in the service.

OAS Trend .NET Runtime Distribution

You can distribute the OAS Trend .NET component with your local and remote applications. This component will only connect to licensed OAS Services.

The Microsoft .NET Framework version 2.0 is required on all systems that will use the OPC Trend component. This is automatically included with Windows XP and greater. Only Windows 2000 systems will you need to install the .NET Framework 2.0 to.

The following files are required to be distributed with your applications that are commonly found in the installation directory of Open Automation Software.

  • For .NET Framework 2.0 the installation directory is C:Program FilesOpen Automation SoftwareOPCSystems.NET.
  • OPCTrendControl.dll
  • C1.Win.C1FlexGrid.2.dll
  • OPCSystemsInterface.dll
  • OPCSystemsBrowseComputers.dll
  • Nevron.Chart.dll
  • Nevron.Chart.WinForm.dll
  • Nevron.GraphicsGL.dll
  • Nevron.Presentation.dll
  • Nevron.System.dll

Visual Studio.NET Reference

To add the OAS Trend .NET component to your Visual Studio.NET development systems select View-Toolbox from within Visual Studio.NET.

Visual Studio.NET Reference 373

Right-Click on the Toolbox and select Add/Remove Items.

Visual Studio.NET Reference 374

Select OPCTrendControl for the .NET Framework Components.

Visual Studio.NET Reference 375

You are now ready to add the OAS Trend .NET component to your Visual Studio Forms to develop unlimited numbers of applications for local and remote connections to OAS Services with a valid OAS Trend .NET license.

Use the OAS Trend .NET Properties to setup the Trend Window attributes such as pens, time frames, and colors.

Set the ConfigurationFile property to a proper file path with the extension .alarm if you desire to save on-line changes.  If you leave this property blank the window setup is saved with your application, but on-line changes are not retentive.

Refer to the Windows Trending section for an example of setting up properties of the Trend Window.