Instructions TIA Portal

Fonctions Mathématiques
Calculs & Algorithmes

De la simple addition aux équations complexes, les fonctions mathématiques transforment vos données brutes en informations exploitables pour le pilotage de vos process.

Que sont les fonctions mathématiques dans TIA Portal ?

Les fonctions mathématiques dans TIA Portal permettent d'effectuer des calculs arithmétiques, trigonométriques et logarithmiques sur différents types de données (Entiers, Réels). Elles sont essentielles pour la mise à l'échelle de capteurs, le calcul de trajectoires ou la régulation de boucle PID.

TIA Portal se distingue par l'instruction CALCULATE, qui permet d'écrire une expression complexe (ex: (in1 + in2) * in3 / in4) en un seul bloc, améliorant ainsi la lisibilité par rapport à un enchaînement de boîtes individuelles ADD/MUL.

Arithmétique de Base

Les opérations fondamentales pour le traitement de données

CALCULATE — Calculer

CALC

Ce qu'il fait

Permet de définir une expression mathématique libre combinant plusieurs entrées (IN1...INn). Vous saisissez la formule et TIA Portal génère les pins correspondants.

Quand l'utiliser

Dès qu'un calcul nécessite plus de deux étapes. Idéal pour les calculs de débit, de volume ou toute formule physique complexe.

Conseils Pro

Vous pouvez utiliser des fonctions comme ABS, SQRT ou SIN directement dans l'expression CALCULATE.

Vérifiez toujours le type de données de sortie (OUT) pour éviter les débordements (Overflow).

En SCL, c'est l'équivalent naturel d'une affectation directe : out := (in1 + in2) * in3;

ADD / SUB / MUL / DIV

+
+, -, *, /

Ce qu'ils font

Instructions arithmétiques standard : Addition, Soustraction, Multiplication et Division.

Quand les utiliser

Pour des opérations simples et rapides entre deux valeurs.

Conseils Pro

En division (DIV), utilisez toujours le test |OK| ou vérifiez que le diviseur n'est pas nul pour éviter un arrêt du CPU.

L'instruction ADD peut accepter plus de deux entrées en cliquant sur l'icône jaune du bloc.

Pour les entiers, DIV retourne le quotient entier. Utilisez MOD pour le reste.

MOD — Modulo

MOD

Ce qu'il fait

Retourne le reste de la division entière entre IN1 et IN2.

Quand l'utiliser

Gestion de tampons circulaires (ring buffers), alternance de cycles (ex: pompes 1 et 2), ou conversion d'unités (ex: secondes vers minutes/secondes).

Conseils Pro

Très utile pour déclencher une action tous les 'N' cycles.

Seulement disponible pour les types de données entiers (Int, DInt, etc.).

SCL : remainder := value1 MOD value2;

Signe & Incrémentation

Gestion du signe et opérations unitaires rapides

INC / DEC — Incrémenter / Décrémenter

++
++ / --

Ce qu'il fait

Ajoute ou soustrait 1 à la variable spécifiée (en InOut).

Quand l'utiliser

Compteurs de pièces simples, index de boucles, gestion de files d'attente.

Conseils Pro

Plus rapide à écrire qu'un bloc ADD ou SUB complet.

Attention au type de données : un incrément sur un Int à 32767 passera à -32768.

En SCL : i := i + 1; ou INC(i);

ABS — Valeur Absolue

ABS

Ce qu'il fait

Retourne la valeur positive d'un nombre, qu'il soit positif ou négatif au départ.

Quand l'utiliser

Calcul d'écart entre une mesure et une consigne, mesure de distance, calcul d'erreur PID.

Conseils Pro

Indispensable pour calculer une erreur absolue (|consigne - mesure|).

Supporte les entiers et les réels.

SCL : positiveVal := ABS(originalVal);

Min / Max / Limite

Sélection et bornage de valeurs

MIN / MAX — Minimum / Maximum

MIN

Ce qu'il fait

Compare N valeurs et retourne la plus petite (MIN) ou la plus grande (MAX).

Quand l'utiliser

Sélection de la température la plus haute parmi plusieurs sondes, détermination de la vitesse minimale autorisée.

Conseils Pro

Vous pouvez ajouter autant d'entrées que nécessaire au bloc.

Très utile pour les diagnostics multi-capteurs.

SCL : peakValue := MAX(val1, val2, val3);

