I
Fonctions de PROFIBUS DP-V1
7
Configuration d'un maître C1
0 0
NETWORK
TITLE =service écriture
//pour transmettre la requête de paramètre au variateur, il faut appeler le module SFB53
//(requête Write DPV1).
WRIT: NOP
0;
CALL SFB
53 , #InstanzDB_SFB53 (
REQ
ID
INDEX
LEN
DONE
BUSY
ERROR
STATUS
RECORD
//traitement des valeurs fTempBusy et fTempError reçues
U
#fTempBusy; //si la fonction n'est pas terminée, quitter le module fonctionnel FB et mettre à 1 le bit Busy
SPB
ENDB;
U
#fTempError; //en l'absence de défaut, sauter à la préparation de la requête Read
SPBN
RD_V;
SET
; //un défaut est apparu ! Mettre à 1 le bit Error et à 0 le bit Busy
R #fBusy;
R
#fStaticBusy;
R
#fDPV1WRITEDone;
S
#fDone;
L
1; //délivrer le code d'erreur 1 (défaut S7)
T
#bError;
L
#dwTempStatus; //renvoi du défaut S7
T
#dwData;
BEA
;
RD_V: NOP
0; //préparation de la requête de Read DPV1
SET
;
S
#fDPV1WRITEDone;
NETWORK
TITLE =service écriture
//pour récupérer la réponse-paramètre du variateur, il faut appeler le module SFB52
//(requête READ DPV1).
READ: NOP
0;
CALL SFB
52 , #InstanceDB_SFB52 (
REQ
ID
INDEX
MLEN
VALID
BUSY
ERROR
STATUS
LEN
RECORD
//traitement des valeurs fTempBusy et fTempError reçues
U
#fTempBusy; //si la fonction n'est pas terminée, quitter le module fonctionnel FB et mettre à 1 le bit Busy.
SPB
ENDB;
U
#fTempError; //en l'absence de défaut, sauter au traitement des données
SPBN
DATA;
L
#TimeoutCounter; //incrémentation du compteur Time-Out (TimeoutCouter)
L
1;
+I
;
T
#TimeoutCounter;
L
#TimeoutCounter; //si le compteur atteint la valeur 300, déclarer un défaut Time-out
L
300;
>=I
;
SPB
TOUT;
//si c'est le défaut xx80B5xx (hex) 'Conflit d'état' qui est vu, c'est qu'une autre requête-paramètre est déjà en
cours et il faut renouveler la lecture
L
#dwTempStatus;
UD
DW#16#FFFF00;
L
DW#16#80B500;
==D
;
SPBN
ERR;
NOP
0;
SPA
ENDB;
ERR:
SET
; //un défaut est apparu ! Mettre à 1 le bit Error et à 0 le bit Busy
R #fBusy;
R
#fStaticBusy;
R
#fDPV1WRITEDone;
S
#fDone;
L
1; //délivrer le code d'erreur 1 (défaut S7)
T
#bError;
L
#dwTempStatus; //renvoi du défaut S7
T
#dwData;
L
0;
T
#TimeoutCounter; //remettre à 0 le compteur Time-out (Timeoutcounter)
BEA
;
80
:= TRUE,
:= #dwStaticDriveAddr,
:= 47,//jeu de données 47
:= #iStaticReqLength,
:= #fTempDone,
:= #fTempBusy,
:= #fTempError,
:= #dwTempStatus,
:= #MVLK_Req);
:= TRUE,
:= #dwStaticDriveAddr,
:= 47,//jeu de données 47
:= 12,
:= #fTempValid,
:= #fTempBusy,
:= #fTempError,
:= #dwTempStatus,
:= #iStaticReqLength,
:= #MVLK_Resp);
Manuel Interface bus de terrain DFP21B pour PROFIBUS DP-V1