OPCReload.g — requests a reload of OPC server data with no disconnect.
![]() | The code for this and other example scripts can be found in the DataHub distribution archive, typically at one of these locations: C:\Program Files\Cogent\OPC DataHub\scripts\ C:\Program Files\Cogent\Cascade DataHub\scripts\ Please refer to Section 3.1, “How to Run a Script” for more information on using scripts. |
/* This script requests a reload of data from a connected OPC server
* without disconnecting from the server. It is particularly useful
* for automatically adding new points, and can poll for new points
* based on a timer or on a trigger point.
*
* You will need to edit the following three variables to run the
* script on your system:
*
* connection_label: The name given to your OPC connection when you
* defined your OPC server. This appears in the
* "Connection" column in your list of OPC Client
* connections in the Properties window.
*
* poll_time: The poll rate to check for new points, in seconds.
*
* trigger_point: The name of the point you will use as a trigger.
*
*/
require ("Application");
require ("OPCSupport");
class OPCReload Application
{
connection_label = "OPC002"; // connection label in "Connection" column of OPC properties
poll_time = 30; // poll rate for new points, in seconds
trigger_point = #$domain_name:point_name; // name of point used as a trigger
}
/* Transmit a "reload" command to the server, without disconnecting.
* To disconnect and reload, change the paramter to opc.reload to t
* instead of nil.
*/
method OPCReload.reload ()
{
local opc = new OPCConnection();
opc.setVerbose(t);
opc.setServer(.connection_label);
opc.reload(nil);
}
/* Start the polling timer */
method OPCReload.constructor ()
{
// To poll for new points periodically, use this line
.TimerEvery (.poll_time, `(@self).reload());
// To poll for new points only when a specific data point changes, use this line
.OnChange (.trigger_point, `(@self).reload());
}
/* Instantiate the class. This calls the constructor. */
ApplicationSingleton (OPCReload);
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.