ACS_COM_MOD_TCPx_ENHANCED Communication for ACS / DCS Drives via MODBUS TCP

../_images/57686814b0e5bcff0a317f34030abc3f

Function Block ACS_COM_MOD_TCPx_ENHANCED establishes the MODBUS TCP communication to an ACS drive. This Function Block is used for the basic control of the ACS drive using ABB Drives Profile Enhanced .It also reads and writes the drive parameters which are mapped in the drive.

Function Block Information

Available in PLC runtime system: V2.4x
Included in library: ACSDrivesComModTCP_Ext_AC500_V24_App.lib
Function Block Type: Function Block with historical values.

Block Description

Function Block ACS_COM_MOD_TCPx_ENHANCED establishes the MODBUS TCP communication to an ACS drive and is used for the basic control of ACS drives with ABB Drives Profile Enhanced.

Note

If the user changes drive profile while drive is online with PLC, Function Block output’s may give wrong indication.

Reading Status Information from Drive

The Function Block continuously reads data from the drive starting at MODBUS register 400051. 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. These values are stored in DRIVE_DATA.MSW, ActValue1 and ActValue2.

Apart from these three there is also an option to read 12 additional drive parameters. Using the input NVAR_READ the Function Block can be configured to read between 0 and 12 parameters from the drive. All read data is then written to the array at the READ_VALUE output. Configuration in ACS drive is depending of configured parameters in group FBD DATA IN.

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.

Note

Please refer the respective drives / fieldbus module manual for parameter setting, if the drive setting is not mentioned in below table.

MODBUS register address in drive Mapping configuration in drive Written to in AC500 Condition at Function Block
  ACS355 ACS850, ACQ810, ACSM1, ACS880, ACS580    
400051 Status Word (SW) Status Word (SW) DRIVE_DATA.sw EN = TRUE
400052 Actual Value1 Actual Value1 DRIVE_DATA.actValue1 EN = TRUE
400053 Actual Value2 Actual Value2 DRIVE_DATA.actValue2 EN = TRUE
400054 FBA DATA IN 1 FBA DATA IN 1 READ_VALUES[1] EN = TRUE and NVAR_READ >= 1
400055 FBA DATA IN 2 FBA DATA IN 2 READ_VALUES[2] EN = TRUE and NVAR_READ >= 2
400063 FBA DATA IN 10 FBA DATA IN 10 READ_VALUES[10] EN = TRUE and NVAR_READ >= 10
 
400065   FBA DATA IN 12 READ_VALUES[12] EN = TRUE and NVAR_READ = 12

Note

If a MODBUS TCP job tries to access a register in the drive which has no valid mapping information the job is aborted with an error.

Therefore the drive parameters in FBA DATA IN group have to be configured according to the used NVAR_READ input number.

Note

If 32 bit parameters are mapped to DATA IN,

  • The following field in DATA IN has to be left open (= 0)
  • The word order of the High-Word and Low-Word can be configured in the drive. (using FENA-X1: Par. 51.22)
  • To retrieve the original 32 bit value from the drive in AC500 the HW and LW from READ_VALUES fields have to be recombined in the program.

Function Block DATA IN has to be configured in drive in the following groups see also FSCA-01 manual.

Drive Parameter group
ACS355 54.01 .. 54.10
ACS850, ACQ810, ACSM1, ACS880, ACS580 52.01 .. 52.12 52.01 .. 52.12 if installed as adapter A

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 ACS drive starting at MODBUS register 400001.

Apart from these three parameters there is also an option to write additional 12 more drive parameters in the same MODBUS job. Using the input NVAR_WRITE the Function Block can be configured to write between 0 and 12 more parameters to the drive. The necessary values have to present in the array connected to WRITE_VALUES input.

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

Note

Please refer the respective drives / fieldbus module manual for parameter setting, if the drive setting is not mentioned in below table.

MODBUS register address in drive Mapping configuration in drive Written to in AC500 Condition at Function Block
  ACS355 ACS850, ACQ810, ACSM1, ACS880, ACS580    
400001 Control Word (CW) Control Word (CW) DRIVE_DATA.cw EN = TRUE
400002 Reference Value1 Reference Value1 DRIVE_DATA.refValue1 EN = TRUE
400003 Reference Value2 Reference Value2 DRIVE_DATA.refValue2 EN = TRU
400004 FBA DATA OUT 1 FBA DATA OUT 1 READ_VALUES[1] EN = TRUE and NVAR_WRITE >= 1
400005 FBA DATA OUT 2 FBA DATA OUT 2 READ_VALUES[2] EN = TRUE and NVAR_WRITE >= 2
400013 FBA DATA OUT 10 FBA DATA OUT 10 READ_VALUES[10] EN = TRUE and NVAR_WRITE >= 10
 
400015   FBA DATA OUT 12 READ_VALUES[12] EN = TRUE and NVAR_WRITE >= 12

