ACS3XX_COM_MOD_RTU Communication for ACS3XXwrite one bit/ACX550 Drives via MODBUS RTU

../_images/ed9399bd48bee5790a33139000ce1d20
Available as of PLC runtime system: V1.3.2
Included in library: ACSDrivesComModRTU_AC500_V20.lib
Function Block with historical values

Function Block ACS3XX_COM_MOD_RTU controls the MODBUS RTU communication to an ACS3XX / ACX550 drive and is used for the basic control of ACS3XX / ACX550 drives with ABB Drives Profile.

The Function Block continuously reads data from the drive starting at MODBUS register 40004. So at least the Status Word (SW), Actual Value 1 (SPEED_REF), Actual Value 2 (ACT_VALUE2) are continuously read from the drive and written to the DRIVE_DATA variable.

With input NVAR_READ the Function Block can be configured to read between 3 and 9 signals from the drive. All read data is also written to the array at the READ_VALUE output. The first signal is the Status Word. The following signals are configured in the ACS3XX / ACX550 drive with Par. 53.10 .. 53.17. The array READ_VALUE contains the data as follows:

The following table shows the performed MODBUS read job and the needed mapping in the drive as well as the area where the data is stored in the AC500.

MODBUS register address in drive Mapping configuration in drive Written to in AC500 Condition at Function Block  
ACS3XX, ACX550 ACS355 default values using the Macro “AC500 MODBUS” in Par. 99.02      
Communication module embedded fieldbus or FMBA-01      
40004 Status Word (SW) Fix DRIVE_DATA.sw READ_VALUE[1] EN = TRUE NVAR_READ >= 3  
40005 Par. 53.10 (e.g.101) Speed & direction (101) DRIVE_DATA.actValue1 READ_VALUE[2] EN = TRUE NVAR_READ >= 3  
40006 Par. 53.11 (e.g.105) FB STS WORD 1 (303) DRIVE_DATA.actValue2 READ_VALUE[3] EN = TRUE NVAR_READ >= 3  
40007 Par. 53.12 FAULT WORD 1 (305) READ_VALUE[4]   EN = TRUE and NVAR_READ >= 4
40008 Par. 53.13 0 READ_VALUE[5]   EN = TRUE and NVAR_READ >= 5
40012 Par. 53.17 0 READ_VALUE[9]   EN = TRUE and NVAR_READ = 9

Note

If a MODBUS job tries to access a register in the drive which has no valid mapping information the job is aborted with an error. Therefore in ACS3XX/ACX550 at least the Par. 53.10 and 53.11 have to be configured to the Actual Value1 and Actual Value2 e.g. 101 and 105.

If e.g. NVAR_READ = 5 the values from READ_VALUE[1 .. 5] are updated. Then none of the configured parameters Par. 53.10 .. 53.13 in the ACS3XX drive must be zero.

The READ_VALUE array is reset to zero in the following cases:

  • EN = FALSE
  • COM, SLAVE or TIMEOUT are out of range
  • Communication error occurs

Writing Control Word and Reference Values to Drive

The Function Block checks, if there are changes of the Control Word (CW), Reference Value 1 (SPEED_REF) or Reference Value 2 (REF_VALUE2) on the DRIVE_DATA variable. If there is a change a write job is requested to send these 3 values to the ACS3XX / ACX550 drive starting at MODBUS register 40001.

The following table shows the performed MODBUS write job and the needed mapping in the drive as well as the area where the data is stored in the AC500.

MODBUS register address in drive Mapping configuration in drive Taken form AC500
For ACS3XX / ACX550 drives
40001 Control Word (CW) DRIVE_DATA.cw
40002 Reference Value1 DRIVE_DATA.refValue1
40003 Reference Value2 DRIVE_DATA.refValue2

Read/Write Jobs Coming from Other Function Blocks

The requests to process other read or write MODBUS jobs is transferred via the DRIVE_DATA variable at the IN_OUT variable DRIVE_DATA which can be connected to several other read/write Function Blocks e.g. ACS_MOD_READ_N_PRM or ACS_MOD_WRITE_N_PRM of this drive.

Communication with Several ACS3XX Drives

If several drives are used, for each drive an communication Function Block such as ACS3XX_COM_MOD_RTU must be programmed. Also every other generic slave device on the same MODBUS RTU line must be programmed with it´s own ACS_COM_MOD_RTU_GEN Function Block. All those communication Function Blocks of one MODBUS RTU line must be linked together via one variable of type ACS_MOD_TOKEN_TYPE, connected to the IN_OUTPUTs LINE_TOKEN. Via this variable the MODBUS token is passed to the next drive / device, so only one drive / device at a time is communicating with the PLC.

Preconditions\

The Function Block is only working with ACS3XX / ACX550 drives (ACS310, ACS350, ACS355, ACS500, ACH550) via MODBUS RTU communication.

The data transfer to other Function Blocks for this drive communication to the ACS3XX/ACX550 drive is realized via the IN_OUTPUT variable DRIVE_DATA, which must be connected to then ACS3XX_COM_MOD_RTU even if no other Function Block is connected.

The MODBUS token is passed to other MODBUS communication blocks such as ACS3XX_COM_MOD_RTU via the IN_OUTPUT variable LINE_TOKEN which must be connected even if no other ACS3XX_COM_MOD_RTU Function Block is used.

The ACS3XX / ACX550 parameters must be set as follows:

Setting according to AC500 configuration or Function Block input

Communication module:

ACS3XX, ACX550 ACS355 default values using the Macro “AC500 MODBUS” in Par. 99.02 Condition at Function Block
Embedded fieldbus or FMBA-01  
Fieldbus activation = STD MODBUS or MODBUS RS232 98.02 STD MODBUS EN = TRUE and NVAR_READ >= 3
SLAVE number 53.02 2 EN = TRUE and NVAR_READ >= 3
Baudrate = AC500 MODBUS configuration 53.03 19.2 kbit/s (192) EN = TRUE and NVAR_READ >= 3
Parity, Data- and Stopbits = AC500 MODBUS configuration 53.04 8 NONE 1 (1) EN = TRUE and NVAR_READ >= 3
Control profile = ABB Drives (lim or full) but not ABB drives enhanced nor DCU profile 53.05 ABB DRV FULL (2) EN = TRUE and NVAR_READ >= 3
Mapping of Actual Value1 MODBUS register 40005 53.10 e.g. 101 Speed & direction (101) EN = TRUE and NVAR_READ >= 3
Mapping of Actual Value2 MODBUS register 40006 53.11 e.g. 105 FB STS WORD 1 (303) EN = TRUE and NVAR_READ >= 3
Optional MODBUS register 40007 53.12 e.g. 305 FAULT WORD 1 (305) EN = TRUE and NVAR_READ >= 4
Optional MODBUS register 40012 53.17   EN = TRUE and NVAR_READ = 9