7
« on: June 26, 2012, 07:26:48 AM »
Hi,
Please, can you help me?
I have one F2424 working with a RS-485 network with 6 ICPs Analogue inputs and 12 ABBs AC Drives and two LS AC Drives. With the ICPs modules all is ok, but the communication with the ABBs is too slow, about 25 seconds and cause the excecution time too slow. I use modbus RTU with the drives.
I think my problem is the way I did the dCusfu of the Modbus, I have to use for modbus commands for each drive, I mean are 12 x 4 = 48 modbus commands!
Wich is the the best way to arrange this commands? all in one dCusf?,one dCusf for each drive?, separate writemodbus of the readmodbus in different dCusf?
I'm using this now, one Cusf:
'Drive 1, direcci?n 09
relay[7]=READMODBUS (13,9,32)
IF TESTIO(Run_M7_1EF1)=1
THEN DM[212]=2
ELSE DM[212]=1
ENDIF
WRITEMODBUS 13,9,30,DM[212]
WRITEMODBUS 13,9,1,DM[213]
DM[214]=READMODBUS (13,9,102)
'Drive 2, direcci?n 10
relay[8]=READMODBUS (13,10,32)
IF TESTIO(Run_M8_RB)=1
THEN DM[216]=2
ELSE DM[216]=1
ENDIF
WRITEMODBUS 13,10,30,DM[216]
WRITEMODBUS 13,10,1,DM[217]
DM[218]=READMODBUS (13,10,102)
'Drive 3, direcci?n 11
relay[9]=READMODBUS (13,11,32)
IF TESTIO(Run_M6_1AD1)=1
THEN DM[222]=2
ELSE DM[222]=1
ENDIF
WRITEMODBUS 13,11,30,DM[222]
WRITEMODBUS 13,11,1,DM[223]
DM[224]=READMODBUS (13,11,102)
'Drive 4, direcci?n 12,
relay[10]=READMODBUS (13,12,32)
IF TESTIO(Run_M6_2AD2)=1
THEN DM[226]=2
ELSE DM[226]=1
ENDIF
WRITEMODBUS 13,12,30,DM[226]
WRITEMODBUS 13,12,1,DM[227]
DM[228]=READMODBUS (13,12,102)
'Drive 5, direcci?n 13
relay[11]=READMODBUS (13,13,32)
IF TESTIO(Run_M11_S_Z)=1
THEN DM[232]=2
ELSE DM[232]=1
ENDIF
WRITEMODBUS 13,13,30,DM[232]
WRITEMODBUS 13,13,1,DM[233]
'DM[234]=READMODBUS (13,13,102)
'Drive 6, direcci?n 14
relay[12]=READMODBUS (13,14,32)
IF TESTIO(Run_M4_1DCF1)=1
THEN DM[236]=2
ELSE DM[236]=1
ENDIF
WRITEMODBUS 13,14,30,DM[236]
WRITEMODBUS 13,14,1,DM[237]
DM[238]=READMODBUS (13,14,102)
'Drive 7, direcci?n 15
relay[13]=READMODBUS (13,15,32)
IF TESTIO(Run_M5_2DCF2)=1
THEN DM[242]=2
ELSE DM[242]=1
ENDIF
WRITEMODBUS 13,15,30,DM[242]
WRITEMODBUS 13,15,1,DM[243]
DM[244]=READMODBUS (13,15,102)
'Drive 8, direcci?n 16
relay[14]=READMODBUS (13,16,32)
IF TESTIO(Run_M4_2DCF1)=1
THEN DM[246]=2
ELSE DM[246]=1
ENDIF
WRITEMODBUS 13,16,30,DM[246]
WRITEMODBUS 13,16,1,DM[247]
DM[248]=READMODBUS (13,16,102)
'Drive 9, direcci?n 17
relay[15]=READMODBUS (13,17,32)
IF TESTIO(Run_M5_1DF2)=1
THEN DM[252]=2
ELSE DM[252]=1
ENDIF
WRITEMODBUS 13,17,30,DM[252]
WRITEMODBUS 13,17,1,DM[253]
DM[254]=READMODBUS (13,17,102)
'Drive 11, direcci?n 19
relay[17]=READMODBUS (13,19,32)
'IF TESTIO(Run_M3_SFCh)=1
'THEN DM[262]=2
'ELSE DM[262]=1
'ENDIF
WRITEMODBUS 13,19,30,DM[262]
WRITEMODBUS 13,19,1,DM[263]
DM[264]=READMODBUS (13,19,102)