Vous êtes sur la page 1sur 17

Exemple S7

Sommaire
Page

1. Gnralits ..................................................................................................................2
2. Installation du programme S7 et des units de programmation (POU) .......................3
2.1 Intgration du projet................................................................................................3
2.2 Configuration matrielle..........................................................................................3
2.3 Fichiers GSD / GSE................................................................................................5
2.4 Organisation des POUs ..........................................................................................7
3. Description des Fonctions ...........................................................................................8
3.1 Profil DRIVECOM ...................................................................................................8
3.1.1 Mot de commande DRIVECOM........................................................................8
3.1.2 Mot d'tat DRIVECOM......................................................................................9
3.2 Fonction FC30 ...................................................................................................... 10
3.2.1 Rseau 1, Donnes process Variateur ...................................................... 11
3.2.2 Rseau 2, Dmarrer l'entranement, mise sous tension ................................. 11
3.2.3 Rseau 3, 4 et 5, RFR, HLG (Gnrateur de rampes ) et QSP Variateur .. 11
3.2.4 Rseau 6, DRIVECOM Variateur ............................................................... 11
3.2.5 Rseau 7, Mots de donnes process Variateur ......................................... 12
3.2.6 Rseau 8, PZD Variateur ........................................................................... 12
3.2.7 Rseau 9, Paramtres S7 DP Variateur ....................................................13
4. Fonction FC 127 ........................................................................................................ 14
5. Bloc de donnes DB31 .............................................................................................. 15
5.2 Exemple DB31...................................................................................................... 16
5.1 Utilisation de la fonction FC30 avec le bloc de donnes DB31............................. 17

Version 1.2

Exemple S7

1. Gnralits
Les POU dveloppes par Lenze pour S7 sont des exemples dapplication globalement valides dans des
utilisations avec Profibus-DP. Ces POU doivent aider la mise en uvre de projets Profibus-DP avec les
produits Lenze. Ils sont gracieusement mis disposition par la socit Lenze. Lutilisateur ne peut donc
exiger aucun droit de garantie ou de mise jour. Aussi, Lenze rejette expressment toute responsabilit
de dommages intervenus la suite de lutilisation de ces POU.
POU : Unit dorganisation de programme
But:
Le rseau Profibus-DP possde un canal paramtres et un canal process. Les POU proposes
permettrent la lecture/criture de paramtres, ainsi que lenvoi/rception de donnes process.
Canal paramtres : Le canal paramtres permet la lecture et lcriture de paramtres. Ces donnes ne
doivent pas exiger de contraintes temporelles pour les diffrents participants du
bus. Il sagit, par exemple, de paramtres de fonctionnement (ex : C0011 Nmax),
dinformations de diagnostic (ex : C0161 dfaut actuel) ou de donnes moteur
(ex : C0015 frquence nominale U/f).
Canal process :

Les donnes process doivent tre changes le plus rapidement possible de


manire cyclique. Des donnes prpondrantes, comme le mot de commande, le
mot dtat, les consignes et la valeurs relles sont transmises. La taille du canal
process est dtermine lors de la configuration matrielle.

Restitution des donnes


via adresses de priphries

Lenze

CPU S7
SIEMENS

CPUxxx-DP

Profibus

SF-DP

Donnes process

BUSF
DC5V

DP

Typ
Id. -NR
Fert.-Nr
Serien-Nr.
Eingang1
Eingang2

PSxx

2133

Paramtres

RUN

OB1

FC30
Fonction de
commande pour
FC127

FC127
Transfert
de paramtres

DB31
Bloc de donnes
pour
FC30 et FC127

Transfert des
donnes process
du mot de commande
et du mot d'tat
DRIVECOM

Le programme utilisateur se trouve


dans la CPU.

