<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FBExchangeFile>
	<fileHeader company="Schneider Automation" product="Control Expert V14.1 - 191122A" dateTime="date_and_time#2021-7-12-11:24:6" content="Function Block source file" DTDVersion="41"></fileHeader>
	<contentHeader name="Project" version="0.0.9" dateTime="date_and_time#2021-7-12-12:11:37"></contentHeader>
	<FBSource nameOfFBType="Variable_ValueChangeDetection" version="0.16" dateTime="dt#2021-07-12-11:21:34">
		<comment>Geoffrey McPherson</comment>
		<attribute name="TypeDescriptiveForm" value="&lt;pre&gt;This DFB monitor  data changes of a variable over a specified time. If the data change x amount within a given time frame it triggers an alarm.&#xA;end_if&lt;/pre&gt;"></attribute>
		<attribute name="TypeCodeCheckSumString" value="D7C4"></attribute>
		<attribute name="TypeSignatureCheckSumString" value="C15E"></attribute>
		<attribute name="TypeDataDicSubfieldsCount" value="4"></attribute>
		<inputParameters>
			<variables name="Monitored_InputVar_REAL" typeName="REAL">
				<attribute name="PositionPin" value="1"></attribute>
			</variables>
			<variables name="Monitored_InputVar_INT" typeName="INT">
				<attribute name="PositionPin" value="2"></attribute>
			</variables>
		</inputParameters>
		<outputParameters>
			<variables name="ValueChangeDetected" typeName="BOOL">
				<attribute name="PositionPin" value="3"></attribute>
			</variables>
		</outputParameters>
		<privateLocalVariables>
			<variables name="Changing_value_REAL" typeName="REAL"></variables>
			<variables name="Changing_value1_REAL" typeName="REAL"></variables>
			<variables name="Changing_value2_REAL" typeName="REAL"></variables>
			<variables name="Changing_value3_REAL" typeName="REAL"></variables>
			<variables name="Change_detection1" typeName="BOOL"></variables>
			<variables name="Changing_value1_INT" typeName="INT"></variables>
			<variables name="Changing_value_INT" typeName="INT"></variables>
			<variables name="Changing_value3_INT" typeName="INT"></variables>
			<variables name="Changing_value2_INT" typeName="INT"></variables>
		</privateLocalVariables>
		<FBProgram name="code">
			<STSource>(* detect a value change for REAL data type*)
Changing_value1_REAL:= Monitored_InputVar_REAL;

Changing_value2_REAL:= Changing_value1_REAL - Changing_value3_REAL;

Changing_value3_REAL:= Monitored_InputVar_REAL;


(* detect a value change for INT data type*)
Changing_value1_INT:= Monitored_InputVar_INT;

Changing_value2_INT:= Changing_value1_INT - Changing_value3_INT;

Changing_value3_INT:= Monitored_InputVar_INT;


if (Changing_value2_REAL &lt;&gt;0.0)or(Changing_value2_INT &lt;&gt;0) then 
ValueChangeDetected := 1;
else
ValueChangeDetected := 0;
end_if;




</STSource>
		</FBProgram>
	</FBSource>
</FBExchangeFile>