LIMIT — Limiter

LIMIT

Ce qu'il fait

Borne (clamp) une valeur d'entrée (IN) entre un minimum (MN) et un maximum (MX).

Quand l'utiliser

Sécurité sur les sorties analogiques (ex: empêcher une vanne de s'ouvrir à plus de 80%), bridage de consignes utilisateur.

Conseils Pro

Remplace avantageusement une combinaison de MIN et MAX.

Si MN > MX, la sortie dépend du type de CPU, mais généralement c'est MX qui est pris.

SCL : safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);

Puissances & Racines

Calculs exponentiels et radicaux

SQRT / SQR / EXPT

SQRT

Ce qu'ils font

SQRT (Racine carrée), SQR (Carré), EXPT (Puissance personnalisée).

Quand les utiliser

Calculs de géométrie, conversion de signaux non-linéaires, physique des fluides.

Conseils Pro

SQRT d'un nombre négatif donne NaN. Testez toujours l'entrée ou utilisez ABS.

EXPT est gourmand en cycles CPU, utilisez SQR pour les carrés simples.

SCL : area := 3.14 * SQR(radius);

Trigonométrie

Calculs d'angles et de rotations

SIN / COS / TAN / ASIN...

SIN

Ce qu'ils font

Calculs trigonométriques standard et leurs inverses (arcsin, arccos, arctan). Les angles sont toujours en RADIANS.

Quand les utiliser

Cinématique de robots, calculs de positionnement angulaire, traitement de signaux oscillants.

Conseils Pro

Pour convertir des degrés en radians : Radians = Degrés * (PI / 180).

TAN(PI/2) tend vers l'infini, surveillez vos entrées.

Utilisez les constantes système pour PI afin de garantir la précision.

Fonctions Avancées

Logarithmes et parties fractionnaires

LN / EXP / FRAC

LN

Ce qu'ils font

LN (Log naturel), EXP (Exponentielle e^x), FRAC (Extrait la partie décimale).

Quand les utiliser

Modélisation de processus chimiques, croissance exponentielle, ou séparation d'unités (FRAC).

Conseils Pro

FRAC(12.34) retourne 0.34. Très pratique pour les calculs de précision temporelle.

EXP est l'inverse exact de LN.

SCL : fraction := FRAC(totalValue);

Comparaison des approches de calcul

LAD vs SCL — Quelle méthode choisir ?

Type de calculMéthode recommandéePourquoi ?
Addition simpleBloc ADD (LAD)Visuel et facile à suivre
Formule complexeBloc CALCULATECompact et réduit le nombre de réseaux
Algorithme mathématiqueLangage SCLSyntaxe proche du C/Pascal, idéal pour les formules
Calcul trigonométriqueSCL ou CALCULATELes boîtes individuelles sont trop encombrantes
Bornage de signalBloc LIMITStandard Siemens, très robuste
Remise à zéro d'indexInstruction INC/DECTrès rapide à implémenter

Foire Aux Questions

Quel est l'avantage de CALCULATE par rapport à plusieurs blocs ADD/MUL ?

CALCULATE réduit considérablement l'espace occupé dans le programme. Au lieu de 5 réseaux avec des variables temporaires intermédiaires, vous avez un seul bloc avec une formule lisible. C'est aussi plus facile à maintenir si la formule change.

Comment TIA Portal gère-t-il les erreurs de calcul (ex: division par zéro) ?

Sur S7-1200/1500, une erreur mathématique ne stoppe pas forcément le CPU (selon config), mais le résultat devient NaN. Il est CRITIQUE d'utiliser l'instruction |OK| après un calcul sensible pour valider le résultat avant de l'utiliser.

Les fonctions trigonométriques utilisent-elles des degrés ou des radians ?

Toutes les fonctions (SIN, COS, TAN, etc.) utilisent exclusivement des RADIANS. Si votre IHM fournit des degrés, vous devez multiplier la valeur par 0.01745329 (PI/180) avant de l'injecter dans le bloc.

Puis-je faire des calculs sur 64 bits (LReal) ?

Oui, les S7-1500 supportent nativement le type LReal (Long Real) pour une précision accrue. La plupart des fonctions mathématiques acceptent ce type.

Simplifiez vos calculs complexes

Décrivez votre formule physique ou votre algorithme, T-IA Connect générera le bloc CALCULATE ou le code SCL optimisé avec validation des données.