CIMWAY

Icône du lien vers le conceptVoir également Icône du lien vers le conceptExemple

Contrôle de la communication pour la plupart des drivers d'acquisition de données basés sur des scrutations cycliques.

Support WebVue - Oui.

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

Force toutes les trames cycliques à être scrutées même si elles sont non connectées à aucune variable.

 

 

Retour : 1 si OK, sinon 0.

17

SEQUENCINGWRITE

Active ou désactive le mode séquentiel des écritures.

 

 

Retour : 1 si OK, 0 sinon.

18

GETPENDINGWRITE

Récupère le nombre d’écritures dans la file du gestionnaire*

 

 

Retour : le nombre d'écritures.

*GETPENDINGWRITE returns a LONG.

Syntaxe 2

IntVal = CIMWAY(Mode, Network.Node.Frame, Period);

Type de retour : INTEGER.

Argument

Définition

Period

Nouvelle période à laquelle la trame doit être scrutée (exprimée en secondes). La valeur maximum est 3276. 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, -1 si la période de scrutation est hors bornes (inférieure à -2 ou supérieure à 3276), sinon 0 (trame n'existe pas...).

Exemple

Utilise une période de scrutation d'une trame configurée à 20 secondes.

Durée 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

Définition

ComObj

L'objet de communication. Peut être un réseau, un équipement ou une trame.

 

Réseau : Network name

 

Equipement : Network_name.Node_name

 

Trame : 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.

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 et NA (Non Accessible).

Syntaxe 4

LongVal = CIMWAY(Mode, ComObj);

Argument

Définition

ComObj

L'objet de communication. Peut être un réseau, un équipement ou une trame.

 

Réseau : Network name

 

Equipement : Network_name.Node_name

 

Trame : Network_name.Node_name.Frame_name

Type de retour: LONG.

Exécution

Mode

Mnémonique

Action

5

ERROR

Retourne le compteur d'erreur de l'objet de communication.

 

 

Retour : Valeur du compteur d'erreurs.

Le compteur d'erreurs donne le nombre d'erreurs de communication.

Syntaxe 6

IntVal = CIMWAY(Mode, ComObj, Modif, Param, [, ResultVar]);

Type de retour : INTEGER.

Argument

Définition

ComObj

Élément de configuration à modifier : Un réseau, un équipement ou une trame.

Modif

La propriété que vous souhaitez modifier :

 

PORT_NUMBER : Modification du numéro de port utilisé pour se connecter au réseau. ComObj est le nom d'un réseau. Par exemple Net1. En général, utilisé seulement pour les drivers utilisant un port série.

 

EQT_ADDRESS : Modification de l'adresse de l'équipement. ComObj est le nom d'un équipement connecté à un réseau. Par exemple, Net1.Dev1.

 

MEMORY_ADDRESS: Modification d'une adresse de trame. ComObj est le nom d'une trame rattachée à l'équipement. Par exemple, Net1.Dev1.Frame1.

Param

En fonction de la valeur de Modif.

  • Si Modif est PORT_NUMBER, Param est le numéro de port compris entre 1 et 64 (COM1 à COM64). Type STR.

  • Si Modif est EQT_ADDRESS, Param est une chaîne avec une syntaxe du type Param1#Param2#Param3...#ParamN. Type STR.
    La syntaxe exacte dépend du driver de communication modifié. Pour plus d'informations, veuillez vous référer à la section SCADA Basic dans la rubrique décrivant le Driver équipement qui vous intéresse.

  • Si Modif est MEMORY ADDRESS, Param est l'adresse à appliquer à la trame. La valeur dépend du type d'équipement. Type INTEGER.

ResultVar

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 élément de communication. Le statut de la modification peut être renvoyé dans la mesure optionnelle ResultVar :

0 = Modification en cours
1 = Modification terminée avec succès
2 = Échec de la modification

 

 

Retourne : 1 si OK, 0 si l'élément de configuration à modifier est inconnu ou si les paramètres sont incorrects.

Syntaxe 7

IntVal = CIMWAY(Mode, network_name.Equipment_name.Frame_name, RM);

Type de retour : INTEGER.

Argument

Définition

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

Description

Delay

Délai en secondes.

Mode

Un flag correspondant au mode dans l'instruction SENDLIST :

 

0 pour le mode BLOC

 

1 pour le mode MULTIPLE

Flag

Soit 1 ou 0.

Exécution

Mode

Mnémonique

Action

13

WRITEGROUP

Optimiser le traitement des trames d'écriture par CIMWAY.

Normalement, une trame en écriture est traitée lorsque l'une des variables qui lui sont liées changent. Cette instruction fait que les changements sont mis en mémoire buffer et que la trame est traitée une fois toutes les Délai secondes .

Si le flag est défini à 1, alors tous les changements d'une variable sont envoyés. Si le flag est 0, alors peut être perdu.

Par exemple, si le délai est réglé à 5 et qu'une variable change de 1 à 0 puis revient à 1 à nouveau pendant la période de traitement, le changement ne sera pas vu.

 

 

Retour : 1 si OK, 0 sinon (erreur de syntaxe ou trame inexistante).

Si vous entrez une fraction pour Délai, elle sera arrondie à un nombre entier (par exemple 0.5 deviendra 0 et 1.8 deviendra 1).

Syntaxe 9

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 dossiers C et TEMP du projet.

 

 

Retour : 0 si OK, sinon :

-1 si le fichier à importer n'est pas trouvé
-2 est le nom de fichier pour un dossier
-3 si l'écriture dans COMM. AT n'est pas possible (droits d'écriture, etc.)
-4 si l'écriture sur CTEMP\COMM.DAT n'est pas possible (droits d'écriture, etc.)

 

Le fichier COMM.DAT original est écrasé.

Syntaxe 10

IntVal = CIMWAY (Mode, Sequence/not);

Type de retour : INTEGER

Argument

Définition

Sequence/not

"YES" : activé

"NO" - désactiver.

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

Définition

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 s’est réalisée correctement

0 si les arguments sont erronés

2 si la variable est déjà utilisée par une autre demande de type READFRAME

 

 

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, ComObj, CommandString);

Type de retour : INTEGER.

Argument

Définition

ComObj

Identifiant de l'objet cible, pour accéder à :

Tous les réseaux : Chaîne vide.

Un réseau : NetworkId.

Un Equipement : NetworkId.DeviceId.

Une trame : NetworkId.DeviceId.FrameId.

Type : STR.

CommandString

La commande à envoyer au driver. Type STR.

La liste des commandes et la syntaxe dépendent du driver de communication.
Pour plus d'informations, veuillez vous référer à la section SCADA Basic dans la rubrique décrivant le Driver équipement qui vous intéresse.

Exécution

Mode

Mnémonique

Action

15

SENDMSG

Message envoyé aux objets de communication.

 

 

Retour : 1 si OK (l'objet de communication a pris en compte le message), sinon 0.

Exemple

Pour activer le mode séquentiel d'enregistrement :

CIMWAY("SEQUENCINGWRITE", "YES");

Pour obtenir le nombre d'entrées dans la file d'attente :

IntVal = CIMWAY ("GETPENDINGWRITE");

Pour mettre à jour la trame de communication :

CIMWAY("READFRAME","NETWORK.EQT1.WORD","RESULT");

Pour plus d'exemples, sélectionnez le lien Exemple ci-dessus.