NETWORK
TITLE =service écriture
//pour transmettre la requète de paramètre au variateur, il faut appeler le module SFB53
//(requête Write DP-V1)
WRIT: NOP
0;
CALL SFB
53 , #InstanzDB_SFB53 (
REQ
ID
INDEX
LEN
DONE
BUSY
ERROR
STATUS
RECORD
//traitement des informations 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 de lecture DP-V1)
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 (TimeoutCounter)
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
;
Manuel Interface bus de terrain UFP11A pour PROFIBUS DP-V1
:= 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);
Fonctions DP-V1
Annexes
6
49