IMC implicit exchanges (DRIVE_PIx/POx) do not start when an Extended IO option board is present
- Switch off ATV71 AC power
- Wait for the communication between the drive and the card to be lost
- Switch on ATV71 AC power -> implicit exchanges between ATV and IMC do not start (DRIVE_PIx = 0)
A workaround is to copy-paste in Drive_Start POU the following code to configure implicit exchanges:
In declaration part :
wRetry: WORD:=0 ;
In code part :
CASE wStateInitialization OF
1:
(* Initializing Cyclic data exchange Read*)
DriveParameterCyclicReadSet(
addrDRIVE_PI1:= 3207, (* for example to read line voltage (ULN) *)
addrDRIVE_PI2:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI2*)
addrDRIVE_PI3:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI3*)
addrDRIVE_PI4:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI4*)
addrDRIVE_PI5:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI5*)
addrDRIVE_PI6:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI6*)
addrDRIVE_PI7:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI7*)
addrDRIVE_PI8:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PI8*)
bExecute:= TRUE);
(* on some configuration, the request is taken into account by the drive after more than 1 second,
for example with an IoExtended board. So we need to manage 500 retry *)
IF DriveParameterCyclicReadSet.bError AND wRetry < 500 THEN
wRetry := wRetry + 1;
ELSIF DriveParameterCyclicReadSet.bDone THEN
wStateInitialization:=2;
wRetry := 0;
END_IF
2:
(* Initializing Cyclic data exchange Write*)
DriveParameterCyclicWriteSet(
addrDRIVE_PO1:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PO1*)
addrDRIVE_PO2:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PO2*)
addrDRIVE_PO3:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PO3*)
addrDRIVE_PO4:= xxx, (*Uncomment the line to map a Drive parameter to DRIVE_PO4*)
(*addrDRIVE_PO5:= ,*) (*Uncomment the line to map a Drive parameter to DRIVE_PO5*)
(*addrDRIVE_PO6:= ,*) (*Uncomment the line to map a Drive parameter to DRIVE_PO6*)
(*addrDRIVE_PO7:= ,*) (*Uncomment the line to map a Drive parameter to DRIVE_PO7*)
(*addrDRIVE_PO8:= ,*) (*Uncomment the line to map a Drive parameter to DRIVE_PO8*)
bExecute:=TRUE );
IF DriveParameterCyclicWriteSet.bError AND wRetry < 500 THEN
wRetry := wRetry + 1;
ELSIF DriveParameterCyclicWriteSet.bDone THEN
wStateInitialization:=3;
wRetry := 0;
END_IF
3: Display_RestoreSavedParameters();
Publié pour: Schneider Electric Belgium


Besoin d'aide ?
Sélectionnez le bon produit
Trouvez rapidement et facilement les produits et accessoires adaptés à vos applications.
Obtenir un devis
Effectuez une demande de renseignements en ligne et un expert vous contactera.
Où acheter ?
Trouvez facilement le distributeur Schneider Electric local le plus proche.
Centre d'aide
Trouvez des ressources de support pour tous vos besoins, en un seul endroit.