``` #"Sensor Master Pulse" := #"Master Clock" AND NOT #Aux.OnsM; #Aux.OnsM := #"Master Clock"; #"Sensor Slave Pulse" := #"Slave Clock" AND NOT #Aux.OnsS; #Aux.OnsS := #"Slave Clock"; #ElapsedRuntime_s := RUNTIME(#Aux.TimeRecorded); #Aux."Time Pass" := #Aux."Time Pass" + #ElapsedRuntime_s; IF #Reset THEN #Aux."Time Pass" := 0; END_IF; IF #"Master b/h" = 0 THEN RETURN; END_IF; #"Estimated Master half Clock s" := ( 3600.0 / #"Master b/h" ) / 2.0; IF #"Sensor Master Pulse" THEN #Aux."Time Pulse Sensor M" := #Aux."Time Pass"; END_IF; IF #"Sensor Slave Pulse" THEN IF ((#Aux."Time Pass" - #Aux."Time Pulse Sensor M") > #"Estimated Master half Clock s") THEN #"Diff Phase Time" := (2 * #"Estimated Master half Clock s") - (#Aux."Time Pass" - #Aux."Time Pulse Sensor M"); #PhaseAngle := (#"Diff Phase Time" / (2 * #"Estimated Master half Clock s")) * 3.14159; // Pi #"Phase Error" := -SIN(#PhaseAngle); ELSE #"Diff Phase Time" := #Aux."Time Pass" - #Aux."Time Pulse Sensor M"; #PhaseAngle := (#"Diff Phase Time" / (2 * #"Estimated Master half Clock s")) * 3.14159; // Pi #"Phase Error" := SIN(#PhaseAngle); END_IF; END_IF; #"Diff Phase %" := 100.0 * #"Phase Error" ; ```