QualityTrack.g — writes the quality of a point as the value of another point.
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 polls the quality of an "input" point and writes the quality * as the value of another "output" point. * The input point is typically an actual point from an OPC server. The output * point is a synthetic point that can be used to trigger email and ODBC events. * * To alter this script, just edit the QualityTrack.constructor to change the * parameters of the .Track() call. The parameters are: * poll_secs - the polling rate. This can be fractional, as in 0.5 * input - the name of the input point as a symbol * output - the name of the output point as a symbol * * You can add as many .Track() calls as you need to monitor multiple points. * * In an email or ODBC Condition configuration, the quality of a point can be * compared to the OPC quality constants: * OPC_QUALITY_BAD * OPC_QUALITY_COMM_FAILURE * OPC_QUALITY_CONFIG_ERROR * OPC_QUALITY_DEVICE_FAILURE * OPC_QUALITY_EGU_EXCEEDED * OPC_QUALITY_GOOD * OPC_QUALITY_LAST_KNOWN * OPC_QUALITY_LAST_USABLE * OPC_QUALITY_LOCAL_OVERRIDE * OPC_QUALITY_MASK * OPC_QUALITY_NOT_CONNECTED * OPC_QUALITY_OUT_OF_SERVICE * OPC_QUALITY_SENSOR_CAL * OPC_QUALITY_SENSOR_FAILURE * OPC_QUALITY_SUB_NORMAL * OPC_QUALITY_UNCERTAIN */ require ("Application"); require ("Time"); class QualityTrack Application { } method QualityTrack.CheckQuality(input, output) { local info = PointMetadata(input); set (output, info.quality); } method QualityTrack.Track(poll_secs, input, output) { datahub_command(format("(create %a 1)", output)); .TimerEvery(poll_secs, `(@self).CheckQuality(#@input, #@output)); } method QualityTrack.constructor () { // Change the poll_secs and the two point names here. The # in front //of the point name is necessary. .Track(1, #$default:my_real_opc_point, #$default:my_synthetic_trigger); // Add more calls to .Track() here } ApplicationSingleton (QualityTrack);
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.