Matriel necessaire :
Variateur avec interface Profibus (ex : AIF (2131 ou 2133), FIF (E82ZAFPC)
S7-CPU 3xx/4xx avec interface Profibus matre

Version 1.2

Exemple S7

2. Installation du programme S7 et des units de programmation


(POU)
2.1 Intgration du projet
1.
2.
3.

Choisir dans SIMATIC-Manager Fichier Dsarchiver.


Slectionner le fichier exemple E_S7V1_2.zip.
Slectionner le rpertoire cible (par exemple sous-dossier \Step7\s7proj).

Un projet possde plusieurs composants et peut comporter une ou plusieurs stations (S7-300/400).
Chaque station dispose dune CPU (ex : 315-2 DP) et dun ou plusieurs programmes S7 avec chaque
fois un dossier de POU, un dossier source et une table de symboles.

Via le menu Ouvrir du SIMATIC Manager on


peut slectionner le projet.
Un nouveau projet peut tre cr via le menu
Nouveau.

Dans ce projet, on retrouve des sous-parties pour


une CPU 315-2 DP et pour une CPU 414-2 DP,
ainsi que pour les diffrents modules Profibus (2130,
2131, etc.). Toute ces sous-parties travaillent avec
les mmes blocs, qui peuvent se distinguer par des
longueurs diffrentes de donnes process.
Lexemple dcrit ci-aprs ne dispose que dun
esclave Profibus. Si plusieurs participants sont
prsents, les blocs sont utilisables une fois par
participant. Comme on ne peut pas travailler
plusieurs fois avec les mmes numros de blocs, les
blocs doivent tre renomms pour chaque
participant.

2.2 Configuration matrielle


La mise point de la configuration matrielle est prsente au moyen dun exemple.
Dans cet exemple, on utilise Step 7 Version 5.1 + Hotfix 2 Version K 5.1.0.2.

Aprs avoir cre un nouveau projet et insr une


station (S7-300/400) par le menu Insertion
Station, un double Click sur Hardware dans la
fentre de droite permet daccder la configuration
matrielle.

Version 1.2

Exemple S7

Si le catalogue matriel nest pas visible, lactiver


par le menu Affichage Catalogue.
En premier lieu, un Profil support doit tre
slectionn dans le catalogue, sous RACK-300 et
doit tre gliss par Drag and Drop dans la fentre de
gauche.

La CPU et le type de bus utiliss peuvent ensuite


tre rajouts par Drag and Drop.
Conseil : Dans le cataogue, on trouve plusieurs
types pour la CPU 315-2 DP. Il faut toujours
comparer le numro de version de la CPU avec
celui du catalogue pour viter les conflits matriels.
Le numro de version de la carte se trouve sur le
capot avant.

Si on utilise une CPU avec un Matre DP, la


fentre Proprits Interface Profibus Matre DP
souvre automatiquement.
On peut ici rgler ladresse du Matre DP et crer
un rseau Profibus grce au bouton Nouveau.

Version 1.2

Exemple S7

Dans la fentre qui apparat alors, la vitesse de


transmission peut tre rgle dans longlet
Paramtres rseau.
Valider ensuite toutes les fentres par OK.
A ce moment, la configuration matrielle est
compose dune alimentation, dune CPU Matre
DP et dun rseau Profibus.

2.3 Fichiers GSD / GSE


Si vous travaillez pour la premire fois avec des variateurs Lenze en relation avec Profibus ou que vous
souhaitez insrer des nouveaux fichiers GSD, il faut tout dabord importer ceux-ci dans le catalogue du
matriel.
Conseil : Les versions actualises des fichiers Lenze GSD / GSE sont rgulirement mises jour sur
le site Internet de Lenze.
www.lenze.fr ( Service Tlchargements Versions actualises Profibus)
Installer les fichiers GSD/GSE :
Une configuration ne peut pas tre charge partir
du configurateur de matriel.
Slectionner le menu Outils Installer
nouvelles GSD. Slectionner les nouveaux GSD
dans la fentre de recherche et valider par OK.
On peut galement copier tous les nouveaux fichiers
GSD dans le dossier Siemens Step7
S7data gsd et ensuite choisir dans le
configurateur le menu Outils Actualiser le
catalogue.
Gnration dun esclave DP :
Les modules Lenze esclaves DP-Slave se
trouvent (aprs installation) dans le catalogue,
sous PROFIBUS DP Autres appareils de
terrain Entranements Lenze
Pour connecter un esclave, il faut glisser par
Drag and Drop le dossier 2133 (8200/9300) sur
la ligne du rseau Profibus. Dans le champ
suivant, ladresse Profibus doit tre rgle.
Dans cet exemple, le module 2133 possde
ladresse 3.

Version 1.2

Exemple S7

En clickant sur le signe + de chacun des


modules de communication, on peut accder au
format des donnes changer.
Pour slectionner le format dsir, il suffit de le
marquer, puis de le faire glisser par Drag and
Drop dans la table se trouvant sous le matriel
slectionn.
Dans la table correspondant lesclave, 2 lignes
sont alors remplies.
La premire ligne correspond au canal
paramtre, la seconde au canal process.
Les adresses dentre et de sortie des
priphriques sont importantes (rond rouge).
Indication : La communication peut intervenir par diffrents formats de donnes process.
Extrait du catalogue matriel :
Catalogue
PROFIBUS DP
:
Autres appareils de terrain
Entranements
Lenze
8200neu-Profibus DP
2133 (8200/9300)
:
Par(Kons.) + PZD(1) AR
:
PPO1
:
Par(Kons.) + PZD(1)
:
2130 (4900/8600/9200)
2131 (8200/9300)

Profil
AR
PPO

Nom
Commande
appareil Lenze
Profidrive

Sans sigle

Drivecom

Remarque
Accs direct AIFCTRL et STAT
Etats machine
Profidrive
Etats machine
Drivecom

Pour connatre la description du mot de commande et du


mot dtat, veuillez consulter les instructions de mise en
service des diffrents modules de communication.
Le suffixe (Kons.) signifie que les donnes (paramtre
et/ou process) sont changes de manire consistante.
Conseil : Si des paramtres sont transmis par la
fonction FC127 , il faut assurer la consistance des
donnes.

Quest-ce que la consistance ?


On parle de consistance, lorsquon veut changer des donnes de longueur suprieure un mot (WORD)
ou un octet (BYTE). Assurer la consistance consiste viter un change de donnes errones entre la
CPU et le Matre Profibus via la Mmoire commune double-accs (Dual Port Memory). Dans le cas o la
consistance nest pas assure, la CPU peut, lors dune requte de lecture, recevoir des donnes qui ne font
pas partie du mme bloc et donc interprter une mauvaise information.
Exemple: un paramtre doit tre lu

Unit centrale
(CPU)

Mmoire
commune
double accs

Matre
PROFIBUS

(comportement
configurable)

Le Matre Profibus attend que les donnes soient compltement lues. Ensuite, il va crire en une fois
lintgralit des donnes dans la mmoire commune. Il ncrit que lorsque la CPU ne lit pas.

Version 1.2

Exemple S7

Les adresses de dbut de priphrie sont


utiliser dans le programme automate associ.
Par un double Click sur chacune des lignes, une
fentre de dialogue souvre, permettant de
modifier les diffrents domaines dadresses.
Le domaine dadresses pour une ligne (entre et
sortie) doit toujours tre identique (rond rouge);
la programmation future en est ainsi facilite.

2.4 Organisation des POUs


Le bloc dorganisation OB1 appelle le bloc de fonction FC30 de manire cyclique.
OB 1

FC30
Bloc fonction
de commande
pour FC127

FC127
Transfert des
paramtres

DB31
Bloc de donnes pour
FC30 et FC127

Transfert des
donnes process
du mot de commande
et du mot d'tat
DRIVECOM

La fonction FC30 est un exemple. Elle prsente les conditions raliser pour assurer le transfert des
donnes paramtre et process.
Ce bloc assure, via le canal process, lcriture du mot de commande DRIVECOM et la lecture du mot
dtat DRIVECOM. Il travaille donc selon les tats machine DRIVECOM et pilote, en consquence, le
dblocage du variateur via PROFIBUS, la condition que ltat machine DRIVECOM soit activ.
Le bloc FC30 montre ensuite comment la fonction FC127 doit tre utilise et donc comment les
paramtres peuvent tre crits ou lus par Profibus. Les codes correspondants, qui doivent tre crits ou
lus, sont alors saisis dans le bloc de donnes DB31.
Pour le transfert des paramtres; les blocs systme SFC 14 et SFC 15 sont charger. Ils assurent ainsi
un change de donnes consistant.

Version 1.2

Exemple S7

3. Descriptions des fonctions


Les diffrents blocs utiliss vont tre explicits. Ils sont crits en langage IL (liste dinstructions).

3.1 Profil DRIVECOM


Le bloc FC30 utilise le profil DRIVECOM. Ceci signifie que le premier mot process de sortie automate
(dentre variateur) est le mot de commande DRIVECOM, et que le premier mot process dentre
automate (de sortie variateur) est le mot dtat DRIVECOM. Selon ce profil, un ordre bien prcis de
commandes doit tre respect lors du dblocage du variateur. Le bloc FC30 traite automatiquement cette
succession de commandes.

3.1.1 Mot de commande DRIVECOM


Les numros de rseaux (NR) de FC30 dans lesquels les bits sont traits sont nots entre parenthses.
Bit

0 := Mise en service

<- bit gr par le bloc fonction (NR 6)


(ne doit pas tre gr par le programmateur)

1 := Blocage tension

<- bit gr par le bloc fonction (NR 6)


(ne doit pas tre gr par le programmateur)

2 := Arrt rapide

<- bit gr par le bloc fonction (NR 6)


(ne doit pas tre gr par le programmateur)

3 := Activer le fonctionnement => Blocage := 0; Dblocage := 1, (NR 3)


4 := Arrt GdR

=> Arrt GdR (AR) := 0; Arrt GdR dsactiv := 1, (NR 5)

5 := libre DRIVECOM

Voir instructionde mise en service Profibus (ex : 2131, 2133)


ATTENTION ! Rglage usine avec la plupart des variateurs:
BLOCAGE_GdR := 0; BLOCAGE_GdR dsactiv := 1 (NR 4)

6 := libre DRIVECOM

Voir instructionde mise en service Profibus (ex : 2131, 2133)


ATTENTION ! Rglage usine avec la plupart des variateurs:
GdR_ZERO := 0; GdR_ZERO dsactiv := 1 (NR 4)

7 := Rarmement dfaut

Front montant de 0 1

8 := rserv DRIVECOM
9 := rserv DRIVECOM
10 := rserv DRIVECOM
11 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

12 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

13 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

14 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

15 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

Version 1.2

Exemple S7

3.1.2 Mot dtat DRIVECOM


Ltat instantan de lappareil est dcrit dans le mot dtat DRIVECOM.
Bit

0 := Prt fonctionner

-> Information pour le bloc fonction

1 := En service

-> Information pour le bloc fonction

2 := En cours de fonctionnement-> Information pour le bloc fonction


3 := Dfaut

<= aucun dfaut (TRIP) := 0; Dfaut (TRIP) := 1

4 := Blocage tension

-> Information pour le bloc fonction

5 := Arrt rapide

Arrt rapide DRIVECOM := 0; pas darrt rapide := 1

6 := Blocage

-> Information pour le bloc fonction

7 := Avertissement

Pas davertissement := 0; avertissement := 1

8 := Message

Pas de message := 0; message := 1

9 := Remote

Voir instructions de mise en service Profibus (ex : 2131, 2133)

10 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

11 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

12 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

13 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

14 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

15 := libre DRIVECOM

Voir instructions de mise en service Profibus (ex : 2131, 2133)

Les bits libres des mots de commande et dtat sont librement configurables. Reportez-vous aux
diffrentes instructions de mise en service, car laffectation par dfaut des bits peut tre diffrente selon
lappareil utilis et mme selon la configuration prslectionne.
Quelle documentation technique dcrit quoi ?
Instructions de mise en service des modules
2130
2131 (max 3 mots process)
2133 (max 12 mots process)
Modules de fonction bus de terrain pour convertisseur

Version 1.2

N
381616
410779
412941
411387

Module Lenze pour Profibus


4800, 4900, 8600 et 9200
8200, 8200vector, 8200motec, Drive PLC et 9300
8200vector et 8200motec

Exemple S7

3.2 Fonction FC30


FC30 est appel soit par OB1 soit par un autre bloc. Cette fonction va tre dcrite ici, ligne par ligne, pour
le module bus de terrain 2131.
Conseil :
Si on veut assurer la consistance de lchange de donnes, les blocs systme SFC 14 et
SFC 15 doivent tre chargs dans lautomate.
Le bloc travaille avec deux structures de donnes temporaires dans la table des variables.
data_receive
data_send

(Rception des donnes)


(Envoi des donnes)

Dans cet exemple, le bloc FC30 est configur pour une communication avec 3 mots process (PZD). Dans
la table de variables, on a donc une longueur de 6 octets (3 mots) par structure.
Indication: Vous trouverez dans la documentation du matre Profibus, si lchange de donnes se fait par
octets ou par mots.
La table de variables doit tre adapte au nombre de mots process.
Exemple :
Adresse
+2.0
+4.0
+6.0
+8.0
=8.0

Dclaration
temp
temp
temp
temp

Nom
Mot_Process_1
Mot_Process_2
Mot_Process_3
Mot_Process_4

Type
INT
INT
INT
INT
END_STRUCT

Commentaire
Mot_Process_1 <- Variateur
Mot_Process_2 <- Variateur
Mot_Process_3 <- Variateur
Mot_Process_4 <- Variateur

La table montre la structure data_receive avec 4 PZD. La mme opration doit tre effectue pour la
structure data_send.
FC30 comporte en tout 9 rseaux et correspond au profil DRIVECOM. Chacun des rseaux va
maintenant tre explicit.

Version 1.2

10

Exemple S7

3.2.1 Rseau 1, Donnes process Variateur


Rseau 1
// 1.#####################################################
// Consistent transfer via 1 process data word
// process data word 0 (status word)
L "PEW 264"
// 1. I/O address for process data transfer 264
T LW 0
// temp. local variable
// process data word 1 (actual value)
L "PEW266"
T #data_receive.processdataword_1 // temp. local variable
// 2.####################################################
// Consistent transfer via 2 process data words
//
L PED 264
// 1. I/O address for process data transfer 264
//
T LD 0
// temp. local variable
// 3.####################################################
// Consistent transfer via 2 and more process data words
//
CALL "DPRD_DAT"
//
LADDR :=W#16#108 // 1. I/O address for process data transfer 264
//
RET_VAL:=#data_receive_ret_val //
//
RECORD :=#data_receive
// process data <- controller

Dans le rseau 1, trois transmissions


consistantes de donnes process vers le
variateur sont prpares.
1. Transfert consistant via 1 PZD
2. Transfert consistant via 2 PZD
3. Transfert consistant via plus que 2
PZD
Slectionnez le type de transfert que
vous avez choisi lors de la configuration
matrielle et supprimez (ou mettez en
commentaires) les autres types.
Attention: les adresses des
priphriques doivent concider avec
celles dfinies lors de la configuration
matrielle et seront rentres en format
hexadcimal.

3.2.2 Rseau 2, Variateur dvrouill, sous puissance


Ce rseau peut tre utilis pour des liaisons avec le programme utilisateur.

3.2.3 Rseaux 3, 4 et 5, RFR, HLG (Gnrateur de rampes) et QSP Variateur


Rseau 3
SET
=

//replaces links of the application program


#data_send.control_word.operation_enable

Rseau 4
// "RFG stop / enable"
SET
// replaces links of the application program
= #data_send.control_word.RFG_no_stop
// "RFG zero/ enable"
= #data_send.control_word.RFG_not_zero

Dans ces rseaux, les ordres de commande


concernant le dblocage, larrt rapide et le
gnrateur de rampes sont mis dans le bon
tat. Les ordres SET remplacent des liens du
programme utilisateur.

Rseau 5
SET
=

// replaces links of the application program


#data_send.control_word.RFG_inhibit

3.2.4 Rseau 6, DRIVECOM Variateur


Rseau 6
//## Drivecom -> controller
// => "switched on"
SET
S #data_send.control_word.DRIVECOM_switch_on
S
#data_send.control_word.DRIVECOM_inhibit_voltage
S #data_send.control_word.DRIVECOM_quick_stop
// => "Ready to switch on"
UN
#data_receive.status_word.DRIVECOM_ready_to_switch
UN #data_receive.status_word.fault_TRIP
R #data_send.control_word.DRIVECOM_switch_o

Version 1.2

Le rseau ne peut pas tre modifi. Aprs le


dblocage des diffrentes commandes dans les
rseaux 3, 4 et 5 et la saisie dune consigne de
vitesse, le variateur doit passer de ltat
DRIVECOM PRET A FONCTIONNER ltat
EN SERVICE. Le moteur tourne ensuite la
vitesse pr-dfinie, condition que le variateur
soit dbloqu par la borne 28.

11

Exemple S7

3.2.5 Rseau 7, Mots de donnes process Variateur


Rseau 7
// process data word 1
L 0
// replaces user date
T #data_send.processdataword_1

Dans ce rseau, on dfinit le contenu des


donnes process envoyer au variateur.
Indication : La table des variables est
adapter dans le cas o on travaille avec plus de
3 mots process.

3.2.6 Rseau 8, PZD Variateur


Rseau 8
// 1.#####################################################
// Consistent transfer via 1 process data word
// process data word 0 (control word)
L LW 4
// temp. local variable
T "PAW 264"
// 1. I/O address for process data transfer 264
// process data word 1 (setpoint)
L #data_send.processdataword_1 // temp. local variable
T "PAW266"
// 2.#####################################################
// Consistent transfer via 2 process data words
//
l LD 4
// temp. local variable
//
t PAD 264
// 1. I/O address for process data transfer 264
// 3.#####################################################
// Consistent transfer via 2 and more process data words
//
CALL "DPWR_DAT"
//
LADDR :=W#16#108 // 1. I/O address for process data transfer 264
//
RECORD :=#data_send
// process data <- controller
//
RET_VAL:=#data_send_ret_val
// error code from the SFCs

Dans ce rseau, on crit les


donnes process envoyer au
variateur (correspondant au rseau
7).
Paralllement au rseau 1, on
retrouve les trois possibilits pour le
transfert des donnes. Les
propositions non retenues doivent
tre effaces (ou mises en
commentaires).
Les adresses de priphriques sont
galement adapter la
configuration matrielle.

Donnes process Rsum :


Si on travaille avec 3 PZD ( chaque fois consistant par mot), seuls les rseaux 1 et 8 sont adapter. Les
autres rseaux sont remplir (2,3,4,5 et 7). Si on travaille avec plus ou moins de PZD, il faut en plus :
a.) Adapter la table des variables.
b.) Adapter le rseau 7.

