Danfoss MCO 305 Programming guide

MCO 305 Command Reference

Contents

 

 

 

How to Read this Command Reference.....................................

3

 

How to Read this Command Reference ............................................................

3

 

Symbols and Conventions .............................................................................

4

 

Abbreviations ..............................................................................................

5

 

Definitions ..................................................................................................

5

 

Command Reference ................................................................

7

 

Appendix ..............................................................................

135

 

What’s New in the Update Version starting with MCO 5.00? ............................

135

 

Technical Reference ..................................................................................

139

 

Illustrations.............................................................................................

147

 

Index .....................................................................................................

150

Copyright

© Danfoss A/S, 2010

 

Trademarks

VLT is a registered Danfoss trademark.

 

Hiperface® is a registered trademark of the Sick Stegmann GmbH, Max Stegmann GmbH Antriebstechnik-

Elektronik.

Microsoft, Windows 2000, and Windows XP are either registered trademarks or trademarks of the Microsoft Corporation in the USA and other countries.

1

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

How to Read this Command Reference

How to Read this Command Reference

This Command Reference completes the MCO 305 Design Guide with the with the detailed description of all commands. Please read also the Operating Instructions, in order to be able to work with the system safely and professionally, particularly observe the hints and cautionary remarks.

Chapter How to Read this Command Reference informs you about the symbols, abbreviations, and definitions used in this manual.

Page divider for ‘How to Read this Command

Reference’.

Chapter Command Reference provides a detailed description of all commands including syntax, parameters, as well as program samples.

Page divider for ‘How to Program’.

Chapter Appendix gives a quick review of what has changed since previous releases in “What’s new?”. Experienced users will find detailed information in the technical reference material for example the “Array Structure of CAM Profiles”. Plus, the manual ends with an index.

Page divider for ‘Appendix’.

The Online Help provides in Chapter Program Samples almost 50 program samples which you can use to familiarize yourself with the program or copy directly into your program.

3

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ How to Read this Command Reference __

Available Literature for FC 300, MCO 305, and MCT 10 Motion Control Tool

The MCO 305 Operating Instructions provide the necessary information for built-in, set-up, and optimize the controller.

The MCO 305 Design Guide entails all technical information about the option board and customer design and applications.

This MCO 305 Command Reference completes the MCO 305 Design Guide with the detailed description of all commands.

The VLT® AutomationDrive FC 300 Operating Instructions provide the necessary information for getting the drive up and running.

The VLT® AutomationDrive FC 300 Design Guide entails all technical information about the drive and customer design and applications.

The VLT® AutomationDrive FC 300 MCT 10 Operating Instructions provide information for installation and use of the software on a PC.

Danfoss Drives technical literature is also available online at www.danfoss.com/drives.

Symbols and Conventions

Symbols used in this manual:

NB!:

Indicates something to be noted by the reader.

Indicates a general warning.

Conventions

The information in this manual follows the system and uses the typographical features described below to the greatest extent possible:

Menus and Functions

Menus and functions are printed italics, for example: Controller Parameters. Commands and Parameters

Commands and parameter names are written in capitals, for example: AXEND and KPROP; Parameters are printed in italics, for example: Proportional factor.

Parameter Options

Values for use to select the parameter options are written in brackets, e.g. [3]. Keys

The names of keys and function keys are printed in brackets, for example the control key [Ctrl] key, or just [Ctrl], the [Esc] key or the [F1] key.

4

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ How to Read this Command Reference __

Abbreviations

 

 

 

 

 

Ampere, Milliampere

A, mA

 

 

Control word

CTW

 

 

 

 

 

 

Digital Signal Processor

DSP

 

 

Frequency Converter

FC

 

 

 

 

 

 

Local Control Panel

LCP

 

 

Least significant bit

LSB

 

 

 

 

 

 

Main actual value

MAV

 

 

Motion Control Option

MCO

 

 

 

 

 

 

Motion Control Tool

MCT

 

 

Minute

min

 

 

 

 

 

 

Most significant bit

MSB

 

 

Main Reference

MRV

 

 

 

 

 

 

Master Unit

MU

 

 

Digital output switching to high side.

NPN

 

 

 

 

 

 

 

 

 

 

Parameter

par.

 

 

Position Control Loop

PID

 

 

 

 

 

 

Digital output switching to low side.

PNP

 

 

Pulses per Revolution

PPR

 

 

 

 

 

 

Quad-counts

qc

 

 

Reference

REF

 

 

 

 

 

 

Revolutions per Minute

RPM

 

 

Second, Millisecond

s, ms

 

 

 

 

 

 

Sample time

st

 

 

Status word

STW

 

 

 

 

 

 

User Unit

UU

 

 

Volts

V

 

 

 

 

 

Definitions

MLONG

An upper or lower limit for many parameters: -MLONG = -1,073,741,824

MLONG = 1,073,741,823

Quad-counts

Incremental encoders: 4 quad-counts correspond to one sensor unit.

Absolute encoders: 1:1 (1 qc correspond to one sensor unit).

Through edge detection, a quadrupling of the increments is produced by both tracks (A/B) of the incremental encoder. This improves the resolution.

Derivation of quad counts

MG.34.R1.02 – VLT® is a registered Danfoss trademark

5

MCO 305 Command Reference

__ How to Read this Command Reference __

User Units

The units for the drive or the slave and the master, respectively, can be defined by the user in any way desired so that the user can work with meaningful measurements.

Starting with MCO 5.00 the factors SYNCFACTM / SYNCFACTS, POSFACT_Z / POSFACT_N are no longer limited to small values

Internally, it is act as follows: Whenever a value must be multiplied by the gear factor (i.e. master increments per ms), at first it is looked if a multiplication will result in an overflow. If so, a factor (64 bit) is used which consists of

SYNCFACTS/SYNCFACTM to multiply the delta_master.

If no overflow occurs, first it is multiplied by SYNCFACTS and then divided by SYNCFACTM. Concerning the error we are dealing with, this means:

Normal case

Multiplying by SYNCFACTS has no error, but dividing by SYNCFACTM means that the result may be wrong by 1/2³² . That means that (worst case) such an error occurs every ms, i.e. that after 1193 hours (49,71 days) we made an error of 1 qc (Slave).

Big factors

In that case, the used factor (SYNCFACTS/SYNCFACTM) itself could be wrong by 1/2³² . This means that in the worst case an error of delta_master * 1/2³² occurs every ms. Assume that we have an encoder with 1000 counts (4000 qc) per revolution. Assume further, that we drive with 2000 rpm, i.e. we have a velocity of 133 qc/ms. This means we make an error of 133 * 1/2³² per ms. From this follows that in worst case (maximum error every ms always in same direction) we could have an error of 1 qc after 9 hours.

This should not be relevant in most applications.

User Units [UU]

All path information in motion commands are made in user units and are converted to quad-counts internally. These also have an effect on all commands for the positioning: e.g. APOS.

The user can also select meaningful units for the CAM control in order to describe the curve for the master and the slave, for example 1/100 mm, or 1/10 degrees in applications where a revolution is being observed.

