Instructions et fonctions sur tableaux
(Traduction du document original anglais)
Introduction
La conversion d'une application PL7 en une application Control Expert génère un certain nombre de différences, décrites dans les paragraphes suivants.
Tableaux de mots entiers et entiers longs : instructions
Les opérateurs (+, -, *, /, REM) entre deux tableaux de mots entiers et entiers longs ont été supprimés dans Control Expert.
Le convertisseur d’applications PL7 remplace ces opérateurs par des EF équivalentes.
Exemple : TABINT1, TABINT2, TABINT3 sont des tableaux d'entiers. TABINT1:=TABINT2 + TABINT3 est remplacé par TABINT1:=ADD_ARINT(TABINT2,TABINT3).
Les opérateurs (+, -, *, /, REM) entre un tableau et un mot entier ou un mot entier long ont été supprimés dans Control Expert.
Le convertisseur d’applications PL7 remplace ces opérateurs par des EF équivalentes. Une seule EF est utilisée par opérateur commutatif.
Exemple : INT1 est un entier ; TABINT1 et TABINT2 sont des tableaux d'entiers.
TABINT1:=INT1 + TABINT2 et TABINT1:=TABINT2 + INT1 sont tous deux remplacés par TABINT1:=ADD_ARINT_INT(TABINT2,INT1)
Tableaux de mots entiers et entiers longs : instructions logiques
Les opérateurs (AND, OR, XOR, NOT) entre deux tableaux de mots entiers et entiers longs ont été supprimés dans Control Expert.
Le convertisseur d’applications PL7 remplace ces opérateurs par des EF équivalentes.
Exemple : TABINT1, TABINT2, TABINT3 sont des tableaux d'entiers. TABINT1:=TABINT2 AND TABINT3 est remplacé par TABINT1:=AND_ARINT(TABINT2,TABINT3).
Les opérateurs (AND, OR, XOR) entre un tableau et un mot entier ou un mot entier long ont été supprimés dans Control Expert.
Le convertisseur d’applications PL7 remplace ces opérateurs par des EF équivalentes. Une seule EF est utilisée par opérateur commutatif.
Exemple : INT1 est un entier ; TABINT1 et TABINT2 sont des tableaux d'entiers.
TABINT1:=INT1 AND TABINT2 et TABINT1:=TABINT2 AND INT1 sont tous deux remplacés par TABINT1:=AND_ARINT_INT(TABINT2,INT1)
Tableaux : fonctions
Les fonctions sur tableaux pour lesquelles il est nécessaire d’indiquer un rang (rang d’un élément dans le tableau) possèdent le même comportement que les fonctions correspondantes de PL7 sauf si le rang est négatif. Dans ce cas le fonctionnement est le suivant :
Fonctions
Fonctionnement si le rang est négatif
COPY_ARDINT_AREBOOL
Si l’un des rangs est négatif (source ou destination), la fonction n’est pas exécutée, le tableau résultant n’est pas modifié. Dans PL7, les rangs sont positionnés automatiquement à 0 et la fonction est exécutée.
COPY_ARINT_AREBOOL
COPY_AREBOOL_ARDINT
COPY_AREBOOL_ARINT
COPY_AREBOOL_AREBOOL
EQUAL_***
Si le rang à partir duquel la comparaison est lancée est négatif, le résultat est égal à ce rang négatif et la fonction n’est pas exécutée. Dans PL7, la fonction est exécutée à partir du rang 0.
FIND_EQP_***
Si le rang à partir duquel la recherche est lancée est négatif, le résultat est égal à ce rang négatif et la fonction n’est pas exécutée. Dans PL7, la fonction est exécutée à partir du rang 0.