Version 1.2

12

Exemple S7

3.2.7 Rseau 9, Paramtres DP S7 Variateur


//## activate request =>
//# 01) C 011 -> controller
//- setpoint -> request list
L L#3145
// replaces selection of the application program
L L#10000
// consider 4 decimal positions
*D
// => 3145 min-1
T "DB31".telegram_001.data
//- activate request
SET
// replaces selection of the application program
= DB31.DBX 8.6
//# 02) C 051 <- controller
//- ? request ready without error
O DB31.DBX 16.6
// activate request
O DB31.DBX 16.7
// request with error
SPB nOK2
//- actual value <- request list
L "DB31".telegram_002.data
L L#10000
// consider 4 decimal positions
/D
// => in min-1
// T xx
// replaces selection of the application program
nOK2: NOP 0
//- activate request
SET
// replaces selection of the application program
= DB31.DBX 16.6
//# 03) C 012 -> controller
//- setpoint -> request list
L L#123
// replaces selection of the application program
L L#1000
// 4 decimal places considern
*D
// => 12.3sec
T "DB31".telegram_003.data
//- activate request
SET
// replaces selection of the application program
= DB31.DBX 24.6

Dans le rseau 9, on trouve une liste de


requtes, dans laquelle 4 requtes de
paramtres sont prpares, pour les
codes :
C011
(fdmax),
C051
(fdact),
C012
(Acceleration) et
C013
(Deceleration).
Une requte (lecture ou criture) de
paramtres a une taille de 8 octets (ou
4 mots). Les diffrentes requtes sont
crites dans le bloc de donnes DB31.
A la fin de la liste des requtes, on
appelle FC127, qui va traiter les
requtes dans lordre.
Chaque requte est activer
individuellement via loctet de service
Lenze (voir description du DB31,
chapitre 5, page 15).

//# 04) C 013 -> controller


//- setpoint -> request list
L L#123
// replaces selection of the application program
L L#100
// 4 decimal places considern
*D
// => 1.23sec
T "DB31".telegram_004.data
//- request activate
SET
// replaces selection of the application program
= DB31.DBX 32.6
//## process request
CALL FC 127
peripherieadr_1st_byte:=256
// 1. I/O address
DB_transferlist
:="DB31" // DB with request list
begin_DB_transferlist :=0 // beginning of the request list in the DB
enable_transfer
:=TRUE // enable parameter transfer
timeout_timer
:=T35
// time monitoring

Version 1.2

13

Exemple S7

4. Fonction FC 127
Cette fonction traite successivement les requtes paramtres. Elle ne travaille quavec une configuration
des paramtres consistante, car les paramtres doivent priori tre transfrs de manire consistante.
Attention Dans la configuration matrielle, la consistance doit tre active pour lensemble du
domaine correspondant aux adresses priphriques du canal paramtres.
CALL FC127
peripherieadr_1st_byte
DB_transferlist
begin_DB_transferlist
enable_transfer

:=256
:=DB31
:=0
:=TRUE

timeout_timer

:=T35

Adresse de dbut des priphriques en dcimal


DB avec la liste des requtes
Dbut de la liste des requtes dans le DB
Libration du transfert de paramtres, est remis FALSE
aprs rception dun accus de rception sans erreur
Surveillance du temps de traitement de la requte

begin_DB_transferlist: On vient dfinir ici, partir de quel numro de requte du DB31, les requtes
doivent tre traites. A priori, on doit toujours commencer par zro.
enable_transfer:

On dmarre le transfert de paramtres grce ce bit.

timeout_timer:

Le Timer surveille temps de traitement de la requte actuellement traite.


Si la requte na pas t traite correctement au bout de 5s, le bit 7 de loctet de
service est pass 1. La prochaine requte est traite, ensuite.

Version 1.2

14

Exemple S7

5. Bloc de donnes DB31


Le DB31 se compose par dfaut de 3 requtes de paramtres mais peut tre tendu volont. Le format
dune requte est toujours identique. Les 4 premiers mots du bloc ne doivent pas tre modifis.
Les 8 octets dune requte peuvent tre dcrits comme suit :
Octet 1
Octet de
service

Octet 2
Octet 3
Octet 4
Octet 5
Octet 6
Octet 7
Octet 8
Sous-index Index Octet Index Octet Donnes 4 / Donnes 3 / Donnes 2 / Donnes 1 /
poids fort
poids faible Erreur 4
Erreur 3
Erreur 2
Erreur 1

Octet 1: Octet de service (Servicebyte) => Via cet octet, on vient prciser la longueur des donnes
transmettre et sil sagit dune requte de lecture ou dcriture.
Bit 7 6 5 4 3 2 1 0
| | | | | | | |
| | | | | | 0 1 => Requte de lecture
| | | | | | 1 0 => Requte dcriture
| | | | | pas utilis
| | | | rserv
| | 0 0 => Longueur 1 octet
La longueur des donnes
| | 0 1 => Longueur 2 octets
est dfinie pour chaque paramtre
| | 1 0 => Longueur 3 octets
dans la table des attributs du manuel
| | 1 1 => Longueur 4 octets
systme (chapitre table des codes).
| Bit Handshake :
Pour activer une requte de lecture ou dcriture, ce
|
bit doit tre fix par lutilisateur.
|
Le bloc remet zro ce bit aprs une transmission
|
correcte (avec ou sans erreur)
|
|
Bit derreur: Dans le cas dune erreur lors de la requte, ce bi test mis 1.
Si la requte suivante se droule sans erreur, le bi test remis zro aprs le traitement.
Octet 2 :

Sous-index du code, qui doit tre lu ou crit.

Octet 3-4 :

Index du du code, qui doit tre lu ou crit, Calcul : 24575 N Code.

Octet 5-8 :

Donnes utiles, qui doivent tre crites dans le variateur lors dune requte dcriture ou qui
doivent tre envoyes la commande lors dune requte de lecture.

Donnes :

Vous trouverez la longueur des donnes et le format du code dans la table dattribut du manuel systme
correspondant au variateur. Le format le plus rpandu est le format virgule fixe avec 4 dcimales.
Pour ce format, les paramtres sont multiplier par 10000.
Dans le bloc de donnes DB31, les informations suivantes sont transmises pour chacune des requtes
de paramtres:

Choix dune requte de lecture ou dcriture


Longueur des donnes
Index (correspondant au numro de code du paramtre)
Sous-index du numro de code du paramtre
Donnes utiles

Version 1.2

15

Exemple S7

Conseils lors de loccurrence derreurs

Le bit derreur (bit 7) de loctet de service doit tre surveill. Si une erreur est signale lors dune requte
de paramtre, un code derreur se trouve dans les octets de donnes (Octets 5-8). La description du
contenu des donnes de lventuel message derreur se trouve dans la documentation technique du
module Profibus utilis.

Lors de loccurrence dune erreur, on trouve error (mot double) ladresse 4 du bloc de donnes DB31
(rseau 4 et 6) du dernier code derreur qui est apparu. Cette plage dadresse est dfinie dans la
mmoire, de telle faon que le contenu ne soit cras que lors de loccurrence dune nouvelle erreur.

