VAR_TEMP
MVLK_Resp : STRUCT
ResponseReference : BYTE ;
ResponseId : BYTE ;
Axis : BYTE ;
//RESP: Axis
No_of_Parameter : BYTE ;
Attachment : ARRAY
[0 .. 7 ] OF //REQ: Data
OCTET ;
END_STRUCT ;
fTempError : BOOL ;
fTempBusy : BOOL ;
fTempDone : BOOL ;
fTempValid : BOOL ;
dwTempStatus : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =Introduction dans la structure Movilink du paramètre à transmettre
U
#fActivate;
FP
#fAuxflag; //si aucune requête-paramètre n'est demandée
O
#fBusy; //...ni en cours,
SPBN
END; //...alors quitter la fonction
U
#fStaticBusy; //si static Busy est à 1, alors la requête WRITE a déjà été exécutée
SPBN
NEWR; //alors sauter pour traiter une nouvelle demande
U
#fDPV1WRITEDone; //si la requête WRITE s'est terminée sans défaut, sauter à READ
SPB
READ;
SPA
WRIT; //sinon sauter à WRITE
NEWR: NOP
0; //Initialisation:
UN
#fStaticBusy; //remise à zéro des bits-témoins et des valeurs
S #fStaticBusy; //remise à 1 de fBusy et fStaticBusy
S
#fBusy;
R
#fDone; //remise à 0 du bit Done
L
0;
T
#bError; //acquittement du défaut et remise à 0 des données
T
#dwData;
L
#Drive_IO_Address; //conversion de DriveAddress d'entier (Int) en mot double (DWord)
T
#dwStaticDriveAddr;
//Incorporation des données dans la structure Movilink (seuls les champs à contenu variable sont concernés)
L
#bAxis;
T
#MVLK_Req.Axis;
L
#bService; //octet du service Movilink demandé multiplié par 10hexa
SLW
4;
T
#MVLK_Req.Attribute;
L
#bService;
SPL ERUI; //sauter au traitement d'une erreur Movilink
SPA
ERUI; // 0x00 No Service
SPA
ZEHN; // 0x01 LECTURE paramètre
SPA
SEXZ; // 0x02 ECRITURE paramètre
SPA
SEXZ; // 0x03 ECRITURE paramètre volatile
SPA
ZEHN; // 0x04 READ Min
SPA
ZEHN; // 0x05 READ Max
SPA
ZEHN; // 0x06 READ Default
SPA
ZEHN; // 0x07 READ Scale
SPA
ZEHN; // 0x08 READ Attribute
SPA
ZEHN; // 0x09 READ EEPROM
ERUI: NOP
0; // défaut 'requête Movilink inconnue'
L
3; //défaut Movilink
T
#bError;
L
DW#16#501; //MLER_ILLEGAL_SERVICE
SET
;
S
#fDone; //remise à 0 des bits Busy et Done
R #fBusy;
R
#fStaticBusy;
R
#fDPV1WRITEDone;
BEA
; //terminer la fonction
SEXZ: NOP
0;
SET
;
S
#fStaticWRITEReq; //afin de traiter les données, indique qu'il s'agit d'une requête Movilink WRITE
L
16;
SPA
LEN; //sauter à l'écriture de la longueur des données utiles de la trame
ZEHN: NOP
0;
SET
;
R
#fStaticWRITEReq; //afin de traiter les données, indique qu'il s'agit d'une requête Movilink READ
L
10;
LEN:
NOP
0;
T
#iStaticReqLength;
L
#wParameterIndex;
T
#MVLK_Req.ParameterNumber;
L
#wSubIndex;
T #MVLK_Req.Subindex;
L
#dwWRITEData; //écriture de données dans la structure (qu'il s'agisse d'une requête Read ou Write)
T
#MVLK_Req.WRITEData;
Manuel Interface bus de terrain DFP21B pour PROFIBUS DP-V1
//structure Movilink réponse
//RESP: Response reference
//RESP: Response ID
//RESP: No of Parameters
Fonctions de PROFIBUS DP-V1
Configuration d'un maître C1
I
7
0 0
79