Note

If a MODBUS TCP job tries to access a register in the drive which has no valid mapping information the job is aborted with an error.

Therefore the drive parameters in FBA DATA OUT group have to be configured according to the used NVAR_WRITE input number.

Note

If 32 bit parameters are mapped to DATA OUT,

  • The following field in DATA OUT has to be left open (= 0)
  • The word order of the High-Word and Low-Word can be configured in the drive. (using FENA-X1: Par. 51.22)
  • To retrieve the original 32 bit value from the drive in AC500 the HW and LW from WRITE_VALUES fields have to be recombined in the program.

Function Block DATA OUT has to be configured in drive in the following groups see also FENA-X1 manual.

Drive Parameter group
ACS355 55.01 .. 55.10
ACS850, ACQ810, ACSM1, ACS580, ACS880 53.01 .. 53.12 53.01 .. 53.12 if installed as adapter A

Note

ACS drive parameters are only saved temporarily, if changed via fieldbus. To make these changes permanent in the drive the special parameter “PARAMETER SAVE” has to be set.

Please see drive manuals and following table which parameter has to be set.

Save valid parameters to permanent memory in drive ACS3XX, ACQ810, ACS850, ACSM1 ACS880, ACS580
1 = Saves the valid parameter values to permanent memory. 0 = Save completed. Par 16.07 = 1 Par 96.07 = 1

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 ACS_MOD_READ_N_PRM Read N Parameters from an ACS Drive via MODBUS RTU or ACS_MOD_WRITE_N_PRM ACS_MOD_WRITE_N_PRM Write N Parameters to an ACS/DCS Drive via MODBUS RTU of this drive.

Communication with several ACS Drives

If several drives are used, for each drive a communication Function Block such as ACS_COM_MOD_TCPx_ENHANCED or ACS_COM_MOD_TCPx Function Block must be programmed.

The Function Block provides the basic start/stop signals, basic diagnosis signals and the scaling of the SPEED_REF input and ACT_SPEED to the ACS fieldbus scaling range -20000 .. +20000.

Note

The AC500 CPU types provide different numbers of usable TCP/IP sockets. For each ACS MODBUS TCP communication block (ACS_COM_MOD_TCPx and ACS_COM_MOD_TCPx_ENHANCED) one socket will be needed.

The user has to check that the programmed number of ACS_COM_MOD_TCPx or ACS_COM_MOD_TCPx_ENHANCED communication blocks is not higher than the number of available free sockets for the used CPU.

Diagnosis

The output ERNO, which reflects an actual error number is only valid for one cycle if DONE and ERR output are set to TRUE.

To catch this error number an external function must be programmed.

However there are internal diagnosis variables available, which are not shown at any output, but can be accessed from the Function Block instance. This can be done in three ways:

The additional diagnosis variables are:

iWriteErrCnt: number of errors in write jobs since EN = TRUE
wLastWriteErno: holds the error number of the last executed write job
iReadErrCnt: number of errors in read jobs since EN = TRUE
wLastReadErno: holds the error number of the last executed read job

Preconditions

The Function Block is working with all ACS drives via MODBUS TCP communication with field bus adapter FENA-X1.

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

The following ACS drive parameters have to be set according to the configuration of the MODBUS line and the inputs of the Function Block.

Note

Please refer the respective drives / fieldbus module manual for parameter setting, if the drive setting is not mentioned in below table.

Setting according to AC500 configuration or Function Block input ACS355 ACS850, ACQ810, ACSM1, ACS880, ACS580 ACX550, ACS800, DCS550, DCS800
Communication module: FENA-01 FENA-11 FENA-11 ENHANCED not possible with RETA-0X
Fieldbus activation = EXT FBA 98.02 50.01 50.01  
COMM RATE = Auto (0) 51.03 51.03 51.03  
IP CONFIGURATION = Static IP (0) ! not default ! Set 51.27 (Refresh) after first change to “Static IP”. 51.04 51.04 51.04  
IP ADDRESS1 .. IP ADDRESS4 51.05 .. 51.08 51.05 .. 51.08 51.05 .. 51.08  
SUBNET CIDR = e.g. 255.255.255.0 = 24 51.09 51.09 51.09  
PROTOCOL / PROFILE = MB/TCP ABB E (ABB Drives Profile Enhanced) (1) 51.02 51.02 51.02  
Word order for 32 bit parameter access No 32 bit access 51.22 51.22  
Timeout mode = None(0) or Any message(1), but not Ctrl write(2) as these values are only written after changes 51.21 51.21 Timeout mode  
MODBUS Timeout. Depending on Timeout mode. Value in 100ms. 51.20 51.20 MODBUS timeout  
Refresh settings in drive 51.27 51.27 51.27  

For further settings, e.g. reaction of drive at communication error, please see related drive and fieldbus manual.

Please refer FENA-X1 ETHERNET adapter manual for more information.