Programmation TIA Portal
Programmation TIA Portal
Programmation TIA Portal
PROGRAMMATION
TIA PORTAL
Cliquer sur l’emplacement concerné (à droite de la CPU pour les cartes d’entrées-
sorties)
Sélectionner la carte
Modifier si nécessaire son adressage
(Les emplacements à gauche de la CPU sont réservés aux cartes de communication).
- Enregistrer
- Transférer
- Sélectionner « PN/IE » en mode de transfert
- Sélectionner la carte Ethernet du PC
- Cliquer sur « partenaires accessibles » si aucun automate n’est présenté
- Sélectionner l’automate concerné (si l’automate est en « paramétrage
usine », seule son adresse MAC apparait)
- Cliquer sur « Charger »
Vous programmez le traitement cyclique du programme en écrivant votre programme utilisateur dans
les OB cycliques et dans les blocs qui y sont appelés.
Le premier traitement cyclique du programme commence dès que le programme de démarrage s'est
terminé sans erreur. A la fin de chaque traitement cyclique du programme, le cycle recommence.
Startup (OB100)
Le traitement des OB de démarrage est réalisé une fois, lorsque la CPU passe de STOP en RUN. Le
traitement de l'OB de démarrage est suivi de celui de l'OB cyclique.
Un OB de défaillance de châssis est appelé, par exemple, en cas de défaillance d'un châssis ou d'une
station pour la périphérie décentralisée.
Les OB d'alarmes horaires sont déclenchés une fois à une heure précise ou périodiquement.
Paramétrage de l’OB10 :
"Heure locale" : L'heure de déclenchement se rapporte au fuseau horaire défini pour la CPU.
"Heure système" : L'heure de déclenchement se rapporte au temps universel coordonné UTC.
Status (OB55)
Le système d'exploitation appelle l'OB d'alarme d'état lorsqu'il a reçu une alarme d'état. Cela peut être
le cas lorsqu'un module d'un esclave change son mode de fonctionnement.
Le système d'exploitation appelle l'OB d'alarme de mise à jour lorsqu'il a reçu une alarme de mise à
jour. Cela peut être le cas si vous avez modifié un paramètre relatif à l'emplacement d'un esclave ou
d'un appareil.
Profile (OB57)
Le système d'exploitation appelle l'OB spécifique à l'alarme du fabricant ou du profil lorsqu'il a reçu
une alarme spécifique au fabricant ou au profil.
Les blocs fonctionnels sont des blocs de code qui sauvegardent en permanence leurs valeurs dans
des blocs de données d'instance afin qu'il soit possible d'y accéder même après le traitement du bloc.
Choix du langage de
programmation :
CONT ou LOG
Numérotation du FC
manuelle ou
automatique.
Choix du langage de
programmation :
CONT ou LOG
Si on clique sur le point d’interrogation et qu’on saisit la première lettre d’une variable enregistrée
dans la table des variables, une boite de dialogue apparait :
Menu déroulant.
Contact à fermeture :
Le résultat logique est à 1 si la valeur de l’opérande est à 1.
Inversion du RLG
Inversion du résultat logique d’une équation et affectation à l’opérande suivante.
Affectation
Une affectation ferme une séquence d'opérations logiques. Dans notre exemple, la sortie
Q4.0 est égale à 1 si l’entrée I0.0 est également à 1.
Mise à1 sortie
SET signifie « mise à 1 »
Cette instruction force une sortie à 1. Elle restera à 1 tant qu’on ne la remettra pas à zéro par
l’instruction RESET.
Mise à 0 sortie
Bascule RS
Cette instruction permet de mettre à 1 plusieurs bits contigus à partir d’une adresse déterminée.
On peut adresser des entrées (I), des sorties (Q) e des mémentos (M).
Il est également possible de traiter des bits dans un DB s’ils sont au format ARRAY[…] of BOOL.
Notons que le nombre de bits à mettre à 1 (8 dans notre exemple) est obligatoirement une
constante.
Fronts montants :
« Capture » sur un tour de cycle du moment où une opérande passe de l’état « 0 » à l’état « 1 »
(exemple : on veut contrôler que l’opérateur appuie bien sur le BP « Acquittement » et non pas qu’il
ait coincé ce BP avec un gros tournevis. C’est arrivé).
Fronts descendants :
Même principe sauf que là on teste le moment où le bit ou le résultat logique passe de 1 à 0.
Choisissez dans les blocs d’organisations un OB qui permettra de déclencher l’alarme « A table ! »
tous les jours de la semaine à 12H00.
Cette alarme sera acquittée par un appui sur l’entrée I0.4.
Principe :
Sur une impulsion ou une action prolongée sur l’entrée IN, la sortie Q passera à 1 le temps de
temporisation définie.
Principe : Cette temporisation fonctionne comme la TON (retard à la montée), sauf qu’ici, si
l’entrée retombe, le temps compté n’est pas remis à zéro et à la prochaine activation de
Copyright Gilles TARDY Page 26 TIA Portal Siemens
Edition Septembre 2021
l’entrée IN, on recommencera à attendre là où on était arrêté.
La temporisation et la sortie Q sont remises à zéro sur action sur l’entrée R (Reset).
Cliquer sur le type de temporisation voulu et faire glisser cette temporisation sur le réseau.
Paramétrer l’entrée IN, le temps PT au format TIME, ainsi que la sortie Q et, éventuellement,
la sortie ET (Elapsed Time, temps écoulé). La sortie ET doit être elle aussi au format TIME (32
bits).
Il est fréquent d’avoir besoin de transférer des constantes dans des mots de mémentos ou de
données, on utilise alors en contact la boite MOVE.
Le MOVE peut aussi bien servir pour des transferts d’octets, de mots ou de double-mots.
Le MOVE peut accepter des constantes (uniquement en source), des mémentos, des entrées, des
sorties, des variables L, des variables statiques, des variables IN ou OUT.
Exemples :
Exemple :
Notons que ces opérations sont multi-format et qu’il faudra définir le type de données (Real dans
notre exemple) lors de la saisie du réseau.
Opérations de comparaisons
Opérations de conversion
CONVERT :
Boite de conversion multi-format.
Les formats d’entrées et de sorties se paramètrent à la saisie ou automatiquement s’ils sont
renseignés dans la table de variables ou dans un DB
ROUND :
Arrondit un réel à la valeur la plus proche.
CEIL :
Arrondit un réel à l’entier supérieur.
Copyright Gilles TARDY Page 33 TIA Portal Siemens
Edition Septembre 2021
FLOOR :
Arrondit un réel à l’entier inférieur.
TRUNC :
Troncature. Transforme un réel en entier (suppression de la virgule et des décimales).
NORM_X : Normaliser.
On sait que quand l’entrée vaut zéro, la teneur en oxygène est de 0%.
Et que quand l’entrée est au maxi, la teneur est de 20.9 %
Une fois le programme écrit, on le testera en forçant le nombre d’œufs dans une VAT.
On peut ainsi structurer le rangement de ses données par thèmes ou préférences : un DB pour le
stockage des données de production d’une machine, un pour l’historique des défauts, un pour les
consignes de vitesses, etc…
Tous les formats de données peuvent se trouver dans un DB et leur ordre de rangement est
totalement libre. On peut ainsi y trouver des bits, des octets, des mots, des doubles mots et d’autres
types de données dans tous les sens.
On distingue 3 types de DB :
DB Systèmes
Ils sont créés automatiquement lorsqu’on intègre dans le programme une temporisation, un
compteur, certains types de fronts montants ou descendants…
DB Globaux
Ils sont créés par le développeur qui y « range » des données de façon plus ou moins organisées.
Exemples d’affectation de DB
Arrivé à ce stade, on peut choisir si on veut pouvoir adresser les données du bloc comme on le faisait
dans STEP7, c’est-à-dire avec une adresse absolue (DB8.DBW10 par exemple) ou si on préfère un
adressage optimisé (valeur par défaut).
Si on choisit de travailler en adressage absolu -> clic droit sur le DB dans le navigateur du projet, puis
« Propriétés ».
- Son nom (compteur par exemple). Ceci est indispensable pour pouvoir travailler en mnémonique
avec les données
- Son type (bool, byte, int…)
- Sa valeur de départ (facultatif, on peut laisser la valeur par défaut).
Compiler le projet
Après compilation, la donnée « Consigne Production » a tenu compte de son adresse absolue tout en
conservant son adressage symbolique qui reste prioritaire :
Mot :Numéro DB. DBW Adresse Premier Octet du mot exemple DB12.DBW100
Double Mot : Numéro DB.DBD Adresse premier octet du double mot exemple DB4.DBD58
Exemple : si le nombre d’heures dans le DB201 est égal à 35, on active la sortie Q4.2.
Ce sont les DB qui contiennent les paramètres de type IN, OUT, IN/OUT et STAT pour un appel de FB.
Plus d’informations au chapitre « Les blocs fonctionnels : FB »
Intérêts : Ils sont nombreux, le plus évident est de pouvoir sauvegarder la valeur d’un compteur
(exemple : la variable MW200 correspond à un compteur chargé de donner la production totale sur
un mois. Il ne devra pas être remis à zéro en cas de coupure de l’automate ou de redémarrage).
Mode opératoire :
- Dans le menu du navigateur, cliquer sur « Variables API » puis « Afficher toutes les
variables ».
- Renseigner le nombre d’octets mémentos que l’on souhaite rendre rémanents : (202 dans
notre exemple, donc nous aurons les octets MB0 à MB201 rémanents).
Notons que dans notre exemple (CPU 1212C), il est impossible de paramétrer la rémanence
des temporisations et des compteurs « Simatic » car on ne les trouve que sur des CPU S7-
300 et S7-400.
Pour cela, cocher la case « Rémanence » dans la ligne de la donnée qu’on veut rendre
rémanente.
Mémoire occupée
On n’a pas toujours un automate sous la main pour tester un projet et les fautes d’étourderie font
perdre un temps fou lors d’une mise en service ! C’est pourquoi le logiciel « PLCSIM » a été
développé.
Grâce à lui, il est possible de simuler l’évolution d’un programme pour déceler des erreurs de
copier/coller ou des conflits de format ou de fronts montants par exemple…
Mode opératoire :
1- Ouvrir le projet
2- Cliquer sur l’icône « Démarrer la simulation » (il faut avoir cliqué sur le PLC ou les blocs dans
le navigateur auparavant pour rendre cette icône accessible).
Considérons un processus chimique simple qui combine deux réactifs pour produire le
résultat final. Il pourrait fonctionner en versant d'abord suffisamment d'un réactif dans un
récipient pour atteindre un niveau particulier, puis en versant suffisamment de deuxième
réactif jusqu'à ce qu'un second niveau soit atteint (tout en mélangeant les deux réactifs),
puis en versant le produit.
1) Après appui sur le bouton de démarrage, V1 s’ouvre jusqu'à ce que le niveau L1 soit
atteint.
2) Lorsque L1 est atteint, le mélangeur doit commencer à mélanger et simultanément V2
s’ouvre.
3) Lorsque L2 est atteint, le mélangeur s’arrête, V3 s’ouvre et reste ouvert jusqu'à ce que le
niveau du réservoir passe sous L0.
4) Si après 10 minutes le niveau du réservoir n'est pas sous L0, une alarme est déclenchée.
Le bouton "acquitter" arrête l'alarme et permet de redémarrer le processus de contrôle.