
MCO 305 Design Guide
__ Functions and Examples __
34
MG.33.L4.02 – VLT
®
is a registered Danfoss trademark
IF (skip_first == 0) THEN
// Do not use first value as it might be invalid
skip_first
=
1
ELSE
marker_number = marker_ 1
// Increment counter
total_dist
=
tota marker_distance
// Summarize marker distances
ENDIF
old_ipos
=
new_ipos
// Set "old" marker position to "new" marker position
ENDIF
ENDWHILE
CSTOP
// Stop when leaving slave marker measurement
SET SYNCMPULSS (total_dist rnd marker_number)
// calculate average marker distance and set par.
OUT 2 0
// Reset "Marker measurement active" output
RETURN
/*********************** Measure master marker distance ****************************/
SUBPROG master_measure
OUT 2 1
// Set "Marker measurement active" output
old_mipos = MIPOS
// Read "old" marker position
marker_number = 0
// Reset variable
total_dist = 0
// Reset variable
skip_first = 0
// Reset variable
WHILE (IN 2 == 1) DO
// Stay in measuring mode while input 2 high
new_mipos
=
MIPOS
// Read "new" marker position
IF (new_mipos != old_mipos) THEN
// Check if a new marker was detected
marker_distance = new_mipos - old_mipos
// Calculate marker distance
IF (marker_distance < 0) THEN
// Change sign if negative
marker_distance = (marker_distance * -1)
ENDIF
IF (skip_first == 0) THEN
// Do not use first value as it might be invalid
skip_first
=
1
ELSE
marker_number = marker_ 1
// Increment counter
total_dist
=
tota marker_distance
// Summarize marker distances
ENDIF
old_mipos
=
new_mipos
// Set "old" marker position to "new" marker position
ENDIF
ENDWHILE
SET SYNCMPULSM (total_dist rnd marker_number)
// calculate average marker distance and set par.
OUT 2 0
// Reset "Marker measurement active" output
RETURN
/******************************** Error handler ************************************/
SUBPROG errhandle
err = 1
// Set error flag to remain in error handler until error is reset.
OUT 8 1
// Set error output
OUT 2 0
// Reset "Marker measurement active" output in case of error
WHILE err DO
// Remain in error handler until the reset is received
IF (IN 8) AND NOT (IN 2) THEN
// Reset error when Input 8 is high and input 2+3 low
ERRCLR
// Clear error
err=0
// Reset error flag
ENDIF
ENDWHILE
OUT 8 0
// Reset error output
sync_flag = 0
// Reset sync_flag after error
RETURN
/****************************************************************************/
ENDPROG
/********************************* End of program ******************************/
Summary of Contents for MCO 305
Page 4: ......