5.2 Exemple DB31


La valeur du code C012 doit tre rgle 12,3.
Marche suivre:
1.0
2.0
4.0
8.0
=8.0

telegram_001STRUCT
servicebyte
BYTE
subindex
BYTE
index
INT
data
DINT
END_STRUCT

B#16#32
B#16#0
24563
L#123000

##### C 012 -> Variateur


Octet de service -> Lenze
Sous-index (Sous-code)
Index = 24575 NCode.
Donnes utiles (attention au format dcimal)

Prcision:
Dans la premire colonne, on trouve le domaine de mmoire correspondant aux types de donnes
utiliss.
BYTE
WORT/INT
DINT/DWORD

:= une place mmoire


:= deux places mmoires
:= quatre places mmoires

Dans loctet de service, on doit dclarer une requte dcriture pour une longueur de donnes de 4
octets. Le code qui doit tre crit ne possde pas de sous-code (=0).
24575 12 = 24563
Le temps dacclration doit tre rgl 12,3 s. Dans le domaine donnes, on doit trouver la valeur
correspondante.
12,3 x 10000 = 123000 (format 4 dcimales)

Version 1.2

16

Exemple S7

5.1 Interaction de la fonction FC30 avec le bloc de donnes DB31


Le bloc de donnes DB31 est renseign par les requtes raliser.
Deux alternatives sont alors proposes.
1.) La liste de requtes est traite dans FC30 et les donnes sont crites partir de l dans le DB31.
2.) Dans le DB31, toutes les donnes necessaires sont dclares en tant que valeurs initiales.
Pour lancer une requte, il faut mettre 1 le bit Handshakebit (bit 6) de loctet de service. Cette opration
seffectue dans le FC30 (rseau 9), qui commande FC127.
Les lignes de programme marques en gras permettent de fixer le bit Handshake.
//# 03) C 012 -> controller
//- setpoint -> request list
L L#123
// replaces selection of the application program
L L#1000
// 4 decimal places considern
*D
// => 12.3sec
T "DB31".telegram_003.data
//- activate request
SET
// replaces selection of the application program
= DB31.DBX 24.6

La fonction FC127 inverse automatiquement ltat du bit Handshake aprs un transfert correct, la
condition que la rponse soit positive. Si le paramtre doit tre lu de manire cyclique, il faut donc forcer
en permanence le Handshake 1 (SET) dans la fonction de commande (par exemple FC30).
La fonction FC127 parcourt le bloc de donnes DB31 et vrifie si une requte a t active. Le FC127
recommence un nouveau traitement du bloc de donnes, si linformation 30 hex est prsent dans loctet
de service de la dernire requte.

Version 1.2

17

Vous aimerez peut-être aussi