Académique Documents
Professionnel Documents
Culture Documents
SV_SCADABasic_fr 1
Heure et Date ___________________________________________________________________________ 51
IHM ___________________________________________________________________________________ 52
Manipulation de Chaînes de Caractères ______________________________________________________ 53
Structuration de Programmes ______________________________________________________________ 54
ACOS __________________________________________________________________________________ 55
ADDSTRING _____________________________________________________________________________ 56
ALARM ________________________________________________________________________________ 57
ALARMDISPLAY _________________________________________________________________________ 63
ALLOC_BUFFER __________________________________________________________________________ 73
ANIMATION ____________________________________________________________________________ 74
APPLICATION ___________________________________________________________________________ 75
ASC ___________________________________________________________________________________ 77
ASCIIFIELD ______________________________________________________________________________ 78
ASIN___________________________________________________________________________________ 80
ASSOCIATEDACTIONS _____________________________________________________________________ 81
ASSOCLABEL ____________________________________________________________________________ 82
ATAN __________________________________________________________________________________ 83
BACNET ________________________________________________________________________________ 84
BEEP __________________________________________________________________________________ 89
BIN____________________________________________________________________________________ 90
BREAK _________________________________________________________________________________ 91
BUFTOEXCEL ____________________________________________________________________________ 92
BUFTOFILE______________________________________________________________________________ 93
CAPTION _______________________________________________________________________________ 95
CGET_BUFFER ___________________________________________________________________________ 96
CHART _________________________________________________________________________________ 97
CHECKLIST _____________________________________________________________________________ 107
CHR __________________________________________________________________________________ 111
CIMWAY ______________________________________________________________________________ 112
CMPSTRING ___________________________________________________________________________ 118
COMBOBOX ___________________________________________________________________________ 119
CONST ________________________________________________________________________________ 122
CONVERT______________________________________________________________________________ 123
COPY_BUFFER __________________________________________________________________________ 125
COS __________________________________________________________________________________ 126
SV_SCADABasic_fr 2
CRONTAB _____________________________________________________________________________ 127
CYCLIC ________________________________________________________________________________ 131
DATETIME _____________________________________________________________________________ 135
DATETIMESTRING _______________________________________________________________________ 136
DATETIMEVALUE _______________________________________________________________________ 137
DDE __________________________________________________________________________________ 139
DDECONV _____________________________________________________________________________ 142
DECLARE FUNCTION / DECLARE SUB ________________________________________________________ 144
DELAY ________________________________________________________________________________ 145
DGET_BUFFER __________________________________________________________________________ 146
DIM __________________________________________________________________________________ 147
DVAL _________________________________________________________________________________ 149
EMAIL ________________________________________________________________________________ 150
ERROR ________________________________________________________________________________ 153
EVENT ________________________________________________________________________________ 155
EXCELTOBUF ___________________________________________________________________________ 161
EXP __________________________________________________________________________________ 162
EXPORT _______________________________________________________________________________ 163
EXPORT_LOG __________________________________________________________________________ 165
EXPORT_TREND ________________________________________________________________________ 170
EXPRESSION ___________________________________________________________________________ 174
FCLOSE _______________________________________________________________________________ 176
FCOPY ________________________________________________________________________________ 177
FEOF _________________________________________________________________________________ 178
FGETC ________________________________________________________________________________ 179
FGETS ________________________________________________________________________________ 180
FILETOBUF_____________________________________________________________________________ 181
FMOVE _______________________________________________________________________________ 183
FOPEN ________________________________________________________________________________ 184
FOR ... NEXT ___________________________________________________________________________ 185
FORMAT ______________________________________________________________________________ 186
FORMULA _____________________________________________________________________________ 188
FPUTC ________________________________________________________________________________ 190
FPUTS ________________________________________________________________________________ 191
FREAD ________________________________________________________________________________ 192
SV_SCADABasic_fr 3
FREE_BUFFER __________________________________________________________________________ 193
FSEEK _________________________________________________________________________________ 194
FSTAT ________________________________________________________________________________ 195
FTP___________________________________________________________________________________ 196
FWRITE _______________________________________________________________________________ 199
GETARG _______________________________________________________________________________ 200
GETPROJECTDIR ________________________________________________________________________ 203
GETTREE ______________________________________________________________________________ 204
GROUPALARM _________________________________________________________________________ 205
HARDCOPY ____________________________________________________________________________ 206
HEX __________________________________________________________________________________ 208
HISTORY ______________________________________________________________________________ 209
IF...THEN...ELSE...END IF__________________________________________________________________ 216
IGET_BUFFER __________________________________________________________________________ 217
IRAND ________________________________________________________________________________ 218
IVAL __________________________________________________________________________________ 219
KEY __________________________________________________________________________________ 220
LAN __________________________________________________________________________________ 224
LANGUAGE ____________________________________________________________________________ 231
LCASE_________________________________________________________________________________ 232
LEFT __________________________________________________________________________________ 233
LEN __________________________________________________________________________________ 234
LGET_BUFFER __________________________________________________________________________ 235
LISTBOX _______________________________________________________________________________ 236
LOG __________________________________________________________________________________ 239
LOGDISPLAY ___________________________________________________________________________ 240
LOGICAL ______________________________________________________________________________ 248
LOGICAL64 ____________________________________________________________________________ 249
LONWORKS ____________________________________________________________________________ 251
LPRINT ________________________________________________________________________________ 253
LTRIM ________________________________________________________________________________ 254
LVAL _________________________________________________________________________________ 255
M104 _________________________________________________________________________________ 256
M61850 _______________________________________________________________________________ 260
MAPDISPLAY ___________________________________________________________________________ 263
SV_SCADABasic_fr 4
MDNP3 _______________________________________________________________________________ 269
MID __________________________________________________________________________________ 274
MULTIMEDIA __________________________________________________________________________ 275
OCT __________________________________________________________________________________ 277
OPC __________________________________________________________________________________ 278
OPTIONLIST ____________________________________________________________________________ 281
POPULATION___________________________________________________________________________ 285
POW _________________________________________________________________________________ 287
PRINT ________________________________________________________________________________ 288
PRINTER ______________________________________________________________________________ 289
PROGRAM _____________________________________________________________________________ 291
PUT_BUFFER ___________________________________________________________________________ 293
RECIPE ________________________________________________________________________________ 294
REFRESH_DB ___________________________________________________________________________ 300
REGION _______________________________________________________________________________ 302
REGVAR2D ____________________________________________________________________________ 304
RENAME ______________________________________________________________________________ 305
REPLACE ______________________________________________________________________________ 306
RETURN _______________________________________________________________________________ 307
RIGHT ________________________________________________________________________________ 308
RTRIM ________________________________________________________________________________ 309
SELECTOR _____________________________________________________________________________ 310
SELECTOR mode HISTORICAL ______________________________________________________________ 318
SENDLIST ______________________________________________________________________________ 322
SEQ_BUFFER ___________________________________________________________________________ 324
SET ___________________________________________________________________________________ 328
SGET_BUFFER __________________________________________________________________________ 329
SIN ___________________________________________________________________________________ 330
SMS __________________________________________________________________________________ 331
SNMP ________________________________________________________________________________ 332
SPACE ________________________________________________________________________________ 335
SQRT _________________________________________________________________________________ 336
STATION_FILTER ________________________________________________________________________ 337
STOP _________________________________________________________________________________ 339
STRING _______________________________________________________________________________ 340
SV_SCADABasic_fr 5
SUB...ENDSUB __________________________________________________________________________ 341
SVAL _________________________________________________________________________________ 342
SVALA ________________________________________________________________________________ 343
SVBATCH ______________________________________________________________________________ 345
SVBRANCH ____________________________________________________________________________ 354
SVKEY ________________________________________________________________________________ 357
SVLOG ________________________________________________________________________________ 359
SVSQL ________________________________________________________________________________ 361
SVTREND ______________________________________________________________________________ 367
SYSTEM _______________________________________________________________________________ 370
TAN __________________________________________________________________________________ 377
TEMPORARY_DB________________________________________________________________________ 378
TEXTVAR ______________________________________________________________________________ 380
TOC __________________________________________________________________________________ 383
TOD __________________________________________________________________________________ 384
TODOUBLE ____________________________________________________________________________ 385
TOHMS _______________________________________________________________________________ 386
TOI ___________________________________________________________________________________ 387
TOL __________________________________________________________________________________ 388
TOLL _________________________________________________________________________________ 389
TOS __________________________________________________________________________________ 390
TRACE ________________________________________________________________________________ 391
TRACEON/TRACEOFF ____________________________________________________________________ 392
TREE _________________________________________________________________________________ 393
TREEVIEW _____________________________________________________________________________ 394
TREND ________________________________________________________________________________ 397
UCASE ________________________________________________________________________________ 410
UNLINK _______________________________________________________________________________ 411
VARIABLE _____________________________________________________________________________ 412
WEBVUE ______________________________________________________________________________ 426
WHILE...WEND _________________________________________________________________________ 431
WINDOW _____________________________________________________________________________ 432
XMLPATH _____________________________________________________________________________ 439
Généralités sur les Exemples ______________________________________________________________ 443
Exemple ALARMDISPLAY _________________________________________________________________ 444
SV_SCADABasic_fr 6
Exemple APPLICATION ___________________________________________________________________ 446
Exemple ASCIIFIELD _____________________________________________________________________ 449
Exemple ASSOCLABEL ____________________________________________________________________ 452
Exemple BACNET _______________________________________________________________________ 453
Exemple BUFTOFILE _____________________________________________________________________ 455
Exemple CGET_BUFFER __________________________________________________________________ 456
Exemple CHECKLIST _____________________________________________________________________ 457
Exemple CHECKLIST _____________________________________________________________________ 459
Exemple CIMWAY _______________________________________________________________________ 461
Exemple CMPSTRING ____________________________________________________________________ 463
Exemple COMBOBOX ____________________________________________________________________ 464
Exemple CONVERT ______________________________________________________________________ 466
Exemple COPY_BUFFER __________________________________________________________________ 468
Exemple CRONTAB ______________________________________________________________________ 469
Exemple CYCLIC_________________________________________________________________________ 470
Exemple DATETIME _____________________________________________________________________ 472
Exemple DDE___________________________________________________________________________ 475
Exemple DDECONV ______________________________________________________________________ 478
Exemples DECLARE ______________________________________________________________________ 480
Exemple DIM___________________________________________________________________________ 481
Exemple EMAIL _________________________________________________________________________ 482
Exemple EVENT _________________________________________________________________________ 483
Exemple EXCELTOBUF ___________________________________________________________________ 485
Exemple EXPORT _______________________________________________________________________ 486
Exemple EXPORT_LOG ___________________________________________________________________ 487
Exemple EXPORT_TREND _________________________________________________________________ 490
Exemple EXPRESSION ____________________________________________________________________ 493
Exemple FCLOSE et FOPEN ________________________________________________________________ 495
Exemple FCOPY _________________________________________________________________________ 496
Exemple FMOVE ________________________________________________________________________ 497
Exemple FORMAT _______________________________________________________________________ 498
Exemple FORMULA______________________________________________________________________ 499
Exemple FPUTC _________________________________________________________________________ 501
Exemple FPUTS _________________________________________________________________________ 502
Exemple FSEEK _________________________________________________________________________ 503
SV_SCADABasic_fr 7
Exemple FTP ___________________________________________________________________________ 504
Exemple GETARG _______________________________________________________________________ 505
Exemple HARDCOPY _____________________________________________________________________ 511
Exemple HISTORY _______________________________________________________________________ 512
Exemple LAN Configuration Multipostes ____________________________________________________ 514
Exemple LANGUAGE _____________________________________________________________________ 516
Exemple LISTBOX _______________________________________________________________________ 517
Exemple LOGDISPLAY ____________________________________________________________________ 519
Exemple LOGICAL _______________________________________________________________________ 522
Exemple MULTIMEDIA ___________________________________________________________________ 525
Exemple OPTIONLIST ____________________________________________________________________ 526
Exemple POPULATION ___________________________________________________________________ 528
Exemple PRINTER _______________________________________________________________________ 529
Exemple PROGRAM _____________________________________________________________________ 531
Exemple RECIPE ________________________________________________________________________ 533
Exemple REGION _______________________________________________________________________ 534
Exemple RETURN _______________________________________________________________________ 535
Exemple SELECTOR ______________________________________________________________________ 536
Exemple SEQ_BUFFER ___________________________________________________________________ 544
Exemple STATION_FILTER ________________________________________________________________ 550
Exemple SUBENDSUB ____________________________________________________________________ 551
Exemple SVALA Information d'Alarme ______________________________________________________ 552
Exemple Extraction SVLOG________________________________________________________________ 557
Exemple Base de Données SVSQL __________________________________________________________ 559
Exemple Données SVTREND _______________________________________________________________ 562
Exemple Information SYSTEM _____________________________________________________________ 567
Exemple TEMPORARY_DB ________________________________________________________________ 572
Exemple TEXTVAR ______________________________________________________________________ 573
Exemple TREEVIEW _____________________________________________________________________ 576
Exemple Affichage TREND ________________________________________________________________ 578
Exemple VARIABLE ______________________________________________________________________ 579
Exemple WEBVUE _______________________________________________________________________ 585
Exemple WINDOW ______________________________________________________________________ 586
Exemple XMLPATH ______________________________________________________________________ 590
Mots Réservés _________________________________________________________________________ 593
SV_SCADABasic_fr 8
Codes de Touches de Fonctions ____________________________________________________________ 595
Définition d'une Population _______________________________________________________________ 597
Encodage de Message ___________________________________________________________________ 598
Expressions de Filtres ____________________________________________________________________ 599
Expressions Régulières ___________________________________________________________________ 600
Format du Buffer de Paramètre pour Alarmes ________________________________________________ 602
Format du Buffer de Paramètre pour Consignations ___________________________________________ 604
Format du Buffer de Recette ______________________________________________________________ 605
Format du Rapport d'Import de Variable ____________________________________________________ 606
Paramètres d'Objets de Communication_____________________________________________________ 607
Poids des Droits d'Accès __________________________________________________________________ 610
Maintenance des Actions Associées par Programme ___________________________________________ 612
Maintenance des Actions Evénementielles par Programme _____________________________________ 615
Masquage par Programme _______________________________________________________________ 616
Masques d'Evénements __________________________________________________________________ 617
Mode d'envoi SENDLIST __________________________________________________________________ 619
Mode Réseau de SVBATCH________________________________________________________________ 621
Modification du Son joué par WEBVUE Mode MULTIMEDIA _____________________________________ 622
Structures des Données Batch _____________________________________________________________ 623
Suppression d'une Variable, Tendance ou Expression __________________________________________ 625
Utilisation des Branches dans les Programmes _______________________________________________ 626
Variables de Conditions __________________________________________________________________ 627
SV_SCADABasic_fr 9
Généralités sur le SCADA Basic
Voir aussi
Les programmes utilisateur sont écrits dans un langage propriétaire appelé SCADA Basic. SCADA Basic est
un langage interprété structuré en bloc avec une syntaxe proche du standard industriel Basic.
Un projet peut être configuré pour lancer des programmes de différentes façons :
• Au démarrage.
• Sur changements de valeur de variables.
• Cycliquement.
• A partir du clavier.
• A partir de zones de contrôle de l'écran.
• Pour appeler d'autres programmes.
SV_SCADABasic_fr 10
Généralités sur cet Aide
Voir aussi
• Cliquer sur le lien 'Voir aussi' dans un chapitre pour ouvrir un autre chapitre en relation.
• Sélectionner un mot clé ou une phrase dans l'index ; double-cliquer ou cliquer sur le bouton Afficher.
• Saisir un mot ou une phrase dans l'onglet Rechercher et sélectionner Liste des rubriques ; double-
cliquer dans une ligne ou en sélectionner une et cliquer sur Afficher.
SV_SCADABasic_fr 11
Mise au Point des Programmes
Voir aussi
Les fichiers de programmes peuvent être créés, débogués et testés en ligne en utilisant les possibilités de
la boîte de dialogue Mise au point des Programmes. Cette dernière est affichée soit par la commande
Programmes du sous-menu Actions, soit par la touche F9. Les programmes sont sauvegardés dans des
fichiers texte dans le répertoire "P" de votre projet.
La boîte de dialogue des programmes est organisée en plusieurs zones distinctes :Voir l'image
La zone de Résultats
La zone de résultats se trouve dans le haut de la boîte de dialogue et affiche les messages des
programmes (instruction PRINT), les messages de trace des programmes et les erreurs de syntaxe.
• Un programme peut être sélectionné soit en tapant son nom soit en ouvrant la boîte de dialogue
Ouvrir programme et en choisissant son nom dans la liste des programmes existants. Un nouveau
programme peut être créé en tapant un nouveau nom, et en cliquant sur le bouton d'édition pour le
créer et le sauvegarder.
• Le bouton d'édition permet d'afficher le programme sélectionné dans la fenêtre de l'éditeur depuis
laquelle il peut être édité, modifié et sauvegardé.
• Charger : Le programme sélectionné est chargé, prêt à être exécuté. Si un programme du même
nom est en cours d'exécution, il est stoppé et remplacé par le nouveau (mais non exécuté). Toutes
les erreurs de syntaxe sont listées dans la zone de résultats (Voir Montrer résultats et Défilement ci-
dessus).
SV_SCADABasic_fr 12
Le programme global doit toujours être chargé avant les autres programmes.
Le programme de déclarations globales peut uniquement être chargé, il ne peut pas être
exécuté.
Exemple
La ligne d'état du program AutoLoad peut montrer les informations suivantes : Voir l'image
Ligne Signification
AUTOLOAD.SV Le nom du programme.
B
OK L'état du programme. OK signifie que le programme est correct. (NOK signifie qu'il y a
une erreur dans le programme).
Sleep(10) L'instruction courante exécutée. Dans la pratique, comme le status n'est mis-à-jour qu'à
la fin du programme ou suite à une instruction DELAY, le champ affiche toujours Sleep ou
est vide.
1 0010 La ligne courante du programme. Dans cet exemple 10 (notez que le premier caractère
est toujours la lettre "l" en minuscule).
S5 Le nombre de symboles (fonctions) déclarés dans le programme.
SV_SCADABasic_fr 13
Généralités sur la Fenêtre d'Edition
La fenêtre d'édition est utilisée pour visualiser, éditer et sauvegarder les programmes SCADA Basic. Voir
l'image
Principales caractéristiques
• Raccourcis standards Windows pour couper, copier, coller, etc ... Voir le chapitre La Barre d'Outils de
l'Editeur
• Textes de couleurs prédéfinies pour aider au développement des programmes :
• Vert - commentaires
• Bleu - mots clés
• Rouge foncé - chaînes de caractères
• Rouge clair - mots réservés
• Mots clés et complétion automatique. Voir le chapitre Utilisation de Mots Clés et Complétion
Automatique
• Fonctions d'insertions spéciales (nom de variable, etc ...). Voir le chapitre Fonctions d'Insertions
Spéciales
• Navigation vers le numéro de ligne ou fonction. Voir le chapitre Navigation du Fichier Programme
• Ligne d'état incluant le nom du programme et la position actuelle du curseur (numéro de ligne et de
colonne).
• Aide contextuelle. Cliquer sur la touche de fonction F1 dans la fenêtre d'édition ouvre le fichier
d'aide du SCADA Basic. Si le curseur est sur un mot clé connu, l'aide va directement vers le chapitre
correspondant.
Options de l'Editeur
SV_SCADABasic_fr 14
La police et la taille utilisées par l'éditeur, ainsi que la taille des tabulations, peuvent être modifiées à
partir de l'onglet Général de la boîte de dialogue Options. Cette boîte de dialogue s'affiche à partir de la
commande Fenêtre.Options du menu.
SV_SCADABasic_fr 15
La Barre d'Outils de l'Editeur
Icône Touche clavier Fonction
Ctrl+S Sauvegarde le fichier programme.
Ctrl+X Ferme l'éditeur. Si vous avez fait des modifications, vous
serez invités à les sauvegarder.
Ctrl+Z Annule l'action précédente. Sans limite de profondeur.
Ctrl+Y Recrée la précédente action annulée.
Ctrl+C Copie la sélection dans le presse-papier.
Ctrl+V Copie le contenu du presse-papier vers le fichier à la
position du curseur.
Ctrl+F Ouvre la boîte de dialogue Rechercher.
F3 Recherche l'occurence suivante de la chaîne de caractère
saisie dans la boîte de dialogue Rechercher.
Ctrl+F3 Recherche l'occurence précédente de la chaîne de
caractère saisie dans la boîte de dialogue Rechercher.
Ctrl+H Ouvre la boîte de dialogue Rechercher et Remplacer.
Ctrl+Shift+F Ouvre la boîte de dialogue Aller à la fonction.
Ctrl+I, Ctrl+V Ouvre le sélecteur de variable afin de sélectionner et
insérer une variable.
Ctrl+I, Ctrl+B Ouvre le sélecteur de branche afin de sélectionner et
insérer une branche.
Ctrl+I, Ctrl+M Ouvre le sélecteur de synoptique afin de sélectionner et
insérer un synoptique.
Ctrl+I, Ctrl+P Ouvre le sélecteur de programme afin de sélectionner et
insérer un programme.
F11 Affiche les numéros de lignes dans une colonne sur le côté
gauche de l'éditeur.
Ouvre le fichier d'aide SCADA Basic.
SV_SCADABasic_fr 16
Utilisation de Mots Clés et Complétion Automatique
L'éditeur SCADA Basic gère les mots clés et la complétion automatique.
Il est possible de se deplacer dans la liste à l'aide des flèches du clavier. La sélection du mot clé peut se
faire en utilisant les touches Entrée, Tabulation ou en cliquant avec la souris.
Complétion de paramètre
En saisissant un crochet ouvert, l'éditeur vérifie le texte précédent le crochet. Si le texte est identifié
comme un mot clé, la fenêtre pop-up Complétion s'ouvre en affichant une liste d'options pour ce mot clé.
Voir l'image
Il est possible de se deplacer dans la liste à l'aide des flèches du clavier. La sélection du mot clé peut se
faire en utilisant les touches Entrée, Tabulation ou en cliquant avec la souris.
Casse de caractère
Par défaut, le texte auto-complété est inséré tel qu'il apparaît dans la liste des mots clés ou celle des
paramètres. En utilisant les options de l'onglet Complétion de la boîte de dialogue Options, vous pouvez
forcer le texte en majuscule ou en minuscule. La boîte de dialogue Options s'affiche à partir de la
commande Fenêtre.Options dans le menu.
SV_SCADABasic_fr 17
Fonctions d'Insertion Spéciale
L'éditeur propose des commandes d'insertion spéciale spécifiques à l'environnement SCADA Basic.
Il est possible de se déplacer dans la liste à l'aide des flèches du clavier. La sélection du mot clé peut se
faire en utilisant les touches Entrée, Tabulation ou en cliquant avec la souris.
• Pour mettre en commentaire une section de code, sélectionner les lignes et utiliser les touches
Ctrl+I+C.
• Pour retourner aux lignes de code, sélectionner de nouveau les lignes et utiliser les touches
Ctrl+I+U.
SV_SCADABasic_fr 18
Navigation dans le Fichier Programme
Rechercher et remplacer
L'éditeur supporte les fonctions standards de Windows Rechercher et Remplacer activées en utilisant soit
les touches Ctrl+F et Ctrl+H soit la barre d'outils. La liste déroulante de chaîne de caractères mémorise
jusqu'à 20 chaînes de caractères recherchées précédemment.
SV_SCADABasic_fr 19
Lecture et Vérification de Programmes
Les programmes SCADA BASIC diffèrent du BASIC classique dans le sens où ils doivent d'abord être
chargés avant d'être exécutés. Lors du chargement, le programme est précompilé c'est-à-dire que la
syntaxe générale des instructions est vérifiée et que le programme est transformé en une suite de codes
dans laquelle les verbes sont codés sur 1 octet (8 bits). Les références aux variables de la base ne sont
pas vérifiées de même que l'existence des fonctions appelées puisqu'elles peuvent être chargées
postérieurement.
Lors de l'exécution du programme les noms des variables sont alors complétés (selon la branche) et leur
existence est vérifiée. Il en va de même pour les fonctions qui doivent être chargées avant leur exécution.
Dans les cas où la vitesse d'exécution est critique, il est recommandé que les routines gourmandes en
temps CPU soient écrites dans un langage compilé, puis enregistrées en DLL. Ces fonctions peuvent être
appelées depuis un programme SCADA BASIC .
1. Si elle n'est pas déjà ouverte, presser la touche de fonction F9 du clavier pour ouvrir la fenêtre de
mise au point des programmes SCADA BASIC.
2. Saisir un nom de programme (par exemple "user1") dans la section Programmes.
3. Cliquer sur le bouton Edition ('...') pour ouvrir la fenêtre d'édition.
4. Saisir le code pour une SUB, par exemple :
SUB user1 ( )
'declarations...
'instructions...
END SUB
5. Cliquer sur OK pour fermer la fenêtre d'édition et retourner à la fenêtre de mise au point des
programmes.
6. Cliquer sur le bouton Charger dans la section Programmes. Son nom apparaît dans la zone
Programme pour montrer qu'il est chargé.
SV_SCADABasic_fr 20
Quelques Conseils sur le SCADA Basic
Voir aussi
Le SCADA Basic doit partager le temps CPU avec plusieurs autres tâches exécutées par le système, il est
important de réfléchir à la structure de chaque programme de façon à éviter de charger excessivement la
CPU et par conséquent d'amoindrir les performances de votre système. Les conseils qui suivent sont
fournis afin de vous assister dans la conception de votre application :
• Dès qu'un traitement long doit être exécuté, par exemple pour des calculs complexes, il est
préférable d'appeler une DLL qui est compilée et beaucoup plus rapide en temps d'exécution.
• Les routines DLL doivent être développées pour des opérations rapides car pendant que les DLL sont
exécutées le superviseur est interrompu.
• Les applicatifs indépendants sont adaptés pour des traitements algorithmiques importants ou à la
gestion de fichiers (tableur EXCEL, SGBD ACCESS) sans interrompre le superviseur et en utilisant un
lien DDE pour l'échange de données.
• De manière générale il faut utiliser les programmes cycliques (CYCLIC) avec modération et leur
préférer systématiquement des programmes événementiels qui sont appelés sur événement
(EVENT).
• Les instructions de type branche (TREE) permettent d'écrire des programmes génériques utilisables
pour différentes entités de même niveau (avec des variables utilisant une branche différente).
Utiliser l'instruction DELAY avec une extrème prudence. Le programme est suspendu pendant la
période DELAY durant laquelle il est impossible d'exécuter une autre fonction de ce programme.
L'utilisation de DELAY avec une fonction appelée cycliquement peut produire des résultats
imprévisibles et doit être évité.
• L'affectation d'une variable n'est effectuée que lorsque le superviseur reprend la main, par exemple
après une instruction DELAY (0.1) ou à la fin de l'exécution du programme.
• Lorsqu'un programme utilisateur prend la main, il ne la cède que volontairement, il faut donc éviter
toute boucle de traitement trop longue (WHILE ou FOR) sans rendre périodiquement la main au
superviseur par une instruction de type DELAY.
• Lors du calcul de variables, il faut considérer l'emploi d'expressions. Pour plus de détails, voir le
chapitre sur les expressions.
SV_SCADABasic_fr 21
Exécution d'un Programme SCADA Basic
Les programmes SCADA Basic peuvent être démarrés de plusieurs façons suivant les nécessités de votre
projet. Ci-dessous une liste complète :
• A partir d'une action événementielle. Déclenchement par un changement de valeur d'une variable.
Pour plus d'informations sur la configuration d'une action événementielle, voir le chapitre
Configuration.Actions Cycliques et Evénementielles.Actions Evénementielles.
• A partir d'une action cyclique. Périodiquement chaque N seconde. Pour plus d'informations sur la
configuration d'une action cyclique, voir le chapitre Configuration.Actions Cycliques et
Evénementielles.Actions Cycliques.
• A partir du séquenceur. Suivant un séquencement (par exemple, le premier jour de chaque mois à
12 heures). Pour plus d'informations sur la configuration du séquenceur, voir le chapitre
Configuration.Séquenceur.
• Lors du démarrage du Superviseur. Les options de démarrage du Superviseur peuvent être
configurées afin de démarrer des programmes avant et/ou après le démarrage de la communication.
Voir le chapitre Généralités sur les Projets.Options de démarrage du projet.
• Par l'utilisateur à partir d'une zone de commande sur un synoptique. Voir le chapitre Développement
de l'IHM.Animation.Exécution.Exécution d'un Programme SCADA Basic.
• Lors de la connexion et/ou déconnexion d'un utilisateur. Voir le chapitre Configuration.Compte
Utilisateur.Profils.
• Lors de l'ouverture d'un synoptique. Voir ci-dessous.
• A partir de l'affichage d'une alarme en utilisant l'action associée d'une variable alarme. Voir le
chapitre Configuration.Base de données.Configuration des Variables.Variables Alarme.Associer une
Action à une Alarme.
• A partir d'un autre programme.
Vous pouvez exécuter jusqu'à cinq lignes de SCADA Basic en utilisant l'animation
Macro sans avoir à écrire un programme. Voir le chapitre Développement de
l'IHM.Animation.Exécution.Exécution d'un Programme SCADA Basic.
ASCII32,24,6,2005,16:30,46 W,BEGIN,"MyMimic","Mimic1",""
TEMPLATE,"",0,0,0,0,0,0,0,0,0,0,0,0,1
POSITION,208,0
SIZE,498,337,498,337,0,0,0,1024,768,486,299
BACKCOLOR,236,233,216,0,0,0
TITLE,1,"Mimic1",""
STYLE,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0
SV_SCADABasic_fr 22
GRID,1,1,8,8,160,160,160,0,0,0
LAYERS,65535
RIGHTS,0,1,0.000000,64.000000,1,65535,0,0
INCLUDED,0,0,0,0,0
LINK,1,"","","",""
LINK,2,"","","",""
LINK,3,"","","",""
LINK,4,"","","",""
LINK,5,"","","",""
LINK,6,"","","",""
LINK,7,"","","",""
LINK,8,"","","",""
LINK,9,"","","",""
LINK,10,"","","",""
BACKBMP,"",0,0
BACKOBJECT,"",0,0
BEFORE,"ProgName","BranchName","SubName","Arguments"
EVENTS,1
BINOBJ,"MyMimic.binary"
W,END
SV_SCADABasic_fr 23
Structure des Programmes
Voir aussi
Chaque programme est composé d'une partie de déclarations optionnelles et d'un certain nombre de
fonctions (sous-programmes). La partie des déclarations doit toujours apparaître avant les fonctions et
être utilisée pour définir les fonctions externes (DLL) qui sont appelées par le programme.
Le programme doit avoir au moins une fonction, appelée MAIN, qui est le point d'entrée de l'exécution
(excepté pour le programme GLOBAL - voir ci-après).
La structure d'un programme est comme suit. Le texte entre crochets est optionnel.
[external declaration 1];
[external declaration 2];
. .
[external declaration n];
SUB main ()
[declaration 1];
.
[declaration n];
[instruction 1];
.
[instruction n];
END SUB
[SUB proc1 ([parameters])]
[END SUB]
[SUB proc2 ([parameters])]
[END SUB]
.
[SUB procn ([parameters])]
[END SUB]
SV_SCADABasic_fr 24
Les Fonctions
Voir aussi
Une fonction est composée d'une partie déclarations optionnelles et d'une suite d'instructions. La partie
des déclarations vient toujours avant la suite d'instructions.
Exécution
Une fonction peut recevoir jusqu'à 10 paramètres en entrée, excepté pour le programme MAIN qui n'en
reçoit aucun. Les paramètres sont passés par valeur et non par référence, c'est-à-dire que c'est la valeur
du paramètre qui est passée, et pas son nom.
La structure d'une fonction est la suivante :
SUB proc name ([parameter list])
[declaration 1];
[declaration 2];
.
.
[declaration N];
[instruction 1];
[instruction 2];
.
.
[instruction N];
END SUB
Notes
Les instructions et les déclarations se terminent toujours par un point-virgule.
Dans plusieurs des exemples qui suivent, les instructions tiennent parfois sur plus d'une ligne. Le
symbole est utilisé pour indiquer où cela se produit. Ceci est seulement le fait des restrictions
d'impression et dans un programme réel une instruction complète doit être contenue dans une
seule ligne.
Chaque programme possède un seul contexte d'exécution, ce qui interdit que deux fonctions d'un
même programme soient exécutées en même temps. Ainsi deux fonctions lancées avec EVENT,
CYCLIC, CRONTAB, KEY ou SELECTOR ne peuvent pas tourner en même temps.
Pour éviter cette situation, l'instruction DELAY doit être utilisée avec une extrème prudence dans le
cas de fonctions événementielles.
Appel asynchrone
Les effets d'un appel à une fonction ne se déroule pas selon une séquence fixe (voir l'exemple ci-dessous).
Exemple
Dans cet exemple, le programme P1 appelle le programme P2 avec un argument :
Programme P1 :
SUB main()
PROGRAM("FUNCTION","P2","", "message1");
PRINT("message 2");
END SUB
Programme P2 :
SUB message1()
PRINT("message1");
END SUB
Lorsque le programme P1 tourne, il peut afficher :
message1
message2
ou:
SV_SCADABasic_fr 25
message2
message1
SV_SCADABasic_fr 26
Le Programme Global
Voir aussi
Le programme GLOBAL est utilisé pour déclarer les variables de travail et les fonctions qui sont utilisées
dans tout le projet. Il n'exécute pas lui-même directement des fonctions. Le programme GLOBAL peut
avoir n'importe quel nom et son fichier source est sauvegardé dans le même répertoire que les autres
programmes (P).
Un exemple de programme GLOBAL est décrit ci-après :
' Declare global working variables
DIM WatchDog AS SINGLE;
DIM RunTime AS SINGLE;
DIM WindowName AS STR
SUB setdog ( )
watchdog = 1;
END SUB
SUB cleardog ( )
watchdog = 0;
END SUB
SV_SCADABasic_fr 27
Les variables de l'Arbre des Variables
Voir aussi
Les variables l'arbre des variables sont accessibles par tous les programmes.
Si la valeur d'une variable doit être modifiée dans un programme, elle doit avoir l'attribut
de commande.
Si une variable doit être substituée, la déclaration doit être faite dans la fonction Sub, et
non globalement dans l'entête de programme ni passée comme argument de l'animation
Exécuter Programme (voir exemple 2 dans le chapitre de l'instruction DIM).
Les variables de l'arbre des variables peuvent être référencées directement en utilisant leur nom complet,
ou bien en utilisant l'instruction branche et le nom relatif à cette branche. Une chaîne de caractères peut
définir une partie ou la totalité du nom d'une variable.
Lors d'une référence à une variable de l'arbre des variables dans un programme, vous
devez vous assurer que le programme prend correctement en compte le type de la
variable. Voir la table suivante.
Si un nom indirect est utilisé, la variable qui contient le nom de la variable de l'arbre des
variables doit être déclarée dans la fonction Sub où elle est utilisée (voir les exemples ci-
dessous).
Pour référencer cette variable vous devez utiliser le nom de la chaîne précédée par un point
d'interrogation. Voir exemple ci-après.
Sub Init ()
Dim VarName As Str;
Dim Index as Integer;
For(Index = 0; Index < 11; Index ++)
VarName = AddString("Réservoir", TOC(Index));
Varname = Addstring(Varname, ".Niveau.SP");
?Varname = 0;
Delay(0.1);
SV_SCADABasic_fr 28
Next (Index)
End Sub
Vous pouvez également utiliser l'adressage indirect pour référencer seulement une partie du nom de la
variable (cependant cette partie de nom doit former une branche complète). L'exemple précédent peut
être réécrit de la façon suivante :
Sub Init ()
Dim VarName As Str;
Dim Index as Integer;
For(Index = 0; Index < 11; Index ++)
VarName = AddString("Réservoir", TOC(Index));
?Varname.Niveau.SP = 0;
Delay(0.1);
Next (Index)
End Sub
SV_SCADABasic_fr 29
Les Variables Temporaires
Voir aussi
Les variables temporaires sont créées par l'instruction TEMPORARY_DB. Elles sont visibles par le langage
de programmation et par l'interface utilisateur. Elles utilisent moins de mémoire que les variables
conventionnelles et sont idéales pour l'utilisation dans un gros projet où un programme calcule une
variable utilisée seulement pour une animation.
Pour plus d'information sur les variables temporaires voir le chapitre sur les variables et les explications
sur l'instruction TEMPORARY_DB.
SV_SCADABasic_fr 30
Les Variables de Travail
Voir aussi
Les variables de travail sont à usage interne d'un programme. Elles ne font pas partie de l'arborescence
des variables.
Les variables de travail ne peuvent pas être utilisées pour des actions de déclenchement.
Exemples
Sub func1 ()
‘--------local variable
Dim cMystring as STR;
cMmystring = Addstring(“”, “…..”); ‘up to 32000 chars
Sub func2 ()
'--------64-bit variable
Dim LL1 as longlong;
Dim LL2 as longlong;
Dim LLRes as longlong;
LL1 = 2147491969;
Print(LL1); '2147491969
LL2 = 1;
LLRes = logical64("AND", LL1, LL2);
Print(LLRes); '1
End Sub
SV_SCADABasic_fr 31
La portée des variables de travail est déterminée par leur emplacement de déclaration. Le comportement
depuis la version 11.2 est contrôlé de façon stricte de la façon suivante :
Déclaré dans Visible pour
Le programme GLOBAL Tous les autres programmes et procédures.
La procédure MAIN d'un programme Toutes les procédure de ce programme et
ne peuvent pas être re-déclarées dans les
procédures de ce programme.
Une procédure Seulement cette procédure.
Antérieurement à la version 11.2, la portée n'était pas contrôlée de façon stricte et les exceptions
suivantes étaient permises :
• Les variables déclarées dans une procédure était également visibles de toutes les procédures
appelées. Par exemple :
Sub Func1()
Dim I as Integer;
Func2();
End Sub
Sub Func2()
I = 99;
Print(I);
End Sub
• Une variable déclarée dans la procédure MAIN d'un programme peuvent être re-déclarées dans une
fonction. Par exemple :
Sub Main ()
Dim cString as Str;
cString = "Hello";
End Sub
SV_SCADABasic_fr 32
Généralités sur les Opérateurs
Voir aussi
Il existe deux catégories d'opérateurs : arithmétiques et logiques.
Tous les opérateurs ne s'appliquent que sur des variables ou expressions de type
numérique (integer, long, single, double, const). Ils ne peuvent être utilisés qu'entre
variables ou expressions du même type.
SV_SCADABasic_fr 33
Les Opérateurs Logiques
Voir aussi
Symbole Opération
!= Différence
== Egalité
> Supériorité
>= Supériorité ou égalité
< Infériorité
<= Infériorité ou égalité
! Négation
|| Ou logique
&& Et logique
Exemple
Const Buffer_Size = 500;
Dim I1 As Integer, I2 As Integer;
I1 = I1+ 5;
'Correct
I1 = I1+ I2;
'Correct
I1 = I2+ Buffer_Size;
'Correct
I1 = 5+ I1;
'Incorrect
Exemple
DIM Str1 As Str, Str2 AS STR;
Str1 = "I Am A String"
'Correct
Str2 = Str1+Str2;
'Incorrect
Les opérations logiques sur des variables sont faites par le verbe LOGICAL.
SV_SCADABasic_fr 34
Les Opérateurs Arithmétiques
Voir aussi
Symbole Opération
= Affectation
+ Addition
- Soustraction
* Multiplication
/ Division
++ Incrémentation par 1
-- Décrémentation par 1
Les constantes peuvent être combinées à n'importe quel type numérique si elles sont
positionnées à droite dans l'expression.
Exemple
Const Buffer_Size = 500;
Dim I1 As Integer, I2 As Integer;
I1 = I1+ 5;
'Correct
I1 = I1+ I2;
'Correct
I1 = I2+ Buffer_Size;
'Correct
I1 = 5+ I1;
'Incorrect
Exemple
DIM Str1 As Str, Str2 AS STR;
Str1 = "I Am A String"
'Correct
Str2 = Str1+Str2;
'Incorrect
Seulement les opérateurs d'affectation sont interdits dans les chaînes de caractère.
SV_SCADABasic_fr 35
Généralités sur la Classification des Instructions
Voir aussi
Ce chapitre présente la manière d'accéder aux différents chapitres au travers de catégories d'instructions
ainsi que de liens "Voir aussi" pour les thèmes associés aux instructions.
Les instructions sont documentées dans la section suivante "Instructions de A à Z" avec un chapitre
par instruction.
Quelques instructions ont de multiples syntaxes et modes. Le dernier paragraphe décrit la manière
d'accéder aux syntaxes et modes des instructions.
Liste des instructions
Les liens suivants résument en une phrase les fonctions de chaque instruction. Les instructions sont
classées dans les catégories suivantes :
• IHM • Exécution de programme
• Base de données • Fenêtres
• Communication • Fonctions mathématiques
• Conversion de données • Gestion de buffer
• Debug • Gestion de fichiers
• Déclaration • Heure et date
• Divers • Manipulation de chaîne de caractères
• Données historiques • Structuration de programme
• Entrées/Sorties
Vous pouvez utiliser le lien "Voir aussi' en haut de chaque liste pour accéder aux chapitres des instructions
dans cette catégorie.
Syntaxes et modes
Le chapitre d'une instruction spécifie la syntaxe pour l'instruction. S'il existe plus d'une syntaxe et des
paramètres différents, le chapitre contient une section pour chaque syntaxe. Voir l'image
SV_SCADABasic_fr 36
Une instruction peut avoir plusieurs modes correspondant à différents fonctionnements. Dans ce cas, le
chapitre de l'instruction débute par un index de chaque syntaxe à utiliser pour chaque mode. La colonne
syntaxe de l'index fournit les liens aux syntaxes. Le fonctionnement de chaque mode est défini dans la
syntaxe concernée.
Pour les instructions utilisant un argument MODE, l'argument peut être soit un entier valeur 1, 2 ...,
soit une chaîne de caractères avec des guillemets (par exemple : "OPEN", "CLOSE").
SV_SCADABasic_fr 37
Arbre des variables
Instruction Action
ALARM Teste ou force l'état d'une alarme.
GETTREE Renvoie la branche courante.
GROUPALARM Démarre ou arrête une synthèse sélectionnée ou toutes les synthèses.
POPULATION Création de populations par verbe.
REFRESH_DB Limiter des fonctions de supervision à des populations de variables pour le poste
courant.
SENDLIST Envoi d'une liste de variables.
SET Constitution d'une liste de variables à envoyer.
STATION_FILTER Limiter des fonctions de supervision à des populations de variables pour le poste
courant.
SVBRANCH Change le status des variables d'une branche de la base de données.
TEMPORARY_DB Création ou destruction de variables temporaires, ainsi qu'activation ou
désactivation du mode de génération automatique.
TREE Sélection d'une branche de la nomenclature.
VARIABLE Teste ou force la status d'une variable.
SV_SCADABasic_fr 38
Communication
Instruction Action
BACNET Exécute des commandes relatives au protocole BACnet.
CIMWAY Arrête, démarre ou teste l'état de la communication.
DDE Gestion des échanges DDE avec une application serveur DDE non configurée
dans le superviseur.
DDECONV Gestion de conversation DDE avec une application serveur DDE.
LAN Pilotage de postes distants.
LONWORKS Gère et contrôle le réseau LonWorks configuré dans le Superviseur.
M104 Arrête ou démarre une communication via le protocole IEC60870-5-104.
M61850 Gère la communication via le protocole M61850.
MDNP3 Gère la communication via le protocole DNP3.
SNMP Gère la communication via le protocole SNMP.
OPC Gère les échanges avec un serveur OPC configuré dans le Superviseur.
SV_SCADABasic_fr 39
Conversion de Données
Voir aussi
Instruction Action
BIN Renvoie une chaîne représentant en binaire un nombre passé en base 10.
CONVERT Conversion de chaîne alphanumérique en Héxadécimal, Octal, Binaire, BCD et
inversement.
DVAL Donne la valeur numérique dans un double d'une chaîne de caractère.
HEX Renvoie une chaîne représentant en hexa un nombre passé en base 10.
IVAL Donne la valeur numérique dans un entier d'une chaîne de caractère.
LVAL Donne la valeur numérique dans un entier long d'une chaine de caractères.
OCT Renvoie une chaîne représentant en octal un nombre passé en base 10.
SVAL Donne la valeur numérique dans un single d'une chaîne de caractère.
TOC Convertit un nombre en chaîne de caractères d'après le format standard.
TOD Convertit un nombre en double.
TODOUBLE Convertit une variable de la base de données en double.
TOI Convertit un nombre en entier.
TOL Convertit un nombre en long.
TOLL Convertit un nombre en longlong.
TOS Convertit un nombre en single.
SV_SCADABasic_fr 40
Debug
Instruction Action
ERROR Renvoie le status de la dernière erreur.
PRINT Affiche des données dans la fenêtre programme.
TRACE Exécute une trace dans SCADA Basic sans utiliser la fonction PRINT.
TRACEON / TRACEOFF Permet de tracer les appels de procédures.
SV_SCADABasic_fr 41
Déclaration
Voir aussi
Instruction Action
CONST Déclare une constante.
DECLARE FUNCTION Déclare une fonction externe.
DECLARE SUB Déclare un sous-programme externe.
DIM Déclare une variable ou un tableau.
REGVAR2D Contrôle l'utilisation de variables mesure de type DOUBLE dans un
programme.
SUB ... END SUB Début et fin de sous-programme.
SV_SCADABasic_fr 42
Divers
Instruction Action
APPLICATION Lancement d'une application en parallèle.
ASSOCIATEDACTIONS Importe les actions associées d'une alarme, à partir d'un fichier ou d'un buffer.
ASSOCLABEL Modifie un libellé associé.
BEEP Emet un signal sonore.
CRONTAB Activation modification d'actions horodatées.
EXPRESSION Importation de modèles d'expressions ou d'expressions de variables à partir
d'un fichier ou d'un buffer.
FORMULA Activation modification de formules de calcul.
GETPROJECTDIR Renvoie le chemin du projet courant.
RECIPE Gestion de recettes.
SMS Gestion d'envoi de données par SMS.
SYSTEM Modification ou lecture de l'heure, de la date du système et du mode
graphique.
WEBVUE Gère la connexion aux clients WebVue.
XMLPATH Processus XML formatant des données selon les spécifications XPath (XML Path
Language).
SV_SCADABasic_fr 43
Données Historiques
Instruction Action
EXPORT Exécute un export configuré précédemment (Application Explorer)
EXPORT_LOG Génère des données de consignations d'historiques en utilisant la fonctionnalité
fournie par l'Export de données.
EXPORT_TREND Génère des données de tendance d'historiques en utilisant la fonctionnalité fournie
par l'Export de données.
HISTORY Gestion des historiques.
SVALA Gestion des listes d'alarmes.
SVBATCH Suivi et traçabilité de lots.
SVLOG Gestion des listes de consignation.
SVTREND Récupération entre deux dates des valeurs historisées d’un ensemble de variables.
SV_SCADABasic_fr 44
Entrées/Sorties
Instruction Action
FTP Copie un fichier vers ou depuis un serveur de transfert de fichier (site FTP).
EMAIL Fonctions de messagerie électronique basiques utilisant le composant
MailSender de Microsoft.
HARDCOPY Impression d'écran.
KEY Programmation de touche clavier.
LPRINT Envoie un message vers une imprimante.
MULTIMEDIA Pilotage de périphériques audio et vidéo.
PRINTER Mise en service ou hors service d'une imprimante.
SVKEY Lit le contenu d'une clé de protection dans un système multi-postes.
SVSQL Gestion des bases de données.
SV_SCADABasic_fr 45
Exécution de Programmes
Instruction Action
CYCLIC Exécution cyclique d'une fonction.
DELAY Suspend l'exécution du programme en cours pendant n secondes.
EVENT Exécution d'une fonction sur changement de valeur d'une variable.
GETARG Récupération des paramètres sur le contexte d'appel d'une fonction.
PROGRAM Chargement, lancement, exécution ou arrêt d'un programme.
STOP Arrête le programme en cours.
SV_SCADABasic_fr 46
Fenêtres
Instruction Action
CAPTION Affiche un texte dans la barre de titre de la fenêtre principale.
LANGUAGE Changement de la langue de travail.
REGION Gère les numéros de régions d'affichage.
WEBVUE Gère les connexions aux clients WebVue.
WINDOW Ouverture et fermeture de fenêtre.
SV_SCADABasic_fr 47
Fonctions Mathématiques
Voir aussi
Instruction Action
ACOS Arc cosinus.
ASIN Arc sinus.
ATAN Arc tangente.
COS Cosinus.
EXP Exponentiation.
IRAND Renvoie un nombre aléatoire.
LOG Logarithme néperien.
LOGICAL Opérations logiques sur des variables mesure pour des entiers 32 octets.
LOGICAL64 Opérations logiques sur des entiers 64 octets.
POW Puissance.
SIN Sinus.
SQRT Racine carrée.
TAN Tangente.
SV_SCADABasic_fr 48
Gestion de Buffer
Instruction Action
ALLOC_BUFFER Alloue une zone mémoire de n octets.
BUFTOFILE Création d'un fichier à partir d'un buffer.
BUFTOEXCEL Crée un fichier Excel au format XLSX en utilisant le contenu d'un buffer
mémoire.
CGET_BUFFER Récupère un caractère dans une zone mémoire réservée par un
ALLOC_BUFFER.
COPY_BUFFER Copie le contenu d'un buffer dans un autre buffer.
DGET_BUFFER Récupère un double dans une zone mémoire réservée par un ALLOC_BUFFER.
EXCELTOBUF Crée un buffer mémoire depuis un fichier Excel au format XLSX.
FILETOBUF Création d'un buffer à partir d'un fichier.
FREE_BUFFER Libère une zone mémoire réservée par ALLOC_BUFFER.
IGET_BUFFER Récupère un entier dans une zone mémoire réservée par un ALLOC_BUFFER.
LGET_BUFFER Récupère un long dans une zone mémoire réservée par un ALLOC_BUFFER à
l'offset précisé.
PUT_BUFFER Insère une donnée dans une zone mémoire réservée par un ALLOC_BUFFER.
SEQ_BUFFER Manipulation de lignes dans un buffer alloué par ALLOC_BUFFER.
SGET_BUFFER Récupère un single dans une zone mémoire réservée par un ALLOC_BUFFER.
SV_SCADABasic_fr 49
Gestion de Fichiers
Instruction Action
FCLOSE Ferme le fichier spécifié.
FCOPY Copie un fichier d'une source vers une destination.
FEOF Détermine si la fin d'un fichier a été atteinte.
FGETC Lit un caractère dans un fichier.
FGETS Lit une chaîne de caractères dans un fichier.
FMOVE Déplace un fichier d'une source vers une destination.
FOPEN Ouvre le fichier spécifié selon le mode d'accès.
FPUTC Ecrit un caractère dans un fichier.
FPUTS Ecrit une chaîne de caractère dans un fichier.
FREAD Lit un nombre n de données de même type dans un fichier et les stocke dans
un buffer précédemment alloué par ALLOC_BUFFER.
FSEEK Déplace le pointeur d'un fichier vers une nouvelle position.
FSTAT Permet d'obtenir des informations de taille et de date sur un fichier.
FWRITE Ecrit un nombre n de données de même type dans un fichier à partir de
données stockées dans un buffer précédemment alloué par ALLOC_BUFFER.
RENAME Permet de renommer un fichier.
UNLINK Permet de détruire un fichier.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
SV_SCADABasic_fr 50
Heure et Date
Voir aussi
Instruction Action
DATETIME Fournit les composants d'une horodate.
DATETIMESTRING Conversion d'une horodate en chaîne de caractères.
DATETIMEVALUE Conversion d'une horodate en numérique.
TOHMS Convertit une valeur en secondes au format Heures:Minutes:Secondes.
SV_SCADABasic_fr 51
IHM
Instruction Action
ANIMATION
Exécution d'une animation à partir du SCADA Basic.
ALARMDISPLAY Simulation du bandeau de commande d'une animation fenêtre d'alarme.
CHART Gère le fonctionnement d'un graphique dans l'IHM.
CHECKLIST Propriétés d'accès au contrôle de formulaire CHECKLIST
COMBOBOX Propriétés d'accès au contrôle de formulaire COMBOBOX
LISTBOX Propriétés d'accès au contrôle de formulaire LISTBOX
LOGDISPLAY Simulation du bandeau de commande d'une animation fenêtre de consignation.
OPTIONLIST Propriétés d'accès au contrôle de formulaire OPTIONLIST
SELECTOR Sélectionne les données qui s'affichent dans une animation contrôle grid.
TREEVIEW Propriétés d'accès au contrôle de formulaire TREEVIEW
TREND Modification d'une animation tendance.
SV_SCADABasic_fr 52
Manipulation de Chaînes de Caractères
Instruction Action
ADDSTRING Concaténation de 2 chaines de caractères.
ASC Renvoie le code ASCII du 1er caractère d'une chaîne.
ASCIIFIELD Récupération des champs séparés par un caractère donné dans des buffers
ASCII.
CHR Renvoie le caractère ASCII du code passé en argument.
CMPSTRING Comparaison de 2 chaînes de caractères.
FORMAT Représente sous forme de chaîne une expression selon un format.
LCASE Convertit tous les caractères d'une chaîne en minuscule.
LEFT Copie les n premiers caractères de la chaîne.
LEN Renvoie la longueur d'une chaîne.
LTRIM Renvoie la copie d'une chaîne sans les espaces à gauche.
MID Renvoie une sous chaîne d'une chaîne de caractère.
RIGHT Copie les n derniers caractères de la chaîne.
RTRIM Renvoie la copie d'une chaîne sans les espaces à droite.
SPACE Renvoie une chaîne constituée de n espaces.
STRING Renvoie une chaîne constituée de n fois un caractère.
TEXTVAR Manipulation de chaînes de caractères.
UCASE Convertit tous les caractères d'une chaîne en majuscule.
SV_SCADABasic_fr 53
Structuration de Programmes
Voir aussi
Instruction Action
BREAK Sortie d'un bloc d'instructions.
FOR...NEXT Répète un groupe d'instructions un certain nombre de fois.
IF...THEN...ELSE ...END IF Exécution conditionnelle d'instructions.
RETURN Sortie de procédure.
WHILE...WEND Exécution d'instructions en boucle tant qu'une condition reste vraie.
SV_SCADABasic_fr 54
ACOS
Voir aussi
Fonction arccosinus.
Syntaxe
DblVal = ACOS(arc);
Type de retour : DOUBLE
Argument Valeur
arc arc peut être de tout type numérique mais doit être compris entre -1 et 1, sinon la
fonction retourne 0.
Exécution
La valeur de retour est exprimée en degrés.
Les variables de la base de données sont de type SINGLE.
En cas d'affectation avec cette fonction, la conversion en SINGLE est donc nécessaire si l'on veut
éviter une erreur de type.
Exemple
'database variables required:
' @ARC - type REGISTER, value range -1 to +1
' @ANGLE - type REGISTER, value range 0° to 360°
SUB Main()
DIM sngarc As Single;
DIM dblangle As Double;
sngarc = @ARC;
'Apply Arc cosine function
dblangle = ACOS (sngarc);
@ANGLE = TOS(dblangle);
END SUB
SV_SCADABasic_fr 55
ADDSTRING
Voir aussi
Concatène jusqu'à 10 chaînes de caractères.
Syntaxe
StrVal = ADDSTRING(string1, string2[, string3[, string4[, string5[, string6[, string7[, string8[, string9[,
string10]]]]]]]]);
Type de retour : STR
Argument Valeur
string1, string2 etc. Chaînes de caractères à concaténer. Minimum 2, maximum 10.
Exécution
La longueur d'une chaîne est au maximum de 2 047 caractères. Lorsque la longueur résultante excède
limite, la chaîne est tronquée.
Exemple
Cet exemple concatène 2 chaînes de caractères.
'database variables required:
' @TEXT01 - type TEXT
' @TEXT02 - type TEXT
' @TEXT03 - type TEXT
SUB Main()
'Declare
DIM strch1 As Str;
DIM strch2 As Str;
DIM strch3 As Str;
'Initialise
strch1="TEXT1";
strch2="TEXT2";
'Concatenate
strch3 = ADDSTRING(strch1,strch2);
Print("Result of ADDSTRING(strch1,strch2) = ", strch3 );
END SUB
SUB AddStringProc1()
'Same function with database variables
@TEXT03=ADDSTRING(TEXT01,TEXT02);
END SUB
SV_SCADABasic_fr 56
ALARM
Voir aussi
Teste ou force l'état d'une alarme.
Mode Mnémonique Syntaxe
1 ACK 1, 5
2 MASK 1
3 UNMASK 1
4 VALUE 1
5 ACKALL 2
6 ACKLAST 2
7 ACKTAG 3
9 ACKOLDEST 2
11 ACKDOMNAT 4
12 ACKPRIO 6
13 SETMAINTENANC 1, 5
E
14 RESETMAINTENA 1, 5
NCE
15 GETMAINTENANC 1
E
16 SETALARMLEVEL 7
17 RESTOREALARML 1, 5
EVEL
18 ALARMON 8
19 RESETANDSETAL 1
ARM
20 GETACKLEVEL 1
21 GETMASKLEVEL 1
22 GETMAINTENANC 1
ELEVEL
Syntaxe 1
IntVal = ALARM (Mode, Alarm_name);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
1 ACK Acquitte l'alarme nom_variable.
Retour : 1 si OK, 0 sinon.
2 MASK Masque l'alarme nom_variable.
Retour : 1 si OK, 0 sinon.
3 UNMASK Démasque l'alarme nom_variable.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 57
4 VALUE Teste l'état de l'alarme nom_variable.
Retour:
0 absente acquittée (ou au repos).
1 présente non acquittée.
2 absente non acquittée.
3 présente acquittée.
4 invalide.
13 SETMAINTENANC Force une alarme en mode maintenance (ou mode prise en compte).
E
Retour : 1 si OK, 0 sinon.
14 RESETMAINTENA Supprime le mode maintenance d'une alarme.
NCE
Retour : 1 si OK, 0 sinon.
15 GETMAINTENANC Vérifie l'état de maintenance d'une alarme.
E
Retour :
0 l'alarme n'existe pas
1 l'alarme est en mode maintenance
2 l'alarme n'est pas en mode maintenance.
17 RESTOREALARML Restaure le niveau de priorité d'une alarme.
EVEL
Retour : 1 si OK, 0 sinon.
19 RESETANDSETAL Force un basculement absente/présente de l'alarme présente dont le nom est
ARM AlarmName.
20 GETACKLEVEL Retourne le niveau d'acquittement de l'alarme.
21 GETMASKLEVEL Retourne le niveau de masquage de l'alarme.
22 GETMAINTENANC Retourne le niveau de maintenance de l'alarme.
ELEVEL
Le mode Maintenance ne peut être positionné que lorsque l'alarme est Présente et
Acquittée. Le mode maintenance ne peut être effacé lorsque l'alarme est Au repos.
Syntaxe 2
IntVal = ALARM(Mode [, Flag]);
Argument Signification
Flag est un entier facultatif qui prend la valeur 0 ou 1.
Flag
Si Flag est à 1 l'acquittement est consigné comme pour un acquittement opérateur.
SV_SCADABasic_fr 58
acquittées.
Retour : 1 si OK, 0 sinon.
6 ACKLAST Acquitte la dernière alarme qui est apparue non acquittée.
Retour : 1 si OK, 0 sinon.
9 ACKOLDEST Acquitte la première alarme non acquittée c'est-à-dire la plus
ancienne.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
IntVal = ALARM(Mode, Alarm_ID [, Flag]);
Syntaxe 4
IntVal = ALARM(Mode, Domain, Nature[, Flag]);
Argument Signification
Flag Flag est un entier facultatif qui prend la valeur 0 ou 1.
1: activé (consigné pour le compte de l'utilisateur)
0: desactivé
Lorsque beaucoup d'alarmes sont acquittées, cette instruction peut être très longue et
bloquer temporairement le programme. Elle se fait par paquet de 50 alarmes chaque
seconde.
SV_SCADABasic_fr 59
Syntaxe 5
IntVal = ALARM (Mode, Alarm_name[, Flag]);
Argument Signification
Flag Flag est un entier facultatif qui prend la valeur 0 ou 1.
1: activé (consigné pour le compte de l'utilisateur)
0: desactivé
13 SETMAINT Force une alarme en mode maintenance (ou mode prise en compte).
ENANCE
Retour : 1 si OK, 0 sinon.
14 RESETMAI Supprime le mode maintenance d'une alarme.
NTENANCE
Retour : 1 si OK, 0 sinon.
17 RESTOREA Restaure le niveau de priorité d'une alarme.
LARMLEVE
L
Retour : 1 si OK, 0 sinon.
Syntaxe 6
IntVal = ALARM(Mode, Priority[, Flag]);
Argument Action
Priority Priorité d'une alarme. Type : INTEGER.
Flag Flag est un entier facultatif qui prend la valeur 0 ou 1.
1: activé (consigné pour le compte de l'utilisateur)
0: desactivé
SV_SCADABasic_fr 60
Lorsque beaucoup d'alarmes sont acquittées, cette instruction peut être très longue et
bloquer temporairement le programme. Elle se fait par paquet de 50 alarmes chaque
seconde.
Syntaxe 7
IntVal = ALARM(Mode, Variable_name, Level);
Argument Action
Variable_n Nom de la variable alarme dont le niveau est à modifier.
ame
Level Niveau de priorité des alarmes (entre 0 et 29).
Le changement est temporaire. Il n'affecte pas la configuration de la variable, il n'est actif que
lors de la phase d'exécution.
Syntaxe 8
IntVal = ALARM(Mode, Variable_name, Transition);
Argument Action
Variable_n Nom de la variable alarme dont la propriété sera modifiée.
ame
Transition Si Transition vaut 1 l’alarme Variable_name sera présente sur passage à 1 du bit
associé à l’alarme.
Si Transition e vaut 0 l’alarme Variable_name sera présente sur passage à 0 du bit
associé à l’alarme.
La transition est temporaire. Elle n'affecte pas la configuration de la variable, elle n'est active que
SV_SCADABasic_fr 61
lors de la phase d'exécution.
Exemple
Cet exemple teste ou force l'état d'une variable. Il utilise le mode ACK (Syntaxe 1) du verbe ALARM.
SUB AckVar (variance)
DIM res As Integer;
res = ALARM(1,VarName); ' acknowledge alarm
Print ("AckVar returned ",res);
END SUB
SUB AckAllAlarms ()
DIM res As Integer;
res = ALARM("ACKALL");
Print ("AckAllALarms returned ",res);
END SUB
Cet exemple positionne Alarm1 en mode maintenance :
ALARM("SETMAINTENANCE", "Alarm1", 1 );
Cet exemple supprime le mode maintenance de Alarm1 :
ALARM("RESETMAINTENANCE", "Alarm1", 1);
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 62
ALARMDISPLAY
Voir aussi Exemple Plus d'informations
Simule le bandeau de commande d'une animation fenêtre d'alarme.
Lors de l'utilisation de régions multiples, vous devez positionner la région avant l'exécution
d'instructions qui interagissent avec l'IHM. Pour plus d'informations, voir le chapitre REGION.
SV_SCADABasic_fr 63
32 PRINT_DISPLAY 1, 11
33 PROGMASK 4
34 VARMASK 4
35 IS_ACTION1 1
36 IS_ACTION2 1
37 DATERANGE 6
38 MAINTENANCEMASK 4
39 UNSELECTALL 1
40 ONLINESELECT 9
41 SELECDATETIME 10
42 MASK_DISPLAY 1
43 UNMASK_DISPLAY 1
44 LINSELECT 12
45 SETSORT 13
46 GETSORT 14
47 ISLINEVISIBLE 16
48 ISLINESELECTED 16
49 GETLINECOUNT 1
50 GET_NAME_FROM_LI 17
NE
51 COPY_CLIPBOARD 18
52 GETCELL 20
53 GETLINES 19
54 GETSELECTEDLINES 19
Pour tous les modes :
Argument Signification
Window Nom de la fenêtre qui contient l'animation à piloter. Type STR
Branch Branche éventuelle de la fenêtre ("#B" pour utiliser la branche courante du
programme). Type STR
Identity Identifiant de l'animation fenêtre d'alarme. Type STR
Syntaxe 1
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
0 BEGIN Début de liste.
1 BEFORE Remonte d'une page.
3 AFTER Descend d'une page.
4 END Fin de liste.
5 LINEUP Remonte d'une ligne.
6 LINEDOWN Descend d'une ligne.
SV_SCADABasic_fr 64
7 MODE Passage aux modes liste ou figé.
8 DYNAMIC Passage en mode fil de l'eau.
20 ACTION 1 Exécute l'action associée n° 1 à l'alarme sélectionnée.
21 ACTION 2 Exécute l'action associée n° 2 à l'alarme sélectionnée.
24 LIST Bascule dans le mode Liste quel que soit le mode préalable.
25 PRINTALL Imprime toutes les lignes du buffer configuré dans la fenêtre d'alarme.
27 ACK_SELECTED Acquitte l'alarme sélectionnée.
28 ACK_DISPLAY Acquitte les alarmes visibles dans la fenêtre.
29 MASK_SELECTED Masque l'alarme sélectionnée.
30 UNMASK_SELECTE Démasque l'alarme sélectionnée.
D
31 PRINT_SELECTED Imprime l'alarme sélectionnée.
32 PRINT_DISPLAY Imprime les alarmes visibles dans la fenêtre.
Pour tous les modes, exceptés 35 et 36 : Retour : 1 si OK, 0 sinon.
35 IS_ACTION1 Permet de savoir si l'alarme sélectionnée a une action associée 1.
36 IS_ACTION2 Permet de savoir si l'alarme sélectionnée a une action associée 2.
Pour les modes 35 et 36 : Retour :
-1 Alarme non sélectionnée
0 Actions associées non configurées
1 Actions associées configurées
39 UNSELECTALL Désélectionne toutes les lignes affichées.
42 MASK_DISPLAY Masque toutes les alarmes visible dans la fenêtre.
43 UNMASK_DISPLAY Démasque toutes les alarmes visibles dans la fenêtre.
Retour : 1 si OK, 0 sinon (fenêtre non-existante, mauvais type
d'animation, repère non-existant).
49 GETLINECOUNT Retourne le nombre de lignes dans l'affichage.
Retour pour tous les modes sauf indication contraire : 1 si OK, 0 sinon
(fenêtre inexistante, mauvais type d'animation, position inexistante).
Syntaxe 2
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Name);
Type de retour : INTEGER
Argument Signification
Name Nouveau domaine, nouvelle nature ou nouveau format.
Pour spécifier tous les domaines ou toutes les natures, Name doit être une chaîne vide "".
Type STR.
Exécution
Sélectionne un nouveau domaine, nature ou format.
Mode Mnémonique Action
9 DOMAIN Nouveau domaine.
10 NATURE Nouvelle nature.
SV_SCADABasic_fr 65
Pour tous les modes : Retour : 1 si OK, 0 sinon .
Syntaxe 3
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Priority);
Type de retour : INTEGER
Argument Signification
Priority Spécifie le niveau de priorité pour le filtre d'alarme
Priority doit être de type numérique. Si priority est hors bornes (<0 ou >29), la fonction
renvoie 0.
Exécution
Sélectionne les nouveaux niveaux minimum et maximum des priorités des alarmes à visualiser.
Mode Mnémonique Action
11 MINPRIO Priorité minimum.
12 MAXPRIO Priorité maximum.
Pour les deux modes : Retour : 1 si OK, 0 sinon.
Syntaxe 4
Ret = ALARMDISPLAY(Mode, Window, Branch, Identity, Flag);
Type de retour : INTEGER
Argument Signification
Flag flag de type numérique = 1 pour activer, = 0 pour désactiver le mode sélectionné.
Exécution
Sélectionne l'état des alarmes à visualiser.
Mode Mnémonique Action
13 ACK_ON Présentes acquittées.
14 ACK_OFF Absentes acquittées.
15 NOACK_ON Présentes non acquittées.
16 NOACK_OFF Absentes non acquittées.
17 NS Invalides.
23 USERMASK Masquées opérateurs.
33 PROGMASK Masquées par programme.
34 VARMASK Masquées par variable.
38 MAINTENANCEMASK Alarmes prises en compte.
Pour tous les modes : Retour : 1 si OK, 0 sinon.
Syntaxe 5
StrVal = ALARMDISPLAY(Mode, Window, Branch, Identity);
Type de retour : STR
Exécution
SV_SCADABasic_fr 66
Mode Mnémonique Action
18 SELECTED Récupére le rang de la dernière alarme sélectionnée; représentée en
inverse vidéo dans la fenêtre d'alarme.
La chaîne retournée peut être passée en argument au mode ACKTAG
du verbe ALARMDISPLAY pour un acquittement.
19 SELECNAME Récupére le nom de la dernière alarme sélectionnée; représentée en
inverse vidéo dans la fenêtre d'alarme.
Syntaxe 6
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, StartDate, EndDate);
Type de retour : INTEGER
Argument Signification
StartDate Date de début, exprimée en millisecondes depuis 1980. (Voir l'instruction
DateTimeValue.)
EndDate Date de fin, exprimée en millisecondes depuis 1980. (Voir l'instruction
DateTimeValue.)
Exécution
Mode Mnémonique Action
37 DATERANGE Sélection de date à date de l'ensemble des alarmes en cours et
affichage dans l'animation.
Retour : 1 si OK, 0 sinon (la fenêtre n'existe pas, etc.)
Syntaxe 7
Ret = ALARMDISPLAY(Mode, Window, Branch, Identity, Filter);
Argument Signification
Filter Expression de filtre. Voir le chapitre Expressions de Filtres pour plus informations. Type STR.
Syntaxe 8
IntVal =ALARMDISPLAY(Mode, Window, Branch, Identity, AlarmName, Selected );
SV_SCADABasic_fr 67
Argument Action
AlarmNam Nom de l'alarme à laquelle la ligne sélectionnée fait référence.
e
Selected Etat de la ligne : sélectionnée (0) ou non (1).
Syntaxe 9
IntVal =ALARMDISPLAY(Mode, Window, Branch, Identity, Program, Branch, Function, [Farg]);
Argument Action
Program Programme à utiliser.
Function Fonction à exécuter.
Farg Contient de 1 à 8 arguments séparés par des virgules "," (Facultatif, maximum 255
caractères.
Vous pouvez utiliser la commande GETARG pour récupérer la valeur de ces arguments.
Syntaxe 10
DblVal =ALARMDISPLAY(Mode, Window, Branch,Identity);
Type de retour : DOUBLE (peut être 0 si aucune sélection n'a été faite).
Exécution
SV_SCADABasic_fr 68
ME fenêtre d'alarme.
Retour : 1 si OK, 0 sinon (fenêtre non-existante, mauvais type
d'animation, repère non-existant).
Syntaxe 11
IntVal =ALARMDISPLAY(Mode, Window, Branch,Identity[,PrintFormat]);
Type de retour : INTEGER.
Argument Action
PrintForma Paramètre optionnel pour la sélection du format d'impression :
t 0 : Format d'affichage (défaut).
1 : Format d'impression.
Exécution
Syntaxe 12
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Program, ProgramBranch, Function,
Arguments);
Type de retour : INTEGER.
Argument Signification
Program Programme a exécuter.
ProgramBra Branche du programme.
nch
Function Fonction du programme à exécuter.
Arguments Paramètres du programme.
Exécution
Mode Mnémonique Action
44 LINESELECT Spécifie un programme à exécuter lorsque une ligne
sélectionnée/désélectionnée apparaît.
Retour : 1 si OK, 0 si paramètre erroné.
L'instruction XMLPATH est utilisée pour obtenir les informations du mode GETSORT. Un espace de
nom est créé automatiquement lors de l'utilisation des paramètres Branch, Window et Identit. Pour
des informations sur son format, voir le chapitre XMLPATH.
SV_SCADABasic_fr 69
Chemin Signification
getsort/colu Valeurs 0 à 7 pour identifier la colonne, -1 pour réinitialiser le tri.
mn
getsort/sort Valeurs 1 pour un tri ascendant, 0 pour un tri descendant.
Syntaxe 13
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Column, Sort);
Type de retour : INTEGER.
Argument Signification
Column Valeurs de 0 à 7 pour indentifier la colone, - 1 pour réinitialiser le tri.
Sort Valeur 1 pour un tri ascendant, 0 pour descendant.
Exécution
Mode Mnémonique Action
45 SETSORT Tri dynamique d'une liste d'alarme par une colonne.
Retour : 1 si OK, 0 si paramètre erroné.
Syntaxe 14
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Column, Sort);
Type de retour : INTEGER.
Argument Signification
Column Valeurs de 0 à 7 pour indentifier la colone, - 1 pour réinitialiser le tri.
Sort Valeur 1 pour un tri ascendant, 0 pour descendant.
Exécution
Mode Mnémonique Action
46 GETSORT Obtient le status d'un tri.
Retour : 1 si OK, 0 si paramètre erroné.
Un espace de nom est créé automatiquement lors de l'utilisation de Branch, Window et Identity.
Syntaxe 15
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, DateFormat);
Type de retour : INTEGER
Argument Signification
DateFormat Chaîne de caractères définissant un nouveau format d'affichage pour des dates dans une
SV_SCADABasic_fr 70
alarme.
Exécution
Sélectionne un nouveau format pour la fenêtre d'alarmes.
Mode Mnémonique Action
22 FORMAT L'argument DateFormat fournit un nouveau format d'affichage.
Exemple de cette syntaxe : #h:#m:#s\t#D/#M/#y\t#T\t#E où \t
marque le début de chaque colonne et les caractères de substitution
sont ceux utilisés dans une fenêtre d'alarmes.
Syntaxe 16
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, LineNumber);
Type de retour : INTEGER
Argument Signification
LineNumber Numéro correspondant à la position de la ligne.
Exécution
Sélectionne un nouveau format d'affichage de la fenêtre d'alarmes.
Mode Mnémonique Action
47 ISLINESELECTED Test si la ligne est sélectionnée.
Retour : 1 si la ligne est sélectionnée, 0 si la ligne
n'est pas sélectionnée, - 1 si la ligne n'existe pas.
48 ISLINEVISIBLE Test si la ligne est visible.
Retour : 1 si la ligne est visible, 0 si la ligne est dans
le buffer mais n'est pas visible, -1 si la ligne n'existe
pas.
Syntaxe 17
StrVal = ALARMDISPLAY(Mode, Window, Branch, Identity, LineNumber);
Type de retour : STRING
Argument Signification
LineNumber Numéro correspondant à la position de la ligne.
Exécution
Sélectionne un nouveau format d'affichage de la fenêtre d'alarmes.
Mode Mnémonique Action
50 GET_NAME_FROM_LINE Retourne le nom de l'alarme de la ligne sélectionnée.
Syntaxe 18
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Separator);
Argument Signification
Separator Caractère(s) utilisé(s) pour délimiter le contenu de chaque colonne. Type STR.
Type de retour : INTEGER.
Exécution
SV_SCADABasic_fr 71
Mode Mnémonique Action
51 COPY_CLIPBOARD Copie les lignes sélectionnées vers le presse-papier Windows.
Retour : 1 si OK, 0 sinon.
Syntaxe 19
StrVal = ALARMDISPLAY(Mode, Window, Branch, Identity, LineStart[, LineEnd, ColSeparator,
LineSeparator]);
Argument Signification
Linestart Numéro de ligne (1ère ligne = 1) dans le buffer de la fenêtre d'alarmes. Type INTEGER.
LineEnd Numéro de ligne (1ère ligne = 1) dans le buffer de la fenêtre d'alarmes. Type INTEGER.
ColSeparator Caractère(s) utilisé(s) pour séparer les colonnes dans la chaîne de retour. Par défaut : virgule
",". Type STR.
LineSeparator Caractère(s) utilisé(s) pour séparer les lignes dans la chaîne de retour. Par défaut : nouvelle
ligne "\n". Type STR.
Type de retour : STR.
Exécution
Mode Mnémonique Action
53 GETLINES Retourne les lignes de LineStart à LineEnd (inclusive) dans une seule chaîne
délimitée par les caractères ColSeperator et LineSeperator. Si LineEnd est omis,
une seule ligne est retournée en utilisant les caractères par défaut pour délimiter
les colonnes.
Retour : Lignes sélectionnées de la fenêtre d'alarmes.
54 GETSELECTEDLINES Idem à GETLINES excepté que seules les lignes sélectionnées sont retournées.
Syntaxe 20
StrVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Line, Column);
Argument Signification
Line Numéro de colonne (1ère colonne = 1) dans le buffer de la fenêtre d'alarmes. Type INTEGER.
Column Numéro de colonne (1ère colonne = 1) dans le buffer de la fenêtre d'alarmes. Type INTEGER.
Type de retour : STR.
Exécution
Mode Mnémonique Action
52 GETCELL Retourne le contenu de la cellule spécifique.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus. En particulier, pour les syntaxes 12 et 14, voir
des exemples similaires dans les modes 23 et 25 du verbe LOGDISPLAY.
SV_SCADABasic_fr 72
ALLOC_BUFFER
Voir aussi
Alloue une zone mémoire de n octets.
Syntaxe
LongVal = ALLOC_BUFFER(N);
Type de retour : LONG
Exécution
La valeur de retour sert à référencer ultérieurement la zone mémoire réservée.
Lors de l'allocation d'un important buffer, vous devez accorder une attention particulière à la
désallocation de ce buffer après son utilisation.
Exemple
Cet exemple alloue une zone mémoire de n octets.
SUB Main()
DIM hbuffer As Long;
DIM intvalue As Integer;
intvalue = 50;
hbuffer = ALLOC_BUFFER(intvalue);
PRINT("Buffer handle = ",hbuffer);
SV_SCADABasic_fr 73
ANIMATION
Voir aussi
Permet l'exécution d'une animation à partir du SCADA BASIC.
Mode Mnémonique Syntaxe
1 EXECUTE 1
Syntaxe 1
ANIMATION(Mode, Window, Branch, Identity)
Argument Signification
Window Nom de la fenêtre qui contient l'animation à utiliser. Type STR.
Branch Branche (si elle existe) de la fenêtre. Utilisation de "*" pour indiquer la branche
courante du programme. Type STR
Identity Identifiant (ou repère) de l'animation dans la fenêtre spécifiée. Type STR.
Exemple
Cet exemple initie une action à partir d'une animation. Pour l'utiliser :
SUB AnimationExecute()
ANIMATION("EXECUTE","MENU","","BUTTON01");
END SUB
SV_SCADABasic_fr 74
APPLICATION
voir aussi Exemple
Lancement d'une autre application.
Mode Mnémonique Syntaxe
1 ISLOADED 1
2 ACTIVATE 1
3 LOAD 2
4 UNLOAD 2
Syntaxe 1
IntVal = APPLICATION(Mode, Command);
Type de retour : INTEGER
Argument Signification
Command Nom de fichier de l'application. Il peut comprendre un chemin d'accès (nom de lecteur et
nom de répertoire). Type STR.
Exécution
Mode Mnémoniq Action
ue
1 ISLOADED Teste si l'application spécifiée est en cours d'exécution.
Retour : 1 si en cours d'exécution, 0 sinon.
2 ACTIVATE Active une application en cours d'exécution.
Retour : 1 si OK, 0 sinon.
4 UNLOAD Ferme une application.
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = APPLICATION(Mode, Command[, Argument[, Start][,Folder]]);
Type de retour : INTEGER
Argument Signification
Command Nom de fichier de l'application. Il peut comprendre un chemin d'accès (nom de lecteur et
nom de répertoire). Type STR.
Argument Contient des arguments ou des options de lignes de commande valides de l'application à
lancer. Facultatif. Type STR.
Start Détermine le style de fenêtre dans laquelle l'application doit être exécutée. Type INTEGER.
1 Normale active (valeur par défaut).
2 Réduite active.
3 Agrandie active.
4 Normale non active (en arrière-plan).
5 Réduite non active (en arrière-plan).
Folder Unité et répertoire courant de travail ("Démarrer dans" (Working Folder)) pour le
programme).
La chaîne de caractères doit être un chemin complet incluant l'unité. Si celui-ci n'est pas
SV_SCADABasic_fr 75
correct, le programme aura la même unité et répertoire que le Superviseur. Type STR.
Exécution
Mode Mnémonique Action
3 LOAD Charge et lance une application.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 76
ASC
Voir aussi
Renvoie le code ASCII du 1er caractère d'une chaîne.
Syntaxe
IntVal = ASC(string[, iExtended]);
Type de retour : INTEGER
Exécution
Argument Valeur
string Chaîne de texte. Seul le premier caractère est utilisé.
iExtended Pour l'utilisation de caractères avec les codes ANSI étendus :
0 : (défaut) renvoie une valeur négative lorsque le code est supérieur à 127. Pour
renvoyer le bon code, ajouter 256.
1 : Renvoie une valeur positive lorsque le code est supérieur à 127.
IntVal Le code renvoyé est compris entre 0 et 255. Si la chaîne est vide la fonction retourne 0.
Le code renvoyé est compris entre 0 et 255. Si la chaîne est vide la fonction retourne 0.
Exemple
Cet exemple renvoie les codes ASCII des nombres jusqu'à 256.
Sub TestASC()
Dim i As Integer;
Dim c As Str;
Dim j As Integer;
SV_SCADABasic_fr 77
ASCIIFIELD
Voir aussi Exemple
Récupération des champs séparés par un caractère donné dans des buffers ASCII.
Mode Mnémonique Syntaxe
1 LEN 1
2 COUNT 2
3 STR 1
4 INTEGER 1
5 LONG 1
6 DOUBLE 1
Le buffer ASCII doit se terminer par un caractère de saut de ligne, soit \n, soit CHR(10).
Si vous ne terminez pas le buffer correctement, le dernier champ (le plus à droite) ne
sera pas reconnu.
Vous ne pouvez pas saisir de caractère de saut de ligne dans l'animation Envoi de Texte.
Syntaxe 1
RetVal = ASCIIFIELD(Mode, Handle, Index [, Sepa]);
Argument Signification
Handle Handle du buffer duquel on veut récupérer des champs. Type LONG.
Index Indice du champ à partir de 1 pour le premier champ. Type INTEGER.
Sepa Séparateur de champ il s'agit de la virgule "," par défaut. Type STR.
Exécution
Mode Mnémonique Action
1 LEN Renvoie la longueur du index ième champ du buffer hdl. Si index n'est pas
spécifié, c'est la capacité totale (taille d'allocation) du buffer hdl qui est
retournée. Type de retour : INTEGER.
3 STR Renvoie la chaîne caractère contenue dans le index ième champ dubuffer hdl. Si
index est supérieur au nombre de champs contenu dans le buffer, renvoie une
chaîne vide. Type de retour : STR.
4 INTEGER Renvoie la valeur entière contenue dans le index ième champ du buffer hdl. Si
index est supérieur au nombre de champs contenu dans le buffer, renvoie 0.
Type de retour : INTEGER.
5 LONG Renvoie la valeur LONG contenue dans le index ième champ du buffer hdl. Si
index est supérieur au nombre de champs contenu dans le buffer, renvoie 0.
Type de retour : LONG.
6 DOUBLE Renvoie la valeur réelle contenue dans le index ième champ du buffer hdl. Si
index est supérieur au nombre de champs contenu dans le buffer, renvoie 0.
Type de retour : DOUBLE.
Syntaxe 2
RetVal = ASCIIFIELD(Mode, Handle [, Sepa]);
Argument Signification
Handle Handle du buffer duquel on veut récupérer des champs. Type LONG.
SV_SCADABasic_fr 78
Sepa Séparateur de champs, par défaut c'est une virgule ",". Type STR.
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
2 COUNT RRenvoie le nombre de champs contenus dans le buffer hdl, en prenant sepa
comme séparateur de champs.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 79
ASIN
Voir aussi
Fonction arcsinus.
Syntaxe
DblVal = ASIN(arc);
Type de retour : DOUBLE
Exécution
Argument Valeur
DblVal Tout type numérique mais doit être compris entre -1 et 1, sinon la fonction retourne 0. La
valeur de retour est exprimée en degrés.
Exemple
'database variables required:
' @ARC - type REGISTER, value range -1 to +1
' @ANGLE - type REGISTER, value range 0° to 360°
SUB Main()
DIM sngarc As Single;
DIM dblangle As Double;
sngarc = @SB_EXAMPLES.TRIG.ARC;
SV_SCADABasic_fr 80
ASSOCIATEDACTIONS
Voir aussi Formats de fichiers
Importe les actions associées d'une alarme, à partir d'un fichier ou d'un buffer.
Mode Mnémonique Syntaxe Depuis la
version
0 IMPORTBYFILE 1 7.20a
1 IMPORTBYHANDLE 2 7.20a
Syntaxe 1
IntVal = ASSOCIATEDACTIONS(Mode, FileName);
Type de retour : INTEGER
Argument Signification
FileName Nom du fichier texte situé dans le répertoire TP du projet ou dans un répertoire choisi par
un chemin absolu. Type STR.
Exécution
Mode Mnémonique Action
0 IMPORTBYFILE Import des actions associées pour les alarmes à partir du fichier
spécifié.
Exemple
ASSOCIATEDACTIONS(0, "addAAA.dat");
ASSOCIATEDACTIONS("IMPORTBYFILE", "addAAA.dat");
Syntaxe 2
IntVal = ASSOCIATEDACTIONS(Mode, Handle);
Type de retour : INTEGER
Argument Signification
Handle Adresse du buffer mémoire retournée par ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
1 IMPORTBYHANDLE Import des actions associées pour les alarmes à partir d’un buffer.
Example
DIM hbuf AS LONG;
hbuf = FILETOBUF("addAAA.dat");
ASSOCIATEDACTIONS(1, hbuf);
'OR
ASSOCIATEDACTIONS("IMPORTBYHANDLE", hbuf);
SV_SCADABasic_fr 81
ASSOCLABEL
Voir aussi Exemple
Modifie un libellé associé.
Mode Mnémonique Syntaxe
1 SETLABEL 1
Syntaxe 1
IntVal = ASSOCLABEL(Mode, AssocLabelName, EventCode, Label [, Language]);
Type de retour : INTEGER
Argument Valeur
AssocLabelNam Nom du libellé associé.
e
EventCode Code du type d'événement :
0 état à 0
1 état à 1
2 passage à 0
3 passage à 1
4 commande à 0
5 commande à 1
Label Libellé de l'événement.
Language Code de la langue : 0 (langue de base) ou 1 (langue alternée).
Retour : 1 si OK, 0 sinon.
Exécution
Mode Mnémonique Action
1 SETLABEL Modification du libellé lié à l'événement CodeEvent.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 82
ATAN
Voir aussi
Fonction arctangente.
Syntaxe
DblVal = ATAN(arc);
Type de retour : DOUBLE
arc peut être de tout type numérique
Exécution
Argument Signification
DblVal La valeur de retour est exprimée en degrés.
Exemple
'database variables required:
' @ARC - type REGISTER, value range -1 to +1
' @ANGLE - type REGISTER, value range 0° to 360°
SUB Main()
DIM sngarc As Single;
DIM dblangle As Double;
sngarc = @ARC;
END SUB
SV_SCADABasic_fr 83
BACNET
Voir aussi Exemple
Exécute des commandes relatives au protocole BACnet.
Mode Mnémonique Syntaxe
0 RESET_PRIORITY 1
1 RESET_ALL_PRIORITIES 2
2 TIME_SYNCHRONIZATION 3
3 START_NETWORK 4
4 STOP_NETWORK 4
5 START_DEVICE 5
6 STOP_DEVICE 5
7 WRITE_PRIORITY 6
8 RESTART_NETWORK 4
9 START_NOTIFICATION 7
10 STOP_NOTIFICATION 7
11 START_LOG 8
12 STOP_LOG 8
13 LOG_RETRIEVAL 9
14 BACKUP_DEVICE 5
15 RESTORE_DEVICE 5
Vous pouvez spécifier la valeur par défaut, pour écrire et réinitialiser la priorité, dans les propriétés
avancées d'une variable : BACnet.Priorité d'écriture.
Syntaxe 1
Return = BACNET(Mode, VariableName, Priority[, ResultVar]);
Argument Signification
VariableNam Nom de la variable BACnet dans le Superviseur. Type STR.
e
Priority Priorité de la variable BACnet dans le Superviseur (entre 1 et 16, ou 0 pour utiliser la priorité
d'écriture par défaut). Type INTEGER.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande est terminée.
-1: La variable n'est pas reconnue.
-2: La variable n'est pas une variable BACnet.
-3: L'élément BACnet est désactivé.
-4: Le numéro de priorité est invalide.
-5: La réinitialisation a échouée.
Return: 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom de la variable est manquant.
-3: La priorité est manquante.
Exécution
Mode Mnémonique Action
0 RESET_PRIORITY Réinitialiser la valeur écrite dans un niveau de priorité en particulier.
Syntaxe 2
SV_SCADABasic_fr 84
Return = BACNET(Mode, VariableName[, ResultVar]);
Argument Signification
VariableName Nom de la variable BACnet dans le Superviseur. Type STR.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande est terminée.
-1: La variable n'est pas reconnue.
-2: La variable n'est pas une variable BACnet.
-3: L'élément BACnet est désactivé.
Return: 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom de la variable est manquant.
Exécution
Mode Mnemonic Action
1 RESET_ALL_PRIORITIES Réinitialise les valeurs de priorité des variables pour tous les niveaux de
priorité.
Syntaxe 3
Return = BACNET(Mode, NetworkName[, ResultVar]);
Argument Signification
NetworkNam Nom du réseau BACnet dans le Superviseur. Type STR.
e
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont :0: La commande est suspendue.
1: La commande est terminée.
-1: Le réseau n'est pas reconnu.
La variable résultat confirme l'envoi de la commande de synchronisation de l'heure mais
les équipements BACnet n'envoie pas d'acquittement.
Return:
0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le réseau est manquant.
Exécution
Mode Mnemonic Action
2 TIME_SYNCHRONIZATION Synchronise le temps de tous les équipements du réseau.
Syntaxe 4
Return = BACNET(Mode, NetworkAlias[, ResultVar]);
Argument Signification
NetworkAlias Nom du réseau BACnet dans le Superviseur. Type STR.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande est terminée ; le réseau a été démarré (mode START_NETWORK)
ou arrêté (mode STOP_NETWORK).
-1: Le réseau n'est pas reconnu.
SV_SCADABasic_fr 85
-2: La commande a échouée. Le réseau n'a pas été démarré (mode
START_NETWORK).
Dans le cas d'un échec de la commande (-2), vous pouvez vérifier les variables
système STATUS de BACnet pour plus d'informations.
Return: 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le réseau est manquant.
Exécution
Mode Mnemonic Action
3 START_NETWORK Démarre le réseau.
4 STOP_NETWORK Arrête le réseau.
8 RESTART_NETWORK Redémarre le réseau.
Syntaxe 5
Return = BACNET(Mode, NetworkAlias, DeviceAlias[, ResultVar]);
Argument Signification
NetworkAlias Nom du réseau BACnet dans le Superviseur. Type STR.
DeviceAlias Nom de l'équipement BACnet dans le Superviseur. Type STR.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande est terminée ; l'équipement a été démarré (mode
START_DEVICE) ou arrêté (mode STOP_DEVICE).
-1: L'équipement n'est pas reconnu.
-2: La commande a échouée ; L'équipement n'a pas été démarré. (mode
START_DEVICE)
Dans le cas d'un échec de la commande (-2), vous pouvez vérifier la variable
système STATUS de BACnet pour plus d'informations.
Return: 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom du réseau est manquant.
-3: Le nom de l'équipement est manquant.
Exécution
Mode Mnemonic Action
5 START_DEVICE Démarre l'équipement.
Syntaxe 6
Return = BACNET(Mode, VariableName, Value, Priority[, ResultVar]);
Argument Signification
VariableName Nom de la variable BACnet dans le Superviseur. Type STR.
Value Valeur à écrire. Elle est du même type que la variable.
Priority Priorité de la variable BACnet dans le Superviseur (entre 1 et 16, ou 0 pour utiliser la
priorité d'écriture par défaut). Type INTEGER.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
SV_SCADABasic_fr 86
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande est terminée.
-1: La variable n'est pas reconnue.
-2: La variable n'est pas une variable BACnet.
-3: L'élément BACnet est désactivé.
-4: Le numéro de priorité est invalide.
-5: La réinitialisation a échouée.
Return:0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom de la variable est manquant.
-3: La priorité est manquante.
-4: Le type de la variable n'est pas reconnu.
-5: Le type de valeur est différent du type de variable.
Exécution
Mode Mnémonique Action
7 WRITE_PRIORITY Ecrit la variable avec une priorité particulière.
Syntaxe 7
Return = BACNET(Mode, NetworkAlias, DeviceAlias, NotificationAlias[, ResultVar]);
Argument Signification
NetworkAlias Nom du réseau BACnet dans le Superviseur. Type STR.
DeviceAlias Nom de l'équipement BACnet dans le Superviseur. Type STR.
NotificationAlias Nom d'une notification BACnet dans le Superviseur. Type STR.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande a été envoyée à l'équipement.
-1: La notification n'existe pas.
-2: La commande a échoué.
Dans le cas d'un échec de la commande (-2), vous pouvez vérifier les
variables système STATUS de BACnet pour plus d'informations.
Retour : 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom du réseau est manquant.
-3: Le nom de l'équipement est manquant.
-4: Le nom de la notification est manquant.
Exécution
Mode Mnémonique Action
9 START_NOTIFICATION Démarre les notifications.
10 STOP_NOTIFICATION Stoppe les notifications.
Syntaxe 8
Return = BACNET(Mode, NetworkAlias, DeviceAlias, LogAlias[, ResultVar]);
Argument Signification
NetworkAlias Nom du réseau BACnet dans le Superviseur. Type STR.
DeviceAlias Nom de l'équipement BACnet dans le Superviseur. Type STR.
LogAlias Nom du Log BACnet dans le Superviseur. Type STR.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
SV_SCADABasic_fr 87
Ses valeurs sont : 0: La commande est suspendue.
1: La commande a été envoyée à l'équipement.
-1: Le Log n'existe pas.
-2: La commande a échoué.
Dans le cas d'un échec de la commande (-2), vous pouvez vérifier les
variables système STATUS de BACnet pour plus d'informations.
Retour : 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom du réseau est manquant.
-3: Le nom de l'équipement est manquant.
-4: Le nom de la notification est manquant.
Exécution
Mode Mnémonique Action
11 START_LOG Arrête le Log.
12 STOP_LOG Stoppe le Log.
Syntaxe 9
Return = BACNET(Mode, NetworkAlias, DeviceAlias, LogAlias, Date, Count[, ResultVar]);
Argument Signification
NetworkAlias Nom du réseau BACnet dans le Superviseur. Type STR.
DeviceAlias Nom de l'équipement BACnet dans le Superviseur. Type STR.
LogAlias Nom du Log BACnet dans le Superviseur. Type STR.
Date Horodate de référence pour le premier enregistrement à lire. Type DOUBLE.
Count Numéro de l'enregistrement à lire. Type INTEGER.
ResultVar Nom de la variable mesure qui contient le résultat de l'instruction. Type STR.
(Optionnel)
Ses valeurs sont : 0: La commande est suspendue.
1: La commande a été envoyée à l'équipement.
-1: Le Log n'existe pas.
-2: La plage de lecture demandée n'existe pas.
Dans le cas d'un échec de la commande (-2), vous pouvez vérifier la var
système STATUS de BACnet pour plus d'informations.
Retour : 0: OK.
-1: Le mode commande n'est pas reconnu.
-2: Le nom du réseau est manquant.
-3: Le nom de l'équipement est manquant.
-4: Le nom du Log est manquant.
-5: La variable résultat n'existe pas.
-6: La date est incorrecte.
-7: Le nombre d'enregistrements est inférieur à -1000 ou supérieur à 10000.
Exécution
Mode Mnémonique Action
13 LOG_RETRIEVAL Récupére le buffer de Log en utilisant les paramètres fournis. Si la date
est vide ou non définie et le nombre d'enregistrements est 0 ou non
défini, le buffer sera lu dans son intégralité si l'équipement le permet.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus.
SV_SCADABasic_fr 88
BEEP
Voir aussi
Emet un signal (beep) sonore.
Syntaxe
IntVal = BEEP([Freq, [Period]]);
Type de retour : INTEGER
Argument Signification
Freq Fréquence du son généré en hertz. Type DOUBLE.
Period Durée du son généré en millisecondes. Type DOUBLE.
Exécution
Déclenche le haut-parleur de l'unité centrale.
Retour : Toujours 1.
Il y a un délai après l'utilisation de l'instruction BEEP, ce qui signifie qu'elle ne peut être utilisée que
toutes les 2 secondes.
Si l'instruction BEEP n'est pas exécutée pendant une longue période, l'opération est suspendue.
Exemple
Cet exemple produit un son de 1000 Hz pendant un dixième de seconde.
SUB main()
DIM dblfrequency as double; 'in Hz
DIM dbldelay as double; ' in ms
dblfrequency = 1000;
dbldelay = 100;
BEEP (dblfrequency,dbldelay);
END SUB
SV_SCADABasic_fr 89
BIN
Voir aussi
Renvoie une chaîne représentant en binaire un nombre passé en base 10.
Syntaxe
StrVal = BIN(N);
Type de retour : STR
N peut être de tout type numérique.
Exécution
Argument Signification
N Chaîne représentant en binaire un nombre passé en base 10.
Exemple
Cet exemple donne l'équivalent binaire d'un nombre décimal.
SUB Main()
DIM intNumber as integer;
DIM strResult as Str;
intNumber = 3;
strResult = BIN(intNumber);
Print(intNumber," in base 10 => ",strResult," in base 2");
'3 in base 10 => 11 in base 2
END SUB
SV_SCADABasic_fr 90
BREAK
Voir aussi
Sortie d'un bloc d'instructions.
Syntaxe
BREAK;
Pas de retour
Exécution
Sortie d'un bloc d'instructions.
Exemple
SUB main()
DIM i As Integer;
For (i=1;i<1000;i++)
If (i>500) Then
BREAK;
End If
Next
PRINT("value = ",i);
'value = 501
END SUB
SV_SCADABasic_fr 91
BUFTOEXCEL
Voir aussi
Crée un fichier Excel au format XLSX en utilisant le contenu d'un buffer mémoire.
Syntaxe
IntVal = BUFTOEXCEL (Handle, LineSeparator, ColumnSeparator, WorkbookPath, SheetName, FileMode,
[FirstLineNumber, FirstColumnNumber])
Argument Meaning
Handle Localisation du buffer mémoire. Type LONG.
LineSeparator Séparateur de ligne utilisé dans le buffer (un caractère comme ‘;’ ou ‘\n’). Type
STR.
ColumnSeparator Séparateur de colonne utilisé dans le buffer (un caractère comme ‘,’ ou ‘\t’).
Type STR.
WorkBookPath Chemin complet du classeur de travail y compris le nom du fichier. Par exemple
E:\\WorkBooks\\MyBook.xlsx.
SheetName Nom de la feuille de calcul. Type STR.
FileMode Mode d'écriture du fichier. Type STR.
CLEARSHEET - Le classeur est ouvert s'il existe, autrement il est créé. La feuille
est écrasée si elle existe, autrement elle est créée. Les caractères du buffer
mémoire sont écrits jusqu'à ce que le premier caractère nul soit rencontré dans
le buffer.
APPEND - Le classeur est ouvert s'il existe, autrement il est créé. La feuille est
ouverte si elle existe autrement elle est créée. Les caractères du buffer
mémoire sont ajoutés à la fin de la feuille jusqu'à ce que le premier caractère
nul soit rencontré dans le buffer.
FirstLineNumber Première ligne à écrire dans la feuille Excel (Valeur par défaut = 1). Type
INTEGER.
FirstColumnNumber Première colonne à écrire dans la feuille Excel (valeur par défaut = 1). Type
INTEGER.
Exécution
Action
Crée un fichier Excel au format XLSX en utilisant le contenu d'un buffer mémoire.
Retour :
0 - OK
-1 - Paramètre du buffer invalide
-2 - Buffer inconnu
-3 - Paramètre LineSeparator invalide
-4 - Paramètre ColumnSeparator invalide
-5 - Paramètre WorkBookPath invalide
-6 - Paramètre SheetName invalide
-7 - Paramètre FileMode invalide
-8 - Paramètre FileMode inconnu
-9 - Paramètre FirstLineNumber doit être plus grand que 1
-10 - Paramètre FirstColumnNumber doit être plus grand que 1
-11 - Mauvais contenu de buffer (le compte de colonne n'est pas le même pour chaque ligne)
-12 - Erreur d'écriture (Détails dans l'observateur d'événements)
SV_SCADABasic_fr 92
BUFTOFILE
Voir aussi Exemple
Crée un fichier ASCII à partir d'un buffer.
Action Syntaxe
Create ou overwrite 1
Write ou append 2
Syntaxe 1
IntVal = BUFTOFILE(Handle, FileName);
Type de retour : INTEGER
Argument Signification
Handle Départ du bloc mémoire. Type LONG.
FileName Nom du fichier à écrire. Type STR.
Exécution
Le fichier est créé, son contenu correspond au contenu strict du buffer.
Le fichier est écrasé s'il existe déjà.
Syntaxe 2
IntVal = BUFTOFILE(Handle, FileName, BufferMode[, FileMode]);
Type de retour : INTEGER
Argument Signification
Handle Départ du bloc mémoire. Type LONG.
FileName Nom du fichier à écrire. Type STR.
BufferMode Toujours "USEFULL_PART". Type STR.
FileMode Mode d'ouverture du fichier cible. Type STR.
Exécution
Argument Signification
FileMode Write (par défaut si option non spécifiée). Le fichier est créé et les caractères du
buffer mémoire sont écrits jusqu'au 1er caractère nul du buffer. Si le fichier existe
déjà, il est écrasé.
Append (permet d'écrire le buffer en fin de fichier). Le fichier est ouvert en écriture
et les caractères du buffer mémoire sont écrits en fin du fichier jusqu'au 1er
caractère nul du buffer.
SV_SCADABasic_fr 93
Tous les fichiers créés par cette fonctions sont localisés dans le répertoire projet TP.
Exemple
Dim Handle As Long;
Handle = Alloc_Buffer(50);
Put_Buffer (Handle,0, "Hello World");
Buftofile(Handle,"GREET.TXT");
Free_Buffer (Handle);
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 94
CAPTION
Voir aussi
Affiche un texte dans la barre de titre de la fenêtre principale.
Syntaxe
StrVal = CAPTION(NewTitle);
Type de retour : STR
Argument Signification
NewTitle Nouveau titre dans la barre de titre de la fenêtre principale. Type STR.
Exécution
CAPTION affiche la chaîne de caractères passée en argument dans la barre de titre de la fenêtre
principale. Il faut donc auparavant autoriser l'affichage du titre dans la boîte "Comportement" du menu
(CONFIGURER.Ergonomie.Fenêtre principale) si on veut le voir apparaître.
Exemple
SUB Main()
DIM strCaption as Str;
DIM intResult as Str;
SV_SCADABasic_fr 95
CGET_BUFFER
Voir aussi Exemple
Récupère un ou plusieurs caractères dans une zone mémoire.
Syntaxe
StrVal = CGET_BUFFER(Handle, Offset [, Chars[, Flag]]);
Type de retour : STR
Argument Signification
Handle Localisation du buffer en mémoire. Type LONG.
Offset L'offset en octet (1 octet par caractère) représentant le point auquel la lecture débutera. Tout
type numérique.
Chars Nombre de caractères à retourner. Si ce champ est vide, seulement un caractère sera
retourné. Tout type numérique.
Flag Conversion d'une chaîne de caractères ASCII vers ANSI. Flag = 1 désactive la conversion,
Flag = 0 l'active.
Exécution
Récupère un ou plusieurs caractères dans une zone mémoire allouée par un ALLOC_BUFFER à l'offset
précisé, à partir de la position Offset précisée et les stocke dans une chaîne (type STR).
Les caractères récupérés sont convertis en ANSI par défaut sauf si Flag = 1.
Exemple
SUB Main()
DIM bufh as LONG;
CONST SIZE = 0;
CONST MODI = 4;
CONST ALLOC = 22;
bufh = ALLOC_BUFFER(ALLOC);
PRINT(FSTAT("myfile.dat", bufh));
PRINT("Size (bytes) :",IGET_BUFFER(bufh,SIZE));
PRINT("Date changed :",CGET_BUFFER(bufh,MODI));
FREE_BUFFER(bufh);
END SUB
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 96
CHART
Syntaxe 1
LongVal = CHART (Mode, Window, Branch, Identifier, Axis, Min, Max);
Argument Signification
Axis Nombre représentant l'axe à modifier. Type LONG.
1=X
SV_SCADABasic_fr 97
2 = Y (Gauche)
3 = Y (Droit)
Min Nouvelle valeur minimum pour l'axe . Type DOUBLE.
Max Nouvelle valeur maximum pour l'axe . Type DOUBLE.
Exécution
Mode Mnémonique Action
1 AXE_SETRANGE Positionne la plage de l'axe. Si 0 est utilisé pour max et min, la plage
est positionnée automatiquement.
Retour : 1 si OK, 0 si NOK.
Syntaxe 2
IntVal = CHART (Mode, Window, Branch, Identifier, Axis, Title);
Argument Signification
Axis Nombre représentant l'axe à modifier. Type LONG.
1=X
2 = Y (à gauche)
3 = Y (à droite)
Title Nouveau titre de l'axe. Type STR.
Exécution
Mode Mnémonique Action
2 AXE_SETTITLE Positionne le titre de l'axe.
Retour : 1 si OK, 0 si NOK.
Syntaxe 3
IntVal = CHART (Mode, Window, Branch, Identifier, LineID);
Argument Signification
LineID Identifiant de l'objet Ligne. Soit 1, soit 2. Type LONG.
Exécution
Mode Mnémonique Action
3 LINE_CLEAR Efface l'objet Ligne.
Retour : 1 si OK, 0 si NOK.
Syntaxe 4
IntVal = CHART (Mode, Window, Branch, Identifier, LineID, X, Y);
Argument Signification
LineID Identifiant de l'objet Ligne. Soit 1, soit 2. Type LONG.
X, Y Nouvelles coordonnées X et Y. Type DOUBLE.
Exécution
Mode Mnémonique Action
4 LINE_END Positionne de nouvelles coordonnées pour le point de fin de la ligne.
Retour : 1 si OK, 0 si NOK.
5 LINE_START Positionne de nouvelles coordonnées pour le point de départ de la
ligne.
Retour : 1 si OK, 0 si NOK.
Syntaxe 5
IntVal = CHART (Mode, Window, Branch, Identifier [, Orientation [, Printer]]);
Argument Signification
SV_SCADABasic_fr 98
Orientation Orientation de l'impression. Optionnel. Type LONG.
1 = Paysage
2 = Portrait
X, Y Nom de l'imprimante à utiliser pour l'impression. Type STR.
Exécution
Mode Mnémonique Action
6 PRINT Imprime le graphique sur l'imprimante sélectionnée.
Retour : 1 si OK, 0 si NOK.
Syntaxe 6
IntVal = CHART (Mode, Window, Branch, Identifier, RangeID, X, YLow, YHigh);
Argument Signification
RangeID Identifiant de l'objet Range. Soit 1, soit 2. Type LONG.
X Valeur X du point. Type DOUBLE.
YLow Valeur basse Y du point. Type DOUBLE.
YHigh Valeur haute Y du point. Type DOUBLE.
Exécution
Mode Mnémonique Action
7 RANGE_ADDPOINT Ajoute un point à l'objet Range.
Retour : 1 si OK, 0 si NOK.
Syntaxe 7
IntVal = CHART (Mode, Window, Branch, Identifier, RangeID);
Argument Signification
RangeID Identifiant de l'objet Range. Soit 1, soit 2 Type LONG.
Exécution
Mode Mnémonique Action
8 RANGE_CLEAR Efface l'objet Range.
Retour : 1 si OK, 0 si NOK.
Syntaxe 8
IntVal = CHART (Mode, Window, Branch, Identifier, RangeID, Index);
Argument Signification
RangeID Identifiant de l'objet Range. Soit 1, soit 2. Type LONG.
Index Index basé sur zéro du point à supprimer. Type DOUBLE.
Exécution
Mode Mnémonique Action
9 RANGE_REMOVEPOINT Supprime un point de l'objet Range.
Retour : 1 si OK, 0 si NOK.
Syntaxe 9
IntVal = CHART (Mode, Window, Branch, Identifier);
Exécution
Mode Mnémonique Action
10 REFRESH Rafraîchit le graphique en ré-éxécutant la requête d'historique.
Retour : 1 si OK, 0 si NOK.
33 COPY_CLIPBOARD Copie une image représentant le graphique vers le presse-papier pour
SV_SCADABasic_fr 99
de futures utilisations (Word etc.).
Retour : 1 si OK, 0 si NOK.
Syntaxe 10
IntVal = CHART (Mode, Window, Branch, Identifier, SeriesID, X, Y [, TS]);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
X Valeur X du point. Type DOUBLE.
Y Valeur Y du point. Type DOUBLE.
TS Horodate du point. Optionnel. Type DOUBLE.
Exécution
Mode Mnémonique Action
11 SERIES_ADDPOINT Ajoute un points aux séries.
Retour : 1 si OK, 0 si NOK.
Syntaxe 11
IntVal = CHART (Mode, Window, Branch, Identifier, SeriesID);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
Exécution
Mode Mnémonique Action
12 SERIES_CLEAR Efface les séries.
Retour : 1 si OK, 0 si NOK.
13 SERIES_GETCOUNT Retourne le nombre de points dans les séries.
Retour : Le nombre de points dans les séries si aucune erreur, -1
sinon.
22 SERIES_SORT Trie les séries selon l'axe des X.
Retour : 1 si OK, 0 si NOK.
32 SERIES_TOFRONT Positionne les séries au premier plan de le graphique.
Retour : 1 si OK, 0 si NOK.
Syntaxe 12
DblVal = CHART (Mode, Window, Branch, Identifier, SeriesID, Index);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
Index Index basé sur zéro du point à supprimer. Type DOUBLE.
Exécution
Mode Mnémonique Action
14 SERIES_GETTS Obtient l'horodate du point.
Retour : La valeur de l'horodate si OK, - 1 si l'index est hors
plage, 0 pour toutes les autres erreurs.
15 SERIES_GETXVALUE Obtient la valeur X du point.
Retour : La valeur X si OK, - 1 si l'index est hors plage, 0
pour toutes les autres erreurs.
16 SERIES_GETYVALUE Obtient la valeur Y du point.
Retour : La valeur Y si OK, - 1 si l'index est hors plage, 0
pour toutes les autres erreurs.
19 SERIES_REMOVEPOINT Supprime un point d'les séries.
Retour : 1 si OK, - 1 si l'index est hors plage, 0 pour toutes
les autres erreurs.
SV_SCADABasic_fr 100
Syntaxe 13
DblVal = CHART (Mode, Window, Branch, Identifier, SeriesID, X [, Rank]);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
X Obtient la valeur X. Type DOUBLE.
Rank Rang du point avec la valeur X. Optionnel. Type DOUBLE.
Exécution
Mode Mnémonique Action
17 SERIES_IDXFROMX Retourne l'index du point s'il existe, - 1 si le point n'existe
pas, 0 pour toutes les autres erreurs.
Pour plus d'informations, voir ci-dessous.
25 SERIES_YVALUEFROMX Retourne la valeur Y si le point existe, - 1 si le point n'existe
pas, 0 pour toutes les autres erreurs.
Syntaxe 14
IntVal = CHART (Mode, Window, Branch, Identifier, SeriesID, X, Y [, IndexStart [,IndexEnd]]);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
X Obtient la valeur X. Type DOUBLE.
Y Obtient la valeur Y. Type DOUBLE.
IndexStart Index de début de la requête. Type DOUBLE.
IndexEnd Index de fin de la requête. Type DOUBLE.
Exécution
Mode Mnémonique Action
18 SERIES_IDXFROMXY Retourne l'index du point s'il existe, - 1 si le point n'existe
pas, 0 pour toutes les autres erreurs.
Pour plus d'informations, voir ci-dessous.
Syntaxe 15
IntVal = CHART (Mode, Window, Branch, Identifier, SeriesID, VarName);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
VarName Nom d'une variable de l'arbre des variables. Type STR.
Exécution
Mode Mnémonique Action
20 SERIES_SETVAR Modifie la variable utilisée pour la source d'les séries.
Retour : 1 si OK, 0 si NOK.
Syntaxe 16
IntVal = CHART (Mode, Window, Branch, Identifier, SeriesID, Show);
Argument Signification
SeriesID Identifiant des séries. Plage de 1 à 8. Type LONG.
Show Flag pour sélectionner Show ou Hide.
1 = Show
0 = Hide
Exécution
Mode Mnémonique Action
SV_SCADABasic_fr 101
21 SERIES_SHOW Montre ou cache les séries.
Retour : 1 si OK, 0 si NOK.
Syntaxe 17
DblVal = CHART (Mode, Window, Branch, Identifier, SeriesID, Stats);
Argument Signification
SeriesID Identifiant des séries. Plage 1 to 8. Type LONG.
Show Flag pour sélectionner la statistique à retourner :
1 = X minimum
2 = X maximum
3 = Y minimum
4 = Y maximum
5 = Average (Moyenne)
6 = Median (Médian)
Exécution
Mode Mnémonique Action
23 SERIES_STATS Retourne la statistique sélectionnée.
Retour : la statistique sélectionnée.
Syntaxe 18
IntVal = CHART (Mode, Window, Branch, Identifier, SeriesID, Show);
Argument Signification
SeriesID Identifiant d'les séries. Plage de 1 à 8. Type LONG.
X Obtient la valeur X.
Exécution
Mode Mnémonique Action
25 SERIES_YCOUNTFROMX Retourne le nombre de points ayant la valeur X si aucune
erreur, 0 sinon.
Syntaxe 19
IntVal = CHART (Mode, Window, Branch, Identifier, StartTime [, EndTime]);
Argument Signification
StartTime Temps de départ Type DOUBLE.
EndTime Temps de fin. Optionnel. Type DOUBLE.
Exécution
Mode Mnémonique Action
26 SETDATETIME Initie une requête aux historiques de la date de début à la date de fin.
Si la date de fin est omise, la date courante sera utilisée.
1 si OK, -1 si le nombre de points résultats est plus grand que le
maximum autorisé, -2 pour un intervalle de temps invalide, 0 pour
toutes les autres erreurs.
Syntaxe 20
IntVal = CHART (Mode, Window, Branch, Identifier, EndTime, Period [, TimeUnit]);
Argument Signification
EndTime Date de fin. Type DOUBLE.
Period Période de données historiques. Type DOUBLE.
TimeUnit Unité de temps pour la période :
0 = Millisecondes
SV_SCADABasic_fr 102
1 = Secondes
2 = Minutes
3 = Heures
4 = Jours
Exécution
Mode Mnémonique Action
27 SETENDTIMEPERIOD Initie une requête d'historique avec l'Heure de début positionnée à
EndTime moins la période et l'Heure de fin positionnée à EndTime.
1 si OK, -1 si le nombre de points résultats est plus grand que le
maximum autorisé, -2 pour un intervalle de temps invalide, 0 pour
toutes les autres erreurs.
Pour plus d'informations, voir ci-dessous.
Syntaxe 21
IntVal = CHART (Mode, Window, Branch, Identifier, StartTime, Period [, TimeUnit]);
Argument Signification
StartTime Date de début. Type DOUBLE.
Period Période de données historiques. Type DOUBLE.
TimeUnit Unité de temps pour la période :
0 = Millisecondes
1 = Secondes
2 = Minutes
3 = Heures
4 = Jours
Exécution
Mode Mnémonique Action
28 SETSTARTTIMEPERIOD Initie une requête d'historique avec l'Heure de début positionnée à
StartTime et l'Heure de fin positionnée à StartTime plus la période.
1 si OK, -1 si le nombre de points résultat est plus grand que le
maximum autorisé, -2 pour un intervalle de temps invalide, 0 pour
toutes les autres erreurs.
Pour plus d'informations, voir ci-dessous.
Syntaxe 22
IntVal = CHART (Mode, Window, Branch, Identifier, StartPeriod [, TimeUnit]);
Argument Signification
SamplePeriod Période d'échantillonnage. Type DOUBLE.
TimeUnit Unité de temps pour la période :
0 = Millisecondes
1 = Secondes
2 = Minutes
3 = Heures
4 = Jours
Exécution
Mode Mnémonique Action
29 SETSAMPLEPERIOD Positionne la période d'échantillonnage à utiliser pour des requêtes aux
historiques ultérieures.
Retour : 1 si OK, -2 pour une plage de temps invalide, 0 pour toutes
les autres erreurs.
Syntaxe 23
SV_SCADABasic_fr 103
IntVal = CHART (Mode, Window, Branch, Identifier, VarName);
Argument Signification
VarName Nom d'une variable de l'arbre des variables. Type STR.
Exécution
Mode Mnémonique Action
30 SETSOURCEVAR Modifie la variable utilisée pour l'axe X.
Retour : 1 si OK, 0 si NOK.
Syntaxe 24
IntVal = CHART (Mode, Window, Branch, Identifier, Title);
Argument Signification
Title Titre du graphique. Type STR.
Exécution
Mode Mnémonique Action
31 SETTITLE Modifie le titre affiché dans le graphique.
Retour : 1 si OK, 0 si NOK.
Syntaxe 25
IntVal = CHART (Mode, Window, Branch, Identifier, Path, ImageFormat);
Argument Signification
Path Soit le chemin complet de l'image. Par exemple E:\\ChartImages\\hangar18.png,
soit juste le nom de l'image dans quel cas l'image sera enregistrée dans le répertoire TP
du projet.
ImageFormat Format de l'image :
0 = BMP
1 = GIF
2 = PNG
Exécution
Mode Mnémonique Action
34 SAVE_IMAGE Enregistre une image du graphique vers l'emplacement spécifié dans le
format spécifié.
Retour : 1 si OK, 0 si NOK.
Plus d'informations
Considérons les séries S0 comprenant les points suivants : P1(10,15), P2(11,20), P3(15,20), P4(18,25),
P5(18,25), P6(21,100) ,P7(21,105).
SERIES_IDXFROMXY
SERIES_IDXFROMXY retourne l'index du premier point dans les séries avec X et Y spécifiés. Donc le code :
CHART ("SERIES_IDXFROMXY", cWindow, cBranch, cIdentifier, cSeriesID, 18, 25);
retournera 4 représentant P4(18,25). Vous pouvez également spécifier un point de début et un point de
fin optionnels pour la recherche.
SERIES_IDXFROMX
SV_SCADABasic_fr 104
SERIES_IDXFROMX est similaire à SERIES_IDXFORMXY sauf que vous ne spécifiez que X. Donc pour les
séries S0, si X = 15, le retour sera 3 représentant P3(15,20). Vous pouvez également spécifier un rang
optionnel. Par exemple, si vous cherchiez le deuxième point avec X = 21 vous spécifierez un rang de 1 (le
rang de 0 est le premier point). Le retour serait 7 représentant P7 (21,105).
SETENDTIMEPERIOD
Le fragment de code suivant génère l'équivalent de la requête d'historiques. Voir l'image
SETSTARTTIMEPERIOD
Le fragment de code suivant génère l'équivalent de la requête d'historiques. Voir l'image
SV_SCADABasic_fr 105
lReturn = Chart("SETSTARTTIMEPERIOD", "MyChartMimic", "", "Chart1", dTime, 10, 2);
SV_SCADABasic_fr 106
CHECKLIST
Voir aussi Exemple
Propriétés d'accès du contrôle Check-box list.
Mode Mnémonique Syntaxe
1 COUNT 1
2 GETSELECTEDINDEX 1
3 SETSELECTEDINDEX 2
4 GETTEXT 4
5 GETUSERDATA 4
6 GETSTATE 4
7 SETSTATE 3
8 LOAD 5
9 GETEVENTTYPE 1
10 INSERT 6
11 REMOVE 7
12 SORT 8
Note importante sur la terminologie utilisée et le fonctionnement du contrôle Check-box list dans
le Superviseur :
• L'élément qui est POSITIONNE est celui dont la case est cochée.
• L'élément qui est SELECTIONNE est celui dont le texte est en surbrillance (changement de
couleur d'arrière-plan).
Un item POSITIONNE n'est pas nécessairement SELECTIONNE (et vice versa). En programmation
vous n'êtes normalement intéressés que par les éléments POSITIONNES. L'élément SELECTIONNE
a une moindre importance.
Pour plus d'information sur le comportement du contrôle Check-box list, voir l'aide principale du
Superviseur.
Syntaxe 1
Return = CHECKLIST(Mode, Window, Branch, Identity);
Exécution
Mode Mnémonique Action
1 COUNT Retourne le nombre d'éléments. Type LONG.
2 GETSELECTEDINDEX Retourne l'index de l'élément actuellement sélectionné. Type LONG.
9 GETEVENTTYPE Retourne le type de l'événement le plus récent. Type LONG.
Le retour est une valeur de poids binaire.
Bit 0: La sélection a été modifiée.
Bit 1: L'état d'un élément a été modifié.
Syntaxe 2
SV_SCADABasic_fr 107
Return = CHECKLIST(Mode, Window, Branch, Identity, Index, Notification);
Argument Signification
Index Index de l'élément à sélectionner. Type LONG.
Si l'index est -1, aucun élément n'est sélectionné.
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Pour que cela fonctionne, il doit être aussi autorisé dans l'onglet Opérations de la
boîte de dialogue des propriétés Check-box list.
Si nécessaire, la fonction fera défiler le contrôle pour afficher l'élément.
Exécution
Mode Mnémonique Action
3 SETSELECTEDINDEX Sélectionne l'élément correspondant à l'index fourni. Type LONG.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
Return = CHECKLIST(Mode, Window, Branch, Identity, Index, State,Notification);
Argument Signification
Index Index de l'élément à sélectionner. Type LONG.
Si l'index est -1, aucun élément n'est sélectionné.
State Etat à positionner. La valeur peut être 0 ou 1. Type INTEGER
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Pour que cela fonctionne, doit être aussi autorisé dans l'onglet Opérations de la boîte de
dialogue des propriétés Check-box list. Type INTEGER.
Si nécessaire, la fonction fera défiler le contrôle pour afficher l'élément.
Exécution
Mode Mnémonique Action
7 SETSTATE Positionne l'état de l'élément correspondant à l'index fourni. Type LONG.
Retour : 1 si OK, 0 sinon.
Syntaxe 4
Return = CHECKLIST(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index de l'élément à retourner.
Exécution
Mode Mnémonique Action
4 GETTEXT Retourne le Texte de l'élément comme défini dans la langue actuellement
utilisée. Type STR.
5 GETUSERDATA Retourne les données utilisateur associées à l'élément. Type STR.
6 GETSTATE Retourne l'Etat de l'élément (coché ou non). Type LONG.
Syntaxe 5
SV_SCADABasic_fr 108
Return = CHECKLIST(Mode, Window, Branch, Identity, FileName);
Argument Signification
FileName Nom du fichier contenant les données du contrôle.
Exécution
Mode Mnémonique Action
8 LOAD Charge le contenu du fichier de la liste du contrôle des éléments. Type INTEGER.
Retour : 1 si OK (fichier chargé), 0 sinon.
Syntaxe 6
Return = CHECKLIST(Mode, Window, Branch, Identity, Text, Userdata, [Index]);
Argument Signification
Text Texte à insérer. Type STR.
Userdata Donnée utilisateur à insérer. Type STR.
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
10 INSERT Insère le texte et les données utilisateur optionnelles dans la liste du contrôle.
Si l'index est omis, le texte est inséré au début. Si l'index est -1, le texte est
inséré à la fin. Autrement, le texte est inséré à la position indiqué par l'index.
Retour : 1 si OK, 0 sinon.
Syntaxe 7
Return = CHECKLIST(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
11 REMOVE Supprime l'élément sélectionné dans la liste.
Retour : 1 si OK, 0 sinon.
Syntaxe 8
Return = CHECKLIST(Mode, Window, Branch, Identity[, Sortorder, Orderby]);
Argument Signification
Sortorder Flag indiquant l'ordre du tri. 0 = ascendant, 1 = descendant.
Orderby Flag indiquant quelles données à trier. 0 = Texte, 1 = Données utilisateur.
Type de retour : LONG.
Exécution
Mode Mnémonique Action
12 SORT Trie la liste du contrôle en utilisant le critère spécifié.
SV_SCADABasic_fr 109
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 110
CHR
Voir aussi
Renvoie le caractère du code ASCII passé en argument.
Syntaxe
StrVal = CHR(AsciiCode);
Type de retour : STR
Argument Signification
AsciiCode Code ASCII passé en argument. Tout type numérique.
Exécution
Le code doit être compris entre 0 et 255. Dans les autres cas, la valeur est tronquée modulo 256.
Exemple
SUB Main()
DIM intCharCode as integer;
DIM strChar as Str;
SV_SCADABasic_fr 111
CIMWAY
Voir aussi Exemple Spécifiques
Arrête, démarre ou teste l'état de la communication.
Mode Mnémonique Syntaxe
0 OFF 1
1 ON 1
2 STATCIM 1
3 SCANMDF 2
4 STATUS 3
5 ERROR 4
7 EXIST 3
8 CFG 6
9 START 3
10 STOP 3
11 READAFTERWRITE 7
12 SCANALWAYS 1
13 WRITEGROUP 8
14 OVERWRITEFILE 9
15 SENDMSG 12
17 SEQUENCINGWRITE 1, 10
18 GETPENDINGWRITE 1
19 READFRAME 11
Syntaxe 1
IntVal = CIMWAY (Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
0 OFF Arrêt de la communication Cimway.
Retour : 1 si OK, 0 sinon.
1 ON Lancement de la communication Cimway.
Retour : 1 si OK, 0 sinon.
2 STATCIM Renvoie l'état de la communication.
Retour : 1 si ON, 0 si OFF.
12 SCANALWAYS Lancement de la scrutation de toutes les trames cycliques. La
scrutation est réalisée même si aucune variable n'est liée à la trame.
Retour : 1.
17 SEQUENCINGWRITE Active ou désactive le mode séquentiel des écritures.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 112
18 GETPENDINGWRITE Récupère le nombre d’écritures dans la file du gestionnaire
d'équipements.
Type de retour : LONG
Retour : le nombre d'écritures.
Syntaxe 2
IntVal = CIMWAY(Mode, Network.Node.Frame, Period);
Type de retour : INTEGER
Argument Signification
Period Nouvelle période à laquelle la trame doit être scrutée (exprimée en secondes). La valeur
maximum est 1600. Tout type numérique.
Exécution
Mode Mnémonique Action
3 SCANMDF Modification de la période de scrutation d'une trame. Le comportement de la
scrutation peut être modifié comme suit en fonction de la valeur de l’argument
Period :
>0 Applique la nouvelle période de scrutation.
0 Désactive la scrutation.
-1 Applique la période de scrutation précédente si la période actuelle est
0 ou après un appel à CIMWAY("STOP", "frame object"). Sinon, l’appel
est sans effet.
-2 Applique la période de scrutation définie dans la configuration de la
trame.
Retour : 1 si la trame existe, sinon 0.
Exemple
Utilise une période de scrutation d'une trame configurée à 20 secondes.
Période Période de scrutation actuelle
5 5 secondes
-2 20 secondes
10 10 secondes
0 Arrêt de la scrutation
-1 10 secondes
5 5 secondes
-1 5 secondes
Syntaxe 3
IntVal = CIMWAY(Mode, ComObj);
Type de retour : INTEGER
Argument Signification
ComObj L'objet de communication. Peut être un réseau, un équipement ou une trame.
Network Network name
Node Network_name.Node_name
Frame Network_name.Node_name.Frame_name
Exécution
Mode Mnémonique Action
4 STATUS Retourne l'état d'un objet de communication.
Retour : 1 si défaut, 0 OK, -1 si objet inexistant.
SV_SCADABasic_fr 113
7 EXIST Teste l'existence d'un objet de communication.
Retour : 1 si existe, 0 sinon.
9 START Démarrage de l'objet de communication.
Retour : 1 si OK, 0 sinon (erreur de syntaxe ou objet inexistant).
10 STOP Arrêt de l'objet de communication.
Retour : 1 si OK, 0 sinon (erreur de syntaxe ou objet inexistant).
Les variables liées à l'objet de communication ne sont pas passées en status NS (Non
Significative) et NA (Non Accessible).
Syntaxe 4
LongVal = CIMWAY(Mode, ComObj);
Argument Signification
ComObj L'objet de communication. Peut être un réseau, un équipement ou une trame.
Network Network name
Node Network_name.Node_name
Frame Network_name.Node_name.Frame_name
Syntaxe 6
IntVal = CIMWAY(Mode, ComObj, Modif, Param.[, VarName]);
Type de retour : INTEGER
Argument Signification
ComObj L'objet de communication. Peut être un réseau, un équipement ou une trame.
Modif Valeur de l'objet de communication à modifier :
1: PORT_NUMBER Modification du numéro de port.
2: EQT_ADDRESS Modification de l'adresse d'un équipement.
3: MEMORY_ADDRESS Modification de l'adresse mémoire.
param Ce champ paramètre a différentes significations dépendantes de la valeur de Modif. voir le
chapitre Paramètres d'Objets de Communication pour leurs configurations.
VarName Le nom de registre de la base de données. Type STR.
Exécution
Mode Mnémonique Action
8 CFG Modification des paramètres d'un objet de communication. Le champ
VarName peut prendre les valeurs suivantes:
SV_SCADABasic_fr 114
0 = REQUEST
1 = ACK
2 = NACK
Retour : 1 si OK, 0 si l'objet de communication n'existe pas ou si les
paramètres sont incorrects.
Syntaxe 7
IntVal = CIMWAY(Mode, network_name.Equipment_name.Frame_name, RM);
Type de retour : INTEGER
Argument Signification
RM Lecture après le mode d'écriture :
1 - YES
2 - NO
Exécution
Mode Mnémonique Action
11 READAFTERWRITE Exécution d'une lecture de contrôle après chaque écriture d'au moins un
élément d'une trame.
Retour : 1 si OK, 0 sinon (erreur de syntaxe ou trame inexistante).
Syntaxe 8
IntVal = CIMWAY(Mode, network_name.Equipment_name.Frame_name, Delay, Mode, Flag);
Type de retour : INTEGER
Argument Signification
Delay Délai en secondes.
Mode Correspond aux modes du verbe SENDLIST :
0 pour le mode BLOC
1 pour le mode MULTIPLE
Flag Soit 1 ou 0.
Exécution
Mode Mnémonique Action
13 WRITEGROUP Optimisation des écritures des variables équipement.
Normalement une écriture dans l'équipement est envoyée à chaque
changement de valeur d'une variable.
Les variables forcées sur une trame sont mémorisées pendant la durée
délai passée en paramètre.
Les variables sont regroupées selon le GroupeMode choisi. Chaque
groupe obtenu est envoyé sur le réseau en une seule écriture.
Si transition est positionnée à 0, une variable passant de 0 à 1, puis à
nouveau à 0 dans l'intervalle délai, ne sera pas vue par l'équipement.
Retour : 1 si OK, 0 sinon.
If you enter a fraction for Delay, it will be rounded down to a whole number (e.g. 0.5 will
become 0 and 1.8 will become 1).
Syntaxe 9
SV_SCADABasic_fr 115
IntVal = CIMWAY (Mode, FileName);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
14 OVERWRITEFILE Remplace le fichier de configuration de la communication.
Le fichier FileName est renommé en COMM.DAT et copié dans les
répertoires C et CTEMP du projet.
Retour : 0 si OK, sinon :
-1 si le fichier à importer n'existe pas
-2 si le nom du fichier est un répertoire
-3 si la copie vers COMM.DAT n'est pas possible (droits d'écriture,
etc.)
-4 si la copie vers CTEMP\COMM.DAT n'est pas possible (droits
d'écriture, etc.)
Syntaxe 10
IntVal = CIMWAY(Mode, Sequence/not);
Type de retour : INTEGER
Argument Signification
Sequence/no "YES" : activé
t
"NO" : désactivé
Exécution
Mode Mnémonique Action
17 SEQUENCINGWRITE Active ou désactive le mode séquentiel des écritures.
Retour : 1 si OK, 0 sinon.
Syntaxe 11
IntVal = CIMWAY(Mode, Frame, VarName);
Type de retour : INTEGER
Argument Signification
Frame Pour identifier la trame, par exemple "NETWORK.EQUIPMENT.FRAME1"
VarName Nom de la variable dans laquelle l'état de la lecture est fourni.
Exécution
Mode Mnémonique Action
19 READFRAME Demande le rafraîchissement de la trame, et fournit le status de la
lecture par le biais de la variable passée en argument.
Retour : 1 si l’action c’est réalisée correctement
0 si les arguments sont erronés
2 si la variable est déjà utilisé par une autre demande de type
READFRAME.
SV_SCADABasic_fr 116
Etat indiqué dans la variable nommée VarName :
0 : demande de lecture en cours.
1 : lecture effectuée avec succès, les variables sont rafraîchies.
2 : erreur de lecture, les variables sont en erreur.
Syntaxe 12
IntVal = CIMWAY(Mode, ObjectID, CommandString[, VariableName]);
Type de retour : INTEGER
Argument Signification
ObjectId Identifiant de l'objet cible, pour accéder à :
Tous les réseaux.
Un réseau : NetworkId.
Un équipement : NetworkdId.EquipmentId.
Une trame : NetworkId.EquipmentId.FrameId.
Type : STR.
CommandStr Texte libre dont le contenu est spécifique au protocole qui va le recevoir. Type STR.
ing
VariableNam Optionnel. Nom de la variable d'état positionnée à 1 par le gestionnaire d'équipement. Le
e gestionnaire de protocole aura positionné cette variable à 0 avant l'envoi du message vers
l'équipement.
Exécution
Mode Mnémonique Action
15 SENDMSG Message envoyé aux objets de communication.
Exemple
Pour activer le mode séquentiel d'enregistrement :
CIMWAY ("SEQUENCINGWRITE", "YES");
Pour récupérer le nombre d'écritures dans la file :
IntVal = CIMWAY ("GETPENDINGWRITE");
Pour mettre à jour la trame de communication :
CIMWAY ("READFRAME", "NETWORK.EQT1.WORD", "RESULT");
Pour un exemple plus complet, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 117
CMPSTRING
Voir aussi Exemple
Compare 2 chaînes de caractères.
Syntaxe
IntVal = CMPSTRING(string1, string2);
Type de retour : INTEGER
Exécution
Les deux chaînes sont comparées en utilisant la valeur ASCII des caractères. Si la chaîne est plus longue
que 1 caractère, alors chaque caractère est comparé un par un jusqu'à ce qu'une inégalité soit trouvée.
Retour Signification
-1 string1 si inférieur à string2.
0 Les deux chaînes sont identiques.
1 string1 si supérieur à string2.
Exemple
DIM Chain1 As Str, Chain2 As Str;
DIM Chain3 As Str, Chain4 As Str;
DIM Res As Integer;
Chain1 = "A";
Chain2 = "B";
Chain3 = "ABCDEG";
Chain4 = "ABDDEF";
Res = CmpString(Chain1, Chain1); ' Res = 0
Res = CmpString(Chain1, Chain2); ' Res = -1
Res = CmpString(Chain2, Chain1); ' Res = 1
Res = CmpString(Chain3, Chain4); ' Res = -1
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 118
COMBOBOX
Voir aussi Exemple
Propriétés d'accès du contrôle Combo-box.
Mode Mnémonique Syntaxee
1 COUNT 1
2 GETSELECTEDINDEX 1
3 SETSELECTEDINDEX 2
4 GETTEXT 3
5 GETUSERDATA 3
6 LOAD 4
7 INSERT 5
8 REMOVE 6
9 SORT 7
Syntaxe 1
Return = COMBOBOX(Mode, Window, Branch, Identity);
Type de retour : LONG
Exécution
Mode Mnemonic Action
1 COUNT Retourne le nombre d'éléments. Type LONG.
2 GETSELECTEDINDEX Retourne l'index de l'élément actuellement sélectionné. Type LONG.
Syntaxe 2
Return = COMBOBOX(Mode, Window, Branch, Identity, Index, Notification);
Argument Signification
Index Index de l'élément à sélectionner. Type LONG.
Si l'index est -1, aucun élément n'est sélectionné.
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Exécution
Mode Mnemonic Action
3 SETSELECTEDINDEX Sélectionne l'élément selon son index. Type LONG.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
SV_SCADABasic_fr 119
Return = COMBOBOX(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index de l'élément à retourner.
Exécution
Mode Mnemonic Action
4 GETTEXT Retourne le Texte de l'élément comme défini dans la langue actuellement
utilisée. Type STR.
5 GETUSERDATA Retourne les données utilisateur associées à l'élément. Type STR.
Syntaxe 4
Return = COMBOBOX(Mode, Window, Branch, Identity, FileName);
Argument Signification
FileName Nom du fichier contenant les données du contrôle.
Exécution
Mode Mnémonique Action
6 LOAD Charge le contenu du fichier de la liste du contrôle de formulaire des
éléments. Type INTEGER.
Retour : 1 si OK (fichier chargé), 0 sinon.
Syntaxe 5
Return = COMBOBOX(Mode, Window, Branch, Identity, Text, Userdata, [Index]);
Argument Signification
Text Texte à insérer. Type STR.
Userdata Donnée utilisateur à insérer. Type STR.
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
7 INSERT Insère le texte et les données utilisateur optionnelles dans la liste du contrôle.
Si l'index est omis, le texte est inséré au début. Si l'index est -1, le texte est
inséré à la fin. Autrement, le texte est inséré à la position indiqué par l'index.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
Return = COMBOBOX(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
SV_SCADABasic_fr 120
Mode Mnémonique Action
8 REMOVE Supprime l'élément sélectionné dans la liste.
Retour : 1 si OK, 0 sinon.
Syntaxe 7
Return = COMBOBOX(Mode, Window, Branch, Identity[, Sortorder, Orderby]);
Argument Signification
Sortorder Flag indiquant l'ordre du tri. 0 = ascendant, 1 = descendant.
Orderby Flag indiquant quelles données à trier. 0 = Texte, 1 = Données utilisateur.
Type de retour : LONG.
Exécution
Mode Mnémonique Action
9 SORT Trie la liste du contrôle en utilisant le critère spécifié.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 121
CONST
Voir aussi
Déclaration de constantes.
Les constantes doivent toujours être déclarées en en-tête du programme (en dehors des
procédures).
Syntaxe
CONST ConstName = Value;
Argument Signification
ConstNam Nom de la constante.
e
Value Valeur de la constante.
Exécution
Les constantes ne peuvent être que numériques. Nous appellerons également constantes les valeurs
numériques non nommées.
Exemple
'Declare constants
Const constant1 = 10;
Const constant2 = 10;
SUB Main()
DIM intparameter as integer;
DIM intresult as integer;
intparameter= 15;
intresult = (intparameter + constant1)/ constant2;
Print("Result is: ",intresult);
'Display: Result is: 2
END SUB
SV_SCADABasic_fr 122
CONVERT
voir aussi Exemple
Conversion de chaîne alphanumérique en Hexadécimal, Octal, Binaire, BCD et inversement.
Mode Mnémonique Syntaxe
1 BINTOA 1
2 OCTTOA 1
3 HEXTOA 1
4 BCDTOA 1
11 ATOBIN 2
12 ATOOCT 2
13 ATOHEX 2
14 ATOBCD 2
Syntaxe 1
StrVal = CONVERT(Mode, Val);
Argument Signification
Syntaxe 2
LongVal = CONVERT(Mode, Val);
Argument Signification
Val Chaîne à convertir. Type STR.
SV_SCADABasic_fr 123
14 ATOBCD - sa forme BCD.
Exemple
sub main()
DIM ch1 as str;
ch1 = "01111111111111111111111111111111";
print( convert("ATOBIN",ch1)); 'Return: 2147483647
ch1 = "A9F7";
print( convert("ATOHEX",ch1)); 'Return: 43511
ch1 = "24";
print(convert("BINTOA",convert("ATOBCD",ch1) ));
'Return: 100100
END SUB
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 124
COPY_BUFFER
Voir aussi Exemple
Copie le contenu d’un buffer dans un autre buffer
Syntaxe
Ret=COPY_BUFFER (Target, Source[, OffsetTarget]);
Argument Signification
Target Handle du buffer de destination alloué par ALLOC_BUFFER. Type LONG.
Source Handle du buffer source alloué par ALLOC_BUFFER. Type LONG.
OffsetTarget Position de début de copie dans le buffer de destination. Valeur par défaut = 0. Tout type
numérique.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 125
COS
Voir aussi
Fonction cosinus.
Syntaxe
DblVal = COS(Angle);
Argument Signification
Angle Degrés. Tout type numérique.
Type de retour : DOUBLE
Exécution
Les variables de la base de données sont de type SINGLE. En cas d'affectation avec cette fonction, la
conversion en SINGLE est donc nécessaire si l'on veut éviter une erreur de type.
Exemple
'Database variables
'@ARC - Register type
'@ANGLE - Register type
sub Main()
'Declare
DIM dblangle as double;
DIM dblarc as double;
dblangle = 45;
dblarc = COS(dblangle);
print("COS(",dblangle,") = ",dblarc);
END SUB
SUB Proc2()
'COS() used in a database variable function
'using TOS to convert DOUBLE to SINGLE (Register variable)
@ARC= TOS( COS (@ANGLE) ) ;
END SUB
SV_SCADABasic_fr 126
CRONTAB
Voir aussi Exemple
Activation, modification d'actions horodatées dans le séquenceur.
Mode Mnémonique Syntaxe
1 ADDPROG 1
2 DELPROG 1
3 ADDVAR 2
4 DELVAR 2
6 DELALL 3
7 TABLE_STATUS 4
8 TABLE_ELAPSED 4
9 TABLE_REMAINING 4
11 NETWORKBROADCAST 5
12 SAVE 3
13 TRACE 6
Syntaxe 1
IntVal = CRONTAB(Mode, CRONTYPE, Date, Time, Program, Branch, Function [, Farg [, ActivBit] ]);
Argument Signification
CRONTYPE Type d'horodate de l'événement :
1 ONCE
2 EACH_HOUR
3 EACH_DAY
4 EACH_WEEK
5 EACH_MONTH
Date Chaîne représentant la date ou le jour selon le type d'événement spécifié par CRONTYPE.
Une date est spécifiée au format dd/mm/yy ou au format dd/mm/yyyy, par exemple
05/08/2003.
Si le jour est spécifié, le nom du jour est donné.
"monday" ou "mon"
"tuesday" ou "tue"
"wednesday" ou "wed"
"thursday" ou "thu"
"saturday" ou "sat"
"sunday" ou "sun"
Time Heure au format standard ou la minute selon le type d'événement : "17:38" ou "38". Type
STR.
Program Le nom du programme contenant la fonction à exécuter. Type STR.
Branch La branche de la base de données du programme. Type STR.
Function Le nom de la fonction a exécuter. Type STR.
SV_SCADABasic_fr 127
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés
par des , (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le
verbe GETARG.
ActivBit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
Exécution
Mode Mnémonique Action
1 ADDPROG Création d'un événement de type exécution de programme.
L'événement ainsi créé est dit temporaire. Il n'est pas possible de modifier un
événement permanent créé par la configurateur.
Renvoie 1 si l'événement a été correctement créé, 0 sinon.
2 DELPROG Suppression d'un événement de type exécution de programme.
Il n'est pas possible de supprimer un événement permanent.
Renvoie 1 si l'événement a été supprimé, 0 sinon.
Le programme doit être préchargé (PRELOAD) pour être exécuté. Si vous le modifiez,
vous devez le recharger.
L'utilisation d'une instruction de type DELAY dans une fonction peut produire des
résultats imprévisibles et doit être évitée.
Le format de la date utilisant le mode ONCE peut être soit dd/mm/yy ou dd/mm/yyyy.
Syntaxe 2
IntVal =CRONTAB(Mode, TYPE, Date, Time, Variable, Send_Mode, Delay [, "", ActivBit] );
Argument Signification
TYPE Type d'horodate de l'événement :
ONCE 1
EACH_HOUR 2
EACH_DAY 3
EACH_WEEK 4
EACH_MONTH 5
Date Chaîne représentant la date ou le jour selon le type d'événement spécifié par CRONTYPE.
Une date est spécifiée au format dd/mm/yy ou au format dd/mm/yyyy, par exemple
05/08/2003.
Si le jour est spécifié, le nom du jour est donné.
"monday" ou "mon"
"tuesday" ou "tue"
"wednesday" ou "wed"
"thursday" ou "thu"
"saturday" ou "sat"
"sunday" ou "sun"
SV_SCADABasic_fr 128
Time Heure au format standard ou la minute selon le type d'événement : "17:38" ou "38". Type
STR.
Variable Nom complet en absolu de la variable à forcer (Etat ou Alarme uniquement)
S_Mode 0: forçage à 0
1: sforçage à 1
2: forçage à l'état inverse
Delay Si différent de 0, le forçage est impulsionnel avec une durée en secondes.
"" Paramètre inutilisé. A inclure seulement lors de l'utilisation du paramètre facultatif ActivBit.
ActivBit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
Syntaxe 3
IntVal = CRONTAB(Mode);
Exécution
Mode Mnémonique Action
6 DELALL Suppression de tous les événements temporaires existants.
Retour : 1 si OK, 0 sinon.
12 SAVE Sauvegarde les actions horodatées du séquenceur dans le fichier
CRON.DAT
Retour : Toujours 0.
Syntaxe 4
LongVal = CRONTAB(Mode, TableName);
Argument Signification
TableName Nom d'une table. Type STR.
Exécution
Mode Mnémonique Action
7 TABLE_STATUS Renvoie 0 (hors occupation), 1 (en occupation) ou -1 si la table n'existe
pas
8 TABLE_ELAPSED Renvoie le temps écoulé, en secondes, depuis la dernière transition ou -
1 si la table n'existe pas ou si calcul impossible (pas d'horaires).
9 TABLE_REMAINING Renvoie le temps restant, en secondes, avant la prochaine transition ou
-1 si la table n'existe pas ou si calcul impossible (pas d'horaires).
SV_SCADABasic_fr 129
Syntaxe 5
IntVal =CRONTAB(Mode, List, HStatus, EventVar, LocalRemote);
Argument Signification
List Nom de la liste des postes de l'architecture multipostes destinataires des modifications (créée
à partir du menu Configuration.Communication.Multipostes). Type STR.
HStatus Handle du buffer alloué par ALLOC_BUFFER. Après l'exécution de l'instruction, le buffer
contenant la liste des postes et leur statut de mise-à-jour suivant le format :
StaNum,Status,...;
où StaNum est le numéro du poste et Status est à 1 si OK, 0 sinon. Type LONG.
EventVar Nom de la variable état de la base de données positionnée à 1 après exécution de
l'instruction. Type STR.
LocalRemot Détermine l'emplacement de la modification du fichier de configuration du séquenceur
e CRON.DAT :
1 : Tous les postes (y compris le poste local)
0 : Seulement les postes déportés (par défaut).
Retour : 1 si OK, 0 sinon.
Exécution
Mode Mnémonique Action
11 NETWORKBROADCAST Envoie le fichier de configuration du séquenceur CRON.DAT vers
tous les postes dans la liste de modifications clients.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
IntVal =CRONTAB(Mode, SubMode);
Argument Signification
SubMode Type STR. "ON" ou "OFF".
Exécution
Mode Mnémonique Action
1 TRACE Active ("ON") ou désactive ("OFF") des messages trace dans le
séquenceur. Des messages trace apparaissent dans l'observateur
d'événements (F7).
Retour : toujours 1.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 130
CYCLIC
Voir aussi Exemple
Exécute cycliquement une fonction.
Mode Mnémonique Syntaxe
0 ADD 3
1 ADDPROG 1
2 ADDPROG_EX 1
5 DEL 3
6 DELALL 2
7 DEL_EX 1
8 ADDPROGBYID 4
Syntaxe 1
IntVal = CYCLIC(Mode, Delay, ProgName, Branch, Function [, Farg [, ActivBit]]) ;
Type de retour : INTEGER
Argument Signification
Delay Nombre de seconde entre chaque activation de programme. Type INTEGER. Le delai
maximum est 2 x 106 secondes ou environ 20 jours.
ProgName Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR. Une chaîne nulle peut
être utilisée pour n'indiquer aucune branche.
Function Nom de la fonction à exécuter. Type STR. Une chaîne nulle peut être utilisée pour n'indiquer
aucune fonction (par exemple, juste pour exécuter un programme).
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le verbe
GETARG.
Activbit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement. Type STR.
Exécution
Mode Mnémonique Action
1 ADDPROG Ajout d'un cyclique.
Il est possible de créer plusieurs cycles de la même fonction avec des
valeurs de Delay différentes. Si une autre fonction cyclique est déjà
créée avec les propriétés Delay, Prog, Branch, Fonc identiques au
cyclique ajouté, alors elle est détruite.
Retour : 1 si OK, 0 sinon.
2 ADDPROG_EX Ajout d'un cyclique.
Identique au mode 1, excepté que les champs Farg et ActivBit peuvent
être utilisés pour distinguer les fonctions cycliques qui sont
normalement identiques.
Il est possible de créer plus d'une action cyclique pour la même fonction
à condition qu'une des propriétés Delay, Branch, Farg ou ActivBit soient
différentes.
SV_SCADABasic_fr 131
5 DEL Suppression d'un cyclique existant.
La valeur des champs Delay, ProgName, Branch et Function doit être la
même que lors de la création.
Si Delay est 0, alors tous les cycliques existants de la fonction sont
supprimés.
Si Farg et ActivBit ne sont pas spécifiés, tous les cycles de la fonction
sont supprimés.
Si Farg et ActivBit sont vides, alors tous les cycles de la fonction sont
supprimés indépendamment de la valeur de l'argument.
Retour : 1 si la suppression est prise en compte, 0 sinon.
7 DEL_EX Suppression d'un cyclique existant.
Si appelé avec Delay = 0, supprime toutes les fonctions cycliques
appelant la fonction Function dans un programme ProgName avec une
branche Branch (même comportement que le mode DEL en ignorant
Farg et ActivBit passés comme paramètres au moment de la création du
cyclique).
Si appelé avec Delay différent de 0, ne supprime que la fonction
cyclique appelant la fonction Function dans un programme ProgName
avec une branche Branch avec Delay, Farg et ActivBit passés comme
arguments. S'il n'existe aucune fonction cyclique, une erreur est
retournée (IntVal = 0).
Retour : 1 si 0K, 0 sinon.
Le programme doit être préchargé (PRELOAD) pour être exécuté. Il ne doit pas contenir
de "MAIN".
Syntaxe 2
IntVal = CYCLIC(Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
6 DELALL Suppression de tous les cycliques existants.
Retour : toujours 1.
Le programme doit être préchargé (PRELOAD) pour être exécuté. Il ne doit pas contenir
de "MAIN".
Une fonction cyclique ne peut être modifiée une fois démarrée. Elle doit être stoppée et
reprogrammée.
SV_SCADABasic_fr 132
Syntaxe 3
IntVal = CYCLIC(Mode, Delay, ProgName, Branch, Function [, Farg [, ActivBit]]) ;
Type de retour : INTEGER
Argument Signification
Delay Nombre de seconde entre chaque activation de programme. Type INTEGER. Le delai
maximum est 2 x 106 secondes ou environ 20 jours.
ProgName Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR. Une chaîne nulle peut
être utilisée pour n'indiquer aucune branche.
Function Nom de la fonction à exécuter. Type STR. Une chaîne nulle peut être utilisée pour n'indiquer
aucune fonction (par exemple, juste pour exécuter un programme).
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le verbe
GETARG.
Activbit Nom complet de la variable état ou alarme d'activation de l'événement. Type STR.
Exécution
Mode Mnémonique Action
0 ADD Ajout d'un cyclique.
5 DEL Suppression d'un cyclique existant. Les valeurs des champs doivent être
les mêmes que les valeur d'origine, voir Syntaxe 1 ci-dessus.
Retour : 1 si la suppression est prise en compte, 0 sinon.
Depuis la version 8.2, les modes ADD et ADDPROG sont les mêmes.
Syntaxe 4
IntVal = CYCLIC(Mode, Name, Description, ServerListName, Delay, ProgName, Branch, Function, [Farg[,
FactiveBit]]);
Type de retour : INTEGER
Argument Signification
Name Identifiant de l'action cyclique tel qu'il apparaît dans le champ Nom de l'Application
Explorer. Type STR.
Description Description de l'action cyclique tel qu'elle apparaît dans le champ Description de
l'Application Explorer. Type STR.
ServerListName Nom de Liste des serveurs dans la configuration du réseau. Le cyclique ne sera actif
que si le poste appartient à cette liste. Si ce paramètre est vide, le cyclique sera actif
sur tous les postes. Type STR.
Delay Nombre de secondes entre chaque activation de programme. Type INTEGER. Le delai
maximum est 2 x 106 secondes ou environ 20 jours.
ProgName Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR. Une chaîne nulle
peut être utilisée pour n'indiquer aucune branche.
Function Nom de la fonction à exécuter. Type STR. Une chaîne nulle peut être utilisée pour
n'indiquer aucune fonction (par exemple, juste pour exécuter un programme).
Farg Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par des
, (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le verbe
GETARG.
SV_SCADABasic_fr 133
Activbit Nom complet de la variable état ou alarme d'activation de l'événement. Type STR.
Exécution
Mode Mnémonique Action
8 ADDPROGBYID Ajoute une action cyclique à une fonction en utilisant le nom, la description et
la liste des serveurs fournis.
Retour : 1 si OK, 0 sinon.
Exemple
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 134
DATETIME
Voir aussi Exemple
Fournit divers composants d'une horodate.
Mode Mnémonique Syntaxe
1 DAY 1
2 MONTH 1
3 YEAR 1
4 HOUR 1
5 MINUTE 1
6 SECOND 1
7 MILLISECOND 1
8 WEEKDAY 1
9 YEARDAY 1
10 ISLEAPYEAR 1
Syntaxe 1
IntVal = DATETIME(Mode [, DateTime]);
Type de retour : INTEGER
Argument Signification
DateTime Paramètre facultatif. S'il est omis, c'est l'horodate courante qui est utilisée. Type STR.
Exécution
Mode Mnémonique Action
1 DAY Retourne le jour dans le mois (1 à 31).
2 MONTH Retourne le mois de l'année (1 à 12).
3 YEAR Retourne l'année (1980 à 2106).
4 HOUR Retourne les heures (0 à 23).
5 MINUTE Retourne les minutes (0 à 59).
6 SECOND Retourne les secondes (0 à 59).
7 MILLISECOND Retourne les millisecondes (0 à 999)..
8 WEEKDAY Retourne le jour de la semaine (0 à 6 avec dimanche = 0, lundi = 1,
etc).
9 YEARDAY Retourne le jour de l'année (1 à 366).
10 ISLEAPYEAR Retourne 1 si l'année est bissextile, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 135
DATETIMESTRING
Voir aussi
Conversion d'une horodate en chaîne de caractère.
Cette instruction ne fonctionne pas pour des valeurs équivalentes aux dates antérieures
au 01/01/1980 (L'heure de départ est 00:00:00.000 à partir de cette date).
Syntaxe
StrVal = DATETIMESTRING(TimeDate [, Format]);
Type de retour : STR
Argument Signification
TimeDate Nombre de millisecondes écoulées depuis le 1er janvier 1980 à 00:00:00.000. Type DOUBLE.
Format Chaîne de caractères contenant le format de conversion.
U Format UTC (équivalent à ###Y-#M-#DT#h:#m:#s:##IZ)
#D Jour
#M Mois
#Y Année (sur deux caractères. Exemple : 93).
###Y Année (sur quatre caractères. Exemple : 1993).
#h Heures
#m Minutes
#s Secondes
##l Millisecondes
D le format "#D/#M/#Y" est utilisé.
T le format "#h:#m:#s" est utilisé.
(null) le format par défaut "#D/#M/#Y #h:#m:#s" est utilisé.
Exécution
L'heure et ou la date sont retournées dans une chaîne de caractères selon le format spécifié.
Exemple
SUB Main
'Declare
DIM dbldatetime as double;
DIM strformatdefault as Str;
dbldatetime = DATETIMEVALUE ( );
'Retrieve the current date & time
strformatdefault=DATETIMESTRING(dbldatetime,"D");
END SUB
SV_SCADABasic_fr 136
DATETIMEVALUE
Voir aussi
Conversion d'une horodate en nombre de millisecondes écoulées depuis le 1er janvier 1980 à
00:00:00.000.
Bien que cette instruction retourne le nombre de millisecondes depuis 1970, elle ne
fonctionne pas avec des dates antérieures au 01/01/1980.
Condition Syntaxe
When executed 1
Date-time parameters 2
Formatted date & time 3
Syntaxe 1
DblVal = DATETIMEVALUE();
Type de retour : DOUBLE
Exécution
L'appel sans paramètre retourne l'horodate courante.
Syntaxe 2
DblVal = DATETIMEVALUE(Day, Month, Year, Hour, Minute, Second [, Millisecond]);
Type de retour : DOUBLE
Argument Signification
Day Jour du mois (1 à 31). Type INTEGER.
Month Numéro du mois (1 à 12). Type INTEGER.
Year Année (1980 à 2106). Type INTEGER.
Hour Heure (0 à 23). Type INTEGER.
Minute Minutes (0 à 59) Type INTEGER.
Second Secondes (0 à 59). Type INTEGER.
Millisecond Millisecondes (0 à 999). Egal à 0 par défaut. Type INTEGER.
Exécution
Retourne le nombre de millisecondes pour l'horodate spécifiée.
Syntaxe 3
DblVal = DATETIMEVALUE(DD/MM/YY [, HH:MM:SS[:Msc]]);
Type de retour : DOUBLE
Argument Signification
DD/MM/YY Date en format DD/MM/YY ou DD/MM/YYYY. Par exemple, 01/01/94 ou 28/04/1984. Type
STR.
HH:MM:SS Heure en format HH:MM:SS ou HH:MM:SS:Msc. Par exemple 22:30:00 ou 10:30:05:500.
Type STR.
Exécution
Retourne le nombre de millisecondes pour l'horodate spécifiée.
SV_SCADABasic_fr 137
Exemple
SUB Main()
'Declare
DIM dbldatetime as double;
DIM dbldatetime2 as double;
DIM dbldatetime3 as double;
dbldatetime = DATETIMEVALUE();
'Retrieve the current date & time
Print(dbldatetime);
dbldatetime2 = DATETIMEVALUE(4, 6, 2002, 22, 12, 12 , 654);
Print(dbldatetime2);
dbldatetime3 = DATETIMEVALUE("04/06/2002", "22:12:12:654");
Print(dbldatetime3);
END SUB
SV_SCADABasic_fr 138
DDE
Voir aussi Exemple
Gestion des échanges DDE avec une application serveur DDE non configurée dans le superviseur.
Mode Mnémonique Syntaxe
1 INITIATE 1
2 TERMINATE 2
3 TERMINATEALL 3
4 TIMEOUT 4
5 EXECUTE 4
6 REQUEST 4
7 POKE 7
Syntaxe 1
LongVal = DDE (Mode, ServiceName, Topicname);
Type de retour : LONG
Argument Signification
ServiceNam Nom du serveur DDE. Type STR
e
TopicName Nom de la rubrique DDE. Type STR
Exécution
Mode Mnémonique Action
1 INITIATE Démarrage d'une conversation DDE non configurée avec une application
serveur DDE.
Retour : Contient l'identificateur de la conversation établie (ou 0 si erreur).
Syntaxe 2
IntVal = DDE (Mode, Channel);
Type de retour : INTEGER
Argument Signification
Channel Identificateur de la conversation. Type LONG
Exécution
Mode Mnémonique Action
2 TERMINATE Arrêt d'une conversation établie avec une application serveur DDE.
Retour : 1 si 0K, 0 sinon.
Syntaxe 3
IntVal = DDE (Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
3 TERMINATEALL Arrêt de toutes les conversations établies avec les applications serveur
DDE.
SV_SCADABasic_fr 139
Retour : 1 si 0K, 0 sinon.
Syntaxe 4
IntVal = DDE (Mode, Channel, Timeout);
Type de retour : INTEGER
Argument Signification
Channel Identificateur de la conversation. Type LONG
Timeout Durée exprimée en millisecondes.Type LONG
Exécution
Mode Mnémonique Action
4 TIMEOUT Modification de la durée du "timeout" d'une conversation établie avec une
application serveur DDE.
Retour : 1 si 0K, 0 sinon.
Syntaxe 5
IntVal = DDE (Mode, Channel, Command);
Type de retour : INTEGER
Argument Signification
Channel Identificateur de la conversation. Type LONG
Command Chaîne de caractères contenant une instruction envoyée au serveur DDE. Type STR.
Exécution
Mode Mnémonique Action
5 EXECUTE Demande l'exécution d'une commande par le serveur DDE.
Retour : 1 si 0K, 0 sinon.
Syntaxe 6
IntVal = DDE (Mode, Channel, ItemName);
Type de retour : STRING
Argument Signification
Channel Identificateur de la conversation. Type LONG
ItemName Chaîne de caractères contenant le nom de l'item. Type STR.
Exécution
Mode Mnémonique Action
6 REQUEST Demande la valeur d'un élément spécifique d'une conversation d'un serveur
DDE.
Retour : La valeur de l'élément.
Syntaxe 7
IntVal = DDE (Mode, Channel, ItemName,Data);
Type de retour : INTEGER
Argument Signification
Channel Identificateur de la conversation. Type LONG
SV_SCADABasic_fr 140
ItemName Chaîne de caractères contenant le nom de l'item. Type STR.
Data Chaîne de caractères contenant une nouvelle valeur de l'item. Type STR.
Exécution
Mode Mnémonique Action
7 POKE Ecrit la valeur d'un élément spécifique d'une conversation d'un serveur DDE.
Retour : 1 si 0K, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 141
DDECONV
Voir aussi Exemple
Gestion de conversation DDE avec une application serveur DDE.
Mode Mnémonique Syntaxe
0 START 1
1 STOP 1
2* STATUS 1
3* ON 2
4* OFF 2
Syntaxe 1
Channel = DDECONV (Mode, ConvName);
Type de retour : INTEGER
Argument Signification
ConvName Nom de la conversation DDE. Type STR
Exécution
Mode Mnémonique Action
0 START Démarrage de la conversation spécifiée.
Retour :
0 si OK
1 si erreur
-1 si la conversation n'existe pas.
1 STOP Arrêt de la conversation.
Retour :
0 si OK
1 si erreur
-1 si la conversation n'existe pas.
2 STATUS Teste l'état de la conversation.
Retour :
0 si marche
1 si arrêt
-1 si la conversation n'existe pas.
Syntaxe 2
IntVal = DDECONV (Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
3 ON Arrêt de toutes les conversations.
Retour : 1 si défaut, 0 sinon.
4 OFF Démarrage de toutes les conversations DDE.
SV_SCADABasic_fr 142
Retour : 1 si défaut, 0 sinon.
* Ces modes sont maintenant obsolètes et ont été remplacés par les variables système :
SYSTEM.DDE.Conversation Name.ON est une variable état avec une valeur de 1 quand
la conversation est lancée et 0 lorsqu'elle est stoppée.
SYSTEM.DDE.Conversation Name.STATUS est une variable mesure contenant l'état de la
conversation.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 143
DECLARE FUNCTION / DECLARE SUB
Voir aussi Exemple
Déclare une fonction ou un sous-programme se trouvant en DLL.
Mode Mnémonique Syntaxe
- FUNCTION 1
- SUB 2
Syntaxe 1
DECLARE FUNCTION GlobalName LIB Libname [ALIAS AliasName] ([Arguments]) AS Type;
Argument Signification
GlobalName Nom de la SUB ou FUNCTION.
LibName Nom de la DLL ou se trouve la procédure déclarée. Type STR.
AliasName Nom de la procédure dans la DLL s'il est différent de celui donné dans le programme. Type
STR.
Type Type retourné par la fonction nomglobal (INTEGER, LONG, SINGLE, DOUBLE,u STR).
Arguments Liste d'arguments a la syntaxe suivante :
[BYVAL]Variable AS Type, [BYVAL]Variable AS Type, ...
Variable Nom de la variable passée en argument.
Type Type de la variable passée en argument (INTEGER, LONG, SINGLE, DOUBLE).
Exécution
La fonction retourne toujours une valeur.
Syntaxe 2
DECLARE SUB GlobalName LIB LibName [ALIAS AliasName] ([Arguments]);
Exécution
Le sous-programme ne retourne pas de valeur.
Exemple
DECLARE SUB DosBeep lib "DOSCALLS" (X as integer);
DECLARE FUNCTION WinExec LIB "KERNEL" (BYVAL File AS STR,BYVAL SH AS INTEGER) AS INTEGER;
SV_SCADABasic_fr 144
DELAY
Voir aussi
Suspend l'exécution du programme en cours pendant n secondes.
Syntaxe
DELAY(Period);
Type de retour : aucun
Argument Signification
Period Nombre de secondes pour la période 0.1 à 3277. Tout type numérique.
Exécution
Le programme en cours rend la main au superviseur et demande à être exécuté dans n secondes.
Si l'instruction DELAY est utilisée dans le programme GLOBAL, c'est le programme qui a appelé GLOBAL
qui est suspendu.
L'emploi de DELAY est interdit dans les fonctions susceptibles de s'exécuter en parallèle
dans un même programme, c'est-à-dire dans les cas suivants :
· Fonctions appelées par CYCLIC, EVENT, CRONTAB, KEY ou SELECTOR.
· Animation forçage programme.
· Action associée à une alarme.
Un DELAY est global à un programme et suspend l'exécution de toutes ses fonctions.
Exemple
SUB MainDelay()
DIM dblFrequency as double; 'in Hz
DIM dblPeriod as double; ' in ms
DIM intSeconds as integer; ' seconds
dblFrequency = 1000;
dblPeriod = 100;
intSeconds = 4;
BEEP (dblFrequency,dblPeriod);
DELAY (intSeconds);
BEEP (dblFrequency,dblPeriod);
END SUB
SV_SCADABasic_fr 145
DGET_BUFFER
Voir aussi
Récupère un DOUBLE dans une zone mémoire.
Syntaxe
DblVal = DGET_BUFFER(Handle, Offset);
Type de retour : DOUBLE
Argument Signification
Handle Adresse du buffer en mémoire. Type LONG.
Offset Offset en octets qui, ajouté au handle, fournit la position mémoire de la variable à retourner.
Tout type numérique.
Exécution
Récupère un DOUBLE dans une zone mémoire réservée par un ALLOC_BUFFER à l'offset précisé.
Exemple
i1 = DGET_BUFFER(handle,2);
SV_SCADABasic_fr 146
DIM
Voir aussi Exemple
Déclare des variables et des tableaux de variables.
Mode Mnémonique Syntaxe
- Variable 1
- Array 2
Syntaxe 1
DIM VarName As Type [, VarName2 As Type, ...];
Type de retour : aucun
Argument Signification
VarName Nom de la variable
Type Type de la variable (INTEGER, LONG, SINGLE, DOUBLE ou STR).
Exécution
La variable peut être déclarée en entête d'une procédure ou en entête du programme (en dehors des
procédures). Si elle est déclarée dans un entête de programme, elle sera disponible pour toutes les
fonctions. Si elle est déclarée dans une procédure, elle ne sera disponible que pour cette fonction.
Si une variable est substituée, la déclaration doit être faite à l'intérieur d'une fonction Sub, et non
globalement dans l'entête de programme ou passée comme un argument à partir d'une animation
Exécution Programme. Voir exemple 1 ci-dessous.
Syntaxe 2
DIM VarName [Size1] [Size2] As Type [, VarName2 As Type, ...];
Type de retour : aucun
Argument Signification
Size1, Size2 Nombre d'éléments pour chaque dimension
Exécution
La variable peut être déclarée en en-tête d'une procédure ou en en-tête du programme (en dehors des
procédures). Si elle est déclarée dans un entête de programme, elle sera disponible pour toutes les
fonctions. Si elle est déclarée dans une procédure, elle ne sera disponible que pour cette fonction.
Le nombre maximum de dimensions pour une variable tableau est de 10. Par exemple, TAB[i][j][k]
est un tableau à trois dimensions.
Le nombre maximum d'éléments dans un tableau dans une fonction particulière est de 600 moins le
nombre de fonctions dans le programme. Les indices du tableau commencent à 0.
Durant l'itération d'un tableau, l'affichage du synoptique est figé. L'itération d'un tableau est très
consommateur de temps et doit être évité au maximum.
Exemple
SUB Main()
DIM i As integer;
DIM j As integer;
DIM strString1 As str;
DIM intArray1 [3][5] As integer;
SV_SCADABasic_fr 147
'Display strString1 value
PRINT (strString1);
FOR (i=0;i<3;i=i+1)
FOR (j=0;j<5;j=j+1)
intArray1[i][j]=1;
'Display the table value
PRINT (intArray1[i][j]);
NEXT
NEXT
END SUB
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 148
DVAL
Voir aussi
Donne la valeur numérique d'une chaîne de caractères.
Syntaxe
DblVal = DVAL(string);
Type de retour : DOUBLE
Exécution
Lorsque la chaîne est vide ou démarre par un caractère non numérique la fonction retourne 0. La
conversion s'arrête dès qu'elle rencontre un caractère non numérique en partant de la gauche vers la
droite.
Exemple
SUB Main()
DIM dblResult as double;
DIM strString1 as Str;
strString1 = "125.35TEST";
dblResult = DVAL( strString1 );
Print("Result:", dblResult );
SUB Main
SV_SCADABasic_fr 149
EMAIL
Voir aussi Spécifiques Exemple
Contrôle par programme du composant MailSender de Microsoft, version 1.0. Il initialise des fonctions de
messagerie électronique basiques pour un message, pièce jointe, compte utilisateur ou modèle.
Mode Mnémonique Syntaxe
0 SEND 1
1 ADDPROFILE 2
2 DELPROFILE 3
3 DELALLPROFILES 4
Syntaxe 1
EMAIL(Mode, EmailProfile, To, Cc, Bcc, Subject, Message [, FileAttachments [, Priority [, MessageFormat [,
MessageEncoding]]]] )
Type de retour : INTEGER.
Argument Signification
EmailProfile Nom du profil de messagerie électronique tel que configuré dans Actions.Messagerie
électronique.Profils. Le profil fournit des informations comme le nom du serveur sortant
(SMTP). Si aucun profil n'est spécifié, le profil par défaut sera utilisé. Type STR.
To Adresse du destinataire dans une liste où les noms sont délimités par des points-virgules.
Type STR.
Cc Adresse du destinataire en copie dans une liste où les noms sont délimités par des points-
virgules. Type STR.
Bcc Adresse du destinataire en copie cachée dans une liste où les noms sont délimités par des
points-virgules. Type STR.
Subject Ligne de l'objet du message électronique. Type STR.
Message Corps du message électronique. Type STR.
FileAttachm Liste de pièces jointes délimitée par des points-virgules. Les fichiers de la liste doivent avoir
ents un chemin d'accès absolu. Type STR.
Priority Importance du message. Tout type numérique.
0 = Normale.
1 = Basse.
2 = Haute.
MessageFor Format du corps du message électronique. Tout type numérique.
mat 0 = Texte seulement
1 = HTML
MessageEnc Encodage du corps du message éléctronique. Voir le chapitre Encodage de message.
oding
Exécution
Mode Mnémonique Action
0 SEND Envoi d'un message électronique.
Retourne 1 si OK, sinon 0.
Syntaxe 2
SV_SCADABasic_fr 150
EMAIL(MODE, ProfileName, ProfileDescription, AccountName, AccountDescription, SenderAddress,
SenderDisplayName, ReplyToAddress, ServerHost, ServerPort, DeliveryMethod, EncryptionMethod,
AuthenticationMode, UserName, UserPassword);
Type de retour : INTEGER.
Argument Signification
ProfileName Nom du profil. Type STR.
ProfileDescription Description du profil. Type STR.
AccountName Nom du compte. Type STR.
AccountDescription Description du compte. Type STR.
SenderAddress Adresse e-mail qui apparaît dans le champ De du client destinataire de l'e-mail.
Type STR.
SenderDisplayName Si configuré, s'affichera dans le champ De du client destinataire de l'e-mail au
lieu de l'adresse e-mail source. Type STR.
ReplyToAddress Adresse e-mail qui sera utilisée par le client destinataire de l'e-mail s'il choisit
de répondre au message. Type STR.
ServerHost Nom du serveur sortant. Type STR.
ServerPort Numéro du port du serveur sortant. Tout type numérique.
DeliveryMethod Flag indiquant la méthode d'envoi de l'e-mail. 1 via IIS, 0 via le réseau.
EncryptionMethod Flag indiquant la méthode d'encryptage. 1 pour SSL, sinon 0.
AuthenticationMode Flag indiquant si l'authentification est requise. 1 pour authentification, sinon 0.
UserName Nom de l'utilisateur si l'authentification est requise. Type STR.
UserPassword Mot de passe de l'utilisateur si l'authentification est requise. Type STR.
Exécution
Mode Mnémonique Action
1 ADDPROFILE Ajoute un compte et un profil e-mail temporaires.
Retourne 1 si OK, sinon 0 (erreur de paramètre).
Syntaxe 3
EMAIL(MODE, ProfileName);
Type de retour : INTEGER.
Argument Signification
ProfileName Nom du profil. Type STR.
Exécution
Mode Mnémonique Action
2 DELPROFILE Supprime un compte et un profil e-mail temporaires. Seuls un profil et un
compte créés par programme peuvent être supprimés.
Retourne 1 si OK, sinon 0 (erreur de paramètre).
Syntaxe 4
EMAIL(MODE);
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
3 DELALLPROFILES Supprime tous les comptes et profils e-mail temporaires. Seuls les profils et
SV_SCADABasic_fr 151
les comptes créés par programme peuvent être supprimés.
Retourne toujours 1.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus.
SV_SCADABasic_fr 152
ERROR
Voir aussi
Renvoie le status de la dernière erreur.
Syntaxe 1
IntVal = ERROR(Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
1 ERRNO Retourne le code de la dernière erreur apparue.
Retour :
0 = s'il n'y a pas eu d'erreur
1 = argument de chaîne erroné.
2 = si affectation de variable < au minimum physique.
3 = si affectation de variable > au maximum physique.
5 = fichier déjà ouvert (fopen).
6 = fichier déjà fermé (fclose, fseek, fputs).
7 = échec à l'ouverture (fopen).
4 LINE Retourne le numéro de la ligne ou s'est produit la dernière erreur, 0 s'il n'y a pas
eu d'erreur.
Syntaxe 2
IntVal = ERROR(Mode);
Type de retour : STR
Exécution
Syntaxe 3
IntVal = ERROR(Mode, Filename);
SV_SCADABasic_fr 153
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
5 TOFILE Redirige toutes les erreurs qui s'affichent dans la fenêtre de mise au point des
programmes vers le fichier "filename".
Veiller à utiliser \\ pour indiquer un nom de fichier avec son chemin. Pour désactiver la
redirection, utiliser "" pour le nom du fichier. Lorsque le chemin n'est pas spécifié, le
fichier est redirigé dans le répertoire TP du projet.
Exemple
SUB Main()
DIM intResult as integer;
'open the file
intResult = Error("TOFILE","errorfile.txt");
If (FOPEN("MESSAGE.TXT","R")==0) Then
'If error in opening:
PRINT ("code=\t",ERROR("ERRNO"));
PRINT ("prog=\t",ERROR("PROGRAM"));
PRINT ("fonc=\t",ERROR("FUNCTION"));
PRINT ("line=\t",ERROR("LINE"));
Else
'If no error in opening MESSAGE.TXT:
'...
End If
END SUB
SV_SCADABasic_fr 154
EVENT
Voir aussi Exemple Plus d'informations
Exécution d'une fonction sur changement de valeur d'une variable.
Mode Mnémonique Syntaxe
1 ADD ou 1
ADDPROG
2 ADDPROGEVT 7
3 DELPROGEVT 8
5 DEL 2
6 DELALL 3
7 IMPORTBYFILE 5
8 IMPORTBYHANDL 6
E
9 ADDEMAIL 9
10 DELEMAIL 8
11 ADDPROGS 1
12 ADDSMS 10
13 DELSMS 8
21 DELPROG 4
Tous les programmes depuis lesquels les procédures sont déclenchées doivent être
préchargés.
L'utilisation de DELAY dans une procédure appelée périodiquement peut produire des
résultats imprévisibles et doit être évitée.
Syntaxe 1
IntVal = EVENT(Mode, VarName, Sense, Prog, Branch, Func[, Farg [, ActivBit]]) ;
Type de retour : INTEGER
Argument Signification
VarName Nom de variable de la base de données. Type STR.
Sense Sens de la transition.
Prog Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR.
Func Nom de la fonction à exécuter. Type STR.
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le verbe
GETARG.
ActivBit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
Exécution
SV_SCADABasic_fr 155
Mode Mnémonique Action
1 ADD ou Création d'un événement déclenchant un programme. Annule et remplace le
ADDPROG déclenchement de même identifiant précédent (name + sense).
11 ADDPROGS Création d'un événement déclenchant un programme pouvant porter sur la
même variable et le même sens mais avec une fonction différente.
Syntaxe 2
IntVal = EVENT(Mode, VarName[, Sense, Prog, Branch, Func] );
Type de retour : INTEGER
Argument Signification
VarName Nom de la base de données. Type STR.
Sense Sens de la transition. Voir ci-dessous
Prog Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR.
Func Nom de la fonction à exécuter. Type STR.
Exécution
Mode Mnémonique Action
5 DEL Suppression de tous les déclenchements existants, si les paramètres facultatifs
sont précisés seul le déclenchement nommé est supprimé. Sense doit être
identique à celui indiqué lors de la programmation.
Retour : 1 si au moins une suppression est prise en compte, 0 sinon.
Syntaxe 3
IntVal = EVENT(Mode, [, Type]);
Type de retour : INTEGER
Argument Signification
Type Type de déclenchements à supprimer. Type INTEGER.
0 = Supprime tous les déclenchements existants créés par programme. Paramètre par défaut
si Type n'est pas utilisé.
1 = Supprime tous les déclenchements de programmes créés par programme.
2 = Supprime tous les déclenchements de messages électroniques créés par programme.
Exécution
Mode Mnémonique Action
6 DELALL Suppression de tous les déclenchements créés par programme selon le type
précisé.
Retour : toujours 1.
Syntaxe 4
IntVal = EVENT(Mode, Name, Sense, Program, Branch, Function);
Type de retour : INTEGER
Argument Signification
Name Nom de la base de données. Type STR.
Sense Sens de la transition.
SV_SCADABasic_fr 156
Prog Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR.
Func Nom de la fonction à exécuter. Type STR.
Exécution
Mode Mnémonique Action
21 DELPROG L'événement déclenchant un programme unique identifié est détruit. Tous les
arguments sont obligatoires.
Retour : 1 si l'événement correspondant a été détruit, 0 sinon.
Sense
Sense est un exemple qui définit les conditions dans lesquelles l'événement est déclenché. Les options
disponibles dépendent du type de variable avec laquelle l'événement est associée.
Conditions de variables
Voir le chapitre Conditions de Variables.
Syntaxe 5
IntVal = EVENT(Mode, FileName);
Type de retour : INTEGER
Argument Signification
FileName Nom du fichier texte dans le répertoire TP du projet ou dans le répertoire sélectionné par un
chemin absolu. Type STR.
Exécution
Mode Mnémonique Action
7 IMPORTBYFILE Import d’événements à partir du fichier dans le répertoire spécifié.
Retour : 1 si OK, 0 sinon.
Exemple
EVENT(7, "addEvent.dat");
EVENT("IMPORTBYFILE", "addEvent.dat");
Syntaxe 6
IntVal = EVENT(Mode, Handle);
Type de retour : INTEGER
Argument Signification
Handle Adresse du buffer d’allocation mémoire retourné par ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
8 IMPORTBYHANDLE Import d’événements à partir d’un buffer.
Retour : 1 si OK, 0 sinon.
Exemple
SV_SCADABasic_fr 157
DIM hbuf AS LONG;
hbuf = FILETOBUF("addevent.dat");
EVENT(8, hbuf);
'OR
EVENT("IMPORTBYHANDLE", hbuf);
Syntaxe 7
IntVal = EVENT(Mode, Name, Description, ServerListName, VarName, Sense, Prog, Branch, Func, [, Farg
[, ActiveBit]];
Type de retour : INTEGER
Argument Signification
Name Nom de l'événement. La chaîne de caractères saisie apparaîtra dans le champ Nom de la
boîte de dialogue de configuration de l'événement. Elle est également utilisée comme
identifiant lors de la suppression automatique du déclenchement. Type STR.
Description Description de l'événement. La chaîne de caractères saisie apparaîtra dans le champ
Description de la boîte de dialogue de configuration de l'événement. Type STR.
ServerListN Nom de la liste serveur. Dans une application multi-postes, l'événement ne sera actif que sur
ame la liste serveur apparaissant dans la liste. Type STR.
VarName Nom de la base de données. Type STR.
Sense Sens de la transition. Voir ci-dessus.
Prog Nom du programme contenant la fonction. Type STR.
Branch Nom de branche passé en argument à la fonction appelée. Type STR.
Func Nom de la fonction à exécuter. Type STR.
Farg Facultatif. Chaîne de 255 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le verbe
GETARG.
ActiveBit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
Exécution
Mode Mnémonique Action
2 ADDPROGEVT Création d'un événement déclenchant un programme. Les conditions dans
lesquelles l'événement est déclenché sont définies par l'expression Sense. Si un
nom de fonction n'est pas fournie, la fonction MAIN sera déclenchée. Un
événement existant avec le même nom sera déclenché.
Retour : 1 si OK, 0 sinon.
Syntaxe 8
IntVal = EVENT(Mode, Name);
Type de retour : INTEGER
Argument Signification
Name Nom de l'événement. La chaîne de caractères saisie est celle qui apparaît dans le champ Nom
de la boîte de dialogue de configuration de l'événement.
Exécution
Mode Mnémonique Action
3 DEPROGEVT Suppression du nom de l'événement.
10 DELEMAIL Suppression de l'événement e-mail.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 158
13 DELSMS Suppression de l'événement SMS.
Syntaxe 9
IntVal = EVENT(Mode, Name, Description, ServerListName, VarName, Sense, EmailTemplate, [, ActiveBit
[, EmailProfile [, To [, Cc [, Bcc [, Subject [, Message [, FileAttachments [, Priority [, MessageFormat [,
MessageEncoding]]]]]]]]]]])
Type de retour : INTEGER
Argument Signification
Name Nom de l'événement. La chaîne de caractères saisie apparaîtra dans le champ Nom de la
boîte de dialogue de configuration de l'événement. Elle est également utilisée comme
identifiant lors de la suppression de l'événement par programme.
Description Description de l'événement. La chaîne de caractères saisie apparaîtra dans le champ
Description de la boîte de dialogue de configuration de l'événement.
ServerListN Nom de la liste serveur. Dans une application multi-postes, l'événement ne sera actif que sur
ame le poste serveur apparaissant dans la liste.
VarName Nom d'une variable de l'arbre des variables. Type STR.
Sense Chaîne de caractères ou nom d'une variable de texte définissant la condition de
déclenchement.
EmailTempl Nom du modèle de messagerie tel que configuré dans Actions.Messages.Modèles de
ate message. Le champ Modèle peut être vide. Type STR.
ActiveBit Facultatif. Nom de la variable état ou alarme qui active l'événement.
EmailProfile Facultatif. Nom du profil de messagerie électronique tel que configuré dans
Actions.Messages.Profils de messagerie. Le profil fournit des informations comme le nom du
serveur sortant (SMTP). Si aucun profil n'est spécifié, le profil par défaut sera utilisé. Type
STR.
To Facultatif. Adresse des destinataires dans une liste où les noms sont délimités par des points-
virgules. Type STR.
Cc Facultatif. Adresse des destinataires en copie dans une liste où les noms sont délimités par
des points-virgules. Type STR.
Bcc Facultatif. Adresse des destinataires en copie cachée dans une liste où les noms sont
délimités par des points-virgules. Type STR.
Subject Facultatif. Objet du message électronique. Type STR.
Message Facultatif. Corps du message électronique. Type STR.
FileAttachm Facultatif. Liste de pièces jointes délimitées par des points-virgules. Les fichiers de la liste
ents doivent avoir un chemin d'accès absolu. Type STR.
Priority Facultatif. Importance du message. Tout type numérique.
0 = Normale.
1 = Basse.
2 = Haute.
MessageFor Facultatif. Format du corps du message électronique. Tout type numérique.
mat 0 = Texte seulement
1 = HTML
MessageEnc Facultatif. Encodage du corps du message éléctronique. Voir le chapitre Encodage de
oding message.
Si un modèle est spécifié et si, dans le modèle, le comportement d'une propriété est
configuré comme Imposé par le modèle, les propriétés du modèle écraseront la
SV_SCADABasic_fr 159
configuration de l'instruction. Les propriétés affectées sont EmailProfile, To, Cc, Bcc,
Subject, Message, Attachments, Priority, MessageFormat et MessageEncoding.
Exécution
Mode Mnémonique Action
9 ADDEMAIL Création d'un événement déclenchant un message électronique. Les conditions
dans lesquelles l'événement est déclenché sont définies par l'expression Sense.
Si un événement avec le même nom existe déjà, il sera remplacé.
Retour : 1 si OK, 0 sinon.
Syntaxe 10
IntVal = EVENT(Mode, Name, Description, ServerListName, VarName, Sense, MsgTemplate, [, ActiveBit [,
SMSProfile [, PhoneNumbers [, Subject [, Message [, Format]]]]]])
Type de retour : INTEGER
Argument Signification
Name Identifiant de l'événement. Type STR.
Description Description de l'événement. Type STR.
ServerListN Nom de la liste serveur lors de l'utilisation dans une application multi-postes. Type STR.
ame
VarName Nom d'une variable de l'arbre des variables, utilisée pour déclencher l'événement SMS. Type
STR.
Sense Chaîne de caractères ou nom d'une variable de texte définissant la condition de
déclenchement.
MsgTemplat Nom du modèle de message tel que configuré dans Actions.Messages.Modèles de message.
e Type STR.
ActiveBit Facultatif.Nom complet de la variable état ou alarme qui active de l'événement. Type STR.
SMSProfile Facultatif. Nom du profil SMS tel que configuré dans Actions.Messages.Profils SMS. Le profil
fournit des informations au sujet du port de connexion et de la simcard du modem. Type
STR.
PhoneNumb Facultatif. Numéros de téléphone des destinataires du SMS. Plusieurs numéros doivent être
ers séparés par des points-virgules. Type STR.
Subject Facultatif. Objet du SMS. Type STR.
Message Facultatif. Corps du SMS. Type STR.
Format Facultatif. Format du message.
0 = Auto (valeur par défaut).
1 = Texte.
2 = PDU 7 octets.
3 = Unicode
Exécution
Mode Mnémonique Action
12 ADDSMS Création d'un événement déclenchant un SMS. Les conditions dans lesquelles
l'événement est déclenché sont définies par l'expression Sense.
SV_SCADABasic_fr 160
EXCELTOBUF
Syntaxe
LongVal = EXCELTOBUF (WorkbookPath, SheetName, LineSeparator, ColumnSeparator [, RangeFirstRow,
RangeFirstColumn, RangeLastRow, RangeLastColumn]);
Argument Meaning
WorkbookPath Chemin et/ou nom du classeur. Si le chemin n'est pas fourni, le Superviseur
prendra le classeur dans le dossier TP du projet. Type STR.
SheetName Nom de la feuille (30 caractères maximum). Type STR.
LineSeperator Séparateur de ligne utilisé dans le buffer (un caractère comme ‘;’ ou ‘\n’). Type
STR.
ColumnSeperator Séparateur de colonne utilisé dans le buffer (un caractère comme ‘,’ ou ‘\t’).
Type STR.
RangeFirstRow Première ligne lue dans la feuille Excel (Valeur par défaut à 1).
RangeFirstColumn Première colonne lue dans la feuille Excel (Valeur par défaut à 1)
RangeLastRow Dernière ligne lue dans la feuille Excel (Valeur par défaut à 1)
RangeLastColumn Dernière colonne lue dans la feuille Excel (Valeur par défaut à 1)
Si les paramètres optionnels de rang sont utilisés, tous les quatre doivent être utilisés.
Exécution
Action
Crée un buffer mémoire depuis un fichier Excel dans un format XLSX. Taille maximum du buffer : 128 Ko.
Retour : Localisation du buffer mémoire OK, 0 sinon.
SV_SCADABasic_fr 161
EXP
Voir aussi
Fonction exponentielle (base e).
Syntaxe
DblVal = EXP(Val);
Argument Signification
Val Tout type numérique.
Exemple
SUB Main()
'Declare
DIM dblExponential as double;
DIM sngValue as single;
sngValue = 2.23456;
dblExponential = Exp ( sngValue );
Print("Exp( ",sngValue," ) = ",dblExponentielle);
'Display "Exp( 2.23456 ) = 9.34237"
END SUB
SV_SCADABasic_fr 162
EXPORT
Syntaxe 1
IntVal = EXPORT (Mode, ExportName, [ExportPageName], [ExportAbsoluteFilePath ], [ReferenceDate ],
[StatusVariable]);
Argument Signification
ExportName Nom de l'export à exécuter (tel que configuré dans l'Application Explorer).
Type STR.
ExportPageName Nom de la page à exporter. Si non spécifié, toutes les pages seront exportées.
Type STR.
ExportAbsoluteFilePath Nom du fichier résultat de l'export à générer. Si non spécifié, c'est le nom du
fichier par défaut, tel que configuré dans l'Application Explorer, qui sera utilisé.
Type STR.
ReferenceDate Horodatage utilisé comme date de référence pour calculer les dates de début
et de fin. Si non spécifié, c'est la date actuelle d'exécution de la fonction qui
sera utilisée. Type DOUBLE (format DateTimeValue)
StatusVariable Nom d'une variable mesure dans laquelle le status de l'export est sauvegardé.
Si non spécifié, c'est la variable de status, telle que configurée dans
l'Application Explorer, qui sera utilisée. Si spécifié, la variable de status
configurée dans l'Application Explorer, ne sera pas utilisé. Type STR.
Exécution
Mode Mnémonique Action
1 GENERATE Génère l'export.
Retour : 1 si OK, 0 ou une variable négative si NOK (ExportName ne
correspond pas à l'export configuré, ExportPageName ne correspond
pas à la page configurée, nom de fichier invalide, ne peut pas créer le
fichier de sortie, horodatage invalide ou configuration d'export
invalide).
Syntaxe 2
IntVal = EXPORT (Mode, ExportName, [ExportPageName], [ExportAbsoluteFilePath ], [StartDate],
[EndDate ], [StatusVariable]);
Argument Signification
ExportName Nom de l'export à exécuter (tel que configuré dans l'Application Explorer).
Type STR.
ExportPageName Nom de la page à exporter. Si non spécifié, toutes les pages seront exportées.
Type STR.
ExportAbsoluteFilePath Nom du fichier résultat de l'export à générer. Si non spécifié, c'est le nom du
fichier par défaut, tel que configuré dans l'Application Explorer, qui sera utilisé.
Type STR.
StartDate Horodatage à utiliser comme date de début. Type DOUBLE (format
DateTimeValue)
EndDate Horodatage à utiliser comme date de fin. Type DOUBLE (format
DateTimeValue)
StatusVariable Nom d'une variable mesure dans laquelle le status de l'export est sauvegardé.
Si non spécifié, c'est la variable de status, telle que configurée dans
SV_SCADABasic_fr 163
l'Application Explorer, qui sera utilisée. Si spécifié, la variable de status
configurée dans l'Application Explorer, ne sera pas utilisé. Type STR.
Exécution
Mode Mnémonique Action
2 GENERATE_DATES Génère l'export en utilisant des horodatages de début et de fin.
Retour : 1 si OK, 0 ou une variable négative si NOK (ExportName ne
correspond pas à l'export configuré, ExportPageName ne correspond
pas à la page configurée, nom de fichier invalide, ne peut pas créer le
fichier de sortie, horodatage invalide ou configuration d'export
invailde).
Syntaxe 3
IntVal = EXPORT (Mode, ExportName, [ExportPageName], [ExportAbsoluteFilePath ], [ReferenceDate ],
[PeriodType], [PeriodValue], [PeriodInterval], [StatusVariable]);
Argument Signification
ExportName Nom de l'export à exécuter (tel que configuré dans l'Application Explorer).
Type STR.
ExportPageName Nom de la page à exporter. Si non spécifié, toutes les pages seront exportées.
Type STR.
ExportAbsoluteFilePath Nom du fichier résultat de l'export à générer. Si non spécifié, c'est le nom du
fichier par défaut, tel que configuré dans l'Application Explorer, qui sera utilisé.
Type STR.
ReferenceDate Horodatage utilisé comme date de référence pour calculer les dates de début
et de fin. Si non spécifié, c'est la date actuelle d'exécution de la fonction qui
sera utilisée. Type DOUBLE (format DateTimeValue)
PeriodType Type de période. Complète ou courante. Type INTEGER.
0 = Courante
1 = Complète
-1 = Ignore l'argument.
PeriodValue Valeur de la période. Type INTEGER.
1 à 65535.
-1 = Ignore l'argument.
PeriodInterval Type d'intervalle (Année, mois, jour ...). Type INTEGER.
0 = Minutes
1 = Heures
2 = Jours
3 = Semaines
4 = Mois
5 = Années
-1 = Ignore l'argument.
StatusVariable Nom d'une variable mesure dans laquelle le status de l'export est sauvegardé.
Si non spécifié, c'est la variable de status, telle que configurée dans
l'Application Explorer, qui sera utilisée. Si spécifié, la variable de status
configurée dans l'Application Explorer, ne sera pas utilisé. Type STR.
Exécution
Mode Mnémonique Action
3 GENERATE_PERIOD Génère l'export en utilisant l'horodate de début et une période.
Retour : 1 si OK, 0 ou une variable négative si NOK (ExportName ne
correspond pas à l'export configuré, ExportPageName ne correspond
pas à la page configurée, nom de fichier invalide, ne peut pas créer le
fichier de sortie, horodatage invalide ou configuration d'export
invalide).
SV_SCADABasic_fr 164
EXPORT_LOG
L’Export de données est protégé par une option de licence dans la clé de protection du
Superviseur. Si vous ne possédez pas cette option, l’Export de données ne s’effectuera qu’en
mode démonstration.
Argument communs
Argument Signification
LogListName Nom de la liste de consignations à partir de laquelle les données sont obtenues.
Type STR.
StartTime Heure de début de la requête d'historiques. L'heure de début doit être
antérieure à l'heure de fin. Type DOUBLE.
EndTime Heure de fin de la requête d'historiques. L'heure de fin doit être postérieure à
l'heure de début. Type DOUBLE.
Events Nombre, calculé en utilisant des valeurs de poids binaires, représentant les
événements à générer. Type DOUBLE.
0x0000 0001 = Alarme présente
0x0000 0002 = Alarme au repos
0x0000 0004 = Alarme présente non acquittée
0x0000 0008 = Alarme absente non acquittée
0x0000 0010 = Alarme présente acquittée
0x0000 0020 = Alarme absente acquittée
0x0000 0040 = Alarme non accessible
0x0000 0080 = Alarme inhibée
0x0000 0100 = Alarme masquée par programme
0x0000 0200 = Alarme masquée par variable
0x0000 0400 = Alarme masquée par opérateur
0x0000 0800 = Alarme masquée par expression
0x0000 1000 = Alarme prise en compte
0x0000 2000 = Transition à 0
0x0000 4000 = Transition à 1
0x0000 8000 = Invalide
0x0001 0000 = Actions opérateur commande
0x0002 0000 = Actions opérateur acquittement
0x0004 0000 = Actions opérateur connexion/déconnexion
0x0008 0000 = Actions opérateur exécution programme
0x0010 0000 = Actions opérateur masquage d'alarme
AlarmLevelMin Niveau d'alarme minimum (0 à 29). Type INTEGER.
AlarmLevelMax Niveau d'alarme maximum (0 à 29). Type INTEGER.
ExpressionFilter Expression de filtre sur attributs. Voir le chapitre :
L'Application Explorer.Archives.Configuration des unités d'archivage.Unité
d'archivage propriétaire.Configuration de l'enregistrement des
SV_SCADABasic_fr 165
consignations.Utilisation de filtre d'expression sur attributs.
StatusVariable Nom de la variable de mesure dans laquelle le status de la requête
d'historiques est reportée. Type STR.
LineSeparator Caractère utilisé comme séparateur de ligne dans le buffer de sortie.
ColumnSeparator Caractère utilisé comme séparateur de colonne dans le buffer de sortie.
MaxRetLines Nombre maximum de lignes retournées par la requête. 0 = pas de maximum.
Type INTEGER.
Syntaxe 1
IntVal = EXPORT_LOG(Mode, LogListName, StartTime, EndTime, Events, AlarmLevelMin, AlarmLevelMax,
ExpressionFilter, StatusVariable, LineSeparator, ColumnSeparator, MaxRetLines, DataFormat,
DataHeader)
Argument Signification
DataFormat Format de données des colonnes. Le format de chaque colonne est séparé par
le caractère "|". Type STR.
Exemple: #D/#M/#Y|#h:#m:#s|#E|#T
DataHeader Texte d'entête. Chaque entête de colonne est séparée par le caractère "|". Type
STR.
Exemple: Date|Time|Event|Title
Exécution
Mode Mnémonique Action
1 GETRECORD Génère une requête d'historiques pour renvoyer les enregistrements
consignés contenues dans une liste de consignations.
Retour : Voir Notes fonctionnelles ci-dessous.
Syntaxe 2
IntVal = EXPORT_LOG(Mode, LogListName, StartTime, EndTime, Events, AlarmLevelMin, AlarmLevelMax,
ExpressionFilter, StatusVariable, LineSeparator, ColumnSeparator, MaxValuesToProcess, MaxRetLines,
StatFlag, StatSortOrder, StatCountersFormat, StatRounded)
Argument Signification
StatFlag Nombre, calculé en utilisant des valeurs de poids binaires, représentant les
statistiques à générer. Type LONGLONG.
0x0000 0000 0001 = Compteur de toutes les transitions
0x0000 0000 0002 = Transition à 0 (Occurrences)
0x0000 0000 0004 = Transition à 1 (Occurrences)
0x0000 0000 0008 = Invalide (Occurrences)
0x0000 0000 0010 = Transition à 0 (Durée)
0x0000 0000 0020 = Transition à 1 (Durée)
0x0000 0000 0040 = Invalide (Durée)
0x0000 0000 0080 = Alarme au repos (Occurrences)
0x0000 0000 0100 = Alarme présente (Occurrences)
0x0000 0000 0200 = Alarme absente acquittée (Occurrences)
0x0000 0000 0400 = Alarme absente non acquittée (Occurences)
0x0000 0000 0800 = Alarme présente acquittée (Occurrences)
0x0000 0000 1000 = Alarme présente non acquittée (Occurrences)
0x0000 0000 2000 = Alarme invalide (Occurrences)
0x0000 0000 4000 = Alarme masquée par expression (Occurrences)
0x0000 0000 8000 = Alarme inhibée (Occurrences)
0x0000 0001 0000 = Alarme non accessible (Occurrences)
0x0000 0002 0000 = Alarme masquée par programme (Occurrences)
0x0000 0004 0000 = Alarme masquée par opérateur (Occurrences)
0x0000 0008 0000 = Alarme masquée par variable (Occurrences)
0x0000 0010 0000 = Alarme au repos (Durée)
0x0000 0020 0000 = Alarme présente (Durée)
0x0000 0040 0000 = Alarme absente acquittée (Durée)
SV_SCADABasic_fr 166
0x0000 0080 0000 = Alarme absente non acquittée (Durée)
0x0000 0100 0000 = Alarme présente acquittée (Durée)
0x0000 0200 0000 = Alarme présente non acquittée (Durée)
0x0000 0400 0000 = Alarme invalide (Durée)
0x0000 0800 0000 = Alarme masquée par expression (Durée)
0x0000 1000 0000 = Alarme inhibée (Durée)
0x0000 2000 0000 = Alarme non accessible (Durée)
0x0000 4000 0000 = Alarme masquée par programme (Durée)
0x0000 8000 0000 = Alarme masquée par opérateur (Durée)
0x0001 0000 0000 = Alarme masquée par variable (Durée)
StatSortOrder Statistique utilisée pour trier les résultats. Sélectionné en utilisant une des
valeurs utilisées pour StatFlag. 0 = aucun tri. Type LONGLONG
StatCountersFormat Numéro indiquant les unités des compteurs. Type INTEGER.
0 = Aucun
1 = Secondes
2 - Minutes
3 = Heures
4 = Jours
StatRounded Type INTEGER.
0 = Aucun arrondi
1 = Arrondi
Exécution
Mode Mnémonique Action
2 GETSTATISTIC Génère une requête d'historiques pour retourner des valeurs de
statistiques depuis la liste de consignations.
Retour : Voir Notes fonctionnelles ci-dessous.
Syntaxe 3
IntVal = EXPORT_LOG(Mode, BufferHandle);
Argument Signification
BufferHandle Handle du buffer précédemment créé en utilisant ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
5 READBUFFER Lit un buffer de données après un GETRECORD ou GETSTATISTIC.
Le status de la variable doit être 0 (Terminé), 4 (Terminé mais le
nombre maximum de points a été atteint) ou 5 (Terminé mais le
nombre maximum de valeurs traitées a été atteint).
Retour : Nombre de lignes extraites ou si plus petit que 1 :
0 = Fin du buffer
-1 = Handle du buffer invalide
-2 = Aucune demande d'historiques précédente a été envoyée
-3 = Aucune réponse reçue
-4 = Rien à lire
-5 = Buffer trop petit
Syntaxe 4
IntVal = EXPORT_LOG(Mode);
Exécution
Mode Mnémonique Action
6 CANCEL Annule la requête d'historiques courante. Un CANCEL doit toujours
être suivi par un DISPOSE.
Retour : Toujours 0.
7 DISPOSE Libère le buffer interne utilisé par une requête d'historiques. Doit
toujours être appelé avant de faire une nouvelle demande
SV_SCADABasic_fr 167
d'historiques ou après un CANCEL.
Retour : Toujours 0.
Si vous utilisez une boucle comprenant READBUFFER, vous devez respecter la limite de 30
secondes autorisée pour une exécution SCADA Basic. Si vous dépassez ceci (ce qui est possible si
vous traitez de grandes quantités de données), l'exécution sera annulée avec une erreur.
A la fin, le mode DISPOSE doit être exécuté pour libérer le buffer interne utilisé dans la requête
d'historiques.
Valeurs de retour
Toutes les valeurs de retour autres que zéro indiquent une erreur. Noter en particulier un retour de -30
qui indique qu'une requête précédente est toujours en cours et devra être gérée dans le script.
Value Signification
0 Requête envoyée
-1 LogListName n'est pas un STR
-2 LogList n'existe pas
-3 Start time est indéfini ou invalide
-4 End time est indéfini ou invalide
-5 Event Code ne peut pas être lu
-6 Event Code est plus petit ou égal à 0
-7 AlarmLevelMin ne peut pas être lu
-8 AlarmLevelMin doit être entre 0 et 29
-9 AlarmLevelMax ne peut pas être lu
-10 AlarmLevelMax doit être 0 et 29
-11 AlarmLevelMin doit être plus petit que AlarmLevelMax
-12 ExpressionFilter n'est pas un STR
-13 StatusVariable n'est pas un STR
-14 StatusVariable n'est pas une mesure
-15 LineSeparator ne peut pas être lu
-16 ColumnSeparator ne peut pas être lu
-20 DataFormat n'est pas un STR
-21 DataHeader n'est pas un STR
-22 Format et header ont un nombre de colonnes différents
-23 StatFlag ne peut pas être lu
-24 StatFlag doit être plus petit ou égal à 0
-25 StatSortingOrder ne peut pas être lu
-26 StatSortingOrder doit être plus petit que 0
-27 StatCountersFormat ne peut pas être lu
-28 StatCountersFormat doit être entre 0 et 4
-29 StatRoundedToRequest ne peut pas être lu
-30 Une requête d'historiques précédente est toujours en cours.
SV_SCADABasic_fr 168
Valeurs de variable de status
Status de la dernière requête d'historiques.
Valeur Signification
0 Terminé avec succès.
1 En exécution.
3 Annulé.
4 Terminé mais le nombre maximum de points a été atteint.
5 Terminé mais le nombre maximum de valeurs traitées a été atteint.
10 Echec.
11 Echec dû à une mauvaise configuration.
12 Echec dû à un échec de la requête d'historiques.
Exemples
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 169
EXPORT_TREND
Argument communs
Argument Signification
ListVariables Liste des variables à partir de laquelle les données sont collectées comme une
chaîne ou un pointeur vers un buffer contenant la chaîne. Type STR ou
DOUBLE.
Branch Branche préfixant tous les noms de variables. Type STR
Unit Nom de l'unité d'archivage contenant les données d'historiques. Si vide, l'unité
d'archivage primaire de chaque variable est utilisée. Type STR.
StartTime Heure de début de la requête d'historiques. L'heure de début doit être
antérieure à l'heure de fin. Type DOUBLE.
EndTime Heure de fin de la requête d'historiques. L'heure de fin doit être postérieure à
l'heure de début. Type DOUBLE.
StatusVariable Nom de la variable mesure dans laquelle le status de la requête d'historiques
est reporté. Type STR.
LineSeparator Caractère utilisé comme séparateur de ligne dans le buffer de sortie.
ColumnSeparator Caractère utilisé comme séparateur de colonne dans le buffer de sortie.
MaxReturnLines Nombre maximum de lignes retournées par la requête. 0 = pas de maximum.
Type INTEGER.
MaxValuesToProcess Nombre maximum de valeurs retournées par la requête. 0 = pas de maximum.
Type INTEGER.
Syntaxe 1
IntVal = EXPORT_TREND(Mode, VariableName, Branch, Unit, StartTime, EndTime, StatusVariable,
LineSeparator, ColumnSeparator, MaxRetLines);
Argument Signification
VariableName Variable à partir de laquelle les données d'historiques sont collectées. Type
STR.
Exécution
Mode Mnémonique Action
1 GETRAW Génère une requête d'historiques retournant les valeurs brutes d'une
seule variable.
Retour : Voir Notes fonctionnelles ci-dessous.
SV_SCADABasic_fr 170
Syntaxe 2
IntVal = EXPORT_TREND(Mode, ListVariables, Branch, Unit, StartTime, EndTime, StatusVariable,
LineSeparator, ColumnSeparator, MaxValuesToProcess, MaxRetLines, SamplingRateInterval,
SamplingRateValue [,SynchroSecondValue, SynchroMinuteValue, SynchroHourValue, SynchroDayValue]);
Argument Signification
SamplingRateInterval Unités de taux d'échantillonnage comme un nombre. Type INTEGER.
0 = Secondes
1 = Minutes
2 = Heures
3 = Jours
4 = Semaines
5 = Mois
6 = Années
SamplingRateValue Valeur du taux d'échantillonnage. Type INTEGER.
SynchroSecondValue Equivalent aux propriétés Synchronisation Heure et Jour dans l'onglet
SynchroMinuteValue Echantillonnage de l'Export de données. Pour plus d'informations, voir l'aide sur
SynchroHourValue l'Analyse de données (L'Application Explorer.Analyse de données). Type
SynchroDayValue INTEGER.
Exécution
Mode Mnémonique Action
2 GETSAMPLE Génère une requête d'historiques retournant des valeurs
échantillonnées pour la liste des variables.
Retour : Voir Notes fonctionnelles ci-dessous.
Syntaxe 3
IntVal = EXPORT_TREND (Mode, ListVariables, Branch, Unit, StartTime, EndTime, StatusVariable,
LineSeparator, ColumnSeparator, MaxValuesToProcess, MaxRetLines, StatFlag);
Argument Signification
StatFlag Nombre, calculé en utilisant des valeurs de poids binaires, représentant les
statistiques à générer. Type DOUBLE.
0x0001 = Minimum
0x0002 = Maximum
0x0004 = Moyenne
0x0008 = Somme
0x0010 = Ecart-type
0x0020 = Première valeur
0x0040 = Dernière valeur
0x0080 = Compteur
0x0100 = Horodate de la valeur minimum
0x0200 = Horodate de la valeur maximum
0x0400 = Horodate de la première valeur
0x0800 = Horodate de la dernière valeur
0x1000 = Moyenne pondérée
Exécution
Mode Mnémonique Action
3 GETSTATISTIC Génère une requête d'historiques retournant des valeurs de
statistiques pour la liste des variables.
Retour : Voir Notes fonctionnelles ci-dessous.
Syntaxe 4
IntVal = EXPORT_TREND(Mode, ListVariables, Branch, Unit, StartTime, EndTime, StatusVariable,
LineSeparator, ColumnSeparator, MaxValuesToProcess, MaxRetLines, StatFlag, SamplingRateInterval,
SamplingRateValue [,SynchroSecondValue, SynchroMinuteValue, SynchroHourValue, SynchroDayValue]);
Voir Syntaxe 2 et 3 pour la description des arguments.
SV_SCADABasic_fr 171
Exécution
Mode Mnémonique Action
4 GETAGGREGATED Génère une requête d'historiques retournant des valeurs de
statistiques agrégées pour la liste des variables.
Retour : Voir Notes fonctionnelles ci-dessous.
Syntaxe 5
IntVal = EXPORT_TREND(Mode, BufferHandle);
Argument Signification
BufferHandle Handle du buffer précédemment créé en utilisant ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
5 READBUFFER Lit un buffer de données après un GETRAW, GETSAMPLED,
GETSTATISTIC ou GETAGGREGATED.
Le status de la variable doit être 0 (Terminé), 4 (Terminé mais le
nombre maximum de points a été atteint) ou 5 (Terminé mais le
nombre maximum de valeurs traitées a été atteint).
Retour : Nombre de lignes extraites ou si plus petit que 1 :
0 = Fin du buffer
-1 = Handle du buffer invalide
-2 = Aucune demande d'historiques précédente a été envoyée
-3 = Aucune réponse reçue
-4 = Rien à lire
-5 = Buffer trop petit
Syntaxe 6
IntVal = EXPORT_TREND(Mode);
Exécution
Mode Mnémonique Action
6 CANCEL Annule la requête d'historiques courante. Un CANCEL doit toujours
être suivi par un DISPOSE.
Retour : Toujours 0.
7 DISPOSE Libère le buffer interne utilisé dans une requête d'historiques. Doit
toujours être appelé avant de faire une nouvelle demande
d'historiques ou après un CANCEL.
Retour : Toujours 0.
Si vous utilisez une boucle comprenant READBUFFER, vous devez respecter la limite de 30
secondes autorisée pour une exécution SCADA Basic. Si vous dépassez ceci (ce qui est possible si
vous traitez de grandes quantités de données), l'exécution sera annulée avec une erreur.
SV_SCADABasic_fr 172
A la fin, le mode DISPOSE doit être exécuté pour libérer le buffer interne utilisé dans la requête
d'historiques.
Valeurs de retour
Toutes les valeurs de retour autres que zéro indiquent une erreur. Noter en particulier un retour de -30
qui indique qu'une requête précédente est toujours en cours et devra être intégrée dans le script.
Valeur Signification
0 La requête d'historiques a été envoyé avec succès.
-1 VariableName ou ListVariable est de type mauvais ou ne peut pas être lu.
-2 Branch est de type mauvais ou ne peut pas être lu.
-3 UnitName est de type mauvais ou ne peut pas être lu.
-4 Branch plus VariableName n'existent pas.
-5 La variable, ou une des variables, n'est pas configurée en tendance.
-6 StartTime est invalide ou indéfini.
-7 EndTime est invalide ou indéfini.
-8 StatusVariable n'est pas une chaîne ou la variable n'est pas une mesure.
-9 LineSeparator ne peut pas être lu.
-10 ColumnSeparator ne peut pas être lu.
-20 StatFlag n'est pas un double.
-21 SamplingRateInterval n'est pas un entier.
-22 SamplingRateValue n'est pas un entier.
-23 Le paramètre Synchronise n'est pas valide.
-30 Une requête d'historiques précédente est toujours en cours.
Exemples
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 173
EXPRESSION
Voir aussi Exemple
Importe dynamiquement des modèles d’expression ou des expressions sur variables à partir du fichier ou
d’un buffer.
Mode Mnémonique Syntaxe
0 IMPORT_FILE_TEMP 2
1 IMPORT_BUFFER_TEMP 1
2 IMPORT_FILE_ONVAR 2
3 IMPORT_BUFFER_ONVAR 1
4 RECALCULATION 3
Syntaxe 1
IntVal = EXPRESSION(Mode, Handle[, Overwrite]);
Type de retour : INTEGER
Argument Signification
Handle L'allocation du buffer en mémoire retournée par le verbe ALLOC_BUFFER or FILETOBUF. Type
LONG.
Overwrite Optionnel. Remplace le buffer précédent :
0 : Non (valeur par défaut)
1 : Oui
Exécution
Mode Mnémonique Action
1 IMPORT_BUFFER Import de modèles d'expression à partir du buffer spécifié.
_TEMP
Retour : 1 si OK, 0 sinon.
3 IMPORT_BUFFER Import d’expression sur variables à partir du buffer spécifié
_ONVAR
Retour :
>0 si OK et indique le nombre total d'expressions importées
0 si format inconnu ou buffer vide
-1 si la variable résultat d’une expression est déjà utilisée pour une autre
expression. Dans ce cas cette expression ne peut être importée
-2 si la variable résultat n’existe pas
-3 si l’expression est incorrecte
Syntaxe 2
IntVal = EXPRESSION(Mode, FileName[, Overwrite]);
Type de retour : INTEGER
Argument Signification
FileName Nom du fichier texte à lire dans le répertoire TP du projet ou dans le répertoire spécifié en
chemin absolu. Type STR.
Overwrite Optionnel. Remplace le fichier précédent :
0 : Non (valeur par défaut)
1 : Oui
Exécution
SV_SCADABasic_fr 174
Mode Mnémonique Action
1 IMPORT_FILE_T Import de modèles d'expression à partir du fichier spécifié.
EMP
Retour : 1 si OK, 0 sinon.
3 IMPORT_FILE_O Import d’expression sur variables à partir du fichier spécifié
NVAR
Retour :
>0 si OK et indique le nombre total d'expressions importées
0 si format inconnu ou fichier vide
-1 si la variable résultat d’une expression est déjà utilisée pour une autre
expression. Dans ce cas cette expression ne peut être importée
-2 si la variable résultat n’existe pas
-3 si l’expression est incorrecte
Syntaxe 3
IntVal = EXPRESSION(Mode [, ExpressionName]);
Type de retour : INTEGER
Argument Signification
ExpressionName Nom d'une expression. (Type STR)
Exécution
Mode Mnémonique Action
4 RECALCULATION Force un recalcul de l'expression nommée sur une variable. Si
le nom de l'expression n'est pas fournie, toutes les
expressions sont recalculées.
Retour : 1 si OK, -1 si l'expression n'est pas trouvée.
Ne peut être utilisé que sur des expressions dont le résultat est une variable. Ne peut pas être
utilisé pour des modèles d'expression.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 175
FCLOSE
Voir aussi Exemple
Ferme le fichier spécifié.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
IntVal = FCLOSE(Filename);
Argument Signification
Filename
Nom du fichier à fermer. Type STR.
Exemple
i1 = FCLOSE("histo.fil");
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 176
FCOPY
Syntaxe
IntVal = FCOPY (ExistingFileName, NewFileName[, AllowOverwrite]);
Argument Signification
ExistingFileName Nom et chemin optionnel du fichier à copier. Type STR.
NewFileName Nom et chemin optionnel du fichier à créer. Type STR.
AllowOverwrite Flag autorisant l'écrasement d'un fichier ayant le même nom.
0 = Ne pas autoriser.
1 = Autoriser.
Exécution
Copie le fichier spécifié. Le flag optionnel AllowOverwrite peut être utilisé afin de permettre à un fichier
existant d'être écrasé par un autre fichier ayant le même nom.
Retour :
1 - OK.
0 - Echec. Le fichier source n'existe pas ou est ouvert et verrouillé par une autre application.
-1 - Echec. Le fichier destination existe déjà et AllowOverwrite est positionné à 0.
-2 - Echec. Le fichier source est ouvert (instruction Fopen).
Plus d'informations
ExistingFileName et NewFileName peuvent être soit juste un nom de fichier, soit inclure un chemin
complet ou relatif. Si un chemin n'est pas inclus, l'exécution aura lieu dans le dossier TP du projet. Si un
chemin est inclus dans NewFileName et que le dossier n'existe pas, il sera alors créé.
Exemples
FileName Exemple
File name MyFile.dat
With full path C:\\temp\\MyFile.dat
With relative path ..\\..\\Files\\MyFile.dat
SV_SCADABasic_fr 177
FEOF
Voir aussi
Détermine si la fin de fichier a été atteinte.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
IntVal = FEOF(Filename);
Argument Signification
Filename
Nom du fichier. Type STR.
Exemple
Une instruction structure de contrôle de type DO{......}WHILE(CONDITION) n'est pas disponible dans le
SCADA BASIC, toutefois, l'exemple suivant remplit la même fonctionnalité :
eof = 0;
WHILE(eof == 0)
L = FGETS(filename,80);
eof = FEOF(filename);
IF(eof == 0) THEN
PRINT(L);
END IF
WEND
SV_SCADABasic_fr 178
FGETC
Voir aussi
Lit un caractère dans un fichier.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
StrVal = FGETC(Filename);
Argument Signification
Filename
Nom du fichier dans lequel le caractère doit être lu. Type STR.
Exemple
str1 = FGETC("histo.fil");
SV_SCADABasic_fr 179
FGETS
Voir aussi
Lit une chaîne de caractères dans un fichier.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
StrVal = FGETS(Filename, Num);
Type de retour : STR
Argument Signification
Filename Nom du fichier dans lequel la chaîne de caractères doit être lue. Type STR.
Num Nombre de caractères à lire. Tout type numérique.
Exécution
StrVal Lit le nombre de caractères à partir du caractère pointé dans le fichier et avance le pointeur
du nombre d'octets.
Si la fin du fichier est atteinte avant que le nombre de caractères soit retourné, ou qu'un caractère
"Retour à la ligne" soit trouvé, la chaîne de retour sera tronqué en conséquence. Le pointeur de
fichier avance du nombre de caractères lus.
Exemple
str1 = FGETS("HELP.TXT",20);
SV_SCADABasic_fr 180
FILETOBUF
Voir aussi
Crée un buffer à partir d'un fichier.
Syntaxe
1
2
Syntaxe 1
LongVal = FILETOBUF(Filename);
Argument Signification
Filename Nom du fichier a partir duquel le buffer est créé. Type STR.
Syntaxe 2
LongVal = FILETOBUF(Filename, Size);
Argument Signification
Filename Nom du fichier a partir duquel le buffer est créé. Type STR.
Size Taille du buffer à créer. Tout type numérique.
Il n'est pas nécessaire d'utiliser l'instruction ALLOC_BUFFER car l'espace mémoire buffer est
automatiquement alloué.
Exemple
'This program uses the file util.txt in the project TP folder
SUB Main()
DIM StrFilename as Str;
DIM strLine as Str;
DIM lngBuffer as Long;
SV_SCADABasic_fr 181
Print(strLine);
END SUB
SV_SCADABasic_fr 182
FMOVE
Syntaxe
IntVal = FMOVE (ExistingFileName, NewFileName[, AllowOverwrite]);
Argument Signification
ExistingFileName Nom et chemin optionnel du fichier source. Type STR.
NewFileName Nom et chemin optionnel du fichier destination. Type STR.
AllowOverwrite Flag autorisant l'écrasement d'un fichier ayant le même nom.
0 = Ne pas autoriser.
1 = Autoriser.
Exécution
Déplace le fichier spécifié. Le flag optionnel AllowOverwrite peut être utilisé afin de permettre à un fichier
existant d'être écrasé par un autre fichier ayant le même nom.
Retour :
1 - OK.
0 - Echec. Le fichier source n'existe pas ou est ouvert et verrouillé par une autre application.
-1 - Echec. Le fichier destination existe déjà et AllowOverwrite est positionné à 0.
-2 - Echec. Le fichier source est déjà ouvert par SCADA Basic (instruction Fopen).
Plus d'informations
ExistingFileName et NewFileName peuvent être soit juste un nom de fichier, soit inclure un chemin
complet ou relatif. Si un chemin n'est pas inclus, l'exécution aura lieu dans le dossier TP du projet. Si un
chemin est inclus dans NewFileName et que le dossier n'existe pas, il sera alors créé.
Exemples
FileName Exemple
File name MyFile.dat
With full path C:\\temp\\MyFile.dat
With relative path ..\\..\\Files\\MyFile.dat
SV_SCADABasic_fr 183
FOPEN
Voir aussi Exemple
Ouvre le fichier spécifié selon le mode d'accès spécifié.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
IntVal = FOPEN(Filename, Access);
Type de retour : INTEGER
Argument Signification
Filename Nom du fichier à ouvrir. Type STR.
Access Mode d'accès pour la fonction d'ouverture. Type STR.
r Ouvre un fichier texte pour lecture.
w Crée un fichier texte en écriture ; écrase le contenu précédent si le fichier existait.
a Ouvre ou crée un fichier texte et se positionne en écriture à la fin du fichier.
r+ Ouvre un fichier texte en mode lecture et écriture.
w+ Crée un fichier texte et l'ouvre en mode lecture et écriture ; écrase le contenu précédent
si le fichier existait.
a+ Ouvre un fichier existant en mode lecture et écriture et se positionne à la fin du fichier.
b Ouvre un fichier en mode binaire.
Exécution
Ouverture du fichier.
Retour : 1 si OK, 0 sinon.
Une ouverture non réussie peut être fatale si l'on tente par la suite d'exécuter des lectures sur le
fichier.
Lorsque le fichier est en mode texte, les caractères saut de ligne (LF) du buffer sont transformés en
CRLF sur le fichier.
Exemple
'write file histo.fil in the TP folder
i1 = FOPEN("histo.fil","w+");
'read file in the C:\Test folder
i1 = FOPEN("C:\\TEST\\histo.fil","r");
SV_SCADABasic_fr 184
FOR ... NEXT
Voir aussi
Répète un groupe d'instructions un certain nombre de fois.
Syntaxe
FOR(expression1;expression2; [expression3])
[block of instructions]
NEXT
Type de retour : Aucun
Exécution
Expression1 est évaluée lorsque l'exécution de la boucle débute. Il représente l'initialisation de la boucle.
Expression2 est évaluée (c'est le test de la boucle). Si sa valeur vraie, le bloc d'instruction est exécuté
puis expression3 est évaluée.
Expression3 représente la ré-initialisation ou la mise à jour de la boucle.
Exemple
SUB Main()
'Declare
DIM i as Integer;
SV_SCADABasic_fr 185
FORMAT
Voir aussi Exemple
Représente sous forme de chaîne une expression selon le format passé en paramètre.
Syntaxe
StrVal = FORMAT("xxxxx%FormatString yyyyy", Variable);
Type de retour : STR
Argument Signification
xxxxx Chaîne de caractères apparaissant avant la valeur formatée dans le champ retourné.
Facultatif.
yyyyy Chaîne de caractères apparaissant après la valeur formatée dans le champ retourné.
Facultatif.
FormatStrin Chaîne de caractères du paramètre qui détermine le format et la position de la valeur insérée.
g Cela commence avec le caractère % et contient Width, Precision et Modifier.
Width Nombre spécifiant la longueur du champ retourné (nombre de caractères). Si celui-ci est
précédé d'un signe moins, les caractères seront justifiés à gauche, autrement ils seront
justifiés à droite.
Precision Nombre indiquant soit le nombre maximum de caractères à retourner pour une chaîne, soit le
nombre de chiffres pour un INTEGER, soit le nombre de chiffres après le point décimal pour
un nombre flottant. La précision est toujours précédée par un point.
Modifier Caractère spécifiant le type de retour de la variable. Type STR.
Variable Nom de la variable à formater.
SV_SCADABasic_fr 186
la précision; sinon, équivaut à %f. Les zéros ou le point décimal de
terminaison ne sont pas retournés.
Exemple
Pour un exemple d'affichage de différentes chaînes de caractères par la commande FORMAT, sélectionner
le lien Exemple ci-dessus.
SV_SCADABasic_fr 187
FORMULA
Voir aussi Exemple
Activation modification de formules de calcul.
Mode Mnémonique Syntaxe
1 ADD 1
2 ENABLE 2
3 DISABLE 2
5 DEL 2
6 DELALL 3
Syntaxe 1
IntVal = FORMULA(Mode, handle);
Argument Signification
handle Pointe sur le buffer dans lequel tous les arguments nécessaires pour la formule sont
spécifiés. Type LONG.
Syntaxe 2
IntVal = FORMULA(Mode, label, branch);
Type de retour : INTEGER
Exécution
Mode Action
2 Rend active la formule identifiée par "label" et "branch". La portée de ce verbe s'étend à
toutes les formules paramètrées.
Retour : 1 si la formule existe et la syntaxe correcte, 0 sinon.
3 Rend inactive la formule identifiée par "label" et "branch". La portée de ce verbe s'étend à
toutes les formules paramètrées.
Retour : 1 si la formule existe et la syntaxe correcte, 0 sinon.
5 Suppression de la formule temporaire identifiée par "label" et "branch".
Retour : 1 si elle existe, 0 sinon.
Syntaxe 3
IntVal = FORMULA(Mode [, Class] );
Argument Signification
Class Identifie le type (classe) de formule configurée.
SV_SCADABasic_fr 188
Type de retour : INTEGER
Exécution
Mode Action
6 Suppression de toutes les formules temporaires existantes. Si type est renseigné :
suppression de toutes les formules temporaires existantes du type indiqué seulement.
Retour : 1 si elle(s) existe(nt) et sont correctement supprimées, 0 sinon.
Exemple
SUB main()
DIM hdl as LONG;
hdl = filetobuf("ftest.dat"); 'formula file
print(formula("ADD",hdl));
free_buffer (hdl);
END SUB
sub actif()
formula("ENABLE","formula test1 tempo","");
END SUB
sub noactif()
formula("DISABLE","formula test1","");
END SUB
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 189
FPUTC
Voir aussi Exemple
Ecrit un caractère dans un fichier.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
IntVal = FPUTC(Filename, Char);
Type de retour : INTEGER
Argument Signification
Filename Nom du fichier dans lequel le caractère doit être écrit. Type STR.
Char Caractère à écrire. Type STR
Exécution
Retour : 1 si OK, 0 sinon.
Exemple
err = FPUTC("histo.fil","A");
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 190
FPUTS
voir aussi Exemple
Ecrit une chaîne de caractères dans un fichier.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
IntVal = FPUTS(Filename, Chars);
Type de retour : INTEGER
Argument Signification
Filename Nom du fichier dans lequel la chaîne de caractères doit être écrite. Type STR.
Chars Chaîne de caractères à écrire. Type STR.
Exécution
Retour : 1 si OK, 0 sinon.
Exemple
i1 = FPUTS("histo.fil",str1);
i1 = FPUTS("histo.fil",CHR(10)); 'Line feed
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 191
FREAD
Voir aussi
Lit un nombre n de données de même type dans un fichier et les range dans un buffer mémoire.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
LongVal = FREAD(Filename, Handle, Size, N);
Type de retour : LONG
Argument Signification
Filename Nom du fichier dans lequel les données sont écrites. Type STR.
Handle Localisation du buffer en mémoire. Type LONG.
Size Taille en octets. Tout type numérique.
N Nombre de données à lire. Tout type numérique.
Exécution
Les données sont stockées dans un buffer précédemment alloué par ALLOC_BUFFER qui fournit en retour
le handle.
Retour : Nombre de données lues.
Exemple
i1 = FREAD("histo.fil",handle,4,20);
'------ reads 20 data items of 4 bytes
SV_SCADABasic_fr 192
FREE_BUFFER
Voir aussi
Libère une zone mémoire réservée par un ALLOC_BUFFER.
Syntaxe
FREE_BUFFER(Handle);
Type de retour : aucun
Argument Signification
Handle Localisation du buffer mémoire retourné par ALLOC_BUFFER.
Exécution
Il est conseillé de libérer les buffers qui ne sont plus utilisés afin de restituer la mémoire au système.
Exemple
SUB Main()
'Declare the return code
DIM lngPointer as long;
DIM intValue as integer;
intValue = 50;
'intValue <=> intValue*4 bytes
lngPointer = ALLOC_BUFFER (intvalue);
PRINT("pointer =", lngPointer );
'The memory area from ALLOC_BUFFER must always be released after use
FREE_BUFFER (lngPointer);
END SUB
SV_SCADABasic_fr 193
FSEEK
Voir aussi Exemple
Déplace le pointeur d'un fichier vers une nouvelle position.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
IntVal = FSEEK(Filename, Offset, Origin);
Type de retour : INTEGER
Argument Signification
Filename Nom du fichier dans lequel le pointeur sera déplacé. Type STR.
Offset L'offset en octets dans lequel le pointeur sera déplacé. Tout type numérique.
Origin Origin doit avoir une des valeurs suivantes : 0 spécifie le début du fichier, 1 la position
courante du pointeur et 2 la fin du fichier.
Exécution
La prochaine opération sur le fichier se fera à partir de la nouvelle position.
Retour : 1 si OK, 0 sinon.
Exemple
i1 = FSEEK("histo.fil",20,0);
'----- move the pointer to the 20th byte from the start
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 194
FSTAT
Voir aussi
Fournit des informations de taille et de date sur un fichier.
Syntaxe
IntVal = FSTAT(Filename, Handle);
The return type is INTEGER.
Argument Signification
Filename Nom du fichier. Type STR.
Handle Localisation du buffer mémoire dans lequel la donnée est retournée. Type LONG.
Exécution
Les statistiques de fichier sont retournées dans un buffer mémoire précédemment alloué par
ALLOC_BUFFER ou par FILETOBUF. La taille du fichier se trouve à la position 0 (début du buffer) et la date
à partir de la position 4. La taille minimum du buffer est 22. Le fichier peut être ouvert ou fermé.
Retour : 1 si OK, 0 sinon.
Exemple
DIM bufh as LONG; 'buffer handle
CONST SIZE=0; 'offset to read the size
CONST MODIF=4; 'offset to read the date
CONST ALLOC=22; '22 is the minimum required
bufh=ALLOC_BUFFER(ALLOC);
IF(FSTAT("file.txt",bufh))==1) THEN
PRINT("Size in bytes:",LGET_BUFFER(bufh,SIZE));
PRINT("Date of last modification:",CGET_BUFFER (bufh,MODIF,18));
ENDIF
SV_SCADABasic_fr 195
FTP
Voir aussi Exemple
Copie un fichier vers ou depuis un serveur de transfert de fichier (site FTP).
Mode Mnémonique Syntaxe
1 DOWNLOAD 1
2 UPLOAD 2
Syntaxe 1
FTP("DOWNLOAD", FTPfilesource, Filedestination [, HMIdisplay [, UserName, Password [,
VariableName]]);
Argument Signification
FTPfilesource Chemin complet du fichier à télécharger, par exemple "ftp:\\server\path”. Type
STR.
Filedestination Chemin de destination locale d'enregistrement du fichier. Il peut être absolu ou
relatif depuis le dossier TP du projet, mais pas le chemin d'un site FTP. Type
STR.
HMIdisplay Affichage de la barre de progression :
0: Aucune.
1: Boîte de dialogue sans un bouton Annuler (par défaut).
2: Boîte de dialogue avec un bouton Annuler.
Type: INTEGER.
UserName Nom de l'utilisateur du compte utilisé pour la connexion au serveur FTP. Si omis,
une connexion anonyme sera utilisée. Type STR.
Password Mot de passe du compte utilisé pour la connexion au serveur FTP. Type STR.
VariableName Nom d'une variable mesure utilisée pour fournir une indication de status :
0: En attente.
1: Terminé.
2: Annulé par l'utilisateur.
3: Le nom du serveur distant destinataire ne peut pas être trouvé.
4: Login ou mot de passe incorrect.
7: Transfert annulé par erreur.
Type STR.
Si la variable n'exite pas, le transfert s'effectue, mais aucun status ne sera retourné. Un message
d'information s'affichera dans l'observateur d'événement.
Exécution
Mode Mnémonique Action
1 DOWNLOAD Copie un fichier depuis un serveur FTP vers une destination locale.
La valeur de retour est la suivante :
0: Aucun erreur.
-1: Premier argument manquant.
-2: Second argument manquant.
-3: Troisième argument hors limite.
Syntaxe 2
FTP("UPLOAD", Filesource, FTPfiledestination [, HMIdisplay [, UserName, Password [, VariableName]]);
SV_SCADABasic_fr 196
Argument Signification
Filesource Chemin complet du fichier à télécharger. Il peut être absolu ou relatif depuis le
dossier TP du projet, mais pas le chemin d'un site FTP. Type STR.
FTPfiledestination Chemin du FTP de destination. Type STR.
HMIdisplay Affichage de la barre de progression :
0: Aucune.
1: Boîte de dialogue sans bouton Annuler (par défaut).
2: Boîte de dialogue avec bouton Annuler.
Type: INTEGER.
UserName Nom de l'utilisateur du compte utilisé pour la connexion au serveur FTP. Si
omis, une connexion anonyme sera utilisée. Type STR.
Password Mot de passe du compte utilisé pour la connexion au serveur FTP. Type STR.
VariableName Nom d'une variable mesure utilisée pour fournir une indication de status :
0: En attente.
1: Terminé.
2: Annulé par l'utilisateur.
3: Le nom du serveur distant destinataire ne peut pas être trouvé.
4: Login ou mot de passe incorrect.
5: Le fichier source à télécharger n'existe pas.
6: Connecté mais permission refusée pour téléchargement.
7: Transfert annulé par erreur.
Type STR.
Si la variable n'exite pas, le transfert s'effectue, mais aucun status ne sera retourné. Un message
d'information s'affichera dans l'observateur d'événement.
Exécution
Mode Mnémonique Action
1 UPLOAD Copie un fichier enregistré localement vers un serveur FTP.
La valeur de retour est la suivante :
0: Aucun erreur.
-1: Premier argument manquant.
-2: Second argument manquant.
-3: Troisième argument hors limite.
SV_SCADABasic_fr 197
Exemple
Ce programme copie un fichier depuis un site FTP et ensuite le recopie vers un site FTP.
Sub Down ()
Dim cFTPsource As Str, cLocalDestn As Str;
Dim cName As Str, cPass As Str, cStatusVar As Str;
Dim iReturn As Integer;
cFTPsource = "ftp://ftp.xxxxxxx.com/test.txt";
cLocalDestn = "test.txt";
cName = "xyz123";
cPass = "abc890";
cStatusVar = "FTPSTATUS";
Sub Up ()
Dim cFTPdestn As Str, cLocalSource As Str;
Dim cName As Str, cPass As Str, cStatusVar As Str;
Dim iReturn As Integer;
cFTPdestn = "ftp://ftp.xxxxxxx.com/test.txt";
cLocalSource = "test.txt";
cName = "xyz123";
cPass = "abc890";
cStatusVar = "FTPSTATUS";
SV_SCADABasic_fr 198
FWRITE
Voir aussi
Ecrit un nombre n de données de même type dans un fichier à partir de données stockées dans un buffer
précédemment alloué par ALLOC_BUFFER.
Avant d'utiliser une des instructions de gestion de fichiers, exceptés FSTAT, RENAME, UNLINK,
FILETOBUF ou BUFTOFILE, vous devez ouvrir en premier lieu le fichier en utilisant l'instruction
FOPEN.
A la fin de chaque programme utilisant une instruction FOPEN vous devez exécuter l’instruction
FCLOSE.
Syntaxe
LongVal = FWRITE(Filename, Handle, Size, N);
Type de retour : LONG
Argument Signification
Filename Nom du fichier dans lequel la donnée est écrite. Type STR.
Handle Localisation du mémoire buffer dans lequel la donnée est lue. Type LONG
Size Taille en octets pour chaque donnée. Any numeric type.
N Nombre de données à écrire. Any numeric type.
Exécution
Les N données de même type sont écrites dans le fichier. Le buffer doit être précédemment alloué par
ALLOC_BUFFER, qui fournira également le handle.
Retour : Nombre de données écrites.
Exemple
i1 = FWRITE("histo.fil",handle,4,20);
'------ writes 20 items of 4 bytes each
SV_SCADABasic_fr 199
GETARG
Voir aussi Exemple
Récupération des paramètres du contexte d'appel d'une fonction.
Mode Mnémonique Syntaxe Retour
0 MAINBRANCH 1 STR
1 ARG1 1 STR
2 ARG2 1 STR
3 ARG3 1 STR
4 ARG4 1 STR
5 ARG5 1 STR
6 ARG6 1 STR
7 ARG7 1 STR
8 ARG8 1 STR
10 SOURCE 1 STR
11 PROGRAM 1 STR
12 BRANCH 1 STR
13 FUNCTION 1 STR
14 WINDOW 1 STR
15 WBRANCH 1 STR
16 IDENTIFIER 1 STR
17 VARNAME 1 STR
18 VARVALUE 1 SINGLE
19 VARSTATUS 1 INTEGE
R
20 KEYTYPE 1 STR
21 KEYCODE 1 INTEGE
R
22 CRONTYPE 1 INTEGE
R
23 CRONDATE 1 STR
24 CRONTIME 1 STR
25 ARG9 1 STR
26 ARG10 1 STR
27 ARG11 1 STR
28 ARG12 1 STR
29 WEB 1 INTEGE
R
Syntaxe 1
RtnVal = GETARG(Mode);
Voir tableau ci-dessus pour les types de retour.
Exécution
Mode Action
SV_SCADABasic_fr 200
0 Renvoie la branche d'instanciation du programme qui contient la fonction d'où l'appel à
GETARG est effectué, c'est-à-dire la branche avec laquelle le programme a été chargé.
1-8 Renvoie respectivement du 1er au 8ème champ (séparés par des virgules) contenu dans
le paramètre d'appel.
25-28 Renvoient respectivement du 9ème au 12ème champ (séparés par des virgules) contenu
dans le paramètre d'appel qui se trouve dans :
CYCLIC
EVENT
CRONTAB
KEY
EDITOR.Animation.Envoi.Programme
Action liée à une alarme.
Sélection ou validation d'une animation table par SELECTOR.
10 Renvoie une chaîne identifiant l'origine de l'appel de la fonction :
CYCLIC
EVENT
CRONTAB
KEY
MIMIC
ACTIONS
ARRAY_SELEC
ARRAY_INPUT
SCRIPT
11 Renvoie le nom du programme courant.
12 Renvoie la branche passée en argument à la fonction courante.
13 Renvoie le nom de la fonction courante.
14 Renvoie le nom de la fenêtre dans le cas d'une animation de type forçage programme ou
d'une action associée à une alarme ou à une animation tableau.
15 Renvoie la branche de la fenêtre dans le cas d'une animation de type forçage programme
ou d'une action associée à une alarme ou à une animation tableau.
16 Renvoie le repère de l'animation de type forçage programme ou d'une action associée à
une alarme ou à une animation tableau.
17 Renvoie le nom de la variable qui a changé de valeur dans le cas d'un EVENT.
18 Renvoie la nouvelle valeur de la variable qui a changé dans le cas d’un EVENT.
19 Renvoie la région d'appel dans le cas d'une animation forçage programme.
20 Renvoie le type de programmation de touche "Down/Shift/Control" dans le cas d'un KEY.
21 Renvoie le code de la touche enfoncée dans la cas d'un KEY.
22 Renvoie le type de programmation horaire dans le cas d'un CRONTAB :
ONCE
EACH_HOUR
EACH_DAY
EACH_WEEK
EACH_MONTH
SV_SCADABasic_fr 201
23 Renvoie la date ou le jour du déclenchement horaire selon le type dans le cas d'un
CRONTAB.
24 Renvoie l'heure ou la minute du déclenchement horaire selon le type dans le cas d'un
CRONTAB
29 Renvoie un flag pour indiquer l'accès :
0 = Utilisateur local
différent de zéro = Client WebVue (utilisant une animation Forçage Programme).
Exemple
Pour une exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 202
GETPROJECTDIR
Voir aussi
Renvoie le chemin du projet courant.
Syntaxe
StrVal = GETPROJECTDIR();
Type de retour : STR
Exécution
Le chemin d'accès au projet courant est retourné.
Exemple
SUB Main()
'Declare
DIM strPath as Str;
strPath = GETPROJECTDIR();
Print("The project path is: ",strPath);
END SUB
SV_SCADABasic_fr 203
GETTREE
Voir aussi
Fournit la branche courante.
Syntaxe
StrVal = GETTREE();
Type de retour : STR
Exécution
La branche courante utilisée est celle passée en argument à la fonction appelée. Elle est propagée en
descendant vers les fonctions appelées.
'A function that can only be used after TREE
SUB Main()
'Declare
DIM strBranch as Str;
DIM strTree as Str;
strBranche = "BRANCHE01";
TREE (strBranch);
strTree = GETTREE();
Print("The branch is: ",strTree);
propagationGetTree();
END SUB
SUB propagationGetTree()
DIM strTree as Str;
strTree = GETTREE();
Print("The branch is: ",strTree);
END SUB
SV_SCADABasic_fr 204
GROUPALARM
Voir aussi
Démarre ou arrête une synthèse sélectionnée ou toutes les synthèses.
L'instruction est exécutée sur le poste qui produit a synthèse d'alarmes.
Syntaxe
IntVal = GROUPALARM(Mode, Name);
Type de retour : INTEGER.
Argument Signification
Name Nom de la synthèse. Type STR.
Utiliser '*' pour indiquer toutes les synthèses.
Exécution
Mode Mnemonique Action
1 START Démarre toutes les alarmes dans la(es) synthèse(s).
Retour: 1 si OK, 0 sinon.
2 STOP Arrête toutes les alarmes dans la(es) synthèse(s).
Return: 1 si OK, else 0.
SV_SCADABasic_fr 205
HARDCOPY
Voir aussi Exemple
Impression d'écran sur l'imprimante par défaut ou annulation des tâches d'impression.
Mode Mnémonique Syntaxe
1 SCREEN 1
2 OPTION 1
4 PREVIOUSWIND 1
OW
6 DELALL 1
7 DESKTOP 1
Syntaxe 1
IVAL = HARDCOPY (Mode);
Exécution
Mode Mnémonique Action
1 SCREEN Impression de la totalité de l'écran sur l'imprimante par défaut.
4 PREVIOUSWINDOW Impression de la fenêtre qui a précédemment reçu le focus sur
l'imprimante par défaut. La fenêtre doit être ouverte.
6 DELALL Annulation de toutes les tâches d'impression du spooler de l'imprimante
par défaut.
Retour : 1 si OK, 0 sinon.
7 DESKTOP Impression de la totalité du bureau lors de l'utilisation d'un système multi-
régions/multi-écrans.
Syntaxe 2
IVAL = HARDCOPY (Mode, Sub-mode, Value);
Argument Meaning
Sub-mode Impression suivant le paramètre Value.
1 Taille:
1 Ajuster à la page.
2 Utiliser la page entière.
3 Utiliser les échelles.
2 Appliquer l'échelle de l'axe des X.
3 Appliquer l'échelle de l'axe des Y.
4 Imprimer via le spooler nommé.
5 Appliquer nom à la boîte de dialogue de l'imprimante.
6 Message.
7 Sortie.
8 Texte pourcentage, de 0 à 100.
9 Texte pour le bouton Annuler.
Value Utilisé dans les actions d'impression (voir ci-dessus).
Exécution
SV_SCADABasic_fr 206
Mode Mnémonique Action
2 OPTION Impression de la totalité de l'écran sur l'imprimante par défaut selon Sub-
mode
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 207
HEX
Voir aussi
Renvoie une chaîne représentant en hexa un nombre passé en base 10.
Syntaxe
StrVal = HEX(Num);
Type de retour : STR
Argument Signification
Num Le nombre à convertir. Tout type numérique.
Exécution
Retour : Chaîne qui représente, en hexa, le nombre passé en base 10.
Exemple
SUB Main()
DIM intNumBase10 as Integer;
DIM strNumberHex as Str;
intNumBase10 = 14;
strNumberHex = Hex (intNumBase10);
Print(intNumBase10, " to base 10 is equivalent to ",strNumberHex, " to base 16");
'Displays "14 to base 10 is equivalent to E to base 16"
END SUB
SV_SCADABasic_fr 208
HISTORY
Voir aussi Exemple
Gestion des historiques. Ce verbe permet d'extraire et d'importer des valeurs selon un format spécifié afin
de renseigner les historiques de tendance.
Mode Mnémonique Syntaxe
1 GETTREND 1
2 IMPORTTREND 2
3 UNIT 3, 4, 5, 11, 12
4 TREND 6, 7, 8, 9, 10, 13
Syntaxe 1
LVAL = HISTORY (Mode, VarName, TimeStart, TimeEnd, FileName [,FileMode[, Format[, StateVar [,
NbVar]]]]);
Argument Signification
VarName Variable en tendance sur laquelle l'extraction doit être effectuée. Type STR.
TimeStart Horodate de début de l'extraction. Type DOUBLE. (Voir l'instruction DATETIMEVALUE
pour la conversion des horodates).
TimeEnd Horodate de fin de l'extraction. Type DOUBLE. (Voir l'instruction DATETIMEVALUE pour
la conversion des horodates).
FileName Nom du fichier résultat de l'extraction de la variable en tendance. Type STR.
FileMode Type d'ouverture du fichier résultat de l'extraction lorsque ce dernier existe déjà. La
valeur 0 permet d'ouvrir le fichier en effaçant son précédant contenu (valeur par
défaut du paramètre). La valeur 1 permet d'ouvrir le fichier en se positionnant à la fin
(mode ajout).
Format Format des lignes ajoutées dans le fichier de l'extraction. Les chaînes de caractères
suivantes sont utilisables dans le format :
Elément Description
###Y année sur 4 chiffres (exemple : 1994).
#Y année sur 2 chiffres (exemple : 94).
#M mois (01 à 12).
#D jour (01 à 31).
#h heures (00 à 23).
#m minutes (00 à 59).
#s secondes (00 à 59).
##l millisecondes (000 à 999).
#V valeur de la variable.
Si Format est omis ou égal à une chaîne de caractères vide "", le format par défaut est
"#Y#M#D#h#m#s##l,#V".
StateVar Variable de la base de données de type état. Cet état est initialisé à 0 puis est mis à 1
lorsque l'extraction est terminée. Ceci permet de déclencher l'exécution d'une fonction
à la fin d'une extraction (voir l'instruction EVENT).
Ce paramètre est facultatif et ignoré s'il est égal à une chaîne de caractères vide "".
NbVar Variable de la base de données de type mesure. Cette variable contient le nombre de
valeurs extraites lorsque l'extraction s'est terminée correctement.
Une valeur négative indique une erreur lors de l'extraction. Ce paramètre est facultatif
SV_SCADABasic_fr 209
et ignoré s'il est égal à une chaîne de caractères vide "". Type STR.
Syntaxe 2
LVAL = HISTORY (Mode, FileName [, StateVar [, NbVar [, FORMAT [,VARNAME]]]]);
Argument Signification
FileName Nom du fichier résultat de l'extraction de la variable en tendance. Type STR.
StateVar Variable de la base de données de type état. Cet état est initialisé à 0 puis est mis à 1
lorsque l'extraction est terminée. Ceci permet de déclencher l'exécution d'une fonction à la
fin d'une extraction (voir l'instruction EVENT).
Ce paramètre est facultatif et ignoré s'il est égal à une chaîne de caractères vide "".
NbVar Variable de la base de données de type mesure. Cette variable contient le nombre de valeurs
extraites lorsque l'extraction s'est terminée correctement.
Une valeur négative indique une erreur lors de l'extraction. Ce paramètre est facultatif et
ignoré s'il est égal à une chaîne de caractères vide "". Type STR.
FORMAT Format par défaut des points tendances stockés dans le fichier d'importation (voir la syntaxe
du mot clé FORMAT). Ce paramètre est facultatif et ignoré s'il est égal à une chaîne de
caractères vide "". Type STR.
VARNAME Identifiant de variable par défaut des points tendances stockés dans le fichier d'importation
(voir la syntaxe des mots clés VARNAME et VARTAGNAME). Ce paramètre est facultatif et
ignoré s'il est égal à une chaîne de caractères vide "". Type STR.
SV_SCADABasic_fr 210
4 MM/DD/YYYY:hh:mm:ss[:ms]
5 DD/MM/YYYY:hh:mm:ss[:ms]
6 YYYY/MM/DD:hh:mm:ss[:ms]
YYYY est l'année sur 4 chiffres.
YY est l'année sur 2 chiffres.
DD est le jour (1 à 31).
MM est le mois (1 à 12).
hh est l'heure (0 à 23).
mm sont les minutes (0 à 59).
ss sont les secondes (0 à 59).
ms sont les millisecondes (0 à 999).
Syntaxe de la chaîne VARNAME
La chaîne VARNAME peut être utilisée soit comme partie de l'instruction HISTORY, ou bien comme une
ligne dans le fichier d'importation lui-même. La syntaxe est la suivante :
VARNAME,Varname
Argument Signification
VarName Nom de la variable de la base de données pour laquelle les données historiques sont
importées.
Format du fichier Import
Le fichier import doit être en format ASCII avec au début de chaque ligne, un commentaire, un mot-clé ou
une donnée.
Toutes les lignes précédées par un guillement simple (') ou bien par un dièse (#) sont traitées comme
commentaires et ne sont pas exécutées.
Toutes lignes commençant par FORMAT sont traitées comme une chaîne définissant le format
d'horodatage (voir ci-dessus).
Toutes lignes commençant par VARNAME sont traitées comme une définition de variable (voir ci-dessus).
Toutes les autres lignes sont traitées comme données et doivent être conformes à la syntaxe suivante :
TimeStamp,Value[,Varname]
Données Signification
TimeStamp Horodate dans le format sélectionné.
Value Valeur de la variable correspondant à l'horodate.
VarName Nom de la variable de la base de données concernée.
Exécution
Mode Action
2 Importation de données historiques pour une variablée définie en tendance.
L'importation de tendances est exclusivement réservée à des variables déclarées en
tendance et pour lesquelles la case "Importation des données par fichier" est cochée.
Retour : différent de 0 si OK, 0 si erreur.
Syntaxe 3
LVAL = HISTORY (Mode, UnitName, Operation);
Argument Signification
UnitName Nom de l'unité d'archivage. Type STR.
Operation Chaîne représentant le type d'opération. Type STR.
SV_SCADABasic_fr 211
Type de retour : LONG
Exécution
Mode Action
3 Manipulation de l'unité d'archivage Nom_Unité. La chaîne de caractères contenue dans le
paramètre Operation détermine l'action :
Flush Ecriture de tous les buffers sur le disque (pour tous les types d'unité).
Retour : différent de 0 si OK, 0 si erreur.
Next Changement de numéro de fichier (pour unités propriétaires et libres).
Retour : différent de 0 si OK, 0 si erreur.
Enable Autorise l'archivage. (pour les unités libres uniquement).
Retour : différent de 0 si OK, 0 si erreur.
Disable Interdit l'archivage. (pour les unités libres uniquement).
Retour : différent de 0 si OK, 0 si erreur.
Isreadonly Teste le status lecture seule de l'unité.
Retour : -1 si erreur, 1 si en lecture seule, 0 sinon.
Lock Inhibition temporaire.
Retour : 0 si erreur, tout autre nombre si OK.
Unlock Fin de l'inhibition temporaire.
Retour : 0 si erreur, tout autre nombre si OK.
Syntaxe 4
LVAL = HISTORY (Mode, UnitName, "READONLY", Flag);
Argument Signification
UnitName Nom de l'unité d'archivage. Type STR.
Flag Modification de la propriété lecture seulement de l'unité d'archivage. Tout type numérique.
Syntaxe 5
LVAL = HISTORY (Mode, UnitName, Operation [, StateVar, Flag]);
Argument Signification
UnitName Nom de l'unité d'archivage. Type STR.
Operation Chaîne représentant le type d'opération. Type STR.
StateVar Nom de la variable état. Type STR.
Flag Un flag (0 ou 1)
SV_SCADABasic_fr 212
3 Manipulation de l'unité d'archivage Nom_Unité. La chaîne contenue dans le paramètre
"Operation" détermine l'action. Voir la syntaxe 3 pour plus de détails.
La variable état StateVar sera positionnée à la valeur du flag lorsque l'opération est complète.
Syntaxe 6
LVAL = HISTORY (Mode, "SETPRIMARY", VarName, UnitName);
Argument Signification
VarName Nom de la variable en tendance historisée sur plus d'une unité d'archivage. Type STR.
UnitName Nom d'unité d'archivage secondaire sur laquelle est historisée la tendance. Type STR.
Ce changement est temporaire et n'est pas sauvegardé dans la configuration lors de l'arrêt du
Superviseur.
Syntaxe 7
LVAL = HISTORY (Mode, "CLEARPRIMARY", VarName;
Argument Signification
VarName Nom de la variable en tendance. Type STR.
Syntaxe 8
LVAL = HISTORY (Mode, "SETPRIMARY_UNIT", PrimaryUnit, SecondaryUnit);
Argument Signification
PrimaryUnit Nom de l'unité principale. Type STR.
SecondaryU Nom d'unité d’archivage secondaire. Type STR.
nit
SV_SCADABasic_fr 213
Ce changement est temporaire et n'est pas sauvegardé dans la configuration lors de l'arrêt du
Superviseur.
Syntaxe 9
LVAL = HISTORY (Mode, "CLEARPRIMARY_UNIT", PrimaryUnit);
Argument Signification
PrimaryUnit Nom de l'unité d'archivage principale. Type STR.
Syntaxe 10
LVAL = HISTORY (Mode, "SAMPLING", VarName, UnitName, SampleRate);
Argument Signification
VarName Nom de la variable en tendance. Type STR.
UnitName Nom de l'unité d'archivage sur laquelle est affectée la tendance. Type STR.
SampleRate Période de filtrage (entier compris entre 0 et 32000).
Ce changement est temporaire et n'est pas sauvegardé dans la configuration lors de l'arrêt du
Superviseur.
Syntaxe 11
LVAL = HISTORY (Mode, UnitName, Sub-mode, ServerName);
Argument Signification
UnitName Nom de l'unité à rediriger. Type STR.
ServerName Nom du poste serveur d'historique vers lequel on veut rediriger les demandes de lectures
effectuées par le poste local. Le poste doit faire partie d'une association de serveurs
d'historiques.
SV_SCADABasic_fr 214
Les redirections de serveurs ne sont pas sauvegardées lors de l'arrêt du superviseur et c'est la
configuration d'origine qui est utilisée à chaque redémarrage.
Si un poste client fait une demande de lecture à un poste serveur 1 qui lui-même est redirigé vers un
poste serveur 2, la demande du poste client sera traitée par le poste serveur 2.
Il est important de comprendre le mécanisme de redirection des demandes de lecture afin de ne
pas créer des configurations qui bouclent comme celle ci par exemple : Le serveur 1 est redirigé
vers le serveur 2 qui lui-même est redirigé vers le serveur 1.
Syntaxe 12
LVAL = HISTORY (Mode, UnitName, Sub-mode, RestoreReadServer);
Argument Signification
UnitName Nom de l'unité à restaurer. Type STR.
Syntaxe 13
LVAL = HISTORY (Mode, "FORCEPRIMARY_UNIT", PrimaryUnit);
Argument Signification
PrimaryUnit Nom d'unité d'archivage primaire sur laquelle est historisée la tendance. Type STR.
Ce changement est temporaire et n'est pas sauvegardé dans la configuration lors de l'arrêt du
Superviseur.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 215
IF...THEN...ELSE...END IF
Voir aussi
Exécution conditionnelle d'instructions.
Syntaxe
1
2
Syntaxe 1
IF(Condition)THEN
[instruction block 1]
END IF
Type de retour : Aucun
Argument Signification
Condition Expression logique, par exemple : TankLevel > 25.
Exécution
Le bloc d'instruction 1 s'exécute si la condition est vraie, le bloc 2 s'exécute si la condition est fausse.
Chaque bloc d'instruction peut contenir à son tour d'autres instructions IF...
END et IF doivent être séparés par un espace.
Syntaxe 2
IF(Condition)THEN
[instruction block 1]
ELSE
[instruction block 2]
END IF
Type de retour : Aucun
Exécution
Le bloc d'instruction 1 s'exécute si la condition est vraie, le bloc 2 s'exécute si la condition est fausse.
Chaque bloc d'instruction peut contenir à son tour d'autres instructions IF...
END et IF doivent être séparés par un espace.
Exemple
SUB Main()
DIM i as Integer;
i=0;
'or: i=1;
If ( i==1 )Then
Print("i=1");
Else
Print("i is not 1");
End If
END SUB
SV_SCADABasic_fr 216
IGET_BUFFER
Voir aussi
Récupère un ENTIER dans une zone mémoire.
Syntaxe
IntVal = IGET_BUFFER(Handle, Offset);
Type de retour : INTEGER
Argument Signification
Handle Localisation du buffer mémoire retourné par ALLOC_BUFFER. Type LONG.
Offset Offset en octets dans lequel l'entier a été trouvé. Tout type numérique.
Exécution
Retour : Récupère un ENTIER dans une zone mémoire réservée par un ALLOC_BUFFER à l'offset
précisé.
Exemple
i1 = IGET_BUFFER(handle,2);
SV_SCADABasic_fr 217
IRAND
Voir aussi
Renvoie un nombre aléatoire compris entre deux valeurs données.
Syntaxe
IntVal = IRAND([MinVal, MaxVal]);
Type de retour : INTEGER
Argument Signification
MinVal Valeur minimum pour le retour du nombre aléatoire. Tout type numérique.
MaxVal Valeur maximum pour le retour du nombre aléatoire. Tout type numérique.
Exécution
Retour : Une valeur entière aléatoire. Sans argument IRAND renvoie une valeur comprise entre 0 et
32767.
Exemple
SUB Main()
DIM intRandValue as integer;
intRandValue = IRAND();
Print(intRandValue);
intRandValue = IRAND(0,10);
Print(intRandValue);
END SUB
SV_SCADABasic_fr 218
IVAL
Voir aussi
Donne la valeur numérique d'une chaîne de caractères.
Syntaxe
IntVal = IVAL(string);
Type de retour : INTEGER
Exécution
Lorsque la chaîne est vide ou lorsqu'elle débute par un caractère non numérique la fonction renvoie 0.
Exemple
SUB Main()
DIM intResult as Integer;
DIM strString1 as Str;
strString1 = "125.35TEST";
intResult = IVAL( strString1 );
Print("The result is:", intResult );
END SUB
SV_SCADABasic_fr 219
KEY
Voir aussi Codes de Touches de Fonctions
Programme des touches du clavier.
Mode Mnémonique Syntaxe
1 ADDCLK 1
2 ADDSTD 2
3 ADDPROG 3
5 DEL 4
6 DELALL 5
11 ADDCLKS 1
12 ADDSTDS 2
13 ADDPROGS 3
21 DELCLK 6
22 DELSTD 7
23 DELPROG 8
Syntaxe 1
IntVal = KEY(Mode, ShiftType, KeyCode, Window, Branch, Sequence, [Farg [, Activbit]]);
Type de retour : INTEGER
Argument Signification
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule).
Activbit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
Exécution
Mode Action
1 Programmation du déclenchement d'une zone sensible (commandable). Annule et remplace le
ADDCLK précédent sur la même touche (type + code).
11 Ajout de déclenchement de zone sensible sur la même touche (type + code) sans écrasement
des déclenchements existants.
Retour : 0 si OK, 1 sinon.
Syntaxe 2
IntVal = KEY(Mode, ShiftType, KeyCode, action, [farg [, Activbit]]);
Argument Signification
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule).
Activbit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
SV_SCADABasic_fr 220
Mode 12 Ajout d'un déclenchement sur la même touche fonction (type + code) sans écrasement des
déclenchements existants.
Retour : 0 si OK, 1 sinon.
Syntaxe 3
IntVal = KEY(Mode, ShiftType, KeyCode, Program, Branch, Function, [farg [, activbit]]);
Argument Signification
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule).
Activbit Facultatif. Nom complet de la variable état ou alarme d'activation de l'événement.
Syntaxe 4
IntVal = KEY( Mode, ShiftType, KeyCode);
Type de retour : INTEGER
Exécution
Mode Action
5 Détruit toutes les programmations d'une touche de fonction (type + code).
Retour : 1 si OK, 0 sinon.
Syntaxe 5
IntVal = KEY(Mode ) ;
Type de retour : INTEGER
Exécution
Mode Action
6 Déprogramme toutes les touches de fonction.
Retour : 0 si OK, 1 sinon.
Syntaxe 6
IntVal = KEY(Mode, ShiftType, KeyCode, Window, Branch, Sequence);
Argument Signification
ShiftType Description de la combinaison de touches clavier.
KeyCode Code de la clé.
SV_SCADABasic_fr 221
Retour : 0 si OK, 1 sinon.
Syntaxe 7
IntVal = KEY(Mode, ShiftType, KeyCode, action);
Argument Signification
ShiftType Description de la combinaison de touches clavier.
KeyCode Code de la clé.
Syntaxe 8
IntVal = KEY(Mode, ShiftType, KeyCode, Program, Branch, Function);
Argument Signification
ShiftType Description de la combinaison de touches clavier.
KeyCode Code de la clé.
Program Nom du programme contenant la fonction.
Branch Nom de branche passé en argument à la fonction appelée.
Function Nom de la fonction à supprimer.
Si la fonction MAIN est utilisée alors ne pase utiliser d'intructions DELAY sinon les résultats seront
imprévisibles.
Les caractères peuvent être combinés, par exemple SC veut dire presser les touches Control et Shift
ensemble.
Les comportements standards des touche sont listés dans le chapitre Codes des Touches.
SV_SCADABasic_fr 222
Exemple
KEY(2,"D" ,2, 2); ' F2
KEY(2,"D" ,3, 3); ' F3
KEY(2,"D" ,4, 4); ' F4
KEY(2,"D" ,5, 5); ' F5
KEY(2,"D" ,6, 6); ' F6
KEY(2,"D" ,7, 7); ' F7
KEY(2,"D" ,8, 8); ' F8
KEY(2,"D" ,9, 9); ' F9
KEY(2,"DS",10, 10); ' F10
KEY(2,"D" ,11, 11); ' F11
KEY(2,"" ,27, 21); ' PageDn
KEY(2,"" ,26, 22); ' PageUp
KEY(2,"" ,32, 23); ' ArrowRt
KEY(2,"" ,33, 23); ' ArrowDn
KEY(2,"" ,30, 24); ' ArrowLt
KEY(2,"" ,31, 24); ' ArrowUp
KEY(2,"" ,29, 25); ' Home
KEY(2,"" ,28, 26); ' End
SV_SCADABasic_fr 223
LAN
Voir aussi Exemple
Voir également l'aide sur les Applications Distribuées.
L'instruction LAN en SCADA BASIC est utilisée pour modifier et contrôler l'état réseau d'un poste dans des
applications distribuées et redondantes.
Mode Mnémonique Syntaxe
1 CONNECT 1
2 PRODUCT_MODE 2
3 GET_LISTS 3
4 GET_STATIONS_INLIST 4
5 SET_SERVER_MODE 5
6 GET_STATION_NUMBE 6
R
7 GET_STATION_NAME 7
10 SET_AVAILABLE_RATE 9
11 SET_READ_SERVER 10
12 RESET_READ_SERVER 11
13 START_CONNECTIONS 12
14 STOP_CONNECTIONS 12
15 START_CONNECTION 13
16 STOP_CONNECTION 13
17 SET_ACTIVE_NODE 14
Syntaxe 1
IntVal = LAN (Mode, RmtSvrCx);
Type de retour : INTEGER
Argument Signification
RmtSvrCx Nom de la connexion de type serveur d'un Superviseur dans l'application distribuée (tel qu'il
est spécifié dans le configurateur multipostes).
Exécution
Mode Mnémonique Action
1 CONNECT Le poste qui exécute le programme contenant l'instruction LAN se connecte au serveur
spécifié. Le poste exécutant le programme doit être configuré en tant que Client.
Retour : 1 si OK, 0 sinon.
Le mode CONNECT ne peut être utilisé que si le poste serveur spécifié est dans une association
réseau.
Syntaxe 2
IntVal = LAN (Mode, AssocNo, Flag);
Type de retour : INTEGER
SV_SCADABasic_fr 224
Argument Signification
AssocNo Numéro d'association.
Flag Code indiquant le nouvel état du serveur :
1 Le serveur devient actif
0 Le serveur devient passif
Exécution
Mode Mnémonique Action
2 PRODUCT_MOD Bascule le poste local en serveur actif ou passif.
E
Lorsque le poste bascule en serveur passif, les variables de type équipement,
DDE, OPC, LNS et interne passent temporairement en externe et s'abonnent sur
le poste serveur distant actif.
Lorsque le poste bascule en serveur actif, les variables temporairement externes
et abonnées sur le poste serveur distant actif se désabonnent et retrouvent leur
type d'origine.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
BuffList = LAN (Mode, ListType, StationName);
Argument Signification
ListType Type INTEGER:
1 = Liste serveur
2 = Liste client
3 = Autre liste
StationNam Nom du poste. (Type STR)
e
Exécution
Mode Mnémonique Action
3 GET_LISTS Remplit BuffList avec toutes les listes ListType contenant StationName.
Retour : Le handle du buffer.
Syntaxe 4
BuffList = LAN(Mode, List type, List name);
Argument Signification
List Type Type INTEGER:
1 = Liste serveur
SV_SCADABasic_fr 225
2 = Liste client
3 = Autre liste
List Name Nom de la liste. (Type STR)
Exécution
Mode Mnémonique Action
4 GET_STATIONS_ Remplit BuffList avec les postes appartenant à la liste ListName.
INLIST
Syntaxe 5
IntVal = LAN(Mode, AssocName, Servername, ServerMode);
Argument Signification
AssocName Nom d'association.
Servername Nom du poste serveur basculé entre les états actif et passif.
ServerMode Etat requis :
SET_SERVER_ACTIF = actif
SET_SERVER_PASSIF = passif
Exécution
Mode Mnémonique Action
5 SET_SERVER_M Ce mode permet de basculer le poste serveur à l'état actif seulement si ce poste
ODE appartient à une simple association de serveur actif.
Lorsque le poste bascule le serveur à l'état passif, les variables de types interne,
équipement, DDE, OPC et LON fournies par l'association, deviennent temporairement
externes et abonnées au poste serveur déporté.
Lorsque le poste bascule le serveur à l'état actif, ces variables externes temporaires
arrêtent l'abonnement et reprennent leurs types d'origine.
Syntaxe 6
IntVal = LAN(Mode, StationName [,AssocFlag]);
Argument Signification
StationName Nom du poste.
AssocFlag Optionnel. Si le nom du poste correspond à un nom d'association, retourne :
1 : Le numéro du poste
SV_SCADABasic_fr 226
0 : Le numéro de l'association si le numéro du poste n'est pas trouvé.
Exécution
Mode Mnémonique Action
6 GET_STATION_ Fournit le numéro de poste à partir de son nom.
NUMBER
Si le nom n'existe pas, le résultat est 0.
Syntaxe 7
StrVal = LAN(Mode, StationNumber [,AssocFlag]));
Argument Signification
StationNumbe Numéro du poste.
r
AssocFlag Optionnel. Si le numéro du poste correspond à un numéro d'association,
retourne :
0 : Le nom du poste
1 : Le nom de l'association si le nom du poste n'est pas trouvé.
Exécution
Mode Mnémonique Action
7 GET_STATION Fournit le nom du poste à partir de son numéro.
_NAME
Si le nom n'existe pas, le résultat est 0.
Syntaxe 9
IntVal = LAN (Mode, AssocName, ServerName, AvailableRate);
Type de retour : INTEGER
Argument Signification
AssocName Nom de l'association.
ServerName Nom du poste serveur dans l’association.
AvailableRat Taux de disponibilité compris entre 0 et 100. Type INTEGER
e
Exécution
Mode Mnémonique Action
10 SET_AVAILABL Il sera possible de modifier dynamiquement le taux de disponibilité d’un poste serveur
E_RATE à partir d’un verbe scada basic, par contre cette modification n’est pas persistante car
elle n’entraîne pas de changement au niveau de la configuration.
Ce mode peut s'exécuter de n’importe quelle poste.
Retour : 1 si OK, 0 sinon.
Syntaxe 10
IntVal = LAN (Mode, AssocName, StationName [, ClientStationName]);
Type de retour : INTEGER
SV_SCADABasic_fr 227
Argument Signification
AssocName Nom de l’association d'historiques.
StationNam Nom du poste serveur dans l’association d'historiques.
e
ClientStatio Poste client des historiques produites par l’association "AssocName".
nName
Si "ClientStationName" n’est pas renseigné, c’est le poste local où est exécuté le verbe qui
sera utilisé.
Exécution
Mode Mnémonique Action
11 SET_READ_SER Il est possible de choisir dynamiquement au sein d’une association le serveur qui
VER exécutera les requêtes de lecture vis-à-vis d’un poste client.
Ce mode peut être utilisé pour faire de la répartition de charge.
Le poste serveur actif du poste client "ClientStationName" dans l’association
"AssocName" sera "StationName" indépendamment du taux de disponibilité des
serveurs de l’association.
Retour : 1 si OK, 0 sinon.
Syntaxe 11
IntVal = LAN (Mode, AssocName, StationName[, ClientStationName]);
Type de retour : INTEGER
Argument Signification
AssocName Nom de l’association d'historiques.
StationNam Nom du poste serveur dans l’association d'historiques.
e
ClientStatio Poste client des historiques produites par l’association "AssocName".
nName
Si "ClientStationName" n’est pas renseigné, c’est le poste local où est exécuté le verbe qui
sera utilisé.
Exécution
Mode Mnémonique Action
12 RESET_READ_ Le poste serveur "StationName" du poste client "ClientStationName" dans l’association
SERVER "AssocName" n’est plus imposé comme le serveur actif. C’est celui qui aura le taux de
disponibilité le plus élevé qui sera l’actif.
Retour : 1 si OK, 0 sinon.
Syntaxe 12
IntVal = LAN (Mode, RemoteStation);
Type de retour : INTEGER
Argument Signification
RemoteStati Nom du poste distant dans l'application distribuée (tel qu'il est spécifié dans le configurateur
on multipostes). Type STR.
Exécution
Mode Mnémonique Action
13 START_CONNE Si le poste exécutant le programme a configuré un lien avec le poste distant spécifié,
CTIONS celui-ci se connecte au poste distant.
Si le poste exécutant le programme est configuré en tant que serveur, celui-ci
accepte les connexions provenant du poste distant spécifié.
SV_SCADABasic_fr 228
Retour : 1 si OK, 0 sinon.
14 STOP_CONNEC Si le poste exécutant le programme a configuré un lien avec le poste distant spécifié,
TIONS celui-ci se déconnecte du poste distant.
Si le poste exécutant le programme est configuré en tant que serveur, celui-ci
n’accepte plus les connexions provenant du poste distant spécifié.
Retour : 1 si OK, 0 sinon.
Syntaxe 13
IntVal = LAN (Mode, RemoteStation, RemoteCnt);
Type de retour : INTEGER
Argument Signification
RemoteStati Nom du poste distant dans l'application distribuée (tel qu'il est spécifié dans le configurateur
on multipostes). Type STR.
RemotCnt Nom de la connexion de type serveur ou client du poste distant RemoteStation (tel qu'il est
spécifié dans le configurateur multipostes). Type STR.
Exécution
Mode Mnémonique Action
15 START_CONNE Si RemoteCnt est une connexion serveur et que le poste exécutant le programme a
CTION configuré un lien avec le poste distant spécifié, celui-ci se connecte au poste distant
sur la connexion RemoteCnt.
Si RemoteCnt est une connexion client et si le poste exécutant le programme est
configuré en tant que serveur, celui-ci accepte les connexions provenant du poste
distant spécifié à partir de la connexion RemoteCnt.
Retour : 1 si OK, 0 sinon.
16 STOP_CONNEC Si RemoteCnt est une connexion serveur et que le poste exécutant le programme a
TION configuré un lien avec le poste distant spécifié, celui-ci se déconnecte de la connexion
RemoteCnt.
Si RemoteCnt est une connexion client et si le poste exécutant le programme est
configuré en tant que serveur, celui-ci n’accepte plus la connexion provenant du poste
distant spécifié à partir de la connexion RemoteCnt.
Retour : 1 si OK, 0 sinon.
Syntaxe 14
IntVal = LAN (Mode SourceNodeName[, DestinationNodeName]);
Type de retour : INTEGER
Argument Signification
SourceNode Nom du nœud source. Type STR.
Name
Destination Nom du nœud destinataire. Si vide, tous les postes sont affectés. Type STR.
NodeName
Exécution
Mode Mnémonique Action
17 SET_ACTIVE_N Ce mode permet de choisir le nœud actif d'un serveur vers n'importe quel poste
ODE distant auquel il est connecté. Ce mode peut être exécuté sur n’importe quel poste.
Les variables systèmes suivantes sont mises à jour :
SYSTEM.<ClientConnectionNodeName>.ACTIVECXT
SYSTEM.<ServerConnectionNodeName>.ACTIVECXT
SV_SCADABasic_fr 229
SYSTEM.<NodeName>.ACTIVECXT
SYSTEM.<ClientConnectionNodeName>.ACTIVE_NUMBER
SYSTEM.<ServerConnectionNodeName>. ACTIVE_NUMBER
SYSTEM.<NodeName>. ACTIVE_NUMBER
Retour : 1 si OK, 0 sinon.
Exemple
Il y a trois postes avec chacun deux nœuds :
L'instruction pour forcer actif le nœud 0 du poste SERVER1 vers tous les postes est :
LAN( "SET_ACTIVE_NODE", "SERVER1_0");
L'instruction pour forcer actif le nœud 0 du poste SERVER1 uniquement vers le nœud 0 du poste SERVER2
est :
LAN( "SET_ACTIVE_NODE", "SERVER1_0", "SERVER2_0");
SV_SCADABasic_fr 230
LANGUAGE
Voir aussi Exemple
Changement de la langue de travail.
Mod Mném Syntaxe
e onique
0 GET 1
1 SET_L1 2
2 SET_L2 2
3 TOGGL 2
E
Syntaxe 1
IntVal = LANGUAGE(Mode);
Type de retour : INTEGER
Exécution
Mode Action
0 Renvoie la langue couramment utilisée.
Retour : 1 : langue 1, 2 : langue 2 (i.e. alternée).
Syntaxe 2
IntVal = LANGUAGE(Mode [, Refresh]);
Refresh Facultatif. Permet de demander le rafraîchissement de toutes les fenêtres visibles (alarmes,
consignations).
0 par défaut. 1 = repeindre
Exemple
SUB L2()
LANGUAGE("SET_L2", 1); 'switch language
END SUB
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 231
LCASE
Voir aussi
Convertit tous les caractères d'une chaîne en minuscules.
Syntaxe
StrVal = LCASE(Input);
Type de retour : STR
Argument Signification
Input Chaîne de caractères à convertir. Type STR.
Exemple
SUB Main()
DIM strResult as Str;
DIM strString as Str;
SV_SCADABasic_fr 232
LEFT
Voir aussi
Copie les n premiers caractères de la chaîne.
Syntaxe
StrVal = LEFT(Input, N);
Type de retour : STR
Argument Signification
Input La chaîne de caractères à manipuler. Type STR.
N Le nombre de caractères à retourner. Tout type numérique.
Exécution
Si n est supérieur à la longueur de la chaine, la chaîne entière est retournée.
Exemple
SUB Main()
DIM strResult as Str;
DIM strString as Str;
SV_SCADABasic_fr 233
LEN
Voir aussi
Renvoie la longueur d'une chaîne.
Syntaxe
IntVal = LEN(Input);
Type de retour : INTEGER
Argument Signification
InputString Chaîne de caractères dont la longueur doit être retournée. Type STR.
Exemple
SUB Main()
DIM intResult as integer;
DIM strString as Str;
SV_SCADABasic_fr 234
LGET_BUFFER
Voir aussi
Récupère un LONG dans une zone mémoire.
Syntaxe
LongVal = LGET_BUFFER(handle, Offset);
Type de retour : LONG
Argument Signification
Handle Localisation du buffer mémoire retourné par ALLOC_BUFFER. Type LONG.
Offset Offset en octets dans lequel le LONG a été trouvé. Tout type numérique.
Exécution
Retour : Récupère un LONG dans une zone mémoire réservée par un ALLOC_BUFFER à l'offset précisé.
Exemple
i1 = LGET_BUFFER(handle, 2);
SV_SCADABasic_fr 235
LISTBOX
Voir aussi Exemple
Propriétés d'accès du contrôle List-box.
Mode Mnemonic Syntaxe
1 COUNT 1
2 GETSELECTEDINDEX 1
3 SETSELECTEDINDEX 2
4 GETTEXT 3
5 GETUSERDATA 3
6 LOAD 4
7 INSERT 5
8 REMOVE 6
9 SORT 7
Syntaxe 1
Return = LISTBOX(Mode, Window, Branch, Identity);
Type de retour : LONG
Exécution
Mode Mnemonic Action
1 COUNT Retourne le nombre d'éléments. Type LONG.
2 GETSELECTEDINDEX Retourne l'index de l'élément actuellement sélectionné. Type LONG.
Syntaxe 2
Return = LISTBOX(Mode, Window, Branch, Identity, Index, Notification);
Argument Signification
Index Index de l'élément à sélectionner. Type LONG.
Si l'index est -1, aucun élément n'est sélectionné.
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Si nécessaire, la fonction fera défiler le contrôle pour afficher l'élément.
Exécution
Mode Mnemonic Action
3 SETSELECTEDINDEX Sélectionne l'élément selon son index. Type LONG.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
SV_SCADABasic_fr 236
Return = LISTBOX(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index de l'élément dont le texte doit être retourné.
Exécution
Mode Mnemonic Action
4 GETTEXT Retourne le Texte de l'élément comme défini dans la langue actuellement utilisée. Ty
STR.
5 GETUSERDATA Retourne les données utilisateur associées à l'élément. Type STR.
Syntaxe 4
Return = LISTBOX(Mode, Window, Branch, Identity, FileName);
Argument Signification
FileName Nom du fichier contenant les données du contrôle.
Exécution
Mode Mnemonic Action
6 LOAD Charge le contenu du fichier de la liste du contrôle des éléments. Type INTEGER.
Retour : 1 si OK (fichier chargé), 0 sinon.
Syntaxe 5
Return = LISTBOX(Mode, Window, Branch, Identity, Text, Userdata, [Index]);
Argument Signification
Text Texte à insérer. Type STR.
Userdata Données utilisateur à insérer. Type STR.
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
7 INSERT Insère le texte et les données utilisateur optionnelles dans la liste du contrôle. Si l'in
est omis, le texte est inséré au début. Si l'index est -1, le texte est inséré à la fin.
Autrement, le texte est inséré à la position indiqué par l'index.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
Return = LISTBOX(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
SV_SCADABasic_fr 237
8 REMOVE Supprime l'élément sélectionné dans la liste.
Retour : 1 si OK, 0 sinon.
Syntaxe 7
Return = LISTBOX(Mode, Window, Branch, Identity[, Sortorder, Orderby]);
Argument Signification
Sortorder Flag indiquant l'ordre du tri. 0 = ascendant, 1 = descendant.
Orderby Flag indiquant quelles données à trier. 0 = Texte, 1 = Données utilisateur.
Type de retour : LONG.
Exécution
Mode Mnémonique Action
9 SORT Trie la liste du contrôle en utilisant le critère spécifié.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 238
LOG
Voir aussi
Fonction logarithmique naturel (base e).
Syntaxe
DblVal = LOG(Value);
Type de retour : DOUBLE
Argument Signification
Value Valeur à convertir. Tout type numérique.
Exécution
Retour : Le logarithme naturel de la valeur.
Exemple
SUB Main()
'Declare
DIM dblExponential as double;
DIM sngValue as single;
DIM dblResult as double;
sngValue = 2.23456;
dblExponential = Exp ( sngValue );
dblResult = Log(dblExponential);
Print("la valeur Log(",dblExponential,") = ",dblResult);
'Displays "The value of Log(9.34237) = 2.23456"
END SUB
SV_SCADABasic_fr 239
LOGDISPLAY
Voir aussi Exemple Spécifiques
Simule le bandeau de commande d'une animation fenêtre de consignation.
Lors de l'utilisation de régions multiples, vous devez positionner la région avant l'exécution
d'instructions qui interagissent avec l'IHM. Pour plus d'informations, voir le chapitre REGION.
Toutes syntaxes
Argument Signification
Window Nom de la fenêtre qui contient l'animation à piloter. Type STR
Branch Branche éventuelle de la fenêtre ("*" pour utiliser la branche courante du programme). Type
STR.
Identity Identifiant de l'animation fenêtre de consignation. Type STR
SV_SCADABasic_fr 240
Syntaxe 1
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
0 BEGIN Demande le buffer précédent. Equivalent au bouton << de
l'affichage de consignations.
1 BEFORE Remonte d'une page même si on est en début de buffer.
Equivalent au bouton < de l'affichage de consignations.
3 AFTER Descend d'une page même si on est en fin de buffer.
Equivalent au bouton > de l'affichage de consignations.
4 END Demande le buffer suivant. Equivalent au bouton >> de
l'affichage de consignations.
11 PRINTALL Imprime toutes les lignes du buffer.
14 PRINTSELECTED Imprime la ligne sélectionnée.
15 PRINTDISPLAY Imprime seulement les lignes affichées à l'écran.
16 FIRST Permet d'aller au début des historiques. Equivalent au
bouton |< de l'affichage de consignations.
17 LAST Permet d'aller à la fin des historiques. Equivalent au
bouton >| de l'affichage de consignations.
20 EXECUTE Exécute le contexte courant positionné par les verbes du
type MINMAX, EVENTMASK, …
27 AUTOREFRESH_PAUSE Met en pause le mécanisme d'auto-refresh.
28 AUTOREFRESH_RESUME Reprend le mécanisme d'auto-refresh.
31 GETLINECOUNT Retourne le nombre de lignes dans la fenêtre de
consignations.
36 AUTOREFRESH_STATUS Retourne le status du mécanisme d'auto-refresh :1 = En
cours
2 = Pause
3 = Non positionné (période à 0)
37 AUTOREFRESH_PERIOD Retourne la période d'auto-refresh en secondes.
Retour : 1 si OK, 0 sinon (fenêtre n'existant pas, etc ...).
Excepté pour les modes 31, 36 et 37.
Syntaxe 2
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity, Argument [,Context]);
Argument Signification
Argument Nom d'un nouveau domaine ou d'une nouvelle nature. Pour spécifier tous les domaines et
toutes les natures, Argument doit être une chaîne nulle. Type STR.
Context Paramètre optionnel. Si positionné à 1, l'action nécessaire à l'instruction est reportée jusqu'à
la prochaine utilisation du mode EXECUTE.
0 : Les paramètres min/max et les masques d'événements sont récupérés dans la
configuration de la liste, puis la requête est exécutée automatiquement.
1 : Les listes de consignations sont uniquement allouées, sans exécution. Ce sont les
paramètres min/max et les événements de la fenêtre de consignations qui sont utilisées, sauf
si les modes EVENTMASK ou MINMAX sont appliquées avant l'exécution de la requête par
EXECUTE.
SV_SCADABasic_fr 241
Sélectionne le nouveau domaine, la nouvelle nature ou la liste de consignations.
Mode Mnémonique Action
9 DOMAIN Nouveau domaine.
Retour : 1 si OK, 0 sinon.
10 NATURE Nouvelle nature.
Retour : 1 si OK, 0 sinon.
21 LOGLIST Nouvelle liste de consignations.
Retour : 1 si OK, 0 sinon.
Si le filtre de l'animation de la liste de consignations est configuré avec un domaine et/ou une
nature, le mode FILTER du verbe LOGDISPLAY sera ignoré.
Syntaxe 3
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity [,StartTime [,EndTime [,Context] ] ]););
Argument Signification
StartTime En millisecondes depuis le 1er janvier 1980, si elle est omise c'est l'horodate courante qui est
utilisée. Type DOUBLE.
EndTime En millisecondes depuis le 1er janvier 1980, si elle est omise c'est l'horodate courante qui est
utilisée. Type DOUBLE.
Context Paramètre optionnel. Si positionné à 1, l'action nécessaire à l'instruction est reportée jusqu'à
la prochaine utilisation du mode EXECUTE.
Syntaxe 4
ret = LOGDISPLAY(Mode, Window, Branch, Identity, Filter [,Context]);
Argument Signification
Filter Expression de filtre. Type STR.
Context Paramètre optionnel. Si positionné à 1, l'action nécessaire à l'instruction est reportée jusqu'à
la prochaine utilisation du mode EXECUTE.
Exécution
Mode Mnémonique Action
13 FILTER Sélectionne l'information affichée dans la fenêtre de consignation en appliquant le filtre
d'expression.
SV_SCADABasic_fr 242
Retour : 1 si OK, 0 sinon (la fenêtre n'existe pas, etc.).
Si le filtre de l'animation de la fenêtre de consignations a été configuré avec un domaine et/ou une
nature, le mode FILTER du verbe LOGDISPLAY ne sera pas pris en compte.
Si le filtre est positionné à #T et la fenêtre de consignations est dans HDS, vous devez ajouter la
colonne Description dans la table de consignation autrement le résultat sera une fenêtre vide.
Syntaxe 5
ret = LOGDISPLAY(Mode, Window, Branch, Identity, Min, Max);
Argument Signification
Min Niveau de priorité minimum des alarmes. Type INTEGER.
Max Niveau de priorité maximum des alarmes. Type INTEGER.
Avec ce mode, vous pouvez positionner un contexte, mais ne pas exécuter la requête
immédiatement. Elle sera lancée avec le mode EXECUTE.
Syntaxe 6
ret = LOGDISPLAY(Mode, Window, Branch, Identity, EventMask [,Context]);
Argument Signification
EventMask Masque d'événements. Pour plus d'informations, voir le chapitre Masque d'événements. Type
DOUBLE.
Context Paramètre optionnel. Si positionné à 1, l'action nécessaire par l'instruction est reportée
jusqu'à la prochaine utilisation de l'instruction EXECUTE.
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
18 EVENTMASK Modifie le masque d'événements.
Retour : 1 si OK, 0 sinon.
Avec ce mode, vous pouvez positionner un contexte, mais ne pas exécuter la requête
immédiatement. Elle sera lancée avec le mode EXECUTE.
Syntaxe 7
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity [,StartTime [,EndTime]] [,Context]
[,ChangeNoOfLines]););
Argument Signification
StartTime En millisecondes depuis le 1er janvier 1980, si elle est omise c'est l'horodate courante qui est
utilisée. Type DOUBLE.
EndTime En millisecondes depuis le 1er janvier 1980, si elle est omise c'est l'horodate courante qui est
utilisée. Type DOUBLE.
SV_SCADABasic_fr 243
Context Paramètre optionnel. Si positionné à 1, l'action nécessaire à l'instruction est reportée jusqu'à
la prochaine utilisation du mode EXECUTE.
ChangeNoOf Modifie la taille du buffer temps-réel. (Voir ci-dessous).
Lines
Syntaxe 8
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity[, PrintFormat]);
Type de retour : INTEGER
Argument Signification
PrintFormat Paramètre optionnel pour sélectionner le format d'impression :
0 : Imprime les consignations en utilisant le format d'affichage défini dans l'onglet Affichage
de la fenêtre de consignations (par défaut).
1 : Imprime les consignations en utilisant le format d'affichage défini dans l'onglet Exécution
de la fenêtre de consignations.
Exécution
Mode Mnémonique Action
11 PRINTALL Imprime toutes les lignes du buffer configuré dans la fenêtre de consignations.
14 PRINTSELECT Imprime la ligne sélectionnée.
ED
15 PRINTDISPLA Imprime seulement les lignes affichées à l'écran.
Y
Retour : 1 si OK, 0 sinon (fenêtre n'existant pas, etc ...).
Syntaxe 9
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity, ProgramModule, ProgramBranch,
ProgramFunction, ProgramParameter);
Type de retour : INTEGER.
Argument Signification
ProgramMod Programme a exécuter.
ule
ProgramBra Branche du programme.
nch
SV_SCADABasic_fr 244
ProgramFun Fonction du programme à exécuter.
ction
ProgramPar Paramètres du programme.
ameter
Exécution
Mode Mnémonique Action
23 LINESELECT Spécifie un programme à exécuter lorsqu'une ligne
sélectionnée/désélectionnée apparaît.
Retour : 1 si OK, 0 si paramètre erroné.
_Ref-308730101
Un espace de nom est créé automatiquement lors de l'utilisation de Branch, Window et Log Display
ID.
Syntaxe 10
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity, Column, Sort);
Type de retour : INTEGER.
Argument Signification
Column Valeurs de 0 à 7 pour identifier la colonne, - 1 pour réinitialiser le tri.
Sort Valeur 1 pour un tri ascendant, 0 pour descendant.
Exécution
Mode Mnémonique Action
45 SETSORT Tri dynamique d'une liste d'alarme par une colonne.
Retour : 1 si OK, 0 si paramètre erroné.
Syntaxe 11
IntVal = ALARMDISPLAY(Mode, Window, Branch, Identity, Column, Sort);
Type de retour : INTEGER.
Argument Signification
Column Valeurs de 0 à 7 pour identifier la colonne, - 1 pour réinitialiser le tri.
Sort Valeur 1 pour un tri ascendant, 0 pour descendant.
Exécution
SV_SCADABasic_fr 245
Mode Mnémonique Action
46 GETSORT Obtient le status d'un tri.
Retour : 1 si OK, 0 si paramètre erroné.
L'instruction XMLPATH est utilisée pour obtenir les informations du mode GETSORT. Un espace de
nom est créé automatiquement lors de l'utilisation des paramètres Branch, Window et Identit. Pour
des informations sur son format, voir le chapitre XMLPATH
Syntaxe 12
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity, ILowPart, IHighPart, [Context]);
Argument Signification
ILowPart Partie basse du masque. Pour plus d'informations sur la construction des masques, voir le
topic Masques d'Evénements. Type LONG.
IHighPart Partie haute du masque. Pour plus d'informations sur la construction des masques, voir le
topic Masques d'Evénements. Type LONG.
Context Paramètre optionnel. Si positionné à 1, l'action est mise en attente jusqu'à la prochaine
exécution de l'instruction EXECUTE.
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
22 EVENTMASK Modifie le filtre d'événements de la fenêtre de consignations.
Retour : 1 si OK, 0 si paramètre erroné.
Syntaxe 13
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity, Line);
Argument Signification
Line Numéro de ligne (1ère ligne = 1). Type INTEGER.
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
29 ISLINESELECTED Vérifie si la ligne est sélectionnée.
Retour : 1 si sélectionné, 0 sinon.
30 ISLINEVISIBLE Vérifie si la ligne est visible.
Retour : 1 si sélectionné, 0 sinon.
Syntaxe 14
IntVal = LOGDISPLAY(Mode, Window, Branch, Identity, Separator);
Argument Signification
Separator Caractère(s) utilisé(s) pour délimiter le contenu de chaque colonne. Type STR.
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
32 COPY_CLIPBOARD Copie les lignes sélectionnées vers le presse-papier Windows.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 246
Syntaxe 15
StrVal = LOGDISPLAY(Mode, Window, Branch, Identity, LineStart[, LineEnd, ColSeparator,
LineSeparator]);
Argument Signification
Linestart Numéro de ligne (1ère ligne = 1) dans le buffer de la fenêtre de consignation. Type INTEGER.
LineEnd Numéro de ligne (1ère ligne = 1) dans le buffer de la fenêtre de consignation. Type INTEGER.
ColSeparator Caractère(s) utilisé(s) pour séparer les colonnes dans la chaîne de retour. Par défaut : virgule
",". Type STR.
LineSeparator Caractère(s) utilisé(s) pour séparer les lignes dans la chaîne de retour. Par défaut : nouvelle
ligne "\n". Type STR.
Type de retour : STR.
Exécution
Mode Mnémonique Action
33 GETLINES Retourne les lignes de LineStart à LineEnd (inclusive) dans une seule chaîne
délimitée par les caractères ColSeperator et LineSeperator. Si LineEnd est omis,
une seule ligne est retournée en utilisant les caractères par défaut pour délimiter
les colonnes.
Retour : Lignes sélectionnées de la fenêtre de consignations.
34 GETSELECTEDLINES Idem à GETLINES excepté que seules les lignes sélectionnées sont retournées.
Syntaxe 16
StrVal = LOGDISPLAY(Mode, Window, Branch, Identity, Line, Column);
Argument Signification
Line Numéro de ligne (1ère ligne = 1) dans le buffer de la fenêtre de consignations. Type INTEGER.
Column Numéro de colonne (1ère colonne = 1) dans le buffer de la fenêtre de consignations. Type
INTEGER.
Type de retour : STR.
Exécution
Mode Mnémonique Action
35 GETCELL Retourne le contenu de la cellule spécifique.
Syntaxe 17
StrVal = LOGDISPLAY(Mode, Window, Branch, Identity, AutoRefreshPeriod, PauseWhenNavigating );
Argument Signification
AutoRefreshPeriod Période d'auto-refresh en secondes. Type INTEGER.
PauseWhenNavigatin Flag indiquant si la fenêtre de consignations est mise en pause en utilisant les boutons de
g navigation.
0 = Pas de pause, 1 = pause.
Type INTEGER.
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
26 AUTOREFRESH_SET Définit l'action et la période d'auto-refresh en cours de navigation.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus.
SV_SCADABasic_fr 247
LOGICAL
Voir aussi Exemple
Opérations logiques sur des entiers de 32 octets.
Mode Mnémonique Syntaxe
0 NOT 1
1 AND 2
2 XOR 2
3 OR 2
4 SHIFT_LEFT 2
5 SHIFT_RIGHT 2
6 MODULO 2
Syntaxe 1
LongVal = LOGICAL(Mode, x);
L'argument x peut être de tout type numérique.
Argument Format
x Tout format numérique. Converti en LONG.
Syntaxe 2
LongVal = LOGICAL(Mode, x, y);
Les arguments x et y peuvent être de tout type numérique .
Argument Format
x Tout format numérique. Converti en LONG.
y Tout format numérique. Converti en LONG.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 248
LOGICAL64
Voir aussi Exemple
Opérations logiques sur des entiers de 64 octets.
Mode Mnémonique Syntaxe
0 NOT 1
1 AND 2
2 XOR 2
3 OR 2
4 SHIFT_LEFT 2
5 SHIFT_RIGHT 2
6 MODULO 2
Syntaxe 1
LongLongVal = LOGICAL64(Mode, x);
L'argument x peut être de tout type numérique.
Argument Format
x Tout format numérique. Converti en LONGLONG.
Syntaxe 2
LongLongVal = LOGICAL64(Mode, x, y);
Les arguments x et y peuvent être de tout type numérique.
Argument Format
x Tout format numérique. Converti en LONGLONG.
y Tout format numérique. Converti en LONGLONG.
Exemple
Sub main ()
'64-bit variable
Dim ll1 as longlong;
Dim ll2 as longlong;
SV_SCADABasic_fr 249
Dim llRes as longlong;
ll1=2147491969;
Print(ll1); '2147491969
ll2=1;
llRes = logical64("AND", ll1, ll2);
Print(llRes); '1
End Sub
SV_SCADABasic_fr 250
LONWORKS
Voir aussi
Gère et contrôle un réseau LonWorks configuré dans le Superviseur.
Mode Mnémonique Syntaxe
2 READCONFIGPROPERTY 1
3 STARTNETWORK 2
4 STOPNETWORK 2
5 STARTNODE 3
6 STOPNODE 3
9 SENDMESSAGE 6
Syntaxe 1
IntVal = LNS(Mode, NetworkAlias, NodeAlias);
Type de retour : INTEGER
Argument Signification
NetworkAlia Alias d'un réseau LonWorks configuré dans le Superviseur. Type STR
s
NodeAlias Alias d'un noeud LonWorks configuré dans le Superviseur. Type STR
Exécution
Mode Mnémonique Action
2 READCONFIG Rafraîchit l’ensemble des variables du superviseur liées aux ConfigProperties du
PROPERTY nœud et du réseau.
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = LNS(Mode, NetworkAlias);
Type de retour : INTEGER
Argument Signification
NetworkAlia Alias du réseau LonWorks configuré dans le Superviseur. Type STR
s
Exécution
Mode Mnémonique Action
3 STARTNETWO Démarre la communication avec le réseau LonWorks. L'état du réseau est
RK disponible dans la variable SYSTEM.LNS.NetworkAlias.ON.
4 STOPNETWOR Stoppe la communication avec le réseau LonWorks. L'état du réseau est disponible
K dans la variable SYSTEM.LNS.NetworkAlias.ON.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
IntVal = LNS(Mode, szURL);
Type de retour : INTEGER
Argument Signification
SV_SCADABasic_fr 251
szURL Chaîne de caractères formée par NetworkAlias/NodeAlias ou NetworkAlias.
NetworkAlia Alias du réseau LonWorks tel que configuré dans le Superviseur. Type STR
s
NodeAlias Alias du noeud LonWorks tel que configuré dans le Superviseur. Type STR
L’application peut détecter que la phase de démarrage du réseau est terminée grâce à la variable
SYSTEM.LNS.NetworkAlias.NodeAlias.ON
Exécution
Mode Mnémonique Action
5 STARTNODE Démarre la communication avec le noeud LonWorks spécifié. L'état du réseau est
disponible dans la variable SYSTEM.LNS.NetworkAlias.ON.
6 STOPNODE Stoppe la communication avec le noeud LonWorks spécifié. L'état du réseau est
disponible dans la variable SYSTEM.LNS.NetworkAlias.ON.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
IntVal = LNS(Mode, NetworkAlias/NodeAlias, MsgCode, MsgData [, ResultVar]);
Type de retour : INTEGER
Argument Signification
NetworkAlia Alias du réseau LonWorks tel que configuré dans le Superviseur. Type STR
s
NodeAlias Alias du noeud LonWorks tel que configuré dans le Superviseur. Type STR
MsgCode Code du message à envoyer. Chaîne de caractère au format héxadécimal. La valeur doit être
comprise entre 00 et FF.
MsgData Données du message à envoyer. Chaîne de caractère au format héxadécimal. Chaque couple
de caractères correspond à un octet (00 – FF). La longueur des données est limitée à 1024
caractères (soit 512 octets).
ResultVar Variable résultat (optionnel) :
0 : L’envoi du message est en cours,
1 : L’envoi du message s’est terminé sans erreur,
2 : L’envoi du message a échoué.
Exécution
Mode Mnémonique Action
9 SENDMESSAG Permet d’envoyer un message via la messagerie explicite au nœud
E NetworkAlias/NodeAlias.
Retour :
0 : Message envoyé.
-1 : Syntaxe NetworkAlias/NodeAlias invalide.
-2 : Syntaxe MsgCode invalide.
-3 : Syntaxe MsgData invalide.
-4 : La variable ResultVar n’existe pas ou n’est pas une variable mesure.
SV_SCADABasic_fr 252
LPRINT
Voir aussi
Envoie un message vers une imprimante.
Syntaxe
IntVal = LPRINT(Num, Mess1, Mess2.....Mess9);
Type de retour : INTEGER
Argument Signification
Num Numéro d'imprimante de 1 à 6. Tout type numérique.
Mess1 - 9 Messages à imprimer (Maximum 9). Tous les types de variables sont supportés.
Exécution
Retour : 1 si OK, 0 sinon.
Dans le cas de l'impression d’une variable de type Mesure, on obtient une valeur formatée comme
définie dans la fiche de la variable.
Exemple
SUB main()
'Declare
DIM intReturn as Integer;
DIM sngRegister as Single;
sngMesure=12;
intReturn = LPRINT (1,"Example of using LPRINT: value = ",sngRegister ,34);
'Print this text on printer 1: "Example of using LPRINT: value = 12"
END SUB
SV_SCADABasic_fr 253
LTRIM
Voir aussi
Renvoie la copie d'une chaîne sans les espaces à gauche.
Syntaxe
StrVal = LTRIM(string);
Type de retour : STR
Argument Signification
String Chaîne de caractères contenant les espaces à supprimer. Type STR.
Exemple
SUB Main()
'Declare strings
DIM strResult as Str;
DIM strValue as Str;
SV_SCADABasic_fr 254
LVAL
Voir aussi
Donne la valeur numérique d'une chaîne de caractères.
Syntaxe
LongVal = LVAL(string);
Type de retour : LONG
Argument Signification
String Chaîne de caractères à convertir. Type STR.
Exécution
Lorsque la chaîne est vide ou lorsqu'elle débute par un caractère non numérique la fonction renvoie 0.
Exemple
SUB Main()
DIM lngResult as long;
DIM strString1 as Str;
strString1 = "125.35TEST";
lngResult = LVAL( strString1 );
Print("Result: ", lngResult );
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 255
M104
Voir aussi
Démarre, arrête ou réinitialise la communication via le protocole IEC60870-5-104.
Mode Mnémonique Syntaxe
0 NETWORK_START 1
1 NETWORK_STOP 1
2 DEVICE_START 2
3 DEVICE_STOP 2
4 SECTOR_START 3
5 SECTOR_STOP 3
6 SECTOR_CLOCKSYNCHRO 3
7 SECTOR_RESET 3
8 SECTOR_GI 3
9 SECTOR_CI 3
10 STPV_COMMAND 4
11 SBO_SELECT 7
12 SBO_EXECUTE 8
13 SBO_CANCEL 8
16 DEVICE_SET_IPADD 6
17 DEVICE_SWITCHOVER 5
Syntaxe 1
M104(Mode, NetworkID);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
Execution
Mode Mnémonique Message
0 NETWORK_START Démarre le réseau.
1 NETWORK_STOP Arrête le réseau.
Syntaxe 2
Return= M104(Mode, NetworkID, DeviceID);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
Execution
Mode Mnémonique Message
2 DEVICE_START Démarre l'équipement.
SV_SCADABasic_fr 256
3 DEVICE_STOP Arrête l'équipement.
Syntaxe 3
Return= M104(Mode, NetworkID, DeviceID, SectorID);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
SectorID Identifiant du secteur. Type STR.
Execution
Mode Mnémonique Message
4 SECTOR_START Démarre le secteur.
5 SECTOR_STOP Arrête le secteur.
6 SECTOR_CLOCKSYNCHRO Synchronise l'heure du PC.
7 SECTOR_RESET Réinitialise.
8 SECTOR_GI Commande d'interrogation globale (GI).
9 SECTOR_CI Commande d'interrogation de compteur (CI).
La commande SECTOR_GI envoie une requête pour les valeurs des variables non cycliques.
Syntaxe 4
Return= M104(Mode, VariableName, Direction);
Argument Signification
VariableName Nom de la variable. Type STR.
Direction Direction du mouvement : "UP" ou "DOWN". Type STR.
Execution
Mode Mnémonique Message
10 STPV_COMMAND Positionne la variable en haut ou en bas.
Syntaxe 5
Return= M104(Mode, NetworkID, DeviceID, Device_to_activate_ID;
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement principal. Type STR.
Device _to_activate_ID Identifiant de l'équipement à activer. Type STR.
Exécution
Mode Mnémonique Action
17 DEVICE_SWITCHOVER Force l'activation d'un équipement particulier dans une configuration
où il y a un ou plusieurs équipements redondants configurés.
Syntaxe 6
SV_SCADABasic_fr 257
Return= M104(Mode, NetworkID, DeviceID, IP_Address;
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement principalr. Type STR.
IP_Address Nouvelle adresse IP de l'équipement en format x.x.x.x. Exemple 192.168.0.99. Type
STR.
Exécution
Mode Mnémonique Action
16 DEVICE_SET_IPADD Modifie l'adresse IP de l'équipement. L'instruction stoppe et démarre
également l'équipement qui est nécessaire pour terminer la
modification de l'adresse.
Syntaxe 7
Return= M104(Mode, VariableName, Value [, ResultVar]);
Type de retour : INTEGER.
Argument Signification
VariableName Nom d'une variable mappée à un objet d'information M104. Type STR.
Value Valeur à envoyer à l'objet d'information M104. Type INTEGER.
ResultVar Nom d'une variable mesure dans laquelle est placée une valeur correspondante au
résultat de l'instruction. Type STR.
0 - Requête initiée
1 - Succès
2 - Echec de la commande (Voir l'observateur d'événements).
Exécution
Mode Mnémonique Action
11 SBO_SELECT Envoie une commande Select à un objet d'information M104 dans le
cadre d'une séquence select before operate.
Retour : 0 si 0K. Toute autre valeur indique une erreur dans la syntaxe
de l'instruction. Voir ci-dessous.
Syntaxe 8
Return= M104(Mode, VariableName [, ResultVar]);
Type de retour : INTEGER.
Argument Signification
VariableName Nom d'une variable mappée à un objet d'information M104. Type STR.
ResultVar Nom d'une variable mesure dans laquelle est placée une valeur correspondante au
résultat de l'instruction. Type STR.
0 - Requête initiée
1 - Succès
2 - Echec de la commande (Voir l'observateur d'événements).
Exécution
Mode Mnémonique Action
12 SBO_EXECUTE Envoie une commande Execute à un objet d'information M104.
Complète une séquence select before operate après l'envoi d'une
commande Select.
Retour : 0 si 0K. Toute autre valeur indique une erreur dans la syntaxe
SV_SCADABasic_fr 258
de l'instruction.
13 SBO_CANCEL Envoie une commande Cancel à un objet d'information M104. Annule
une séquence select before operate après l'envoi d'une commande
Select.
Retour : 0 si 0K. Toute autre valeur indique une erreur dans la syntaxe
de l'instruction. Voir ci-dessous.
Valeurs de retour des modes Select, Execute et Cancel modes en cas d'erreur
-2 = Mauvais paramètre.
-5 = Mauvaise séquence de commande. Par exemple une commande Select déjà envoyée.
Exemples
M104("NETWORK_START", "NETWORK1");
M104("DEVICE_START", "NETWORK1","DEVICE1");
M104("SECTOR_START", "NETWORK1","DEVICE1","SECTOR1");
M104("SECTOR_CLOCKSYNCHRO", "NETWORK1","DEVICE1","SECTOR1");
M104("SECTOR_RESET", "NETWORK1","DEVICE1","SECTOR1");
M104("SECTOR_GI", "NETWORK1","DEVICE1","SECTOR1");
M104("SECTOR_CI", "NETWORK1","DEVICE1","SECTOR1");
Pour un exemple plus complet, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 259
M61850
Voir aussi
Gère la communication via le protocole IEC61850.
Mode Mnémonique Syntaxe
1 SBOW_SELECT 1
2 SBOW_OPERATE 2
3 SBOW_CANCEL 2
4 SBO_SELECT 1
5 SBO_OPERATE 2
6 SBO_CANCEL 2
7 START_NETWORK 3
8 STOP_NETWORK 3
9 START_PHYSICALDEVICE 4
10 STOP_PHYSICALDEVICE 4
11 START_REPORTGROUP 5
12 STOP_REPORTGROUP 5
13 START_DATASETGROUP 5
14 STOP_DATASETGROUP 5
15 START_DATAGROUP 5
16 STOP_DATAGROUP 5
17 DE_OPERATE 1
18 DEW_OPERATE 1
Syntaxe 1
Return= M61850(Mode, VariableName, Value [, ResultVar]);
Type de retour : INTEGER.
Argument Signification
VariableName Nom d'une variable mappée à un objet ou un attribut M61850. Type STR.
Value Valeur à envoyer à l'objet ou attribut M61850. Type INTEGER.
ResultVar Nom d'une variable de mesure dans laquelle est placée une valeur correspondante au
résultat de l'instruction. Type STR.
0 - Requête initiée
1 - Succès
2 - Erreur d'écriture (Voir l'observateur d'événements).
Exécution
Mode Mnémonique Action
1 SBOW_SELECT Génère une commande Select before operate - Select avec
sécurité avancée. Utilisé en conjonction avec SBOW_OPERATE
et SBOW_CANCEL.
4 SBO_SELECT Génère une commande Select before operate - Select avec
sécurité avancée. Utilisé en conjonction avec SBO_OPERATE
et SBO_CANCEL.
17 DE_OPERATE Génère une commande Direct avec sécurité normale.
18 DEW_OPERATE Génère une commande Direct avec sécurité avancée.
Retour : 0 si OK. Une valeur négative est un paramètre
d'erreur, la valeur indiquant quel paramètre est mauvais. Par
exemple, -3 signifie que le paramètre 3 est mauvais.
Syntaxe 2
Return= M61850(Mode, VariableName [, ResultVar]);
Type de retour : INTEGER.
Argument Signification
SV_SCADABasic_fr 260
VariableName Nom d'une variable mappée à un objet ou un attribut M61850. Type STR.
ResultVar Nom d'une variable de mesure dans laquelle est placée une valeur correspondante au
résultat de l'instruction. Type STR.
0 - Requête initiée
1 - Succès
2 - Erreur d'écriture (Voir l'observateur d'événements).
Exécution
Mode Mnémonique Action
2 SBOW_OPERATE Génère une commande Select before operate - Operate avec
sécurité avancée. Utilisé en conjonction avec SBOW_SELECT
et SBOW_CANCEL.
3 SBOW_CANCEL Génère une commande Select before operate - Cancel avec
sécurité avancée. Utilisé en conjonction avec SBOW_SELECT
et SBOW_OPERATE.
5 SBO_OPERATE Génère une commande Select before operate - Operate avec
sécurité avancée. Utilisé en conjonction avec SBO_SELECT et
SBO_CANCEL.
6 SBO_CANCEL Génère une commande Select before operate - Cancel avec
sécurité avancée. Utilisé en conjonction avec SBO_SELECT et
SBO_OPERATE.
Retour : 0 si OK. Une valeur négative est un paramètre
d'erreur, la valeur indiquant quel paramètre est mauvais. Par
exemple, -2 signifie que le paramètre 2 est mauvais.
Syntaxe 3
IntVar = M61850(Mode, NetworkID, ResultVar);
Type de retour : INTEGER.
Argument Signification
NetworkID Nom du réseau. Type STR.
ResultVar Nom de la variable dans laquelle est mis le status de la commande. Type STR.
0 - Requête initiée
1 - Succès
2 - Erreur d'écriture (Voir l'observateur d'événements).
Exécution
Mode Mnémonique Action
7 START_NETWORK Démarre le réseau. ResultVar est mis à jour avec le status de
la requête.
8 STOP_NETWORK Arrête le réseau. ResultVar est mis à jour avec le status de la
requête.
Retour : 0 si OK, 0 sinon.
Syntaxe 4
IntVar = M61850(Mode, NetworkID, DeviceID, ResultVar);
Type de retour : INTEGER.
Argument Signification
NetworkID Nom du réseau. Type STR.
DeviceID Nom de l'équipement. Type STR.
ResultVar Nom de la variable dans laquelle est mis le status de la commande. Type STR.
0 - Requête initiée
1 - Succès
2 - Erreur d'écriture (Voir l'observateur d'événements).
Exécution
SV_SCADABasic_fr 261
Mode Mnémonique Action
9 START_PHYSICALDEVICE Démarre l'équipement physique. ResultVar est mis à jour
avec le status de la requête.
10 STOP_PHYSICALDEVICE Arrête l'équipement physique. ResultVar est mis à jour avec
le status de la requête.
Retour : 0 si OK, 0 sinon.
Syntaxe 5
IntVar = M61850(Mode, NetworkID, DeviceID, GroupID, ResultVar);
Type de retour : INTEGER.
Argument Signification
NetworkID Nom du réseau. Type STR.
DeviceID Nom de l'équipement. Type STR.
GroupID Nom du groupe. Type STR.
ResultVar Nom de la variable dans laquelle est mis le status de la commande. Type STR.
0 - Requête initiée
1 - Succès
2 - Erreur d'écriture (Voir l'observateur d'événements).
Exécution
Mode Mnémonique Action
11 START_REPORTGROUP Démarre le groupe de rapport.
12 STOP_REPORTGROUP Arrête le groupe de rapport.
13 START_DATASETGROUP Démarre le groupe de dataset.
14 STOP_DATASETGROUP Arrête le groupe de dataset.
15 START_DATAGROUP Démarre le groupe de données.
16 STOP_DATAGROUP Arrête le groupe de données.
Retour : 0 si OK, 0 sinon.
SV_SCADABasic_fr 262
MAPDISPLAY
Les modes associées aux marqueurs de carte (2, et de 11 à 28 inclus) généreront une erreur s'ils
sont exécutés lorsque le fichier de marqueurs est toujours en chargement.
Syntaxe 1
SV_SCADABasic_fr 263
MAPDISPLAY (Mode, Window, Branch, MapID);
Aucun retour.
Exécution
Mode Mnémonique Action
1 LOADDEFAULT Réinitialise les propriétés d'exécution du contrôle de carte à ses
valeurs par défaut, y compris le rechargement du fichier GPX
(marqueurs de carte).
Syntaxe 2
MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName[, ViewIndex]);
Aucun retour.
Exécution
Mode Mnémonique Action
2 CENTERTOMARKER Centre une carte sur un marqueur donné. Si le marqueur est
multipoints (tracé ou polygone), la carte est centrée sur le premier
point de l'objet. Si LayerName est vide, le calque par défaut est utilisé.
Syntaxe 3
DblVal = MAPDISPLAY (Mode, Window, Branch, MapID[, ViewIndex]);
Type de retour : DOUBLE.
Exécution
Mode Mnémonique Action
3 GETZOOM Retourne le niveau de zoom de la carte.
Retour : le niveau de zoom.
5 GETLATITUDE Retourne la latitude du centre de la carte en utilisant le système
WGS84.
Retour : la latitude.
7 GETLONGITUDE Retourne la longitude du centre de la carte en utilisant le système
WGS84.
Retour : la longitude.
Syntaxe 4
MAPDISPLAY (Mode, Window, Branch, MapID, Value[, ViewIndex]);
Aucun retour.
Exécution
Mode Mnémonique Action
4 SETZOOM Positionne un nouveau niveau de zoom pour la carte.
6 SETLATITUDE Positionne la latitude du centre de la carte en utilisant le système
WGS84.
8 SETLONGITUDE Positionne la longitude du centre de la carte en utilisant le système
WGS84.
Syntaxe 5
MAPDISPLAY (Mode, Window, Branch, MapID, FileName);
Aucun retour.
Argument Signification
FileName Nom du fichier à utiliser en sortie. Type STR.
SV_SCADABasic_fr 264
Exécution
Mode Mnémonique Action
6 EXPORT Crée un fichier de marqueurs contenant les marqueurs et les calques
d’un Contrôle de carte. Génère une erreur si le fichier des marqueurs
est en cours de chargement.
Syntaxe 6
MAPDISPLAY (Mode, Window, Branch, MapID, FileName[, AsyncFlag[, StateVar]])
Aucun retour.
Argument Signification
FileName Nom du fichier contenant les marqueurs. Type STR.
AsynchFlag Flag indiquant si le fichier doit être chargé de façon synchrone (0) ou asynchrone (1).
StateVar Nom d'une variable mesure indiquant le status du processus de chargement. Type STR.
0 = Succès
1 = Exécution
3 = Annulation
10 = Echec
Exécution
Mode Mnémonique Action
10 LOADMARKERS Charge les calques et les marqueurs depuis le fichier spécifié. Les
calques et marqueurs précédemment chargés sont effacés.
Syntaxe 7
IntVal = MAPDISPLAY (Mode, Window, Branch, MapID, LayerName[, ViewIndex]);
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
11 ISLAYERDISPLAYED Retourne la visibilité d’un calque d'un Contrôle de carte donné en
prenant en compte la propriété Montrer et les limites de zoom.
Retour : 1 si visible, 0 sinon.
Syntaxe 8
MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, Value);
Aucun retour.
Exécution
Mode Mnémonique Action
12 SETLAYERVISIBILITY Positionne la visibilité d'un calque. Valeur :
1 : visible
0 : non visible
Syntaxe 9
DblVal = MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName);
Type de retour : DOUBLE.
Exécution
Mode Mnémonique Action
13 GETMARKERLATITUDE Retourne les coordonnées de latitude (-90 à 90) d'un marqueur en
système WGS84. Ne fonctionne pas pour des marqueurs multipoints
(tracés ou polygones).
SV_SCADABasic_fr 265
Retour : les coordonnées de la latitude.
15 GETMARKERLONGITUDE Retourne les coordonnées de longitude (-180 à 180) d’un marqueur
en système WGS84. Ne fonctionne pas pour des marqueurs
multipoints (tracés ou polygones).
Retour : les coordonnées de la longitude.
Syntaxe 10
MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName, Value);
Aucun retour.
Exécution
Mode Mnémonique Action
14 SETMARKERLATITUDE Positionne les coordonnées de la latitude (-90 à 90) d'un marqueur
en système WGS84 en utilisant la valeur fournie. Ne fonctionne pas
pour des marqueurs multipoints (tracés ou polygones). Le paramètre
de la valeur est un double et est la valeur de la latitude.
16 SETMARKERLONGITUDE Positionne les coordonnées de la longitude (-180 à 180) d'un
marqueur en système WGS84 en utilisant la valeur fournie. Ne
fonctionne pas pour des marqueurs multipoints (tracés ou
polygones). Le paramètre de la valeur est un double et est la valeur
de la longitude.
18 SETMARKERTOOLTIP Positionne la description du marqueur (bulle d'aide). Le paramètre
Value est une chaîne et correspond au texte de la bulle d'aide..
31 SETMARKERVISIBILITY Positionne la visibilité du marqueur. Valeur :
1 : visible
0 : non visible
Syntaxe 11
StrVal = MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName);
Type de retour : STRING.
Exécution
Mode Mnémonique Action
17 GETMARKERTOOLTIP Retourne la description (bulle d'aide) du marqueur dans la langue
courante.
Retour : la bulle d'aide du marqueur.
19 GETMARKERMIMIC Retourne le nom du synoptique devant être ouvert lors du clic sur le
marqueur.
Retour : le nom du synoptique.
21 GETMARKERBRANCH Retourne la branche du marqueur. Cette branche est utilisée pour lier
les propriétés du marqueur. Si la propriété synoptique est définie,
lorsqu'un utilisateur clique sur le marqueur, le synoptique s'ouvre avec
la branche correspondante. Pour des marqueurs de type symbole, la
branche est également assignée aux symboles instanciés.
Retour : la branche du marqueur.
Syntaxe 12
MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName, Value[, ChildMode]);
Aucun retour.
Argument Signification
ChildMode Flag indiquant si le synoptique à ouvrir est un synoptique enfant ou une fenêtre
indépendante.
Exécution
SV_SCADABasic_fr 266
Mode Mnémonique Action
20 SETMARKERMIMIC Positionne le nom du synoptique à ouvrir lors du clic sur le marqueur.
Le paramètre Value est une chaîne et le nom du synoptique.
Aucun retour.
22 SETMARKERBRANCH Positionne la branche du marqueur. Cette branche est utilisée pour lier
les propriétés du marqueur. Si la propriété synoptique est définie,
lorsqu'un utilisateur clique sur le marqueur, le synoptique s'ouvre avec
la branche correspondante. Pour des marqueurs de symbole, la
branche est également assignée aux symboles instanciés.
Aucun retour.
Syntaxe 13
IntVal = MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName);
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
23 GETMARKERTYPE Retourne le type de marqueur. Retour :
1 = Forme
2 = Texte
3 = Image
4 = Symbole
5 = Tracé
6 = Polygone
Syntaxe 14
StrVal = MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName, UserDataName);
Type de retour : STRING.
Argument Signification
UserDataName Nom donné à l'élément de la zone Données utilisateur comme configuré en utilisant
l'éditeur de marqueurs de carte. Type STR.
Exécution
Mode Mnémonique Action
24 GETUSERDATAVARIABLENAME Retourne le nom de la variable, tel que configuré pour le
UserDataName fourni, dans la zone Données utilisateur.
Retour : le nom de la variable.
25 GETUSERDATALABEL Retourne le libellé, tel que configuré pour le UserDataName
fourni, dans la zone Données utilisateur.
Retour : le libellé.
27 GETUSERDATAVALUE Retourne la valeur de la variable, tel que configurée pour le
UserDataName fourni, dans la zone Données utilisateur.
La valeur de la variable est une chaîne.
Syntaxe 15
MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName, UserDataName, Value);
Aucun retour.
Argument Signification
UserDataName Nom donné à l'élément de la zone Données utilisateur comme configuré en utilisant
l'éditeur de marqueurs de carte. Type STR.
Exécution
Mode Mnémonique Action
SV_SCADABasic_fr 267
26 SETUSERDATALABEL Positionne le libellé pour le UserDataName fourni dans la zone
Données utilisateur. Le paramètre Value est une chaîne et le texte du
libellé.
Aucun retour.
28 SETUSERDATAVALUE Positionne la valeur de la variable pour le UserDataName fourni dans
la zone Données utilisateur. Le paramètre Value est une chaîne et la
valeur de la donnée.Aucun retour.
Syntaxe 16
IntVal = MAPDISPLAY (Mode, Window, Branch, MapID);
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
29 ISLOADING Teste si le fichier des marqueurs est chargé. Retour :
1 = En chargement
0 = Chargé
Syntaxe 17
IntVal = MAPDISPLAY (Mode, Window, Branch, MapID, LayerName, MarkerName);
Type de retour : INTEGER.
Exécution
Mode Mnémonique Action
30 GETMARKERVISIBILITY Retourne la visibilité du marqueur.
Retour : 1 si visible, 0 sinon.
Syntaxe 18
IntVal = MAPDISPLAY (Mode, Window, Branch, MapID, ProviderName, IsLocal [, UseCache]);
Type de retour : INTEGER.
Argument Signification
ProviderName Nom du fournisseur de cartes. Type STR.
IsLocal Carte locale ou en ligne.
1 carte locale, 0 carte en ligne.
UseCache Flag indiquant d'utiliser le cache.
1 utiliser le cache, 0 ne pas utiliser le cache.
Exécution
Mode Mnémonique Action
32 SETMAPPROVIDER Modifie le fournisseur de cartes.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 268
MDNP3
Voir aussi
Gère la communication via le protocole DNP3.
Mode Mnémonique Syntaxe
0 NETWORK_START 1
1 NETWORK_STOP 1
2 DEVICE_START 2
3 DEVICE_STOP 2
4 CLOCK_SYNCHRO 3
5 RESET or 3
COLD_RESTART
6 REFRESH_ATT 3
7 READ_CLASS 4
8 READ_GROUP 5, 6 ou 7
9 FREEZE 8
10 SELECT 9
11 OPERATE 9
12 DIRECT_OPERATE 10
13 SELECT_CROB 11
14 OPERATE_CROB 11
15 DIRECT_OPERATE_CR 11
OB
16 DIRECT_OPERATE_N 11
O_ACK_CROB
Syntaxe 1
MDNP3(Mode, NetworkID);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
Exécution
Mode Mnémonique Action
0 NETWORK_START Démarre le réseau.
1 NETWORK_STOP Arrête le réseau.
Syntaxe 2
MDNP3(Mode, NetworkID, DeviceID);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
Exécution
Mode Mnémonique Action
SV_SCADABasic_fr 269
2 DEVICE_START Démarre l'équipement.
3 DEVICE_STOP Arrête l'équipement.
Syntaxe 3
MDNP3(Mode, NetworkID, DeviceID[, ResultVar]);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
4 CLOCK_SYNCHRO Synchronise l'heure de l'équipement.
5* RESET Demande à l'équipement d'exécuter un redémarrage à froid (code
fonction 13).
5* COLD_RESTART Demande à l'équipement d'exécuter un redémarrage à froid (code
fonction 13).
6 REFRESH_ATT Rafraîchit les attributs de l'équipement et l'horodate de l'équipement
dans le Superviseur (Lis les groupes d'objets 0 et 50).
* Mode 5 a deux mnémoniques. Les actions sont identiques.
Syntaxe 4
MDNP3(Mode, NetworkID, DeviceID, ClassNum [, ResultVar]);
Argument Signification
NetworkID Identifiant du réseau. Tye STR.
DeviceID Identifiant de l'équipement. Type STR.
ClassNum Numéro d'une classe DNP3. De 0 à 3.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
7 READ_CLASS Rafraîchit les données dans le Superviseur en demandant les données
associés à une des classes du DNP3.
Syntaxe 5
MDNP3(Mode, NetworkID, DeviceID, GroupNum, VariationNum, "START_STOP", Start, Stop[, ResultVar]);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
GroupNum Numéro du groupe DNP3. Tout type numérique.
VariationNum Numéro de variation dans le groupe qui détermine le format d'encodage des données et
la présence (ou non) des flags et événements. Tout type numérique.
Start Numéro de la première donnée à lire. Tout type numérique.
Stop Numéro de la dernière donnée à lire. Tout type numérique.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
8 READ_GROUP Rafraîchit les données dans le Superviseur en demandant un ensemble
de données d'un groupe et en utilisant une variation spécifique pour
formater les données.
SV_SCADABasic_fr 270
Syntaxe 6
MDNP3(Mode, NetworkID, DeviceID, GroupNum, VariationNum, "QUANTITY", Quanitity[, ResultVar]);
Argument Signification
NetworkID Identifiant du réseau. Tye STR.
DeviceID Identifiant de l'équipement. Type STR.
GroupNum Numéro du groupe DNP3. Tout type numérique.
VariationNum Numéro de variation dans le groupe qui détermine le format d'encodage des données et
la présence (ou non) des flags et événements. Tout type numérique.
Quantity Numéro des points de données à lire. Tout type numérique.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
8 READ_GROUP Rafraîchit les données dans le Superviseur en demandant un ensemble
de données d'un groupe et en utilisant une variation spécifique pour
formater les données.
Syntaxe 7
MDNP3(Mode, NetworkID, DeviceID, GroupNum, VariationNum, "ALL"[, ResultVar]);
Argument Signification
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
GroupNum Numéro du groupe DNP3. Tout type numérique.
VariationNum Numéro de variation dans le groupe qui détermine le format d'encodage de la donnée et
la présence (ou non) des flags et événements. Tout type numérique.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
8 READ_GROUP Rafraîchit les données dans le Superviseur en demandant toutes les
données d'un groupe et en utilisant une variation spécifique pour
formater les données.
Syntaxe 8
MDNP3(Mode, AckMode, ClearMode, NetworkID, DeviceID[, ResultVar]);
Argument Signification
AckMode Flag demandant un acquittement ou non. Soit "NO_ACK" (0) ou "ACK" (1).
ClearMode Flag demandant que les compteurs soient effacés ou non. Soit "DO_NOT_CLEAR" (0) ou
"CLEAR" (1).
NetworkID Identifiant du réseau. Type STR.
DeviceID Identifiant de l'équipement. Type STR.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
9 FREEZE Fige et efface les compteurs de l'équipement avec acquittement
optionnel.
Syntaxe 9
MDNP3(Mode, Variable, Valeur[, ResultVar]);
Argument Signification
SV_SCADABasic_fr 271
Variable Nom d'une variable liée à une donnée d'un équipement DNP3. La variable peut être une
mesure liée à un AO (analog output) ou un état lié à un BO (binary output). Type STR.
Valeur Valeur d'envoi de la variable.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
10 SELECT Envoi un message SELECT à l'équipement DPN3. Un SELECT doit être
suivi par un OPERATE.
11 OPERATE Envoi un message OPERATE à l'équipement DNP3. Un OPERATE doit
être précédé par un SELECT.
Syntaxe 10
MDNP3(Mode, Variable, Valeur[, NoAck, [ResultVar]]);
Argument Signification
Variable Nom d'une variable liée à une donnée d'un équipement DNP3. La variable peut être une
mesure liée à un AO (analog output) ou un état lié à un BO (binary output). Type STR.
NoAck Flag optionnel positionné à 1 (aucun acquittement n'est nécessaire) ou 0 (acquittement
nécessaire). Par défaut : 0.
Valeur Valeur d'envoi de la variable.
ResultVar Nom de la variable de mesure. Type STR.
Exécution
Mode Mnémonique Action
12 DIRECT_OPERATE Envoi un message DIRECT OPERATE à l'équipement DNP3.
Les messages envoyés à l'équipement DNP3 utilisent les modes 10, 11 et 12 incorporant une structure
datablock appelée un AOB (Analog Output Block) lors de l'utilisation pour une mesure ou un CROB (Contro
Relay Output Block) lors de l'utilisation avec un état. Quelques paramètres utilisés dans l'AOB ou le CROB s
fournis par les propriétés avancées de la variable.
Syntaxe 11
MDNP3(Mode, Variable, OpType, Queue, Clear, TripClose, Count, OnTime, OffTime[, ResultVar]);
Argument Signification
Variable Nom d'une variable liée à une donnée d'un équipement DNP3. La variable peut être une
mesure liée à un AO (analog output) ou un état lié à un BO (binary output). Type STR.
OpType Voir ci-dessous.
Queue Voir ci-dessous.
Clear Voir ci-dessous.
TripClose Voir ci-dessous.
Count Temps d'exécution de l'opération.
OnTime CROB off time en millisecondes. Tout type numérique.
OffTime CROB on time en millisecondes. Tout type numérique.
ResultVar Nom de la variable de mesure. Type STR.
SV_SCADABasic_fr 272
Codage d'un argument Queue
Mnémonique Valeur
"DO_NOT_QUEUE" 0
"QUEUE" 1
Exécution
Mode Mnémonique Action
13 SELECT_CROB Envoi un message SELECT à l'équipement DNP3. Les propriétés CROB
sont fournies comme des arguments plutôt que par les propriétés
avancées de la variable. Un SELECT doit être suivi par un OPERATE.
14 OPERATE_CROB Envoi un message OPERATE à l'équipement DNP3. Les propriétés
CROB sont fournies comme des arguments plutôt que par les
propriétés avancées de la variable. Un OPERATE doit être précédé par
un SELECT.
15 DIRECT_OPERATE_CROB Envoi un message DIRECT OPERATE à l'équipement DNP3. Les
propriétés CROB sont fournies comme des arguments plutôt que par
les propriétés avancées de la variable.
16 DIRECT_OPERATE_NO_AC Envoi un DIRECT OPERATE sans message d'acquittement à
K_CROB l'équipement DNP3. Les propriétés CROB sont fournies comme des
arguments plutôt que par les propriétés avancées de la variable.
Si la propriété Adresse différente est activée dans la configuration de la variable ceci est toujours pris en
compte.
SV_SCADABasic_fr 273
MID
Voir aussi
Renvoie une sous-chaîne d'une chaîne de caractères.
Syntaxe
StrVal = MID(Input, Start [, Num]);
Type de retour : STR
Argument Signification
Input Chaîne à manipuler. Type STR.
Start Position de départ pour la sous-chaîne à retourner (0 si 1er caractère). Tout type
numérique.
Num Nombre de caractères dans la sous-chaîne retournée. Tout type numérique.
Exécution
Copie "longueur" caractères de "chaîne" à partir du "début"ième caractère de "chaîne" (soit 0 pour le 1er
caractère). Si longueur est omis ou s'il est supérieur à la partie restante de la chaîne, la chaîne est
recopiée jusqu'à sa fin. Si début est supérieur à la longueur de la chaîne, une chaîne vide est renvoyée.
Exemple
SUB Main()
DIM strChain1 as Str;
DIM strChain2 as Str;
DIM inti1 as Integer;
DIM inti2 as Integer;
inti1 = 7;
inti2 = 5;
strChain1 = "Hello, World!";
strChain2 = MID (strChain1,inti1,inti2); '5 characters from the 7th
Print("Return: ",strChain2);
'Display "Return: World"
END SUB
SV_SCADABasic_fr 274
MULTIMEDIA
Voir aussi Exemple
Fournit un accès à une Interface de Contrôle de Média (MCI). Pour voir le fichier d'aide MCI, cliquer ici. (Le
fichier zip - doit d'abord être extrait).
Mode Mnémonique Syntaxe
0 SEND 1
1 OPENW 2
2 WINDOW 3
Syntaxe 1
StrVal = MULTIMEDIA(Mode, MCI_String);
Type de retour : STR
Argument Signification
MCI_string Chaîne de caractères à utiliser. Type STR.
Exécution
Mode Mnémonique Action
0 SEND Envoi d'une chaîne de caractères libre à la syntaxe MCI. La chaîne de
caractères retournée est soit le retour de la commande s'il n'y a pas eu
d'erreur, soit la chaîne descriptive de l'erreur.
Syntaxe 2
IntVal = MULTIMEDIA(Mode, device_id, res_name[, window [, wbranch [, x, y, w, h]]]);
Type de retour : INTEGER
Argument Signification
device_id Alias de la ressource.
res_name Nom de la ressource.
window Fenêtre contenant la ressource.
wbranch Branche du synoptique contenant la ressource.
x, y Coordonnées du coin en haut à gauche.
w, h Largeur et hauteur.
Exécution
Mode Mnémonique Action
1 OPENW Ouvre la ressource vidéo res_name (fichier d'animation AVI, Vidéo Overlay,
etc...) avec l'alias device_id en l'incrustant éventuellement dans la fenêtre
identifiée par window et sa branche wbranch, et en positionnant
éventuellement l'incrustation dans le rectangle spécifié par son point
haut/gauche x y, sa largeur w et sa hauteur h dans le système de coordonnées
de cette fenêtre. Si aucune fenêtre n'est spécifiée, une fenêtre indépendante de
l'application est ouverte dont window est le titre.
L'image est positionnée en utilisant les coordonnées du coin en haut à gauche (x et y). La taille est
spécifiée par sa largeur et sa hauteur (w et h). Si aucune fenêtre n'est spécifiée, une fenêtre est
créée en dehors de l'application.
Syntaxe 3
SV_SCADABasic_fr 275
IntVal = MULTIMEDIA(Mode, device_id, window , wbranch[, x, y, w, h]);
Type de retour : INTEGER
Argument Signification
device_id Alias de la ressource.
window Fenêtre contenant la ressource.
wbranch Branche du synoptique contenant la ressource.
x, y Coordonnées du coin en haut à gauche.
w, h Largeur et hauteur.
Exécution
Mode Mnémonique Action
2 WINDOW Incrustation de la ressource vidéo identifiée par son alias device_id dans la
fenêtre identifiée par window et sa branche wbranch, et en positionnant
éventuellement l'incrustation dans le rectangle spécifié par son point
haut/gauche x y, sa largeur w et sa hauteur h dans le système de coordonnées
de cette fenêtre.
L'image est positionnée en utilisant les coordonnées du coin en haut à gauche (x et y). La taille est
spécifiée par sa largeur et sa hauteur (w et h). Si aucune fenêtre n'est spécifiée, une fenêtre est
créée en dehors de l'application.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 276
OCT
Voir aussi
Renvoie une chaîne représentant en octal un nombre passé en base 10.
Syntaxe
StrVal = OCT(N);
Type de retour : STR
Argument Signification
N Nombre à convertir. Tout type numérique.
Exécution
Le nombre renvoyé comporte au maximum 16 caractères.
Exemple
SUB Main()
Declare
DIM IntValue as integer;
DIM strResult as Str;
IntValue = 13;
strResult = OCT(IntValue);
'Euclidean division: 13 = 1*8 + 5
Print("OCT(",IntValue,") = ",strResult);
'Displays "OCT(13) = 15"
END SUB
SV_SCADABasic_fr 277
OPC
Voir aussi
Gère les échanges avec un serveur OPC configuré dans le Superviseur.
Mode Mnémonique Syntaxe
1 READ 1
5 SETTRACE 2
6 RESETTRACE 2
7 PUTMASKTRACE 2
8 SAVEMASKTRAN 2
CE
9 STARTGROUP 2
10 STOPGROUP 2
11 STARTSERVER 3
12 STOPSERVER 3
Les modes 5 à 8 servent à gérer les traces. Vous pouvez ainsi lancer toutes les actions de l'onglet
Traces de la boîte de dialogue Serveur OPC. Les actions (cocher pour positionner ou décocher
pour réinitialiser) modifient le masque de traces comme affiché en bas de cette boîte de dialogue.
Voir l'image
SV_SCADABasic_fr 278
Syntaxe 1
OPC (Mode, szURL [,ReadFrom]);
Type de retour : Aucun
Comme configuré dans les paramètres OPC du Superviseur :
Argument Signification
szURL Chaîne de caractères formée par ServerAlias/GroupName ou ServerAlias.
ServerAlias Nom donné à l'Alias du Serveur dans la configuration OPC du Superviseur. Type STR.
GroupName Nom de groupe. Type STR.
ReadMemor Possibilité de lire depuis :
y Equipement - Mémoire de l'équipement ou
Cache - Depuis la mémoire du serveur OPC.
Les paramètres ServerAlias et GroupName sont séparés par un seul caractère barre
oblique (back-slashes : /).
Exécution
Mode Mnémonique Action
1 READ Effectue une lecture du groupe GroupName du serveur ServerAlias en
effectuant une lecture de bout en bout avec les équipements gérés par le
serveur. Les paramètres de lecture sont donnés par la configuration du groupe
SV_SCADABasic_fr 279
(synchrone ou asynchrone).
Syntaxe 2
OPC (Mode, szURL);
Type de retour : Aucun.
Argument Signification
szURL Chaîne de caractères formée par ServerAlias/GroupName ou ServerAlias.
ServerAlias Nom donné à l'Alias du Serveur dans la configuration OPC du Superviseur. Type STR.
GroupName Nom donné au Groupe dans la configuration OPC du Superviseur. Type STR.
Exécution
Mode Mnémonique Action
5 SETTRACE Positionne le masque de traces du serveur OPC.
6 RESETTRACE Remet à zéro le masque de traces du serveur OPC.
7 PUTMASKTRACE Positionne le masque de toutes les traces du serveur OPC.
8 SAVEMASKTRACE Sauvegarde le masque de toutes les traces du serveur OPC. Au
prochain démarrage, le masque de traces sera le masque sauvegardé.
9 STARTGROUP Démarre le groupe identifié.
10 STOPGROUP Stoppe le groupe identifié.
L’application peut détecter que la phase de démarrage du groupe est terminée grâce à la
variable : SYSTEM.OPC.ServerAlias.GroupName.ON.
Syntaxe 3
OPC (Mode, ServerAlias);
Type de retour : Aucun.
Argument Signification
ServerAlias Nom donné à l'Alias du Serveur dans la configuration OPC du Superviseur. Type STR.
Exécution
Mode Mnémonique Action
11 STARTSERVER Démarre le serveur identifié par ServerAlias.
12 STOPSERVER Stoppe le serveur identifié par ServerAlias.
SV_SCADABasic_fr 280
OPTIONLIST
Voir aussi Exemple
Propriétés d'accès du contrôle Option-button list.
Mode Mnémonique Syntaxe
1 COUNT 1
2 GETSELECTEDINDEX 1
3 SETSELECTEDINDEX 2
4 GETTEXT 4
5 GETUSERDATA 4
6 GETSTATE 4
7 SETSTATE 3
8 LOAD 5
9 GETEVENTTYPE 1
10 GETOPTION 1
11 SETOPTION 2
12 INSERT 6
13 REMOVE 7
14 SORT 8
Note importante sur la terminologie utilisée et le fonctionnement du contrôle Option-button list dans le
Superviseur :
• L'élément qui est POSITIONNE est celui dont le radio-bouton est rempli.
• L'élément qui est SELECTIONNE est celui dont le texte est en surbrillance (changement de couleur
d'arrière-plan).
Un item POSITIONNE n'est pas nécessairement SELECTIONNE (et vice versa). En programmation vous n'êt
normalement intéressés que par les éléments POSITIONNES. L'élément SELECTIONNE a une moindre
importance.
Pour plus d'information sur le comportement du contrôle Option-button list, voir l'aide principale du
Superviseur.
Syntaxe 1
Return = OPTIONLIST(Mode, Window, Branch, Identity);
Exécution
Mode Mnémonique Action
1 COUNT Retourne le nombre d'éléments. Type LONG.
2 GETSELECTEDINDEX Retourne l'index de l'élément actuellement sélectionné. Type LONG.
9 GETEVENTTYPE Retourne le type de l'événement le plus récent. Type LONG.
Le retour est une valeur de poids binaire.
Bit 0: La sélection a été modifiée.
Bit 1: L'état d'un élément a été modifié.
SV_SCADABasic_fr 281
10 GETOPTION Retourne l'index de l'élément positionné. Si aucun élément n'est positionné
: retourne -1. Type LONG
Syntaxe 2
Return = OPTIONLIST(Mode, Window, Branch, Identity, Index, Notification);
Argument Signification
Index Index de l'élément à sélectionner. Type LONG.
Si l'index est -1, aucun élément n'est sélectionné.
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Pour que cela fonctionne, il doit être aussi autorisé dans l'onglet Opérations de la
boîte de dialogue des propriétés Option-button list.
Si nécessaire, la fonction fera défiler le contrôle pour afficher l'élément.
Exécution
Mode Mnémonique Action
3 SETSELECTEDINDEX Sélectionne l'élément correspondant à l'index fourni.
Retour : 1 si OK, 0 sinon.
11 SETOPTION Positionne l'élément correspondant à l'index fourni.
Retour : Index de l'élément positionné ou -1 si aucun index n'est vérifié. Type
INTEGER.
Syntaxe 3
Return = OPTIONLIST(Mode, Window, Branch, Identity, Index, State, Notification);
Argument Signification
Index Index de l'élément à sélectionner. Type LONG.
Si l'index est -1, aucun élément n'est sélectionné.
State Etat à positionner. La valeur peut être 0 ou 1. Type INTEGER
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Pour que cela fonctionne, il doit être aussi autorisé dans l'onglet Opérations de la boîte
de dialogue des propriétés Option-button list.
Si nécessaire, la fonction fera défiler le contrôle pour afficher l'élément.
Exécution
Mode Mnémonique Action
7 SETSTATE Positionne l'état de l'élément correspondant à l'index fourni. Type LONG.
Retour : 1 si OK, 0 sinon.
Syntaxe 4
Return = OPTIONLIST(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index de l'élément dont le texte est à retourner.
SV_SCADABasic_fr 282
Exécution
Mode Mnémonique Action
4 GETTEXT Retourne le Texte de l'élément comme défini dans la langue courante en
utilisation. Type STR.
5 GETUSERDATA Retourne les données utilisateur associées à l'élément. Type STR.
6 GETSTATE Retourne l'Etat de l'élément (coché ou non). Type LONG.
Syntaxe 5
Return = OPTIONLIST(Mode, Window, Branch, Identity, FileName);
Argument Signification
FileName Nom du fichier contenant les données du contrôle.
Exécution
Mode Mnémonique Action
8 LOAD Charge le contenu du fichier de la liste du contrôle des éléments. Type INTEGER.
Retour : 1 si OK (fichier chargé), 0 sinon.
Syntaxe 6
Return = OPTIONLIST(Mode, Window, Branch, Identity, Text, Userdata, [Index]);
Argument Signification
Text Texte à insérer. Type STR.
Userdata Données utilisateurs à insérer. Type STR.
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
12 INSERT Insère le texte et les données utilisateur optionnelles dans la liste du contrôle. Si
l'index est omis, le texte est inséré au début. Si l'index est -1, le texte est inséré
à la fin. Autrement, le texte est inséré à la position indiqué par l'index.
Retour : 1 si OK, 0 sinon.
Syntaxe 7
Return = OPTIONLIST(Mode, Window, Branch, Identity, Index);
Argument Signification
Index Index d'un élément dans le contrôle. Type LONG.
Exécution
Mode Mnémonique Action
13 REMOVE Supprime l'élément sélectionné dans la liste.
Retour : 1 si OK, 0 sinon.
Syntaxe 8
Return = OPTIONLIST(Mode, Window, Branch, Identity[, Sortorder, Orderby]);
SV_SCADABasic_fr 283
Argument Signification
Sortorder Flag indiquant l'ordre du tri. 0 = ascendant, 1 = descendant.
Orderby Flag indiquant quelles données à trier. 0 = Texte, 1 = Données utilisateur.
Type de retour : LONG.
Exécution
Mode Mnémonique Action
14 SORT Trie la liste du contrôle en utilisant le critère spécifié.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 284
POPULATION
Voir aussi Exemple Spécifiques
Une population est un filtre s'appliquant à la base de données d'une station (en utilisant l'instruction
STATION_FILTER) pour contrôler la distribution des variables.
L'instruction POPULATION permet de créer des populations en utlisant le langage de programmation. Les
populations peuvent aussi être créées par l'option Population du sous-menu Configuration.Variables.
Syntaxe 1
IntVal = POPULATION(Mode, Handle);
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer mémoire.
Exécution
Mode Mnémonique Action
1 CREATE Création des populations définies dans le buffer. Si le buffer contient une
description de filtres.
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = POPULATION(Handle, Line);
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer mémoire
Line Ligne du filtre. Type STR.
Exécution
Mode Mnémonique Action
2 ADDLINE Ajoute une ligne au filtre.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
IntVal = POPULATION(Mode, Name);
Type de retour : INTEGER
Argument Signification
Name Voir syntaxe 1.
Exécution
Mode Mnémonique Action
3 DUMP Affichage dans la fenêtre de mise au point des programmes de la population
SV_SCADABasic_fr 285
repérée par identifiant.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 286
POW
voir aussi
Fonction puissance.
Syntaxe
DblVal = POW(x, y);
Type de retour : DOUBLE
Argument Signification
x et y Tout type numérique.
Exécution
Retour : x à la puissance y.
Exemple
SUB Main()
DIM dblResult as double;
DIM dblValue1 as double;
DIM dblValue2 as double;
dblValue1 = 2.5;
dblValue2= 2;
dblResult = POW(dblValue1,dblValue2);
Print("Result of 2.5^(2) = ",dblResult);
'Display "Result of 2.5^(2) = 6.25"
END SUB
SV_SCADABasic_fr 287
PRINT
Voir aussi
Affiche des données dans la fenêtre programme.
Syntaxe
IntVal = PRINT(Data1[, Data2....[, Data10]]);
Type de retour : INTEGER
Argument Signification
Data1 à 10 Information à imprimer. (Maximum 10 items.) Tous les types de variables sont supportés.
Exécution
N'importe quel type de donnée peur être passé en paramètres.
Les résultats sont affichés dans la fenêtre de mise au point des programmes.
Le format d'affichage est le suivant :
Donnée Format
STR Tel que passé en paramètre.
INTEGER Entier signé.
LONG Long signé.
SINGLE [-]dddd.dddddd le nombre de digit avant le point décimal dépend de l'amplitude du nombre.
DOUBLE [-]dddd.dddddd ou [-]d;dddE[sign]ddd.
CONST [-]dddd.dddddd ou [-]d;dddE[sign]ddd.
Retour : Toujours 1.
Exemple
SUB Main()
DIM dblValue1 as double;
DIM dblValue2 as double;
dblValue1 = 2.5;
dblValue2= 2;
Print(dblValue1,dblValue2);
'Display "2.52"
Print("dblValue1",dblValue2);
'Display "dblValue12"
Print("dblValue1 ",dblValue2);
'Display "dblValue1 2"
Print("dblValue1 = ",dblValue1);
'Display "dblValue1 = 2.5"
Print("Hello,"," ","World","!");
'Display "Hello, World!"
END SUB
SV_SCADABasic_fr 288
PRINTER
Voir aussi Exemple
Mise en service ou hors service d'une imprimante.
Mode Mnémonique Syntaxe
0 PAUSE 1
1 REPLAY 1
2 CLEAR 1
3 GETNB 1
4 STATUS 1
5 SELECT 2
6 FLUSH 1
7 CLOSE 1
8 OPEN 1
Syntaxe 1
IntVal = PRINTER(Mode, ID);
Argument Signification
ID Numéro d'imprimante concerné (1 à 8).
SV_SCADABasic_fr 289
Syntaxe 2
IntVal = PRINTER(Mode, Main, Standby);
Argument Signification
Main Numéro de l'imprimante principale dans le premier champ de définition dans PARAM.DAT.
Standby Numéro de l'imprimante de secours dans le 16ème champ de définition dans PARAM.DAT.
Exemple
sub PRN1HS() 'pause printing on PRN1 and
PRINTER("OFF", 1); 'resume printing on PRN2
PRINTER("ON", 2);
END SUB
SV_SCADABasic_fr 290
PROGRAM
Voir aussi Exemple
Exécute, charge, enlève ou stoppe un programme.
Mode Mnémonique Syntaxe
0 STOP 1
1 START 1, 3
2 IS_LOADED 1
3 PRELOAD 1,3
4 UNLOAD 1
5 EXECUTE 1
9 FUNCTION 2
10 IS_FUNCTION 2
Syntaxe 1
IntVal = PROGRAM(Mode, ProgName, Branch) ;
Type de retour : INTEGER
Argument Signification
ProgName Nom du programme.
Branch Branche de la base de données pour le programme.
Exécution
Mode Mnémonique Action
0 STOP Stoppe l'exécution d'un programme et décharge.
Retour : 1 si OK, 0 sinon.
1 START Charge un programme et l'exécute.
Retour : 1 si OK, 0 si déjà chargé ou inexistant.
2 IS_LOADED Test si le programme est chargé.
Retour : 1 si chargé, 0 sinon.
3 PRELOAD Charge le programme.
Retour : 1 si OK, 0 si déjà chargé ou inexistant.
4 UNLOAD Décharge le programme.
Retour : 1 si OK, 0 si non chargé.
5 EXECUTE Exécute le programme.
Retour : 1 si OK, 0 si non chargé.
Syntaxe 2
IntVal = PROGRAM(Mode, ProgName, Branch, Function[,Farg]) ;
Type de retour : INTEGER
Argument Signification
ProgName Nom du programme.
Branch Branche de la base de données pour le programme.
Function Nom de la fonction dans le programme ProgName.
Farg Facultatif. Contient de 1 à 8 arguments séparés par des virgules. Jusqu'à 2 047 caractères.
SV_SCADABasic_fr 291
Type STR.
Exécution
Mode Mnémonique Action
9 FUNCTION Lance la fonction contenue dans nom_programme. Si le nom de fonction n'est
pas renseigné, c'est le MAIN qui est éxécuté.
Retour : 1 si OK, 0 si fonction ou programme non chargé.
10 IS_FUNCTION Renvoie 1 si la fonction existe, 0 sinon.
La fonction doit être pré-chargée avant d'être démarrée. Si la fonction appelante inclut une
branche, la fonction doit être pré-chargée avec la même branche.
Syntaxe 3
IntVal = PROGRAM(Mode, ProgName, Branch, [,Dynamic]) ;
Type de retour : INTEGER
Argument Signification
ProgName Nom du programme.
Branch Branche de la base de données pour le programme.
Dynamic Optionnel. 0 pour un chargement normal, 1 pour un chargement dynamique.
Exécution
Mode Mnémonique Action
1 START Charge le programme et l'exécute. Si le paramètre optionnel Dynamic est 1, le
programme est chargé et exécuté même si une copie de celui-ci est déjà
chargée.
Retour : 1 si OK, 0 sinon.
3 PRELOAD Charge le programme. Si le paramètre optionnel Dynamic est 1, le programme
est rechargé même si une copie de celui-ci est déjà chargée.
Exemple
IF(PROGRAM("IS_LOADED", "toto", "")==0) THEN
PROGRAM("START", "toto", "");
ENDIF
IF(PROGRAM("IS_LOADED", "toto", "")==0) THEN
PRINT("Program file not found");
ENDIF
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 292
PUT_BUFFER
Voir aussi
Insère une donnée dans une zone mémoire.
Syntaxe
PUT_BUFFER(Handle, Offset, Data);
Type de retour : aucun
Argument Signification
Handle Localisation du buffer mémoire retourné par ALLOC_BUFFER ou FILETOBUF. Type LONG.
Offset Offset à ajouter au handle, donne la position de départ d'écritre des données. Tout type
numérique.
Data Données à inserer dans le buffer. Type STR.
Exécution
Insère une donnée dans une zone mémoire réservée par un ALLOC_BUFFER à l'offset précisé.
Exemple
SUB Main()
'Declare
DIM lngBuffer1 as Long;
DIM strLine as Str;
DIM intLength as Integer;
lngBuffer1 = ALLOC_BUFFER(110);
strLine = "123.34;string_here;345;123456789;‚t‚\n";
PUT_BUFFER(lngBuffer1, 0, strLine);
intLengh = ASCIIFIELD("LEN",lngBuffer1);
PRINT("Length: ",intLengh);
FREE_BUFFER(lngBuffer1);
END SUB
SV_SCADABasic_fr 293
RECIPE
Voir aussi Exemple Spécifiques
Gestion des recettes.
Mode Mnémonique Syntaxe
1 EXIST 1
2 SEND 1, 5
3 REALTIME 1, 2
4 READ 3
5 CREATE 4
6 SENDEVEN 1, 5
7 REALTIMEEVEN 1, 2
8 STARTWATCH 6, 7
9 STOPWATCH 1, 5, 10
10 REALTIMECREATE 5, 8
11 REALTIMECREATEEVEN 5, 8
12 REFRESH 9
14 NETWORKBROADCAST 11
15 NETWORKBROADCAST 12
ALL
Les valeurs des poids des droits d'accès sont décrits dans le chapitre Poids des Droits d'Accès.
La taille maximum du fichier recette pour le mode SEND est de 128 Ko.
La taille maximum du fichier recette pour le mode NETWORKBROADCAST est de 64 Ko.
Syntaxe 1
IntVal = RECIPE(Mode, Identifier);
Type de retour : INTEGER
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration des
Recettes). Type STR.
Exécution
Mode Mnémonique Action
1 EXIST Test si une recette existe, la recette est identifiée par son numéro ou par son
libellé.
Retour :
0 signifie que la recette n'existe pas
1 signifie que le n° de la recette existe
2 signifie que le libellé de la recette existe
2 SEND Envoi direct d'une recette.
Retour : 1 si OK, 0 sinon.
3 REALTIME Modification d'une recette en prenant les valeurs temps réel.
Retour : 1 si OK, 0 sinon.
6 SENDEVEN La recette est envoyée même si certaines variables la composant sont invalides
ou hors limites.
SV_SCADABasic_fr 294
Retour : 1 si OK, 0 sinon.
7 REALTIMEEVEN Les valeurs de la recette sont rafraîchies, même si certaines sont NS ou hors
limites (ces dernières gardent leurs valeurs d'origine).
Retour : 1 si OK, 0 sinon.
9 STOPWATCH Permet de stopper une demande de rafraîchissement des valeurs d'une recette.
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = RECIPE(Mode, Identifier, NewNum, NewTitle, Flag, File);
Type de retour : INTEGER
Argument Signification
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration
des Recettes). Type STR.
NewNum Numéro de la nouvelle recette. Type STR.
NewTitle Titre de la nouvelle recette. Type STR.
Flag Sauvegarde de la nouvelle recette dans un fichier (0 ou 1).
File Nom du fichier dans lequel la recette est sauvegardée (si Flag = 1).
Exécution
Mode Mnémonique Action
3 REALTIME Modification d'une recette en prenant les valeurs temps réel.
Cet appel prend les valeurs courantes de chaque variable de la recette
"identificateur" et crée une nouvelle recette.
Retour : 1 si OK, 0 sinon.
7 REALTIMEEVEN Les valeurs de la recette sont rafraîchies, même si certaines sont NS ou hors
limites (ces dernières gardent leurs valeurs d'origine).
Retour : 1 si OK, 0 sinon.
Le nom du fichier dans lequel la recette a été sauvegardée ne peut pas être renommé par cette
commande, c'est-à-dire que les paramètres NewNum, NewTitle et File ne doivent pas être
modifiés.
Syntaxe 3
IntVal = RECIPE(Mode, Identifier, Handle, Size);
Type de retour : INTEGER
Argument Signification
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration
des Recettes). Type STR.
Handle Localisation du buffer mémoire retournée par un ALLOC_BUFFER. Type LONG.
Size Taille du fichier recette. Doit être supérieure à taillemax pour contenir la description de
la recette.
Exécution
Mode Mnémonique Action
4 READ Lecture d'une recette dans un buffer ASCII.
Retour : 1 si OK, 0 sinon.
Syntaxe 4
SV_SCADABasic_fr 295
IntVal = RECIPE(Mode, Handle, NewNum, NewTitle, Flag, File);
Type de retour : INTEGER
Argument Signification
Handle Localisation du buffer mémoire retournée par un ALLOC_BUFFER. Type LONG.
NewNum Numéro de la nouvelle recette. Type STR.
NewTitle Titre de la nouvelle recette. Type STR.
Flag Sauvegarde de la nouvelle recette dans un fichier (0 ou 1).
File Nom du fichier dans lequel la recette est sauvegardée (si Flag = 1).
Exécution
Mode Mnémonique Action
5 CREATE Création d'une recette à partir d'un buffer ASCII. La recette dont la description
est dans le buffer est ajoutée dans le système de recette du superviseur.
Retour : 1 si OK, 0 sinon.
Syntaxe 5
IntVal = RECIPE(Mode, Identifier, Branch);
Type de retour : INTEGER
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration des
Recettes). Type STR.
Branch Branche de la base de données qui préfixe tous les noms de variable dans la liste des recettes.
Type STR.
Exécution
Mode Mnémonique Action
2 SEND Envoi direct de la recette.
Retour : 1 si OK, 0 sinon.
6 SENDEVEN La recette est envoyée même si certaines variables la composant sont
invalides ou hors limites. Une branche peut être passée en argument.
Retour : 1 si OK, 0 sinon.
9 STOPWATCH Permet de stopper une demande de rafraîchissement des valeurs d'une
recette.
Retour : 1 si OK, 0 sinon.
10 REALTIMECREATE Modifie une recette en prenant les valeurs temps réel. Une branche peut être
passée en argument.
Retour : 1 si OK, 0 sinon.
11 REALTIMECREATEE Les valeurs de la recette sont rafraîchies, même si certaines sont NS ou hors
VEN limites.(Ces dernières gardent leurs valeurs d'origine.). Une branche peut
être passée en argument.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
WatchID = RECIPE(Mode, Identifier, Varname, Status);
Type de retour : INTEGER.
Argument Signification
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration
des Recettes). Type STR.
SV_SCADABasic_fr 296
Varname Nom de la variable état dans la base de données. Type STR.
Status 0 ou 1.
Exécution
Mode Mnémonique Action
8 STARTWATCH Mode permettant de "rafraîchir" les variables de la recette qui ne sont pas
cochées en "Surveillance permanente pour l'imagerie" (case à cocher de la
boîte de dialogue Options dans une fiche de description de variable). En créant
un événement sur changement de valeur de "état", une fonction peut être
éxécutée.
Retour : LONG identifiant la demande de "STARTWATCH"
1 les valeurs ont été rafraîchies.
0 l'identificateur n'a pas été trouvé ou la variable état n'a pas le bon type.
Syntaxe 7
WatchID = RECIPE(Mode, Identifier, Varname, Status, Branch);
Type de retour : INTEGER
Argument Signification
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration
des Recettes). Type STR.
Varname Nom de la variable état dans la base de données. Type STR.
Status 0 ou 1.
Branch Branche de la base de données qui préfixe tous les noms de variable dans la liste des
recettes.
Type STR.
Exécution
Mode Mnémonique Action
8 STARTWATCH Mode permettant de "rafraîchir" les variables de la recette qui ne sont pas
cochées en "Surveillance permanente pour l'imagerie".En créant un événement
sur changement d'état de "état", une fonction peut être éxécutée. Une branche
peut être passée en argument.
LONG identifiant la demande de "STARTWATCH"
1 les valeurs ont été rafraîchies.
0 l'identificateur n'a pas été trouvé ou la variable état n'a pas le bon type.
Syntaxe 8
IntVal = RECIPE(Mode, Identifier, Branch, NewNum, NewTitle, File);
Type de retour : INTEGER
Identifier Identifiant de la recette, soit le libellé, soit le numéro de la recette (voir Configuration des
Recettes). Type STR.
Branch Branche de la base de données qui préfixe tous les noms de variable dans la liste des recettes.
Type STR.
NewNum Numéro de la nouvelle recette. Type STR.
NewTitle Titre de la nouvelle recette. Type STR.
File Nom du fichier dans lequel la recette est sauvegardée (si flag = 1).
Exécution
Mode Mnémonique Action
SV_SCADABasic_fr 297
10 REALTIMECREATE Modification ou création d'une recette contenant des variables avec branche
(voir Mode = 3).
Retour : 1 si OK, 0 sinon.
11 REALTIMECREATEE Modification ou création d'une recette contenant des variables avec branche
VEN même si certaines variables sont en status NS (voir Mode = 7).
Une nouvelle recette est créé avec les valeurs temps réél de la recette
branchée.
Retour : 1 si OK, 0 sinon.
Le nom du fichier dans lequel la recette a été sauvegardée ne peut pas être renommé par cette
commande, c'est-à-dire que les paramètres NewNum, NewTitle et File ne doivent pas être
modifiés.
Syntaxe 9
IntVal = RECIPE(Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
12 REFRESH Force la relecture de la liste des recettes.Les recettes contenues dans le
répertoire "R" du projet, sont rechargées.Ce mode permet de prendre en
compte des ajouts ou suppression de recettes de manière externe au
superviseur.
Retour : 1 si OK, 0 sinon.
Syntaxe 10
IntVal = RECIPE(Mode, WatchID);
Type de retour : INTEGER
WatchID L'identificateur de la précédente fonction STARTWATCH. Type LONG.
Exécution
Mode Mnémonique Action
9 STOPWATCH Permet de stopper une demande de rafraîchissement des valeurs d'une recette.
Retour : 1 si OK, 0 sinon.
Syntaxe 11
IntVal =RECIPE(Mode, RecipeID, List, HStatus, EventVar, LocalRemote);
Argument Signification
RecipeID Nom ou numéro de la recette. Type STR.
List Nom de la liste des postes de l'architecture multipostes destinaires des modifications
(liste créée par le menu Configuration.Communication.Multipostes). Type STR.
HStatus Handle du buffer alloué par ALLOC_BUFFER. Après l'exécution de l'instruction, le buffer
contient une liste des postes et leur statut de mise-à-jour suivant le format :
StaNum,Status,...;.,...;...;
où StaNum est le numéro du poste et Status est à 1 si 0K, 0 sinon.
EventVar Nom de la variable état de la base de données positionnée à 1 après exécution de
l'instruction. Si EventVar n'est pas nécessaire une chaîne nulle ("") doit être utilisée car
cet argument ne peut pas être omis. Type STR.
LocalRemote Flag déterminant l'emplacement où le changement de configuration de la recette doit
SV_SCADABasic_fr 298
être propagé :
1 : Tous les postes (y compris le poste local).
0 : Seulement les postes déportés (par défaut).
Exécution
Mode Mnémonique Action
14 NETWORKBROADC Propagation d’une recette sur les postes définis dans la liste.
AST
Retour : 1 si OK, 9 sinon.
Syntaxe 12
IntVal =RECIPE(Mode, List, HStatus, EventVar, LocalRemote);
Argument Signification
List Nom de la liste des postes de l'artchitecture multipostes destinaires des modifications
(liste créée par le menu Configuration.Communication.Multipostes). Type STR.
HStatus Handle du buffer alloué par ALLOC_BUFFER. Après l'exécution de l'instruction, le buffer
contient une liste des postes et leur statut de mise-à-jour suivant le format :
StaNum,Status,&ldots;.,&ldots;&ldots;
où StaNum est le numéro du poste et Status est à 1 si 0K, 0 sinon. Type LONG.
EventVar Nom de la variable état de la base de données positionnée à 1 après exécution de
l'instruction. Si EventVar n'est pas nécessaire une chaîne nulle ("") doit être utilisée car
cet argument ne peut pas être omis. Type STR.
LocalRemote Flag déterminant l'emplacement où le changement de configuration de la recette doit
être propagé :
1 : Tous les postes (y compris le poste local).
0 : Seulement les postes déportés (par défaut).
Exécution
Mode Mnémonique Action
15 NETWORKBROADCA Diffusion de l'ensemble des recettes sur les postes définis dans la liste.
STALL
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 299
REFRESH_DB
Voir aussi
Affectation asynchrone de variables de la base de données à partir d'un fichier ASCII
Mode Mnémonique Syntaxe
0 SETUP 1
1 LOAD 2
Syntaxe 1
IntVal = REFRESH_DB(Mode, AssignTime, IdleTime);
Argument Signification
AssignTime Temps alloué à une tranche de traitement d'affectation des variables. Valeur par défaut
: 250 ms. Type INTEGER.
IdleTime Temps de suspension entre deux tranches de traitement. Valeur par défaut : 250 ms.
Type INTEGER.
Si le mode SETUP est appellé sans argument, les valeurs 0 et 0 sont retenues, ce qui signifie que le
traitement est effectué en une seule passe et peut donc être éventuellement bloquant selon la taille
du fichier traité.
Syntaxe 2
IntVal = REFRESH_DB(Mode, Filename [, Type]);
Filename Nom du fichier dans lequel l'affectation sera faite. La syntaxe doit être la suivante :
id1, val1
id2, val2
............
idn, valn
où :
id est l'identificateur de la variable
val est la valeur d'affectation
Type Spécifie le type de fichier :
0 Nom complet de la variable. (Défaut)
1 Tagname de la variable.
SV_SCADABasic_fr 300
Retour : 1 si OK, 0 sinon.
Exemple
sub rdb_set()
refresh_db("SETUP", 800, 1000);
END SUB
sub rdb_go()
DIM i as integer;
i = 0;
while (i == 0)
i = refresh_db("LOAD", "C\\DLOAD\\tstvar.txt");
delay(2);
wend
END SUB
SV_SCADABasic_fr 301
REGION
Voir aussi Exemple
Gère le nombre de régions d'affichage.
Mode Mnémonique Syntaxe
1 SETSYSREGION 1
2 GETSYSREGION 2
3 SETREGION 1
4 GETREGION 2
5 SETSELECTION 3
6 GETSELECTION 2
7 GETSELECTIONMO 2
DE
Syntaxe 1
IntVal = REGION(Mode, Regions);
Argument Signification
Regions Nombre de régions. Type INTEGER.
Lors de l'utilisation de régions multiples, vous devez positionner la région avant l'exécution
d'instructions qui interagissent avec l'IHM (WINDOW, ALARMDISPLAY, etc ...).
Dim iRegion As Integer;
iRegion = 1;
Region ("SETREGION", iRegion);
Window("OPEN", "Alarmwindow", "");
Si vous exécutez un programme depuis une animation, vous pouvez obtenir la région de
localisation du synoptique en utilisant GETARG("VARSTATUS")
Dim iRegion As Integer;
iRegion = GETARG("VARSTATUS");
Region ("SETREGION", iRegion);
Alarmdisplay("ACK_SELECTED", "Alarmwindow", "", "Alarm1");
Syntaxe 2
IntVal = REGION(Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
2 GETSYSREGION Retourne le nombre de régions de l'écran.
SV_SCADABasic_fr 302
4 GETREGION Retourne la région courante.
6 GETSELECTION Retourne la région sélectionnée.
7 GETSELECTIONMO Retourne le mode sélection.
DE
Syntaxe 3
IntVal = REGION(Mode, Regions[, SubMode]);
Argument Signification
Regions Nombre de région. Type INTEGER.
SubMode Tout type numérique.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus.
SV_SCADABasic_fr 303
REGVAR2D
Voir aussi
Force l'utilisation de variables mesure en type DOUBLE dans un programme.
Syntaxe
REGVAR2D([Flag]);
Type de retour : Aucun
Argument Signification
Flag 0 ou 1
Exécution
Dépend of Flag.
Setting Signification
1 Force l'utilisation des variables mesure en type DOUBLE pour les programmes. (Défaut)
2 N'autorise pas l'utilisation des variables mesure en type DOUBLE dans les programmes
(le type SINGLE leur est appliqué).
Exemple
'Database variables
'@REGISTER01: Register type
'@REGISTER02: Register type
SUB Main()
REGVAR2D(1);
'The register variable is now type Double
'so this assignment works correctly:
@REGISTER01 = COS(45);
REGVAR2D(0);
'Automatic conversion to Double is disabled.
'The next line causes a runtime error
'because the Register variable is now Single:
@REGISTER02 = COS(45);
END SUB
SV_SCADABasic_fr 304
RENAME
Voir aussi
Renomme un fichier.
Syntaxe
IntVal = RENAME(OldName, NewName);
Argument Signification
OldName Nom courant du fichier. Type STR.
NewName Nouveau nom du fichier. Type STR.
Exemple
'Create a file old.txt in the TP folder
SUB Main()
If (RENAME("old.txt","new.txt")==0) Then
'If the Rename command does not work,
'that is because the new file already exists,
'so delete it if possible:
If (UNLINK("nouveau.txt")==1) Then
RENAME ("old.txt","new.txt");
Else
Print("Ensure that the new file is not already open.");
End If
End If
END SUB
SV_SCADABasic_fr 305
REPLACE
Syntaxe
StrVal = REPLACE (InputString, OldSubString, NewSubString[, CaseSensitive[, OccurrenceCount]]);
Argument Signification
InputString Chaîne saisie. Longueur maximum : 32 000 caractères. Type STR.
OldSubString Sous-chaîne à rechercher. Longueur maximum : 2 047 caractères. Type STR.
NewSubString Chaîne de remplacement. Longueur maximum : 2 047 caractères. Type STR.
CaseSensitive Flag indiquant si la recherche est casse sensitive :
0 = Casse ignorée (par défaut).
1 = Respecter la casse.
OccurrenceCount Nombre maximum d'occurences de OldSubString à remplacer. Tous types
numériques.
Exécution
Action
Recherche InputString pour les occurrences de OldSubString et remplace avec NewSubString. Type de
retour : STR.
Retour : Chaîne modifiée.
SV_SCADABasic_fr 306
RETURN
Voir aussi Exemple
Sortie de procédure.
Syntaxe
RETURN(Value);
Type de retour : Aucun
Argument Signification
Value Valeur retournée par la fonction. Tout type de variable.
Exécution
Sortie de la procédure courante et retour à la procédure appelante avec renvoi éventuel d'une valeur.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 307
RIGHT
voir aussi
Copie les n derniers caractères de la chaîne.
Syntaxe
StrVal = RIGHT(Input, N);
Type de retour : STR
Argument Signification
Input Chaîne de caractères à manipuler. Type STR.
N Nombre de caractères à retourner. Tout type numérique.
Exécution
Si N est supérieur à la longueur de la chaîne, la chaîne entière est retournée.
Exemple
SUB Main()
DIM strResult as Str;
DIM strString as Str;
SV_SCADABasic_fr 308
RTRIM
Voir aussi
Renvoie la copie d'une chaîne sans les espaces à droite.
Syntaxe
StrVal = RTRIM(string);
Type de retour : STR
Exemple
SUB Main()
'Declare
DIM strResult as Str;
DIM strValue as Str;
SV_SCADABasic_fr 309
SELECTOR
Voir aussi Exemple Spécifiques
Modification des caractéristiques d'une animation contrôle grid.
Lors de l'utilisation de régions multiples, vous devez positionner la région avant l'exécution
d'instructions qui interagissent avec l'IHM. Pour plus d'informations, voir le chapitre REGION.
SV_SCADABasic_fr 310
25 INPUTPROG 11
26 CLEAR 1
27 SETNBLINE 8
28 GETLASTCELL 1
30 SORT 12
31 GETCELLBACKCOLOR 13
32 GETCELLTEXTCOLOR 13
33 PUTBACKCOLOR 14
34 PUTTEXTCOLOR 14
35 GETVARNAME 15
36 HISTORICAL Voir le chapitre SELECTOR
mode HISTORICAL
Syntaxe 1
IntVal = SELECTOR(Mode, Window, Branch, Identity);
Type de retour : INTEGER
Argument Signification
Window Nom du synoptique qui contient l'animation contrôle grid. Type STR.
Branch Branche éventuelle avec laquelle ce synoptique a été ouvert Type STR.
Identity Identifiant de l'animation qui a été saisi sur la fiche de configuration de l'animation contrôle
grid. Type STR.
Exécution
Mode Mnémonique Action
1 GETNBLINE Renvoie le nombre de ligne affichables (selon la dimension du
rectangle support), 0 si erreur de syntaxe.
2 GETNBCOL Renvoie le nombre de colonnes de l'animation, 0 si erreur de syntaxe.
12 GETLISTART Renvoie l'indice de la première ligne visible par rapport à l'ensemble
du contrôle grid, 0 si erreur de syntaxe
13 GETNBLINEMAX Renvoie le nombre total de lignes présentes dans la mémoire du
tableau, 0 si erreur de syntaxe.
16 SELECTLINE Renvoie l'indice de la ligne de la cellule couramment sélectionnée, - 1
si aucune cellule sélectionnée.
17 SELECTCOL Renvoie l'indice de la colonne de la cellule courramment sélectionnnée,
- 1 si aucune cellule sélectionnée.
19 SFIRSTCELL Multisélection uniquement : Trouve la première cellule sélectionnée à
partir du début du tableau (0,0). Utiliser les modes 16 (SELECTLINE)
et 17 (SELECTCOL) pour obtenir respectivement la ligne et la colonne
de la cellule trouvée.
Renvoie 1 si une cellule a été trouvée, 0 sinon.
20 SNEXTCELL Multisélection uniquement : Trouve la prochaine cellule sélectionnée à
partir de la dernière cellule trouvée par cette même fonction ou par le
mode 19 ( SFIRSTCELL).
Utiliser les modes 16 (SELECTLINE) et 17 (SELECTCOL) pour obtenir
respectivement la ligne et la colonne de la cellule trouvée.
L'ordre de balayage s'effectue de gauche à droite puis de haut en bas.
Renvoie 1 si une cellule a été trouvée, 0 sinon.
SV_SCADABasic_fr 311
21 ALLSELOFF Permet de désélectionner toutes les cellules sélectionnées d'un
tableau.
Renvoie 1 si OK, 0 sinon.
26 CLEAR Permet de vider tout le tableau. Les cellules sont réinitialisées.
Renvoie 1 si OK, 0 sinon.
28 GETLASTCELL Renvoie le nombre de ligne rempli dans le tableau.
Syntaxe 2
StrVal = SELECTOR(Mode, Window, Branch, Identity, Line, Column);
Argument Signification
Line L'index de la ligne. Type INTEGER.
Column L'index de la colonne. Type INTEGER.
Exécution
Mode Mnémonique Action
3 GETCELL Renvoie le contenu de la cellule pointée par ligne et colonne (en base 0). Type
de retour : STR
22 CLICKCELL Simule une action de clic souris sur la cellule de ligne et de colonne spécifiée.
Renvoie 1 si OK, 0 sinon. Type de retour : INTEGER
23 GETSEL Récupère l'attribut de sélection, permet donc de savoir si la cellule de ligne et
de colonne spécifiée est sélectionnée ou non. Renvoie 1 si elle est
sélectionnée, 0 sinon. Type de retour : INTEGER
Syntaxe 3
IntVal = SELECTOR(Mode, Window, Branch, Identity, Line, Hbuf, Csepa);
Type de retour : INTEGER
Argument Signification
Hbuf Localisation du buffer mémoire retournée par un ALLOC_BUFFER . Type LONG.
Csepa Caractère simple utilisé comme délimiteur de chaque colonne. Type STR.
Exécution
Mode Mnémonique Action
4 GETLINE Remplit le buffer hbuf avec la ligne pointée par lig, le séparateur de colonne
étant csepa.
8 PUTLINE Remplit la ligne lig du tableau avec le contenu du buffer hbuf, le séparateur
de colonne étant csepa
Syntaxe 4
IntVal = SELECTOR(Mode, Window, Branch, Identity, Col, Hbuf, Lsepa);
Type de retour : INTEGER
Argument Signification
Lsepa Caractère simple utilisé comme délimiteur de fin de chaque ligne. Type STR.
Exécution
Mode Mnémonique Action
5 GETCOL Remplit le buffer hbuf avec la colonne pointée par colonne, le séparateur de
ligne étant lsepa
9 PUTCOL Remplit la colonne col du tableau avec le contenu du buffer hbuf, le
SV_SCADABasic_fr 312
séparateur de ligne étant lsepa
Syntaxe 5
IntVal = SELECTOR(Mode, Window, Branch, Identity, Hbuf, StartLine, StartCol, EndLine, EndCol, CLsepa);
Type de retour : INTEGER
Argument Signification
StartLine L'index de début de la ligne. Type INTEGER.
StartCol L'index de début de la colonne. Type INTEGER.
EndLine L'index de fin de la ligne. Type INTEGER.
EndCol L'index de finde la colonne. Type INTEGER.
CLsepa Deux caractères utilisés comme délimiteurs pour le texte dans chaque colonne et ligne. Type
STR.
Exécution
Mode Mnémonique Action
6 GETARRAY Remplit le buffer hbuf avec une zone définie par une cellule de début haut
gauche (li_start, co_start) jusqu'à une cellule de fin (li_end, co_end), les
séparateurs sont donnés dans une chaîne de caractères (2 caractères) dans
clsepa. Si le buffer n'a pas été créé ou si le nom du buffer est vide, celui-ci
est créé automatiquement à la bonne taille. La fonction retourne alors le
handle du buffer.
10 PUTARRAY Remplit le tableau avec le contenu du buffer hbuf, à partir de la cellule
(li_start, co_start), les séparateurs sont donnés dans une chaîne de
caractères (2 caractères) dans clsepa
Dans les deux modes, les deux caractères fournis par CLsepa sont utilisés comme délimiteurs de colonne
et de ligne.
Syntaxe 6
IntVal = SELECTOR(Mode, Window, Branch, Identity, Line, Column, Chain);
Type de retour : INTEGER
Argument Signification
Chain Chaîne de caractère. Type STR.
Exécution
Mode Mnémonique Action
7 PUTCELL Remplit la cellule du tableau (ligne, colonne) avec la chaîne passée en
argument.
Syntaxe 7
IntVal = SELECTOR(Mode, Window, Branch, Identity, OpMode [, LineNo]);
Type de retour : INTEGER
Argument Signification
OpMode Nombre indiquant le mode opérationnel du contrôle grid.
LineNo Nombre indiquant une ligne spécifique. Type INTEGER.
Exécution
Mode Mnémonique Action
11 SCROLL Déroule le contenu du contrôle grid à travers la zone de visibilité du
support.
SV_SCADABasic_fr 313
Les sous-modes définis par SCROLLMode sont :
1 TOBEGIN
2 PAGEUP
3 LINEUP
4 LINEDOWN
5 PAGEDOWN
6 TOEND
7 TOLINE (Un numéro de ligne spécifique doit apparaître)
8 TOFIRSTCOL
9 PAGELEFT
10 COLLEFT
11 COLRIGHT
12 PAGERIGHT
13 TOLASTCOL
14 TOCOL (Un numéro de colonne spécifique doit apparaître)
Retour : 1 si OK, 0 sinon.
18 SELECTMODE Permet de changer dynamiquement le comportement aux actions
opérateurs dans les cellules. L'argument OpMode définit le comportement
:
0 OFF
1 MONO
3 MULTI
5 INPUT
Retour : 1 si OK, 0 sinon.
Syntaxe 8
IntVal = SELECTOR(Mode, Window, Branch, Identity, LineNo);
Type de retour : INTEGER
Argument Signification
LineNo Numéro indiquant une ligne spécifique. Type INTEGER.
Exécution
Mode Mnémonique Action
27 SETNBLINE Permet de définir la dernière ligne qui sera visible par défilement. Si les
lignes visibles sont au-delà de la nouvelle valeur nbline, le tableau se
positionne sur cette dernière ligne. Une écriture dans une cellule au-delà de
nbline repositionne nbline
Retour : 1 si OK, 0 sinon.
Syntaxe 9
IntVal = SELECTOR(Mode, Window, Branch, Identity, Filter, VarType);
Type de retour : INTEGER
Argument Signification
Filter Filtre, appliqué au nom de la variable, pour les variables affichées.
Selon la configuration de l'AIgrid, soit :
SV_SCADABasic_fr 314
• Une expression régulière - Pour plus d'informations, voir le chapitre Expressions
régulières.
• Une expression SQL - Pour plus d'informations, voir le chapitre Utilisation d'une
Expression SQL pour Filtrer une Liste de Variables dans la section d'aide
"Développement de l'IHM".
Il est possible de combiner les types entre eux. Si l'on veut les alarmes et les états, VARTYPE = 1+2
= 3.
Exécution
Mode Mnémonique Action
14 VARIABLE Permet de remplir automatiquement le contrôle grid par des variables de la
base de données qui correspondent au filtre de sélection "filter" choisi. Ce
filtre porte sur le nom des variables et sa syntaxe doit être conforme au
standard des expressions régulières.
Retour : 1 si OK, 0 sinon.
Pour utiliser ce mode, la propriété Suivi de variables de l'animation contrôle grid doit être positionnée
en premier.
Les fonds de texte des valeurs sont affichés avec la couleur de sélection du tableau si ces variables
sont commandables. Un clic sur la valeur fait apparaître une boîte de dialogue identique à celle qui
est utilisée pour les Forçages.
Syntaxe 10
IntVal = SELECTOR(Mode, Window, Branch, Identity, VarType);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
15 VARMODE Ce mode permet d'afficher le nom et le libellé des variables dans la première
colonne du contrôle grid. Le nom de la variable est affiché si VarType = 0, le
libellé si VarType = 1 ou bien les deux si VarType = 2.
Retour : 1 si OK, 0 sinon.
Syntaxe 11
IntVal = SELECTOR(Mode, Window, Branch, Identity, program, pbranch, function [farg]);
Argument Signification
Farg Facultatif. Chaîne de 2 047 caractères maximum, contenant de 1 à 8 arguments séparés par
des , (virgule). Ces arguments sont récupérables dans la fonction à exécuter par le verbe
GETARG
SV_SCADABasic_fr 315
tableau est cliquée. Le tableau doit être en mode monosélection ou
multisélection. SELECTLINE et SELECTCOL sont positionnés.
Retour : 1 si OK, 0 sinon.
25 INPUTPROG Permet de spécifier une fonction qui sera éxécutée dès qu'une boîte de
dialogue de saisie directe est validée. Le tableau doit être en mode de saisie
directe. SELECTLINE et SELECTCOL sont positionnés.
Retour : 1 si OK, 0 sinon.
Syntaxe 12
IntValt = SELECTOR(Mode, Window, Branch, Identity, Column, Flag);
Type de retour : INTEGER
Argument Signification
Colum Numéro de la colonne. Type INTEGER.
Flag Indicateur de l'ordre de tri. Type INTEGER.
Exécution
Mode Mnémonique Action
30 SORT La colonne de numéro num_colonne est triée en ordre croissant si ordre est
supérieur ou égal à 0
0 ou supérieur : croissant
inférieur à 0 : décroissant.
Retour : 1 si OK, 0 sinon.
Lors de l'utilisation d'un contrôle grid pour afficher les valeurs de variables de la base de données,
seules les variables de la zone visible du contrôle grid sont abonnées et ont des valeurs temps-réel.
Syntaxe 13
IntValt = SELECTOR(Mode, Window, Branch, Identity, Line, Column);
Argument Signification
Line Index d'une ligne. Type INTEGER.
Column Index d'une colonne. Type INTEGER.
Color Couleur d'une valeur d'un octet en valeur RGB. Rouge est l'octet 0, vert l'octet 1 et bleu
l'octets 2. Par exemple, rouge est 255, vert 65280 et jaune (rouge + vert) 65535. Type
LONG.
Exécution
Mode Mnémonique Action
31 GETCELLBACKOLOR Retourne la couleur de fond d'une cellule comme une valeur
d'octet.
Type de retour : LONG.
32 GETCELLTEXTCOLOR Retourne la couleur du texte d'une cellule comme une valeur
d'octet.
Type de retour : LONG.
Syntaxe 14
IntValt = SELECTOR(Mode, Window, Branch, Identity, StartLine, StartCol, EndLine, EndCol, Color);
Type de retour : INTEGER.
Argument Signification
StartLine Index d'une ligne. Type INTEGER.
SV_SCADABasic_fr 316
StartCol Index d'une colonne. Type INTEGER.
EndLine Index d'une ligne. Type INTEGER.
EndCol Index d'une colonne. Type INTEGER.
Color Couleur d'une valeur d'un octet. Type LONG.
Exécution
Mode Mnémonique Action
33 PUTBACKCOLOR Modifie la couleur de fond d'une gamme de cellules par la couleur
donnée par le paramètre Color. La gamme des cellules est définie
par les paramètres StartLine, StartCol, EndLine, EndCol.
34 PUTTEXTCOLOR Modifie la couleur du texte d'une gamme de cellules par la
couleur donnée par le paramètre Color. La gamme des cellules
est définie par les paramètres StartLine, StartCol, EndLine,
EndCol.
Syntaxe 15
IntValt = SELECTOR(Mode, Window, Branch, Identity, LineNo,);
Type de retour : STR.
Argument Signification
LineNo Numéro indiquant une ligne spécifique. Type INTEGER.
Exécution
Mode Mnémonique Action
35 GETVARNAME Retourne le nom de la variable dans la ligne spécifiée lorsque le
contrôle grid est en mode suivi.
Retour : Nom de la variable.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 317
SELECTOR mode HISTORICAL
Voir aussi Exemple Plus d'informations
Sélectionne les données affichées dans une animation contrôle grid. Ce chapitre ne traite que du mode
HISTORICAL. Voir le chapitre principal SELECTOR pour les autres modes.
Si vous utilisez un projet en régions multiples, vous devez paramétrer la région avant d'exécuter
les instructions qui interagissent avec l'IHM. Voir le chapitre REGION pour plus d'informations.
Toutes syntaxes
Argument Signification
Window Nom de la fenêtre contenant le contrôle grid à utiliser. Type STR.
Branch Branche de la fenêtre (si nécessaire). L'utilisation d'un "*" signifie la branche courante
du programme. Type STR.
Identity Identifiant du contrôle grid dans la fenêtre spécifiée. Type STR.
Syntaxe 1
IntVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity);
Type de retour : INTEGER.
Exécution
Sous-mode Action
GETCOUNT Retourne le nombre de variables en tendance dans la liste.
Retour : -1 si la fonction échoue, sinon le nombre de tendance dans la liste.
CLEARTRENDS Supprime toutes les variables en tendance dans la liste. Type de retour :
INTEGER.
Retour : -1 si la fonction échoue, sinon le nombre de variables en tendance
supprimées.
RESTOREDEFAULT Restaure la liste des variables et des seuils en tendance comme la configuration
d'origine du contrôle grid.
Retour : La quantité de variables en tendance restaurées si OK, -1 sinon.
CANCEL Annule la requête aux historiques courante.
Retour : 1 si 0K, -1 sinon.
EXPORT Démarre l'assistant d'Export depuis le contrôle grid spécifié.
Retour : 1 si 0K, -1 si Contrôle Grid pas en mode historiques, 0 sinon.
SV_SCADABasic_fr 318
Syntaxe 2
IntVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity, VarName [, Index]);
Type de retour : INTEGER.
Argument Signification
VarName Nom d'une variable. Type STR.
Index Index dans la liste. 1 = début de la liste. Type INTEGER.
Exécution
Sous-mode Action
INSERTTREND Insère une nouvelle variable en tendance dans la liste des variables à la position Index.
Si le paramètre Index est omis, la variable est insérée au début de la liste.
Retour : -1 si la fonction échoue, sinon la position de la variable dans la liste.
Syntaxe 3
IntVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity[, Index]);
Type de retour : INTEGER.
Argument Signification
Index Index dans la liste. 1 = début de la liste. Type INTEGER.
Exécution
Sous-mode Action
REMOVETREND Supprime la variable en tendance, à la position Index, depuis la liste des variables. Si le
paramètre Index est omis, la variable de la fin de la liste est supprimée.
Retour : -1 si la fonction échoue, sinon la position de la variable dans la liste.
Syntaxe 4
IntVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity, Index, VarName[,
Thresholds]);
Type de retour : INTEGER.
Argument Signification
VarName Nom d'une variable. Type STR.
Index Index dans la liste. 1 = début de la liste. Type INTEGER.
Thresholds Flag. Type INTEGER.
Exécution
Sous-mode Action
SETTREND Modifie la variable en tendance à la position Index. Le flag Thresholds indique si le
système de seuil doit être conservé (1) ou supprimé (0). 0 par défaut.
Retour : 1 si 0K, -1 sinon.
Syntaxe 5
StrVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity, Index);
Type de retour : STR.
Argument Signification
Index Index dans la liste. 1 = début de la liste. Type INTEGER.
Exécution
Sous-mode Action
GETTRENDBYINDEX Retourne le nom de la variable en tendance à la position du paramètre Index.
Retour : Nom de la variable si OK, chaîne vide sinon.
SV_SCADABasic_fr 319
Syntaxe 6
IntVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity, VarName);
Type de retour : INTEGER.
Argument Signification
VarName Nom d'une variable. Type STR.
Exécution
Sous-mode Action
GETTINDEX Retourne l'index de la variable en tendance nommée.
Retour : Index du nom de la variable si OK, chaîne vide sinon.
Syntaxe 7
IntVal = SELECTOR("HISTORICAL", Sous-mode, Window, Branch, Identity, StatusVariable [,StartTime,
EndTime[, SamplingRateInterval[, SamplingRateValue[, SynchroSecondValue, SynchroMinuteValue,
SynchroHourValue, SynchroDayValue]]]]));
Type de retour : INTEGER.
Argument Signification
StatusVariable Nom d'une variable mesure. Positionné à 1 lorsque la requête est en cours
d'exécution, 0 sinon.
StartTime Equivalent à la valeur fournie par la variable Heure de début dans l'onglet
Historiques/Durée de la boîte de dialogue de configuration du contrôle grid.
Type DOUBLE.
EndTime Equivalent à la valeur fournie par la variable Heure de fin dans l'onglet
Historiques/Durée de la boîte de dialogue de configuration du contrôle grid.
Type DOUBLE.
SamplingRateInterval Equivalent à l'unité du taux d'échantillonnage dans l'onglet
Historiques/Echantillonnage de la boîte de dialogue de configuration du contrôle
grid. Type INTEGER.
0 = millisecondes
1 = secondes
2 = minutes
3 = heures
4 = jours
5 = semaines
6 = mois
SamplingRateValue Equivalent à la propriété Taux d'échantillonnage de l'onglet
Historiques/Echantillonnage de la boîte de dialogue de configuration du contrôle
grid.Type INTEGER.
SynchroSecondValue Equivalent à la propriété Secondes de l'onglet Historiques/Echantillonnage de la
boîte de dialogue de configuration du contrôle grid. Type INTEGER.
SynchroMinuteValue Equivalent à la propriété Minutes de l'onglet Historiques/Echantillonnage de la
boîte de dialogue de configuration du contrôle grid. Type INTEGER.
SynchroHourValue Equivalent à la propriété Heures de l'onglet Historiques/Echantillonnage de la
boîte de dialogue de configuration du contrôle grid. Type INTEGER.
SynchroDayValue Equivalent à la propriété Jours de l'onglet Historiques/Echantillonnage de la
boîte de dialogue de configuration du contrôle grid. Type INTEGER.
Exécution
Sous-mode Action
REQUEST Génère une nouvelle requête aux historiques pour le contrôle grid en utilisant les
paramètres fournis. Pour une explication complète du fonctionnement des paramètres,
voir l'aide du contrôle grid
Retour : 1 si 0K, -1 si Contrôle Grid pas en mode historiques, 0 sinon.
Exemple
SV_SCADABasic_fr 320
Pour plus d'exemples, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 321
SENDLIST
Voir aussi Plus d'informations
Envoi d'une liste de variable.
Cette instruction est utilisée en conjonction avec l'instruction SET.
Syntaxe 1
IntVal = SENDLIST(Mode[, VarName[, OPCMode]]);
Type de retour : INTEGER
Argument Signification
VarName Nom de la variable mesure de la base de données dans laquelle est retourné le status d'envoi
des variables. Type STR.
Les valeurs de status d'envoi des variables sont les suivantes :
0 En cours d'envoi.
1 Acquittement positif de l'envoi.
2 Acquittement négatif de l'envoi.
OPCMode Mode d'envoi lorsque la source de la valeur de la variable est OPC :
0 Sérialisation optimisée (par défaut)
1 Sérialisation complète
2 Aucune optimisation
3 Optimisation complète
Exécution
Voir le chapitre Mode d'envoi SENDLIST.
Retour (pour les 2 modes) : 1 si OK, sinon 0.
Les variables doivent être déclarées en commande pour que l'envoi soit effectif.
Exemple
Dim strVar as STR;
strVar = "BR1.VAL";
'note NOT "@BR1.VAL"
SET(strVar,12);
SENDIST("BLOC");
SUB Main()
i1 = SET ("Register1",600,);
'address AP of Register 1 : S1
i1 = SET ("Register2",700,);
'address AP of Register 1 : S2
i1 = SET ("Register3",500,);
'address AP of Register 1 : S5
i1 = SET ("Register4",400,);
'address AP of Register 1 : S6
i1 = SET ("Register5",300,);
'address AP of Register 1 : S7
SV_SCADABasic_fr 322
SENDLIST ("BLOC"); 'Send a frame, writing words S1 to S7
' (S3 and S4 will be written with their current values)
END SUB
SV_SCADABasic_fr 323
SEQ_BUFFER
Voir aussi Exemple
Manipulation d'enregistrements et de champs dans un buffer.
Mode Mnémonique Syntaxe
1 CLEAR 1
2 PUT_LINE 2
3 BEGIN 3
4 END 3
5 NEXTFIELD 4, 7
6 PREVFIELD 4, 7
7 SEEKFIELD 5
8 REPLACEFIELD 6
8 INSERTFIELD 6
9 CRLFTOCR 3, 8
10 CRTOCRLF 3, 8
11 LEN 3
12 ASCIITOANSI 3
13 ANSITOASCII 3
Syntaxe 1
IntVal = SEQ_BUFFER(Mode, Handle);
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
1 CLEAR Tous les enregistrements du buffer sont supprimés.
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = SEQ_BUFFER(Mode, Handle, Text);
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.
Text Ligne de texte à placer dans le buffer. Type STR.
Exécution
Mode Mnémonique Action
2 PUT_LINE Un enregistrement est ajouté en fin de buffer.
Le caractère retour chariot <carriage return> est ajouté en fin
d'enregistrement.
1 si OK, -1 dans le cas d'un buffer plein, 0 sinon.
Syntaxe 3
SV_SCADABasic_fr 324
IntVal = SEQ_BUFFER(Mode, Handle);
Type de retour : INTEGER excepté pour le mode 11 où le type de retour est LONG.
Argument Signification
Handle Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
3 BEGIN Positionnement sur le premier champ du buffer.
4 END Positionnement en fin de buffer.
9 CRLFTOCR Permet de transformer dans le buffer toutes les occurences <line
feed><carriage return> par <carriage return>.
10 CRTOCRLF Permet de transformer dans le buffer toutes les occurences <carriage
return> par <line feed><carriage return>.
11 LEN Retourne la longueur du buffer.
12 ASCIITOANSI Convertit les caractères ASCII du buffer en ANSI.
13 ANSITOASCII Convertit les caractères ANSI du buffer en ASCII.
Retour : 1 si OK, 0 sinon (excepté Mode 11 – voir ci-dessus).
CRTOCRLF nécessite suffisamment d'espace dans le buffer pour les caractères ajoutés lors du
remplacement de toutes les instances de CR en CRLF. Par exemple, un buffer créé directement par
FILETOBUF sera trop petit (puisque sa taille est ajustée au nombre de caractères présents dans le
fichier d'origine).
Syntaxe 4
IntVal = SEQ_BUFFER(Mode, Handle, Separator, ResultHandle);
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.
Separator Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.
ResultHandl Handler du buffer dans lequel le résultat de l'instruction est placé.
e
Exécution
Mode Mnémonique Action
5 NEXTFIELD RLecture du champ courant.Le résultat est dans handle_reception.
6 PREVFIELD Lecture du champ précédent.
Retour : 1 si OK, 0 sinon.
Syntaxe 5
IntVal = SEQ_BUFFER(Mode, IncPosition, Handle, Separator);
Type de retour : INTEGER
Argument Signification
IncPosition Nombre de valeur par lesquelles le pointeur est modifié (négatives ou positives, en comptant
les champs de la position courant du pointeur). Type INTEGER.
Handle Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.
Separator Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.
Exécution
SV_SCADABasic_fr 325
Mode Mnémonique Action
7 SEEKFIELD Positionnement à champ courant plus IncPosition.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
IntVal = SEQ_BUFFER(Mode, IncPosition, Handle, Separator, StringOrBuff);
Type de retour : INTEGER
Argument Signification
IncPosition Compteur de champs déterminant la position du champ dans le buffer à remplacer et dans
lequel une nouvelle chaîne de caractère est positionnée (doit être supérieur à 0). Type
INTEGER.
Handle Handle du buffer contenant un nombre de valeurs délimitées. Type LONG.
Separator Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.
StringOrBuff Soit une chaîne de caractère, soit le handle du buffer contenant une chaîne. Type STR or
Long.
Exécution
Mode Mnémonique Action
8 REPLACEFIELD Insertion de la "chaîne_à_insérer" à champ courant plus "position" ( >0 ) du
buffer "handle_lecture".
INSERTFIELD
Retour : 1 si OK, 0 sinon.
Syntaxe 7
RetVal = SEQ_BUFFER(Mode, Handle, Separator, SubMode);
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer contenant un nombre de valeurs délimitées. Type LONG.
Separator Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.
SubMode Chaîne déterminant le type de valeur à lire et le type de retour :
STR - String.
INT - Integer.
DOUBLE - Double.
FLOAT - Float.
Exécution
Mode Mnémonique Action
5 NEXTFIELD Lecture du champ courant.
Si les types de champs sont mélangés, il y a lieu de les lire en format STR puis de les interpréter.
Syntaxe 8
LongVal = SEQ_BUFFER(Mode, Handle, "NEW_BUFFER");
Type de retour : LONG
SV_SCADABasic_fr 326
Argument Signification
Handle Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.
Exécution
Mode Mnémonique Action
9 CRLFTOCR Permet de transformer dans le buffer result toutes les occurences <line
feed><carriage return> par <carriage return>.
10 CRTOCRLF Permet de transformer dans le buffer result toutes les occurences <carriage
return> par <line feed><carriage return>.
Retour : 1 si OK, 0 sinon.
Exemple
Pour une exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 327
SET
Voir aussi
Constitution d'une liste de variables à envoyer.
Cette instruction est utilisée en conjonction avec l'instruction SENDLIST.
Syntaxe
IntVal = SET(Variable, Value);
Type de retour : INTEGER
Argument Signification
Variable Nom de la variable de la base de données où est assigné la valeur. Type STR.
Value Valeur à assigner. Doit être du même type que la variable.
Exécution
Les variables peuvent être de tout type.
L'envoi est différé et la variable est mémorisée jusqu'à rencontrer une instruction SENDLIST.
Retour (pour les deux modes): 1 si OK, 0 sinon.
Les variables doivent être déclarées en commande pour que l'envoi soit effectif.
Exemple
Merci de vous référer aux exemples du verbe SENDLIST.
SV_SCADABasic_fr 328
SGET_BUFFER
Voir aussi
Récupère un SINGLE dans une zone mémoire.
Syntaxe
SinVal = SGET_BUFFER(Handle, Offset);
Type de retour : SINGLE.
Argument Signification
Handle Localisation du buffer mémoire retourné par ALLOC_BUFFER. Type LONG.
Offset L'offset en octets dans lequel l'INTEGER est trouvé. Tout type numérique.
Exécution
Retour : Récupère un SINGLE dans une zone mémoire réservée par un ALLOC_BUFFER à l'offset
précisé.
Exemple
SSUB main()
'Declare
DIM lngBuffer1 as Long;
DIM strLine as Str;
DIM sngResult as Single;
DIM intLengh as Integer;
'Create a buffer
lngBuffer1 = ALLOC_BUFFER(110);
strline = "123.34;string_here;345;123456789;‚t‚\n";
SV_SCADABasic_fr 329
SIN
Voir aussi
Fonction sinus.
Syntaxe
Dblval = SIN(Angle);
Type de retour : DOUBLE
Argument Signification
Angle Angle est exprimé en degré et peut être de tout type numérique
Exécution
Les variables de la base de données sont de type SINGLE. En cas d'affectation avec cette fonction, la
conversion en SINGLE est donc nécessaire si l'on veut éviter une erreur de type.
Exemple
'Database variables
'@ARC - type Register
'@ANGLE - type Register
SUB Main()
'Declare
DIM dblangle as double;
DIM dblarc as double;
dblangle = 45;
dblarc = SIN (dblangle);
print("SIN(",dblangle,") = ",dblarc);
END SUB
SUB proc2()
'SIN() using a database variable: @ARC.
'Use of TOS to convert DOUBLE to SINGLE ( variable type Register)
@ARC= TOS( SIN (@ANGLE) ) ;
END SUB
SV_SCADABasic_fr 330
SMS
Voir aussi
Gère l'envoi de données via un service de message court (SMS).
Mode Mnémonique Syntaxe
1 SEND 1
Syntaxe 1
SMS(Mode, SmsProfile, PhoneNumbers, Subject, Message [, Format] );
Type de retour : INTEGER
Argument Signification
SmsProfile Nom d'un profil SMS configuré dans Actions.Messages.Profils SMS. Type STR.
PhoneNumbers Liste des numéros de téléphone de destinataires utilisant le point-virgule (;)
comme séparateur entre les numéros de téléphone. Type STR.
Subject Sujet du message. Type STR.
Message Contenu du message . Type STR.
Format Format du message. (Optionnel) Type INTEGER.
0: Auto (valeur par défaut)
1: Texte
2: PDU 7-bit
3: Unicode.
Pour une explication sur l'argument Format et les limites de taille des
messages dans chaque format, voir le chapitre Actions.Actions
événementielles.Configuration d'un événement pour envoyer un
message.Configuration des Options SMS.
Exécution
Mode Mnémonique Action
1 ADDSMS Paramètre un message à envoyer via SMS.
Retour : 0 si OK, 1 sinon. Le statut envoyé est enregistré dans la variable
système.
Exemple
sub main ()
end sub
sub SendSms ()
SMS("SEND", "SMSPROFILE1","0033687867361","Scada Basic test", "Message sent by SV");
end sub
sub AddSms ()
EVENT ("ADDSMS", "SBSEND","", "", "BitSmsSB", 1, "MSGTEMPLATE1");
end sub
sub DelSms ()
EVENT("DELSMS","SBSEND");
end sub
SV_SCADABasic_fr 331
SNMP
Voir aussi
Gère la communication via le protocole SNMP.
Mode Mnémonique Syntaxe
1 START 1
2 STOP 1
3 REFRESH 2, 3
4 CONFIG 4, 5
Syntaxe 1
IntVal = MSNMP(Mode, CommObject[, ResultVar]);
Type de retour : INTEGER.
Argument Signification
CommObject Soit le nom du réseau (Exemple "Network01"), soit le nom du réseau et de l'équipement
séparé par un point (Exemple "Network01.Device01"). Type STR.
ResultVar Nom d'une variable dans laquelle le résultat de l'instruction sera placé. Type Str.
-1 - Nom du réseau non trouvé.
-2 - Nom de l'équipement non trouvé.
1 - Action en attente.
2 - Action terminée OK.
3 - Action terminée avec erreur.
Exécution
Mode Mnémonique Action
1 START Démarre le réseau ou l'équipement.
2 STOP Arrête le réseau ou l'équipement.
Retour pour les deux modes : 0 format correct, 1- mode inconnu, -2 format CommObject incorrect (vide
ou plus que deux champs).
Syntaxe 2
IntVal = MDNMP(Mode, CommObject, SubMode[, ResultVar]);
Argument Signification
CommObject Nom du réseau et de l'équipement séparé par un point (Exemple
"Network01.Device01"). Type STR.
SubMode Voir ci-dessous. Type STR.
ResultVar Nom d'une variable dans laquelle le résultat de l'instruction sera placé. Type Str.
-1 - Nom du réseau non trouvé.
-2 - Nom de l'équipement non trouvé.
-3 - Nom du groupe de scrutation non trouvé.
1 - Action en attente.
2 - Action terminée OK.
3 - Action terminée avec erreur.
Exécution
Mode Mnémonique Action
3 REFRESH Sous-mode "ALL". Rafraîchit la valeur de toutes les variables liées à
l'équipement.
3 REFRESH Sous-mode "SYNCHRO". Rafraîchit seulement les variables mises-à-
jour (Synchronisation Trap et ad-hoc).
Retour pour les deux modes : 0 format correct, 1- mode inconnu, -2 format CommObject incorrect (vide
ou plus que deux champs), -4 sous-mode inconnu.
SV_SCADABasic_fr 332
Syntaxe 3
IntVal = MDNMP(Mode, CommObject, SubMode, PollingGroup[, ResultVar]);
Argument Signification
CommObject Nom du réseau et de l'équipement séparé par un point (Exemple
"Network01.Device01"). Type STR.
SubMode Voir ci-dessous. Type STR.
PollingGroup Nom du groupe de scrutation. Type STR.
ResultVar Nom d'une variable dans laquelle le résultat de l'instruction sera placé. Type Str.
-1 - Nom du réseau non trouvé.
-2 - Nom de l'équipement non trouvé.
-3 - Nom du groupe de scrutation non trouvé.
1 - Action en attente.
2 - Action terminée OK.
3 - Action terminée avec erreur.
Exécution
Mode Mnémonique Action
3 REFRESH Sous-mode "POLLINGGROUP". Rafraîchit la valeur de toutes les
variables liées à l'équipement en utilisant le groupe de scrutation
spécifié.
Retour : 0 format correct, 1- mode inconnu, -2 format CommObject incorrect (vide ou plus que deux
champs), -3 format PollingMode incorrect (vide), -4 sous-mode inconnu.
Syntaxe 4
IntVal = SNMP(Mode, CommObject, "HOSTNAME", HostName[, ResultVar]);
Argument Signification
CommObject Nom du réseau et de l'équipement séparé par un point (Exemple
"Network01.Device01"). Type STR.
HostName Nouveau nom de l'équipement. Type STR.
ResultVar Nom d'une variable dans laquelle le résultat de l'instruction sera placé. Type Str.
-1 - Nom du réseau non trouvé.
-2 - Nom de l'équipement non trouvé.
1 - Action terminée OK.
Exécution
Mode Mnémonique Action
4 CONFIG Modifie le nom de l'équipement.
Retour : 0 format correct, -1 mode inconnu, -2 Nom de l'équipement non spécifié, -3 Sous-mode inconnu,
-5 Adresse IP vide.
Syntaxe 5
IntVal = SNMP(Mode, CommObject, "IPADDRESS", IPaddress[, ResultVar]);
Argument Signification
CommObject Nom du réseau et de l'équipement séparé par un point (Exemple
"Network01.Device01"). Type STR.
IPaddress Nouvelle adresse IP de l'équipement dans le format xxx.xxx.xxx.xxx. Type STR.
ResultVar Nom d'une variable dans laquelle le résultat de l'instruction sera placé. Type Str.
-1 - Nom du réseau non trouvé.
-2 - Nom de l'équipement non trouvé.
1 - Action terminée OK.
Exécution
Mode Mnémonique Action
4 CONFIG Modifie l'adresse IP de l'équipement.
SV_SCADABasic_fr 333
Retour : 0 format correct, -1 mode inconnu, -2 Nom de l'équipement non spécifié, -3 Sous-mode inconnu,
-5 Adresse IP vide.
SV_SCADABasic_fr 334
SPACE
Voir aussi
Renvoie une chaîne constituée de n espaces.
Syntaxe
StrVal = SPACE(N);
Type de retour : STR
Argument Signification
N Nombre d'espaces à retourner. Tout type numérique.
Exécution
La chaîne résultante est limitée à 2 047 caractères.
Exemple
SUB Main()
'Declare return code
DIM intCharCode as integer;
DIM strChaine as Str;
strChaine = SPACE(10);
Print("Contents of string: ",strChaine);
END SUB
SV_SCADABasic_fr 335
SQRT
Voir aussi
Fonction racine carrée.
Syntaxe
DblVal = SQRT(Val);
Type de retour : DOUBLE
Argument Signification
Val Tout type numérique mais doit être >0 sinon la fonction retourne 0.
Exécution
Les variables de la base de données sont de type SINGLE. En cas d'affectation avec cette fonction, la
conversion en SINGLE est donc nécessaire si l'on veut éviter une erreur de type.
Exemple
SUB Main()
DIM dblResult as Double;
DIM sngValue as Single;
sngValue = 4;
dblResult = SQRT (sngValue);
Print("Return value = ",dblResult);
'Display "Return value = 2"
END SUB
SV_SCADABasic_fr 336
STATION_FILTER
Voir aussi Exemple
Filtre des fonctions de supervision en appliquant des populations de variables pour le poste courant.
Mode Mnémonique Syntaxe
1 CLEAR 1
2 APPLY 2, 3
3 DUMP 1
Syntaxe 1
IntVal = STATION_FILTER(Mode, Distribution);
Type de retour : INTEGER
Argument Signification
Distribution Définition des fonctions à filtrer (ressources) :
1 Affichage des fenêtres d'alarmes et beep sur alarme
2 Affichage des fenêtres de consignation
3 Ecriture des consignations sur imprimante
4 Ecriture des consignations dans les unités d'archivage
5 Forçage des variables par l'opérateur
6 Forçage des variables par animation " forçage script "
7 Forçage des variables par programme SCADA BASIC
8 Acquittement des alarmes par animation " forçage script "
9 Acquittement des alarmes par programme SCADA BASIC
Exécution
Mode Mnémonique Action
1 CLEAR La fonction num_fonction s'applique à toutes les variables de la base.
Retour : 1 si OK, 0 sinon.
3 DUMP Afficher dans la fenêtre de mise au point des programmes les populations
autorisées pour la fonction num_fonction : le format des lignes affichées est
décrit dans Execution 3.
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = STATION_FILTER(Mode, Distribution, List);
Type de retour : INTEGER
Argument Signification
Distribution Voir syntaxe 1.
List liste des identifiants utilisées lors de la création des populations. Ces identifiants sont séparés
par des virgules. Type STR.
Exécution
Mode Mnémonique Action
2 APPLY Appliquer un filtre sur la fonction en n'autorisant que les identifiants des
populations nommés dans la chaîne liste_de_populations (le séparateur est
la virgule). Un filtre contient au maximum 64 identifiants de populations et 1
024 caractères.
SV_SCADABasic_fr 337
Retour : 1 si OK, 0 sinon.
Syntaxe 3
IntVal = STATION_FILTER(Mode, Handle);
Type de retour : INTEGER
Argument Signification
Handle Localisation du buffer mémoire contenant une liste de filtre de population et un code de
fonction. Type LONG.
Exécution
Mode Mnémonique Action
2 APPLY Appliquer un filtre sur plusieurs fonctions en n'autorisant que les populations
nommées. La définition des fonctions et les listes de populations sont
contenues dans une zone mémoire réservée par un ALLOC_BUFFER.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 338
STOP
voir aussi
Arrête le programme en cours.
Syntaxe
STOP();
Type de retour : aucun
Exécution
Si l'instruction STOP est utilisée dans le programme GLOBAL, c'est le programme qui a appelé GLOBAL qui
est arrêté.
La réexécution du programme ne peut se faire que par une instruction exécutée dans un autre programme
(PROGRAM).
Exemple
SUB Main()
While(1)
Print("In the loop");
'End of loop and program:
Stop();
Wend
END SUB
SV_SCADABasic_fr 339
STRING
Voir aussi
Renvoie une chaîne constituée de n fois un caractère.
Syntaxe
StrVal = STRING(N, Char);
Type de retour : STR
Argument Signification
N Nombre de caractères. Tout type numérique.
Char Caractère à répeter
Exécution
Si n est supérieur à 255, la chaîne est tronquée à 2 047 caractères.
Exemple
SUB Main()
DIM strChain as Str;
strChaine = STRING(5,"A");
PRINT(strChain);
'Display: "AAAAA"
END SUB
SV_SCADABasic_fr 340
SUB...ENDSUB
Voir aussi Exemple
Débute et finit une procédure.
Syntaxe
SUB subname([P1, P2 ......P10])
[instruction list]
ENDSUB
Argument Signification
P1 à P10 Paramètres à passer par la fonction. Tout type de variable.
Exécution
Une fonction est créée. Les paramètres passés à la fonction ne sont pas typés (integer, long, ...) à l'appel.
Leur type doit être cependant cohérent avec l'utilisation que l'on en fait au sein de la procédure. Une
erreur de conversion de type donnera lieu à une erreur d'exécution.
Il faut aussi obligatoirement une procédure MAIN pour chaque programme (sauf pour le programme
de déclaration de fonctions et données globales).
Une valeur peut être retournée par une fonction en utilisant l'instruction RETURN.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus.
SV_SCADABasic_fr 341
SVAL
Voir aussi
Donne la valeur numérique d'une chaîne de caractères.
Syntaxe
SglVal = SVAL(String);
Type de retour : SINGLE
Exécution
Lorsque la chaîne est vide ou lorsqu'elle débute par un caractère non numérique la fonction renvoie 0.
Exemple
DIM s1 As Single;
s1=SVAL("123.456");
SV_SCADABasic_fr 342
SVALA
Voir aussi Exemple Spécifiques
Gestion des listes d'alarmes.
Mode Mnémonique Syntaxe
1 EXTRACT 1
2 COUNT 2
Syntaxe 1
IVal = SVALA(Mode, DestHandle, ParamHandle [,EndVarName, Sense] [, CountVarName]);
Argument Signification
DestHandle Handle du buffer dans lequel seront rangées les lignes des alarmes trouvées. Type
LONG.
ParamHandle Handle du buffer contenant les paramètres de l'extraction.Type LONG.
EndVarName Variable de la base de donnée de type état. Cet état prend la valeur spécifiée par
Sense. Ceci permet de déclencher l'exécution d'une fonction à la fin d'une extraction
(voir instruction EVENT). Type STR.
Sense Valeur mise dans "NomVariableFin" en fin d'extraction. Tout type numérique.
CountVarName Variable de la base de donnée de type mesure. Cette mesure, positionnée à -1 en
début d'extraction, contient le nombre d'alarmes extraites. Type STR.
Exécution
Mode Mnémonique Action
1 EXTRACT Permet d'extraire les alarmes en fonction d’un filtre à un instant donné du
procédé, et de les stocker dans un buffer.
Valeur de retour :
1 L'instruction s'est correctement exécutée.
0 Le mode est incorrect.
-1 Le paramètre DestHandle est incorrect.
-2 Le paramètre ParamHandle est incorrect.
-3 Le contenu de ParamHandle is incorrect.
-4 La variable EndVarName n'existe pas.
-5 La variable EndVarName n’est pas commandable ou est inhibée.
-6 Le paramètre Sense n’existe pas ou a une mauvaise valeur.
-7 La variable CountVarName n'existe pas.
-8 La variable CountVarName n’est pas une consigne.
-9 Requête en cours.
Syntaxe 2
IVal = SVALA(Mode, ParamHandle [,EndVarName, Sense] [, CountVarName]);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
2 COUNT Retourne le nombre courant d'alarmes répondant aux critères de la requête.
Valeur de retour :
SV_SCADABasic_fr 343
1 OK.
0 Mode inconnu.
-1 Le paramètre DestHandle est incorrect.
-2 Le paramètre ParamHandle est incorrect.
-3 Le contenu de ParamHandle is incorrect.
-4 La variable EndVarName n'existe pas.
-5 La variable EndVarName n’est pas commandable ou est inhibée.
-6 Le paramètre Sense n’existe pas ou a une mauvaise valeur.
-7 La variable CountVarName n'existe pas.
-8 La variable CountVarName n’est pas une consigne.
-9 Requête en cours.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 344
SVBATCH
Voir aussi Spécifiques
SVBATCH fournit un enregistrement configurable par l'utilisateur du début et de la fin d'une phase de
production dans un format approchant celui d'une base de données. En plus de l'horodate de début et de
fin, chaque enregistrement contient un attribut LONG (qui peut être également interprété comme 32
octets indépendants), ainsi que 32 attributs texte. Vous pouvez avoir une ou plusieurs bases de données
qui seront chargées en mémoire pour un accès plus rapide.
Les modes disponibles permettent de créer, supprimer, modifier et sauvegarder les enregistrements. Les
attributs chaînes peuvent être configurés comme des clés d'index (comme dans une base données de type
Microsoft Access) et utilisées comme filtre pour effectuer une recherche rapide sur un grand nombre
d'enregistrements.
Pour le mode distribué, voir le chapitre Mode distribué de SVBATCH.
Mode Mnémonique Syntaxe
1 CREATEBASE 1
2 SELECTBASE 2
3 BASELIST 3, 9
4 CREATE 4
5 UPDATE 5, 10
6 EXIST 6, 11
7 GETVALUE 7, 12
8 DELETE 3, 13
9 SELECT 8, 16
10 SAVEBASE 2
11 LOADBASE 2
12 GETNEXTBUFFER 3
13 CANCEL 3
14 ARCHIVE 13
15 ARCHIVELIST 3
16 BATCHLIST 3
17 NETWORKBROAD 14
CAST
18 NEXTCOMMAND 15
SV_SCADABasic_fr 345
Value Valeur à mettre à jour dans la base de données en fonction du type.
STR si Type = [#I1 à #I3] ou [#A1 à #A32]
DOUBLE si Type= [#I2 à #I3]
LONG si Type = [#B]
INTEGER si Type = [#B1 à #B32]
Table Identifiant du lot. Type STR.
StartDate Date de début du lot. Type DOUBLE ou STR.
Enddate Date de fin du lot. Type DOUBLE ou STR.
Si les paramètres StartDate et EndDate sont de type DOUBLE, ils peuvent être calculés en utilisant
l'instruction DateTimeValue qui retournera une date et une heure sous forme DOUBLE. Si la date est
fournie comme une chaîne, sa syntaxe doit être la suivante : DD/MM/YYYY hh:mm:ss.lll Par
exemple : 12/05/2001 21:49:01.100.
L'instruction DateTimeString peut être utilisée pour convertir une date sauvegardée en format
DOUBLE dans un format texte.
Syntaxe 1
IVal = SVBATCH (Mode, Basename, Unused, [ NbAttribute, NbBackup ])
Type de retour : INTEGER
Argument Signification
Unused Ce champ est inutilisé et doit rester vide. Type STR.
NbAttribute Nombre d'attributs. Par défaut 4. Type INTEGER. Valeur 1 à 32
NbBackup Nombre de sauvegarde de la base de données. Par défaut 3. Type INTEGER. Valeur 3 à
9
Exécution
Mode Mnémonique Action
1 CREATEBASE Création de la base de données. La base est créée en mémoire.
Retour : 0 La base de données n’a pu être créée, 1 Création OK.
La base peut être sauvegardée dans le répertoire PER du projet. Plusieurs bases
peuvent être créées.
L'argument Unused doit être inclus dans la syntaxe comme une chaîne vide. Exemple :
SVBATCH ("CREATEBASE, "MyDatabase", "");
Syntaxe 2
iVal = SVBATCH (Mode, Basename);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
2 SELECTBASE Sélection d’une base de données de travail. La base doit être en mémoire.
Retour :
0 Base non trouvée
1 Base sélectionnée
SV_SCADABasic_fr 346
-100 Erreur d’argument
10 SAVEBASE Sauvegarde d’une base de données. Enregistrement de la base de données
vers le répertoire \PER\basename.
Retour : 0 Erreur de sauvegarde, 1 Sauvegarde réussie.
11 LOADBASE Chargement d’une base de données. Chargement en mémoire depuis le
répertoire \PER\basename.
Retour :
0 Erreur de chargement
1 Chargement réussi
-100 Erreur d’argument
Syntaxe 3
iVal = SVBATCH (Mode, Handle)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
3 BASELIST Liste les bases de données chargées en mémoire.
Retour : Nombre de base de données.
-100 Erreur d’argument
8 DELETE Suppression d’un enregistrement en mémoire.
Retour :
0 Enregistrement non trouvé
1 Enregistrement supprimé
12 GETNEXTBUFFER Récupération dans le buffer passé en argument de la suite des
enregistrements correspondant à une requête de type SELECT.
Il est impératif que le buffer ResultHandle soit le même que celui ut
SV_SCADABasic_fr 347
a bien été désallouée.
Retour :
0 La requête SELECT à annuler n’existe plus
1 Requête annulée
-100 Erreur d’argument
15 ARCHIVELIST Récupération dans un buffer de la liste des dates de début/fin des
enregistrements archivés.
Retour :
0 Pas d'enregistrements à retourner
-100 Erreur d’argument
Sinon le nombre de noms de tables retournés.
Le mode GETNEXTBUFFER peut être utilisé si le buffer HandleList ne
totalité des dates d’archives.
16 BATCHLIST Récupération dans un buffer de la liste des lots d’une base de données.
Les lots sont séparés par des virgules.
Retour :
0 Pas de noms de tables à retourner
-100 Erreur d’argument
Sinon le nombre de noms de tables retournés.
Lors de l'utilisation de BASELIST (mode 3) le format de retour des données est le suivant :
nom du lot, nombre d'enregistrements \n
nom du lot, nombre d'enregistrements \n
(où \n = Chr(10) ou LF, saut de ligne)
Pour GETNEXTBUFFER (mode 12) et CANCEL (mode 13), le buffer Handle doit être le même que
celui utilisé par la commande SELECT.
Exemple de liste de buffer
Le contenu du buffer Handle peut être le suivant :
14/10/1997 10:17:55:870 14/10/1998 11:46:09:100\n
14/10/1997 10:17:55:870 14/10/1998 12:40:40:574\n
14/10/1998 10:17:55:870 14/10/1998 11:18:05:870\n
14/10/1998 11:03:11:678 14/10/1998 11:03:21:678\n
14/10/1998 11:15:34:066 14/10/1998 11:15:44:066\n
14/10/1998 11:17:55:870 14/10/1998 11:18:05:870\n
14/10/1998 11:47:36:901 14/10/1998 12:43:19:052\n
14/10/1998 12:43:09:242 14/10/1998 12:43:24:249\n
Syntaxe 4
lVal =SVBATCH (Mode, Table, StartDate [, EndDate])
Type de retour : LONG
Exécution
Mode Mnémonique Action
4 CREATE Création d’un enregistrement dans la base de données de travail (mode
SELECTBASE).
Retour : 0 Création impossible. Sinon handle sur l’enregistrement. Type
LONG.
SV_SCADABasic_fr 348
Le handle retourné permet l’utilisation des modes UPDATE , EXIST , et DELETE.
La date de début doit être unique. Une création avec une date déjà présente dans la base de
donnée échouera. La date de fin peut être mise à jour d’une manière différée par le mode UPDATE.
Syntaxe 5
iVal = SVBATCH (Mode, Handle, Type, Value)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
5 UPDATE Mise à jour d’un enregistrement en mémoire (modification).
Retour :
0 Mise à jour de l’enregistrement impossible
1 Mise à jour effectuée
La mise à jour d’un enregistrement peut s’effectuer soit par l’intermédiaire du "handle" ( retourné
par le mode CREATE ou SELECT ), soit par le couple "idname" "startdate" qui identifie de manière
unique un enregistrement. La date de fin n’est pas obligatoire pour retrouver l’enregistrement ( En
ce cas mettre 0.0 pour le paramètre "enddate").
Syntaxe 6
lVal = SVBATCH (Mode, Handle)
Type de retour : LONG
Exécution
Mode Mnémonique Action
6 EXIST Teste l’existence d’un enregistrement en mémoire.
Retour : 0 Enregistrement non trouvé, Sinon "handle" de l’enregistrement.
Syntaxe 7
SVBATCH (Mode, Handle, Type)
Exécution
Mode Mnémonique Action
7 GETVALUE Récupération de la valeur d’un champ de l’enregistrement
Retour : dépend du type de champ.
Syntaxe 8
SVBATCH (Mode, Table, StartDate, EndDate, FormatHandle, ResultHandle [,ExpHandle [,LogVarName]])
Type de retour : INTEGER
Argument Signification
FormatHandle Format des données dans le buffer. Les mnémoniques possibles sont :
#I1 à #I3	(Table name, Start date et End date)
#A1 à #A32	(Attributs texte 1 à 32)
#B		(Attribut Long)
#B1 à #B32	(Attributs binaires 1 à 32)
ResultHandle Buffer résultat de la sélection (LONG). Chaque enregistrement formaté est terminé par
SV_SCADABasic_fr 349
un retour chariot. Type LONG.
ExpHandle Buffer contenant une expression de sélection. Type LONG.
LogVarName Nom de la variable état positionnée à 1 après que l'exécution de l'instruction soit
terminée ou que le buffer résultat soit plein. Type STR
Exécution
Mode Mnémonique Action
9 SELECT Sélection d’enregistrements en mémoire entre deux dates.
Retour :
100 Erreur de type d’argument
-1 Pas de base de données sélectionnée
-2 Identifiant de lot inconnu
Sinon Nombre d’enregistrements satisfaisant à la requête
L'exécution du mode 9 est asynchrone. Ceci dit, une fois que l'instruction est lancée, le thread de
programme continue de s'exécuter. Lors de la récupération d'un grand nombre d'enregistrements,
le remplissage du buffer résultat peut prendre plusieurs secondes.
Pour gérer cela, créer un évenement qui se déclenchera lorsque LogVarName passera à 1.
L'évenement pourra alors exécuter une fonction qui traitera le résultat ou lancera une autre
instruction SVBATCH avec le mode GETNEXTBUFFER.
Syntaxe 9
IVal = SVBATCH (Mode, FileName)
Type de retour : INTEGER
Argument Signification
FileName Nom du fichier. Type STR.
Exécution
3 BASELIST Crée un fichier contenant la liste des noms des lots (bases de données) chargées
en mémoire.
Retour : Nombre de base de données.
-100 Erreur d’argument
Lors de l'utilisation de BASELIST (mode 3) le format de retour des données est le suivant :
nom du lot, nombre d'enregistrements \n
nom du lot, nombre d'enregistrements \n
(où \n = Chr(10) ou LF, saut de ligne)
Syntaxe 10
iVal = SVBATCH (Mode, Table, StartDate, EndDate, Type, Value)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
5 UPDATE Mise à jour d’un enregistrement en mémoire (modification).
Retour :
0 Mise à jour de l’enregistrement impossible
1 Mise à jour effectuée
SV_SCADABasic_fr 350
La mise-à-jour d'un enregistrement peut s'effectuer soit par l'intermédiaire du "handle" (retourné
par le mode CREATE ou SELECT), soit par le couple "idname" "startdate" qui identifie de manière
unique un enregistrement. La date de fin n'est pas obligatoire pour retrouver l'enregistrement (en
ce cas, mettre 0.0 pour le paramètre "enddate").
Syntaxe 11
lVal = SVBATCH (Mode, Table, StartDate, EndDate)
Type de retour : LONG
Exécution
Mode Mnémonique Action
6 EXIST Teste l’existence d’un enregistrement en mémoire.
Retour : 0 Enregistrement non trouvé, Sinon "handle" de l’enregistrement.
Syntaxe 12
SVBATCH (Mode, Table, StartDate, EndDate, Type)
Exécution
Mode Mnémonique Action
7 GETVALUE Récupération de la valeur d’un champ de l’enregistrement
Retour : dépend du type de champ.
Syntaxe 13
iVal = SVBATCH (Mode, Table, StartDate, EndDate)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
8 DELETE Suppression d’un enregistrement en mémoire.
Retour :
0 Enregistrement non trouvé
1 Enregistrement supprimé
14 ARCHIVE Archivage d’un ensemble d’enregistrements entre deux dates. Les données sont
déplacées de la database vers un fichier nommé startdate_enddate. Ce fichier se
trouve dans le rep. PER\ BaseName\AR\Table où BaseName est le nom de la
Base de données et Table, le nom de la table. Si on ne précise pas de nom de
Table, toutes les tables de la base de données concernée sont archivées.
Retour :
0 0 Archivage non réalisé.
1 1 Archivage effectué.
Sinon :
-1 Aucune base sélectionnée
-2 La conversion de la date de début a échoué
-3 La conversion de la date de fin a échoué
-100 Erreur de paramètre
Effets de l'archivage
Si l’identifiant du lot est vide , l’archivage portera sur la totalité de la base.
L’archivage effectue une purge automatique des lots archivés dans la base courante.
SV_SCADABasic_fr 351
Les fichiers d’archive sont créés comme suit dans le répertoire PER du projet.
Répertoire : BatchName
Fichier: StartDate EndDate
Syntaxe 14
SVBATCH ( Mode, StationList, StatusHandle, EventVarName)
Argument Signification
StationList Nom de la liste des postes destinataires des modifications (liste créée par le menu
Configuration.Communication.Multipostes). Type STR.
StatusHandle Buffer recevant les informations de statut après la réalisation d’un requête. Type
LONG.
EventVarName Nom de la variable état positionnée à 1 après que l'exécution de l'instruction soit
terminée ou que le buffer résultat soit plein. Type STR
Exécution
Mode Mnémonique Action
17 NETWORKBROADC Propage les commandes SVBATCH dans tous les postes contenus dans la
AST liste des postes.
Les commandes sont placées dans une file d'attente et exécutées chaque fois que la commande
NEXTCOMMAND est appelée. Lorsque la commande est traitée et le résultat disponible, la variable
spécifiée par l'argument EventVarName est positionnéé à 1. L'état de chaque commande est reportée
dans le buffer pointé par StatusHandle au format suivant : Mode, Station Number, Result.
Toute les requêtes sont asynchrones. Le résultat des requêtes est disponible lorsque EventVarName
passe à 1.
Syntaxe 15
SVBATCH (Mode);
Exécution
Mode Mnémonique Action
18 NEXTCOMMAND Permet de passer à l’exécution de la prochaîne requête.
Syntaxe 16
SVBATCH (Mode, IdName, StartDate, EndDate, FormatHandle, ResultHandle, [,ExpHandle
[,LogVarName]]);
Argument Signification
ExpHandle Buffer résultat contenant l'expression de filtre (LONG). Voir l'instruction SVALA pour des
informations sur les expressions de filtre.. Type LONG.
LogVarHandl Nom de la variable état positionnée à 1 après que l'exécution de l'instruction soit terminée ou
SV_SCADABasic_fr 352
e que le buffer résultat soit plein. Type STR.
Exécution
Mode Mnémonique Action
16 SELECT Sélection d'enregistrements entre deux dates.
Lorsque les enregistrements de la requête sont récupérés, LogName est positionné à 1. Le buffer
ResultHandle contient les enregistrements dans la limite de sa taille.
Vous pouvez maintenant allouer des buffers de 64 Ko par ALLOC_BUFFER.
Dans ce mode, vous pouvez créer un événement sur LogVarName. La requête est réalisée de façon
asynchrone, le buffer ResultHandle est donc renseigné au moment où LogName passe à 1. Pour plus de
détails, voir la Syntaxe 8 ci-dessus.
L'événement peut être créé par le menu Actions ou dynamiquement par le verbe EVENT.
SV_SCADABasic_fr 353
SVBRANCH
Voir aussi
Change le status des variables d'une branche de la base de données.
Mode Mnémonique Syntaxe
2 MASK 1
3 UNMASK 1
4 ENABLE 2
5 DISABLE 2
8 SIMU 3
12 SETALARMLEVEL 5
13 RESTOREALARML 2
EVEL
14 RESETANDSETAL 4
ARM
15 RESETCOMPUTEA 4
LARME
Syntaxe 1
SVBRANCH (Mode, Branch, MaskLevel)
Type de retour : INTEGER
Argument Signification
Branch Branche. Type STR.
MaskLevel Niveau de masquage. Type INTEGER:
1 Programme utilisateur 1
2 Programme utilisateur 2
4 Programme utilisateur 3
8 Programme utilisateur 4
16 Opérateur
32 Dépendant (d'une autre variable)
64 Expression
Exécution
Mode Mnémonique Action
2 MASK Toutes les variables de la branche sélectionnée sont masquées. Voir également
l'instruction VARIABLE, mode MASK. Le niveau de masquage dépend du
paramètre MaskLevel.
3 UNMASK Toutes les variables de la branche sélectionnée sont démasquées. Voir
également l'instruction VARIABLE, mode UNMASK. Le niveau de masquage
dépend du paramètre MaskLevel..
Retour : 1 si OK, 0 sinon.
Le paramètre MaskLevel est un INTEGER dont les valeurs représentent la combinaison binaire de un
ou plusieurs niveaux de masquage. Valeurs 0 à 29. Par exemple, une valeur de 11 représente
Programme utilisateur 1, Programme utilisateur 2 et Programme utilisateur 4.
Syntaxe 2
SV_SCADABasic_fr 354
SVBRANCH (Mode, Branch)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
4 ENABLE Désinhibe toutes les variables d'une branche.
5 DISABLE Inhibe toutes les variables d'une branche.
13 RESTOREALARML Restaure la priorité de toutes les alarmes d'une branche (après
EVEL SETALARMLEVEL).
Retour : 1 si OK, 0 sinon.
Syntaxe 3
SVBRANCH (Mode, Branch, Flag)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
8 SIMU Passe toutes les variables équipement d'une branche en mode simulé. Il devient
possible de les modifier comme toute variable interne.
Retour : 1 si OK, 0 sinon.
Syntaxe 4
SVBRANCH (Mode, Branch [, Filter [, AlarmType]])
Type de retour : INTEGER
Argument Signification
Branch Branche de la base de données. Type STR.
Filter Chaîne définissant un filtre d'alarme. Voir le chapitre sur les Expressions de filtres. Si chaîne
vide, il n'y a pas de filtre. La valeur par défaut est chaîne vide. Type STR.
AlarmType ALARMALLTYPE : Tous types d'alarme. Valeur par défaut.
ALARMTHRESHOLD : Uniquement les alarmes sur seuil.
Exécution
Mode Mnémonique Action
14 RESETANDSETALARM Force un basculement absente/présente d'une alarme présente
appartenant à la branche Branch et contenue dans le filtre Filter
de type AlarmType.
Retour : 1 si OK, 0 sinon.
15 RESETCOMPUTEALARM Remet à zéro et recalcule le nombre d'alarmes d'une branche et
d'un filtre.
Retour : 1 si OK, 0 sinon.
Syntaxe 5
SVBRANCH (Mode, Branch, AlarmLevel)
Type de retour : INTEGER.
Argument Signification
Branch Branche. Type STR.
AlarmLevel Niveau de priorité des alarmes (0 à 29). Type INTEGER.
Exécution
SV_SCADABasic_fr 355
Mode Mnémonique Action
12 SETALARMLEVEL Modifie la priorité de toutes les alarmes d'une branche. Voir également
l'instruction ALARM mode SETALARMLEVEL.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 356
SVKEY
Voir aussi
Lit le contenu d'une clé de protection dans un système multi-postes.
Mode Mnémonique Syntaxe
1 READ 1
2 ORDER 2
3 CANCEL 2
Syntaxe 1
Ival = SVkey(Mode[, LogVar[, ResultVar]]);
Argument Signification
LogVar Nom d'une variable état de l'arbre des variables. Type STR.
ResultVar Nom d'une variable mesure de l'arbre des variables.Type STR.
Syntaxe 2
Ival = SVkey(Mode, RightsType, Slot, Station[, LogVar[, ResultVar]]);
Argument Signification
RightsType Toujours 1
Type INTEGER.
Slot 1 = Premier slot.
2 = Second slot.
Type INTEGER.
Station Numéro du poste sur lequel la clé est connectée. Type INTEGER.
LogVar Nom de la variable état de l'arbre des variables. Type STR..
ResultVar Nom de la variable de l'arbre des variables. Type STR.
SV_SCADABasic_fr 357
-3 = Le numéro du poste ne se trouve pas dans ce projet.
-4 = Le paramètre Slot est en dehors des valeurs.
-5 = La variable LogVar n'existe pas ou est d'un type différent.
-6 = La variable ResultVar n'existe pas ou est d'un type différent.
Exécution
Mode Mnémonique Action
2 ORDER Requiert une licence depuis une clé de protection d'un autre poste.
Valeur de la variable état LogVar :
0 = Requête en cours.
1 = Requête terminée. Si la lecture est un succès, le résultat est disponible
dans la variable mesure ResultVar.
Valeur de la variable mesure ResultVar:
0 = Requête en cours.
1 = Requête réussie. La licence a été lue.
-1 = Requête en échec. Aucune clé de protection trouvée.
-2 = Requête en échec. Plus de licences restantes.
-3 = La licence a déjà été utilisée.
-4 = Requête en échec, réseau déconnecté ou panne de l'ordinateur.
-5 = Requête en timeout.
3 CANCEL Met à jour une licence précédemment lue depuis une clé de protection d'un
autre poste.
Valeur de la variable état LogVar :
0 = Requête en cour.
1 = Requête terminée. Si la lecture est un succès, le résultat est disponible
dans la variable mesure ResultVar.
Valeur de la variable mesure ResultVar:
0 = Requête en cours.
2 = Requête réussie. La licence a été mise-à-jour.
-3 = La licence à mettre à jour n'a pas été trouvée.
-4 = Requête en défaut, réseau déconnecté ou panne de l'ordinateur.
-5 = Requête en timeout.
SV_SCADABasic_fr 358
SVLOG
Voir aussi Exemple Spécifiques
Gestion des listes de consignations.
Mode Mnémonique Syntaxe
1 EXTRACT 1
Syntaxe 1
LVal = SVLOG(Mode, DestHandle, ParamHandle [,EndVarName [, StatusVarName [, LinesVarName
[,StartTime [,EndTime]]]]]);
Type de retour : LONG
Argument Signification
DestHandle Handle du buffer dans lequel seront stockées les lignes de consignation trouvées. Type LONG.
ParamHandl Handle du buffer contenant les paramètres de l'extraction. Les paramètres doivent être
e stockés dans le buffer sous forme d'une Chaine en ascii délimité par des virgules. Type LONG.
EndVarNam Variable de la base de donnée de type état. Cet état est initialisé à 0 puis est mis à 1 lorsque
e l'extraction est terminée. Type STR.
StatusVarNa Variable de la base de donnée de type mesure. Cette mesure est positionnée à -1 en début
me d'extraction. Type STR. En fin d'extraction cette variable vaut :
0 si toutes les lignes concernées ont été extraites
1 si toutes les lignes concernées n'ont pas pu être extraites suite à la limitation
demandée par le paramètre NbMaxLignes
2 si toutes les lignes concernées n'ont pas pu être extraites suite à la limitation
imposée par la taille du buffer de destination. Pour écrire une nouvelle ligne dans le
buffer il faut disposer encore d'au moins 300 caractères libres.
LinesVarNa Variable de la base de donnée de type mesure. Cette mesure est positionnée à -1 en début
me d'extraction. En fin d'extraction cette variable contient le nombre de lignes présentes dans le
buffer. Une valeur négative indique une erreur. Ce paramètre est facultatif et est ignoré s'il
est égal à une chaîne de caractères vide "". Type STR.
StartTime Horodate de début d'extraction. Les horodates doivent être :
- de type mesure (Voir instruction DATETIMEVALUE) et dans ce cas on renvoie l’horodate
sous forme de double
- de type texte et on renvoie l’horodate au format #D/#M/###Y #h:#m:#s:##l.
Type STR.
EndTime Horodate de fin d'extraction. Voir ci-dessus pour les informations de format. Type STR.
Exécution
Mode Mnémonique Action
1 EXTRACT Permet d'extraire des lignes d'une liste de consignation et de les stocker
dans un buffer.
Retour : 0 si erreur, # de 0 si OK.
Pour le format du buffer de paramètre, voir les chapitres Format du Buffer de Paramètre et Expressions de
filtres.
La taille du buffer de destination est limitée à 32 Ko. Une alternative possible est
d'utiliser EXPORT_LOG.
Les noms d'attributs utilisés dans les expressions de filtres n'autorisent pas les espaces.
Par exemple (#A5==T 5) n'est pas autorisé.
SV_SCADABasic_fr 359
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 360
SVSQL
Voir aussi Exemple
Gestion de bases de données par commande SQL.
Mode Mnémonique Syntaxe
1 CONNECT 1
2 DISCONNECT 2
3 BEGINTRANS 2
4 COMMIT 2
5 ROLLBACK 2
6 EXECUTE 3, 7
7 FETCH 2
8 GETCOL 4
9 GETROW 5
10 NUMCOL 2
11 ROWCOUNT 2
12 GETCOLNAME 4
13 GETCOLSIZE 6
14 FREE 2
15 ERROR 7
Syntaxe 1
LongVal = SVSQL(Mode, Source [,UserID] [,Password] [,Timeout]);
Type de retour : LONG
Argument Signification
Source Nom ODBC de la base. Type STR.
UserID Identifiant utilisateur . Type STR.
Password Mot de passe utilisateur. Type STR.
Timeout Time out de connexion (en secondes). Type LONG.
Exécution
Mode Mnémonique Action
1 CONNECT Connexion à une base de données ODBC.
Retour :
> 0 Handle de connexion
-1 Problème de connexion ou de syntaxe
Syntaxe 2
LongVal = SVSQL(Mode, CHandle);
Type de retour : LONG
Argument Signification
CHandle Handle de connexion. Type LONG.
SV_SCADABasic_fr 361
Exécution
Mode Mnémonique Action
2 DISCONNECT Ferme une connexion à une base de données.
Si une transaction est en cours vous devez fermer la transaction avant
d'effectuer la déconnexion. Pour cela, appelez le mode "COMMIT" ou
"ROLLBACK".
Si vous demandez la déconnexion avant d'avoir fermé la transaction, un
"ROLLBACK" est automatiquement fait.
Retour :
0 Déconnexion effectuée
-1 Problème de déconnexion ou de syntaxe
-2 Handle de connexion inconnu
3 BEGINTRANS Débute une transaction.
Par défaut la connexion est en autocommit (toutes les modifications
effectuées dans la base sont automatiquement enregistrées). L'exécution
de cette fonction fait basculer la connexion en autocommit=faux.
L'autocommit est remis à vrai lors de l'exécution de la fonction COMMIT ou
ROLLBACK.
Retour :
0 Début de transaction effectué
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Tous les drivers ne supportent pas les transactions. D'autre part les modes
de transactions sont gérés différemment selon les drivers. Ce verbe ne
sera accepté que si les conditions suivantes sont réunies :
Le driver gère les transactions.
Lors d'un commit ou d'un rollback le driver conserve les curseurs en
l'état ou les ferme mais ne les détruit pas.
Aucune requête n'est en cours (effectuez un FREE).
4 COMMIT Effectue le commit (acceptation des modifications effectuées dans la base)
d'une transaction.
Retour :
0 Commit effectué
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Pour pouvoir faire un "COMMIT" il faut avoir débuté une transaction par le
mode "BEGINTRANS". La gestion du "COMMIT" est différente selon le
driver utilisé.
5 ROLLBACK Effectue le ROLLBACK (annulation des modifications effectuées dans la
base) d'une transaction.
Retour :
0 Commit effectué
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Pour pouvoir faire un "COMMIT il faut avoir débuté une transaction par le
mode "BEGINTRANS". La gestion du "ROLLBACK" est différente selon le
SV_SCADABasic_fr 362
driver utilisé.
7 FETCH Récupère le prochain enregistrement d'une requête. Cette fonction est
utilisée après une requête "EXECUTE" qui renvoie des enregistrements.
Retour :
0 Fetch effectué et un enregistrement retourné
1 Fetch effectué mais aucun enregistrement retourné
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Cette fonction récupère le prochain enregistrement d'une requête mais ne
fournit pas les valeurs au programme Scada Basic. Pour obtenir les valeurs
vous devez utiliser le mode "GETCOL" ou "GETROW".
10 NUMCOL Retourne le nombre de colonnes dans un enregistrement issu d'une
requête.
Retour :
>= 0 Nombre de colonnes
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Cette fonction ne peut être utilisée que si la fonction "EXECUTE" a été
préalablement appelée.
11 ROWCOUNT Retourne le nombre d'enregistrements affectés par un requête de type
Insert, Update ou Delete.
Retour :
>= 0 Nombre d'enregistrements
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Cette fonction ne peut être utilisée que si la fonction "EXECUTE" a été
préalablement appelée.
14 FREE Libère les ressources utilisées par une requête SQL.
Retour :
0 Free effectué
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Une seule requête SQL peur être active à la fois pour une connexion
donnée. Chaque fois que vous appelez la fonction "EXECUTE", les
ressources de la requête précédente sont automatiquement libérées. Cette
fonction est également effectuée de manière automatique lorsque vous
appelez la fonction "DISCONNECT". Toutefois cette fonction permet de
récupérer de la mémoire durant le temps ou vous n'effectuez pas de
requêtes. Elle doit également être appelée si vous avez effectué une
requête et désirez ensuite débuter une transaction.
Syntaxe 3
LongVal = SVSQL(Mode, CHandle, MsgString);
Type de retour : LONG
Argument Signification
CHandle Handle de connexion. Type LONG.
SV_SCADABasic_fr 363
MsgString Chaîne contenant la requête SQL. Type STR.
Exécution
Mode Mnémonique Action
6 EXECUTE Exécute une requête SQL sur une base de données.
Retour :
0 Commit effectué
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Une seule requête SQL peur être active à la fois pour une connexion donnée.
Chaque fois que vous appelez cette fonction, la précédente requête SQL est
automatiquement terminée et les éventuels résultats de cette requête sont
perdus.
Syntaxe 4
LongVal = SVSQL(Mode, Shandle, ColNum, BHandle);
Type de retour : LONG
Argument Signification
SHandle Handle de connexion. Type LONG.
ColNum Numéro de la colonne à récupérer (commence à 1 et est numéroté séquentiellement de
gauche à droite). Type INTEGER.
BHandle Buffer devant contenir le champ récupéré. Type LONG.
Exécution
Mode Mnémonique Action
8 GETCOL Récupère un champ dans un enregistrement issu d'une requête. Cette fonction
est utilisée après une requête "EXECUTE" qui renvoie des enregistrements et
après une requête "FETCH" qui sélectionne l'enregistrement.
Retour :
0 < 2 047 Nombre de caractères copiés dans le buffer
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
-3 Buffer de réception trop petit pour contenir la valeur
Les colonnes récupérées sont toujours transmises en format Chaîne de
caractères quel que soit leur type dans la base. La longueur d'une colonne ne
peut dépasser 255 caractères.
12 GETCOLNAME Récupère le nom d'une colonne dans un enregistrement issu d'une requête.
Cette fonction est utilisée après une requête "EXECUTE" qui renvoie des
enregistrements.
Retour :
0 < 2 047 Nombre de caractères copiés dans le buffer
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
-3 Buffer de réception trop petit pour contenir la valeur
Syntaxe 5
LongVal = SVSQL(Mode, Shandle, Bhandle, Delim);
SV_SCADABasic_fr 364
Type de retour : LONG
Argument Signification
CHandle Handle de connexion. Type LONG.
BHandle Buffer devant contenir les champs récupérés. Type LONG.
Delim Chaîne de caractères délimitant les champs. Type STR.
Exécution
Mode Mnémonique Action
9 GETROW Récupère un enregistrement issu d'une requête et renvoie les données au format
ascii délimité dans un buffer.
Cette fonction est utilisée après une requête "EXECUTE" qui renvoie des
enregistrements et après une requête "FETCH" qui sélectionne l'enregistrement.
Retour :
>= 0 Nombre de caractères copiés dans le buffer
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
-3 Buffer de réception trop petit pour contenir les valeurs
Les colonnes récupérées sont toujours transmises au format Chaîne de
caractères quel que soit leur type dans la base.
Syntaxe 6
LongVal = SVSQL(Mode, CHandle, ColNum);
Type de retour : LONG
Argument Signification
CHandle Handle de connexion. Type LONG.
ColNum Numéro de la colonne à récupérer (commence à 1 et est numéroté séquentiellement de
gauche à droite). Type INTEGER.
Exécution
Mode Mnémonique Action
13 GETCOLSIZE Récupère la taille maximum d'une colonne dans un enregistrement issu d'une
requête. Cette fonction est utilisée après une requête "EXECUTE" qui renvoie des
enregistrements.
Retour :
>= 0 Taille de la colonne
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
La taille renvoyée ne correspond pas au nombre d'octets occupés par la colonne
mais au nombre max de caractères nécessaires pour renvoyer les données de la
colonnes sous un format texte.
Syntaxe 7
LongVal = SVSQL(Mode, CHandle, BHandle);
Type de retour : LONG
Argument Signification
CHandle Handle de connexion. Type LONG.
BHandle Buffer devant contenir le message d'erreur. Type LONG.
SV_SCADABasic_fr 365
Exécution
Mode Mnémonique Action
6 EXECUTE Exécute une requête SQL sur une base de données.
Retour :
0 Commit effectué
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
Une seule requête SQL peur être active à la fois pour une connexion donnée.
Chaque fois que vous appelez cette fonction, la précédente requête SQL est
automatiquement terminée et les éventuels résultats de cette requête sont
perdus.
15 ERROR Retourne les derniers messages d'erreurs renvoyés par le driver ODBC.
Retour :
>= 0 Nombre de caractères copiés dans le buffer
-1 Problème de syntaxe ou refus du driver
-2 Handle de connexion inconnu
-3 Buffer de réception trop petit pour contenir la valeur
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 366
SVTREND
Voir aussi Exemple
Récupération entre deux dates des valeurs historisées d’un ensemble de variables.
Mode Mnémonique Syntaxe
1 GETTREND 1
2 GETNEXTBUFFE 2
R
Syntaxe 1
IVal = SVTREND (Mode, ListVar, Branch, StartDate, EndDate, Period, [DisplayMode, Handle_Result,
Parameters]);
Argument Signification
ListVar Soit :
Handle contenant la liste des variables (séparée par des virgules) concernées par la
recherche. Type LONG.
Ou :
Liste des variables (séparée par des virgules) concernées par la recherche. Type STR.
Branch Branche de la liste des variables. Type STR.
StartDate Date de début de la recherche. Type DOUBLE.
EndDate Date de fin de la recherche. Type DOUBLE.
Period Période d’échantillonnage en secondes. Type DOUBLE.
DisplayMode Présentation des points. Type INTEGER.
Handle_Res Handle du buffer résultat. Type LONG.
ult
Parameters Soit :
Handle du buffer contenant les champs suivants séparés par des virgules. Type LONG.
Ou :
Chaîne de caractères contenant une liste séparée par des virgules. Type STR.
Dans ce cas, il y a quatre valeurs Format, Filter, LogVar, NameVar. Voir ci-dessous.
Format Format des données. Voir ci-dessous. Type STR.
Filter Filtre appliqué à la recherche. Voir le chapitre Expressions de Filtres. Type STR.
LogVar Nom de la variable état mise à 1 en fin de traitement. Type STR.
NameVar Nom de la variable mesure ayant l'identifiant numérique du nom de la variable couramment
utilisée. Type STR.
SV_SCADABasic_fr 367
-4 Le paramètre 2 n’est pas de type STR
-5 Le paramètre 3 n’est pas de type DOUBLE
-6 Le paramètre 4 n’est pas de type DOUBLE
-7 Le paramètre 5 n’est pas de type DOUBLE
-8 Le paramètre 6 n’est pas de type LONG
-10 Le paramètre 7 n’est pas de type STR
-11 Le paramètre 8 n’est pas de type STR
-12 Le paramètre 9 n’est pas de type STR
-13 "StrVar" n’existe pas dans la base de données ou n'est pas configuré
en tendance.
-14 Une des variables de "Handle_ListVar" ou "Str_ListVar" n’est pas une
variable.
-15 Une des variables de "Handle_ListVar" ou "Str_ListVar" n’existe pas
dans la base de données.
-16 Une des variables de "Handle_ListVar" ou "Str_ListVar" fait déja
l’objet d’une requête ( SVTREND ou HISTORY )
-17 "Handle_ListVar" ou "Str_ListVar" est vide.
Syntaxe 2
IVal = SVTREND (Mode, Handle_Result);
Handle_Res Handle du buffer dans lequel les données sont placées. Type LONG.
ult
SV_SCADABasic_fr 368
Le buffer "Handle_Result" est rempli à concurrence de sa taille. Une fois les points récupérés, le
mode GETNEXTBUFFER, permet de récupérer à nouveau le prochain buffer de points.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 369
SYSTEM
voir aussi Exemple Spécifiques
Modifie ou lit l'heure, la date du système, le mode graphique.
Pour fonctionner correctement, les modes SETDATE, SETTIME et SETDATETIME exige que le
Superviseur soit exécuté avec des droits élevés - spécialement SE_SYSTEMTIME_NAME. Depuis
Windows Vista et Server 2008, ces droits ne sont pas donnés par défaut à un utilisateur.
Syntaxe 1
IntVal = SYSTEM(Mode, Day, Month, Year);
Type de retour : INTEGER
Argument Signification
Day Jour du mois. Type INTEGER, valeur 1 à 31.
Month Numéro du mois. Type INTEGER, valeur 1 à 12.
Year Numéro de l'année. Type INTEGER, valeur 1980 à 2099.
SV_SCADABasic_fr 370
Exécution
Mode Mnémonique Action
1 SETDATE Modifie la date interne du système
Retour : 1 si OK, 0 sinon.
Syntaxe 2
IntVal = SYSTEM(Mode, Hour, Minute, Second);
Type de retour : INTEGER
Argument Signification
Hour Nombre d'heures. Type INTEGER, valeur 0 à 23.
Minute Nombre de minutes. Type INTEGER, valeur 0 à 59.
Second Nombre de secondes. Type INTEGER, valeur 0 à 59.
Exécution
Mode Mnémonique Action
2 SETTIME Modifie l'heure interne du système
Retour : 1 si OK, 0 sinon.
Syntaxe 3
StrVal= SYSTEM(Mode);
Type de retour : STR
Exécution
Mode Mnémonique Action
3 GETDATE Récupére la date interne dans une chaîne de caractères.
4 GETTIME Récupère l'heure interne dans une chaîne de caractères.
Syntaxe 4
IntVal = SYSTEM(Mode, Region);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
5 SETREGION Affecte la région courante selon le système de région utilisé.
Un seul écran
région 1 uniquement (par défaut)
Deux écrans
région 1 = écran de gauche
région 2 = écran de droite
Trois écrans
région 1 = écran de gauche
région 2 = écran du milieu
région 3 = écran de droite
SV_SCADABasic_fr 371
Quatre écrans
région 1 = écran de gauche
région 2 = centre gauche
région 3 = centre droite
région 4 = écran de droite
6 SETSYSREGION Choisit un système de région.
1 : 1 seul écran (par défaut)
2 : 2 écrans en paysage horizontal
3 : 3 écrans en paysage horizontal
Syntaxe 5
IntVal = SYSTEM(Mode, Command);
Type de retour : INTEGER.
Argument Signification
Command Chaîne de 255 caractères.
Exécution
Mode Mnémonique Action
10 SYSTEM Exécute une ligne de commande du système d'exploitation résidant.
Retour : Toujours 0.
Syntaxe 6
IntVal = SYSTEM(Mode, Username, Password);
Type de retour : INTEGER.
Argument Signification
Username Nom de l'utilisateur. Type STR.
Password Mot de passe de l'utilisateur. Type STR.
Exécution
Mode Mnémonique Action
11 LOGIN Pour se connecter par programme, "username" doit être de type STR et contient
le nom de l'utilisateur à connecter, "password" doit être de type STR et contient
son mot de passe.
Retour : 1 si OK, 0 sinon.
Syntaxe 7
IntVal = SYSTEM(Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
7 GETREGION Récupère la région courante (Voir Mnémonique 4 pour explication.)
8 GETSYSREGION Récupère le système de région couramment utilisé (Voir Mnémonique 4 pour
explication)
12 LOGOUT Déconnecte l'utilisateur courant
Retour : Toujours 0.
SV_SCADABasic_fr 372
14 LANGUAGE Renvoie le numéro de la langue courante
Retour : 1 ou 2 si OK, 0 si erreur d'utilisation
16 EXIT Sortie du superviseur.
Retour : 1 si sortie utilisée, 0 si impossible par exemple si des boîtes de dialogue
sont ouvertes.
20 REPAINT Rafraîchissement de l'écran (idem F11 standard).
Retour : Toujours 0.
Syntaxe 8
IntVal = SYSTEM(Mode, Date, Time);
Type de retour : INTEGER
Argument Signification
Date Une chaîne format DD/MM/YY. Type STR.
Time Une chaîne format HHMMSS. Type STR.
Exécution
Mode Mnémonique Action
13 SETDATETIME Permet d'affecter la date et l'heure du système en une seule instruction, les
deux arguments doivent être de type STR et contiennent respectivement la
nouvelle date et heure à affecter.
Retour : 1 si OK, 0 sinon.
Mnémonique 9
StrVal = SYSTEM(Mode, Rights);
Type de retour : STR
Argument Signification
Rights Toujours 0.
Exécution
Mode Mnémonique Action
15 USER Renvoie le nom de l'utilisateur courant.
Syntaxe 10
IntVal = SYSTEM(Mode, Rights);
Type de retour : INTEGER
Argument Signification
Rights Valeur des droits associés à l'utilisateur courant. Type INTEGER.
Pour une liste des poids Administration, Système et Recette, droits d'impression fenêtre. voir
le chapitre Poids des Droits d'Accès.
1 Droits d'accès système
5 Droits de recette
7 Administration (comme dans un profil utilisateur)
10 Impression fenêtre
SV_SCADABasic_fr 373
2 Droit de conduite
3 Droits de suivi
4 Droits d'acquittement
6 Droits de calques
8 Masqué (0 à 29).
9 (Non utilisé)
Exécution
Mode Mnémonique Action
15 USER Renvoie la valeur des droits associés à l'utilisateur courant.
Les droits sont retournés comme poids binaires en INTEGER.
Pour plus d'informations, voir le chapitre sur les Droits d'accès dans l'aide de Configuration du
Superviseur.
Syntaxe 11
StrVal = SYSTEM(Mode, Param);
Type de retour : STR
Argument Signification
Rights Type INTEGER.
Exécution
Mode Mnémonique Action
21 PASSWORD Renvoie le mot de passe correspondant au nom d'utilisateur passé en argument.
22 USERNAME Renvoie le nom d'utilisateur correspondant au mot de passe passé en argument.
Syntaxe 12
IntVal = SYSTEM(Mode, Folder);
Type de retour : INTEGER
Argument Signification
Folder Nom du répertoire. Par exemple "C\\NEWDIR". Type STR.
Exécution
Mode Mnémonique Action
23 MKDIR Création d'un répertoire.
Retour : 1 si OK, 0 sinon.
24 RMDIR Suppression d'un répertoire.
Retour : 1 si OK, 0 sinon.
Syntaxe 13
IntVal = SYSTEM(Mode, DiskInfo);
Argument Signification
DiskInfo DiskInfo est le nom du disque ou du répertoire. Vous pouvez inclure un deux-point après le
nom du disque (par exemple "C:") et deux anti-slashes pour spécifier le répertoire (par
exemple "C:\\temp"). Type STR.
Exécution
SV_SCADABasic_fr 374
Mode Mnémonique Action
26 GETDRIVETYPE Renvoie le type de disque configuré dans le BIOS. Type de retour : INTEGER.
27 GETDISKSIZE Renvoie la taille du disque en Koctets. Type de retour : LONG.
28 GETDISKFREESP Renvoie l'espace libre du disque en Koctets. Type de retour : LONG.
ACE
29 GETDIRECTORYS Renvoie la taille du répertoire spécifié en Koctets. Type de retour : LONG.
IZE
Syntaxe 14
IntVal = SYSTEM(Mode, Flag, Global, SetSendList);
Type de retour : INTEGER
Argument Signification
Flag 0 ou 1 :
1 consignation activée.
0 consignation désactivée. Valeur par défaut.
Global Facultatif. Lorsque Flag est positionné à 1 :
0 consignation activée seulement dans une fonction où des variables sont positionnées
(défaut)
1 global, consignation activée dans toutes les fonctions SCADA Basic.
SetSendList Facultatif. 0 si Flag = 1 lorsque la consignation de l'utilisateur courant est faite sur des
variables positionnées par l'instruction Set/SendList, autrement pas de consignation.
1 pour compatibilité, consignation sans que la consignation de l'utilisateur courant soit fait
sur des variables positionnées par l'instruction Set/SendList indépendamment de la valeur de
Flag. Valeur par défaut : 0 pour un nouveau projet.
Exécution
Mode Mnémonique Action
25 OPERATORMODE Autorise la consignation de variables positionnées par un programme et qui doit
être attribué à un utilisateur.
Retour : 1 si OK, 0 sinon.
Syntaxe 15
IntVal = SYSTEM(Mode, PrinterNo, Flag);
Type de retour : INTEGER
Argument Signification
PrinterNo Numéro d'imprimante pour impression ligne.
Flag 0 ou 1.
Exécution
Mode Mnémonique Action
19 PRINTER Positionne le spooler de l'imprimante en ligne à utiliser. Si Flag est :
0 spooling activé
1 spooling désactivé
Retour : 1 si OK, 0 sinon.
Syntaxe 16
SV_SCADABasic_fr 375
IntVal = SYSTEM(Mode, Username, Password, NewPassword);
Type de retour : INTEGER.
Argument Signification
Username Nom de l'utilisateur. Type STR.
Password Mot de passe existant. Type STR.
NewPasswor Nouveau mot de passe. Type STR.
d
Exécution
Mode Mnémonique Action
18 CHANGEPASSWORD Modifie le mot de passe de l'utilisateur.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 376
TAN
Voir aussi
Fonction tangente.
Syntaxe
DblVal = TAN(Angle);
Type de retour : DOUBLE.
Argument Meaning
Angle L'angle à convertir exprimé en degré. Tout type numérique.
Exécution
Les variables de la base de données sont de type SINGLE. En cas d'affectation avec cette fonction, la
conversion en SINGLE est donc nécessaire si l'on veut éviter une erreur de type.
Exemple
'database variables
'@ARC - type Register
'@ANGLE - type Register
SUB Main()
'Declare
DIM dblangle as double;
DIM dblarc as double;
dblangle = 45;
dblarc = TAN (dblangle);
print("TAN(",dblangle,") = ",dblarc);
END SUB
SV_SCADABasic_fr 377
TEMPORARY_DB
Voir aussi Exemple
Création ou destruction de variables temporaires, ainsi qu'activation ou désactivation du mode de
génération automatique.
Mode Mnémonique Syntaxe
0 OFF 1
1 ON 1
2 ADDBIT 2
3 ADDREG 3
4 ADDTXT 4
Syntaxe 1
IntVal = TEMPORARY_DB(Mode);
Type de retour : INTEGER.
Mode Mnémonique Action
0 OFF Désactive le mode de génération automatique des variables temporaires.
Retour : Toujours 1
1 ON Active le mode de génération automatique des variables temporaires. Dès
qu'une variable est référencée dans une animation et qu'elle n'existe pas dans la
base de donnée, une variable temporaire est crée.
Retour : Toujours 1
Exécution
Syntaxe 2
IntVal = TEMPORARY_DB(Mode, VarName, Title_1, Title_2);
Argument Signification
VarName Nom de la variable temporaire. Type STR
Title_1 Libellé de la variable temporaire en langue 1. Type STR
Title_2 Libellé de la variable temporaire en langue 2. Type STR
Syntaxe 3
IntVal = TEMPORARY_DB(Mode, VarName, Title_1, Title_2, Min, Max, Format, Units);
Argument Signification
VarName Nom de la variable temporaire. Type STR.
SV_SCADABasic_fr 378
Min Valeur minimum de la mesure. Tout type numérique.
Max Valeur maximum de la mesure. Tout type numérique.
Format Format d'affichage de la mesure, par exemple ###.##. Type STR.
Units L'unité texte de le mesure, par exemple DegC. Type STR.
Syntaxe 4
IntVal = TEMPORARY_DB(Mode, VarName, Title_1, Title_2);
Argument Signification
VarName Nom de la variable temporaire. Type STR
Title_1 Libellé de la variable temporaire en langue 1. Type STR
Title_2 Libellé de la variable temporaire en langue 2. Type STR
Exemple
DIM ConstVarName As Str;
DIM VarName As Str;
DIM Index As Integer;
ConstVarName = "TempBit"
'-------- Create 100 bit variables TempBit0 to TempBit99
For(Index = 0; Index < 100; Index ++)
VarName = AddString(ConstVarName, TOC(Index));
Temporary_DB("ADDBIT", VarName, "", "");
Next
Pour plus d'exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 379
TEXTVAR
Voir aussi Exemple
Manipulation de chaînes de caractères.
Mode Mnémonique Syntaxe
1 BUFTOTEXT 1
2 TEXTTOBUF 1
3 FILETOTEXT 2
4 TEXTTOFILE 3
5 TEXTCOMPARE 4
6 TEXTCOPY 5
7 TEXTLEN 6
Syntaxe 1
IntVal = TEXTVAR(Mode, Text, Hbuf, Text_Offset, Hbuf_Offset, Size);
Argument Signification
Text Chaîne dont le terminateur est le zéro binaire. (\0).
Size Nombre de caractères à copier ou 0 pour tous les caractères.
Syntaxe 2
IntVal = TEXTVAR(Mode, Text, Filename, Text_Offset, File_Offset, Size);
Argument Signification
Text Chaîne dont le terminateur est le zéro binaire. (\0).
Filename Nom du fichier source.
Syntaxe 3
IntVal = TEXTVAR(Mode, Text, Filename, Text_Offset, Filemode, Size);
SV_SCADABasic_fr 380
Argument Signification
Text Chaîne dont le terminateur est le zéro binaire. (\0).
Filename Nom du fichier source.
FileMode 0 Les caractères sont écrits au début du fichier et écrasent le contenu existant.
1 Les caractères sont ajoutés à la fin du fichier.
Syntaxe 4
IntVal = TEXTVAR(Mode, Text1, Text2, size);
Argument Signification
Text1 Nom d'une variable texte. (\0).
Text2 Nom d'une autre variable texte. (\0).
Size Longueur de la valeur des variables texte à comparer. Type INTEGER.
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
5 TEXTCOMPARE Compare les chaînes de caractères des variables texte Text1 et Text2 selon le
nombre de caractères spécifié dans size.
Syntaxe 5
IntVal = TEXTVAR(Mode, Text1, Text2);
Argument Signification
Text1 Chaîne dont le terminateur est le zéro binaire. (\0).
Text2 Chaîne dont le terminateur est le zéro binaire. (\0).
Syntaxe 6
SV_SCADABasic_fr 381
IntVal = TEXTVAR(Mode, Text);
Argument Signification
Text Chaîne dont le terminateur est le zéro binaire. (\0).
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 382
TOC
Voir aussi
Convertit un nombre en chaîne d'après le format standard.
Syntaxe
StrVal = TOC(Num);
Type de retour : STR
Argument Signification
Num Nombre à convertir. Tout type numérique.
Exécution
Les notations scientifiques sont conservées.
Exemple
SUB Main()
DIM lngValue as Long;
DIM strString as Str;
lngValue = 125;
strString = TOC( lngValue );
Print("Result: ", strString);
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 383
TOD
Voir aussi
Convertit un nombre en DOUBLE.
Syntaxe
DblVal = TOD(Num);
Argument Signification
Num Nombre à convertir. Tout type numérique.
Exécution
Retour : Pas de restriction sur les valeurs.
Exemple
SUB Main()
DIM lngValue as long;
DIM dblResult as double;
lngValue = 125;
dblResult = TOD( lngValue );
Print("Result: ", dblResult);
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 384
TODOUBLE
Voir aussi
Convertit une variable de la base de données en DOUBLE.
Par défaut, SCADA Basic travaille en mode FLOAT, avec d'insignifiantes pertes de précisions.
Syntaxe
DblVal = TODOUBLE(VarName);
Argument Signification
VarName Variable de la base de données dont la valeur doit être convertie. Type STR.
Exécution
Retour : La valeur convertie en type DOUBLE.
Exemple
DATETIMESTRING(TODOUBLE("EXTRACT.DATETIMEB"));
SV_SCADABasic_fr 385
TOHMS
Voir aussi
Convertit une valeur de secondes au format Heures:Minutes:Secondes.
Syntaxe
StrVal = TOHMS(Seconds);
Type de retour : STR
Argument Signification
Seconds Nombre de secondes à convertir. Tout type numérique.
Exécution
Un nombre négatif fournit des heures négatives.
Exemple
SUB Main()
DIM strString1 as STR;
DIM dblValue as DOUBLE;
dblValue = 6594;
strString1 = TOHMS (dblValue);
Print("6594 seconds = ",strString1);
'Display "6594 seconds = 01:49:54"
END SUB
SV_SCADABasic_fr 386
TOI
Voir aussi
Convertit un nombre en ENTIER en le tronquant.
Syntaxe
IntVal = TOI(Num);
Type de retour : INTEGER
Argument Signification
Num Nombre à convertir. Tout type numérique.
Exécution
Return: Le nombre IntVal est converti en ENTIER en le tronquant.
Exemple
SUB Main()
DIM lngValue as Long;
DIM intResult as Integer;
lngValue = 125;
intResult = TOI( lngValue );
Print("Result: ", intResult);
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 387
TOL
Voir aussi
Convertit un nombre en LONG.
Syntaxe
LongVal = TOL(Num);
Type de retour : LONG
Argument Signification
Num Valeur à convertir. Tout type numérique.
Exécution
Si le nombre contient une décimale il est tronqué.
Exemple
SUB Main()
DIM lngValue as Long;
DIM lngResult as Long;
lngValue = 125;
lngResult = TOL( lngValue );
Print("Result: ", lngResult);
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 388
TOLL
Voir aussi
Convertit un nombre en LONGLONG.
Syntaxe
LongLongVal = TOLL(Num);
Type de retour : LONGLONG
Argument Signification
Num Valeur à convertir. Tout type numérique.
Exécution
Le nombre est converti en valeur LONGLONG.
Exemple
SUB Main()
DIM lngValue as Long;
DIM lnglngResult as LongLong;
lngValue = 125;
lngResult = TOLL( lngValue );
PRINT("Result: ", lnglngResult);
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 389
TOS
Voir aussi
Convertit un nombre en SINGLE.
Syntaxe
SngVal = TOS(Num);
Type de retour : SINGLE
Argument Signification
Num Nombre à convertir. Tout type numérique.
Exécution
Le nombre SngVal est converti en valeur SINGLE.
Le verbe TOS est équivalent au verbe TOD lorsqu’on a coché la case Utiliser les variables mesures
comme des doubles en Scada Basic (Configuration.Application
Explorer.Paramètres.Avancé.Programmes). Ceci pour ne plus avoir de problème de précisions quand
on utilise des variables mesures de type double.
Exemple
SUB Main()
DIM lngValue as Long;
DIM sngResult as Single;
lngValue = 125;
sngResult = TOS( lngValue );
PRINT("Result: ", sngResult);
'Display "Result: 125"
END SUB
SV_SCADABasic_fr 390
TRACE
Voir aussi
Exécute une trace dans SCADA Basic sans utiliser la fonction PRINT. A des fins de programmation, il peut
être utile d'enregistrer des messages de log dans le fichier standard de log du Superviseur.
Syntaxe
TRACE(Mode, String);
Il n'y a pas de type de retour.
Argument Signification
String Message à consigner. Type STR.
Exécution
Mode Mnémonique Action
LOG Envoyer un message à l'observateur d'événements et au fichier TRACE.DAT.
FILE Envoyer un message au fichier T.
SV_SCADABasic_fr 391
TRACEON/TRACEOFF
Voir aussi
Trace les appels de procédures.
Syntaxe
TRACEON;
ou
TRACEOFF;
Type de retour : aucun
Exécution
La trace connait le nom du programme appelant et le nom du programme appelé ainsi que le nom de la
procédure appelée.
L'instruction TRACEON est active pour toutes les procédures d'un même programme jusqu'à ce que
l'instruction TRACEOFF soit rencontrée.
Exemple
SUB Main()
DIM intResult as Integer;
TRACEON;
procedure1();
procedure2("Parameter1");
intResult = procedure4();
PRINT("Return from procedure = ",intResult);
TRACEOFF;
END SUB
SV_SCADABasic_fr 392
TREE
Voir aussi
Sélectionne une branche de la nomenclature.
Syntaxe
TREE(Branch);
Type de retour : aucun
Argument Signification
Branch Nom de la branche utilisé. Type STR.
Exécution
L'instruction TREE est effective à l'intérieur d'une procédure jusqu'à la prochaine instruction TREE.
Exemple
SUB Main()
'Declare
DIM strBranche as Str;
DIM strTree as Str;
strBranche = "BRANCH01";
TREE (strBranch);
strTree = GETTREE();
PRINT("Branch: ",strTree);
propagationGetTree();
END SUB
SUB propagationGetTree()
DIM strTree as Str;
strTree = GETTREE();
PRINT("Branch: ",strTree);
END SUB
SV_SCADABasic_fr 393
TREEVIEW
Voir aussi Exemple
Propriétés d'accès du contrôle Tree-view.
Mode Mnémonique Syntaxe
1 COUNT 1
2 GETSELECTEDINDEX 1
3 SETSELECTEDINDEX 2
4 GETTEXT 3
5 GETUSERDATA 3
6 GETROOT 1
7 GETCHILDNODE 3
8 GETNEXTNODE 3
9 GETPREVNODE 3
10 GETPARENTNODE 3
11 EXPANDNODE 3
12 COLLAPSENODE 3
13 LOAD 4
14 SETUSERDATA 5
15 SETTEXT 5
Syntaxe 1
LongVal = TREEVIEW(Mode, Window, Branch, Identity);
Exécution
Mode Mnémonique Action
1 COUNT Retourne le nombre de noeuds. Type LONG.
2 GETSELECTEDINDEX Retourne l'index du noeud actuellement sélectionné. Type LONG.
6 GETROOT Retourne l'index de la première racine du noeud. Type LONG.
Syntaxe 2
Return = TREEVIEW(Mode, Window, Branch, Identity, NodeIndex, Notification);
Argument Signification
NodeIndex Index du noeud. Type LONG.
Si l'index est -1 aucun élément n'est sélectionné.
Notification Indique si la sélection déclenche l'exécution de la fonction SCADA Basic définie dans la
configuration Opérations du contrôle. Type INTEGER.
Pour que cela fonctionne, il doit être aussi autorisé dans l'onglet Opérations de la
boîte de dialogue des propriétés Tree-view.
Si nécessaire, la fonction fera défiler le contrôle pour afficher l'élément.
Exécution
SV_SCADABasic_fr 394
Mode Mnémonique Action
3 SETSELECTEDINDEX Sélectionne un noeud suivant son index.
Retourne une valeur qui indique si l'action a aboutie (1) ou échouée (0). Type
LONG.
Syntaxe 3
Return = TREEVIEW(Mode, Window, Branch, Identity, NodeIndex);
Argument Signification
NodeIndex Identifiant du noeud cité dans l'action.
Exécution
Mode Mnémonique Action
4 GETTEXT Retourne le Texte du noeud comme défini dans la langue courante en
utilisation. Type STR.
5 GETUSERDATA Retourne les données utilisateur associées au noeud. Type STR.
7 GETCHILDNODE Retourne l'index du premier noeud enfant d'un noeud. Type LONG.
8 GETNEXTNODE Retourne l'index du noeud suivant de même parent. Type LONG.
9 GETPREVNODE Retourne l'index du noeud précédent de même parent. Type LONG.
10 GETPARENTNODE Retourne l'index du noeud parent. Type LONG.
11 EXPANDNODE Etend le noeud.
Retourne une valeur qui indique si l'action a aboutie (1) ou échouée (0). Type
LONG.
12 COLLAPSENODE Réduit le noeud.
Retourne une valeur qui indique si l'action a aboutie (1) ou échouée (0). Type
LONG.
Syntaxe 4
Return = TREEVIEW(Mode, Window, Branch, Identity, FileName);
Argument Signification
FileName Nom du fichier contenant les données du contrôle.
Exécution
Mode Mnémonique Action
13 LOAD Charge le contenu du fichier de la liste du contrôle des éléments. Type INTEGER.
Retour : 1 si OK (fichier chargé), 0 sinon. Type INTEGER.
Syntaxe 5
LongVal = TREEVIEW(Mode, Window, Branch, Identity, NodeID, Text);
Argument Signification
NodeID Index d'un noeud. Type LONG.
Text Chaîne de texte. Type STR.
Exécution
Mode Mnémonique Action
14 SETUSERDATA
Définit les données de l'utilisateur du nœud en utilisant la chaîne de
texte fournie.
Retourne une valeur indiquant si l'action a réussi (1) ou échoué (0).
SV_SCADABasic_fr 395
15 SETTEXT Définit le texte du nœud en utilisant la chaîne de texte fournie.
Retourne une valeur indiquant si l'action a réussi (1) ou échoué (0).
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 396
TREND
Voir aussi Exemple
Modification des caractéristiques des courbes de tendance.
Lors de l'utilisation de régions multiples, vous devez positionner la région avant l'exécution
d'instructions qui interagissent avec l'IHM. Pour plus d'informations, voir le chapitre REGION.
SV_SCADABasic_fr 397
38 DRAW_MINLINE 27
39 DRAW_MAXLINE 27
40 DISPLAY_MINMAXLINE 30
41 SETTIMEORIGIN 28
42 SETTIMEOFFSET 29
43 EXPORT 20
44 SET_VISIBLE 31
45 DISPLAY_SCALE 31
Toutes Syntaxes
Argument Signification
Window Nom de la fenêtre qui contient la fenêtre de tendance utilisée. Type STR.
Branch Branche de la fenêtre (si elle existe). Utiliser un "*" signifie la branche courante du
programme. Type STR.
Identity Identifiant de l'animation fenêtre de tendance dans la fenêtre spécifiée. Type STR.
Syntaxe 1
IntVal = TREND( Mode, Window, Branch, Identity, Trace, SubMode);
Type de retour : INTEGER
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 0 à 8.
SubMode Mode d'opération pour le tracé sélectionné. Type INTEGER.
Exécution
Mode Mnémonique Action
1 SETTYPE Modification de tous les tracés en historique (SubMode=2) ou en temps-réel
(SubMode=1). Le paramètre Trace n'est pas pris en compte et doit être
positionné à 0.
24 SETSTYLE Permet de modifier le style de la courbe selon le paramètre SubMode :
0 créneau
1 ligne brisée
2 pointillé
Retour : 1 si OK, 0 sinon.
Lors de l'utilisation du mode SETTYPE, le paramètre Trace doit toujours être inclus mais il est
ignoré. Tous les tracés sont affectés.
Syntaxe 2
IntVal = TREND(Mode, Window, Branch, Identity, Trace);
Type de retour : INTEGER
Argument Signification
Trace Inutilié. Toujours 0.
Exécution
Mode Mnémoniq Action
ue
2 GETTYPE Retourne le Mode de fonctionnement de tous les tracés. Le paramètre Trace est
inutilisé est toujours positionné à 0.
Retour :
SV_SCADABasic_fr 398
1 ou "RealTime"
2 for historic
0 ou "Historical"
Syntaxe 3
IntVal = TREND(Mode, Window, Branch, Identity, Trace [, Ymin, YMax]);
Type de retour : INTEGER
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8.
Ymin, YMax Valeur pour le tracé sélectionné. Type DOUBLE.
Exécution
Mode Mnémonique Action
3 SETYRANGE Modification des valeurs min. et max. en Y d'une courbe de tendance.
Lorsque ces paramètres sont omis, les valeurs min. et max. de la variable en
tendance sont utilisées.
Si le tracé est 0 alors tous les tracés sont affectés. Si le tracé est entre 1 et 8,
seule le tracé correspondant est affecté.
Retour : 1 si OK, 0 sinon.
Syntaxe 4
DblVal = TREND(Mode, Window, Branch, Identity, Trace);
Type de retour : DOUBLE
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8.
Exécution
Mode Mnémonique Action
4 GETYMIN Lecture de la valeur min. en Y d'une courbe de tendance.
5 GETYMAX Lecture de la valeur max. en Y d'une courbe de tendance.
13 GETCURSORVALUE Lecture de la valeur d'une variable d'une courbe de tendance à la position
courante du curseur.
Syntaxe 5
IntVal = TREND(Mode, Window, Branch, Identity, Duration);
Type de retour : INTEGER
Argument Signification
Duration Période exprimée en millisecondes. Type DOUBLE.
Exécution
Mode Mnémonique Action
6 SETPERIOD Modification de la durée de visualisation des courbes de tendance. La durée est
exprimée en millisecondes.
22 SETTIMECAPACITY Modification de la durée (capacité) de stockage du buffer d'affichage pour le
temps réel.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
SV_SCADABasic_fr 399
DblVal = TREND(Mode, Window, Branch, Identity);
Type de retour : DOUBLE
Exécution
Mode Mnémonique Action
7 GETPERIOD Retourne la période de l'axe X exprimée en millisecondes.
Syntaxe 7
IntVal = TREND(Mode, Window, Branch, Identity, StartTime, EndTime]);
Type de retour : INTEGER
Argument Signification
StartTime Horodate le plus ancien exprimé en millisecondes. Type DOUBLE.
EndTime Horodate le plus récent exprimé en millisecondes Type DOUBLE.
Exécution
Mode Mnémonique Action
8 SETDATETIME Modification des horodates d'affichage de début et de fin des courbes de
Lorsque le paramètre 'HorodateFin' est omis, seul l'horodate de début est
modifiée (la durée ne change pas).
La durée d'observation correspond à la durée affichée sur la largeur de la fenêtre
de visualisation des courbes.
Retour : 1 si OK, 0 sinon.
Syntaxe 8
IntVal = TREND(Mode, Window, Branch, Identity, StartTime, Duration);
Type de retour : INTEGER
Argument Signification
Duration Période exprimée en millisecondes. Type DOUBLE.
Exécution
Mode Mnémonique Action
9 SETDATETIMEPERI Modification de l'horodate de début et de la durée des courbes de tendance.
OD
Retour : 1 si OK, 0 sinon.
Syntaxe 9
IntVal = TREND(Mode, Window, Branch, Identity, PScroll);
Type de retour : INTEGER
Argument Signification
Pscroll Pourcentage compris entre -100 et +100 inclus. Type INTEGER.
Exécution
Mode Mnémonique Action
10 SCROLLPERCENT Déplacement dans le temps des courbes de tendance.
Le déplacement est exprimé en pourcentage de la durée de l'échelle des temps.
Un pourcentage négatif indique un déplacement en arrière dans le temps et une
pourcentage positif un déplacement en avant.
Un pourcentage nul recale les courbes sur l'horodate courante.
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 400
Syntaxe 10
IntVal = TREND(Mode, Window, Branch, Identity, TScroll);
Type de retour : INTEGER
Argument Signification
Tscroll Période exprimée en millisecondes. Type DOUBLE.
Exécution
Mode Mnémonique Action
11 SCROLLTIME Déplacement dans le temps des courbes de tendance.
Le déplacement est exprimé en millisecondes. Un temps négatif indique un
déplacement en arrière et un temps positif un déplacement en avant.
Retour : 1 si OK, 0 sinon.
Syntaxe 11
DblVal = TREND(Mode, Window, Branch, Identity, Trace, Function);
Type de retour : DOUBLE
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8.
Function Indicateur d'opération. Type INTEGER, valeur 1 à 3.
Exécution
Mode Mnémonique Action
12 GETDATETIME Retourne l'horodate de la tendance exprimée en millisecondes depuis 1980,
selon l'argument Function :
1 Horodate de début
2 Horodate de fin
3 Horodate du curseur
Syntaxe 12
IntVal = TREND(Mode, Window, Branch, Identity, ClearFlag, Trace, VarName [,Label [Type]]);
Type de retour : INTEGER
Argument Signification
ClearFlag Indicateur de traitement du tracé courant. Type INTEGER, valeur 0 ou 1.
VarName Nom de la variable à afficher. Type STR.
Label Libellé affiché dans la bordure gauche de la tendance. Type STR.
Type Indicateur du mode d'opération du tracé. Type INTEGER, valeur 0 à 2.
Exécution
Mode Mnémonique Action
14 SETVAR Modification du nom de la variable,du libellé et du type d'une des 8 courbes
d'une animation courbe de tendance. Modification du mode temps réel /
historique.
0 Les courbes présentes sont conservées.
1 Les courbes présentes sont supprimées.
Mode d'opération indiqué par l'argument Type :
0 Pas de changement de type de courbe
1 Courbe de type temps réel.
SV_SCADABasic_fr 401
2 Courbe de type historique.
Retour : 1 si OK, 0 sinon.
Syntaxe 13
StrVal = TREND(Mode, Window, Branch, Identity, Trace);
Type de retour : STR
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8.
Exécution
Mode Mnémonique Action
15 GETVAR Lecture du nom de la variable d'une courbe de tendance.
Syntaxe 14
IntVal = TREND(Mode, Window, Branch, Identity, Trace, Varname [,Label [Type]]);
Type de retour : INTEGER
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8
VarName Nom de la variable à afficher. Type STR.
Label Libellé affiché dans la bordure gauche de la tendance. Type STR.
Type Indicateur du mode d'opération du tracé. Type INTEGER, valeur 0 à 2.
Exécution
Mode Mnémonique Action
16 ADDVARLIST Permet la préparation d'une modification portant sur plusieurs courbes d'une
animation courbe de tendance. Des appels successifs à "AddVarList" permettent
de constituer la liste des courbes à modifier et l'appel à "SetVarList" déclenche la
modification.
Mode d'opération indiqué par l'argument Type :
0 Pas de changement de type de courbe
1 Courbe de type temps réel.
2 Courbe de type historique.
Retour : 1 si OK, 0 sinon.
Syntaxe 15
IntVal = TREND(Mode, Window, Branch, Identity, ClearFlag)
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
17 SETVARLIST Used with Mode16 to change the variable for a number of traces on the same
Trend Viewer simultaneously. The current traces are preserved or erased
according to ClearFlag:
0 preserved
1 erased
Retour : 1 si OK, 0 sinon.
Syntaxe 16
SV_SCADABasic_fr 402
IntVal = TREND(Mode, Window, Branch, Identity, ClearFlag, Handle)
Argument Signification
Handle Localisation du buffer mémoire crée par l'instruction FILETOBUF. Type LONG.
Syntaxe 17
IntVal = TREND(Mode, Window, Branch, Identity, [,Trace]);
Type de retour : INTEGER
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8.
Exécution
Mode Mnémonique Action
19 RESETVAR Permet de réinitialiser une animation courbe de tendance avec les paramètres de
configuration. Toutes les courbes sont affectées si NuméroCourbe = 0.
Retour : 1 si OK, 0 sinon.
20 CLEARVAR Permet de supprimer une ou toutes les courbes d'une animation. Toutes les
courbes sont affectées si NuméroCourbe = 0.
Retour : 1 si OK, 0 sinon.
Syntaxe 18
IntVal = TREND(Mode, Window, Branch, Identity, NewIdentity);
Argument Signification
NewIdentity Nouveau repère de l'animation Tendance.. Type STR.
Syntaxe 19
IntVal = TREND(Mode, Window, Branch, Identity, Trace, Red, Green, Blue);
Type de retour : INTEGER
Argument Signification
Trace Nombre de tracés à modifier. Type INTEGER, valeur 1 à 8.
SV_SCADABasic_fr 403
Red Composant rouge de la courleur du tracé. Type INTEGER, valeur 0 à 255.
Green Composant vert de la courleur du tracé. Type INTEGER, valeur 0 à 255.
Blue Composant bleu de la courleur du tracé. Type INTEGER, valeur 0 à 255.
Exécution
Mode Mnémonique Action
23 SETCOLOR Permet de changer la couleur d'une courbe.
Change aussi la couleur de la courbe invalide et de l'échelle.
Retour : 1 si OK, 0 sinon.
Lorsqu'une fonction se rapporte à une seule courbe de tendance de l'animation, cette courbe est
identifiée par un cinquième paramètre appelé 'NuméroCourbe'.
Ce numéro correspond à l'indice 1 à 8 d'une courbe de tendance dans une animation. Pour certaines
fonctions, ce numéro peut être égal à 0 pour désigner l'ensemble des courbes de tendance de
l'animation.
Les paramètres contenant des horodates sont de type DOUBLE. Une horodate est toujours une
valeur représentant le nombre de millisecondes écoulées depuis le 1er janvier 1980 à
00:00:00.000.
Syntaxe 20
IntVal = TREND(Mode, Window, Branch, Identity);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
25 HARDCOPY Copie d'écran (proportionnelle) de la fenêtre de tendance.
Retour : 1 si OK, 0 sinon.
32 REFRESH Effectue une requête aux historiques.
Retour : 1 si OK, 0 sinon.
43 EXPORT Enclenche un Export de tendances. L'effet est similaire au bouton Export d'une
fenêtre de tendances.
Retour : 1 si OK, 0 sinon.
Syntaxe 21
IntVal = TREND(Mode, Window, Branch, Identity, Trace, dbY);
Type de retour : INTEGER
Argument Signification
Trace Numéro de la courbe. Type INTEGER, de 1 à 8.
dbY Valeur minimum ou maximum de l'échelle de la courbe.
Exécution
Mode Mnémonique Action
27 SETYMIN Positionne la valeur minimum de l’échelle pour une courbe.
Retour : 1 si OK, 0 sinon.
28 SETYMAX Positionne la valeur maximum de l'échelle pour une courbe.
SV_SCADABasic_fr 404
Retour : 1 si OK, 0 sinon.
Si les Min et Max sont à 0, ce seront les valeurs Min et Max de la variable qui seront utilisées à la
place.
Syntaxe 22
IntVal = TREND(Mode, Window, Branch, Identity, Trace);
Type de retour : INTEGER
Argument Signification
Trace Numéro de la courbe. Type INTEGER, de 1 à 8.
Exécution
Mode Mnémonique Action
26 GETSTYLE Retourne le type de tracé pour une courbe.
Retour :
-1 en cas d’erreur.
0 pour un tracé de type Créneau.
1 pour un tracé de type Ligne brisée.
2 pour un tracé de type Point.
29 GETCOLORRED Retour :
-1 en cas d’erreur
0 à 255 : La composante rouge de la couleur de la courbe
30 GETCOLORGREEN Retour :
-1 en cas d’erreur
0 à 255 : La composante verte de la couleur de la courbe
31 GETCOLORBLUE Retour :
-1 en cas d’erreur
0 à 255 : La composante bleue de la couleur de la courbe
Syntaxe 23
IntVal = TREND(Mode, Window, Branch, Identity, Trace, ThresholdMode[, ThresholdValue1,
DisplayThreshold1[, ThresholdValue2, DisplayThreshold2[,ThresholdValue3,
DisplayThreshold3[,ThresholdValue4, DisplayThreshold4]]]]);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
ThresholdMode Nouveau mode de seuils. Type INTEGER, de -1 à 5. Voir tableau ci-dessous.
ThresholdValueN Nouvelle valeur du seuil N. Tout type numérique.
DisplayThresholdN Mode d'affichage du seuil N. Type INTEGER.
0 - Nouveau seuil non affiché.
1 - Nouveau seuil affiché.
2 - Pas de changement.
Exécution
Mode Mnémonique Action
33 THRESHOLD_SETMODE Modifie l'affichage de la configuration du seuil pour la trace
sélectionnée.
Retour : 1 si 0K, 0 sinon.
SV_SCADABasic_fr 405
Mode du seuil
Mode Système de seuil
-1 Aucun
0 Depuis la configuration de la variable
1 ppphigh/pphigh/hihi/high
2 pphigh/hihi/high/low
3 hihi/high/low/lolo
4 high/low/lolo/pplow
5 low/lolo/pplow/ppplow
Syntax 24
IntVal = Trend(Mode, Window, Branch, Identity, Trace , ThresholdNumber, Red, Green, Blue, PenStyle,
DrawThresholdLine);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
ThresholdNumber Numéro identifiant le seuil. Type INTEGER, de 0 à 3.
Red Composant rouge de la couleur du seuil. Type INTEGER, de -1 à 255.
Blue Composant bleu de la couleur du seuil. Type INTEGER, de -1 à 255.
Green Composant vert de la couleur du seuil. Type INTEGER, de -1 à 255.
PenStyle Style de ligne du seuil. Voir tableau ci-dessous.
DrawThresholdLine Flag indiquant si la ligne du seuil est dessinée. Type INTEGER. 0 masque la
ligne, 1 dessine la ligne.
Exécution
Mode Mnémonique Action
35 THRESHOLD_SETPROP Modifie les propriétés du seuil sélectionné. La couleur est celle
de la trace au dépassement du seuil. Si -1 est utilisé pour
chaque composant de couleur, la couleur ne change pas.
Retour : 1 si 0K, 0 sinon.
Style de stylo
Value Style
0 Solide
1 Pointillé
2 Points
3 Pointillé points
4 Pointillé points points
Syntaxe 25
IntVal = Trend(Mode, Window, Branch, Identity, Trace , ThresholdNumber, ThresholdValue);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
ThresholdNumber Numéro identifiant le seuil. Type INTEGER, de 0 à 3.
ThresholdValue Nouvelle valeur pour le seuil sélectionné. Tout type numérique.
Exécution
Mode Mnemonic Action
36 THRESHOLD_SETVALUE Modifie la valeur du seuil sélectionné.
Retour : 1 si 0K, 0 sinon.
Syntaxe 26
IntVal = Trend(Mode, Window, Branch, Identity, Trace , ThresholdNumber, DrawThresholdLine);
SV_SCADABasic_fr 406
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
ThresholdNumber Numéro identifiant le seuil. Type INTEGER, de -1 à 3.
Une valeur de -1 signifie tous les seuils.
DrawThresholdLine Flag indiquant si la ligne du seuil est dessinée. Type INTEGER. 0 masque la
ligne, 1 dessine la ligne.
Exécution
Mode Mnémonique Action
37 THRESHOLD_DRAWLINE Dessine ou masque le ou les seuil(s) sélectionné(s).
Retour : 1 si 0K, 0 sinon.
Syntaxe 27
IntVal = Trend(Mode, Window, Branch, Identity, Trace , Red, Green, Blue, PenStyle);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
Red Composant rouge de la couleur du seuil. Type INTEGER, de -1 à 255.
Blue Composant bleu de la couleur du seuil. Type INTEGER, de -1 à 255.
Green Composant vert de la couleur du seuil. Type INTEGER, de -1 à 255.
PenStyle Style de ligne du seuil. Voir tableau en Syntaxe 24.
Exécution
Mode Mnémonique Action
38 DRAW_MINLINE Affiche une ligne pour la valeur minimum de la variable. La
couleur est celle de la trace au dépassement de la ligne. Si -1
est utilisé pour chaque composant de couleur, la couleur ne
change pas.
Retour : 1 si 0K, 0 sinon.
39 DRAW_MAXLINE Affiche une ligne pour la valeur maximum de la variable. La
couleur est celle de la trace au dépassement de la ligne. Si -1
est utilisé pour chaque composant de couleur, la couleur ne
change pas.
Retour : 1 si 0K, 0 sinon.
Syntaxe 28
IntVal = Trend (MODE, Window, Branch, Identity, Trace, TimeOrigin);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
TimeOrigin Date d'origine de la trace (côté gauche de la trace). Type DOUBLE comme pour
DATETIMEVALUE..
Exécution
Mode Mnémonique Action
41 SETTIMEORIGIN Positionne l'origine de la trace (côté gauche) à une date
spécifique.
Retour : 1 si 0K, 0 sinon.
Syntaxe 29
IntVal = Trend (MODE, Window, Branch, Identity, Trace, Time, TimeUnit);
Type de retour : INTEGER.
Argument Signification
SV_SCADABasic_fr 407
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
Time Période en nombre d'unités de TimeUnit. Type INTEGER.
TimeUnit Numéro représentant l'unité de temps à utiliser. Voir tableau ci-dessous. Type
INTEGER.
Exécution
Mode Mnémonique Action
42 SETTIMEOFFSET Remplace l'origine de la trace (côté gauche) en utilisant les
valeurs données.
Retour : 1 si 0K, 0 sinon.
Unité de temps
Valeur Unité
0 Annule le remplacement
1 Secondes
2 Minutes
3 Heures
4 Jours
Syntaxe 30
IntVal = Trend (MODE, Window, Branch, Identity, Trace, MinMax [, Showline);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
MinMax Paramètre indique la ligne à affecter. Type INTEGER.
-1 = les deux lignes
0 = ligne maximum
1 = ligne minimum
Showline Flag pour sélectionner Afficher ou Montrer les lignes.
0 = Masquer
1 = Montrer
Exécution
Mode Mnémonique Action
40 DISPLAY_MINMAXLINE Affiche/masque les lignes horizontales minimales ou
maximales des variables.
Retour : 1 si 0K, 0 sinon.
Syntaxe 31
IntVal = TREND(Mode, Window, Branch, Identity, Trace, Flag);
Type de retour : INTEGER.
Argument Signification
Trace Numéro de la trace. Type INTEGER, de 1 à 8.
Flag Flag indiquant l'opération à effectuer. 0 ou 1.
Exécution
Mode Mnémonique Action
44 SET_VISIBLE Cache ou affiche la trace en fonction de la valeur du flag. 0 = invisible, 1 =
visible.
Retour : 1 si 0K, 0 sinon.
45 DISPLAY_SCALE Cache ou affiche l'échelle de trace en fonction de la valeur du flag. 0 =
invisible, 1 = visible.
Retour : 1 si 0K, 0 sinon.
SV_SCADABasic_fr 408
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 409
UCASE
Voir aussi
Convertit tous les caractères d'une chaîne en majuscules.
Syntaxe
StrVal = UCASE(Input);
Type de retour : STR
Argument Signification
Input Chaîne à convertir. Type STR.
Exemple
SUB Main()
DIM strResult as Str;
DIM strString as Str;
SV_SCADABasic_fr 410
UNLINK
Voir aussi
Détruit un fichier.
Syntaxe
IntVal = UNLINK(Filename);
Type de retour : INTEGER
Argument Signification
Filename Nom du fichier à supprimer. Type STR.
Exécution
Le fichier doit être fermé pour être supprimé.
Retour : 1 si OK, 0 sinon.
Exemple
'For this. there must be a file "file1.txt" in
' the TP folder of your project
SUB Main()
IF (UNLINK("file1.txt")==1) THEN
PRINT ("file1.txt has been deleted");
END IF
END SUB
SV_SCADABasic_fr 411
VARIABLE
Voir aussi Exemple Spécifiques
Teste ou force le status d'une variable.
Mode Mnémonique Syntaxe
1 STATUS 1
2 MASK 2
3 UNMASK 2
4 ENABLE 3
5 DISABLE 3
6 LONGLABEL 4
7 ASSOCLABEL 4
8 SIMU 5
9 DOMAIN 4
10 NATURE 4
11 UNIT 4
12 NUMBER 6
13 THRESHOLD_GETTYPE 3
14 THRESHOLD_GETVALUE 7
15 THRESHOLD_SETVALUE 8
22 BATT 9
23 TATT 10
24 WRITE 11
25 LOCKTONODE 12
26 UNLOCKTONODE 12
27 FLOWPARAMTONODE 13
28 IMPORTBUFFER 14
29 IMPORTFILE 15
30 STARTWATCHLIST 16
31 STOPWATCHLIST 17
32 GET_LONG_IN_DB 18
33 GET_DOUBLE_IN_DB 19
34 GET_PHYSICAL_MIN 19
35 GET_PHYSICAL_MAX 19
36 GET_CONTROL_MIN 19
37 GET_CONTROL_MAX 19
38 SETBATT 20
39 SETTATT 21
40 SAVE 22
41 SETLONGLABEL 25
42 GET_ALARM_PRIORITY 3
43 GET_COMMAND_LEVEL 3
SV_SCADABasic_fr 412
44 GET_CONTROL_LEVEL 3
45 GET_TEXT_LEVEL 3
46 GET_TYPE 3
53 GET_DEADBAND_TYPE 3
54 GET_DEADBAND_VALUE 23
55 SET_DEADBAND 24
56 TREND 3
57 GETSERVERLIST 3
Syntaxe 1
IntVal = VARIABLE (Mode, Varname, Property);
Type de retour : INTEGER
Argument Signification
Varname Nom d'une variable de la base de données. Type STR.
Property Propriété à tester :
1 EXIST
2 VALID
3 MASK
4 ENABLE
5 COM
6 HDATE
7 TEMPORARY_DB
8 SIMU
Exécution
Mode Mnémonique Action
1 STATUS Selon le type défini par REQUEST :
EXIST Renvoie 1 si la variable existe, 0 sinon.
VALID Renvoie 1 si la variable a une valeur valide, 0 sinon.
MASK Renvoie le masque de la variable représentée par un poids binaire :
1 USERPROG1
2 USERPROG2
4 USERPROG3
8 USERPROG4
16 OPERATOR
32 DEPENDENT (d'une autre variable)
128 EXPRESSION
ENABLE Renvoie 1 si la variable est inhibée, 0 sinon.
COM Renvoie 1 si la variable est inaccessible suite à un défaut de
communication, 0 sinon.
HDATE Retourne le type d'horodatage de la variable :
0 si l'horodatage est réalisé par le Superviseur.
1 si l'horodatage est effectué à la source par l'équipement.
2 si l'horodatage est effectué à la source, mais que son status n'est
SV_SCADABasic_fr 413
pas valide.
TEMPORARY_DB Renvoie 1 si la variable est temporaire, 0 sinon.
SIMU retourne 1 si la variable est simulée, 0 sinon.
Syntaxe 2
IntVal = VARIABLE (Mode, Variable_name, MaskLevel);
Type de retour : INTEGER
Argument Action
Variable_n Nom de la variable alarme dont le masque est à modifier.
ame
MaskLevel Masque de la variable représentée par un poids binaire.
1 USERPROG1
2 USERPROG2
4 USERPROG3
8 USERPROG4
16 OPERATOR
32 DEPENDENT (d'une autre variable)
128 EXPRESSION
Exécution
Mode Mnémonique Action
2 MASK Masque l'alarme en utilisant le ou les niveau(x) donné(s).
3 UNMASK Démasque l'alarme en utilisant le ou les niveau(x) donné(s).
Retour : 1 si OK, 0 sinon.
Dans les fenêtres d'Alarmes ou de Consignations, le comportement est le suivant :
SV_SCADABasic_fr 414
• Pour afficher une alarme masquée en utilisant une expression, le filtre Masquée expression doit être
coché. Voir l'image
Vous pouvez paramétrer une combinaison de masques en utilisant le poids binaire. Par
exemple, 9 paramétrera le premier masque d'état et le quatrième.
Syntaxe 3
IntVal = VARIABLE (Mode, VarName);
Type de retour : INTEGER
Argument Action
VarName Nom de la variable de la base de données. Type STR.
Exécution
Mode Mnémonique Action
4 ENABLE Désinhibe la variable nom_variable.
5 DISABLE Inhibe la variable nom_variable.
13 THRESHOLD_GE Renvoie le système de seuils de la variable "nom_variable"
TTYPE
0 - Pas de seuil.
1 - ppppigh / pphigh / hihi / high
2 - pphigh / hihi / high / low
3 - hihi / high / low / lolo
4 - high / low / lolo / pplow
5 - low / lolo / pplow / ppplow
42 GET_ALARM_PR Récupère le niveau de priorité d'une alarme.
IORITY
43 GET_COMMAND Récupère le niveau de priorité d'une commande.
_LEVEL
SV_SCADABasic_fr 415
44 GET_CONTROL_ Récupère le niveau de priorité d'une consigne.
LEVEL
45 GET_TEXT_LEV Récupère le niveau de priorité d'un envoi texte.
EL
46 GET_TYPE Récupère le type de la variable.
1 Etat
2 Mesure
3 Texte
8 Alarme
53 GET_DEADBAN Récupère le type de bande morte d'une varible.
D_TYPE
-2 La variable n’existe pas ou n’est pas une mesure.
-1 La variable est une variable temporaire.
0 La bande morte est ‘absolue’.
1 La bande morte est ‘un pourcentage de la plage’.
2 La bande morte est ‘un pourcentage de la valeur’.
56 TREND Détecte si la variable est en tendance.
Retour : 1 si OK, 0 sinon.
57 GETSERVERLIST Renvoie la valeur de la liste de postes producteurs.
Syntaxe 4
StrVal = VARIABLE(Mode, VarName);
Type de retour : STR
Argument Action
VarName Nom de la variable de la base de données. Type STR.
Exécution
Mode Mnémonique Action
6 LONGLABEL Récupère le libellé long de la variable.
7 ASSOCLABEL Récupère le libellé associé à l'état courant de la variable.
9 DOMAIN Renvoie le domaine d'appartenance de la variable spécifiée.
10 NATURE Renvoie la nature d'appartenance de la variable spécifiée.
11 UNIT Renvoie l'unité de la variable spécifiée (mesure seulement).
Syntaxe 5
IntVal = VARIABLE(Mode, VarName, Flag);
Type de retour : INTEGER
Argument Signification
VarName Nom de la variable de la base de données. Type STR.
Flag Indicateur d'opération.
Exécution
Mode Mnémonique Action
8 SIMU Passe la variable équipement nom_variable en mode simulé. Il devient alors
possible de la modifier comme toute variablevinterne.
SV_SCADABasic_fr 416
0 pour OFF
1 pour ON
Retour : 1 si OK, 0 sinon.
Syntaxe 6
DblVal = VARIABLE(Mode);
Type de retour : LONG
Exécution
Mode Mnémonique Action
12 NUMBER Renvoie le nombre total de variables dans la base.
Syntaxe 7
DblVal = VARIABLE(Mode, VarName, Rank);
Argument Signification
VarName Nom de la variable de la base de données. Type STR.
Rank Entier compris entre 0 et 3. Type INTEGER.
Syntaxe 8
IntVal = VARIABLE(Mode, VarName, Rank, Value [, Rank, Value] [, Rank, Value] [, Rank, Value][,
Saveflag]);
Argument Signification
VarName Nom de la variable de la base de données. Type STR.
Rank Entier compris entre 0 et 3. Type INTEGER.
Value Valeur de seuil.
Saveflag Si positionné à 1, le seuil est modifié en permanent et sauvegardé lorsque le superviseur est
arrêté.
SV_SCADABasic_fr 417
Syntaxe 9
IntVal = VARIABLE(Mode, VarName, BattNum);
Argument Signification
VarName Nom de la variable de la base de données. Type STR.
BattNum Entier compris entre 1 et 30. Type INTEGER.
Syntaxe 10
StrVal = VARIABLE(Mode, VarName, TattNum);
Argument Signification
VarName Nom de la variable de la base de données. Type STR.
TattNum Numéro de l'attribut texte. Type INTEGER. Valeur 1 à 16.
Syntaxe 11
IntVal = VARIABLE(Mode, SubMode);
Argument Signification
SubMode Optionnel. Un code indique l'action : INTEGER valeurs 0, 1, 2 ou 3:
0 Inhibe le forçage de variables externes.
1 Autorise le forçage de variables externes. C'est le par défaut pour toutes les
versions.
2 Envoi la recette à écrire même si la valeur reste inchangée. C'est le par défaut pour
les versions inférieures à 10.0
3 Envoi la recette à écrire seulement si la valeur a changé en fonction de la valeur
temps-réel. C'est le par défaut à partir de la version 10.0
Il y a toujours deux valeurs par défaut : 1 et 2 pour les versions avant 10.0 et 1 et 3 pour les
versions supérieures à 10.0.
SV_SCADABasic_fr 418
Les sous-modes 0 et 1 autorisent le Superviseur, par exemple, à inhiber ou autoriser
l'envoi de commandes à partir de postes redondants passifs.
Les sous-modes 2 et 3 sont applicables à toutes les variables, pour prévenir l'envoi de
commandes à partir de postes redondants passifs.
Le sous-mode 3 optimise l'écriture de requêtes pour visualiser les modifications en
cours.
Syntaxe 12
IntVal = VARIABLE(Mode, StationNo);
Type de retour : INTEGER
Argument Signification
StationNo Numéro représentant le numéro du poste de supervision. Type INTEGER.
Exécution
Mode Mnémonique Action
25 LOCKTONODE Verrouille l'envoi de message de changement de valeur vers le poste
num_poste. Utilisé dans des projets multi-postes avec un réseau dial-up.
Retour : 1 si OK, 0 sinon.
26 UNLOCKTONO Déverrouille l'envoi de message de changement de valeur vers le poste
DE num_poste. Utilisé dans des projets multi-postes avec un réseau dial-up.
Retour : 1 si OK, 0 sinon.
Syntaxe 13
IntVal = VARIABLE(Mode, StationNo, StopLimit, StartLimit, Filter);
Type de retour : INTEGER
Argument Signification
StationNo Numéro représentant le numéro du poste de supervision. Type INTEGER.
StopLimit Nombre de variables dans la boîte aux lettres du gestionnaire LAN pour le poste StationNo
sur lequel le contrôle de flux du réseau est stoppé. Type INTEGER.
StartLimit Nombre de variables dans la boîte aux lettres du gestionnaire LAN pour le poste StationNo
sur lequel le contrôle de flux du réseau est démarré. Type INTEGER.
Filter Nombre représentant les types de variables à affecter par le contrôle de flux. Chaque type de
variable est représenté par un poids binaire. Type INTEGER.
Type INTEGER.
1 bit 0 à 1 pour régulation des variables de type état
2 bit 1 à 1 pour régulation des variables de type alarme
4 bit 2 à 1 pour régulation des variables de type mesure
8 bit 4 à 1 pour régulation des variables de type texte
Par exemple, une valeur de 7 représente des variables état, alarme et mesure.
Exécution
Mode Mnémonique Action
27 FLOWPARAMT Paramétrage de la régulation des flux de variables vers un poste distant.
ONODE
Retour : 1 si OK, 0 sinon.
SV_SCADABasic_fr 419
Syntaxe 14
IntVal = VARIABLE(Mode, Handle [,Flag, VarName, FileReport]);
Type de retour : INTEGER
Argument Signification
Handle Localisation du buffer mémoire retourné par ALLOC_BUFFER. Type LONG.
Flag Flag est un entier facultatif qui prend la valeur 0 ou 1.
1: Distribution de la modification (Ce mode n’est pas encore implémenté)
0: Modification locale (par défaut)
Type INTEGER
VarName Nom de la variable mesure de la base de données dans laquelle est retourné le status
d'import des variables.
Type STR.
Les valeurs de status d'import des variables sont les suivantes :
0 : En cours d’import.
1 : Import terminé sans aucune erreur
2 : Import terminé avec des erreurs
Type STR
FileReport Nom du fichier contenant le rapport de l’import. Pour plus d'informations, voir le chapitre
Format du Rapport d'Import de Variables.
Type STR
Exécution
Mode Mnémonique Action
28 IMPORTBUFFER Import dynamique de variables de la base de données. Le format du buffer doit
être compatible avec le fichier du format de la base de données VAREXP.DAT. Le
buffer doit être alloué par ALLOC_BUFFER.
Retour : 1 si OK, 0 sinon.
Pour la méthode de suppression de variables, tendances et expressions, voir le chapitre Suppression d'une
variable, tendance ou expression.
Syntaxe 15
IntVal = VARIABLE(Mode, FileName [,Flag, VarName, FileReport, FileError]);
Type de retour : INTEGER
Argument Signification
FileName Nom du fichier texte. Type STR.
Flag Flag est un entier facultatif qui prend la valeur 0 ou 1.
1: Distribution de la modification (Ce mode n’est pas encore implémenté)
0: Modification locale (par défaut)
Type INTEGER
VarName Nom de la variable mesure de la base de données dans laquelle est retourné le status
d'import des variables.
Les valeurs de status d'import des variables sont les suivantes :
0 : En cours d’import.
1 : Import terminé sans aucune erreur
SV_SCADABasic_fr 420
2 : Import terminé avec des erreurs
Type STR
FileReport Nom du fichier contenant le rapport de l’import. Pour plus d'informations, voir le chapitre
Format du Rapport d'Import de Variables.
Type STR
FileError Nom du fichier contenant les erreurs de syntaxe.
Le fichier par défaut est « form.err » dans le dossier « Log Files ».
Type STR
Exécution
Mode Mnémonique Action
29 IMPORTFILE Import dynamique de variables de la base de données. Le format du buffer doit
être compatible avec le fichier du format de la base de données VAREXP.DAT.
Ce fichier doit être localisé dans le répertoire TP du projet.
Retour : 1 si OK, 0 sinon.
Pour la méthode de suppression de variables, tendances et expressions, voir le chapitre Suppression d'une
variable, tendance ou expression.
Diagnostic
L'état Trace 4 dans le gestionnaire de variables permet de voir une information supplémentaire dans
l'observateur d'événements. Utiliser l'instruction TRACE pour positionner l'état Trace 4 :
TRACE( 1, 5, "10");
Syntaxe 16
LongVal = VARIABLE(Mode, Branch, Handle, VarName, Flag);
Type de retour : LONG
Argument Signification
Branch Facultatif. Branche de la base de données utilisée conjointement avec les noms de variables
fournis par le buffer. Type STR.
Handle Localisation du buffer mémoire contenant une liste des noms de variable. Taille maximale du
buffer : 128 Ko. Type LONG.
The format of the buffer is a list of the variable names. Those with a branch have a prefix of
'@', for instance:
@VARNAME1
VARNAME2
VARNAME3
VarName Nom de variable état. Type STR.
Flag 0 ou 1.
Exécution
Mode Mnémonique Action
30 STARTWATCHLI Mise en scrutation des variables qui ne l'était pas et forçage de la variable_etat
ST avec sens lorsque toutes les variables sont disponibles.
Lorsque toutes les variables de la liste sont disponibles, la valeur spécifiée dans
le flag est écrite dans la variable état spécifié de la base de données.
Retour : 1 si OK, 0 sinon.
Syntaxe 17
IntVal = VARIABLE(Mode, Handle);
SV_SCADABasic_fr 421
Type de retour : INTEGER
Argument Signification
Handle Handle du buffer mémoire retourné à partir de l'instruction du mode 30. Type LONG.
Exécution
Mode Mnémonique Action
31 STOPWATCHLIST Arrêt de la scrutation des variables.
Retour : 1 si OK, 0 sinon.
Syntaxe 18
LongVal = VARIABLE(Mode, VarName);
Type de retour : LONG
Argument Signification
VarName Nom de la variable. Type STR.
Exécution
Mode Mnémonique Action
32 GET_LONG_IN_D Retourne la valeur de la variable.
B
Syntaxe 19
DblVal = VARIABLE(Mode, VarName,);
Type de retour : DOUBLE
Argument Signification
VarName, Nom de la variable. Type STR.
Exécution
Mode Mnémonique Action
33 GET_DOUBLE_IN_D Obtenir la valeur de la variable.
B
34 GET_PHYSICAL_MI Obtenir le minimum physique de la variable
N
35 GET_PHYSICAL_MA Obtenir le maximum physique de la variable
X
36 GET_CONTROL_MIN Obtenir la consigne minimum de la variable
37 GET_CONTROL_MA Obtenir la consigne maximum de la variable
X
Syntaxe 20
IntVal = VARIABLE(Mode, VarName, Value);
Type de retour : INTEGER
Argument Signification
VarName Nom de la variable. Type STR.
Value Nouvelle valeur des attributs booléens de la variable. Type : INTEGER, LONG, SINGLE,
DOUBLE et CONST.
Exécution
Mode Mnémonique Action
38 SETBATT Modifie la valeur de tous les attributs booléens pour la variable.
SV_SCADABasic_fr 422
Retour : 1 si OK, 0 sinon.
Syntaxe 21
IntVal = VARIABLE(Mode, VarName, TattNo, Text);
Type de retour : INTEGER
Argument Signification
TattNo Attribut texte dont la valeur est 3 à 16. Tout type numérique.
Text Nouvelle valeur de l'attribut texte. Type STR.
VarName, Nom de la variable. Type STR.
Exécution
Mode Mnémonique Action
39 SETTATT Modifie la valeur de l'attribut texte de rang number pour la variable
Retour : 1 si OK, 0 sinon.
Vous ne pouvez pas utiliser le mode SETATT pour modifier Domain ou Nature (attributs 1 et 2).
Syntaxe 22
IntVal = VARIABLE(Mode);
Type de retour : INTEGER
Argument Signification
0 Réservé, toujours égal à 0.
NoDisplayBarGraph 0 affiche le barre-graphe
1 masque le barre-graphe.
Par défaut : 0
Exécution
Mode Mnémonique Action
40 SAVE Sauve la totalité de la base de données.
Retour : 1 si OK, 0 sinon.
Syntaxe 23
SVal = VARIABLE (Mode, VarName);
Type de retour : SINGLE
Exécution
Mode Mnémonique Action
54 GET_DEADBAND Permet de récupérer la valeur de la bande morte d'une variable.
_VALUE
Syntaxe 24
IntVal = VARIABLE (Mode, VarName, DBvalue, DBtype);
Type de retour : INTEGER
Argument Signification
VarName Nom de la variable. Type STR.
DBvalue Nouvelle valeur. Type SINGLE.
DBtype Nouveau type de bande morte. Type INTEGER
SV_SCADABasic_fr 423
Exécution
Mode Mnémonique Action
55 SET_DEADBAND Permet de positionner le type et la valeur de la bande morte d'une variable.
Retour :
-5 La variable n’existe pas ou n’est pas une mesure
-4 La valeur de Dbtype n'a pas la valeur souhaitée. (doit être 0,1 ou 2).
-3 La valeur de Dbtype n'est pas un INTEGER.
-2 La valeur deDbvaluen'est pas un FLOAT.
-1 La variable est une variable temporaire
1 OK.
Syntaxe 25
IntVal = VARIABLE (Mode, VarName, Lang0[, Lang1]);
Type de retour : INTEGER.
Argument Signification
VarName Nom de la variable. Type STR.
Lang0 Chaîne de caractères pour la langue 0. Type STR.
Lang1 Chaîne de caractères pour la langue 1. Optionnel. Type STR
Exécution
Mode Mnémonique Action
41 SETLONGLABEL Modifie la propriété Description d'une variable. Si le projet est configuré
pour être bilingue, vous pouvez modifier la chaîne pour les langues 0 et
1. La modification est permanente.
Retour : 1 si OK, 0 sinon.
Exemple
Mode 38, SETBATT :
Forçage des attributs booléens de la variable int.b1 à partir de la variable mesure int.b1.batt de la base de
données.
SUB SetBAtt()
VARIABLE("SETBATT", “int.b1”, int.b1.batt);
END SUB
Forçage à 1 du troisième attribut booléen de la variable int.b1 et remise à 0 les autres bits.
SUB SetBAtt3()
SV_SCADABasic_fr 424
VARIABLE("SETBATT", “int.b1”, 4);
END SUB
Mode 56, TREND :
x1 is a trend variable
1
x2 is not a trend variable
0
Pour un exemple plus complet, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 425
WEBVUE
Voir aussi Exemple
Gère la connexion aux clients WebVue.
Mode Mnémonique Syntaxe
1 LIST 1
2 SETWINDOW 2
3 RESTOREWINDOW 3
4 CONNECTURL 4
5 RESTOREURL 5
6 USERNAME 6
8 MULTIMEDIA 7
9 CONTEXT 6
Syntaxe 1
IntVal = WEBVUE(Mode, Handle);
Type de retour : INTEGER.
Argument Signification
Handle Contient la liste de binômes (poste, utilisateur) des clients connectés. Type LONG.
Le format de la liste est :
Username1,hostname1\thostipaddress1\trouteripaddress1,
Username2,hostname2\thostipaddress2\trouteripaddress2,
…
Exécution
Mode Mnémonique Action
1 LIST Liste des clients Web.
Retour : Nombre de clients connectés.
où : -1 si l'allocation pour Handle n'est pas suffisante. (Voir l'instructions
ALLOC_BUFFER.)
Pré-requis
Avant d'utiliser le mode LIST, vous devez modifier un paramètre dans le fichier WEBVUE.DAT :
1. Sélectionner le fichier WEBVUE.DAT dans le répertoire WEB du projet et faites-en une copie de
sauvegarde. Voir l'image
SV_SCADABasic_fr 426
2. Ouvrir le fichier dans un éditeur de texte et modifier le paramètre IpQueryLevel de la façon suivante
:
Paramètre Effet
1 L'appel tente d'obtenir l'adresse IP.
2 IIS tente d'obtenir l'adresse IP du client.
3 Tentative d'obtenir l'adresse IP de l'ordinateur client.
4 Le Superviseur tente de trouver le nom de l'hôte via IP.
Si le Superviseur n'a pas les droits d'accès requis pour le réseau, ou s'il est dans un environnement
Internet, il ne pourra pas obtenir l'adresse IP du client
Syntaxe 2
IntVal = WEBVUE(Mode, Branch, WindowName [Saved]);
Type de retour : INTEGER.
Argument Signification
Branch Nom de la brance de la fenêtre. Type STR.
WindowNam Nom de la fenêtre par défaut. Type STR.
e
SV_SCADABasic_fr 427
Saved Flag optionnel indiquant la permanence de la modification (après redémarrage du
Superviseur). (obsolète)
0 : la modification n'est pas permanente. C'est la valeur par défaut.
1 : la modification est permanente.
Exécution
Mode Mnémonique Action
2 SETWINDOW Sélectionne la fenêtre de démarrage de tous les clients Web.
Retour : 1 si OK, sinon :
-1 Nom du client incorrect.
-2 Nom de la fenêtre incorrect.
Syntaxe 3
IntVal = WEBVUE(Mode, ClientName);
Type de retoure : INTEGER.
Argument Signification
Exécution
Mode Mnémonique Action
3 RESTOREWINDOW Restaure la configuration du profil (démarrage de la fenêtre).
Appliqué à la prochaine connexion pour l'utilisateur spécifié.
Affiche la fenêtre de démarrage sur le poste client. (obsolète)
Retour : 1 si OK, -1 sinon.
Syntaxe 4
IntVal = WEBVUE(Mode, UserName, HtmlPage , BitVariableName, Reconnect, NewBrowser);
Type de retour : INTEGER.
Argument Signification
HtmlPage Nom de la page HTML à appeler lors de la connexion, soit directement Name.HTML (sur le
serveur HTTP local), soit déporté (http://www.xxxx.html). Type STR.
BitVariableN Variable état de la base de données mise à 1 lorsque le routage a été réalisé. Type STR.
ame
Reconnect Délai de commutation : délai avant que la reconnexion soit tentée de nouveau. Type
INTEGER.
0: Reconnexion immédiate.
1: Délai de commutation (en secondes) après inactivité de la souris et du clavier.
SV_SCADABasic_fr 428
Exécution
Mode Mnémonique Action
4 CONNECTURL Appliquer les paramètres de connexion.
Retour : 1 si OK, 0 sinon (pas d'état trouvé ou mauvais état)
Syntaxe 5
IntVal = WEBVUE(Mode, UserName);
Type de retour : INTEGER.
Argument Signification
UserName Nom de l'utilisateur défini dans les droits utilisateur. Type STR.
Exécution
Mode Mnémonique Action
5 RESTOREURL Fournit le nom utilisateur pour la connexion à l'adresse URL.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
IntVal = WEBVUE(Mode, WebSession, UserHandle);
Type de retour : INTEGER.
Argument Signification
WebSession Type de session Web. Type INTEGER. (Pour plus de détails, voir l'instruction GETARG mode
29: WEB.)
UserHandle Handle pour le nom de l'utilisateur du login WEB. Type LONG.
Exécution
Mode Mnémonique Action
6 USERNAME Récupère le nom de l'utilisateur du client Web.
Retour : 1 si OK, sinon :
-1: WebSession n'est pas un INTEGER.
-2: WebSession est vide.
-3: UserHandle n'est pas un LONG.
-4: UserHandle a une taille de 0 (aucun buffer alloué).
-5: UserHandle est vide. (Normalement, ceci est impossible.)
-6: UserHandle.Length() supérieur à la taille allouée par ALLOC_BUFFER.
9 CONTEXT Récupère le contexte de la variable lorsque le programme est lancé à partir
d'une fenêtre contextuelle.
Retour : 1 si OK, sinon 0.
Le mode USERNAME retourne une chaîne de caractères vide lorsqu'il est lancé à partir du
Superviseur. A la place, utiliser le mode 1 (LIST) pour récupérer les caractéristiques du nom de
l'utilisateur et de l'URL depuis le Superviseur ou tout poste client WebVue.
Syntaxe 7
IntVal = WEBVUE(Mode, Sub-mode);
Type de retour : INTEGER.
SV_SCADABasic_fr 429
Argument Signification
Sub-mode Le sous-mode. Type STR.
BEEP - Joue un fichier audio.
Exécution
Mode Mnémonique Action
6 MULTIMEDIA Joue un fichier multimédia sur le PC exécutant le client WebVue.
Retour : 1 si OK, sinon :
Il n'est pas possible de spécifier le fichier son joué par le mode MULTIMEDIA, sous-mode BEEP,
car il est embarqué dans un applet Java faisant partie de WebVue. Toutefois, il est possible
d'éditer l'applet pour utiliser un fichier son différent. Voir le chapitre Modification du son joué par
WEBVUE.
Exemple
Pour un exemple, sélectionner le lien exemple ci-dessus.
SV_SCADABasic_fr 430
WHILE...WEND
Voir aussi
Exécution d'instructions en boucle tant qu'une condition reste vraie.
Syntaxe
WHILE(expression)
[bloc d'instructions]
WEND
Exécution
• Si l'expression est vraie, toutes les instructions comprises entre WHILE et WEND sont exécutées.
Puis l'expression est de nouveau évaluée.
• Si l'expression est toujours vraie, le processus est répété.
• Si l'expression est fausse, l'exécution reprend à partir de l'instruction qui suit le WEND
Exemple
SUB Main()
DIM i as Integer;
i=0;
WHILE (i<3) 'so long as i<3
i++; 'increment i by 1
PRINT(i);
WEND
END SUB
SV_SCADABasic_fr 431
WINDOW
Voir aussi Exemple
Ouvre et ferme une fenêtre.
Mode Mnémonique Syntaxe
0 CLOSE 1
1 OPEN 1, 2, 5
2 IS_OPEN 1
3 SHOW 1
4 HIDE 1
5 CHANGE 10
6 CLOSEUNDER 1
7 PRELOAD 1, 5
8 CLOSEALL 6
9 MAIN 3
10 CURRENTNAME 7
11 CURRENTBRANCH 7
12 CAPTION 8
13 REFSET 9
14 CURRENTREF 7
15 POPUPCLOSE 6
16 ACCESSLEVEL 1
17 OPENNEW 1, 2, 5
18 PRINT 1
19 ZOOM 11
20 GETREGION 1
21 GETSUBWINDOW 12
22 GETSUBBRANCH 12
23 SETPREVIOUS 6
24 LAYER 13
25 HARDCOPY 14
26 SAVE 15
27 SELECTTAB 16
Syntaxe 1
IntVal = WINDOW( Mode, WinName, Branch [,Refset]);
Type de retour : INTEGER
Argument Signification
WinName, Nom de la fenêtre. Type STR.
Branch Branche de la base de données. Type STR.
Refset mode de référence d'exécution sur la fenêtre :
0 Mode temps réel
1 Mode REF1
SV_SCADABasic_fr 432
2 Mode REF2
3 Mode TEST
Exécution
Mode Mnémonique Action
0 CLOSE Fermeture de la fenêtre.
1 OPEN Ouverture de la fenêtre.
2 IS_OPEN Teste si la fenêtre est ouverte ou non
3 SHOW Montre la fenêtre.
4 HIDE Cache la fenêtre.
6 CLOSEUNDER Ferme toutes les fenêtres qui intersectent Winname, que celles-ci soient en
avant ou en arrière-plan.
7 PRELOAD Préchargement de la fenêtre.
16 ACCESSLEVEL Renvoie le niveau d'accès de la fenêtre.
17 OPENNEW Ouverture de la fenêtre.
18 PRINT Impression de la fenêtre sur l'imprimante par défaut du système.
20 GETREGION Renvoie la région (dans un système multi-écrans) dans laquelle la fenêtre est
localisée.
Retour : Pour tous les modes exceptés 16 et 20, 1 si OK, 0 sinon.
Syntaxe 2
IntVal = WINDOW(Mode, Child, Branch, Parent);
Type de retour : INTEGER
Argument Signification
Child Nom de la fenêtre. Type STR.
Parent Nom de la fenêtre. Type STR.
Exécution
Mode Mnémonique Action
1 OPEN Ouverture de la fenêtre incrustée dans la fenêtre mère.
17 OPENNEW Ouverture de la fenêtre.
Retour : 1 si OK, 0 sinon.
Syntaxe 3
IntVal = WINDOW(Mode, X, Y, Width, Height);
Type de retour : INTEGER
Argument Signification
X, Y Coordonnées du point en haut à gauche exprimés en pixels. Type INTEGER.
Width Largeur de la fenêtre exprimée en pixels. Type INTEGER.
Height Hauteur de la fenêtre exprimée en pixels. Type INTEGER.
Exécution
Mode Mnémonique Action
9 MAIN Change la taille et la position de la fenêtre principale (startup).
Retour : 1 si OK, 0 sinon.
Syntaxe 5
SV_SCADABasic_fr 433
IntVal =WINDOW(Mode, Child, ChildBranch, Parent, ParentBranch, dX, dY);
Type de retour : INTEGER
Argument Signification
dX, dy Coorodnées relatives X et Y.
Exécution
Mode Mnémonique Action
1 OPEN Ouverture de la fenêtre.
7 PRELOAD Précharge la fenêtre en modifiant la position.
17 OPENNEW Ouverture de la fenêtre.
Retour : 1 si OK, 0 sinon.
Syntaxe 6
IntVal = WINDOW(Mode);
Type de retour : INTEGER
Exécution
Mode Mnémonique Action
8 CLOSEALL Ferme toutes les fenêtres (vide également le cache).
Est équivalent à l'action du menu EDITEUR.Fichier.Fermer tout.
15 POPUPCLOSE Fermeture de la fenêtre popup.
23 SETPREVIOUS Enlève, de la pile des fenêtres, la fenêtre que l'on obtiendrait si on faisait un
chaînage avec #P (fenêtre précédente).
Retour : 1 si OK, 0 sinon.
Syntaxe 7
StrVal = WINDOW(Mode);
Type de retour : STR
Exécution
Mode Mnémonique Action
10 CURRENTNAME Renvoie le nom de la fenêtre courante.
11 CURRENTBRANCH Renvoie la branche de la fenêtre courante.
14 CURRENTREF Renvoie 1 si la fenêtre courant est le jeu de référence, sinon 0.
Syntaxe 8
IntVal = WINDOW(Mode, WinName, Branch, TitleLang1, [,TitleLang2]);
Argument Signification
WinName Nom de la fenêtre. Type STR.
TitleLang1 Nouveau titre de la fenêtre en Langue 1. Longueur maximum : 40 caractères.
TitleLang2 Nouveau titre de la fenêtre en Langue 2. Optionnel. Longueur maximum : 40 caractères.
Type de retour : STR
Exécution
Mode Mnémonique Action
12 CAPTION Modifie le titre de la fenêtre.
Il est possible d'utiliser des caractères spéciaux de formatage :
SV_SCADABasic_fr 434
#D - date
#h - heure
#B - branche
#N - nom de l'utilisateur
Syntaxe 9
IntVal = WINDOW(Mode, WinName, Branch, OldMode, NewMode);
Type de retour : INTEGER
Argument Signification
WinName Nom de la fenêtre. Type STR.
Branch Branche de la base de données. Type STR.
OldMode Mode courant de la fenêtre (0, 1, 2, ou 3). Type INTEGER.
NewMode Nouveau mode de la fenêtre (0, 1, 2, ou 3). Type INTEGER.
Exécution
Mode Mnémonique Action
13 REFSET Modifie le jeu de référence de la fenêtre identifiée par son nom, sa branche et
son jeu de référence.
Retour : 1 si OK, 0 sinon.
Syntaxe 10
IntVal = WINDOW(Mode, WinName, Branch, RefSet, X, Y, W, H);
Type de retour : INTEGER.
Argument Signification
WinName Nom de la fenêtre.
Branch Nom de la branche.
RefSet RefSet pour la fenêtre. Normalement 0, mais peut être 1, 2 ou 3 si ouvert en mode
RefSet. Type INTEGER.
X, Y Coordonnées du coin en haut à gauche de la fenêtre. Type INTEGER.
W, H Largeur et hauteur de la fenêtre. Type INTEGER.
Exécution
Mode Mnémonique Action
5 CHANGE Modifie la position et la taille d'une fenêtre.
Retour : 1 si OK, 0 sinon.
Cette instruction ne fonctionne pas si la fenêtre contient une des macro-animations : fenêtre de
tendances, d'alarmes ou de consignations ou l'animation contrôle grid.
Syntaxe 11
IntVal = WINDOW(Mode, WinName, Branch, X, Y, Zoom);
Type de retour : INTEGER
Argument Signification
X, Y Coordonnées du point central. Type INTEGER.
Zoom Valeur de zoom absolu exprimé en %. Type INTEGER.
Exécution
SV_SCADABasic_fr 435
Mode Mnémonique Action
19 ZOOM Le point (x,y) est exprimé en coordonnées logiques (relatives à l'affichage dans
la fenêtre) et non physiques.
Retour : 1 si OK, 0 sinon.
Syntaxe 12
StrVal = WINDOW(Mode, Substitution, MyWindow, [MyWindowBranch]);
Type de retour : STR
Argument Signification
Substitution Une des substitutions utilisées avec l'animation Ouverture Fenêtre (#P, #U, #I, #Mx). Type
STR.
MyWindow (pour le type de substitution #Mx) Fenêtre contenant les liens. Type STR.
MyWindowB (pour le type de substitution #Mx) La branche (si elle existe) de cette fenêtre. Type STR.
ranch
Exécution
Mode Mnémonique Action
21 GETSUBWINDOW Renvoie le nom de la fenêtre associée avec une des substitutions suivantes :
#P renvoie le nom de la fenêtre précédemment ouverte.
#U renvoie le nom de la fenêtre principale de l'utilisateur.
#I renvoie la première fenêtre ouverte au lancement du projet.
#Mx renvoie le nom d'une des fenêtres (x = 1 à 10) du tableau
d'incrustation des fenêtres, s’effectue avec les paramètres de la fenêtre
mère
22 GETSUBBRANCH Permet d'utiliser les substitutions #P, #U, #I et #Mx dans les programmes.
Dans le cas d'une popup, les substitutions #Mx s'effectuent avec les paramètres
de la fenêtre mère.
Syntaxe 13
IntVal = WINDOW(Mode, WinName, Branch, Refset, Layer, LayerMode);
Type de retour : INTEGER
Argument Signification
WinName Nom de la fenêtre. Type STR.
Branch Branche de la base de données. Type STR.
Refset Numéro indiquant le mode de la fenêtre (0, 1, 2 ou 3). Type INTEGER.
Layer Nombre de niveau (0 à 15). Type INTEGER.
Layermode Mode l'opération (0, 1 ou 2). Type INTEGER.
Exécution
Mode Mnémonique Action
24 LAYER Change l'état du niveau de visibilité de la fenêtre spécifiée.
0 le niveau spécifié est enlevé (devient invisible).
1 le niveau spécifié est ajouté (devient visible).
2 le niveau spécifiée est inversé (visible si invisible, invisible si visible).
SV_SCADABasic_fr 436
Retour : 1 si OK, 0 sinon.
Syntaxe 14
IntVal = WINDOW(Mode, WinName, Branch [, Refset [, PrintMode]]);
Type de retour : INTEGER
Argument Signification
WinName Nom de la fenêtre. Type STR.
Branch Branche de la base de données. Type STR.
Refset Numéro indiquant le mode de la fenêtre (0, 1, 2 ou 3). Type INTEGER.
PrintMode Mode l'opération (0 ou 1) Type INTEGER.
Exécution
Mode Mnémonique Action
25 HARDCOPY PImprime la fenêtre spécifiée dans le gestionnaire d'impression Windows.
La fenêtre doit être ouverte ou bien dans le cache.
0 la fenêtre est imprimée sans sa bordure (mode par défaut).
1 la fenêtre est imprimée avec sa bordure.
Retour : 1 si OK, 0 sinon.
Syntaxe 15
IntVal = WINDOW(Mode, WinName, Branch, Format);
Type de retour : INTEGER
Argument Signification
WinName Nom de la fenêtre. Type STR.
Branch Branche de la base de données. Type STR.
Format Format de sauvegarde de la fenêtre. Type STR.
PrintMode Mode l'opération (0 ou 1) Type INTEGER.
Exécution
Mode Mnémonique Action
26 SAVE Enregistre la fenêtre au format choisi. Le format dans lequel la fenêtre sera
sauvegardée est sélectionné par le paramètre format :
"NATIVE": format courant.
"BINARY": format binaire.
"ASCII32": format ASCII.
Retour : 1 si OK, 0 sinon.
Syntaxe 16
IntVal = WINDOW(Mode, WinName, Branch, TabIndex);
Type de retour : INTEGER.
Argument Signification
WinName Nom d'une fenêtre. Type STR.
Branch Branche de l'arbre des variables. Type STR.
TabIndex Index de l'onglet. Type INTEGER.
Exécution
Mode Mnémonique Action
SV_SCADABasic_fr 437
27 SELECTTAB Pour une fenêtre utilisant des onglets, sélectionne l'onglet correspondant à
l'index fourni.
Retour : 1 si OK, 0 sinon.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 438
XMLPATH
Voir aussi Exemple
Processus XML formatant des données selon les spécifications XPath (XML Path Language).
Mode Mnémonique Syntaxe
1 GET 1
2 GETSTR 2
3 GETDOUBLE 3
4 GETSINGLE 4
5 GETLONG 5
6 GETINT 6
7 GETBOOL 7
8 LOAD 8
9 UNLOAD 9
10 LOADFILE 10
Format de Namespace lors de l'utilisation de XMLPATH avec une fenêtre d'alarmes ou de consignations
Le format de Namespace est le suivant. Notez que la chaîne tient compte des minuscules/majuscules.
Branch/Mimic/ViewerId
Argument Signification
Branch Branche avec laquelle le synoptique est ouvert. Si le synoptique n'est pas ouvert avec
une branche, une chaîne nulle doit être utilisée.
Mimic Nom de fichier du synoptique.
ViewerID Identifiant de la fenêtre d'alarmes ou de consignations qui peut être trouvé ou modifié
en utilisant l'Explorateur graphique.
Syntaxe 1
LongVal = XMLPATH(Mode, Namespace, Xpath);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé. Type STR ou LONG.
Exécution
Mode Mnémonique Action
1 GET Retourne un Handle à partir d'un chemin.
LongVal est automatiquement alloué et réalloué si le verbe est appelé cycliquement. Il n'y a pas
besoin de faire une allocation via ALLOC_BUFFER. Le Handle LongVal est désalloué à la fin lorsque
le mode UNLOAD est appelé.
Syntaxe 2
StrVal = XMLPATH(Mode, Namespace, Xpath);
Argument Signification
SV_SCADABasic_fr 439
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé. Type STR ou LONG.
Exécution
Mode Mnémonique Action
2 GETSTR Retourne une valeur de chaîne de caractère à partir d'un chemin.
Syntaxe 3
DoubleVal = XMLPATH(Mode, Namespace, Xpath);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé.. Type STR ou LONG.
Exécution
Mode Mnémonique Action
3 GETDOUBLE Retourne une valeur double à partir d'un chemin.
Syntaxe 4
SingleVal = XMLPATH(Mode, Namespace, Xpath);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé. Type STR ou LONG.
Exécution
Mode Mnémonique Action
3 GETSINGLE Retourne une valeur SINGLE à partir d'un chemin.
Syntaxe 5
LongVal = XMLPATH(Mode, Namespace, Xpath);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé. Type STR ou LONG.
Exécution
Mode Mnémonique Action
5 GETLONG Retourne une valeur LONG à partir d'un chemin.
Syntaxe 6
IntVal = XMLPATH(Mode, Namespace, Xpath);
SV_SCADABasic_fr 440
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé.. Type STR ou LONG.
Exécution
Mode Mnémonique Action
6 GETINT Retourne une valeur entière à partir d'un chemin.
Syntaxe 7
IntVal = XMLPATH(Mode, Namespace, Xpath);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Xpath Chemin hiérarchisé.. Type STR ou LONG.
Type de retour : INTEGER. 1 pour une chaîne True, 0 pour une chaîne False.
Exécution
Mode Mnémonique Action
7 GETBOOL Retourne une valeur booléenne (comme un entier) à partir d'un chemin.
1 pour une chaîne <true>.
0 pour une chaîne<false>.
Syntaxe 8
IntVal = XMLPATH(Mode, Namespace, XMLdata);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
XMLdata Contenu du fichier XML. Type STR ou LONG.
Type de retour : INTEGER. 1 pour OK, -1 pour un fichier XML erroné, -2 aucun fichier XML.
Exécution
Mode Mnémonique Action
8 LOAD Charge et mappe une donnée XML dans le contexte identifié par un espace
de nom.
Syntaxe 9
IntVal = XMLPATH(Mode, Namespace);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
Type de retour : INTEGER. 1 pour OK, -1 pour aucun espace de nom trouvé, -2 aucun fichier XML.
Exécution
Mode Mnémonique Action
9 UNLOAD Décharge et démappe une donnée XML à partir d'un espace de nom.
SV_SCADABasic_fr 441
Syntaxe 10
IntVal = XMLPATH(Mode, Namespace, XMLfilename);
Argument Signification
Namespace Identifiant pour le Xpath. Type STR ou LONG.
XMLfilename Nom du fichier XML à charger. Type STR ou LONG.
Type de retour : INTEGER. 1 pour OK, -1 pour donnée XML erronée, -2 pour fichier non trouvé.
Exécution
Mode Mnémonique Action
10 LOADFILE Charge et mappe une donnée XML à partir d'un fichier.
Exemple
Pour un exemple, sélectionner le lien Exemple ci-dessus.
SV_SCADABasic_fr 442
Généralités sur les Exemples
Voir aussi
Il y a plusieurs sortes d'exemples dans le fichier d'aide du SCADA BASIC :
Quelques uns des grands exemples sont extraits de projets d'application qui fournissent le contexte de
leur exécution.
SV_SCADABasic_fr 443
Exemple ALARMDISPLAY
Appliqué à
Exemple 1
Dans cet exemple suivant, la fenêtre AllAlarm contient une animation d'affichage d'alarme identifiée
comme AllDomain. La fenêtre affichée a été configurée sans la bordure du bas ; la fonctionnalité
remplacée avec les boutons de commande pour lancer les différents sous-programmes.
SUB Main ()
DIM Win As Str, ID AS Str;
Win = "AllAlarm";
ID = "AllDomain";
END SUB
SUB ToStart ()
AlarmDisplay("Begin",Win,"",ID);
END SUB
SUB ToEnd ()
AlarmDisplay("End",Win,"",ID);
END SUB
SUB PageUp ()
AlarmDisplay("Before", Win, "", ID);
END SUB
SUB PageDown ()
AlarmDisplay("After", Win, "", ID);
END SUB
SUB ListMode ()
AlarmDisplay("Mode",Win,"",ID);
END SUB
Exemple 2
Cet exemple utilise les instructions ADDSTRING, LINESELECT et XMLPATH:
SUB main()
END SUB
SV_SCADABasic_fr 444
SUB subscribe()
DIM WinName as str;
DIM WinBranch as str;
DIM NameSpace as str;
DIM iRet as integer;
WinName = WINDOW("CURRENTNAME");
WinBranch = WINDOW("CURRENTBRANCH");
NameSpace = AddString(WinBranch,"/");
NameSpace = AddString(NameSpace,WinName);
NameSpace = AddString(NameSpace,"/alarm1");
@lineselect.Syno = WinName;
@lineselect.Branch = WinBranch;
@lineselect.AlarmSelected = "";
@lineselect.NameSpace = NameSpace;
iRet = AlarmDisplay("LINESELECT",WinName,WinBranch,"alarm1","P","","SelectLine","");
Print("Subscription with result: ",iRet);
END SUB
SUB SelectLine()
DIM WinName as str;
DIM WinBranch as str;
DIM NameSpace as str;
DIM AlarmSelected as str;
DIM iBuf as long;
WinName = WINDOW("CURRENTNAME");
WinBranch = WINDOW("CURRENTBRANCH");
NameSpace = AddString(WinBranch,"/");
NameSpace = AddString(NameSpace,WinName);
NameSpace = AddString(NameSpace,"/alarm1");
@lineselect.NameSpace = NameSpace;
'AlarmSelected = XMLPATH("GETSTR",NameSpace,"lineselect/variable");
iBuf = XMLPATH("GET",NameSpace,"lineselect/variable");
AlarmSelected = CGET_BUFFER(iBuf, 0, 255);
@lineselect.AlarmSelected = AlarmSelected ;
XMLPATH("UNLOAD",NameSpace);
END SUB
SV_SCADABasic_fr 445
Exemple APPLICATION
Appliqué à
Exemple 1
Ce programme montre des exemples de lancement d'une application externe.
Pour chaque "\" dans le chemin d'accès Windows, SCADA Basic a besoin de "\\".
SUB ApplicationIsLoaded()
'Only runs if the application has been launched with APPLICATION LOAD
'Return code
DIM intReturn As Integer;
DIM strLink As Str;
'for each "\" in the Filename => Scada Basic needs "\\"
'for example:
' "C:\WINDOWS\NOTEPAD.EXE" => "C:\\WINDOWS\\notepad.exe"
strLink = "C:\\WINDOWS\\notepad.exe";
intReturn = APPLICATION("ISLOADED",strLink);
If (intReturn == 1) Then
PRINT("Program is already loaded.");
Else
PRINT("Program is not already loaded.");
End If
END SUB
SUB ApplicationActivate()
'Return code
DIM intReturn As Integer;
DIM strLink As Str;
strLink = "C:\\WINDOWS\\notepad.exe";
intReturn = APPLICATION("ACTIVATE",strLink);
If (intReturn == 1) Then
PRINT("Activation was successful.");
Else
PRINT("Activation error of ", strLink, ".");
End If
END SUB
SUB ApplicationLoad()
'Return code
DIM intReturn As Integer;
DIM strLink As Str;
DIM strArgs As Str;
DIM intWindowStyle As Integer;
strLink = "C:\\WINDOWS\\notepad.exe";
strArgs = "E:\\ScadaBasic\\USR\\APPLICATION\\p\\APPLICATION.SCB";
intWindowStyle = 1; 'Normal mode
intReturn = APPLICATION ("LOAD" , strLink , strArgs , intWindowStyle );
If (intReturn == 1) Then
PRINT("load successful");
Else
PRINT("load error");
End If
END SUB
SV_SCADABasic_fr 446
'Mode UNLOAD or Mode 4 -(syntax 1)
SUB ApplicationUnLoad()
'Return code
DIM intReturn As Integer;
DIM strLink As Str;
strLink = "C:\\WINDOWS\\notepad.exe";
intReturn = APPLICATION("UNLOAD",strLink);
If (intReturn == 1) Then
PRINT("unload successful");
Else
PRINT("unload error");
End If
END SUB
SUB LoadExcel ()
'example of how to launch the Excel application
DIM intReturn As Integer;
DIM strapplink As Str;
DIM strArgs As Str;
DIM intWindowStyle As Integer;
strapplink = "C:\\Program Files\\Microsoft Office\\Office10\\EXCEL.EXE";
If (Application ("IsLoaded", strapplink)) Then
' The application is already running
' => Activate the application
If (Application ("Activate", strapplink) == 0) Then
PRINT("activate error of ", strapplink);
End If
Else
'The application is not running, so LOAD the application
intWindowStyle=5; 'Windows Minimizes not Activated
strArgs="/E"; 'Open Excel without file opened by default
'strArgs="/m"; 'Open Excel with a new file including just a Macro
'strArgs="/r E:\\file1.xls"; 'Open the file e:\file.xls with Excel in Read Only
'strArgs="/w E:\\file1.xls"; 'Open the file e:\file.xls with Excel in normal mode
Exemple 2
Cette exemple lance l'application Excel.
SUB LoadExcel ()
DIM r As Integer;
DIM s As Str;
s = "C:\\EXCEL\\EXCEL.EXE"; 'note double backslashes
If (Application ("IsLoaded", s)) Then
'Application already loaded
'Activate application :
If (Application ("Activate", s) == 0) Then
Print("Error in activation of ", s);
End If
Else
'Application not loaded
'Load application in a minimised window
' with the parameter "/E" :
If (Application ("Load", s, "/E" , 5) == 0) Then
Print ("Error when loading ", s);
End If
End If
SV_SCADABasic_fr 447
END SUB
SUB UnloadExcel ()
DIM r As Integer;
DIM s As Str;
s = "EXCEL";
If (Application ("IsLoaded", s)) Then
If (Application ("Unload", s) == 0) Then
Print ("Error when unloading ", s);
End If
End If
END SUB
SV_SCADABasic_fr 448
Exemple ASCIIFIELD
Appliqué à
Exemple 1
Ce programme illustre les modes de la commande ASCIIFIELD.
'Retrieve, from an ASCII buffer, ASCII fields separated by a given character
'Database config:
'@STRING01 As Text
'@STR01 As Text
'@SEPA As Text
'@LEN01 As Register
'@INTEGER01 As Register
'@LONG01 As Register
'@DOUBLE01 As Register
'@COUNT01 As Register
'@INDEX01 As Register
'Database prerequisites:
'@STRING01 of type TEXT
'@STR01 of type TEXT
'@SEPA of type TEXT
'@LEN01 of type REGISTER
'@INTEGER01 of type REGISTER
'@LONG01 of type REGISTER
'@DOUBLE01 of type REGISTER
'@COUNT01 of type REGISTER
'@INDEX01 of type REGISTER
'For these examples you can use:
'@STRING01 = "123.34;my string, here;345;123456789;hello world\n"
SUB AsciiFieldLen2()
'declare code
DIM lngbuffer1 As Long;
DIM strline As Str;
DIM intlengh As Integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = @STRING01;
PUT_BUFFER(lngbuffer1, 0, strline);
'@SEPA is equal to";"
@LEN01 = TOS(ASCIIFIELD("LEN",lngbuffer1,1,@SEPA));
FREE_BUFFER(lngbuffer1);
END SUB
SUB AsciiFieldCount()
SV_SCADABasic_fr 449
'declare code
DIM lngbuffer1 As Long;
DIM strline As Str;
DIM intcount As Integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = @STRING01;
PUT_BUFFER(lngbuffer1, 0, strline);
@COUNT01 = TOS(ASCIIFIELD("COUNT", lngbuffer1,@SEPA ));
FREE_BUFFER(lngbuffer1);
END SUB
SUB AsciiFieldStr()
'declare code
DIM lngbuffer1 As Long;
DIM strline As Str;
DIM strchar As Str;
lngbuffer1 = ALLOC_BUFFER(110);
strline = @STRING01;
PUT_BUFFER(lngbuffer1, 0, strline);
@STR01 = ASCIIFIELD("STR",lngbuffer1,TOI(@INDEX01),@SEPA);
FREE_BUFFER(lngbuffer1);
END SUB
SUB AsciiFieldInteger()
'declare code
DIM lngbuffer1 As Long;
DIM strline As Str;
DIM intInteger As Integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = @STRING01;
PUT_BUFFER(lngbuffer1, 0, strline);
@INTEGER01 = TOS(ASCIIFIELD("INTEGER",lngbuffer1,TOI(@INDEX01),@SEPA));
FREE_BUFFER(lngbuffer1);
END SUB
SUB AsciiFieldLong()
'declare code
DIM lngbuffer1 As Long;
DIM strline As Str;
DIM lngLong As Long;
lngbuffer1 = ALLOC_BUFFER(110);
strline = @STRING01;
PUT_BUFFER(lngbuffer1, 0, strline);
@LONG01 = TOS(ASCIIFIELD("LONG",lngbuffer1,TOI(@INDEX01),@SEPA));
FREE_BUFFER(lngbuffer1);
END SUB
SUB AsciiFieldDouble()
'declare code
DIM lngbuffer1 As Long;
DIM strline As Str;
DIM dbldouble As double;
lngbuffer1 = ALLOC_BUFFER(110);
strline = @STRING01;
PUT_BUFFER(lngbuffer1, 0, strline);
SV_SCADABasic_fr 450
@DOUBLE01 = TOS(ASCIIFIELD("DOUBLE",lngbuffer1,TOI(@INDEX01),@SEPA));
FREE_BUFFER(lngbuffer1);
END SUB
Exemple 2
Ce programme affiche les champs ASCII dans différents formats.
SUB main()
DIM hdl as long;
DIM line as str;
DIM ch as str;
DIM i as integer;
DIM l as long;
DIM d as double;
DIM count as integer;
DIM length as integer;
hdl = ALLOC_BUFFER(110);
line = "123.34;my string, here;345;123456789;hello world\n";
PUT_BUFFER(hdl, 0, line);
length = ASCIIFIELD("LEN",hdl);
PRINT(length);
length = ASCIIFIELD("LEN",hdl,4,";");
PRINT(length);
PRINT("count = ", ASCIIFIELD("COUNT",hdl,";"));
ch = ASCIIFIELD("STR",hdl,2,";");
i = ASCIIFIELD("INTEGER",hdl,3,";");
l = ASCIIFIELD("LONG",hdl,4,";");
d = ASCIIFIELD("DOUBLE",hdl,1,";");
PRINT(ch);
PRINT(i);
PRINT(l);
PRINT(d);
PRINT(">",ASCIIFIELD("STR",hdl,5,";"),"<");
free_buffer(hdl);
END SUB
Ce programme affiche ces lignes dans la fenêtre de déboguage.
110
9
count = 5
my string, here
345
123456789
123.34
>hello world<
SV_SCADABasic_fr 451
Exemple ASSOCLABEL
Appliqué à
Ce programme illustre la commande ASSOCLABEL.
' Change the labels in the associated label AssocLabel1
SUB SetAssocLabel()
DIM l_bRet AS INTEGER;
' State to 1
l_bRet = ASSOCLABEL ("SETLABEL", "AssocLabel1", 1, "Close");
IF (l_bRet == 0) THEN
PRINT( "ERROR SetLabel State to 1. Return = ", l_bRet);
END IF
' Transition to 0
l_bRet = ASSOCLABEL ("SETLABEL", "AssocLabel1", 2, "Transition to open");
IF (l_bRet == 0) THEN
PRINT( "ERROR SetLabel Transition to 0. Return = ", l_bRet);
END IF
' Transition to 1
l_bRet = ASSOCLABEL ("SETLABEL", "AssocLabel1", 3, "Transition to closed");
IF (l_bRet == 0) THEN
PRINT( "ERROR SetLabel Transition to 1. Return = ", l_bRet);
END IF
' Command to 0
l_bRet = ASSOCLABEL ("SETLABEL", "AssocLabel1", 4, "Forced to open");
IF (l_bRet == 0) THEN
PRINT( "ERROR SetLabel Command to 0. Return = ", l_bRet);
END IF
' Command to 1
l_bRet = ASSOCLABEL ("SETLABEL", "AssocLabel1", 5, "Forced to closed");
IF (l_bRet == 0) THEN
PRINT( "ERROR SetLabel Command to 1. Return = ", l_bRet);
END IF
SV_SCADABasic_fr 452
Exemple BACNET
Appliqué à
Exemple 1
Ce programme exécute plusieurs modes de la commande BACNET.
Sub Main()
End Sub
Sub TimeSynchronization()
BACNET("TIME_SYNCHRONIZATION", "NETWORK01", "SYNCHRO");
End Sub
Sub ResetPriority()
BACNET( "RESET_PRIORITY", "DEVICE1.ANALOG_VALUE_1.PRESENT_VALUE", 16, "RESULT2");
End Sub
Sub ResetAllPriorities()
BACNET( "RESET_ALL_PRIORITIES", "DEVICE1.ANALOG_VALUE_1.PRESENT_VALUE", "RESULT");
End Sub
Sub StartNetwork()
BACNET( "START_NETWORK", "NETWORK01", "RESULTSTARTNET");
End Sub
Sub StopNetwork()
BACNET( "STOP_NETWORK", "NETWORK01", "RESULTSTOPNET");
End Sub
Sub StartDevice()
BACNET( "START_DEVICE", "NETWORK01", "DEVICE1","RESULTSTARTDEV");
End Sub
Sub StopDevice()
BACNET( "STOP_DEVICE");
End Sub
Sub WriteValue()
BACNET( "WRITE_PRIORITY", "DEVICE1.ANALOG_VALUE_1.PRESENT_VALUE",59.65509,10, "RESULT1");
End SubExample 2
Exemple 2
Ce programme affiche des champs ASCII dans différents formats.
SUB main()
DIM hdl as long;
DIM line as str;
DIM ch as str;
DIM i as integer;
DIM l as long;
DIM d as double;
DIM count as integer;
DIM length as integer;
hdl = ALLOC_BUFFER(110);
line = "123.34;my string, here;345;123456789;hello world\n";
PUT_BUFFER(hdl, 0, line);
length = BACNET("LEN",hdl);
PRINT(length);
length = BACNET("LEN",hdl,4,";");
PRINT(length);
PRINT("count = ", BACNET("COUNT",hdl,";"));
ch = BACNET("STR",hdl,2,";");
SV_SCADABasic_fr 453
i = BACNET("INTEGER",hdl,3,";");
l = BACNET("LONG",hdl,4,";");
d = BACNET("DOUBLE",hdl,1,";");
PRINT(ch);
PRINT(i);
PRINT(l);
PRINT(d);
PRINT(">",BACNET("STR",hdl,5,";"),"<");
free_buffer(hdl);
END SUB
Ce programme affiche ces lignes dans la fenêtre de débogage du gestionnaire de programme :
110
9
count = 5
my string, here
345
123456789
123.34
>hello world<
SV_SCADABasic_fr 454
Exemple BUFTOFILE
Appliqué à
Ce programme montre l'utilisation de l'instruction BUFTOFILE.
USEFULL_PART désactive seulement l'écriture dans la 1ère zone du buffer plein.
SUB main()
'Declare variables
DIM lngbuffer1 as long;
DIM strline as Str;
DIM intresult as integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = "here,345;123456789 ,‚t‚\n";
PUT_BUFFER(lngbuffer1, 0, strline);
intresult = BUFTOFILE (lngbuffer1,"test1.txt");
SUB buftofileusefull()
'Declare variables
DIM lngbuffer1 as long;
DIM strline as Str;
DIM strfilemode as Str;
DIM intresult as integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = "here,345;123456789 ,‚t‚\n";
PUT_BUFFER(lngbuffer1, 0, strline);
'strfilemode="Write"; [?]
strfilemode="Append";
intresult = BUFTOFILE (lngbuffer1,"test1.txt","USEFULL_PART",strfilemode);
'USEFULL_PART enables writing only up to the first area of the empty buffer
'create file test1.txt in folder TP of current project
FREE_BUFFER(lngbuffer1);
'free the memory area
END SUB
SV_SCADABasic_fr 455
Exemple CGET_BUFFER
Appliqué à
Ce programme utilise l'instruction CGET_BUFFER.
SUB main()
'Declare variables
DIM lngbuffer1 as long;
DIM strline as Str;
DIM strResult as Str;
DIM intlength as integer;
'Create a buffer
lngbuffer1 = ALLOC_BUFFER(110);
strline = "123.34;a string,here;345;123456789;‚t‚\n";
SV_SCADABasic_fr 456
Exemple CHECKLIST
Applies To
This example contains a set of functions to support a pair of Check-box List form controls using the
CHECKLIST instruction.
SUB Main()
END SUB
'declare variables:
SUB cbxSel()
DIM lRet As Long; 'return
DIM sCbxText As Str; 'Text
DIM sCbxText1 As Str; 'Text
DIM sCbxData As Str; 'User Data
DIM sCbxData1 As Str; 'User Data
SV_SCADABasic_fr 457
schkData1 = CHECKLIST ( "GETUSERDATA", "ctrl","","chk1", lRet);
lRet = CHECKLIST ( "COUNT", "ctrl","","chk");
lRet = CHECKLIST ( "COUNT", "ctrl","","chk1");
SV_SCADABasic_fr 458
Exemple CHECKLIST
Applies To
This example contains a set of functions to support a pair of Check-box List form controls using the
CHECKLIST instruction.
SUB Main()
END SUB
'declare variables:
SUB cbxSel()
DIM lRet As Long; 'return
DIM sCbxText As Str; 'Text
DIM sCbxText1 As Str; 'Text
DIM sCbxData As Str; 'User Data
DIM sCbxData1 As Str; 'User Data
SV_SCADABasic_fr 459
schkData1 = CHECKLIST ( "GETUSERDATA", "ctrl","","chk1", lRet);
lRet = CHECKLIST ( "COUNT", "ctrl","","chk");
lRet = CHECKLIST ( "COUNT", "ctrl","","chk1");
SV_SCADABasic_fr 460
Exemple CIMWAY
Appliqué à
Ce programme montre l'utilisation des modes de l'instruction CIMWAY.
SUB MAIN()
'------ The communication object is MODBUS.PLC1.WORD1
DIM ret AS INTEGER;
DIM period AS SINGLE;
DIM errcount AS LONG;
DIM net_stat AS INTEGER, node_stat AS INTEGER;
DIM frame_stat AS INTEGER;
'------ Set scan rate to 500mSec
ret = CIMWAY("SCANMDF","MODBUS.PLC1.WORD1",0.5);
'------ Test of network, node and frame Status
net_stat = CIMWAY("STATUS","MODBUS");
IF (net_stat ==1) THEN
errcount = CIMWAY("ERROR","MODBUS");
PRINT("Network out of service", errcount,"errors.");
END IF
node_stat = CIMWAY("STATUS","MODBUS.PLC1");
IF (node_stat ==1) THEN
errcount = CIMWAY("ERROR","MODBUS.PLC1");
PRINT("Node out of service", errcount,"errors.");
END IF
frame_stat = CIMWAY("STATUS","MODBUS.PLC1,WORD1"); 'frame status
IF (frame_stat ==1) THEN
errcount = CIMWAY(5,"MODBUS.PLC1.WORD1");
PRINT("Frame out of service", errcount,"errors.");
END IF
SV_SCADABasic_fr 461
print("MODBUS.PLC1,WORD1 does not exist");
ELSE
IF (ret == -2) THEN
print("Bad parameter");
ELSE
print("Unknown error ",ret);
END IF
END IF
END IF
SV_SCADABasic_fr 462
Exemple CMPSTRING
Appliqué à
Ce programme utilise l'instruction CMPSTRING.
SUB main()
'Declare variables
DIM strstring1 as Str;
DIM strstring2 as Str;
DIM intResult1 as integer;
DIM intResult2 as integer;
DIM intResult3 as integer;
strstring1="string1";
strstring2="string2";
intResult1 = CMPSTRING(strstring1,strstring2);
intResult2 = CMPSTRING(strstring2,strstring1);
intResult3 = CMPSTRING(strstring1,strstring1);
If (intResult1 <0 )Then
PRINT(strstring1," lower to ",strstring2);
End If
If (intResult2 >0 )Then
PRINT(strstring2," upper to ",strstring1);
End If
If (intResult3 == 0 )Then
PRINT(strstring1," same to ",strstring1);
End If
END SUB
SV_SCADABasic_fr 463
Exemple COMBOBOX
Applies To
This example contains a set of functions to support a pair of Combo-box List form controls using the
COMBOBOX instruction.
SUB Main()
END SUB
'declare variables:
SUB cbxSel()
DIM lRet As Long;
DIM sCbxText As Str;
DIM sCbxText1 As Str;
DIM sCbxData As Str;
DIM sCbxData1 As Str;
SV_SCADABasic_fr 464
SET("CbxCount1" , COMBOBOX ( "COUNT", "ctrl","","cbx1"));
SENDLIST ("BLOC");
END SUB
SV_SCADABasic_fr 465
Exemple CONVERT
Appliqué à
Cet exemple illustre chaque mode de l'instruction CONVERT et imprime les résultats dans le panneau de
déboguage du gestionnaire de programme.
'Use of the CONVERT instruction: run each function
SUB main()
convertbintoa();
convertocttoa();
converthextoa();
convertbcdtoa();
convertatobin();
convertatooct();
convertatohex();
convertatobcd();
END SUB
SV_SCADABasic_fr 466
strvalue="111111";
lngReturn = CONVERT("ATOBIN",strvalue);
PRINT(strvalue," to base 2 equals ",lngReturn," to base 10");
END SUB
SV_SCADABasic_fr 467
Exemple COPY_BUFFER
Appliqué à
Cet exemple montre l'utilisation de la commande COPY_BUFFER.
SUB main()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strline as Str;
DIM strResult as Str;
DIM intResult as integer;
DIM intlength as integer;
'Create a buffer
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
strline = "123.34;a string,here;345;123456789;‚t‚\n";
'This displays:
'"The returned string is: 123.34;a string,here;345;123456789;‚t‚"
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
SV_SCADABasic_fr 468
Exemple CRONTAB
Appliqué à
Exemple 1
Ce programme créé et modifie les événements d'exécution de programme dans différents horodates.
SUB main()
'-------- The 5th of August at 16.50.
CRONTAB("ADDPROG","ONCE","05/08/94","16:50", "clicell", "","cront");
'-------- 26 minutes past each hour.
CRONTAB("ADDPROG","EACH_HOUR","","26","clicell","", "cront");
'-------- Every day at 18.27
CRONTAB("ADDPROG","EACH_DAY","","18:27","clicell","", "cront");
'-------- Every week on Sunday at 18.27
CRONTAB("ADDPROG","EACH_WEEK","sun","18:28", "clicell","","cront");
'-------- The 27th of each month at 18.29
CRONTAB("ADDPROG","EACH_MONTH","27","18:29", "clicell","","cront");
'-------- 30 minutes past each hour
CRONTAB("ADDPROG","EACH_HOUR","","30","B1",0,0);
'-------- 30 minutes past each hour
CRONTAB("ADDPROG","EACH_HOUR","","30", "SYSTEM.ALARM.NEWAL",2 ,3);
CRONTAB("ADDPROG","EACH_HOUR","","30","B2",2,5);
END SUB
Exemple 2
Ce programme envoie la configuration du séquenceur vers tous les postes de la liste de clients de
modification.
DIM Handle As Long;
SUB SendSeq()
Handle = alloc_buffer (1000);
Set("EVTVAR", 0);
SENDLIST(0);
EVENT("ADDPROG", "EVTVAR", 1, "PGMCRON", "", "OnEvt");
CRONTAB("NETWORKBROADCAST" , "LIST1" , Handle , "EVTVAR");
END SUB
SV_SCADABasic_fr 469
Exemple CYCLIC
Appliqué à
Exemple 1
Cet exemple illustre les modes de la commande CYCLIC.
'Database variables used:
'@ACTIVATION.STATE of type STATE
SUB prog1()
PRINT("The arguments passed are: ",GETARG("ARG1")," and ",GETARG("ARG2"));
END SUB
SUB prog2()
BEEP(1000,100); '1000 Hz for 1/10 second
END SUB
SUB cyclicaddprog()
DIM intResult as integer;
DIM intDelay as integer;
intDelay=5;
intResult = CYCLIC("ADDPROG",intDelay, "CYCLIC.SCB","","prog1", "Argument1,Argument2"
,"@ACTIVATION.STATE");
'intResult = CYCLIC("ADDPROG",intDelay, "CYCLIC.SCB","","prog2", ""
,"@ACTIVATION.STATE");
END SUB
SUB cyclicdel()
DIM intResult as integer;
DIM intDelay as integer;
intDelay=5;
intResult = CYCLIC("DEL",intDelay, "CYCLIC.SCB","","prog1", "Argument1,Argument2"
,"@ACTIVATION.STATE");
END SUB
SUB cyclicdelall()
DIM intResult as integer;
DIM intDelay as integer;
intDelay=5;
intResult = CYCLIC("DELALL");
END SUB
Exemple 2
Le programme PRINTVAR.PVB contient une fonction PRT_MES :
SUB PRT_MES ()
LPrint(1,"Register =",mes1);
END SUB
L'autre programme CYCLE.PVB démarre un cycle d'activation PRINTVAR.PVB toutes les 30 minutes :
SUB Main ()
If (Program("IS LOADED","PRINTVAR.PVB","") ==0) Then
Program("PRELOAD","PRINTVAR.PVB","");
Else
CYCLIC("ADD",1800,"PRINTVAR.PVB","","PRT_MES");
SV_SCADABasic_fr 470
End If
END SUB
Une fonction avec des délais pour démarrer et stopper les fonctions cycliques :
SUB MODIF_CYCLE(OldDly,NewDly)
CYCLIC("DEL",OldDly,"PRINTVAR.PVB","","PRT_MES");
CYCLIC("ADD",NewDly,"PRINTVAR.PVB","","PRT_MES");
END SUB
SV_SCADABasic_fr 471
Exemple DATETIME
Appliqué à
Exemple 1
Cet exemple montre l'utilisation des modes de la commande DATETIME.
'Database variables
'@DATETIME of type REGISTER
'@DATETIME.DAY of type REGISTER
'@DATETIME.MONTH of type REGISTER
'@DATETIME.YEAR of type REGISTER
'@DATETIME.HOUR of type REGISTER
'@DATETIME.MINUTE of type REGISTER
'@DATETIME.SECOND of type REGISTER
'@DATETIME.MILLISECOND of type REGISTER
'@DATETIME.WEEKDAY of type REGISTER
'@DATETIME.YEARDAY of type REGISTER
'@DATETIME.ISLEAPYEAR of type REGISTER
'A date-time is a whole number of seconds
' since 1st January 1980
SUB datetimeday()
DIM intResult as integer;
intResult = DATETIME ("DAY");
Print("Day = ",intResult);
@DATETIME.DAY = TOS (DATETIME ("DAY" , TOD(@DATETIME)) );
END SUB
SUB datetimemonth()
DIM intResult as integer;
intResult = DATETIME ("MONTH");
@DATETIME.MONTH = TOS (DATETIME ("MONTH" , TOD(@DATETIME)) );
Print("Month = ",intResult);
END SUB
SUB datetimeyear()
DIM intResult as integer;
intResult = DATETIME ("YEAR");
@DATETIME.YEAR= TOS (DATETIME ("YEAR" , TOD(@DATETIME)) );
Print("Year = ",intResult);
END SUB
SUB datetimehour()
DIM intResult as integer;
intResult = DATETIME ("HOUR");
@DATETIME.HOUR = TOS (DATETIME ("HOUR" , TOD(@DATETIME)) );
Print("Hour = ",intResult);
END SUB
SUB datetimeminute()
DIM intResult as integer;
intResult = DATETIME ("MINUTE");
SV_SCADABasic_fr 472
@DATETIME.MINUTE = TOS (DATETIME ("MINUTE" , TOD(@DATETIME)) );
Print("Minute(s) = ",intResult);
END SUB
SUB datetimesecond()
DIM intResult as integer;
intResult = DATETIME ("SECOND");
@DATETIME.SECOND = TOS (DATETIME ("SECOND" , TOD(@DATETIME)) );
Print("Second(s) = ",intResult);
END SUB
SUB datetimemillisecond()
DIM intResult as integer;
intResult = DATETIME ("MILLISECOND");
@DATETIME.MILLISECOND = TOS (DATETIME ("MILLISECOND" , TOD(@DATETIME)) );
Print("Millisecond(s) = ",intResult);
END SUB
SUB datetimeweekday()
DIM intResult as integer;
intResult = DATETIME ("WEEKDAY");
@DATETIME.WEEKDAY = TOS (DATETIME ("WEEKDAY" , TOD(@DATETIME)) );
Print("Day of the week = ",intResult);
END SUB
SUB datetimeyearday()
DIM intResult as integer;
intResult = DATETIME ("YEARDAY");
@DATETIME.YEARDAY = TOS (DATETIME ("YEARDAY" , TOD(@DATETIME)) );
Print("Day in the year = ",intResult);
END SUB
SUB datetimeisleapyear()
DIM intResult as integer;
intResult = DATETIME ("ISLEAPYEAR");
@DATETIME.ISLEAPYEAR = TOS (DATETIME ("ISLEAPYEAR" , TOD(@DATETIME)) );
Print("Leap year if value =(1) else (0) value = ",intResult);
END SUB
Exemple 2
Ce programme imprime la date et l'heure dans plusieurs formats.
SUB Main ()
DIM TD As Double;
TD = DateTimeValue();
PrintDateTime(TD);
TD = TD- 3600000; ' Subtract 1 hour
PrintDateTime(TD);
TD = DateTimeValue(25, 12, 2003, 23, 59, 59);
PrintDateTime(TD; ' 25 December 2003
TD = DateTimeValue("01/01/2000", "");
PrintDateTime(TD); ' 01 January 2000
SV_SCADABasic_fr 473
END SUB
SUB PrintDateTime(TD)
'------Prints time and date in a number of formats.
Print ("td = ", td, " --> ");
Print (DateTimeString (td, "#D/#M/###Y - #h:#m:#s.##l"));
Print (DateTimeString (td));
Print (DateTimeString (td, "D")," \\ ",DateTimeString (td,"T"));
Print (DateTime ("Weekday", td), ", ",DateTime ("Yearday",td));
Print (DateTime("Day",td), "/",DateTime("Month",td),"/", DateTime ("Year", td));
Print (DateTime ("Hour", td), ":", DateTime ("Minute",td),":", DateTime ("Second", td),
".",DateTime ("Millisecond", td));
Print (DateTime ("IsLeapYear", td));
END SUB
SV_SCADABasic_fr 474
Exemple DDE
Appliqué à
Cet exemple utilise chaque mode de la commande DDE.
'Mode INITIATE or Mode 1 (syntax 1)
SUB ddeinitiate()
'Declare code return
DIM lngReturn as long;
DIM strServDdeName as Str;
DIM strTopicName as Str;
strServDdeName="EXCEL";
strTopicName="[FOLDER1.XLS]Sheet1";
lngReturn = DDE ("INITIATE",strServDdeName,strTopicName);
If(lngReturn==0)Then
PRINT("Error in opening DDE channel");
End If
END SUB
SUB ddeterminate()
'Declare code Return
DIM lngChannel as long;
DIM intResult as integer;
DIM strServDdeName as Str;
DIM strTopicName as Str;
strServDdeName="EXCEL";
strTopicName="[Folder1.XLS]Sheet1";
lngChannel = DDE ("INITIATE",strServDdeName,strTopicName);
If(lngChannel==0)Then
PRINT("Error in opening DDE channel");
End If
intResult = DDE ("TERMINATE",lngChannel);
If(intResult==0)Then
PRINT("Error in closing DDE channel");
End If
END SUB
SUB ddeterminateall()
'Declare code Return
DIM lngChannel as long;
DIM intResult as integer;
intResult = DDE ("TERMINATEALL");
If(intResult==0)Then
PRINT("Error in closing all DDE channels");
End If
END SUB
SUB ddetimeout()
'Declare code Return
DIM lngChannel as long;
DIM lngDdeTimeout as long;
DIM intResult as integer;
DIM strServDdeName as Str;
DIM strTopicName as Str;
strServDdeName="EXCEL";
strTopicName="[Folder1.XLS]Sheet1";
SV_SCADABasic_fr 475
lngChannel = DDE ("INITIATE",strServDdeName,strTopicName);
If(lngChannel==0)Then
PRINT("Error in opening DDE channel");
End If
lngDdeTimeout=500; ' in milliseconds => 500ms
intResult = DDE ("TIMEOUT", lngChannel, lngDdeTimeout);
If(intResult==0)Then
PRINT("Error when modifying DDE timeout channel");
End If
intResult = DDE ("TERMINATE",lngChannel);
If(intResult==0)Then
PRINT("Error in closing DDE channel");
End If
END SUB
SUB ddeexecute()
'Declare code Return
DIM lngChannel as long;
DIM intResult as integer;
DIM strDdeCmd as Str;
DIM strServDdeName as Str;
DIM strTopicName as Str;
strServDdeName="EXCEL";
'It is very important to register the folder Folder2.xls
' before and in the Excel default folder
' so that Folder2.xls appears in the recent files list
strTopicName="[Folder2.XLS]Sheet1";
lngChannel = DDE ("INITIATE",strServDdeName,strTopicName);
If(lngChannel==0)Then
PRINT("Error in opening DDE channel");
End If
strDdeCmd = "";
intResult = DDE ("EXECUTE", lngChannel, strDdeCmd);
If(intResult==0)Then
PRINT("Error when executing the command ",strDdeCmd," on the DDE channel");
End If
intResult = DDE ("TERMINATE",lngChannel);
If(intResult==0)Then
PRINT("Error in closing DDE channel");
End If
END SUB
SUB dderequest()
'Declare code Return
DIM lngChannel as long;
DIM intResult as integer;
DIM strDdeItem as Str;
DIM strServDdeName as Str;
DIM strTopicName as Str;
strServDdeName="EXCEL";
strTopicName="[Folder1.XLS]Sheet1";
lngChannel = DDE ("INITIATE",strServDdeName,strTopicName);
If(lngChannel==0)Then
PRINT("Error in opening DDE channel");
End If
strDdeItem = "L1C1";'ligne nø1 et Colonne nø1 du Folder ouvert
intResult = DDE ("REQUEST", lngChannel, strDdeItem);
If(intResult==0)Then
PRINT("Error in querying the item ",strDdeItem," on the DDE channel");
SV_SCADABasic_fr 476
End If
intResult = DDE ("TERMINATE",lngChannel);
If(intResult==0)Then
PRINT("Error in closing DDE channel");
End If
END SUB
SUB ddepoke()
'Declare code Return
DIM lngChannel as long;
DIM intResult as integer;
DIM strDdeItem as Str;
DIM strServDdeName as Str;
DIM strTopicName as Str;
SV_SCADABasic_fr 477
Exemple DDECONV
Appliqué à
Ces exemples illustrent les modes de la commande DDECONV.
Exemple 1
'Creates a DDE conversation in SV
'The conversation is called: SVEXCEL
SUB ddeconvstart()
'Declare return code
DIM intReturn as integer;
DIM strConvDdeName as Str;
strConvDdeName="SVEXCEL";
intReturn = DDECONV ("START",strConvDdeName);
If(intReturn==1)Then
PRINT("the name of the conversation is invalid");
End If
END SUB
SUB ddeconvstop()
'Declare return code
DIM intReturn as integer;
DIM strConvDdeName as Str;
strConvDdeName="SVEXCEL";
intReturn = DDECONV ("STOP",strConvDdeName);
If(intReturn==1)Then
PRINT("Conversation name is invalid.");
End If
END SUB
SUB ddeconvstatus()
'Declare return code
DIM intReturn as integer;
DIM strConvDdeName as Str;
strConvDdeName="SVEXCEL";
intReturn = DDECONV ("STATUS",strConvDdeName);
PRINT("Conversation status =",intReturn);
If(intReturn==1)Then
PRINT("Conversation is absent.");
End If
END SUB
SUB ddeconvon()
'Declare return code
DIM intReturn as integer;
intReturn = DDECONV ("ON");
If(intReturn==1)Then
PRINT("absent");
End If
END SUB
SV_SCADABasic_fr 478
SUB ddeconvoff()
'Declare return code
DIM intReturn as integer;
intReturn = DDECONV ("OFF");
If(intReturn==1)Then
PRINT("absent");
End If
END SUB
Exemple 2
Ce SUB arrête une conversation DDE particulière si elle est lancée, ou la lance si elle ne l'est pas.
SUB ToggleDDE (ConversationName)
DIM Status As Integer;
Status = DDECONV("STATUS", ConversationName);
If (Status == -1) Then
Break(); 'Conversation does not exist
End If
If (Status ==1) Then
DDECONV("START", ConversationName);
Else
DDECONV("STOP", ConversationName);
End If
END SUB
SV_SCADABasic_fr 479
Exemples DECLARE
Appliqué à
Exemple 1
Declare Function GetPrivateProfileString LIB "kernel32" ALIAS "GetPrivateProfileStringA"
(lpApplicationName As Str, lpKeyName As Str, pcDefault As Str, lpReturnedString As Long,
nSize As Long, lpFileName As Str) As Long;'Private
Declare Function WritePrivateProfileString LIB "kernel32" ALIAS
"WritePrivateProfileStringA" (lpApplicationName As Str, lpKeyName As Str, lpString As
Str, lpFileName As Str) As Long;
Sub Main()
End Sub
'-------- Initialisation
cFileName = "test.ini"; '-------- In the project's TH folder by default
cSectionName ="SECTION";
cKeyName ="10";
cKeyValue ="EGGBACONCHIPS";
SV_SCADABasic_fr 480
Exemple DIM
Appliqué à
Ces exemples déclare de grands ensembles de variable d'une manière identique.
Exemple 1
SUB main()
DIM t[5000] As str;
DIM i As integer;
FOR (i =0; i<5000; i++)
t[i] = toc(i);
PRINT (t[i]);
NEXT
END SUB
Résultats:
0
...
4085
4086
Exemple 2
SUB main()
DIM t[4600] As str;
DIM i As integer;
FOR (i =0; i<4600; i++)
t[i] = toc(i);
PRINT (t[i]);
NEXT
END SUB
Résultats:
0
...
4598
4598
4599
SV_SCADABasic_fr 481
Exemple EMAIL
Appliqué à
Cet exemple développe la commande EMAIL.
sub main ()
email("SEND", "EmailProfile01", "a.n.other@company.com", "", "", "EmailSender Subject
test", "EmailSender Message test");
end sub
Note
Dans le contenu du fichier ci-dessus, le serveur SMTP de Microsoft est utilisé. D'autres serveurs peuvent,
de façon égale, être utilisés comme Gmail de Google avec la ligne Server Type configurée ainsi :
SV_SCADABasic_fr 482
Exemple EVENT
Appliqué à
Exemple 1
Cet exemple illustre plusieurs modes de la commande EVENT.
Il appelle les modules 'test' et 'test2' du programme Beep.svs.
'Database variables used:
'@STATE01 of type STATE
'@AUTHORISATION of type STATE
SUB eventaddprog()
'Declare variables
DIM intResult as integer;
intResult = EVENT("ADDPROG","@STATE01","ALL>ALL","beep.svs","","test" ,"1000,100"
,"@AUTHORISATION" );
END SUB
SUB eventdel()
'Declare variables
DIM intResult as integer;
intResult = EVENT("DEL","@STATE01","ALL>ALL","beep.svs","","test");
END SUB
SUB eventdelall()
'Declare variables
DIM intResult as integer;
intResult = EVENT("DELALL");
END SUB
SUB eventaddprogs()
'Declare variables
DIM intResult as integer;
intResult = EVENT("ADDPROGS","@STATE01","ALL>ALL","beep.svs","","test2" ,"1000,100"
,"@AUTHORISATION" );
END SUB
SUB eventdelprog()
'Declare variables
DIM intResult as integer;
intResult = EVENT("DELPROG","@STATE01","ALL>ALL","beep.svs","","test");
END SUB
Ce programme (Beep.svs) est appelé celui ci-dessus.
SUB test()
DIM dblfrequency as double; 'in Hz
DIM dblduration as double; ' in ms
dblfrequency =DVAL(GETARG("ARG1"));
dblduration = DVAL(GETARG("ARG2"));
BEEP (dblfrequency,dblduration);
END SUB
SV_SCADABasic_fr 483
SUB test2()
PRINT("starting program test2");
END SUB
Exemple 2
Dans cet exemple, lorsque la routine DEF_EVN est exécutée, la modification de l'état 'DoorState'
déclenche l'exécution des fonctions TRANS_0 et TRANS_1.
'Program "TEST_TR" contains two functions.
SUB TRANS_1( )
PRINT("Open The Door");
END SUB
SUB TRANS_0( )
PRINT("Shut That Door!");
END SUB
SV_SCADABasic_fr 484
Exemple EXCELTOBUF
Appliqué à
Exemple
'-------- Simple example of the use of ExcelToBuf
Sub ExcelToBuf1()
Dim lHandle As Long;
Dim cLineSepa As Str, cColSepa As Str;
Dim iFirstRow As Integer, iFirstCol As Integer, iLastRow As Integer, iLastCol As
Integer;
SV_SCADABasic_fr 485
Exemple EXPORT
Appliqué à
Exemple
'-------- Generate the export "Trends" using default settings
Sub Generation()
Export("GENERATE", "Trends");
End Sub
'-------- Generate the export "Tendance" for a period derived from a Trend Viewer
Sub ExportTrend()
Dim StartDate as double;
Dim EndDate as double;
StartDate = Trend("GETDATETIME", "Trends Export mimic", "", "Trend1", 1, 1);
EndDate = Trend("GETDATETIME", "Trends Export mimic", "", "Trend1", 1, 2);
Export("GENERATE_DATES", "Tendance", "", "", StartDate, EndDate, "");
End Sub
SV_SCADABasic_fr 486
Exemple EXPORT_LOG
Appliqué à
Dim cLineSeparator As Str;
Dim cColSeparator As Str;
Const ALARM_ON = 1, ALARM_OFF = 2, ALARM_ON_NACK = 4, ALARM_OFF_NOTACK = 8;
Const ALARM_ON_ACK = 16, ALARM_OFF_ACK = 32, ALARM_NOT_ACCESSIBLE = 64, ALARM_INHIBITED =
128;
Const ALARM_PROGRAM_MASKED = 256, ALARM_VARAIBLE_MASKED = 512, ALARM_USER_MASKED = 1024,
ALARM_EXPRESSION_MASKED = 2048;
Const ALARM_TAKEN_INTO_ACCOUNT = 4096, BIT_TO_0 = 8192, BIT_TO_1 = 16384, BIT_UNAVAILABLE
= 32768;
Const ACTION_COMMAND = 65536, ACTION_ACKNOWLEDGE = 131072, ACTION_LOGONOFF = 262144,
ACTION_EXECUTE_PROGRAM = 524288;
Const ACTION_MASK = 1048576;
Sub Main ()
'-------- Initialise global variables
cLineSeparator = Chr(13);
cColSeparator = "'";
'-------- Set up event that is triggered when Export_trend is complete
Event("ADDPROG", "SVB.ExportLogStatus", "S>S", "E.svb", "", "OnChangeOfStatus");
End Sub
dEndTime = DateTimeValue();
dStartTime = dEndtime - 3600000; ' Current time less 1 hour
llEvents = ALARM_ON + ALARM_OFF + BIT_TO_0 + BIT_TO_1;
iResult = Export_Log("GETRECORD", "Loglist01", dStartTime, dEndTime, llEvents, 0, 29,
"", "@SVB.ExportLogStatus", cLineSeparator, cColSeparator, 0, "#D/#M/#Y|#h:#m:#s|#E|#T",
"Date|Time|Event|Title");
'-------- Check return and, if a previous request is still running, cancel it and clear
buffer
If(iResult != 0) Then
Print("Result != 0, historic request not sent");
If(iResult == -30) Then
Export_Log("CANCEL");
SV_SCADABasic_fr 487
Export_Log("DISPOSE");
End If
End If
End Sub
dEndTime = DateTimeValue(); dStartTime = dEndtime - 3600000; ' Current time less 1 hour
llEvents = ALARM_ON + ALARM_OFF + BIT_TO_0 + BIT_TO_1;
llStatFlag = DUR_AT_0 + DUR_AT_1 + DUR_AT_NS;
iResult = Export_Log("GETSTATISTIC", "Loglist01", dStartTime, dEndTime, llEvents, 0,
29, "", "@SVB.ExportLogStatus", cLineSeparator, cColSeparator, 0, 0, llStatFlag, 0, 1,
0);
'-------- Check return and, if a previous request is still running, cancel it and clear
buffer
If(iResult != 0) Then
Print("Result != 0, historic request not sent");
If(iResult == -30) Then
Export_Log("CANCEL");
Export_Log("DISPOSE");
End If
End If
End Sub
sStatus = SVB.ExportLogStatus;
If(sStatus==0 || sStatus==4 || sStatus ==5) Then ' Export complete or reached limits
Print("Export_Log complete - status is ", sStatus);
lBufferHandle = Alloc_Buffer(1024);
iResult = 1;
iLineNumber = 1;
While(iResult > 0)
iResult = Export_Log("READBUFFER", lBufferHandle);
If (iResult> 0) Then
BufToExcel(lBufferHandle, cLineSeparator, cColSeparator, "export.xlsx", "ex1",
"APPEND", iLineNumber );
iLineNumber = iLineNumber + iResult;
Print("Exported ",iResult, " lines to Excel");
End If
Delay(1); ' Allow program thread to break in case of overlong processing time
Wend
Print("Total lines = ",iLineNumber);
Export_Log("DISPOSE");
Free_Buffer(lBufferHandle);
Else
If(sStatus==1) Then ' Export running - do nothing
Print("Export_Log running");
Else ' Export failed - cancel and clean up
Print("Export_Log failed - status is ", sStatus);
Export_Trend("CANCEL");
Export_Trend("DISPOSE");
End If
SV_SCADABasic_fr 488
End If
End Sub
SV_SCADABasic_fr 489
Exemple EXPORT_TREND
Appliqué à
Sub Main ()
'-------- Initialise global variables
cLineSeparator = Chr(13);
cColSeparator = "'";
'-------- Set up event that is triggered when Export_trend is complete
Event("ADDPROG", "SVB.Status", "S>S", "E.svb", "", "OnChangeOfStatus");
End Sub
dEndTime = DateTimeValue();
dStartTime = dEndtime - 3600000; ' Current time less 1 hour
iResult = Export_Trend("GETRAW", "SVB.Register01", "", "Unit01", dStartTime, dEndTime,
"SVB.Status", cLineSeparator, cColSeparator, 0);
'-------- Check return and, if a previous request is still running, cancel it and clear
buffer
If(iResult != 0) Then
Print("Result != 0, historic request not sent");
If(iResult == -30) Then
EXPORT_TREND("CANCEL");
EXPORT_TREND("DISPOSE");
End If
End If
End Sub
'-------- Check return and, if a previous request is still running, cancel it and clear
buffer
If(iResult != 0) Then
Print("Result != 0, historic request not sent");
If(iResult == -30) Then
Export_Trend("CANCEL");
Export_Trend("DISPOSE");
End If
End If
End Sub
SV_SCADABasic_fr 490
Dim dStartTime As Double, dEndTime As Double, dStatFlag As Double;
Dim iResult As Integer;
dStatFlag = MIN + MAX + AVE + SUM + DEVIATION + FIRST + LAST + COUNTER + WEIGHTED; '
Add/delete stats as required
dEndTime = DateTimeValue();
dStartTime = dEndtime - 3600000; ' Current time less 1 hour
iResult = Export_Trend("GETSTATISTIC", "SVB.Register01,SVB.Register02", "", "Unit01",
dStartTime, dEndTime, "SVB.Status", cLineSeparator, cColSeparator, 0, dStatFlag );
'-------- Check return and, if a previous request is still running, cancel it and clear
buffer
If(iResult != 0) Then
Print("Result != 0, historic request not sent");
If(iResult == -30) Then
Export_Trend("CANCEL");
Export_Trend("DISPOSE");
End If
End If
End Sub
sStatus = SVB.Status;
If(sStatus==0 || sStatus==4 || sStatus ==5) Then ' Export complete or reached limits
Print("Trend_Export complete - status is ", sStatus);
lBufferHandle = Alloc_Buffer(1024);
iResult = 1;
iLineNumber = 1;
While(iResult > 0)
iResult = Export_Trend("READBUFFER", lBufferHandle);
If (iResult> 0) Then
BufToExcel(lBufferHandle, cLineSeparator, cColSeparator, "export.xlsx", "ex1",
"APPEND", iLineNumber );
iLineNumber = iLineNumber + iResult;
Print("Exported ",iResult, " lines to Excel");
End If
SV_SCADABasic_fr 491
Wend
Print("Total lines = ",iLineNumber);
Export_Trend("DISPOSE");
Free_Buffer(lBufferHandle);
Else
If(sStatus==1) Then ' Export running - do nothing
Print("Trend_Export running");
Else ' Export failed - cancel and clean up
Print("Trend_Export failed - status is ", sStatus);
Export_Trend("CANCEL");
Export_Trend("DISPOSE");
End If
End If
End Sub
SV_SCADABasic_fr 492
Exemple EXPRESSION
Appliqué à
Cet exemple illustre plusieurs modes de la commande EXPRESSION.
'Database variables used:
'@STATE01 of type STATE
'@STATE02 of type STATE
'@AUTORISATION of type STATE
'@REGISTER01 of type REGISTER
'@REGISTER02 of type REGISTER
SUB expressionimportfiletemp()
'Declare variables
DIM intResult as integer;
DIM strString01 as Str;
strString01 = "file model expressions.txt";
intResult = EXPRESSION("IMPORT_FILE_TEMP",strString01);
END SUB
SUB expressionimportbuffertemp()
'Declare variables
DIM lngBuffer as long;
DIM intResult as integer;
DIM strString01 as Str;
strString01 = "EXPRM,MODEL 01,STATE01 or STATE02,,,0,0,expression model no01";
lngBuffer = ALLOC_BUFFER(1000);
SUB expressionimportfileonvar()
'Declare variables
DIM intResult as integer;
DIM strString01 as Str;
strString01 = "file expressions.txt";
intResult = EXPRESSION("IMPORT_FILE_ONVAR",strString01);
END SUB
SUB expressionimportbufferonvar()
'Declare variables
DIM lngBuffer as long;
DIM intResult as integer;
DIM strString01 as Str;
strString01 = "EXPRV,@STATE02,NOT @STATE01 ,,,0,0,comment expression01";
SV_SCADABasic_fr 493
lngBuffer = ALLOC_BUFFER(1000);
SV_SCADABasic_fr 494
Exemple FCLOSE et FOPEN
Appliqué à
Cet exemple illustre les commandes d'ouverture et de fermeture de fichiers.
'This program uses a file "util.txt" that is stored in the TP folder of the project
SUB main()
DIM intResult as integer;
DIM intEOF as integer;
DIM StrAccess as Str;
DIM StrFilename as Str;
DIM StrLine as Str;
StrFilename = "util.txt"; 'name of the file to open in the TP folder
'For a full path put "\\" instead of "\" => "C:\\SV\\util.txt" '
StrAccess = "r"; 'opening in Read mode
SV_SCADABasic_fr 495
Exemple FCOPY
Appliqué à
'-------- Copy file from source to destination
Sub FCOPY_EX1()
Dim cSource As Str, cDestination As Str;
Dim iReturn As Integer;
cSource = "MyFile.dat";
cDestination = "NewFile.dat";
iReturn = Fcopy(cSource, cDestination);
End Sub
SV_SCADABasic_fr 496
Exemple FMOVE
Appliqué à
'-------- Move file from source to destination
Sub FMOVE_EX1()
Dim cSource As Str, cDestination As Str;
Dim iReturn As Integer;
cSource = "MyFile.dat";
cDestination = "NewFile.dat";
iReturn = FMOVE(cSource, cDestination);
End Sub
SV_SCADABasic_fr 497
Exemple FORMAT
Appliqué à
Cet exemple montre comment la commande FORMAT affiche différentes chaînes de caractères.
SUB MAIN ()
DIM count as integer;
DIM ch97 as integer;
DIM ch122 as integer;
DIM s as str;
DIM fp as double;
'
count = -9234;
ch97 = 97;
ch122 = 122;
s="Hello world!";
fp = 251.7366;
'
'Display integer
PRINT("Display integer");
PRINT(FORMAT("Decimal: %d", count)); 'Decimal: -9234
PRINT(FORMAT("Decimal: %i", count)); 'Decimal: -9234
PRINT(FORMAT("Justified: %.6d", count)); 'Justified: -009234
PRINT(FORMAT("Unsigned: %u", count)); ' Unsigned: 4294958062
'
'Display hexadecimal
PRINT("Display hexadecimal");
PRINT(FORMAT("Hex: %Xh", count)); 'Hex: FFFFDBEEh
PRINT(FORMAT("hex: 0x%x", count)); 'hex: 0xffffdbee
'
'Display octal
PRINT("Display octal");
PRINT(FORMAT("Octal: %o", count)); 'Octal: 37777755756
'
'Display characters
PRINT("Display characters");
PRINT(FORMAT("Character code 97: %c", ch97)); 'a
PRINT(FORMAT("Character code 97: %C", ch97)); 'a
PRINT(FORMAT("Character code 122: %c", ch122)); 'z
'
'Display string / text
PRINT("Display string / text");
PRINT(FORMAT("%s", s)); 'Hello world!
PRINT(FORMAT("%.9s", s)); 'Hello wor
'
'Display real number
PRINT("Real numbers:");
PRINT(FORMAT("%f", fp)); '251.736600
PRINT(FORMAT("%.2f ",fp)); '251.74
PRINT(FORMAT("%e", fp)); '2.517366e+002
PRINT(FORMAT("%E", fp)); '2.517366E+002
END SUB
SV_SCADABasic_fr 498
Exemple FORMULA
Appliqué à
Exemple 1
Cet exemple illustre les modes de la commande FORMULA.
Pour un chemin complet, utilisez "\\" au lieu de "\", par exemple "C:\\SV\\util.txt".
Toujours positionner un caractère de retour à la fin de chaque ligne dans FORMULA.DAT, autrement
la formule est ignorée.
'A text file "importFormula.txt" is in the TP folder file,
' formatted like FORMULA.DAT.
'Database variables used in the formulas:
'@BRCH1.REGISTER01 of type REGISTER
'@BRCH2.REGISTER01 of type REGISTER
'@BRCH3.REGISTER01 of type REGISTER
'@BRCH1.REGISTER02 of type REGISTER
'@BRCH2.REGISTER02 of type REGISTER
'@BRCH3.REGISTER02 of type REGISTER
'@BRCH1.REGISTER03 of type REGISTER
'@BRCH2.REGISTER03 of type REGISTER
'@BRCH3.REGISTER03 of type REGISTER
SUB formulaadd()
'Declare variables
DIM lngbuffer1 as long;
DIM intResult as integer;
DIM strFilename as Str;
strFilename = "Formula.txt";
lngbuffer1 = filetobuf(strFilename);
intResult = FORMULA("ADD",lngbuffer1);
FREE_BUFFER(lngbuffer1);
END SUB
SUB formulaenable()
'Declare variables
DIM intResult as integer;
intResult = FORMULA("ENABLE", "formula01", "BRCH1");
END SUB
SUB formuladisable()
'Declare variables
DIM intResult as integer;
ntResult = FORMULA("DISABLE", "formula01", "BRCH1");
END SUB
SUB formuladel()
'Declare variables
DIM intResult as integer;
intResult = FORMULA("DEL", "formula01", "BRCH1");
END SUB
SV_SCADABasic_fr 499
'Mode DELALL or Mode 4 (syntax 2)
SUB formuladelall()
'Declare variables
DIM intResult as integer;
intResult = FORMULA("DELALL");
END SUB
SUB formuladelall2()
'Declare variables
DIM intResult as integer;
'intResult = FORMULA("DELALL",3); 'Delete Computational type formulas
intResult = FORMULA("DELALL",14);
END SUB
Exemple 2
'This program uses a file "util.txt" that is stored in the TP folder of the project
SUB main()
DIM intResult as integer;
DIM intEOF as integer;
DIM StrAccess as Str;
DIM StrFilename as Str;
DIM StrLine as Str;
StrFilename = "util.txt"; 'name of the file to open in the TP folder
SV_SCADABasic_fr 500
Exemple FPUTC
Appliqué à
Cet exemple illustre les modes de la commande FPUTC.
Pour un chemin complet, utilisez "\\" au lieu de "\", par exemple "C:\\SV\\tool.txt".
SV_SCADABasic_fr 501
Exemple FPUTS
Appliqué à
Cet exemple illustre les modes de la commande FPUTS.
Pour un chemin complet, utilisez "\\" au lieu de "\", par exemple "C:\\SV\\util.txt".
'This program uses a file "tool.txt" stored in the TP folder of the project
SUB main()
DIM intResult as integer;
DIM intEOF as integer;
DIM StrAccess as Str;
DIM StrFilename as Str;
DIM StrChar1 as Str;
StrFilename = "tool.txt"; [not doc1.txt]
'name of the file to open in the TP folder
SV_SCADABasic_fr 502
Exemple FSEEK
Appliqué à
Cet exemple illustre les modes de la commande FSEEK.
Pour un chemin complet, utilisez "\\" au lieu de "\".
PRINT(FGETC (StrFilename,2));
FSEEK(StrFilename,3,0);
PRINT(FGETC (StrFilename,2));
SV_SCADABasic_fr 503
Exemple FTP
Applies To
This program copies a file from and then to a file transfer site.
Sub Down ()
Dim cFTPsource As Str, cLocalDestn As Str;
Dim cName As Str, cPass As Str, cStatusVar As Str;
Dim iReturn As Integer;
cFTPsource = "ftp://ftp.xxxxxxxx.com/test.txt";
cLocalDestn = "test.txt";
cName = "xyz123";
cPass = "abc890";
cStatusVar = "FTPSTATUS";
Sub Up ()
Dim cFTPdestn As Str, cLocalSource As Str;
Dim cName As Str, cPass As Str, cStatusVar As Str;
Dim iReturn As Integer;
cFTPdestn = "ftp://ftp.xxxxxxxx.com/test.txt";
cLocalSource = "test.txt";
cName = "xyz123";
cPass = "abc890";
cStatusVar = "FTPSTATUS";
SV_SCADABasic_fr 504
Exemple GETARG
Appliqué à
Exemple 1
Cet exemple utilise chaque mode de la commande GETARG.
'database variables
'TEXT01 type text
'TEXT02 type TEXT
'TEXT03 type TEXT
'TEXT04 type TEXT
SUB main()
'How the example works: a branch must be specified
getargmainbranch();
END SUB
SUB getargarg1()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG1");
@text01 = strReturn;
END SUB
SUB getargarg2()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG2");
@text01 = strReturn;
END SUB
SUB getargarg3()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG3");
@text01 = strReturn;
END SUB
SUB getargarg4()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG4");
@text01 = strReturn;
END SUB
SV_SCADABasic_fr 505
'Mode ARG5 or Mode 5 (syntax 1)
SUB getargarg5()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG5");
@text01 = strReturn;
END SUB
SUB getargarg6()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG6");
@text01 = strReturn;
END SUB
SUB getargarg7()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG7");
@text01 = strReturn;
END SUB
SUB getargarg8()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG8");
@text01 = strReturn;
END SUB
SUB getargsource()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("SOURCE");
@text01 = strReturn;
END SUB
SUB getargprogram()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("PROGRAM");
@text01 = strReturn;
END SUB
SUB getargbranch()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("BRANCH");
@text01 = strReturn;
END SUB
SV_SCADABasic_fr 506
'Mode FUNCTION or Mode 13 (syntax 1)
SUB getargfunction()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("FUNCTION");
@text01 = strReturn;
END SUB
SUB getargwindow()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("WINDOW");
@text01 = strReturn;
END SUB
SUB getargwbranch()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("WBRANCH");
@text01 = strReturn;
END SUB
SUB getargidentifier()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("IDENTIFIER");
@text01 = strReturn;
END SUB
SUB getargvarname()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("VARNAME");
@text01 = strReturn;
END SUB
SUB getargvarvalue()
'Declare the return code
DIM sngReturn as Single;
sngReturn = GETARG("VARVALUE");
@text02 = TOC(sngReturn);
END SUB
SUB getargvarstatus()
'Declare the return code
DIM Current_Region as integer;
Current_Region= GETARG("VARSTATUS");
END SUB
SV_SCADABasic_fr 507
SUB getargkeytype()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("KEYTYPE");
@text04 = strReturn;
'in the example: SC => SHIFT+CTRL
END SUB
SUB getargkeycode()
'Declare the return code
DIM intReturn as integer;
intReturn = GETARG("KEYCODE");
PRINT(intReturn);
@text03 = TOC(intReturn);
'In the example: 3
END SUB
SUB getargcrontype()
'Declare the return code
DIM intReturn as integer;
intReturn = GETARG("CRONTYPE");
PRINT(intReturn);
@text01 = TOC(intReturn);
END SUB
SUB getargcrondate()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("CRONDATE");
PRINT(strReturn);
@text02 = strReturn;
END SUB
SUB getargcrontime()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("CRONTIME");
PRINT(strReturn);
@text03 = strReturn;
END SUB
SUB getargcron()
DIM strReturn as Str;
DIM intReturn as integer;
intReturn = GETARG("CRONTYPE");
PRINT(intReturn);
@text01 = TOC(intReturn);
strReturn = GETARG("CRONDATE");
PRINT(strReturn);
@text02 = strReturn;
strReturn = GETARG("CRONTIME");
PRINT(strReturn);
@text03 = strReturn;
END SUB
SV_SCADABasic_fr 508
'Mode ARG9 or Mode 25 (syntax 1)
SUB getargarg9()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG9");
@text01 = strReturn;
END SUB
SUB getargarg10()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG10");
@text01 = strReturn;
END SUB
SUB getargarg11()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG11");
@text01 = strReturn;
END SUB
SUB getargarg12()
'Declare the return code
DIM strReturn as Str;
strReturn = GETARG("ARG12");
@text01 = strReturn;
END SUB
Exemple 2
Cet exemple affiche tous les arguments appelés par la fonction :
sub func()
' Display of all the calling arguments
PRINT("MAINBRANCH = \"",GETARG("MAINBRANCH"),"\"");
PRINT("ARG1 = \"",GETARG("ARG1"),"\"");
PRINT("ARG2 = \"",GETARG("ARG2"),"\"");
PRINT("ARG3 = \"",GETARG("ARG3"),"\"");
PRINT("ARG4 = \"",GETARG("ARG4"),"\"");
PRINT("ARG5 = \"",GETARG("ARG5"),"\"");
PRINT("ARG6 = \"",GETARG("ARG6"),"\"");
PRINT("ARG7 = \"",GETARG("ARG7"),"\"");
PRINT("ARG8 = \"",GETARG("ARG8"),"\"");
PRINT("SOURCE = \"",GETARG("SOURCE"),"\"");
PRINT("PROGRAM = \"",GETARG("PROGRAM"),"\"");
PRINT("BRANCH = \"",GETARG("BRANCH"),"\"");
PRINT("FUNCTION = \"",GETARG("FUNCTION"),"\"");
PRINT("WINDOW = \"",GETARG("WINDOW"),"\"");
PRINT("WBRANCH = \"",GETARG("WBRANCH"),"\"");
PRINT("IDENTIFIER = \"",GETARG("IDENTIFIER"),"\"");
PRINT("VARNAME = \"",GETARG("VARNAME"),"\"");
PRINT("VARVALUE = \"",GETARG("VARVALUE"),"\"");
PRINT("VARSTATUS = \"",GETARG("VARSTATUS"),"\"");
PRINT("KEYTYPE = \"",GETARG("KEYTYPE"),"\"");
SV_SCADABasic_fr 509
PRINT("KEYCODE = \"",GETARG("KEYCODE"),"\"");
PRINT("CRONTYPE = \"",GETARG("CRONTYPE"),"\"");
PRINT("CRONDATE = \"",GETARG("CRONDATE"),"\"");
PRINT("CRONTIME = \"",GETARG("CRONTIME"),"\"");
END SUB
SV_SCADABasic_fr 510
Exemple HARDCOPY
Appliqué à
Ce programme illustre les modes de la commande HARDCOPY.
'Database variables:
'@ACTIVATION.STATE of Type STATE
SUB hardcopyscreen()
DIM intResult as integer;
intResult = HARDCOPY("SCREEN");
END SUB
SUB hardcopyoption()
DIM intResult as integer;
intResult = HARDCOPY("OPTION",1,1); 'Adapt to the page
'intResult = HARDCOPY("OPTION",1,2); 'Full use of page
'intResult = HARDCOPY("OPTION",1,3); 'Scale factor mode
'intResult = HARDCOPY("OPTION",2,2); 'Reduced by 50% X
'intResult = HARDCOPY("OPTION",3,2); 'Reduced by 50% Y
'intResult = HARDCOPY("OPTION",5,"Hardcopy coulour"); 'Box title
'intResult = HARDCOPY("OPTION",6,"Copying in progress"); 'Message
'intResult = HARDCOPY("OPTION",9,"Hardcopy done"); 'Button text
'intResult = HARDCOPY("SCREEN");
END SUB
SUB hardcopypreviouswindow()
DIM intResult as integer;
intResult = HARDCOPY("PREVIOUSWINDOW");
END SUB
Pour le mode 4, la fenêtre qui a perdu son focus ne doit pas être cachée ou recouverte par une
fenêtre ayant un focus.
SV_SCADABasic_fr 511
Exemple HISTORY
Appliqué à
Exemple 1
Ce programme extrait des données historiques d'un fichier texte :
'Program "EXTRACT1"
SUB Main ()
DIM ret as long;
DIM hd as double;
' Loading of "EXTRACT2" if not loaded :
If (Program ("Is_loaded", "EXTRACT2", "") == 0) Then
Program ("Preload", "EXTRACT2", "");
End if;
' Programing of execution of function "EndExtract"
' of the program "EXTRACT2" on switch to 1 of bit
' "BitExtract" :
Event ( "ADD", "BitExtract", 1, "EXTRACT2", "","EndExtract");
' Export of the trend variable "Valve1" in the
' file "C:\EXTRACT.TXT". The request for export
' is only valid for values archived in the running
' hour. The internal variables "BitExtract"
' (bit) and "ResultExtract" (register) must exist.
hd = DateTimeValue ();
ret = HISTORY ( "GetTrend", "Valve1", hd -3600000,hd, "C:\\EXTRACT.TXT", 0,
"#D/#M/###Y,#h:#m:#s.##l, #V", "BitExtract", "ResultExtract" );
If (ret == 0) Then
Print ("Error on GetTrend...");
Event ("DEL", "EndExtract", 1);
Exit SUB;
End If
END SUB
'Program "EXTRACT2"
SUB EndExtract ()
Print ("Export of variable Valve1 finished :");
If (ResultExtract < 0) Then
Print ("Error code = ", ResultExtract);
Else
Print (ResultExtract, "value(s) exported.");
End If
' Cancellation of the release :
Event ("DEL", "BitExtract", 1);
END SUB
Exemple de fichier "C:\EXTRACT.TXT" après export :
23/03/1994, 14:01:03.130, ?
23/03/1994, 14:04:45.520, 12.3
23/03/1994, 14:07:11.890, 11.9
23/03/1994, 14:12:52.460, 11.7
23/03/1994, 14:19:02.780, 11.4
23/03/1994, 14:25:59.340, 11
23/03/1994, 14:40:44.520, 11.2
23/03/1994, 14:56:31.200, 11.5
Le nombre maximum de valeur pouvant être exportées en même temps est de 4000. Pour exporter
plus de 4000 valeurs, l'instruction HISTORY peut être utilisée un certain temps, dépendant du
résultat du fichier.
Exemple 2
Ces programmes importent des données historiques :
SV_SCADABasic_fr 512
'Program "IMPORT1"
' Set up event for change of count variable
SUB Main()
Event("DELALL");
Event("ADD", "IMPORT.COUNT.MV1", "ALL>S", "Import.pvb", "","CountMV1");
END SUB
SV_SCADABasic_fr 513
Exemple LAN Configuration Multipostes
Appliqué à
Exemple 1
Cet exemple illustre les modes de la commande LAN.
'Structure:
'An association of two producers
'The number of the association is: 1
'The number of the local server station is: 12
'The number of the remote server station is: 11
SUB main()
langetlists();
END SUB
SUB lanconnect()
DIM strResult as Str;
strResult = LAN("CONNECT","SERVER11S0");
END SUB
Exemple 2
Cet exemple montre l'utilisation de LAN pour commuter les serveurs réseau.
' NETWORK CONFIGURATION
' An association of 2 servers
' The association number = 1
' The number of the local server station is 12
' The number of the remote server station is 11
SUB PASSIVE_TO_ACTIVE()
IF (SYSTEM.STATION_NUMBER == 12) THEN
LAN("PRODUCT_Mode",1,1,11);
ELSE
LAN("PRODUCT_Mode",1,1,12);
END IF
SV_SCADABasic_fr 514
END SUB
SUB ACTIVE_TO_PASSIVE()
IF (SYSTEM.STATION_NUMBER == 12) THEN
LAN("PRODUCT_Mode",1,0,11);
ELSE
LAN("PRODUCT_Mode",1,0,12);
END IF
END SUB
SV_SCADABasic_fr 515
Exemple LANGUAGE
Appliqué à
Cet exemple illustre les modes de la commande LANGUAGE.
Vous devez activer le mode Bilinguisme dans le menu : Configuration.Projet.Paramètres.
SUB languagesetL1()
DIM intResult as integer;
intResult = LANGUAGE("SET_L1",1);
END SUB
SUB languagesetL2()
DIM intResult as integer;
intResult = LANGUAGE("SET_L2",1);
END SUB
SUB languagetoggle()
DIM intResult as integer;
intResult = LANGUAGE("TOGGLE",1);
END SUB
SV_SCADABasic_fr 516
Exemple LISTBOX
Appliqué à
This example contains a set of functions to support a pair of List-box form controls using the LISTBOX
instruction.
SUB Main()
END SUB
'declare variables:
SUB lbxSel()
DIM lRet As Long;
DIM sLbxText As Str;
DIM sLbxText1 As Str;
DIM sLbxData As Str;
DIM sLbxData1 As Str;
SV_SCADABasic_fr 517
SET("LbxCount" , LISTBOX ( "COUNT", "ctrl","","lbx") );
SET("LbxCount1" , LISTBOX ( "COUNT", "ctrl","","lbx1"));
SENDLIST ("BLOC");
END SUB
SV_SCADABasic_fr 518
Exemple LOGDISPLAY
Appliqué à
Ce programme illustre les modes de l'instruction LOGDISPLAY
Pour identifier l'index de la fenêtre de consignations, sélectionner le menu Affichage.Explorateur
Graphique en mode édition.
'Use of a mimic MENU with a Log Display animation.
'The Log Display is for index REPLOG01.
'Configuration:
' Create a domain DOM01
' Create a nature NAT01
'Database variables used:
' @PRIORITY.MIN of type REGISTER
' @PRIORITY.MAX of type REGISTER
' @VALIDATE of type STATE
' @CODERETURN of type STATE
' @RETURN of type TEXT
SUB logdisplaybegin()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("BEGIN","MENU","","REPLOG01");
END SUB
SUB logdisplayafter()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("AFTER","MENU","","REPLOG01");
END SUB
SUB logdisplayend()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("END","MENU","","REPLOG01");
END SUB
SUB logdisplaydomain()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("DOMAIN","MENU","","REPLOG01","DOM01");
END SUB
SUB logdisplaydomainnofilter()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("DOMAIN","MENU","","REPLOG01","");
SV_SCADABasic_fr 519
END SUB
SUB logdisplayNature()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("Nature","MENU","","REPLOG01","NAT01");
END SUB
SUB logdisplayNaturenofilter()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("Nature","MENU","","REPLOG01","");
END SUB
SUB logdisplaysetdatetime()
'Declare return code
DIM intReturn as integer;
DIM dblHoroDebut as double;
DIM dblHoroFin as double;
dblTimeStart = DATETIMEVALUE("21/06/2002", "17:05:12:654");
dblTimeEnd = DATETIMEVALUE("21/06/2002", "17:10:12:654");
intReturn = LOGDISPLAY("SETDATETIME","MENU","","REPLOG01",dblTimeStart,dblTimeEnd) ;
END SUB
SUB logdisplayprintall()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("PRINTALL","MENU","","REPLOG01");
END SUB
SUB logdisplayprintselected()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("PRINT_SELECTED","MENU","","REPLOG01");
END SUB
SUB logdisplayprintdisplay()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("PRINT_DISPLAY","MENU","","REPLOG01");
END SUB
SV_SCADABasic_fr 520
SUB logdisplayfirst()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("FIRST","MENU","","REPLOG01");
END SUB
SUB logdisplaylast()
'Declare return code
DIM intReturn as integer;
intReturn = LOGDISPLAY("LAST","MENU","","REPLOG01");
END SUB
SV_SCADABasic_fr 521
Exemple LOGICAL
Appliqué à
Exemple 1
Cet exemple illustre les modes de la commande LOGICAL.
'Mode NOT or Mode 0 (syntax 1)
SUB logicalnot()
'Declare variables
DIM lngReturn as long;
DIM lngValue as integer;
lngValue = 1; '00.....0001
lngReturn = LOGICAL("NOT",lngValue );
PRINT("NOT(",lngValue,")= ",lngReturn);
SUB logicaland()
'Declare variables
DIM lngReturn as long;
DIM lngValue1 as integer;
DIM lngValue2 as integer;
lngValue1 = 1;'00.....0001
lngValue2 = 3;'00.....0011
'AND= 00.....0001
lngReturn = LOGICAL("AND",lngValue1,lngValue2);
PRINT(lngValue1," AND ",lngValue2," = ",lngReturn);
SUB logicalxor()
'Declare variables
DIM lngReturn as long;
DIM lngValue1 as integer;
DIM lngValue2 as integer;
lngValue1 = 1;'00.....0001
lngValue2 = 3;'00.....0011
'XOR= 00.....0010
lngReturn = LOGICAL("XOR",lngValue1,lngValue2);
PRINT(lngValue1," XOR ",lngValue2," = ",lngReturn);
'Display "1 XOR 3 = 2"
END SUB
SUB logicalor()
'Declare variables
DIM lngReturn as long;
DIM lngValue1 as integer;
DIM lngValue2 as integer;
SV_SCADABasic_fr 522
lngValue1 = 1;'00.....0001
lngValue2 = 3;'00.....0011
'OR= 00.....0011
lngReturn = LOGICAL("OR",lngValue1,lngValue2);
PRINT(lngValue1," OR ",lngValue2," = ",lngReturn);
'Display "1 OR 3 = 3"
END SUB
lngValue1 = 1;'00.....0001
lngValue2 = 3; 'shift by 3 digits
'SHIFT_LEFT = 00.....1000
lngReturn = LOGICAL("SHIFT_LEFT",lngValue1,lngValue2);
PRINT(lngValue1," SHIFT_LEFT ",lngValue2," = ",lngReturn);
'Display "1 SHIFT_LEFT 3 = 8"
END SUB
SUB logicalshiftright()
'Declare variables
DIM lngReturn as long;
DIM lngValue1 as integer;
DIM lngValue2 as integer;
lngValue1 = 8; '00.....1000
lngValue2 = 3; 'shift b 3 digits
'SHIFT_RIGHT = 00.....0001
lngReturn = LOGICAL("SHIFT_RIGHT",lngValue1,lngValue2);
PRINT(lngValue1," SHIFT_RIGHT ",lngValue2," = ",lngReturn);
'Display "8 SHIFT_RIGHT 3 = 1"
END SUB
SUB logicalmodulo()
'Declare variables
DIM lngReturn as long;
DIM lngValue1 as integer;
DIM lngValue2 as integer;
lngValue1 = 14;
lngValue2 = 12;
'Calculate modulo: 14 = 12 + 2
'14 equals 2 modulo 12
lngReturn = LOGICAL("MODULO",lngValue1,lngValue2);
PRINT(lngValue1," = ",lngReturn," (mod ",lngValue2,")");
'Display "14 = 2 (mod 12)"
END SUB
Exemple 2
Cet programme montre l'utilisation de l'instruction LOGICAL.
SUB main()
DIM x as long;
DIM y as long;
x = 622;
SV_SCADABasic_fr 523
y = 217;
print ("x = ", x);
print ("y = ", y);
print (" not(x) =", logical("not", x));
print (" x and y =", logical("and", x, y));
print (" x xor y =", logical("xor", x, y));
print (" x or y =", logical("or", x, y));
print (" x << 2 =", logical("shift_left", x, 2));
print (" x >> 2 =", logical("shift_right", x, 2));
print (" x modulus 7 =", logical("modulo", x, 7));
END SUB
The program will display:
x = 622
y = 217
not(x) =-623
x and y =72
x xor y =695
x or y =767
x << 2 =2488
x >> 2 =155
x modulus 7
SV_SCADABasic_fr 524
Exemple MULTIMEDIA
Appliqué à
Cet exemple illustre les modes de la commande MULTIMEDIA.
Il utilise :
• Un synoptique : MENU
• Un fichier wave Alarm.wav du dossier TP
• Un fichier avi demo.avi du dossier TP
SV_SCADABasic_fr 525
Exemple OPTIONLIST
Applies To
This example contains a set of functions to support a pair of Option-button list form controls using the
OPTIONLIST instruction.
SUB Main()
END SUB
'declare variables:
SUB optSel()
DIM lRet As Long;
DIM soptText As Str;
DIM soptText1 As Str;
DIM soptData As Str;
DIM soptData1 As Str;
DIM lRet2 As Long;
SV_SCADABasic_fr 526
soptText1 = OPTIONLIST ( "GETTEXT", "ctrl","","opt1", lRet);
soptData = OPTIONLIST ( "GETUSERDATA", "ctrl","","opt", lRet);
soptData1 = OPTIONLIST ( "GETUSERDATA", "ctrl","","opt1", lRet);
lRet = OPTIONLIST ( "COUNT", "ctrl","","opt");
lRet = OPTIONLIST ( "COUNT", "ctrl","","opt1");
SV_SCADABasic_fr 527
Exemple POPULATION
Appliqué à
Cette routine créé un filtre et affiche sa définition :
SUB Main ();
DIM HB As Long;
'--------- Create buffer
HB = Alloc_Buffer(4096);
'--------- Define population in buffer
Seq_Buffer("PUT_LINE",HB,"POPULATION,23,POP1,0,0");
Seq_Buffer("PUT_LINE",HB,"POPDEF,TATT1,IN,ZONE1");
Seq_Buffer("PUT_LINE",HB,"POPDEF,TATT1,IN,ZONE2");
Seq_Buffer("PUT_LINE",HB,"POPDEF,TYPE,OUT,4");
'--------- Create population
Population("CREATE", HB);
Population("DUMP", "POP1"); ' Verify
Free_Buffer(HB);
END SUB
SV_SCADABasic_fr 528
Exemple PRINTER
Appliqué à
Exemple 1
Ce programme illustre les modes de la commande PRINTER.
const printer_no_primary = 1;
const printer_no_secondary = 2;
SUB printeroff()
DIM intResult as integer;
intResult = PRINTER("OFF",printer_no_primary);
END SUB
SUB printeron()
DIM intResult as integer;
intResult = PRINTER("ON",printer_no_primary);
END SUB
SUB printerclear()
DIM intResult as integer;
intResult = PRINTER("CLEAR",printer_no_primary);
END SUB
SUB printergetnb()
DIM intResult as integer;
intResult = PRINTER("GETNB",printer_no_primary);
Print("Result of GETNB is: ",intResult);
END SUB
SUB printerstatus()
DIM intResult as integer;
intResult = PRINTER("STATUS",printer_no_primary);
Print("Result of STATUS is: ",intResult);
END SUB
SUB printerselect()
DIM intResult as integer;
intResult = PRINTER("SELECT",printer_no_primary,printer_no_secondary);
END SUB
SUB printerflush()
DIM intResult as integer;
intResult = PRINTER("FLUSH",printer_no_primary);
END SUB
Exemple 2
SV_SCADABasic_fr 529
Ce programme créé un filtre et affiche sa définition :
SUB Main ();
DIM HB As Long;
'--------- Create buffer
HB = Alloc_Buffer(4096);
'--------- Define PRINTER in buffer
Seq_Buffer("PUT_LINE",HB,"PRINTER,23,POP1,0,0");
Seq_Buffer("PUT_LINE",HB,"POPDEF,TATT1,IN,ZONE1");
Seq_Buffer("PUT_LINE",HB,"POPDEF,TATT1,IN,ZONE2");
Seq_Buffer("PUT_LINE",HB,"POPDEF,TYPE,OUT,4");
'--------- Create PRINTER
PRINTER("CREATE", HB);
PRINTER("DUMP", "POP1"); ' Verify
Free_Buffer(HB);
END SUB
SV_SCADABasic_fr 530
Exemple PROGRAM
Appliqué à
Exemple 1
Ce programme illustre les modes de la commande PROGRAM.
'This program uses another program called BEEP.SCB
'that has a function main() and a fonction beepfunction1()
'Mode STOP or Mode 0 (syntax 1)
SUB programstop()
DIM intResult as integer;
intResult = PROGRAM("STOP","beep.SCB","");
END SUB
SUB programstart()
DIM intResult as integer;
intResult = PROGRAM("START","beep.SCB","");
END SUB
SUB programisloaded()
DIM intResult as integer;
intResult = PROGRAM("IS_LOADED","beep.SCB","");
IF(intResult) Then
PRINT("The program is loaded");
END IF
END SUB
SUB programpreload()
DIM intResult as integer;
intResult = PROGRAM("PRELOAD","beep.SCB","");
END SUB
SUB programunload()
DIM intResult as integer;
intResult = PROGRAM("UNLOAD","beep.SCB","");
END SUB
SUB programexecute()
DIM intResult as integer;
intResult = PROGRAM("EXECUTE","beep.SCB","");
END SUB
SUB programfunction()
DIM intResult as integer;
intResult = PROGRAM("FUNCTION","beep.SCB","","beepfunction1");
END SUB
SV_SCADABasic_fr 531
SUB programisfunction()
DIM intResult as integer;
intResult = PROGRAM("IS_FUNCTION","beep.SCB","","beepfunction1");
IF(intResult) Then
PRINT("The function exists");
END IF
END SUB
SV_SCADABasic_fr 532
Exemple RECIPE
Appliqué à
Exemple 1
Ce module utilise les modes READ et CREATE de l'instruction RECIPE.
SUB CopyRecipe (OldID, NewID)
DIM Handle As Long;
DIM OK As Integer;
DIM Title As STR;
Const BufSize 1024;
Handle = Alloc_Buffer (BufSize);
Title = AddString("New Recipe ", System("DATE"));
If (Recipe("READ", OldID, Handle, BufSize-1) ==1) THEN
Recipe("CREATE", Handle, NewID, Title, 1,"Auto");
OK = 1;
Else
OK = 0;
End If
Free_Buffer(Handle);
Return(OK);
END SUB
Exemple 2
Cet exemple envoie une recette et déclenche un événement. Par détection de l'événement, il retourne son
contenu.
DIM handle As Long ;
SUB SendRec()
handle = ALLOC_BUFFER ( 1000);
SET ( "EVTVAR2 " , 0 );
SENDLIST ( 0 );
EVENT ("ADDPROG", "EVTVAR2", 1, "PGMRECIPE", "", "onEvt2");
RECIPE ( "NETWORKBROADCAST" , "REC1" , "LIST2" , handle , "EVTVAR2", 1);
END SUB
SUB onEvt2 ()
DIM ret As Str;
EVENT ("DEL", "", 1, "EVTVAR2", "", "onEvt2");
ret = CGET_BUFFER ( handle , 0 ,255);
print ( ret );
FREE_BUFFER ( handle );
END SUB
SV_SCADABasic_fr 533
Exemple REGION
Appliqué à
Cet exemple configure deux régions afin que des fenêtres précédemment ouvertes par l'animation ou le
programme SCADA Basic apparaissent dans la région
2.
SUB Main()
'Declare variables
DIM Result As INTEGER;
DIM NoOfRegions As INTEGER;
DIM WhichRegion As INTEGER;
DIM SubMode As INTEGER;
SV_SCADABasic_fr 534
Exemple RETURN
Appliqué à
Ce SUB génére une valeur résultant à partie d'une valeur d'entrée.
SUB Main ()
DIM J As Integer;
For (J=1; J<=10; J++)
Print("Factorial ", J, " = ", Factorial(J));
Next J;
END SUB
SV_SCADABasic_fr 535
Exemple SELECTOR
Appliqué à
Exemple 1
Cet exemple illustre chaque mode de la commande SELECTOR.
'All variables that start with "WORKS", whose 2nd branch is "BLOC"
' that end with the code: WORKS.BLOC.*[0-9]$.
'This example requires a mimic "cell" to be loaded, with a Table animation
' whose index is "SELECTOR 1"
SUB filling()
DIM lngbuffer12 as long;
lngbuffer12 = ALLOC_BUFFER (4096);
'The file "SELECTOR .txt" holds a description of fields with
' separators as shown here: ; for columns and \n for lines.
lngbuffer12 = FILETOBUF ("SELECTOR .txt");
SELECTOR ("PUTARRAY","cell","","SELECTOR 1",lngbuffer12,5,0,10,3,";\n");
free_buffer(lngbuffer12);
END SUB
SV_SCADABasic_fr 536
lngBuffer1 = ALLOC_BUFFER (4096);
SV_SCADABasic_fr 537
END SUB
SUB pageup ()
SELECTOR ("SCROLL","cell","","SELECTOR 1","PAGEUP");
updatepcsel ();
END SUB
SUB lineup ()
SELECTOR ("SCROLL","cell","","SELECTOR 1","LINEUP");
updatepcsel ();
END SUB
SUB linedown ()
SELECTOR ("SCROLL","cell","","SELECTOR 1","LINEDOWN");
updatepcsel ();
END SUB
SUB pagedown ()
SELECTOR ("SCROLL","cell","","SELECTOR 1","PAGEDOWN");
updatepcsel ();
END SUB
SUB toend ()
SELECTOR ("SCROLL","cell","","SELECTOR 1","TOEND");
updatepcsel ();
END SUB
SV_SCADABasic_fr 538
END SUB
SV_SCADABasic_fr 539
'Mode SNEXTCELL or Mode 20 (syntax 1)
SV_SCADABasic_fr 540
'Mode SORT or Mode 27 (syntax 7)
Exemple 2
L'exemple suivant affiche les informations à partir d'un fichier contenant des données enregistrées dans
une des unités d'archivage d'une fenêtre de tendance. Le format du fichier peut être vu à partir de
l'extraction suivante :
940211142058, 244
940211142112, 237
940211142113, 230
940211142127, 223
940211142127, 216
940211142141, 209
940211142141, 202
940211142155, 195
Le programme affiche des données dans un synoptique appelé "cell" qui contient un tableau identifié
comme "SELECTOR 1".
' Program SEL.PVB
' Date 21-Mar-93
' Author RJM
SUB Main ()
END SUB
' Load data into Grid. Note the use of \n as a
' line delimiter.
SUB LoadGrid ()
DIM hdl2 As Long;
hdl2 = Filetobuf ("trend.dat");
SELECTOR ("PUTARRAY", "cell", "", "SELECTOR 1",hdl2,0,0, 35, 1, ", \n");
Free_Buffer(hdl2);
END SUB
' Functions to provide scroll facility.
SUB PageUp ()
SELECTOR ("SCROLL", "cell", "", "SELECTOR 1", "PAGEUP");
UPDATE ();
END SUB
SUB PageDown ()
SELECTOR ("SCROLL", "cell", "", "SELECTOR 1","PAGEDOWN");
UPDATE ();
END SUB
SUB LineUp ()
SELECTOR ("SCROLL", "cell", "","SELECTOR 1","LINEUP");
UPDATE ();
END SUB
SUB LineDown ()
SELECTOR ("SCROLL", "cell", "", "SELECTOR 1","LINEDOWN");
UPDATE ();
END SUB
SUB ToStart ()
SELECTOR ("SCROLL", "cell", "", "SELECTOR 1","TOBEGIN");
UPDATE ();
END SUB
SUB ToEnd ()
SELECTOR ("SCROLL", "cell", "", "SELECTOR 1","TOEND");
SV_SCADABasic_fr 541
UPDATE ();
END SUB
' Function to update a database variable to provide an
' indication of the current position of the file
' within the Grid.
SUB Update ()
DIM LStart As Integer;
DIM NblMax As Integer;
DIM Nbl As Integer;
LStart = SELECTOR ("GETLISTART", "cell", "", "SELECTOR 1");
Nblmax = SELECTOR ("GETNBLINEMAX", "cell", "", "SELECTOR 1");
Nbl = SELECTOR ("GETNBLINE", "cell", "", "SELECTOR 1");
pcsel = TOS((LStart*100)/(Nblmax - nbl));
END SUB
sub deselect()
SELECTOR ("ALLSELOFF", "cell", "", "SELECTOR 1");
END SUB
Exemple 3
‘Set the text and background color of a set of cells (from cell 0,0 to 2,2)
SUB PUTCOLOR()
dim col as Long;
dim red as Long;
dim green as Long;
dim blue as Long;
' Set the background color. Calculate the color using the values of the RGB components of
a color
' (each from 0 to 255)
red = TOL(@VARCOL.RED);
green = LOGICAL("SHIFT_LEFT", TOL(@VARCOL.GREEN), 8);
blue = LOGICAL("SHIFT_LEFT", TOL(@VARCOL.BLUE), 16);
col = red + green + blue;
SELECTOR("PUTBACKCOLOR", "GRIDS", "", "GRIDNEW", 0, 0, 2,2, col);
' Set the text color (opposite color of the background).
' Calculate the color using the values of the RGB components of the color (each from 0 to
255)
red = 255 - TOL(@VARCOL.RED);
green = LOGICAL("SHIFT_LEFT", 255 - TOL(@VARCOL.GREEN), 8);
blue = LOGICAL("SHIFT_LEFT", 255 - TOL(@VARCOL.BLUE), 16);
col = red + green + blue;
SELECTOR("PUTTEXTCOLOR", "GRIDS", "", "GRIDNEW", 0, 0, 2,2, col);
END SUB
SV_SCADABasic_fr 542
dim col as long;
col = SELECTOR("GETCELLBACKCOLOR", "GRIDS", "", "GRIDNEW", 0, 0);
' Retrieve the RGB components of the color
@VARCOL.RED = TOS(LOGICAL("AND", col, 255));
@VARCOL.GREEN = TOS(LOGICAL("AND", LOGICAL("SHIFT_RIGHT", col, 8), 255));
@VARCOL.BLUE = TOS(LOGICAL("AND", LOGICAL("SHIFT_RIGHT", col, 16), 255));
END SUB
' Retrieve the variable name of the row currently selected (GRID in "Variable tracking"
mode).
SUB GETVARIABLENAME()
@TEXT1= SELECTOR("GETVARNAME", "GRIDS", "", "GRIDNEW", SELECTOR("SELECTLINE", "GRIDS",
"", "GRIDNEW"));
END SUB
SV_SCADABasic_fr 543
Exemple SEQ_BUFFER
Appliqué à
Exemple 1
Cet exemple utilise les modes de la commande SEQ_BUFFER.
'Mode CLEAR or Mode 1 (syntax 1)
SUB seqbufferclear()
'Declare variables
DIM lngbuffer1 as long;
DIM strline as Str;
DIM strResult as Str;
DIM intResult as integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = "123.34;a string,here;345;123456789;‚t‚\n";
PUT_BUFFER(lngbuffer1, 0, strline);
'Retrieve the buffer contents to display
strResult = CGET_BUFFER(lngbuffer1,0,30,0);
PRINT("The retrieved string is: ",strResult);
'All entries in the buffer are not shown
intResult = SEQ_BUFFER("CLEAR",lngbuffer1) ;
'Retrieve the buffer contents to display
strResult = CGET_BUFFER(lngbuffer1,0,30,0);
PRINT("The retrieved string is: ",strResult);
FREE_BUFFER(lngbuffer1);
END SUB
SUB seqbufferputline()
'Declare variables
DIM lngbuffer1 as long;
DIM strline as Str;
DIM strResult as Str;
DIM intResult as integer;
lngbuffer1 = ALLOC_BUFFER(110);
strline = "123.34;a string here;345;123456789;‚t‚\n";
intResult = SEQ_BUFFER("PUT_LINE",lngbuffer1,strline) ;
'Retrieve the buffer contents to display
strResult = CGET_BUFFER(lngbuffer1,0,30,0);
PRINT("The retrieved string is: ",strResult);
FREE_BUFFER(lngbuffer1);
END SUB
SUB seqbufferbegin()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
SV_SCADABasic_fr 544
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve of the buffer in a type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
SUB seqbufferend()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("END",lngbuffer1);
SEQ_BUFFER ( "SEEKFIELD" ,-1, lngbuffer1 , "\n");
SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
SUB seqbufferfields()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve of buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
SEQ_BUFFER ( "PREVFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
SV_SCADABasic_fr 545
END SUB
SUB seqbufferinsertfield()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM lngbuffer3 as long;
DIM strResult as Str;
DIM strline as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer3 = ALLOC_BUFFER(110);
lngbuffer3 = ALLOC_BUFFER(110);
strline = "123.34;a string, here;345;123456789;‚t‚\n";
PUT_BUFFER(lngbuffer3, 0, strline);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ( "INSERTFIELD" ,2, lngbuffer1 , "\n", lngbuffer3) ;
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
FREE_BUFFER(lngbuffer3);
END SUB
SUB seqbuffercrltocr()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
intResult = SEQ_BUFFER ("CRLFTOCR",lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
SV_SCADABasic_fr 546
SUB seqbuffercrtocrlf()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
intResult = SEQ_BUFFER ("CRTOCRLF",lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
SUB seqbufferlen()
'Declare variables
DIM lngbuffer1 as long;
DIM strResult as Str;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("LEN",lngbuffer1);
PRINT(intResult);
FREE_BUFFER(lngbuffer1);
END SUB
SUB seqbufferasciiansii()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
intResult = SEQ_BUFFER (12,lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve of buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
SV_SCADABasic_fr 547
'Mode ANSITOASCII or Mode 13 (syntax 3)
SUB seqbufferansiiascii()
'Declare variables
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM strResult as Str;
DIM intResult as Integer;
DIM i as integer;
lngbuffer1 = ALLOC_BUFFER(110);
lngbuffer2 = ALLOC_BUFFER(110);
lngbuffer1 = FILETOBUF("tool.txt");
intResult = SEQ_BUFFER ("BEGIN",lngbuffer1);
intResult = SEQ_BUFFER (13,lngbuffer1);
i = 1;
While ( i != 0)
'Read lines
i = SEQ_BUFFER ( "NEXTFIELD" , lngbuffer1 , "\n", lngbuffer2);
'Retrieve buffer as type Str if necessary
strResult = CGET_BUFFER ( lngbuffer2 , 0 , 255 );
PRINT(strResult);
Wend
FREE_BUFFER(lngbuffer1);
FREE_BUFFER(lngbuffer2);
END SUB
Exemple 2
Exemples de la commande SEQ_BUFFER, modes REPLACEFIELD et INSERTFIELD:
SEQ_BUFFER("Clear",hbuf1); 'clear the buffer
Put_Buffer(hbuf1, 0, "123,xyz"); 'insert a string of two fields
PRINT(CGET_BUFFER(hbuf1,0,40,0)); 'shows: 123,xyz
Seq_Buffer("Begin",hbuf1); 'locate pointer at start of buffer
res=SEQ_BUFFER("REPLACEFIELD", 2, hbuf1, ",", "456"); 'insert 456 as field 2
PRINT(CGET_BUFFER(hbuf1,0,40,0)); 'shows: 123,456
res=SEQ_BUFFER("REPLACEFIELD", 2, hbuf1, ",", "456,789"); 'retain: 456, insert: 789
PRINT(CGET_BUFFER(hbuf1,0,40,0)); 'shows: 123,456,789
Opération REPLACEFIELD :
Pour remplacer le champ spécifique "oField_i" avec votre nouveau champ "nField_i", vous pouvez utiliser :
SEQ_BUFFER("REPLACEFIELD", i, Handle, ",", "nField_i");
Opération INSERTFIELD :
Pour insérer votre nouveau champ "nField_i" avant le champ spécifique "oField_i", vous devez utiliser :
SEQ_BUFFER("INSERTFIELD", i, Handle, ",", "nField_i, oField_i");
Pour écrire des textes dans le buffer :
SUB main()
DIM hb As Long; Handle for the buffer
Alloc_Buffer(4096);
Seq_Buffer("PUT_LINE",hb,"POPULATION,23,ID1,0,0,Free_comment");
Seq_Buffer("PUT_LINE",hb,"POPDEF,ID1,TATT1,IN, DOM1");
Seq_Buffer("PUT_LINE",hb,"POPDEF,ID1,TATT1,IN, DOM2");
Seq_Buffer("PUT_LINE",hb,"POPDEF,ID1,TYPE,OUT,4" );
Population("CREATE",hb );
Population("DUMP","ID1") ;'For verification
Station_Filter("APPLY",2,"ID1");
Free_buffer(hb) ;
END SUB
Ce programme boucle à travers une lecture de ligne qui affiche leurs valeurs.
SV_SCADABasic_fr 548
DIM Hdl As Long; ' Contains the string to process
DIM Hdl2 As Long; ' Contains the current line
DIM Hdl3 As Long; ' Contains the current value
SUB Main ()
hdl = 0;
hdl2 = 0;
hdl3 = 0;
END SUB
SUB ReadFields()
DIM i As Integer;
DIM j As Integer;
DIM p As Str;
DIM sep As Str;
DIM sep2 As Str;
If ( hdl == 0 ) Then
hdl = ALLOC_BUFFER ( 16000 );
End If
sep = "\n";
sep2 = ",";
If ( hdl2 == 0 ) Then
hdl2 = ALLOC_BUFFER ( 1000 );
End If
If ( hdl3 == 0 ) Then
hdl3 = ALLOC_BUFFER ( 1000 );
End If
SEQ_BUFFER ( "BEGIN" , hdl ); ' Start position
i = 1;
While ( i != 0) ' Read the lines
i = SEQ_BUFFER ( "NEXTFIELD" , hdl , sep , hdl2, 1000);
p = CGET_BUFFER ( hdl2 , 0 , 255 );
If ( i == 0 ) Then
Break;
End If
j = SEQ_BUFFER ( "BEGIN" , hdl2 );
j = 1;
While ( j != 0)
j = SEQ_BUFFER ( "NEXTFIELD" , hdl2 , sep2 , hdl3 , 1000 );
p = CGET_BUFFER ( hdl3 , 0 , 255 );
PRINT ( p ) ;
Wend
Wend
END SUB
SV_SCADABasic_fr 549
Exemple STATION_FILTER
Appliqué à
Cet exemple utilise la commande STATION_FILTER.
SUB main()
populationcreate();
station_filter("CLEAR",2);
'To check
station_filter("APPLY",2,"POP01");
SUB populationcreate()
DIM strString1 as Str;
DIM lngBuffer as long ;
SUB populationdump()
population("DUMP","POP01");
END SUB
SV_SCADABasic_fr 550
Exemple SUBENDSUB
Appliqué à
Cet exemple montre une main SUB appelant des procédures. Il y a aussi des appels parmi eux, entre
autres des procédures, avec et sans paramètres.
SUB Main()
DIM intResult as integer;
procedure1();
procedure2("parameter1");
intResult = procedure4();
PRINT("Return from Procedure4 = ",intResult);
END SUB
SUB procedure1()
'procedure without parameters
PRINT("Procedure1");
END SUB
SUB procedure2(strParam1)
'procedure with one parameter
PRINT("Procedure2 parameter: ",strParam1);
procedure3("parameter1","parameter2");
END SUB
SUB procedure3(strParam1,strParam2)
'procedure with two parameters
PRINT("Procedure3 parameters: ",strParam1,strParam2);
END SUB
SUB procedure4()
'procedure without parameters
PRINT("Procedure4");
Return(3);
END SUB
Le résultat est :
Procedure1
Procedure2 parameter: parameter1
Procedure3 parameters : parameter1 parameter2
Procedure4
Return from Procedure4 = 3
SV_SCADABasic_fr 551
Exemple SVALA Information d'Alarme
Appliqué à
Exemple 1
Ci-dessous un exemple de la commande SVALA.
Variables de la base de données nécessaires :
Le mode "Main" doit être lancé en premier pour déclencher un événement avant le lancement du module
SvAla1.
SUB Main()
EVENT("ADDPROG","@ALAEND","ALL>1","sval.SCB","","putfile");
END SUB
SUB SvAla1()
DIM GFilter As STR;
DIM GFormat As STR;
DIM GState1 As STR;
DIM GState2 As STR;
DIM GState3 As STR;
DIM GState4 As STR;
DIM GState5 As STR;
DIM GState6 As STR;
DIM Gminmax As STR;
DIM Gmin As STR;
DIM Gmax As STR;
DIM chParam As STR;
chParam = "";
hdbuffer = ALLOC_BUFFER ( 48000 );
hparam = ALLOC_BUFFER ( 4000 );
SV_SCADABasic_fr 552
GMax="29";
chParam = ADDSTRING(chParam , GMax);
'Priority‚ max
chParam = ADDSTRING(chParam , ",");
'field separator
' FILTERING
'GFilter = "";
GFilter = "=(#A1 == DOM1)||(#A1 == DOM2)";
'GFilter = "=(#A1 == DOM1)";
chParam = ADDSTRING(chParam,GFilter);
'filter variables with Domain DOM1 or DOM2
chParam = ADDSTRING(chParam , ",");
'field separator
' FORMAT
GFormat="#D/#M/#Y #h:#m:#s #t #@A1 #@A2";
chParam = ADDSTRING(chParam, GFormat );
'Format
SUB putfile()
BUFTOFILE (hdbuffer, "SvAlaResult","USEFULL_PART","Append");
FREE_BUFFER(hdbuffer);
FREE_BUFFER(hparam);
@ALAEND = 0;
END SUB
SV_SCADABasic_fr 553
Exemple 2
Ceci est un autre programme qui extrait une information sur des alarmes. Il utilise les commandes CYCLIC
et EVENT pour activer des fonctions SVALA.
DIM hdl As LONG;
DIM hparam As LONG;
DIM hdl2 As LONG;
DIM hdl3 As LONG;
DIM GFilter As STR;
DIM GFormat As STR;
DIM Gstate1 As STR;
DIM Gstate2 As STR;
DIM Gstate3 As STR;
DIM Gstate4 As STR;
DIM Gstate5 As STR;
DIM Gstate6 As STR;
DIM Gminmax As STR;
DIM Gmin As STR;
DIM Gmax As STR;
DIM Lock As INTEGER;
SUB Main()
hdl = 0;
hdl2 = 0;
hdl3 = 0;
hparam = 0;
Lock = 0 ;
END SUB
SUB AlarmExtract()
If ( Lock == 1 ) Then
PRINT ( "request in progress " );
CYCLIC ( "DEL" , 2 , "SvAla" ,"", "Filter2" );
CYCLIC ( "ADDPROG" , 2 , "SvAla" ,"", "Filter2" );
Return;
End If
Lock = 1 ;
@STATE = 0;
@ANA = 0;
GFilter = "";
GFilter = ADDSTRING(GFilter, @FILTER);
GFormat = "";
GFormat = ADDSTRING(GFormat, @ALAFORMAT);
GMinMax = FORMAT ( "%d" , @MINMAX );
GMin1 = FORMAT ( "%d" , @MIN );
GMin2 = FORMAT ( "%d" , @MAX );
GState1 =FORMAT ( "%d" , @ETAT1 );
GState2 =FORMAT ( "%d" , @ETAT2 );
GState3 =FORMAT ( "%d" , @ETAT3 );
GState4 =FORMAT ( "%d" , @ETAT4 );
GState5 =FORMAT ( "%d" , @ETAT5 );
GState6 =FORMAT ( "%d" , @ETAT6 );
DoAlarmExtract();
END SUB
SUB DoAlarmExtract()
DIM i As Integer;
DIM chParam As Str;
chParam = "";
If ( hdl == 0 ) Then
hdl = ALLOC_BUFFER ( 16000 );
End If
If ( hparam == 0 ) Then
SV_SCADABasic_fr 554
hparam = ALLOC_BUFFER ( 2000 );
End If
SUB RcvEvt()
DIM i As Integer;
DIM j As Integer;
DIM p As Str;
DIM sep As Str;
DIM sep2 As Str;
DIM lig As Integer;
sep = "\n";
sep2 = ",";
If ( hdl2 == 0 ) Then
hdl2 = ALLOC_BUFFER ( 1000 );
End If
If ( hdl3 == 0 ) Then
hdl3 = ALLOC_BUFFER ( 1000 );
End If
SEQ_BUFFER ( "BEGIN" , hdl ); ' Start of buffer
i = 1;
While ( i != 0)
SV_SCADABasic_fr 555
i = SEQ_BUFFER ( "NEXTFIELD" , hdl , sep , hdl2, 1000);
p = CGET_BUFFER ( hdl2 , 0 , 255 );
j = SEQ_BUFFER ( "BEGIN" , hdl2 );
j = 1;
While ( j != 0)
j = SEQ_BUFFER ( "NEXTFIELD" , hdl2 , sep2 , hdl3 , 1000 );
p = CGET_BUFFER ( hdl3 , 0 , 255 );
Wend
Wend
Lock = 0 ;
i=EVENT("DEL","STATE",1);
END SUB
SV_SCADABasic_fr 556
Exemple Extraction SVLOG
Appliqué à
Cette exemple montre l'utilisation de l'instruction SVLOG pour extraire des données consignées dans
l'heure précédente à partir du filtre de consignation LIST1.
' Constants for log data type:
SUB Main()
DIM Ret as long;
DIM HandleParam as long;
DIM Hd1 as double;
DIM Hd2 as double;
DIM Mask as long;
DIM ChParam as STR;
EVENT ("ADDPROG", "Extract.Fin", 1, "LOG", "", "EndExtract");
HandleParam = alloc_buffer(1000);
Mask=0;
Mask = LOGICAL("OR",Mask, WRITECTRLEV);
Mask = LOGICAL("OR",Mask, TRANSETAT_ALLALL);
Hd1 = DateTimeValue();
Hd2 = Hd1 - 3600000;
chParam = addstring(chParam,"LIST1");
chParam = addstring(chParam,",");
chParam = addstring(chParam, format("%.0f",Hd2));
chParam = addstring(chParam,",");
chParam = addstring(chParam, format("%.0f",Hd1));
chParam = addstring(chParam,",");
chParam = addstring(chParam, "0"); ' Max lines
chParam = addstring(chParam,",");
chParam = addstring(chParam, "0"); ' Direction
chParam = addstring(chParam,",");
chParam = addstring(chParam, TOC(Mask)); ' Mask
SV_SCADABasic_fr 557
chParam = addstring(chParam,",");
chParam = addstring(chParam, "0"); ' Min priority
chParam = addstring(chParam,",");
chParam = addstring(chParam, "15"); ' Max priority
chParam = addstring(chParam,",");
' Selection filter
chParam = addstring(chParam, "=(#A1 == DOM1)||(#A1 == DOM2)");
chParam = addstring(chParam,",");
' Output format
chParam = addstring(chParam, "#h:#m:#s #E #O #T #t #C #c #d #n");
put_buffer(HandleParam,0,chParam);
SUB EndExtract()
DIM NomApp as STR;
DIM Ret as INTEGER;
PRINT ("Extract complete");
If (Extract.Status == 0) then
PRINT ("All lines extracted");
Else
PRINT ("Buffer full - some data may be missing");
End if
PRINT ("The first archive date is ", DateTimeString(Extract.HDeb));
PRINT ("The last archive date is ", DateTimeString (Extract.HFin));
SV_SCADABasic_fr 558
Exemple Base de Données SVSQL
Appliqué à
Cet exemple utilise un synoptique (SQLTEST) contenant deux zones (TITLE et DATA) dans lesquelles les
résultats de la commande SQL seront placés. L'utilisateur saisit le nom de la base de données dans la
variable texte @DATABASE.NAME et la commande SQL dans la variable @DATABASE.SQL. La variable
@DATABASE.ERROR est utilisée pour reporter à l'utilisateur 'état et la situation d'erreur.
' Program SVSQL
DIM HBase as long; 'Handle for database connection
DIM RetSQL as long; 'Return from SVSQL command
SUB Main ()
HBase = 0;
END SUB
SUB Connect()
@DATABASE.ERROR = AddString("Connecting to database", UCase(@DATABASE.NAME));
Delay(0.1);
ClearArray();
If (HBase > 0) Then
@DATABASE.ERROR = "Database already connected";
Return(0);
Else
If (CmpString(@DATABASE.NAME, "") ==0) Then
@DATABASE.ERROR = "Please enter database name";
Return(0);
Else
HBase = SVSQL("CONNECT",@DATABASE.NAME);
End If
End If
If (HBase > 0) then
@DATABASE.ERROR = "Database connected OK";
Else
@DATABASE.ERROR = "Database failed to connect";
End If
Print(Hbase);
END SUB
SUB Disconnect()
Print (Hbase);
@DATABASE.ERROR = AddString("Disconnecting database " , UCase(@DATABASE.NAME));
Delay(0.1);
If (HBase <= 0) Then
@DATABASE.ERROR = "Database not connected";
Return(0);
End if
RetSQL = SVSQL("DISCONNECT",HBase);
If (RetSQL == -1) Then
@DATABASE.ERROR = "Error disconnecting database";
Return(0);
Else
If (RetSQL == -2) Then
@DATABASE.ERROR = "Bad database handle";
Return(0);
Else
@DATABASE.ERROR = "Disconnected OK";
Hbase = 0;
ClearArray();
End If
End If
SV_SCADABasic_fr 559
END SUB
sub ExecuteSQL()
DIM HBufErr as long; ' Handle of error buffer
DIM HField as long; ' Handle of SQL buffer
DIM NbTableCol As Integer;
DIM NbCol As Long;
DIM i As Integer;
DIM j As Integer;
Const NbMaxRow = 15;
Const NbMaxCol = 5;
HBufErr = alloc_buffer(255);
HField = alloc_buffer(255);
ClearArray();
SV_SCADABasic_fr 560
If (RetSQL != 0) Then
Break();
End If
Delay(0.1);
For (j=1 ; j<=NbTableCol; j++)
RetSQL = SVSQL("GETCOL", HBase , j, HField);
SELECTOR("PUTCELL", "SQLTEST", "", "DATA", i-1, j-1, Cget_Buffer(HField, 0, RetSQL,
1));
Next j;
Next i;
@DATABASE.ERROR = "Query complete";
END SUB
SUB ClearArray()
SELECTOR("CLEAR", "SQLTEST", "", "TITLE");
SELECTOR("CLEAR", "SQLTEST", "", "DATA");
END SUB
SV_SCADABasic_fr 561
Exemple Données SVTREND
Appliqué à
Exemple 1
Ce programme extrait des données de tendance (historiques) à partir d'une liste de variables, entre deux
dates.
SUB GetTrend()
DIM d_Date1 As Double;
DIM d_Date2 As Double;
DIM d_Period As Double;
DIM l_Res As Long;
DIM s_Misc As Str;
gn_Ind = 0;
d_Date1 = DATETIMEVALUE("16/02/2003", "08:00:00:000");
d_Date2 = DATETIMEVALUE("17/02/2003", "21:00:00:000");
If ( l_Result == 0 ) Then
l_Result = ALLOC_BUFFER ( 8000 );
End If
d_Period = 3600;
s_Div = " ,,@STATE,@CURVAR";
l_Res = SVTREND ( "GETTREND" , "STATE1,STATE2,MES1,MES2,MES3,MES4,MES5,MES6",
"TREND",d_Date1, d_Date2, d_Period, 2 , l_Result, s_Misc );
END SUB
SUB GetNext()
DIM l_Res As Long;
DIM s As Str;
gn_Ind++;
PRINT ("Pass", gn_Ind );
PRINT ("CURVAR" , @CURVAR );
s = CGET_BUFFER(l_Result , 0 , 1 );
If (CMPSTRING (s, "") != 0) Then
print("WRITE");
BUFTOFILE(l_Result, TOC(gn_Ind), "USEFULL_PART" );
@STATE = 0;
l_Res = SVTREND ( "GETNEXTBUFFER" , l_Result );
End If
END SUB
Lorsque le buffer est plein, la variable état LogVar est positionnée à 1. Ceci autorise un événément
à être déclenché (voir le verbe EVENT) afin de redémarrer l'extraction des données en mémoire.
Lorsque il y a trop de données à extraire, Handle_Result devient nul.
Lorsque DisplayMode est à 1, les données sont extraites en utilisant la liste de variables dans le buffer
Handle_Listvar avec le format défini par Format.
Données Exemple 1
Ceci montre le contenu du buffer, en utilisant une période d'échantillonnage de 1 seconde dans le mode 1.
Il y a 4 noms de variables dans le buffer pointé par ListHandle.
StrVar = STATE1:
20030226145546675,0
20030226145547675,0
20030226145548675,0
20030226145549675,1
20030226145550675,0
20030226145551675,1
StrVar = STATE2:
20030226145546675, 1
20030226145547675, 1
SV_SCADABasic_fr 562
20030226145548675, 0
20030226145549675, 1
20030226145550675, 0
20030226145551675, 0
StrVar = ANA1:
20030226145546675, -0.927184
20030226145547675, -0.927184
20030226145548675, -0.898794
20030226145549675, -0.882948
20030226145550675, -0.882948
20030226145551675, -0.882948
StrVar = ANA2:
20030226145546675, 64.99774
20030226145547675, 65.007904
20030226145548675, 65.018062
20030226145549675, 65.028214
20030226145550675, 65.038361
20030226145551675, 65.038361
Lorsque DisplayMode est à 2, les données échantillonnées de chaque variable sont contenues dans la
même ligne précédée par son horodate.
Données Exemple 2
La période d'échantillonnage est 1000 ms (1 seconde). Il y a 4 noms de variables dans le buffer pointé par
ListHandle.
20030226145546675,0,1,-0.927184,64.99774
20030226145547675,0,1,-0.927184,65.007904
20030226145548675,0,0,-0.898794,65.018062
20030226145549675,1,1,-0.882948,65.028214
20030226145550675,0,0,-0.882948,65.038361
20030226145551675,1,0,-0.882948, 65.038361
Exemple
Cet exemple calcule les températures moyennes, minimales et maximales.
REGISTERS.DAT est un fichier pour trouver les noms des variables mesures qui seront exécutées.
const MAX_VARIABLES = 1;
const BUFSIZE = 10000; ' size of buffer to take the data
dim hDest AS LONG;
dim hNames AS LONG;
dim hBranche AS LONG;
dim hVariables AS LONG;
dim nb_variables AS INTEGER;
dim nbPoints [8] as SINGLE;
dim SumValue [8] as SINGLE;
dim MinValue [8] as SINGLE;
dim MaxValue [8] as SINGLE;
dim AveValue [8] as SINGLE;
dim flagend as INTEGER;
dim filesource as STR;
dim verrou as INTEGER;
sub main ()
hDest = alloc_buffer (BUFSIZE);
filesource = "REGISTERS.DAT";
verrou = 0;
end sub
'
'******************** RequestSvTrend **************************
SV_SCADABasic_fr 563
' Fonction : Prepare les parametres pour le traitement
' Appel : Appel par l'opérateur
' Branche : Non
' Arg : Non
'**************************************************************
'
sub RequestSvTrend ()
if (verrou == 0) then
verrou = 1;
' allocation des buffers
hNames = filetobuf (filesource);
hBranche = filetobuf (filesource);
hVariables = alloc_buffer (1024);
seq_buffer ("BEGIN", hNames);
seq_buffer ("BEGIN", hBranche);
event ("ADDPROG", "BILAN.DONE", 1, "BILANS.TRT", "", "calcul");
@BILAN.DONE = 0;
traitement ();
end if
end sub
'
'******************** Traitement **************************
' Fonction : Prepare la liste des variables a traiter
' Appel : Sub RequestSvTrend
' Branche : Non
' Arg : Non
'**********************************************************
'
sub traitement ()
dim ch as STR;
dim i as INTEGER;
dim offset as INTEGER;
dim datedebut AS DOUBLE;
dim datefin AS DOUBLE;
dim echantillonnage AS DOUBLE;
echantillonnage = 0;
datedebut = DATETIMEVALUE (@BILAN.START.DATE, @BILAN.START.TIME);
datefin = DATETIMEVALUE (@BILAN.END.DATE, @BILAN.END.TIME);
i = 0;
offset = 0;
nb_variables = 0;
' composition d'un buffer contenant n variables
while (i++ < MAX_VARIABLES)
ch = seq_buffer ("NEXTFIELD", hNames, "\n", "STR");
if (cmpstring (ch, "")) then
put_buffer (hVariables, offset, format ("%s,", ch));
offset = offset + len (ch) + 1;
nb_variables++;
else
break;
end if
wend
ch = seq_buffer ("NEXTFIELD", hNames, "\n", "STR");
flagend = (cmpstring (ch, "") == 0);
ch = seq_buffer ("PREVFIELD", hNames, "\n", "STR");
offset--;
' remove last sep
put_buffer (hVariables, offset, "");
svtrend ("GETTREND", hVariables, "", datedebut, datefin, echantillonnage, 2, hDest,
",,BILAN.DONE,");
end sub
'
'******************** Calcul ***************************
SV_SCADABasic_fr 564
'
' Fonction : Traite le buffer resultat
' Appel Evenement : BILAN.DONE
' Branche : Non
' Arg : Non
'*******************************************************
'
sub calcul ()
dim ch as STR;
dim i as INTEGER;
dim hResult as LONG;
dim value as SINGLE;
dim BufLine as LONG;
' Y a t-il des données ?
if (cmpstring (cget_buffer (hDest, 0, 1), "")) then
hResult = seq_buffer ("CRTOCRLF", hDest, "NEW_BUFFER");
seq_buffer ("BEGIN", hResult);
seq_buffer ("SEEKFIELD", 1, hResult, ",");
for (i = 0; i < nb_variables; i++)
value = sval (seq_buffer ("NEXTFIELD", hResult, ",", "STR"));
nbPoints [i] = 0; ' nombre de points trouvés
SumValue [i] = 0; ' somme des valeurs
MinValue [i] = value; ' mini des valeurs
MaxValue [i] = value; ' maxi des valeurs
AveValue [i] = 0; ' moyenne
next
BufLine = alloc_buffer (500);
seq_buffer ("BEGIN", hResult);
while (seq_buffer ("NEXTFIELD", hResult, "\n", BufLine))
CalcStatistics (BufLine);
wend
free_buffer (hResult);
while (svtrend ("GETNEXTBUFFER", hDest))
hResult = seq_buffer ("CRTOCRLF", hDest, "NEW_BUFFER");
seq_buffer ("BEGIN", hResult);
while (seq_buffer ("NEXTFIELD", hResult, "\n", BufLine))
CalcStatistics (BufLine);
wend
free_buffer (hResult);
wend
free_buffer (BufLine);
for (i = 0; i < nb_variables; i++)
' calcul de la moyenne
if (nbPoints [i] != 0) then
AveValue [i] = SumValue [i] / nbPoints [i];
end if
' récupère le nom de la variable (branche)
ch = seq_buffer ("NEXTFIELD", hBranche, "\n", "STR");
' affectation des valeurs dans la BD
?ch.MIN = MinValue [i];
?ch.MAX = MaxValue [i];
?ch.MOY = AveValue [i];
next
end if
' traitement terminé ?
if (flagend) then
verrou = 0;
free_buffer (hNames);
free_buffer (hBranche);
free_buffer (hVariables);
event ("DEL", "BILAN.DONE", 1, "BILANS.TRT", "", "calcul");
' fermeture synoptique de saisie des horaires de début et fin
window ("CLOSE", "BILANS", "");
SV_SCADABasic_fr 565
' ouverture du synoptique des moyennes de températures, mini, maxi
window ("OPEN", "MOYENNES", "");
else
traitement ();
end if
end sub
'
'******************** CalcStatistics **************************
' Fonction : Calcule le cumul
' Appel : Sub Traitement
' Branche : Non
' Arg : Buffer contenant la ligne a traiter
'**************************************************************
'
sub CalcStatistics ( handle )
dim ch as STR;
dim i as INTEGER;
dim flag as INTEGER;
dim value as SINGLE;
i = 0;
flag = 1;
seq_buffer ("BEGIN", handle);
seq_buffer ("SEEKFIELD", 1, handle, ",");
while (flag)
ch = seq_buffer ("NEXTFIELD", handle, ",", "STR");
flag = cmpstring (ch, "");
if ((flag) && cmpstring (ch, "?")) then
' nombre de points valides trouvés
nbPoints [i]++;
' récupère valeur du point
value = sval (ch);
' effectue le cumul
SumValue [i] = SumValue [i] + value;
' récupère le mini
if (value < MinValue [i]) then
MinValue [i] = value;
end if
' récupère le maxi
if (value > MaxValue [i]) then
MaxValue [i] = value;
end if
end if
i++;
wend
end sub
SV_SCADABasic_fr 566
Exemple Information SYSTEM
Appliqué à
Exemple 1
Cet exemple utilise les modes de la commande SYSTEM.
L'exemple nécessite la création d'un utilisateur "user1" avec un mot de passe "pass1".
SUB systemsetdate()
'Declare variables
DIM intResult as integer;
'change the system date
intResult = SYSTEM("SETDATE", 28, 06, 2002);
END SUB
SUB systemsettime()
'Declare variables
DIM intResult as integer;
'change the time of the system
intResult = SYSTEM("SETTIME", 21, 03, 00);
END SUB
SUB systemgetdate()
'Declare variables
DIM strResult as Str;
'Retrieve the system date
strResult = SYSTEM("GETDATE");
PRINT("GETDATE : ",strResult);
END SUB
SUB systemgettime()
'Declare variables
DIM strResult as Str;
'Retrieve the system time
strResult = SYSTEM("GETTIME");
PRINT("GETTIME : ",strResult);
END SUB
SUB systemsetregion()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("SETREGION",1);
PRINT("SETREGION : ",intResult);
END SUB
SUB systemsetsysregion()
'Declare variables
DIM intResult as integer;
SV_SCADABasic_fr 567
intResult = SYSTEM("SETSYSREGION",1);
PRINT("SETSYSREGION : ",intResult);
END SUB
SUB systemgetregion()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("GETREGION");
PRINT("GETREGION : ",intResult);
END SUB
SUB systemgetsysregion()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("GETSYSREGION");
PRINT("GETSYSREGION : ",intResult);
END SUB
SUB systemsystem()
'Declare variables
DIM intResult as integer;
'starting calculatrice windows
intResult = SYSTEM("SYSTEM","%SystemRoot%\\System32\\calc.exe");
PRINT("SYSTEM : ",intResult);
END SUB
SUB systemlogin()
'Declare variables
DIM intResult as integer;
'starting calculatrice windows
intResult = SYSTEM("LOGIN","user1", "pass1");
PRINT("LOGIN : ",intResult);
END SUB
SUB systemlogout()
'Declare variables
DIM intResult as integer;
'starting calculatrice windows
intResult = SYSTEM("LOGOUT");
PRINT("LOGOUT : ",intResult);
END SUB
SUB systemsetdatetime()
'Declare variables
DIM intResult as integer;
'starting calculatrice windows
intResult = SYSTEM("SETDATETIME","28/06/02","21:38:00");
PRINT("SETDATETIME : ",intResult);
END SUB
SV_SCADABasic_fr 568
SUB systemlanguage()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("LANGUAGE");
PRINT("LANGUAGE : ",intResult);
END SUB
SUB systemuser()
'Declare variables
DIM strResult as Str;
strResult = SYSTEM("USER","NAME");
PRINT("USER NAME : ",strResult);
END SUB
'Mode USER or Mode 15 (syntax 1)0
SUB systemuser2()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("USER","RIGHTS1");
PRINT("USER RIGHTS1 : ",intResult);
PRINT("USER RIGHTS2 : ",SYSTEM("USER","RIGHTS2"));
PRINT("USER RIGHTS3 : ",SYSTEM("USER","RIGHTS3"));
PRINT("USER RIGHTS4 : ",SYSTEM("USER","RIGHTS4"));
PRINT("USER RIGHTS5 : ",SYSTEM("USER","RIGHTS5"));
PRINT("USER RIGHTS6 : ",SYSTEM("USER","RIGHTS6"));
END SUB
SUB systemxit()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("EXIT");
PRINT("EXIT : ",intResult);
END SUB
SUB systemrepaint()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("REPAINT");
PRINT("REPAINT : ",intResult);
END SUB
SUB systempassword()
'Declare variables
DIM strResult as Str;
strResult = SYSTEM("PASSWORD","user1");
PRINT("PASSWORD : ",strResult);
END SUB
SUB systemusername()
'Declare variables
DIM strResult as Str;
strResult = SYSTEM("USERNAME","pass1");
SV_SCADABasic_fr 569
PRINT("USERNAME : ",strResult);
END SUB
SUB systemmkdir()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("MKDIR","e:\\test1");
PRINT("MKDIR : ",intResult);
END SUB
SUB systemrmdir()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("RMDIR","e:\\test1");
PRINT("RMDIR : ",intResult);
END SUB
SUB systemoperatormode()
'Declare variables
DIM intResult as integer;
'dans a Log Display
'on valide l'enregistrement of l'op‚rateur courant
'intResult = SYSTEM("OPERATORMODE", 1);
PRINT("OPERATORMODE : ",intResult);
@STATE01=1;
@STATE01=0;
'dans a Log Display
'on inhibe l'enregistrement of l'op‚rateur courant
intResult = SYSTEM("OPERATORMODE", 0);
'PRINT("OPERATORMODE : ",intResult);
@STATE01=0;
@STATE01=1;
END SUB
SUB systemgetdrivetype()
'Declare variables
DIM intResult as integer;
intResult = SYSTEM("GETDRIVETYPE", "C:");
PRINT("GETDRIVETYPE : ",intResult);
END SUB
SUB systemgetdisksize()
'Declare variables
DIM lngResult as long;
lngResult = SYSTEM("GETDISKSIZE", "C:");
PRINT("GETDISKSIZE : ",lngResult);
END SUB
SUB systemgetdiskfreespace()
'Declare variables
DIM lngResult as long;
SV_SCADABasic_fr 570
lngResult = SYSTEM("GETDISKFREESPACE", "C:");
PRINT("GETDISKFREESPACE : ",lngResult);
END SUB
Exemple 2
Cet exemple modifie les divers paramètres système.
Modification du temps système en avançant d'une heure :
SUB Summer ()
Const OneHour = 3600000;
DIM LongTime As Double;
DIM NewTime As Str;
DIM NewDate As Str;
LongTime = DateTimeValue () + OneHour;
NewDate = DateTimeString(LongTime, "D");
NewTime = DateTimeString(LongTime, "T");
SYSTEM(13, NewDate, NewTime);
END SUB
SUB AutoOff ()
If (Activity == 0) Then
SYSTEM("LOGOUT");
End If
END SUB ()
Gestion d'un système multi-écrans :
' START.PVB Loaded on startup of system
SUB Main ()
Program("PRELOAD", "setreg.pvb", "");
SYSTEM("SETSYSREGION", 2); ' two screens
END SUB
' SETREG.PVB
SUB Main ()
END SUB
SV_SCADABasic_fr 571
Exemple TEMPORARY_DB
Appliqué à
Cet exemple illustre les modes de la commande TEMPORARY_DB.
'Mode OFF or Mode 0 (syntax 1)
SUB temporarydboff()
DIM intResult as integer;
intResult = TEMPORARY_DB("OFF");
END SUB
SUB temporarydbon()
'enables creation of temporary variables in animations and symbols.
DIM intResult as integer;
intResult = TEMPORARY_DB("ON");
END SUB
SUB temporarydbaddbit()
DIM intResult as integer;
intResult = TEMPORARY_DB("ADDBIT", "@STATEAB03", "label‚ language 1", "label‚ language
2");
END SUB
SUB temporarydbaddreg()
DIM intResult as integer;
intResult = TEMPORARY_DB("ADDREG", "@REGISTER01", "label‚ language 1", "label‚ language
2", -20, 35, "##.##u", "øC");
END SUB
SUB temporarydbaddtxt()
DIM intResult as integer;
intResult = TEMPORARY_DB("ADDTXT", "@TEXTE01", "label‚ language 1", "label‚ language 2",
32);
intResult = TEMPORARY_DB("ADDTXT", "@TEXTE02", "label‚ language 1", "label‚ language 2",
32);
END SUB
SV_SCADABasic_fr 572
Exemple TEXTVAR
Appliqué à
Exemple 1
Cet exemple illustre les modes de la commande TEXTVAR.
'Uses a file called "ReadMe.txt" stored
' in the TP folder of your current project
'Database variables:
'TEXT01 of type TEXT
'TEXT02 of type TEXT
SUB main()
textvarbuftotext();
textvartexttobuf();
textvarfiletotext();
textvartexttofile();
textvartextcompare();
textvartextcopy();
textvartextlen();
END SUB
SUB textvarbuftotext()
DIM IntResult as integer;
DIM lngbuffer1 as long;
lngbuffer1 = FILETOBUF("ReadMe.txt");
IntResult = TEXTVAR("BUFTOTEXT", "TEXT01", lngbuffer1, 0, 0, 15);
free_buffer(lngbuffer1);
END SUB
SUB textvartexttobuf()
DIM IntResult as integer;
DIM strResult as Str;
DIM lngbuffer1 as long;
lngbuffer1 = ALLOC_BUFFER(250);
IntResult = TEXTVAR("TEXTTOBUF", "TEXT01", lngbuffer1, 0, 0, 15);
strResult = CGET_BUFFER(lngbuffer1,0,15,0);
PRINT("The returned string is: ",strResult);
free_buffer(lngbuffer1);
END SUB
SUB textvarfiletotext()
DIM IntResult as integer;
IntResult = TEXTVAR("FILETOTEXT", "TEXT02", "ReadMe.txt", 0, 0, 15);
END SUB
SUB textvartexttofile()
DIM IntResult as integer;
DIM lngbuffer1 as long;
lngbuffer1 = FILETOBUF("ReadMe.txt");
IntResult = TEXTVAR("TEXTTOFILE", "TEXT01","text1.txt",0, 0, 15);
END SUB
SV_SCADABasic_fr 573
SUB textvartextcompare()
PRINT(TEXTVAR("TEXTCOMPARE","TEXT01","TEXT02",4));
'Compare the first 4 characters
END SUB
SUB textvartextcopy()
DIM intResult as integer;
intResult = TEXTVAR("TEXTCOPY","TEXT01","TEXT03");
END SUB
SUB textvartextlen()
DIM intResult as integer;
intResult = TEXTVAR("TEXTLEN","TEXT01");
PRINT("Length of the character string: ",intResult);
END SUB
Exeample 2
Cet exemple configure et affiche des variables texte :
SUB Main()
'This subroutine assumes that the mimic contains
' these text variables: mytext and mytext2.
'The file test.txt in project folder TP contains
' between 4 and 50 characters (here: abc,123).
'It contains short delays, so pause before showing results,
' allocate a memory buffer and load it from a text file.
DIM hbuf as long;
PRINT("Open file result: ", FOPEN("test.txt", "r+"));
PRINT("Put to file result: ", FPUTS("test.txt", "abc,123"));
hbuf = FILETOBUF("test.txt");
PRINT("Buffer contains: ", CGET_BUFFER(hbuf, 0, 50, 0));
'clear the text variables
@mytext = "";
@mytext2 = "";
DELAY(0.1); 'to reset the variables
PRINT("Text variables mytext: ", @mytext, "; mytext2: ", @mytext2);
'all buffer to first variable
PRINT("BufToText all: ", TEXTVAR( "BUFTOTEXT", "mytext", hbuf, 0, 0, 0), " chars.");
DELAY(0.1); 'to reset the variables
PRINT("mytext: ", @mytext, "; mytext2: ", @mytext2);
'copy from variable mytext (4 chars. from offset 3) to end of file
PRINT("TextToFile: ", TEXTVAR("TEXTTOFILE", "mytext", "test.txt", 3, 1, 4), " chars.");
'3 characters from buffer at offset 4 to other variable
PRINT("BufToText: ", TEXTVAR("BUFTOTEXT", "mytext2", hbuf, 0, 4, 3), " chars.");
DELAY(0.1); 'to reset the variables
PRINT("Text variables mytext: ", @mytext, "; mytext2: ", @mytext2);
'compare the first 4 characters of the variables
PRINT("Compare result (0 means equal): ", TEXTVAR("TEXTCOMPARE", "mytext", "mytext2",
4));
'copy 3 chars. from file to start of variable
PRINT("FileToText: ", TEXTVAR("FILETOTEXT", "mytext2", "test.txt", 0, 8, 3), "
chars.");
DELAY(0.1); 'to reset the variables
PRINT("Text variable mytext2: ", @mytext2);
'copy variable mytext2 to mytext
PRINT("TextCopy result: ", TEXTVAR("TEXTCOPY", "mytext", "mytext2"));
DELAY(0.1); 'to reset the variables
PRINT("Text variables mytext: ", @mytext, "; mytext2: ", @mytext2);
SV_SCADABasic_fr 574
PRINT("Compare result (0 means equal): ", TEXTVAR("TEXTCOMPARE", "mytext", "mytext2",
4));
'Close the file and release the buffer
FCLOSE("test.txt");
FREE_BUFFER(hbuf);
END SUB
Résultats
Ce programme affiche les résultats dans la fenêtre de Mise au Point des Programmes (F9, Montrer
résultats).
Open file result: 1
Put to file result: 1
Buffer contains: abc,123,123
Text variables mytext: ; mytext2:
BufToText all: 11 chars.
mytext: abc,123,123; mytext2:
TextToFile: 4 chars.
BufToText: 3 chars.
Text variables mytext: abc,123,123; mytext2: 123
Compare result (0 means equal): 1
FileToText: 3 chars.
Text variable mytext2: 123
TextCopy result: 1
Text variables mytext: 123; mytext2: 123
Compare result (0 means equal): 0
SV_SCADABasic_fr 575
Exemple TREEVIEW
Appliqué à
This example contains a set of functions to support a pair of Tree-view form controls using the TREEVIEW
instruction.
SUB Main()
END SUB
'declare variables:
SUB tvwSel()
DIM lRet As Long;
DIM stvwText As Str;
DIM stvwText1 As Str;
DIM stvwData As Str;
DIM stvwData1 As Str;
SV_SCADABasic_fr 576
SET("tvwCount1" , TREEVIEW( "COUNT", "ctrl","","tvw1"));
SENDLIST ("BLOC");
END SUB
SV_SCADABasic_fr 577
Exemple Affichage TREND
Appliqué à
Dans l'exemple suivant, une fenêtre nommée BigTrend contient une fenêtre de tendance identifiée comme
TRN1.
SUB Checkmode () ' Check current mode for trend
DIM res AS INTEGER;
res = TREND("GETTYPE", "BigTrend", "", "trn1", 1);
IF (res == 2) THEN
trend.type =REAL ();
ELSE
trend.type = HIST ();
END IF
END SUB
SUB REAL () ' Change trend to real time
TREND("SETTYPE", "BigTrend", "", "trn1", 0, 1);
RETURN ("RealTime");
END SUB
SUB HIST () ' Change trend to historic
TREND(1, "BigTrend", "", "trn1", 0, 2);
RETURN ("Historic");
END SUB
SUB PERIOD2 () ' Double the trend period
DIM TrendPeriod AS DOUBLE;
TrendPeriod = TREND(7, "BigTrend", "", "trn1");
TREND(6, "BigTrend", "trn1", "", (TrendPeriod*2));
END SUB
SUB PERIOD1 () ' Half the trend period
DIM TrendPeriod AS DOUBLE;
TrendPeriod = TREND(7, "BigTrend", "", "trn1");
TREND(6, "BigTrend", "", "trn1", (TrendPeriod/2));
END SUB
SUB SCROLLPLUS100 () 'Scroll trend forward 100%
TREND (10, "BigTrend", "", "trn1", 100);
END SUB
SUB SCROLLMINUS100 () 'Scroll trend back 100%
TREND (10, "BigTrend", "", "trn1", -100);
END SUB
SUB SCROLLPLUS10 () 'Scroll trend forward 10%
TREND (10, "BigTrend", "", "trn1", 10);
END SUB
SUB SCROLLMINUS10 () 'Scroll trend back 100%
TREND (10, "BigTrend", "", "trn1", -10);
END SUB
SV_SCADABasic_fr 578
Exemple VARIABLE
Appliqué à
Exemple 1
Cet exemple illustre chaque mode de la commande VARIABLE et imprime les résultats dans un panneau
de déboguage du gestionnaire de programme.
'Mode STATUS or Mode 1 (syntax 1)
SUB variablestatus()
PRINT("--STATUS @STATE01--");
PRINT("EXIST = ",VARIABLE("STATUS","@STATE01",1));
PRINT("VALID = ",VARIABLE("STATUS","@STATE01",2));
PRINT("MASK = ",VARIABLE("STATUS","@STATE01",3));
PRINT("ENABLE = ",VARIABLE("STATUS","@STATE01",4));
PRINT("COM = ",VARIABLE("STATUS","@STATE01",5));
PRINT("HDATE = ",VARIABLE("STATUS","@STATE01",6));
END SUB
SUB variableenable()
PRINT("--ENABLE @STATE01--");
PRINT("ENABLE = ",VARIABLE ("ENABLE","STATE01"));
END SUB
SUB variabledisable()
PRINT("--DISABLE @STATE01--");
PRINT("DISABLE = ",VARIABLE ("DISABLE","STATE01"));
END SUB
SUB variablelonglabel()
PRINT("--LONGLABEL @STATE01--");
PRINT("LONGLABEL = ",VARIABLE ("LONGLABEL","STATE01"));
END SUB
SUB variableassoclabel()
PRINT("--ASSOCLABEL @STATE01--");
PRINT("ASSOCLABEL = ",VARIABLE ("ASSOCLABEL","STATE01"));
END SUB
SV_SCADABasic_fr 579
'Mode SIMU or Mode 8 (syntax 5)
SUB variablesimuon()
PRINT("--SIMU @STATE02--");
PRINT("SIMU ON= ",VARIABLE ("SIMU","STATE02",1));
END SUB
SUB variablesimuoff()
PRINT("--SIMU @STATE02--");
PRINT("SIMU OFF= ",VARIABLE ("SIMU","STATE02",0));
END SUB
SUB variabledomain()
PRINT("--DOMAIN @STATE01--");
PRINT("DOMAIN = ",VARIABLE ("DOMAIN","STATE01"));
END SUB
SUB variableNature()
PRINT("--Nature @STATE01--");
PRINT("Nature = ",VARIABLE ("Nature","STATE01"));
END SUB
SUB variableunit()
PRINT("--UNIT @REGISTER01--");
PRINT("UNIT = ",VARIABLE ("UNIT","REGISTER01"));
END SUB
SUB variablenumber()
PRINT("--NUMBER @REGISTER01--");
PRINT("NUMBER = ",VARIABLE ("NUMBER","REGISTER01"));
END SUB
SUB variablethresholdgettype()
PRINT("--THRESHOLD_GETTYPE @REGISTER01--");
PRINT("THRESHOLD_GETTYPE = ",VARIABLE ("THRESHOLD_GETTYPE","REGISTER01"));
END SUB
SUB variablethresholdgetvalue()
PRINT("--THRESHOLD_GETVALUE @REGISTER01--");
PRINT("THRESHOLD_GETVALUE = ",VARIABLE ("THRESHOLD_GETVALUE","REGISTER01", 1));
END SUB
SUB variablethresholdsetvalue()
DIM intValue as integer;
intValue= 8;
PRINT("--THRESHOLD_SETVALUE @REGISTER01--");
PRINT("THRESHOLD_SETVALUE = ",VARIABLE ("THRESHOLD_SETVALUE","REGISTER01",1,intValue,1));
END SUB
SV_SCADABasic_fr 580
'Mode BATT or Mode 22 (syntax 9)
SUB variablebatt()
PRINT("--BATT @REGISTER01--");
PRINT("BATT = ",VARIABLE ("BATT","REGISTER01",2));
END SUB
SUB variabletatt()
PRINT("--TATT @REGISTER01--");
PRINT("TATT = ",VARIABLE ("TATT","REGISTER01",3));
END SUB
SUB variablewrite()
PRINT("--WRITE--");
'PRINT("WRITE = ",VARIABLE ("WRITE",0)); 'WRITE OFF
PRINT("WRITE = ",VARIABLE ("WRITE",1)); 'WRITE ON
END SUB
SUB variablelocktonode()
PRINT("--LOCKTONODE--");
'Lock messages to station 2
PRINT("LOCKTONODE = ",VARIABLE ("LOCKTONODE",2));
END SUB
SUB variableunlocktonode()
PRINT("--UNLOCKTONODE--");
'Unlock messages to station no. 2
PRINT("UNLOCKTONODE = ",VARIABLE ("UNLOCKTONODE",2));
END SUB
SUB variableimportbuffer()
DIM lngbuffer1 as long;
lngbuffer1 = FILETOBUF("var.txt");
PRINT("--IMPORTBUFFER--");
PRINT("IMPORTBUFFER = ",VARIABLE ("IMPORTBUFFER",lngbuffer1));
FREE_BUFFER(lngbuffer1);
END SUB
SV_SCADABasic_fr 581
'Mode IMPORTFILE or Mode 29 (syntax 15)
SUB variableimportfile()
PRINT("--IMPORTFILE--");
PRINT("IMPORTFILE = ",VARIABLE ("IMPORTFILE","var.txt"));
END SUB
SUB variablestartwatchlist()
DIM lngbuffer1 as long;
DIM lngbuffer2 as long;
DIM intResult as integer;
lngbuffer1 = FILETOBUF("var2.txt");
PRINT("--STARTWATCHLIST--");
lngbuffer2 = VARIABLE("STARTWATCHLIST","",lngbuffer1,"STATE02",1));
intResult = VARIABLE("STOPWATCHLIST",lngbuffer2);
FREE_BUFFER(lngbuffer1);
END SUB
SUB variablegetlongindb()
PRINT("--GET_LONG_IN_DB--");
PRINT("GET_LONG_IN_DB = ",VARIABLE ("GET_LONG_IN_DB","REGISTER01"));
END SUB
SUB variablegetdoubleindb()
PRINT("--GET_DOUBLE_IN_DB--");
PRINT("GET_DOUBLE_IN_DB = ",VARIABLE ("GET_DOUBLE_IN_DB","REGISTER01"));
END SUB
SUB variablegetphysicalmin()
PRINT("--GET_PHYSICAL_MIN--");
PRINT("GET_PHYSICAL_MIN = ",VARIABLE ("GET_PHYSICAL_MIN","REGISTER01"));
END SUB
SUB variablegetphysicalmax()
PRINT("--GET_PHYSICAL_MAX--");
PRINT("GET_PHYSICAL_MAX = ",VARIABLE ("GET_PHYSICAL_MAX","REGISTER01"));
END SUB
SUB variablegetcontrolmin()
PRINT("--GET_CONTROL_MIN--");
PRINT("GET_CONTROL_MIN = ",VARIABLE ("GET_CONTROL_MIN","REGISTER01"));
END SUB
SUB variablegetcontrolmax()
PRINT("--GET_CONTROL_MAX--");
PRINT("GET_CONTROL_MAX = ",VARIABLE ("GET_CONTROL_MAX","REGISTER01"));
SV_SCADABasic_fr 582
END SUB
SUB variablesetbatt()
PRINT("--SETBATT @REGISTER01--");
PRINT("SETBATT = ",VARIABLE ("SETBATT","REGISTER01",2));
END SUB
SUB variablesettatt()
PRINT("--SETTATT @REGISTER01--");
PRINT("SETTATT = ",VARIABLE ("SETTATT","REGISTER01",3));
END SUB
SUB variablesave()
PRINT("--SAVE *--");
PRINT("SAVE = ",VARIABLE ("SAVE"));
END SUB
SUB variablegetalarmpriority()
PRINT("--GET_ALARM_PRIORITY @ALARM01--");
PRINT("GET_ALARM_PRIORITY = ",VARIABLE ("GET_ALARM_PRIORITY","ALARM01"));
END SUB
SUB variablegetcommandlevel()
PRINT("--GET_COMMAND_LEVEL @ALARM01--");
PRINT("GET_COMMAND_LEVEL = ",VARIABLE ("GET_COMMAND_LEVEL","ALARM01"));
END SUB
SUB variablegetcontrollevel()
PRINT("--GET_CONTROL_LEVEL @REGISTER01--");
PRINT("GET_CONTROL_LEVEL = ",VARIABLE ("GET_CONTROL_LEVEL","REGISTER01"));
END SUB
SUB variablegettextlevel()
PRINT("--GET_TEXT_LEVEL @TEXT01--");
PRINT("GET_TEXT_LEVEL = ",VARIABLE ("GET_TEXT_LEVEL","TEXT01"));
END SUB
SUB variablegettype()
PRINT("--GET_TYPE @TEXT01--");
PRINT("GET_TYPE = ",VARIABLE ("GET_TYPE","TEXT01"));
END SUB
SUB variablegetdeadbandtype()
PRINT("--GET_DEADBAND_TYPE @REGISTER01--");
PRINT("GET_DEADBAND_TYPE = ",VARIABLE ("GET_DEADBAND_TYPE","REGISTER01"));
SV_SCADABasic_fr 583
END SUB
SUB variablegetdeadbandvalue()
PRINT("--GET_DEADBAND_VALUE @REGISTER01--");
PRINT("GET_DEADBAND_VALUE = ",VARIABLE ("GET_DEADBAND_VALUE","REGISTER01"));
END SUB
SUB variablesetdeadband()
PRINT("--SET_DEADBAND @REGISTER01--");
PRINT("SET_DEADBAND = ",VARIABLE ("SET_DEADBAND","REGISTER01", 3, 2));
END SUB
Exemple 2
Cet exemple montre plusieurs utilisations de l'instruction VARIABLE.
' Subroutine to return variable status
SUB status()
DIM res AS INTEGER;
res = VARIABLE("STATUS", setvar.name, "VALID");
IF (res == 0) THEN
setvar.valid = 0;
ELSE
setvar.valid = 1;
END IF
res = VARIABLE("STATUS", setvar.name, "ENABLE");
IF (res == 0) THEN
setvar.enable = 0;
ELSE
setvar.enable = 1;
END IF
END SUB
SUB threshold()
print(VARIABLE("THRESHOLD_GETVALUE", "txremp", 0));
VARIABLE("THRESHOLD_SETVALUE", "txremp", 0, 52, 1);
print(VARIABLE("THRESHOLD_GETTYPE", "txremp"));
END SUB
SV_SCADABasic_fr 584
Exemple WEBVUE
Appliqué à
L'exemple suivant liste les utilisateurs de tous les postes clients Web à partir du poste Superviseur :
SUB MAIN()
CheckList();
END SUB
SUB CheckList()
DIM res AS INTEGER;
DIM ClientList AS STR;
DIM hbuffer As LONG;
hbuffer = ALLOC_BUFFER(50); 'allocate a buffer of 50KB
res = WEBVUE("LIST", hbuffer); 'get a list of user-station pairs
ClientList = CGET_BUFFER(hbuffer,0,255);
PRINT("Number of web clients: ", res);
PRINT("List of web clients: ", ClientList);
FREE_BUFFER(hbuffer);
END SUB
Depuis un poste client Web, pour obtenir le nom d'utilisateur de ce poste :
SUB GetWebUser()
DIM i As Integer;
DIM lUser As Long;
DIM sUser As Str;
lUser = ALLOC_BUFFER (128);
i = GETARG ("WEB");
WEBVUE ("USERNAME", i, lUser);
sUser = CGET_BUFFER(lUser,0,255);
PRINT ("User: ", sUser);
FREE_BUFFER (lUser);
END SUB
Cette Sub est exécutée dans une fenêtre contextuele ouverte dans un client WebVue. Elle fournit le nom
de la variable de contexte :
Sub Load()
Dim lContext As LONG;
Dim iSession As INTEGER;
Dim sContext As STR;
Dim Ret as INTEGER;
PRINT ("SetVarWithContext WebVue and Supervisor");
iSession = GETARG ("WEB");
WINDOW("CLOSE","TREND","");
If (iSession != 0) Then
WINDOW("CLOSE","Trend","");
lContext = ALLOC_BUFFER ( 1000 );
WEBVUE ("CONTEXT", iSession, lContext);
sContext = CGET_BUFFER (lContext, 0, SEQ_BUFFER("LEN",lContext));
PRINT (sContext);
WINDOW("OPEN","Trend","");
End If
End Sub
SV_SCADABasic_fr 585
Exemple WINDOW
Appliqué à
Cet exemple illustre les modes de la commande WINDOW.
Const csttempsreel = 0;
Const cstref1 = 1;
Const cstref2 = 2;
Const csttest = 3;
SUB main()
windowcurrentname();
windowcurrentbranch();
END SUB
SUB windowclose()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("CLOSE","window01","BRANCH01");
END SUB
SUB windowclosetemppsreel()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("CLOSE","window01","BRANCH01", csttempsreel);
END SUB
SUB windowclosetest()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("CLOSE","window01","BRANCH01", csttest);
END SUB
SUB windowcloseref1()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("CLOSE","window01","BRANCH01", cstref1);
END SUB
SUB windowcloseref2()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("CLOSE","window01","BRANCH01", cstref2);
END SUB
SUB windowopen()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("OPEN","window01","BRANCH01");
END SUB
SUB windowopenmere()
'Declare return code
DIM intReturn as integer;
intReturn = WINDOW("OPEN","window01","BRANCH01","MENU","");
END SUB
SUB windowopenmereref()
'Declare return code
DIM intReturn as integer;
SV_SCADABasic_fr 586
intReturn = WINDOW("OPEN","window01","BRANCH01","MENU","",150,150);
END SUB
SUB windowisopen()
PRINT("IS_OPEN : ",WINDOW("IS_OPEN","window01","BRANCH01"));
END SUB
SUB windowshow()
PRINT("SHOW : ",WINDOW("SHOW","window01","BRANCH01"));
END SUB
SUB windowhide()
PRINT("HIDE : ",WINDOW("HIDE","window01","BRANCH01"));
END SUB
SUB windowcloseunder()
PRINT("CLOSEUNDER : ",WINDOW("CLOSEUNDER","window01","BRANCH01"));
END SUB
SUB windowpreload()
PRINT("PRELOAD : ",WINDOW("PRELOAD","window01","BRANCH01"));
END SUB
SUB windowcloseall()
PRINT("CLOSEALL : ",WINDOW("CLOSEALL"));
END SUB
SUB windowcurrentname()
PRINT("CURRENTNAME : ",WINDOW("CURRENTNAME"));
END SUB
SUB windowcurrentbranch()
PRINT("CURRENTBRANCH : ",WINDOW("CURRENTBRANCH"));
END SUB
SV_SCADABasic_fr 587
SUB windowcaption()
DIM strTitre as Str;
strTitle = "#D ";
'strTitle = "#D";
PRINT("CAPTION : ",WINDOW("CAPTION","window01","BRANCH01",strTitre));
END SUB
SUB windowrefset()
PRINT("REFSET : ",WINDOW("REFSET","window01","BRANCH01",csttempsreel,csttest));
END SUB
SUB windowcurrentref()
PRINT("CURRENTREF : ",WINDOW("CURRENTREF"));
'Mode_REALTIME 0
'Mode_REF1 1
'Mode_REF2 2
'Mode_TEST 3
END SUB
SUB windowpopupclose()
PRINT("POPUPCLOSE : ",WINDOW("POPUPCLOSE"));
END SUB
SUB windowaccesslevel()
PRINT("ACCESSLEVEL : ",WINDOW("ACCESSLEVEL","window01","BRANCH01"));
END SUB
SUB windowopennew()
PRINT("OPENNEW : ",WINDOW("OPENNEW","window01","BRANCH01"));
END SUB
SUB windowPRINT()
'The window must first be open
PRINT("PRINT : ",WINDOW("PRINT","window01","BRANCH01"));
END SUB
SUB windowzoom()
'The window must first be open
PRINT("ZOOM : ",WINDOW("ZOOM","window01","BRANCH01",50,50,70));
END SUB
SUB windowgetregion()
PRINT("GETREGION : ",WINDOW("GETREGION","window01","BRANCH01"));
END SUB
SV_SCADABasic_fr 588
SUB windowgetsubwindow()
'PRINT("GETSUBWINDOW : ",WINDOW("GETSUBWINDOW","#M1"));
PRINT("GETSUBWINDOW : ",WINDOW("GETSUBWINDOW","#U"));
END SUB
SUB windowgetsubbranch()
'PRINT("GETSUBBRANCH : ",WINDOW("GETSUBBRANCH","#M1"));
PRINT("GETSUBBRANCH : ",WINDOW("GETSUBBRANCH","#U"));
END SUB
SUB windowsetprevious()
PRINT("SETPREVIOUS : ",WINDOW("SETPREVIOUS"));
END SUB
SV_SCADABasic_fr 589
Exemple XMLPATH
Appliqué à
SV_SCADABasic_fr 590
creationtime= xy //Session opening date and time. Value of type double that can be
converted using the DATETIME verb.
username="web" //Session username
address="192.168.1.123" //Remote web client IP address (or router address)
computername="" // Remote web client computer name if it can be retrieved
clienttype=" webvue " //Session type. Value is webvue for WebVue sessions and wst for
Web Services Toolkit sessions. <wst> // Additional information to identify partners’
products sessions
key=""
<wst />
<session />
WEBVUE ( "LIST" );
lHandle = XMLPATH ( "GET", "webvue/list", "list.myid");
If (lHandle != 0 ) Then
PRINT ("myid ",CGET_BUFFER ( lHandle, 0, 255 ));
End If
i=0;
While (1)
sPath = FORMAT ("list.session[%d].id", i+1);
lHandle = XMLPATH ( "GET", "webvue/list", sPath );
If (lHandle == 0 ) Then
Break;
End If
SV_SCADABasic_fr 591
Wend
End
Sub subscription()
Dim WinName as Str;
Dim WinBranch as Str;
Dim NameSpace as Str;
Dim iRet as Integer;
WinName = WINDOW("CURRENTNAME");
WinBranch = WINDOW("CURRENTBRANCH");
NameSpace = AddString(WinBranch,"/", WinName, "/alarm1");
@lineselect.Syno = WinName;
@lineselect.Branch = WinBranch;
@lineselect.AlarmSelected = "";
@lineselect.NameSpace = NameSpace;
iRet = AlarmDisplay"LINESELECT",WinName,WinBranch,"alarm1","P","","SelectionLine","");
Print("Subscription with result: ",iRet);
End Sub
Sub SelectionLine()
Dim WinName as Str;
Dim WinBranch as Str;
Dim NameSpace as Str;
Dim AlarmSelected as Str;
Dim iBuf as Long;
WinBranch = WINDOW("CURRENTBRANCH");
NameSpace = AddString(WinBranch,"/",WinName,"/alarm1");
@lineselect.NameSpace = NameSpace;
iBuf = XMLPATH("GET",NameSpace,"lineselect/variable");
AlarmSelected = CGET_BUFFER(iBuf, 0, 255);
@lineselect.AlarmSelected = AlarmSelected ;
XMLPATH("UNLOAD",NameSpace);
End Sub
SV_SCADABasic_fr 592
Mots Réservés
Voir aussi
Les mots marqués d'un astéristique (*) ne sont pas documentés. Ne pas utiliser.
A E LCASE SINGLE
ACOS ELSE LEFT SLEEP (*)
ADDCHAINE ELSEC (*) LEN SMS
ADDSTRING EMAIL LGET_BUFFER SNMP
ALARM END LISTBOX SPACE
ALARMDISPLAY ENDSUB LNS SQRT
ALIAS ERROR LOG START (*)
ALLOC_BUFFER EVENT LOGDISPLAY STATION_FILTER
ANIMATION EXCELTOBUF LOGICAL STOP
APPLICATION EXECUTE (*) LOGICAL64 STR
ARRET (*) EXIT LONG STRING
AS EXP LONWORKS SUB
ASC EXPORT LPRINT SVAL
ASCIIFIELD EXPRESSION LTRIM SVALA
ASIN LVAL SVBATCH
ASSOCIATEDACTIONS F SVBRANCH
ASSOCLABEL FCLOSE M SVKEY
ATAN FEOF M104 SVLOG
FGETC M61850 SVSQL
B FGETS MAJANA (*) SYSTEM
BASIC FILETOBUF MAPDISPLAY
BEEP FOR MDNP3 T
BIN FORMAT MID TAN
BRANCH (*) FORMULA MULTIMEDIA TEMPORARY_DB
BREAK FPUTC NEXT TEXTVAR
BUFTOEXCEL FPUTS THEN
BUFTOFILE FREAD O TOC
BYVAL FREE_BUFFER OCT TOD
FSEEK OPC TODOUBLE
C FSTAT OPTIONLIST TOHMS
CALL(*) FTP TOI
CAPTION FUNCTION TOL
CGET_BUFFER FWRITE P TOLL
CHAR(*) POPULATION TOS
CHART G POW TRACE
CHECKLIST PRINT TRACEOFF
SV_SCADABasic_fr 593
CHR GETARG PRINTER TRACEON
CIMWAY GETPROJECTDIR PROGRAM TREEVIEW
CMPCHAINE (*) GETTREE PUT_BUFFER TREE
CMPSTRING GROUPALARM TREND
COMBOBOX R
CONST H RECIPE U
CONVERT HARDCOPY REFRESH_DB UCASE
COPY_BUFFER HEX REGION UNLING
COS HISTORY REGVAR2D USER_PROGRAM (*)
CRONTAB RENAME
CYCLIC I RETURN V
IF RIGHT VARIABLE
D IGET_BUFFER RTRIM
DATETIME INT (*) W
DATETIMESTRING INTEGER S WEBVUE
DATETIMEVALUE IRAND SELECTOR WEND
DDE IVAL SEND(*) WHILE
DDECONV SENDLIST WINDOW
DECLARE K SEQ_BUFFER
DELAI (*) KEY SET X
DELAY SGET_BUFFER XMLPATH
DGET_BUFFER L SHELL (*)
DIM LAN SIM (*)
DOUBLE LANGUAGE
DVAL
SV_SCADABasic_fr 594
Codes de Touches de Fonctions
Voir aussi Appliqué à
Touche de Code de Touche de Action Standard
Fonction Fonction
F1 1 Shift type D - non Aide en ligne.
disponible
F2 2 Menu utilisateur (Logon / Logoff).
F3 3 Menu d'administration (configuration des droits
utilisateurs).
F4 4 Fenêtre 'A propos'.
F5 5 - (Non utilisé)
F6 6 Affiche le menu de configuration et les barres d'outils.
F7 7 Place la fenêtre d'événements au premier plan.
F8 8 Masque le menu et les barres d'outils.
F9 9 Mise au point des programmes.
F10 10 Shift type D - non Sortie du Superviseur.
disponible
F11 11 Gestion de l'Export de données.
F12 12 Affiche l'affichage du magnétoscope.
F13 13 -
F14 14 -
F15 15 -
F16 16 -
Back space 17 -
Tab 18 Non utilisé. -
Enter 19 Non utilisé. -
Shift 20 -
Ctrl 21 Non utilisé.
Alt 22 Non utilisé.
Pause 23 Non utilisé.
Esc 24
Space 25 Non utilisé.
Page up 26 Fenêtre suivante.
Page down 27 Fenêtre précédente.
End 28 Dernière zone de contrôle.
Home 29 Première zone de contrôle.
Left arrow 30
Up arrow 31 Zone de contrôle précédente.
Right arrow 32
Down arrow 33 Zone de contrôle suivante.
Print 34 Non utilisé.
Insert 35
SV_SCADABasic_fr 595
Delete 36
121 Sélecteur de variables.
123 Configuration LNS.
Numlock 37 Non utilisé.
Un exemple de configuration des touches de fonction est visible dans le chapitre de l'instruction KEY.
SV_SCADABasic_fr 596
Définition d'une Population
Voir aussi Appliqué à
Une population est définie par un nombre de lignes de texte enregistrées dans un buffer mémoire. Le
texte est placé dans le buffer en utilisant l'instruction SEQ_BUFFER.
Chaque définition de population consiste en une ligne définissant son nom suivi par un nombre d'autres
lignes définissant ses attributs.
Le nombre d'attributs de chaque type est limité à 50 pour une population, par exemple 50 domaines, 50
natures, etc ...
S'il y a plus d'attributs ajoutés, cela entraîne une erreur dans l'observateur
d'événements lorsque l'application est chargée :'\popu.dat line 104...'.
SV_SCADABasic_fr 597
Encodage de Message
Appliqué à
Les encodages de messages suivants peuvent être utilisés lors de l'envoi d'un message électronique
utilisant les instructions EMAIL ou EVENT.
Code Encodage
874 Thaïlandais (Windows)
932 Japonais (Shift-JIS)
936 Chinois simplifié (GB2312)
949 Coréen
950 Chinois traditionnel (Big 5)
1250 Europe centrale (Windows)
1251 Cyrillique (Windows)
1252 Europe de l'ouest (Windows)
1253 Grecque (Windows)
1254 Turc (Windows)
1255 Hébreux (Windows)
1256 Arabe (Windows)
1257 Balte (Windows)
1258 Vietnamien (Windows)
20127 US-ASCII
28591 Europe de l'ouest (ISO)
28592 Europe centrale (ISO)
28594 Balte (ISO)
28595 Cyrillique (ISO)
28596 Arabe (ISO)
28597 Grecque (ISO)
28599 Turc (ISO)
28603 Estonien (ISO)
50220 Japonais (JIS)
50225 Coréen (ISO)
SV_SCADABasic_fr 598
Expressions de Filtres
Appliqué à
Une expression de filtres peut être utilisée dans les instructions suivantes pour filtrer les données extraites
:
• ALARMDISPLAY
• LOGDISPLAY
• SVALA
• SVLOG
• SVTREND
• SVBRANCH
Un filtre commence avec un signe égal et se poursuit par une ou plusieurs expressions combinées avec
des opérateurs logiques. Chaque expression comprend un attribut, un opérateur et une valeur. Par
exemple :
=(#t BEG ALM)
qui comprend tous les noms de variables (#t) commençant (BEG) avec le texte ALM.
Les symboles suivants sont supportés :
Symbole Attribut
#t Nom de variable.
#T Libellé de variable (description).
Attribut booléen (comme un mot).
to Attributs étendus. A1 et A2 sont réservés pour Domaine et Nature.
Symbole Opération
== Egalité.
!= Inégalité.
> Supérieur à.
< Inférieur à.
>= Supérieur ou égal à.
<= Inférieur ou égal à.
^ or BEG Commençant par "string"
[ or INC Incluant "string"
$ or END Finissant par "string"
&& ET logique utilisé entre les éléments d'expression.
|| ORlogique utilisé entre les éléments d'expression.
Les noms d'attributs utilisés dans les expressions de filtres n'autorisent pas les espaces.
Par exemple (#A5==T 5) n'est pas autorisé.
SV_SCADABasic_fr 599
Expressions Régulières
Voir aussi Appliqué à
Les expressions régulières utilisées par SELECTOR sont dérivées des notes utilisées en automatisme pour
décrire le language formel et l'état final des machines.
Les expressions régulières sont formées de caractères : opérandes comme "a", "O" et "," et de méta-
caractères (opérateurs) comme "+", "|" et "[". Une expression régulière, qui est similaire à une expression
arithmétique familière, peut être soit une expression basique, soit une expression complexe formée par
des opérateurs appliqués à plusieurs expressions basiques.
Les méta-caractères réguliers pour les expressions et leurs utilisations, sont les suivants :
Opérateur Utilisation
\ Utilisé dans des séquences Echap pour spécifier les caractères n'ayant aucune représentation
(similaire à ceux utilisés en langage C).
\b Retour arrière.
\t Tabulation horizontale.
\n Nouvelle ligne ou interligne.
\f Nouvelle page ou présentation.
\r Retour automatique.
\ddd Valeur octale.
\c c représente n'importe quelle chaîne de caractères qui peut être prise littéralement.
^ L'accent circonflexe signifie le début d'une chaîne. Par exemple, "^abc" est égal à toutes les
chaînes qui commencent par "abc". Lors De son utilisation comme 1er caractère d'une
catégorie de caractères, il signifie une catégorie négative.
$ Le signe dollar signifie la fin d'une chaîne. Par exemple, "$z" est égal à toutes les chaînes
ayant "z" comme dernier caractère.
. Le point signifie n'importe quel caractère simple. Il faut être prudent avec ".*" qui signifie
tout.
[ L'ouverture de crochet signifie le début d'une classe de caractères.
] L'ouverture de crochet signifie la fin d'une classe de caractères.
| La barre droite est l'opérateur OU, "a|b" signifie soit "a", soit "b".
() Les parenthèses sont utilisées pour des expressions de groupe de la même façon que les
expressions arithmétiques.
* L'astérisque signifie 0 ou plus d'instances dans la chaîne spécifiée.
+ Le signe plus indique une fermeture positive et signifie 1 ou plus d'une expression spécifiée.
Par exemple "+z" signifie une chaîne de 1 ou plus "z"s.
? Le point d'interrogation signifie 0 ou 1 selon l'expression spécifiée. Par exemple "?9" signifie
soit une chaîne nulle, soit "9".
Classes de Caractères
Les classes de caractères sont des styles sténographiques pour signifier un ou plusieurs caractères.
Par exemple [AaBb] est égal à (A|a|B|b) et signifie "A", "a", "B", et "b".
Il y a également les valeurs, comme [A-Z] qui signifient tous les caractères en majuscules.
Les classes de caractères négatifs spécifient des caractères qui ne seront pas pris en compte. Par
exemple, [^A-Z] signifie tout excepté les caractères alphanumériques en majuscules.
SV_SCADABasic_fr 600
^System
Tous les noms de variables dont la fin est un numéro :
[0-9]$
Tous les noms de variables :
.*
SV_SCADABasic_fr 601
Format du Buffer de Paramètre pour Alarmes
Voir aussi Appliqué à
Le buffer de paramètre doit contenir une chaîne composée des éléments suivants séparés par des virgules
:
MaxLines[,Direction[,MinPriority[,MaxPriority[,ONNOACK[,ONACK[,OFFNOACK[,OFF[,NS[,Mask[,Filter[,For
mat]]]]]]]]]]]
Paramètre Signification
MaxLines Nombre maximum de lignes à extraire. Une valeur de 0 indique l'absence de limite.
Direction Présentation du résultat du tri :
0: Dernier événement en haut.
1: Dernier événement en bas.
MinPriority Priorité d'alarme minimum.
MaxPriority Priorité d'alarme maximum
ONNOACK 1: inclut les éléments Présents, Non acquittés; 0: omis.
ONACK 1: inclut les éléments Présents, Acquittés; 0: omis.
OFFNOACK 1: inclut les éléments Au repos, Non acquittés; 0: omis.
OFF 1: inclut les éléments Au repos, Acquittés; 0: omis.
NS 1: inclut les éléments invalides; 0: omis.
Mask Constantes pour le masque des données de type consignation :
1: Transition d'état
2: Acquittement d'alarme
4: Envoi de commande
8: Envoi de consigne
16: Envoi de texte
32: Envoi de recette
128: Connexion
256: Déconnexion
64: Transition d'état à 0
512: Transition d'état à 1
1024: Transition d'état à invalide
1600: Toutes les transitions d'état
2048: Alarme présente acquittée
4096: Alarme présente non acquittée
8192: Alarme au repos
16384: Alarme au repos non acquittée
32768: Alarme invalide
65536: Acquittement par opérateur
63488: Toutes les transitions d'alarme
131072: Exécution d'un programme
262144: Alarmes présentes
524288: Alarmes au repos
Filter Chaîne définissant un filtre d'alarme.
Voir le chapitre sur Les Expressions de Filtres. Si nul, il n'y a pas de filtre.
SV_SCADABasic_fr 602
Format Chaîne définissant le format des données extraites.
Utilise la même syntaxe que celle définissant le format de chaque ligne dans l'affichage
d'une fenêtre d'alarmes.
Si nul, le format par défaut #D/#M/#Y #h:#m:#s #E #T #C sera utilisé.
SV_SCADABasic_fr 603
Format du Buffer de Paramètre pour Consignations
Voir aussi Appliqué à
Le buffer de paramètre doit contenir une chaîne composée des éléments suivants séparés par des virgules
:
LogList,StartTime,EndTime[,MaxLines[,Direction[,Mask[,MinPriority[,MaxPriority[,Filter[,Format]]]]]]]
Paramètre Signification
LogList Nom de la liste de consignation.
StartTime Heure de début d’extraction.
EndTime Heure de fin d’extraction.
MaxLines Nombre maximum de lignes à extraire. Une valeur de 0 indique l'absence de limite.
Direction Présentation du résultat du tri :
0 : Dernier événement en haut.
1 : Dernier événement en bas.
Mask Constantes pour le masque des données de type consignation :
1: Transition d'état
2: Acquittement d'alarme
4: Envoi de commande
8: Envoi de contrôle
16: Envoi de texte
32: Envoi de recette
128: Connexion
256: Déconnexion
64: Transition d'état à 0
512: Transition d'état à 1
1024: Transition d'état invalide
1600: Toutes les transitions d'état
2048: Alarme présente acquittée
4096: Alarme présente non acquittée
8192: Alarme au repos
16384: Alarme au repos non acquittée
32768: Alarme invalide
65536: Acquittement par opérateur
63488: Toutes les transitions d'alarme
131072: Exécution d'un programme
262144: Alarme présente
524288: Alarme disparue
MinPriority Priorité d'alarme minimum.
MaxPriority Priorité d'alarme maximum.
Filter Chaîne définissant un filtre d'alarme.
Voir le chapitre sur Les Expressions de Filtres. Si nul, il n'y a pas de filtre.
Format Chaîne définissant le format des données extraites.
Utilise la même syntaxe que celle définissant le format de chaque ligne dans l'affichage
d'une fenêtre d'alarmes. Si nul, le format par défaut #D/#M/#Y #h:#m:#s #E #T #C
sera utilisé.
SV_SCADABasic_fr 604
Format du Buffer de Recette
Appliqué à
Le buffer utilisé par l'instruction RECIPE, modes READ et CREATE, utilise le format suivant :
Recipe header
Recipe variable definition 1
Recipe variable definition 2
" "
Recipe variable definition N
SV_SCADABasic_fr 605
Format du Rapport d'Import de Variable
Voir aussi Appliqué à
Le mode IMPORTFILE de l'instruction VARIABLE génère un fichier de rapport optionnel. Chaque ligne de ce
rapport a la structure suivante :
No Description
1 Nom du poste.
2 Nombre d'objets importés.
3 Nombre de variables ajoutées.
4 Nombre de variables modifiées.
5 Nombre de variables supprimées.
6 Nombre de variables inchangées.
7 Nombre d'objets pour lesquels la modification n'est pas définie.
8 Nombre d'échecs.
Exemple
SERVER_1,116,0,20,0,0,96,0
CLIENT_1,116,0,20,0,0,96,0
SV_SCADABasic_fr 606
Paramètres d'Objets de Communication
Voir aussi Appliqué à
Avec le mode 8 (CFG) de l'instruction CIMWAY, le champ paramètre param a différentes significations
dépendantes de la valeur de Modif. Ce chapitre spécifie leurs réglages.
Dans tous les cas, le type est STR. Par exemple : "1#0#0#0#0#40".
SV_SCADABasic_fr 607
adresse jbus (si passerelle, sinon 0) comprise entre 0 et 255
XBUS-IP-MASTER paramètres
=Adresse_esclave#adresse_IP1#adresse_IP2#adresse_IP3#adresse_IP
4
#Port_Number
ETHWAY paramètres = station#driver#réseau#porte#module#voie
adresse_équipement compris entre 0 et 64 si DH+ compris entre 0 et
255 si DH
adresse_équipement compris entre 0 et 255 (0 si pas de passerelle)
IPS7param Voir le chapitre Communication.Utilisation des drivers natifs du
Superviseur.Protocoles Ethernet TCP/IP.Siemens S7 Master.Scada
Basic.
SAIA Param = Sbus_station#ip1#ip2#ip3#ip4#port#cpu#ts_address#flag
Sbus_station: Sbus address
#ip1#ip2#i3#ip3: IP address
#port: port number
#cpu: CPU number
#ts_address: Time stamp address (optional)
#flag: = 8 for UTC time, else 0 (optional)
MEMORY_ADDRESS Adresse de trame
sur l'objet trame
pour la modification de l'adresse de la trame
Paramètres = Suite de champs séparés par des #
Protocoles Signification
Spécifiques
APPLICOM_ACCESS
paramètres = adresse_DB#adresse_distante
adresse_DB est l'adresse dans la Data Base de la carte applicom.
Elle est comprise entre 0 et 32000.
adresse_distante est l'adresse mémoire dans l'équipement
Pour les équipements de type SIEMENSparamètres =
adresse_DB#adresse_distante[#N°_Data_bloc]
Si le N° de Data bloc est omis, le numéro configuré sera utilisé.
si protocole = SINEC
H1, SINEC L1, DH+,
DH+ sur carte KT
paramètres = n°_DB#adresse_distante
n°_DB numéro de DB compris entre 1 et 256.
adresse_distante est l'adresse mémoire dans l'équipement.
APRILNET
SV_SCADABasic_fr 608
On ne peut pas modifier l'adresse des BIT en INPUT.
N10
On ne peut modifier que le repère automate.
SV_SCADABasic_fr 609
Poids des Droits d'Accès
Appliqué à
Pour plus d'informations, voir le chapitre sur les Droits d'accès dans l'aide de la configuration.
SV_SCADABasic_fr 611
Maintenance des Actions Associées par Programme
Voir aussi Appliqué à
Le procédé de configuration des actions associées pour les alarmes est décrit dans le chapitre
"Association d'une action avec une alarme" dans l'aide principal.
Fichiers
Les fichiers d'enregistrement et d'importation des actions associées se trouvent dans le répertoire du
projet comme suit :
Nom du fichier Sous-répertoire Contenus
ACTION.DAT C Enregistrements des actions : une ligne par action.
XXXX.DAT TP Modifications : une ligne par ajout ou suppression.
* Nouveaux champs.
SV_SCADABasic_fr 612
Le type d'enregistrement est facultatif (par exemple l'utilisateur peut écrire un enregistrement avec
ou sans).
Le type d'enregistrement est facultatif (par exemple l'utilisateur peut écrire un enregistrement avec
ou sans).
SV_SCADABasic_fr 613
1 Type d’enregistrement Caractère 6 DAAA
2 Type d’action Numerique 2 0
0 = action associée aux alarmes
3 Bouton du sélecteur Caractère 2 LB ou RB
LB = bouton gauche
RB = bouton droit
4 Nom de la variable Caractère 40
5 Indicateur programme ou fenêtre Caractère 1 P/W
P = Programme
W = Fenêtre
6 Nom programme ou fenêtre Caractère 12
7 Branche Caractère 30
8 Fonction Caractère 30
9 Arguments (entre guillemets) Caractère 2 047
10 Liste des producteurs Caractère 14
11 Liste des consommateurs Caractère 14
12 Origine de l’objet Numerique 2
0 si local
>0 si couche métier
13 Numéro de version de l’objet Numerique 2
14 Commentaire de l’objet Caractère 80
• La première ligne est nécessaire si vous ne désirez pas supprimer toutes les entrées (sans elle,
toutes les actions seront perdues).
• A partir de la seconde ligne, au moins 5 champs par ligne sont nécessaires.
SV_SCADABasic_fr 614
Maintenance des Actions Evénementielles par Programme
Appliqué à
Le format d'import d'actions événementielles depuis un fichier est le même que leur format
d'enregistrement s'ils sont saisis manuellement dans l'Application Explorer.
SV_SCADABasic_fr 615
Masquage par Programme
Voir aussi Appliqué à
Le masquage est normalement une opération temporaire effectuée dynamiquement sur l'état courant
d’une variable. Une variable masquée (ayant un niveau de masquage différent de 0) continue d’être
rafraichie mais sa valeur n'est plus diffusée en dehors de la base de données temps réel. Désormais toutes
les options de paramétrages de cette variable sont invalidées (Y compris les fonctionnalités alarmes et
enregistrements sur disque). La valeur de la variable est toutefois accessible par un programme SCADA
BASIC. Le masquage et démasquage d'une variable peut être fait de plusieurs manières, chaque niveau de
masquage étant représenté par un poids binaire dans le masque :
• Par un programme SCADA BASIC. Plus de 4 niveaux de masque peuvent être configurés de cette
façon :
1 = Niveau 1
2 = Niveau 2
4 = Niveau 3
8 = Niveau 4
• Par un opérateur. Par exemple, un alarme été peut être masquée en utilisant une option disponible
dans la fenêtre d'alarmes. Le poids binaire de cette option est 16.
• Par dépendance. Si la valeur de la variable dépend d'une autre, par exemple un état de seuil, la
variable source deviendra invalide à cause du masquage de la variable dépendante causant ainsi son
invalidité. Le poids binaire de cette option est 32. Autre exemple d'une variable apparaissant
masquée : une alarme est inhibée par une autre alarme ou état.
SV_SCADABasic_fr 616
Masques d'Evénements
Appliqué à
SV_SCADABasic_fr 617
2 Envoi à 1 (action opérateur)
4 Etat 0
8 Etat 1
SV_SCADABasic_fr 618
Mode d'envoi SENDLIST
Appliqué à
Les paramètres du mode d'envoi (OPCMode) de l'instruction SENDLIST déterminent la façon dont les
variables sont envoyées selon le type de communication utilisée.
• Sérialisation optimisée
• Ecriture MV3 sur le Serveur OPC 2 et attente du résultat.
• Si le résultat est OK, écriture MV1 et MV2 sur le serveur OPC 1 et attente du résultat.
• Si le résultat est OK, écriture MV4 et attente du résultat.
• La recette est terminée. Trois écritures OPC ont été utilisées.
• Sérialisation complète
• Ecriture MV3 sur le serveur OPC 2 et attente du résultat.
• Si le résultat est OK, écriture MV1 sur le serveur OPC 1 et attente du résultat.
• Si le résultat est OK, écriture MV2 sur le serveur OPC 1 et attente du résultat.
• Si le résultat est OK, écriture MV4 et attente du résultat.
• La recette est terminée. Quatre écritures OPC ont été utilisées.
• Aucune optimisation
• Ecriture MV3 sur le serveur OPC 2.
• Ecriture MV1 sur le serveur OPC 1.
• Ecriture MV2 sur le serveur OPC 1.
• Ecriture MV4 sur le serveur OPC 2.
SV_SCADABasic_fr 619
• Attente de tous les résultats.
• La recette est terminée. Quatre écritures OPC ont été utilisées.
• Optimisation complète
• Ecriture MV3 et MV4 sur le serveur OPC 2.
• Ecriture MV1 et MV2 sur le serveur OPC 1.
• Attente de tous les résultats.
• La recette est terminée. Deux écritures OPC ont été utilisées.
Si la liste envoyée par SENDLIST ne contient que des variables OPC, les deux modes peuvent
être utilisés.
SV_SCADABasic_fr 620
Mode Réseau de SVBATCH
Voir aussi Appliqué à
Description
La base de données de traçabilité est distribuée. Il est possible de définir des listes de station, et de
réaliser les opérations suivantes par rapport à cette liste :
Structure
Toutes les requêtes sont événementielles, le résultat de la requête est obtenue sur passage à 1 du bit
événement défini (NETWORKBROADCAST).
Le buffer de status permet d’obtenir le mode de requête en cours et de la traiter.
Un fois ce traitement terminé, le mode NEXTCOMMAND permet de réactiver l’éxécution des requêtes.
Tant que NEXTCOMMAND n’est pas appelé, toutes les requêtes empilées sont en attente d’exécution.
SV_SCADABasic_fr 621
Modification du Son joué par WEBVUE Mode MULTIMEDIA
Voir aussi
Le fichier son joué est appelé bip.wav et est embarqué dans l'applet Java AiWebVue.jac localisé dans le
répertoire suivant :
<Installation folder>\bin\WebServerExtensions\WebVue\Classes
Le fichier jar est un format zip et peut être édité en utilisant un éditeur zip. La procédure est la suivante :
(avant de démarrer, faire une sauvegarde de AiWebvue.jar par précaution)
Si vous avec déjà utilisé WebVue, vous devez purger le cache java pour forcer le chargement du fichier jar
au prochain démarrage de WebVue. Des instructions se trouvent dans l'aide principale dans le chapitre
Mise-à-jour de l'Applet.
SV_SCADABasic_fr 622
Structures des Données Batch
Voir aussi Appliqué à
CE MASQUE DOIT ETRE EDITE MANUELLEMENT. Chaque attribut devant être un index est représenté
par un binaire de 1. Par exemple, pour utiliser les attributs 1, 2, 5 et 6, le masque doit être 110011
ou 51 en décimal.
Lorsque le mode SELECT est utilisé, les attributs texte utilisés dans l'expression de recherche doivent
être indexés.
Exemple
BASEINFOS,DBREPORT,,19,3,,131071
où 131071 en décimal correspond au masque binaire 11111111111111111.
Il indique que l'expression de recherche peut être utilisée dans les premiers 17 attributs texte (#A1 à
#A17)
SV_SCADABasic_fr 623
Fichier de Rapport Batch
Il se trouve dans le répertoire PER\DatabaseName du projet:
BatchId.RPT
Attribut Signification
BatchId Identifie un batch.
BASE,DB3
BATCH,An2
DATE,08/04/1998 09:44:40:000,08/04/1998 09:48:41:000,1,"PRODUCT1","
PRODUCT2",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
DATE,08/04/1998 09:50:53:000,08/04/1998 09:57:05:000,2,"PRODUCT1",
,"PRODUCT3",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
SV_SCADABasic_fr 624
Suppression d'une Variable, Tendance ou Expression
Voir aussi Appliqué à
Ces informations s'appliquent à partir de la version 7.20d du logiciel sauf précisions.
Exemple
Pour supprimer ces variables : motor1.rate et motor1.stop
DNVAR,motor1.rate
DNVAR,motor1.stop
Entêtes
Pour supprimer, il faut ajouter des entêtes dans les modes IMPORTFILE/IMPORTBUFFER d'une variable (à
partir de la version 10.0 du logiciel) :
SV_SCADABasic_fr 625
Utilisation des Branches dans les Programmes
Voir aussi
Les programmes peuvent être démarrés avec une branche de variable. Par la suite toutes les variables
dans un programme, non précédées par le caractère @, sont relatives à cette branche.
Il y a plusieurs façons d'allouer une branche à un programme :
1. Par l'instruction TREE pour changer le nom de la branche sous contrôle d'un programme.
2. Par l'animation Exécution - Programme. Notez qu'il y a une limitation avec la fonction MAIN - voir ci-
après.
3. Par le lancement d'un programme ou la fonction d'une autre programme avec l'instruction
PROGRAM.
SV_SCADABasic_fr 626
Variables de Conditions
Voir aussi Appliqué à
Ce chapitre liste les conditions disponibles pour chaque type de variable.
Etat Signification
0 Faux
1 Vrai
S Significatif (valide)
NS Non significatif (invalide)
ALL Tous les états
Etat Signification
S Significatif (valide)
NS Non significatif (invalide)
ALL Tous les états
ACKON Présente et acquittée
ACKOFF Au repos
NOACKON Présente et non acquittée
NOACKOFF Disparue et non acquittée
Variables Texte
L'expression pour les variables texte ne peut contenir qu'une seule condition.
Condition Signification
ALL>S Transition de n'importe quelle valeur vers une valeur significative (valide).
NS > S Transition d'une valeur non significative (invalide) vers une valeur significative
(valide).
S>S Toute modification d'une valeur significative.
S>ALL Transition à partir d'une valeur significative (valide) vers un autre état.
SV_SCADABasic_fr 627
S > NS Transition à partir d'une valeur significative vers non-significative (invalide).
= string Egal à la chaîne donnée.
> string La valeur ASCII d'une variable texte est supérieure à celle de string.
< string La valeur ASCII d'une variable texte est inférieure à celle de string.
Variables Mesure
L'expression pour les variables mesure ne peut contenir qu'une seule condition.
Condition Signification
ALL>S Transition de n'importe quelle valeur vers une valeur significative (valide).
NS > S Transition d'une valeur non significative (invalide) vers une valeur significative
(valide).
S>S Toutes modifications d'une valeur significative vers une valeur significative.
S>ALL Transition à partir d'une valeur significative (valide) vers un autre état.
S > NS Transition à partir d'une valeur significative vers non-significative (invalide).
= value Egal à "value".
+ value La variable est augmentée par une valeur égale ou supérieure à value.
- value La variable est diminuée par une valeur égale ou supérieure à value.
> value La variable est supérieure à value.
< value La variable est inférieure à value.
SV_SCADABasic_fr 628