In the CAM control, the maximum run distance of the slave or the slave cycle length are indicated in User Units UU (qc).

The unit can be standardized with a factor. This factor is a fraction which consists of a numerator and denominator:

1 User Unit UU = par. 32 - 12 User Unit Numerator par. 32 - 11 User Unit Denomintor

par. 32-12 User Unit Numerator POSFACT_Z par. 32-11 User Unit Denominator POSFACT_N

Scaling determines how many quad-counts make up a user unit. For example, if it is 50375/1000, then one UU corresponds to exactly 50.375 qc.

NB!:

When user units are transferred into qc, then they get truncated. When qc are transferred into user units, then they get rounded.

Master Units [MU]

A factor (fraction) is used for the conversion into qc, as with the user unit:

1 Master Unit MU = par. 33 −10 Synchronization Factor Master par. 33 −11 Synchronization Factor Slave

par. 33-10 Synchronization Factor Master SYNCFACTM par. 33-11 Synchronization Factor Slave SYNCFACTS

6

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

Command Reference

In the following section all commands are listed in alphabetical order and described in detail with syntax examples as well as short program samples. Please read also the section “Basics” in chapter “How to Progam” in the MCO 305 Design Guide.

7

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

ACC

Summary Setting acceleration for motion commands.

Syntax

ACC a

Parameter

a = acceleration

Description

The ACC command defines the acceleration for the next motion command (speed

 

control, synchronizing or positioning). The value will remain valid until a new

 

acceleration value is set, using the ACC command. The value is related to the

 

parameters 32-81 Shortest Ramp and 32-80 Maximum Velocity as well as 32-83

 

Velocity Resolution.

NB!:

If acceleration has not been defined previous to a motion command, then the maximum acceleration will be the setting of par. 32-85 Default Acceleration.

NB!:

If the MCO 305 is used to control FC 300, then the ramps should always set via the option card and not in the FC 300. The FC 300 ramps must always be set to minimum.

Command Group

REL, ABS

 

 

Cross Index

DEC, VEL, POSA, POSR,

 

 

Parameters: 32-81 Shortest Ramp, 32-80 Maximum Velocity, 32-83 Velocity

 

Resolution

 

 

Syntax Example

ACC 10

/* Acceleration 10 */

Example

minimum acceleration time:

1000 ms

 

maximum velocity:

1500 RPM (25 Rev./s)

 

velocity resolution:

100

 

Velocity

 

<![if ! IE]>

<![endif]>175MD450

 

par. 32-80

 

 

[RPM]

 

 

 

VELMAX

 

 

 

RAMPMIN

RAMPMIN

t

 

par. 32-81

par. 32-81

[ms]

Program Sample

ACC_01.M

 

 

8

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

APOS

Summary Reads actual position

Syntax res = APOS

Return Value res = absolute actual position related to the actual zero point

All path information in motion commands are made in user units and are converted to quad-counts internally. (See also Numerator and Denominator, parameters 32-12 and 32-11.)

The user unit (UU) corresponds in standard setting to the number of Quad counts.

Parameter =

par. 32 - 12 User Unit Numerator

= 1

par. 32 - 11 User Unit Denomintor

 

 

Description The APOS command can query the absolute position of the axis related to the actual zero point.

If a temporary zero point which has been set via SETORIGIN exists, then the position value is relative to this zero point.

NB!:

The read out using APOS may or may not be equal to the target position or commanded position. The error or deviation may be due to the mechanics involved and truncated decimal values in the User Units.

APOS is affected by the parameters 32-12 and 32-11, and by commands SETORIGIN p, DEFORIGIN.

 

Example:

 

Initial

After Positioning

 

POSA 2000

 

0

0

 

PRINT "Actual Position Reached", APOS

 

 

 

 

 

 

 

 

 

 

Output:

 

 

 

 

 

 

 

 

 

 

 

 

Actual Position Reached 2000

 

 

 

 

 

(depending on PID settings a small deviation

 

 

 

 

 

may occur)

 

 

 

 

 

 

Example with SETORIGIN

After execution

Initial

 

SETORIGIN 2000

 

 

0

 

POSA 2000

 

2000

 

 

 

 

 

 

 

 

 

PRINT "Actual Position”, APOS

 

 

 

 

 

 

 

 

 

 

Output:

 

 

 

 

 

 

Actual Position 2000

 

 

 

 

 

Program on execution sets the original 2000 qc as the origin and then moves the

 

drive by 2000 qc more for positioning command.

 

 

 

 

Command Group

SYS

 

 

 

 

 

Cross Index

CPOS, DEFORIGIN, SETORIGIN, POSA, POSR,

 

 

 

 

 

Parameters: 32-12 User Unit Numerator, 32-11 User Unit Denominator

Syntax Example

PRINT APOS

/* display the actual position of axis on the PC */

Program Sample

APOS_01.M, GOSUB_01.M, MOTOR_01.M

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

9

MCO 305 Command Reference

__ Command Reference __

APOSDIFF

 

Summary

Overflow handling of incremental encoders in applications.

 

 

 

 

Syntax

res = APOSDIFF oldpos

 

Return Value

oldpos = APOS at a previous time

 

Description

Returns difference between APOS and oldpos (res = APOS – oldpos) in UU.

 

 

This command simplifies overflow handling of incremental encoders in applications.

 

 

If, for example, the user stores an actual position in his program and wants to

 

 

calculate the difference at a later time, then he normally has to account for overflow

 

 

of the position. Instead this command can be used; see below.

 

 

Internally those routines look if the difference is bigger than POS_LIMIT

 

 

(0x3FFFFFFF). If so then it is assumed that an overflow happened and it is handled

 

 

correctly.

 

 

 

NB!:

 

 

 

This will not solve the problem of overflowing if the application uses user units.

 

Portability

Command is available starting with MCO 5.00

 

Command Group

SYS

 

 

Cross Index

APOS

 

 

Syntax Example

oldpos = APOS

 

 

 

…..

 

 

 

diff = APOSDIFF oldpos

 

 

// this function returns the difference between APOS and oldpos in user units

 

 

// handling an overflow if necessary (diff = APOS – oldpos)

 

 

 

 

AVEL

 

 

 

 

 

 

Summary

Queries actual velocity of axis.

 

 

 

 

 

Syntax

res = AVEL

 

 

Return Value

res = actual velocity of axis in UU/s, the value is signed

 

Description

This function returns the actual velocity of the axis in User Units per second. The

 

 

accuracy of the values depends on the duration of the measurement (averaging).

 

 

The standard setting is 20 ms, but this can be changed by the user with the

 

 

_GETVEL command. It is sufficient to call up the command once in order to work

 

 

with another measuring period from then on. Thus, the command:

 

 

var = _GETVEL 100

 

 

sets the duration of the measurement to 100 ms, so that you have a considerably

 

 

better resolution of the speed with AVEL and MAVEL, however, in condertrast, quick

 

 

changes are reported with a delay of a maximum of 100 ms.

 

Command Group

SYS

 

 

Cross Index

MAVEL, APOS, _GETVEL

 

Syntax Example

PRINT AVEL

/* queries actual velocity of axis and display on the PC */

 

 

 

 

10

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

AXEND

Summary AXEND reads info on status of program execution.

Syntax res = AXEND

Return Value res = axis status with the following meaning:

Value

Bit

 

 

 

 

 

 

128

7

1

= Motor is reset, i.e. it is ready to start and is controlling

 

 

again, e.g. after ERRCLR, MOTOR STOP, MOTOR ON

 

 

 

 

64

6

1

= axis controller is OFF, motor is off

 

 

 

 

4 - 5

not in use

 

 

 

 

8

3

1

= motor is at STOP status

 

 

 

 

4

Bit 2

1

= speed mode is active

 

 

 

 

2

Bit 1

1

= positioning procedure is active

 

 

 

 

1

Bit 0

1

= target position reached; motor is not in motion

 

 

 

 

Description The AXEND command gives the actual status of the axis or the status of the program execution.

This means for example that you can enquire when the “position is reached” and a positioning command (POSA, POSR) has actually been completed. When Bit 1 is set at [0] the positioning process is complete and the position reached.

If, however, the positioning command has been interrupted with MOTOR STOP and continued later with CONTINUE, then the following bits would be set at [1]:

the Bit 0 for “motor is at a standstill” the Bit 1 for “positioning process active” the Bit 3 for “motor is at STOP status” the Bit 6 for “axis controller switched off”

The AXEND command is especially suitable for determining whether or not a movement in the NOWAIT ON condition is terminated.

Command Group

SYS

 

 

Cross Index

WAITAX, STAT, NOWAIT

 

Syntax Example

NOWAIT ON

 

// do not wait until position is reached

 

POSA 100000

 

 

 

WHILE (AXEND&2) DO

 

 

// as long as the positioning process is active, repeat loop

 

IF IN1 THEN

 

// if input 01 is set

 

VEL 100

 

// increase velocity

 

POSA 100000

 

 

WAIT IN1 OFF

// wait until input (key) is off

 

ENDIF

 

 

 

ENDWHILE

 

// position reached

Syntax Example

IF (AXEND&64) THEN

 

 

OUT 1 1

// set output 01, when axis controller is switched off

 

ELSE

 

 

 

OUT 1 0

 

 

 

ENDIF

 

 

Program Sample

AXEND_01.M

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

11

MCO 305 Command Reference

__ Command Reference __

CANDEL

 

 

 

 

 

 

 

 

Summary

Deletes all or single CAN objects.

 

 

 

 

 

 

Syntax

CANDEL objno

 

 

Parameter

objno = object number, which is returned during the definition of the object

 

 

 

= –1 deletes all objects (except the standard objects)

 

Description

With the CANDEL command CAN objects which were previously created with

 

 

DEFCANIN or DEFCANOUT can be deleted.

 

 

Standard objects, for the buffered input/output (OUTMSG or INMSG) cannot be

 

 

deleted with this command. These cannot be created during initialization.

 

Portability

Command is available starting with MCO 5.00.

 

Command Group

CAN

 

 

Syntax Example

CANDEL –1

/* all CAN objects are deleted */

 

 

 

 

 

CANIN

Summary

Reads an object via the CAN bus.

 

 

 

 

Syntax

status = CANIN objno time-out control varhi varlo

Parameter

objno

= object number which is returned during the definition of the object.

 

time-out

= –1

does not wait for data

 

 

= 0

waits until data arrives

 

 

> 0

waits for the data in time-out [ms]

 

control

= 0

Checks whether the new data has arrived. The new data is

 

 

 

subsequently copied to the variables.

 

 

= 1

Sends a remote frame and waits for data in dependence on

 

 

 

time-out

 

varhi

= Bytes 0 to 3 of the CAN object data

 

varlo

= Bytes 4 to 7 of the CAN object data

Return Value

Status

= –1

no data has arrived

 

 

= 0

o.k.

Description The CANIN command copies the data (if present) of the CAN object 'objno' to the variables 'varhi' and 'varlo'. If 'control = 1', then the data is requested first.

It is possible to gather all Transmit-PDOs of digital input modules or CAN-Drive status by using only one CAN telegram. This feature is restricted to the Master-bus. This feature must use the CAN-Object 15 internally which reduces the number of usable CAN objects on the master bus by 1.

To enable this feature, the command CANINI 999 must be used

This command enables reception of TxPDOs by interrupt and stores every received PDO in a buffer with a depth of 1. This works for all IDs from 1 to 127. That means if any IO-module in that range sends a TxPDO it is captured and stored it in the buffer. The next TxPDO from the same module of course overwrites the first one. To read out of the buffer, the following command can be used:

result = CANIN (id * 100) timeout 0 hi lo

This command returns -1 if no new information was in the buffer, otherwise it returns 0. You can use the timeout normally (-1 does not wait, 0 waits for ever for new information, n waits n ms).

12

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

 

The result is returned in hi and lo, but we already arrange byte ordering so that

 

they can be used as if you read them with PDO[]. That means if lo contains a 32-bit

 

number then you can use it right away without reordering the bytes.

 

Whenever you use a new CANINI command or you start a new program, this

 

feature is disabled.

 

 

Using this feature of course loads the processor if there is heavy PDO traffic on the

 

BUS.

 

 

NB!:

 

 

It is not recommend this feature be used together with other CAN IO commands on

 

the same bus. This may lead to unwanted results. If you use, for example, a

 

CANopen digital I/O module with ID 3 on the master bus with an IN (3*256+1) or

 

with CANINI 3 999, then this will result in a situation where the IN command will

 

work but you would not get the PDOs with the above described CANIN command.

 

This is because two CAN objects will exist with the same ID. In that case, the

 

processor only serves the first one. As mentioned above, we use object 15 for

 

reception of all PDOs, which is the last one.

Portability

Optional command and extended commands CANINI and CANIN to use only one

 

CAN telegram are available starting with MCO>=5.00.

Command Group

CAN

 

Cross Index

CANOUT, CANDEL, DEFCANOUT, DEFCANIN, CANINI

Syntax Example

MSG = 0

 

 

temp = 0

/* Define variables */

 

rx1 = DEFCANIN 42 8

/* a RX object is created */

 

STAT = CANIN rx1 1000 0 MSG temp

/* wait 1s for data */

Program Sample

CAN_sample.M, CANIN.M

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

13

MCO 305 Command Reference

__ Command Reference __

CANINI

Summary Initializes the necessary objects (PDOs) for data exchange of CANopen nodes, or enables extended CANINI, CANIN function.

Syntax CANINI no, no, no, …, CANINI 999

CANINI no, no, 999, no

is also possible, but only in the same command. The next new command would delete the previous parameters.

Parameter no = guard * (busoffset * 1000 + id)

guard

= –1, +1 (without / with guarding)

busoffset

= 100000 , 0 (slave bus, master bus)

Samples for CANINI values:

0Deletes any objects, which were formerly assigned using the CANINI command.

999enables reception of all TPDO1s (0x181-0x1FF) by interrupt and stores every received PDO in a buffer with a depth of 1.

1…127 CAN I/O with bus ID 1…127 with guarding -1…–127 CAN I/O with bus ID 1…127 without guarding

Description The CANINI command establishes contact with CAN devices and creates permanent corresponding CAN objects in order to be able to communicate (using PDO) with these devices. The advantage is that these input modules can also be used for interrupt functions without permanent bus load due to status polling.

If you do not need any interrupts, then you can accelerate the processing of the IN and INB commands with CANINI, since the corresponding devices send these information autonomously every time a change of state happens.

It is strongly recommended to “guard” (i.e. CANINI > 0) any CAN devices, which are initialized using CANINI. That is the only way to make sure, that the device is still present and takes part in bus communication. If one device is no longer present, then an error 188 is triggered by the missing feedback of the GUARD object. An error routine, defined with ON ERROR can react to such an error state.

When CANINI is executed for drives, the corresponding PDO is created and also the SYNC object if necessary. If guarding is started, a guarding telegram is sent every 20 ms to one device. If for example 4 devices are guarded, it takes 80 ms to check each device once. No response within 100 ms indicates an error 188 (guarding error).

A maximum of 16 modules can be stored internally.

Every new CANINI command reinitializes all objects which were assigned before with CANINI, i.e. guarding (GUARD) is stopped and also SYNC telegrams. This is not true, if there are permanent objects from par. 32-00 or 32-30 Incremental Signal Type. These objects will still remain, like the internal automatically created PDOs corresponding to the definition of parameters 32-00 and 32-30 Incremental Signal Type.

The CANINI command starts all modules synchronously, i.e. for every module a NMT0 message is sent to set the module on the status “operational”.

If a CANINI fails, it is possible to read the SYSVAR 67 [0x01220244] GuardErrorId to find out which id caused the problem.

Portability Command is available starting with MCO 5.00.

14

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

 

 

 

 

NB!:

 

 

 

 

 

If the CANINI command is used on controls with multiple separated CAN bus

 

 

 

 

circuits, GUARD and SYNC functionality is only supported on the so-called slave

 

 

 

 

bus.

 

 

Command Group

 

 

CAN

 

 

Cross Index IN, INAD, INB, OUT, OUTB, OUTDA,

 

 

 

 

par. 32-00 and par. 32-00 Incremental Signal Types

 

Syntax Example

 

 

CANINI 1,2,3,4 /* Initialize the CAN modules with pre-set node number */

 

Program Sample

 

 

CAN_sample.M

 

 

 

 

 

 

CANOUT

 

 

 

 

 

 

 

 

 

Summary

Sends message with an internal number.

 

 

 

 

 

Syntax

CANOUT no valhi vallo

 

Parameter

valhi

Bytes 0 to 3 of the CAN object data

 

 

vallo

Bytes 4 to 7 of the CAN object data

 

Description

A CAN message is sent with this command from a sending object defined by

 

 

DEFCANOUT. The values hi and lo are 4 bytes long

 

Portability

Command is available starting with MCO 5.00.

 

Command Group

CAN

 

 

Cross Index

CANIN, CANDEL, DEFCANIN, DEFCANOUT

 

Syntax Example

valhi = 21

 

 

vallo = 41

 

 

tx1 = DEFCANOUT 500 8

 

 

/* TX object is defined with Id=500 and data length = 8 bytes */

 

 

CANOUT tx1 valhi vallo /* a CAN message is sent */

 

Program Sample

CANOUT.M

 

 

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

15

MCO 305 Command Reference

__ Command Reference __

COMOPTGET

Summary Reads a Communication option telegram

Syntax COMOPTGET no array

Parameter array = the name of an array which must be at least the size of no no = number of words to be read

Description COMOPTGET reads from the Communication option buffer the no words and writes them in the array ‘array’, starting with the first element.

Portability Option

Communication Parameters: Read and write parameters are not affected by the option board.

Option Function

NB!:

The parameters 9-15 and 9-16 have additionally to be set with the correct values.

Control data: The function of Control word (CTW) and Main Reference (MRV) depends on the setting of par. 33-82 Drive Status Monitoring; Status words (STW) and Main actual value (MAV) is always active:

 

 

 

 

Parameter 33-82

Parameter 33-82

 

 

 

 

 

 

 

 

 

 

 

 

“Enable MCO 305”

“Disable MCO 305”

 

 

 

 

 

 

 

 

 

CTW/MRV

Disabled

Active

 

 

 

 

 

 

 

 

 

STW/MAV

Active

Active

 

 

 

 

 

 

 

 

Process data:

PCD’s 1 – 4 of PPO type 2/ 4 and PCD’s 1 – 8 of PPO type 5 are not assigned a

 

 

parameter number by parameters 9-15 and 9-16 but are used as a free data area

 

 

which can be used in a APOSS program.

 

 

 

 

The command COMOPTGET is copying the data received on the communication

 

 

option into an array, where each array element contains one data word (16 bit).

 

 

The command COMOPTSEND is copying data from an array, where each array

 

 

element contains one data work (16 bit) into the send buffer on the communication

 

 

option, from where it is send via the network to the master.

 

Command Group

Communication option

 

 

 

 

Cross Index

COMOPTSEND

 

 

 

 

Program Sample

COM_OPT

 

 

 

 

 

 

 

 

 

 

COMOPTSEND

 

 

 

 

 

 

 

 

 

 

 

Summary

Writes in the Communication option buffer

 

 

 

 

 

 

 

 

 

Syntax

COMOPTSEND no array

 

 

 

 

Parameter

array = the name of an array which must be at least the size of ‘no’

 

 

no =

number of words to be sent

 

 

 

Description

COMOPTSEND writes in the Communication option buffer. In doing so the first ‘no’

 

 

values are sent from the ‘array’.

 

 

 

Portability

With built-in Communication option.

 

 

 

Communication

See command COMOPTGET

 

 

 

 

Option Function

 

 

 

 

 

 

Command Group

Communication option

 

 

 

 

Cross Index

COMOPTGET

 

 

 

 

Program Sample

COM_OPT

 

 

 

 

 

 

 

 

 

 

16

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

CONTINUE

 

Summary

Continues positioning from point of interrupted motion

 

 

 

 

 

 

Syntax

CONTINUE

 

 

Description

By using CONTINUE, positioning and speed motion commands which have been

 

 

aborted via the MOTOR STOP command or an error condition or stopped via MOTOR

 

 

OFF can be resumed.

 

 

The CONTINUE command can be used especially in an error subroutine in

 

 

connection with the ERRCLR command, to enable the correct continuation of a

 

 

motion procedure following an error abort.

 

 

NB!:

 

 

 

However CONTINUE does not continue interrupted synchronization commands.

 

Command Group

CON

 

 

Cross Index

MOTOR STOP, ERRCLR, ON ERROR GOSUB

 

Syntax Example

CONTINUE

/* continue interrupted motion procedure */

 

Program Sample

MSTOP_01.M

 

 

 

 

 

 

CPOS

 

 

 

 

 

 

 

 

Summary

Reads the actual command position of an axis

 

 

 

 

 

 

Syntax

res = CPOS

 

 

Return Value

res = Absolute commanded position in User Units (UU) related to the actual zero

 

 

 

point

 

 

Description

The CPOS command queries the actual commanded position of the axis related to

 

 

the actual zero point. The commanded position is understood to be the temporary

 

 

set position which is re-calculated every millisecond by the positioning control

 

 

during a positioning procedure or a movement in rotation mode.

 

 

The command position can be queried independently of the operating condition

 

 

(position control during standstill, positioning process, speed control or

 

 

synchronization).

 

 

NB!:

 

 

 

If a set and active temporary zero point (set via SETORIGIN) exists, then the

 

 

position value is relative to this zero point.

 

Command Group

SYS

 

 

Cross Index

APOS, DEFORIGIN, SETORIGIN, POSA, POSR,

 

 

Parameters: 32-12 User Unit Numerator, 32-11 User Unit Denominator

 

Syntax Example

PRINT CPOS

/* actual command position of axis */

 

Program Sample

CPOS_01.M, GOSUB_01.M

 

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

17

MCO 305 Command Reference

__ Command Reference __

CPOSDIFF

 

 

 

 

 

 

Summary

Overflow handling of incremental encoders in applications.

 

 

 

 

Syntax res = CPOSDIFF oldpos

 

Parameter

 

oldpos

= CPOS at a previous time

 

Return Value Returns difference between CPOS and oldpos (res = CPOS – oldpos) in UU.

 

Description This command simplifies overflow handling of incremental encoders in applications.

 

 

 

If, for example, the user stores an actual position in his program and wants to

 

 

 

calculate the difference at a later time, then he normally has to account for over-

 

 

 

flow of the position. Instead this command can be used; see below.

 

 

 

Internally those routines look if the difference is bigger than POS_LIMIT

 

 

 

(0x3FFFFFFF). If so then it is assumed that an overflow happened and it is handled

 

 

 

correctly.

 

 

 

This will not solve the problem of overflowing if the application uses user units.

 

Portability Command is available starting with MCO 5.00.

 

Command Group

 

SYS

 

 

Cross Index

 

CPOS

 

 

Syntax Example

 

oldpos = CPOS

 

 

 

…..

 

 

 

 

diff = CPOSDIFF x(1) oldpos

 

 

 

// this function returns the difference between CPOS and oldpos in user units

 

 

 

// handling an overflow if necessary (diff = CPOS – oldpos)

 

 

 

 

 

CSTART

 

 

 

 

 

 

 

Summary

Starts the speed mode

 

 

 

 

 

Syntax

CSTART

 

 

Description

The CSTART command is starting the drive in speed control mode.

 

 

Acceleration/deceleration, as well as the speed should be set via the ACC, DEC and

 

 

CVEL commands prior to starting.

 

 

CSTART does not contain the command MOTOR ON which turns on the motor

 

 

control. When using CSTART an explicit calling up of MOTOR ON is necessary after

 

 

previous use of MOTOR OFF.

 

 

NB!:

 

 

 

If no speed value has been defined via CVEL before the beginning of CSTART, then

 

 

the default velocity 0 is used – this means that the motor will not rotate, but the

 

 

PID controller is active.

 

 

All CVEL commands following the start of speed mode will be carried out

 

 

immediately, i.e. a corresponding speed change will take place immediately, with

 

 

the defined acceleration or deceleration (ACC/DEC).

 

Command Group

ROT

 

 

Cross Index

ACC, DEC, CVEL, CSTOP

 

Syntax Example

CSTART

/* rpm mode start */

 

Program Sample

CMODE_01.M

 

 

 

 

 

18

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

CSTOP

Summary

Stops the drive in speed mode

 

 

 

Syntax

CSTOP

 

Description

Via the CSTOP command, the speed mode is terminated and the positioning mode

 

is started, whereby a still rotating axis is stopped the deceleration defined with DEC

 

and the motor is held in the stop position.

 

NB!:

 

 

A CSTOP command carried out in the positioning mode can also cause an abrupt

 

termination of the positioning procedure.

Command Group

ROT

 

Cross Index

ACC, DEC, CVEL, CSTART

Syntax Example

CSTOP

/* rpm mode stop */

Program Sample

CMODE_01.M

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

19

MCO 305 Command Reference

__ Command Reference __

CURVEPOS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Summary

Retrieve slave curve position that corresponds to the current master position of

 

 

the curve.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Syntax

res =

CURVEPOS

 

Return Value

res = Slave position in CAM units (UU) absolute to the current zero point.

 

Description

CURVEPOS returns the slave value which corresponds to the actual curve master

 

 

position.

 

 

The position can be retrieved independently of the operating status (position

 

 

control at standstill, positioning procedure, velocity control or synchronization).

 

 

CMASTERCPOS (SYSVAR) and CURVEPOS are now updated even if SYNCC is no

 

 

longer active. The update of these values starts after a SETCURVE command (if

 

 

par. 33-23 Start Behavior for Sync is < 2000) or after SYNCC and the first master

 

 

marker (if par. 33-23 = 2000).

 

 

After the SYNCC command is stopped, we continue to update these values if Start

 

 

Behavior for Sync. < 2000.

 

 

NB!:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The position is only defined if a SETCURVE has been set before.

 

 

NB!:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

If a temporary zero point exists which has been set with SETORIGIN and is active,

 

 

the position value will refer to this zero point.

 

 

NB!:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DEFMCPOS and DEFMORIGIN can still modify this position.

 

Command Group

CAM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cross Index

APOS, DEFORIGIN, SETORIGIN, POSA, POSR, DEFMCPOS,

 

 

Parameters: 33-10 Syncfactor Master, 33-11 Syncfactor Slave

 

Syntax Example

PRINT CURVEPOS // print actual slave position of the curve

 

Sample Fix points of a curve:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Master

Slave

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

500

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

700

300

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1000

1200

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Say the current master position is 800. Then the CURVEPOS returns the corresponding slave position of 450.

Case 1: Current Master Position is 800 and current slave position is 200. CURVEPOS will return the value 450.

Case 2: Current Master Position is 800 and current slave position is 700. CURVEPOS will return the value 450.

Hence CURVEPOS is independent of the slave position.

20

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

CVEL

 

 

 

 

 

 

 

 

 

Summary

sets velocity for speed controlled motor movements

 

 

 

 

 

 

 

Syntax

CVEL v

 

 

 

Parameter

v = velocity value (negative value for reversing)

 

 

 

Command Velocity [RPM] = V *

par. 32 - 80 Maximum Velocity

 

 

 

 

 

par. 32 - 83 Velocity Resolution

 

Description

The velocity for the next speed controlled motor movement is set with the CVEL

 

 

command. The value remains valid until a further CVEL sets a new velocity.

 

 

The velocity value to be given will be related to the parameters 32-80 Maximum

 

 

Velocity and 32-83 Velocity Resolution.

 

 

NB!:

 

 

 

 

CVEL commands which take place after CSTART will be carried out immediately i.e.

 

 

the velocity will be adapted via the ACC/DEC set acceleration or deceleration to the

 

 

new value of CVEL.

 

 

 

If a velocity has not been defined before the start of speed control mode (CSTART),

 

 

then the default velocity is 0, i.e. the motor will not turn, and a velocity input via

 

 

CVEL will start the movement in speed control mode.

 

Command Group

ROT

 

 

 

Cross Index

ACC, DEC, CSTART, CSTOP,

 

 

 

Parameter: 32-80 Maximum Velocity

 

Syntax Example

CVEL 100

 

 

 

Program Sample

CMODE_01.M

 

 

 

 

 

 

 

 

DEC

 

 

 

 

 

 

 

 

 

 

 

Summary

sets deceleration

 

 

 

 

 

 

 

 

Syntax

DEC a

 

 

 

Parameter

a = deceleration

 

 

 

Description

The DEC command defines the deceleration for the next motion command (speed

 

 

control synchronization or positioning). This value will remain valid until a new

 

 

deceleration value is set with another DEC command. The value is related to the

 

 

parameters 32-81 Shortest Ramp and 32-80 Maximum Velocity as well as 32-83

 

 

Velocity Resolution.

 

 

 

NB!:

 

 

 

 

If deceleration is not defined previous to the positioning command then decele-

 

 

ration will be the setting of parameter 32-85 Default Acceleration.

 

 

NB!:

 

 

 

 

If you work with the MCO 305 then you should always set the ramps via the option

 

 

card and not in the FC 300. The FC ramps must always be set to minimum.

 

Command Group

REL, ABS

 

 

 

Cross Index

ACC, Parameters: 32-81 Shortest Ramp, 32-80 Maximum Velocity, 32-83 Velocity

 

 

Resolution

 

 

 

Syntax Example

ACC 50

/* acceleration: 50, while braking 10 */

 

 

DEC 10

 

 

 

Example

minimum acceleration time:

1000 ms

 

 

maximum velocity:

1500 RPM

 

 

velocity resolution:

100

 

 

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

21

MCO 305 Command Reference

 

 

 

 

 

__ Command Reference __

DEFCANIN

 

 

 

 

 

 

 

 

 

 

 

Summary

 

Defines a receive object.

 

 

 

 

 

 

 

Syntax

 

objno

= DEFCANIN id dlen

 

Parameter

 

id

= CAN-identification number

 

 

dlen

= data length of the object in bytes (max. 8 bytes)

 

Return Value

 

objno

 

 

 

 

 

A positive value means that the object was successfully created. This value is an

 

 

 

internal number of the object and is used by other APOSS-CAN commands. A

 

 

 

negative value means an error has occurred.

 

Description

 

This command defines an incoming communication object in the CAN-Controller.

 

 

 

This command can also be used with the offset for the slave bus (telegram ID

 

 

100000).

 

 

 

 

These objects can now be deleted one by one via the command CANDEL objno,

 

 

 

where objno is the number returned by DEFCANIN or DEFCANOUT.

 

Portability

 

Command is available starting with MCO 5.00.

 

Command Group

 

CAN

 

 

 

Program Sample

 

var1 = 0

/* declare variables */

 

 

 

var2 = 0

 

 

 

 

rx1= DEFCANIN 500 8

 

 

 

 

 

/* RX object with Id=500 and data length=8 bytes is defined */

 

 

 

CANIN rx1 0 0 var1 var

/* a CAN message is read */

 

 

 

 

 

 

 

DEFCANOUT

 

 

 

 

 

 

 

 

Summary

Defines a transmit object in the CAN controller.

 

 

 

 

 

 

Syntax

objno = DEFCANOUT id dlen

 

Parameter

id

= CAN-identification number

 

 

dlen

= data length of the object in bytes (max. 8 bytes)

 

Return Value

objno

 

 

 

A positive value means that an object was successfully created. This value is an

 

 

internal number of the object and is used by other APOSS-CAN commands. A

 

 

negative value indicates an error.

 

Description

This command defines an object in the CAN-Controller. This object is an outgoing

 

 

object with a length of n bytes and the CAN identification of (id). Thus, objno is an

 

 

internal number of the object ld and is used by the CANOUT command.

 

 

This command can also be used with the offset for the slave bus (telegram ID 100000).

 

 

So it is possible to define messages for slave and master bus. These objects can

 

 

now be deleted one by one via the command CANDEL objno, where objno is the

 

 

number returned by DEFCANIN or DEFCANOUT.

 

Portability

Command is available starting with MCO 5.00.

 

Command Group

CAN

 

 

Cross Index

DEFCANIN, CANOUT, CANIN

 

Syntax Example

no = DEFCANOUT 500 8

 

 

 

/* defines an object with ld=500 and length 8 bytes */

 

 

 

/* the function returns a 1 */

 

 

 

/* a message with ld=500 and a length of 8 bytes can now be sent */

 

 

 

/* with the command CANOUT 1 value1 value2 */

 

 

no = DEFCANOUT id len

 

 

 

 

 

22

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

Danfoss MCO 305 Programming guide

MCO 305 Command Reference

 

 

 

__ Command Reference __

DEFCORIGIN

 

 

 

 

 

 

 

 

Summary

Sets the command position as zero point.

 

 

 

 

 

 

Syntax

DEFCORIGIN

 

 

Description

DEFCORIGIN sets the command position as zero point. All absolute positioning

 

 

commands (POSA etc.) refers to this zero point from now on.

 

 

In doing so CPOS is set to zero and APOS is set in that way, that the difference is

 

 

remained.

 

 

Portability

Command is available starting with MCO 5.00.

 

Command Group

INI

 

 

Cross Index

POSA, DEFORIGIN, CPOS

 

Syntax Example

POSA 80000

/* absolute positioning */

 

 

DEFCORIGIN X(1)

/* define command position as zero point */

 

 

 

 

 

DEFMCPOS

Summary

Define initial position of the master

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Syntax

DEFMCPOS p

Parameter

p = position in Master Units (MU)

Description

DEFMCPOS defines the initial position of the master (in MU) in the CAM-Mode and

 

thus the point where the curve begins as soon as the master pulses are being

 

counted.

Command Group

CAM

Cross Index

DEFMORIGIN, SETMORIGIN, SYNCC,

 

Parameter: par. 33-23 Start Behavior for Sync.

Syntax Example

DEFMCPOS 1000 // Set internal MU counter to 1000

Sample

DEFMCPOS positions Master’s current physical position to the master curve position

 

indicated irrespective of what the MAPOS is.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

When a DEFMCPOS 500 is issued, master’s physical position is made as the position 500 of the curve.

When a DEFMCPOS 500 is issued, master’s physical position is made as the position 500 of the curve.

MG.34.R1.02 – VLT® is a registered Danfoss trademark

23

MCO 305 Command Reference

 

 

 

__ Command Reference __

DEFMORIGIN

 

 

 

 

 

 

 

 

Summary

Set the current master position as the zero point for the master.

 

 

 

 

 

 

Syntax

DEFMORIGIN

 

 

Description

DEFMORIGIN defines the current master position as the zero point for the master.

 

 

The master position (MAPOS) refers to this zero point until a redefinition takes

 

 

place using DEFMORIGIN or SETMORIGIN.

 

 

NB!:

 

 

 

The command DEFMORIGIN can not be used with absolute encoders (see par. 32-

 

 

30 Incremental Signal Type).

 

Command Group

INI

 

 

Cross Index

MAPOS, SETMORIGIN

 

Syntax Example

DEFMORIGIN

/* Set current position as the zero point for the master */

 

 

 

 

 

DEFORIGIN

 

 

 

 

 

 

 

 

Summary

Sets the current position as zero point

 

 

 

 

 

Syntax

DEFORIGIN

 

 

Description

With the DEFORIGIN command the current position is set as the zero point. All

 

 

absolute positioning commands (POSA) then refer to this zero point.

 

 

The actual position reached in a positioning command is the Target position plus

 

 

some error which is not compensated automatically while using a DEFORIGIN.

 

 

NB!:

 

 

 

The command DEFMORIGIN can not be used with absolute encoders (see par. 32-

 

 

00 Incremental Signal Type).

 

Command Group

INI

 

 

Cross Index

POSA

 

 

Syntax Example

POSA 80000

/* Absolute positioning */

 

 

DEFORIGIN

/* define actual position as zero point */

Sample POSA 2000

PRINT "Position before new origin", APOS DEFORIGIN

PRINT "Position after defining new origin", APOS

Output

Position before new origin 2000, Position after defining new origin 0

Program Sample DORIG_01.M, ORIG_01.M

Initial

After execution

 

0

0 (after DEFORIGIN)

24

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

DEFSYNCORIGIN

Summary Defines master-slave relation for the next SYNCP or SYNCM command, or defines the start values for standard curves with SYNCC command.

Syntax

DEFSYNCORIGIN mcpos spos

 

Parameter

mcpos

=

master reference position in qc, or

 

 

 

master curve position in qc

 

spos

=

slave reference position, or

 

spos < SlaveCurveLenght

=

slave curve position

 

spos > SlaveCurveLength

=

the actual curve position has to be seen as the

 

 

 

correct position within the curve corresponding to the

 

 

 

master position mcpos

Description This command defines how much distance ahead or behind should the slave be in relation to the master position. It allows defining the relation between master and slave for the next SYNCP or SYNCM command. It sets the internal slave command position (Mpcmd) to the slave value.

The master value is used for an internal MOVESYNCORIGIN. For that reason, a MOVESYNCORIGN will be overwritten by this command. Both actions are done at the moment, when the SYNC command is activated. So it is guaranteed, that master and slave will be synchronized at the above master-slave position.

With SYNCC the DEFSYNCORIGIN can be used to define the start values for standard curves as follows:

Here, mcpos tells the controller that the actual master position (MAPOS) corresponds to a master curve position of mcpos.

spos has two different meanings:

spos < SlaveCurveLenght = defines the actual position of the slave as the slave curve position spos.

spos > Slave CurveLength = the actual curve position has to be seen as the correct position within the curve corresponding to the master position mcpos (spos itself does not have any meaning, it just has to be greater than slave curve length).

Example: Assuming that the curve is a straight line going from 0,0 to 2000,4000 in terms of (master,slave).

Further assuming that the slave is at a position of 11000 qc and that the master has an actual position of 15000 qc. To make it simple, let us assume that the gear factors are 1 : 1.

If now a SETCURVE is done without any further commands, then the following would happen. The controller tries to find out where the slave is located within a curve. Therefore, it calculates the remainder of 11000 / 4000 which is 3000 and the remainder of 15000 / 2000 which is 1000. That means the result would be that the actual MCPOS (master curvepos) is 1000. So the corresponding slave curve position should be 2000. But at the moment the slave is at a curve position of 3000 instead. (The csstart position is the start position of the last curve, which would be 8000 in our case). If this curve is started, the slave would try correct the position and move to 2000.

If now the following command is used DEFSYNCORIGIN 500 100000

the following will happen:

MG.34.R1.02 – VLT® is a registered Danfoss trademark

25

MCO 305 Command Reference

__ Command Reference __

The actual master position is defined as the master curve position of 500.

And because 100000 is bigger than the slave curve length of 4000, the actual slave position (of 11000 qc) equates to the slave curve position belonging to the master curve position of 500 which is 1000. So csstart will be set to 10000. If now the curve is started, it will be ok and just follow the curve when the master starts moving.

DEFSYNCORIGIN in conjunction with CU_GRAD curves (type 3)

In case of a CU_GRAD curve, the DEFSYNCORIGIN can be used to define the absolute end position of the curve in qc. In that case, the curve is started immediately and is calculated in such a manner that the end positions will be reached at the end of the curve.

NB!:

To avoid degenerate polynomials, the distances must be in a correct relation. If you start with velocity zero and want to end up with a velocity of 1 (slave has same velocity as master), then the master distance should be less than two times the slave distance. Otherwise, the polynomial will have extremes within the interval. This is more difficult to predict in other cases (start velocity not 0 or end velocity not 1). Therefore, you can check the PG_FLAG_CURVE_ERR to see if the last SETCURVE produced a curve with extremes (see STAT). Then you can read out the SYSVAR PFG_LASTERROR (see SDO dictionary) to decide what it was.

Portability Starting with MCO 5.00 start values for curves can be defined.

Command Group SYN

Cross Index MOVESYNCORIGIN

Sample Here when the master is in 2000 qc the slave should be in 4000 qc, i.e., slave should be ahead of master by 2000 qc.

Also when the master is in 3000 qc the slave should be in 5000 qc.

26

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

DELAY

 

 

 

 

 

 

 

 

 

Summary

Time delay

 

 

 

 

 

 

 

Syntax

DELAY t

 

 

Parameter

t = time delay in milliseconds (maximum MLONG)

 

Description

The DELAY command leads to a defined program delay. This parameter gives the

 

 

delay time in milliseconds.

 

 

If an interrupt occurs during the delay time, then following the processing of the

 

 

interrupt procedure, the programmed delay will take place after the correct

 

 

inclusion of the interrupt time. Thus, the DELAY command gives a constant delay

 

 

time, independent of whether various interrupts have to be processed during the

 

 

programmed delay time.

 

 

If the interrupt requires more processing time than is available for the delay, then

 

 

the interruption procedure will be carried out to the end, before the command

 

 

following the DELAY instruction is commenced.

 

Command Group

CON

 

 

Cross Index

WAITT, WAITI, WAITAX

 

Syntax Example

DELAY 1000

/* 1 second delay */

 

Program Sample

DELAY_01.M

 

 

 

 

 

 

DELETE ARRAYS

 

 

 

 

 

 

 

 

Summary

Delete all arrays in the RAM.

 

 

 

 

 

Syntax

DELETE ARRAYS

 

 

Description

With DELETE ARRAYS you can delete all arrays in the RAM without also deleting the

 

 

parameters etc. This command has the same effect as the menu command

 

 

Controller Reset Arrays.

 

 

NB!:

 

 

 

If you then execute a SAVE ARRAYS, the arrays in the EPROM are also overwritten!

 

 

NB!:

 

 

 

If DELETE ARRAYS is carried out after a DIM assignment in the program, it is then

 

 

no longer possible to access the array elements.

 

 

NB!:

 

 

 

If a program contains a DELETE ARRAYS command, there are no more arrays in

 

 

the RAM after the program is exited.

 

Command Group

INI

 

 

 

 

 

 

MG.34.R1.02 – VLT® is a registered Danfoss trademark

27

MCO 305 Command Reference

__ Command Reference __

DIM

 

 

Summary

Definition of an array

 

 

Syntax

DIM array [n]

Parameter

array = name of the array

 

n = number of array elements

Description

Via a DIM instruction at the commencement of the program, it is possible to

 

declare one or more arrays (= Variable fields).

 

Arrays are valid for all programs. If arrays are not yet available in the MCO 305

 

memory, then the arrays are allocated via the DIM instructions. Arrays which are

 

already available in the memory are checked to see if their size corresponds to the

 

current DIM commands. If differences are found, then an error registration is

 

made. If, additionally to the corresponding arrays, new arrays are declared, then

 

these must also be added at the end of the DIM command.

 

Each array element can later be accessed, similar to a variable, calculation results,

 

characters or other information can be stored.

 

An array element can be called up via the array name and an index. The indices

 

are admissible from 1 to the defined size in the DIM allocation.

 

An essential difference between variables and array elements consists in the fact that

 

arrays are stored in the non-volatile memory, and their contents are permanent even

 

when the power supply is switched off – insofar as it is saved with SAVEPROM or SAVE

 

ARRAYS.

 

In contrast to variables, arrays have a validity not only for one, but for all

 

programs in the VLT unit flow. The only condition necessary is that the arrays must

 

be accessible via a DIM command in the desired program which enables a data

 

exchange between several programs. It is of no importance whether or not the

 

array is identified with the same name in all the programs. What is important is the

 

order of the array definitions. This means, for example, that the first defined array

 

in all programs always refers to the first stored array in the memory, independent

 

of the array name.

 

NB!:

 

The DIM command must be the first instruction in a program, and must appear

 

before the subroutines. Indices from 1 to the defined size of the array are

 

permissible.

 

The array content will not be lost, even following switching off the power supply.

 

A defined array size is valid for all programs, and cannot be altered. Only the order of

 

the array definitions (not the names) determines which of the data-fields will be

 

accessed.

 

Array definitions can only be canceled via erasure of the entire memory.

Command Group

CON

Syntax Example

DIM xpos[100], ypos[100]

 

/* define array XPOS and YPOS each with 100 elements */

Program Sample

DIM_01.M

 

 

28

MG.34.R1.02 – VLT® is a registered Danfoss trademark

MCO 305 Command Reference

__ Command Reference __

DISABLE … interrupts

Summary Locks the execution of interrupts.

Syntax DISABLE inttyp

NB!:

DISABLE cannot be called up during interrupt procedures. (The system automatically switches back to enabled after an interrupt.)

Parameter inttyp = ALL CANMSG COMBIT INT

KEYPRESSED PARAM PERIOD

position interrupts:

ON APOS, ON IPOS, ON MAPOS, ON MCPOS, ON MIPOS STATBIT

TIME

NB!:

The execution of error handling ON ERROR can not be locked with DISABLE. The error interrupt has the highest priority and it also interrupts other active interrupts.

Description DISABLE switches off all or explicitly specified interrupts – apart from ON ERROR. If the function DISABLE … is used in the main program, it can prevent interrupts of the corresponding type.

This is particularly useful if a variable, which is set in an interrupt procedure, is used in the main program. To do this you should first switch off the corresponding (or all) interrupts in the main program DISABLE … alter the variable and then switch the corresponding (or all) interrupts back on with ENABLE …

NB!:

If an interrupt is disabled it still exist, but is not processed anymore (Exception: DISABLE ALL).

The detection is still running in the background and the interrupt is captured in case of a non (!) edge-sensitive or a message-oriented interrupt (ON PERIOD, ON APOS, ON PARAM etc.). If the interrupt is ENABLEd again and there was a captured (non edge-sensitive) interrupt before, this interrupt is processed immediately.

In case of edge-sensitive interrupts (e.g. ON INT, ON COMBIT, ON STATBIT), all interrupts, which take place during the DISABLEd phase are not processed, even not after switching on ENABLE again. These interrupts have no memory in case of DISABLEd state. Edge-sensitive interrupts which take place after the anew ENABLEing are still processed again.

NB!:

Exception: DISABLE ALL

In opposite to the selective disabling of edge-sensitive interrupts (e.g. DISABLE INT) – these will be ignored and not executed after enabling – in case of DISABLE ALL the request is stored (edge-sensitive interrupts too) and the interrupt are still executed after enabling (ENABLE ALL)!

DISABLE ALL in combination with selective DISABLE

Please note, that an ENABLE ALL has no impact on simultaneous valid blockings defined by selective DISABLE commands (e.g. DISABLE INT). Thus a selective blocking must also be cleared by the corresponding selective ENABLE!

MG.34.R1.02 – VLT® is a registered Danfoss trademark

29

MCO 305 Command Reference

__ Command Reference __

 

Interrupt handling within an Interrupt

 

During the execution of an interrupt subroutine at first a DISABLE ALL will auto-

 

matically be done internally. This blocks the execution of all other interrupts, but

 

keeps upcoming interrupt requests still in mind. At the end of the ‘current’ interrupt

 

subroutine an ENABLE ALL will be again executed automatically. With the comple-

 

tion of the ‘current’ interrupt the upcoming stored interrupts will be executed yet.

 

Therefore the execution of the commands DISABLE ALL and ENABLE ALL within an

 

interrupt is not necessary and not meaningful, too.

 

The selective blocking of single interrupts within an interrupt subroutine can be

 

necessary, depending on the application. Think of the following example: If the

 

execution of an interrupt should lock the request and execution of other interrupt

 

types, a selective DISABLE (e.g. DISABLE INT) can be done. In this case the

 

selective interrupt blockage must be cleared (e.g. ENABLE INT) by the application

 

program later on again. Typically this is done at the end of the current interrupt

 

subroutine and enables the execution of corresponding interrupt requests in future

 

again. All edge triggered interrupts, which were received between the correspon-

 

ding selective DISABLE and ENABLE, will be ignored and not executed any longer

 

(nor later). All interrupts, which were received before the selective blocking (e.g.

 

DISABLE INT) or after the new selective release (e.g. ENABLE INT) will be

 

processed after the completion of the “first“ interrupt.

Command Group

INT

 

Cross Reference

ON INT, ON CANMSG, ON COMBIT, ON KEYPRESSED, ON STATBIT, ON PARAM, ON

 

PERIOD, ON TIME, ENABLE .. Interrupts

Syntax Examples

DISABLE ALL

/* Switch off all interrupts */

 

DISABLE STATBIT

/* Switch off the interrupt for the status bit */

 

 

 

30

MG.34.R1.02 – VLT® is a registered Danfoss trademark

Loading...
+ 122 hidden pages