Function BlockDriveParamWritePLCopen motion iconPipe Network motion icon

Description

This function block writes a drive parameter by sending an ASCII command to a drive.

It takes multiple cycles to complete this function block. Typically only oneDriveParamRead or DriveParamWrite function should be active for each axis at one time. If executing this function block continuously or multiple times is required, add code that waits for this function block to complete (Done bit = 1) before executing it again, as shown in DriveParamRead.

See also some stats about the execution time here.

DriveParamWrite

Figure 8-189: DriveParamWrite

Arguments

Input

Execute

Description

On the rising edgeClosedA rising edge is the transition of a digital signal from low to high. It is also called positive edge of Execute, a drive parameter is set. The function block only handles one request at a time. If Execute is toggled quickly so that another rising edge occurs before the function block has completed, the function block does not issue a second write command.

 

Data type

BOOL

 

Range

0, 1

 

Unit

N/A

 

Default

Drive

Description

The address of the drive to which data is written to.

The first node usually has the value '1001'. The second node usually has the value '1002'.

Alternately, you can use the members of the EtherCAT structure to specify a drive's address when you create the variable.


creating an EtherCAT variable

 

Data type

INT

 

Range

 

Unit

N/A

 

Default

Param

Description

The parameter to write.

 

Data type

STRING

 

Range

 

Unit

N/A

 

Default

Value

Description

The value to set the drive parameter to.

 

Data type

LREAL

 

Range

 

Unit

N/A

 

Default

Output

Done Description

Indicates whether the DriveParamWrite function block has completed without error.

  Data type

BOOL

  Unit

N/A

Error

Description

Indicates whether the DriveParamWrite function block call has completed with error.

 

Data type

BOOL

 

Unit

N/A

ErrorID

Description

The DriveParamWrite error result if Error is TRUE (see list of Error Codes in table below)
Upon success, Error is set to zero.
 

Data type

DINT

 

Unit

N/A

Error Code Value
dec (hex)
Description
ECERR_OK 0 The SDO call succeeded
ECERR_DEVICE_ERROR 1792 (0x700) EtherCAT device is not accessible
ECERR_DEVICE_INVALIDCMD 1794 (0x702) Invalid mailbox command
ECERR_DEVICE_INVALIDINDEX 1795 (0x703) An invalid value for the Index input was specified
ECERR_DEVICE_INVALIDACCESS 1796 (0x704) Reading of the variable is not permitted
ECERR_DEVICE_INVALIDSIZE 1797 (0x705) An invalid size for the parameter was specified
ECERR_DEVICE_INVALIDDATA 1798 (0x706) Invalid parameter value(s) in SDO index and/or sub-index
ECERR_DEVICE_NOTREADY 1799 (0x707) Device is not in a ready state, network is not in operational
ECERR_DEVICE_BUSY 1800 (0x708) Device is not available to respond
ECERR_DEVICE_INVALIDCONTEXT 1801 (0x709) Device responded with an illegal error code, indicating the command is not allowed under the present conditions
ECERR_DEVICE_NOMEMORY 1802 (0x70A) EtherCAT mailbox is out of memory or device is out of disk space
ECERR_DEVICE_INVALIDPARM 1803 (0x70B) EtherCAT mailbox request was not valid
ECERR_DEVICE_NOTFOUND 1804 (0x70C) EtherCAT device not found
ECERR_DEVICE_SYNTAX 1805 (0x70D) An unexpected error occurred
ECERR_DEVICE_INVALIDSTATE 1810 (0x712) The EtherCAT device is in an invalid state
ECERR_DEVICE_TIMEOUT 1817 (0x719) The EtherCAT device failed to respond, timing out
ECERR_DEVICE_INSERTMAILBOX 1826 (0x722) Error while inserting the mailbox command into internal FIFO
ECERR_DEVICE_INVALIDOFFSET 1827 (0x723) An invalid value for the SubIndex input was specified
ECERR_DEVICE_UNKNOWNMAILBOXCMD 1828 (0x724) The master sent an unknown mailbox command to the slave
ECERR_DEVICE_ACCESSDENIED 1829 (0x725) Device responded with an invalid access error code, indicating the command is not allowed
ECERR_DEVICE_INVALIDADDR 1832 (0x728) Can’t send a mailbox command to the specified slave
ECERR_DEVICE_NOT_A_FSOE_MASTER 1836 (0x72c) Device is not a FSoE master.
ECERR_DEVICE_PARAM_ACCESS_ERROR 1920 (0x780) Unknown error occurred while accessing parameter
ECERR_DEVICE_PARAM_NOT_FOUND 1921 (0x781) Parameter was not found
ECERR_DEVICE_PARAM_NOT_INTEGER 1922 (0x782) Parameter is a floating-point value. Integer value required.
ECERR_DEVICE_VALUE_IS_NEGATIVE 1923 (0x783) No negative values allowed. Value specified was negative.
ECERR_DEVICE_VALUE_OUT_OF_RANGE 1924 (0x784) Value is out of data-range
ECERR_DEVICE_VALUE_GREATER_THAN_MAX 1925 (0x785) Value bigger than maximum
ECERR_DEVICE_VALUE_LOWER_THAN_MIN 1926 (0x786) Value lower than minimum
ECERR_CLIENT_ERROR 2048 (0x800) Error in Mailbox response to a previously sent mailbox command
ECERR_CLIENT_TIMEOUT 2049 (0x801) The SDO command timed out
ECERR_CLIENT_ INVALIDPARM 2050 (0x802) An invalid value was specified
ECERR_CLIENT_ INVALIDSIZE 2051 (0x803) An invalid value for the size input was specified

Table 8-46: List of EtherCAT Error Codes

Usage

The function block can be used to change drive parameters. Common examples include tuning parameters and changing drive limits such as peak current.

Related Functions

DriveParamRead

Example

Structured Text

      (* Write 58.000 to PL.KP of first AKD Dri
      ve on Ethe
      rCAT network *)
Inst_DriveParamWrite( TRUE, 1001, 'PL.KP', 58 );

FBD

FFLD

Go back to the top of the page [Top]