Citect SCADA Help - Converting Legacy AlarmSetQuery Functions - System Model
Citect SCADA Help - Converting Legacy AlarmSetQuery Functions - System Model
System Model > Alarms > Using Custom Alarm Filters > Converting Legacy AlarmSetQuery Functions
With the release of Citect SCADA 7.30, the AlarmSetQuery() and Query() Cicode functions were replaced with a set of alarm filter
functions. If your project uses AlarmSetQuery(), you will need to review and manually replace each instance with the alarm filter
edit functions (see Implementing Queries that Use Custom Alarm Filters).
Below are examples of v7.20 Cicode and what the v7.30 Cicode may look like with the new alarm filter edit functions.
v7.20 code:
….
INT resultAlarmSetQuery=0;
// e.g. fieldName = Category, fieldValue = 10
// or fieldName = Tag, fieldValue = DigitalAlarm1
resultAlarmSetQuery =
AlarmSetQuery(21,"AlarmFilter","^""+fieldName+"^",^""+filterValue+"^"");//Obsolete in v7.30
…….
PUBLIC
INT
FUNCTION AlarmFilter
(INT iRecId,
INT iInst,
STRING fieldName,
STRING filterValue)
INT resultFilter=0;
STRING getValue="";
RETURN resultFilter;
END
v7.30 code:
….
INT resultAlarmSetQuery=0;
//AlarmSetQuery(21,"AlarmFilter30","^""+fieldName+"^",^""+filterValue+"^"");Obsolete in 7.30
....
PUBLIC
INT
FUNCTION AlarmFilter730
(STRING fieldName,
STRING filterValue)
END
PUBLIC
INT
FUNCTION AlarmFilter730
(STRING fieldName,
STRING filterValue)
INT hndl;
INT resultFilter=-1;
hndl = AlarmFilterEditOpen(21);
IF hndl <> -1 THEN
resultFilter = AlarmFilterEditSet(hndl, fieldName)
IF resultFilter = 0 THEN
resultFilter = AlarmFilterEditAppend(hndl, "=^"")
END
IF resultFilter = 0 THEN
resultFilter = AlarmFilterEditAppend(hndl, filterValue)
END
IF resultFilter = 0 THEN
resultFilter = AlarmFilterEditAppend(hndl, "^"")
END
IF resultFilter = 0 THEN
resultFilter = AlarmFilterEditCommit(hndl)
END
AlarmFilterEditClose(hndl)
END
RETURN resultFilter;
END
Published 2018