CIMWAY
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 |
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 :
|
||||||||
|
|
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.
|
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 |
|
|
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é
|
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. |
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.