Fonctions DP-V1
6
Annexes
VAR_TEMP
MVLK_Resp : STRUCT
ResponseReference : BYTE ;
ResponseId : BYTE ; //RESP: Response ID
Axis : BYTE ;
No_of_Parameter : BYTE ; //RESP: No of Parameters
Attachment : ARRAY
BYTE ;
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ètres 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 à 0 des bits-témoins et des valeurs
S #fStaticBusy; //mise à 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 multiplié par 10 hexa
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 Read Parameter
SPA
SEXZ; // 0x02 Write Parameter
SPA
SEXZ; // 0x03 Write Parameter 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'un 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;
48
//structure-Movilink Response
//RESP: Response reference
//RESP: Axis
[0 .. 7 ] OF //REQ: Data
Manuel Interface bus de terrain UFP11A pour PROFIBUS DP-V1