ACS_COM_MOD_TCP_ENHANCED Communication for ACS / DCS Drives via MODBUS TCP¶
Function Block ACS_COM_MOD_TCP_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.4 |
Included in library: | ACSDrivesComModTCP_AC500_V22_App.lib |
Function Block Type: | Function Block with historical values. |
Block Description
Function Block ACS_COM_MOD_TCP_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 ACS_DRIVE_DATA_TYPE Structure to Exchange Data Between Function Blocks for 1 Drivevariable. 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_TCP_ENHANCED or ACS_COM_MOD_TCP 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_TCP and ACS_COM_MOD_TCP_ENHANCED) one socket will be needed.
The user has to check that the programmed number of ACS_COM_MOD_TCP or ACS_COM_MOD_TCP_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:
- Opening the “+” sign of Function Block instance in the declaration part being online.
- Create an assignment in the code with <instance>.<diagnosis variable>.
- Create a visualization element of the Function Block see ACS_COM_MOD_TCP_ENHANCED_VISU_PH ACS_COM_MOD_TCP_ENHANCED_VISU_PH Visualization Faceplate for the Function Block ACS_COM_MOD_TCP_ENHANCED.
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_TCP_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.