Danfoss MCO 305 Design Manual page 33

Programmable motion controller
Hide thumbs Also See for MCO 305:
Table of Contents

Advertisement

MCO 305 Design Guide
Program Example: Marker Synchronization
/********************* Marker synchronizing sample program ************************/
// Inputs:
1
Start/stop synchronization
//
2
Measure slave marker distance
//
3
Measure master marker distance
//
5
Master marker
//
6
Slave marker
//
8
Clear Error
// Outputs:
1
Within synchronizing accuracy, set accuracy window in parameter 33-13
//
2
Marker measurement active.
//
8
Error
***************************** Interrupts ****************************************/
ON ERROR GOSUB errhandle
// In case of error go to error handler routine, this must always be included
/******************************
VEL 100
// Sets maximum slave velocity related to parameter 32-80 Maximum velocity
ACC 100
// Sets slave acceleration related to parameter 32-81 Shortest ramp
DEC 100
// Sets slave deceleration related to parameter 32-81 Shortest ramp
/************************ Define application parameters *****************************/
LINKGPAR 1900 "Measuring velocity" 0 100 0
/************************* Set parameters and flags *******************************/
SET SYNCMTYPM 2
SET SYNCMTYPS 2
sync_flag = 0
/****************************** main loop ***************************************/
MAIN:
IF (IN 1 == 1) AND (sync_flag == 0) THEN
SYNCM
sync_flag = 1
ELSE
MOTOR STOP
sync_flag = 0
ENDIF
IF (IN 2 == 1) AND (sync_flag == 0) THEN
GOSUB slave_measure
ELSEIF (IN 3 == 1) AND (sync_flag == 0) THEN
GOSUB master_measure
ENDIF
GOTO MAIN
/*************************** Sub programs start **********************************/
SUBMAINPROG
/********************** Measure slave marker distance ******************************/
SUBPROG slave_measure
OUT 2 1
CVEL GET 1900
CSTART
old_ipos = IPOS
marker_number = 0
total_dist = 0
skip_first = 0
WHILE (IN 2 == 1) DO
new_ipos = IPOS
IF (new_ipos != old_ipos) THEN
marker_distance = new_ipos - old_ipos
IF (marker_distance < 0) THEN
marker_distance = (marker_distance * -1)
ENDIF
__ Functions and Examples __
Basic settings
// Set master marker type to external
// Set slave marker type to external
// Start synchronizing once when input 1 is high.
// Start marker synchronizing mode
// done flag
// Stop when input 1 is low.
// Reset sync_flag after stop.
// Start measuring slave marker distance
// Note: Slave motor will rotate
// Start measuring slave marker distance,
// master must run.
// Set "Marker measurement active" output
// Set measuring velocity
// Start constant velocity mode
// Read "old" marker position
// Reset variable
// Reset variable
// Reset variable
// Stay in measuring mode while input 2 high
// Read "new" marker position
// Check if a new marker was detected
// Calculate marker distance
// Change sign if negative
®
MG.33.L5.02 – VLT
is a registered Danfoss trademark
********************************/
33

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents