STRUCTURES DES VARIABLES OPC CHEZ SIMTRONICS SAS
Les items du serveur OPC d'ICARE se construisent comme suit :
net[<netID>].node[<nodeID>].<netvar>.<SNVT_type>!<SNVT_comp> :
...
Dans laquelle <netID> est l'identifiant du réseau,
<nodeID> celui du noeud, <netvar> le nom donné à la
variable réseau dans l'application du noeud, <SNVT_type> est le
type de la variable réseau, <SNVT_comp> est le nom pour un type
structuré sur plusieurs niveaux.
Les types de données des détecteurs sur le
serveur OPC sont décomposés en deux familles :
- ICARE_GAS, comprenant l'ensemble des détecteurs
liés aux gaz.
- ICARE_UV2IR comprenant l'ensemble des détecteurs
liés aux flammes.
Dans chacune des deux familles, on retrouve les données
sous plusieurs formes : en Bits et en Bytes.
Un bit contient une information.
Un byte contient huit informations.
Liste des données communes aux deux
familles :
|
COMMUN
|
|
Suffixe spécifique de l'item OPC
|
Bytes
|
Bits
|
Commandes
|
CommCmd
|
0 : Commande mode alterné
|
commande communication
|
1 : Commande mode fixé côté A
|
|
2 : Commande mode fixé côté B
|
|
3 : Commande mode répéteur
|
SwitchCmd
|
0 : Commande fermeture switch
|
commande du switch
|
1 : Commande ouverture switch
|
|
4 : Commande fermeture switch sécurisée
|
|
5 : Commande ouverture switch sécurisée
|
TransModeCmd
|
Bit 0 : inhibition alarmes
|
TransAlarmsInhibit : 1
|
commande mode de fonctionnement
|
Bit 1 : mode test liens réseau
|
NetTest : 1
|
|
Bit 2 : mode hors service
|
NetDisable : 1
|
|
Bit 5 : switch persistant
|
NetSwitchPersistent : 1
|
|
Bit 6 : mode émulation
|
NetEmultateDetector : 1
|
Défauts
|
TransFailure
|
Bit 0 : autotest carte échoué
|
TransTestFailure:Value : 1
|
défauts de la carte numérique
|
Bit 2 : Défaut comm SPI
|
TransSPIFailure:Value : 1
|
|
Bit 3 : message réseau échoué
|
NetMessageFailed:Value : 1
|
|
Bit 5.7 : cause du reset carte
|
NetResetInfo:Value
|
|
0 : inconnu
|
0 : inconnu
|
|
1 : power up
|
1 : power up
|
|
2 : pint reset Neuron Chip
|
2 : pint reset Neuron Chip
|
|
3 : software
|
3 : software
|
|
4 : watchdog
|
4 : watchdog
|
Informations
|
Quality
|
<>192 : Absent
|
présence du détecteur
|
= 192 : Présent
|
SwitchComm
|
Bit 0.2 : état du switch
|
Switch Value :
|
état du switch et de la communication
|
0 : fermé
|
0 : fermé
|
|
1 : ouvert
|
1 : ouvert
|
|
3 : ouvert sur incident
|
3 : ouvert sur incident
|
|
5 : ouvert en mode sécu
|
5 : ouvert en mode sécu
|
|
7 : inconnu
|
7 : inconnu
|
|
Bit 3 : comm mode repéteur
|
Repeater:Value : 1
|
|
Bit 4 : comm côté B
|
CommB:Value : 1
|
|
Bit 5 : comm côté A
|
CommA:Value : 1
|
|
Bit 6 : pas de tension côté B
|
PowerFailureB:Value : 1
|
|
Bit 7 : pas de tension côté A
|
PowerFailureA:Value 1
|
Liste des données propres à ICARE_GAS :
|
ICARE_GAS
|
|
Suffixe spécifique de l'item OPC
|
Bytes
|
Bits
|
Alarmes
|
Alarms
|
Bit 0 : alarme gaz niveau 1
|
Alarm1:Value : 1
|
alarmes du détecteur
|
Bit 1 : alarme gaz niveau 2
|
Alarm2:Value : 1
|
|
Bit 2 : alarme gaz niveau 3
|
Alarm3:Value : 1
|
|
Bit 3 : alarme gaz niveau 4
|
Alarm4:Value : 1
|
|
Bit 4 : protection sonde
|
SensorProtection:Value : 1
|
|
Bit 6 : alarme interne n1
|
LocalRelay1:Value : 1
|
|
Bit 7 : alarme interne n2
|
LocalRelay2 :Value : 1
|
Défauts
|
GasFailure
|
Bit 0 : défaut cellule gaz
|
SensorFailure:Value : 1
|
défauts de la cellule de détection
|
Bit 1 : dérive du zéro
|
ZeroShift:Value : 1
|
|
Bit 2 : dépassement échelle
|
ScaleLimitsExceeded:Value : 1
|
|
Bit 3 : défaut calibrage zéro
|
ZeroCalFailure:Value : 1
|
|
Bit 4 : défaut calibrage gain
|
GainCalFailure:Value : 1
|
|
Bit 5 : défaut compensation
|
CompensationFailure:Value : 1
|
Informations
|
|
Measure
|
Mesure du capteur sans facteur d'échelle
appliqué
|
mesure du capteur
|
|
|
Class
|
21 : capteur gaz 2G
|
modèle du capteur
|
23 capteur gaz 3G
|
TransMode
|
Bit 0 : alarmes gaz inhibées
|
TransAlarmsInhibited:Value : 1
|
mode de fonctionnement du capteur
|
Bit 1 : mode test
|
NetModeTestMode:Value : 1
|
|
Bit 2 : mode hors service
|
NetDisableMode:Value : 1
|
|
Bit 3 : en configuration IR
|
TransRemoteConfid:Value : 1
|
|
Bit 4 : cellule en chauffe
|
SensorWarmingUp:Value : 1
|
|
Bit 5 : switch persistant
|
NetPersistentSwitch:Value : 1
|
|
Bit 6 : mode émulation
|
NetEmulationMode:Value : 1
|
|
Bit 7 : en maintenance
|
TransMaintenanceMode:Value: 1
|
Liste des données propres à
ICARE_UV2IR :
|
ICARE_UV2IR
|
|
Suffixe spécifique de l'item OPC
|
Bytes
|
Bits
|
Alarmes
|
Alarms
|
Bit 0 : alarme flamme
|
Alarm:Value : 1
|
alarmes du détecteur
|
Bit 1 : préalarme flamme
|
Prealarm:Value : 1
|
|
Bit 6 : alarme interne n1
|
LocalRelay1:Value : 1
|
|
Bit 7 : alarme interne n2
|
LocalRelay2 :Value : 1
|
Défauts
|
FlameFailure
|
Bit 0 : défaut detection UV
|
UVFailure:Value : 1
|
défauts de la cellule de détection
|
Bit 1 : défaut detection IR
|
IRFailure:Value : 1
|
|
Bit 2 : défaut cellule detection
|
DetectorFailure:Value : 1
|
|
Bit 6 : mode simulation flamme
|
FlameSimulationMode:Value : 1
|
|
Bit 7 : mode test feu
|
FlameTestMode:Value : 1
|
Informations
|
Class
|
22 : uv2ir 3G
|
modèle du capteur
|
|
TransMode
|
Bit 0 : alarme flamme inhibée
|
TransAlarmsInhibited:Value : 1
|
mode de fonctionnement du capteur
|
Bit 1 : mode test
|
NetModeTestMode:Value : 1
|
|
Bit 2 : mode hors service
|
NetDisableMode:Value : 1
|
|
Bit 3 : en configuration IR
|
TransRemoteConfid:Value : 1
|
|
Bit 5 : switch persistant
|
NetPersistentSwitch:Value : 1
|
|
Bit 6 : mode émulation
|
NetEmulationMode:Value : 1
|
|
Bit 7 : en maintenance
|
TransMaintenanceMode:Value: 1
|
FlameIR
|
FlameIR:Value : 1
|
détection de flamme par infrarouge
|
|
|
FlameUV
|
FlameUV:Value : 1
|
détection de flamme par ultraviolet
|
|
|
Arborescence du serveur OPC :
Voici comment se présentent l'arborescence des
variables OPC :
Net[255]
Node[4354]
nvi_Activate
ICARE_CommCmd
nvi_ModeTrans
ICARE_TransModeCmd
Bits
NetDisable
NetEmulateDetector
NetSwitchPersistent
NetTest
TransAlarmsInhibit
Bytes
nvi_Relay
ICARE_SwitchCmd
nvo_Life_Signal
ICARE_Gas
Bits
Class
Measure
Switch
Repeater
CommB
CommA
PowerFailureB
PowerFailureA
Alarm1
Alarm2
Alarm3
Alarm4
SensorProtection
LocalRelay1
LocalRelay2
SensorFailure
ZeroShift
ScaleLimitsExceeded
ZeroCalFailure
GainCalFailure
CompensationFailure
TransUnconfigured
TransTestFailure
TransSPIFailure
NetMessageFailed
NetResetInfo
TransAlarmsInhibited
NetTestMode
NetDisabledMode
TransRemoteConfig
SensorWarmingUp
NetPersistentSwitch
NetEmulationMode
TransMaintenanceMode
Bytes
Class
Measure
SwitchComm
Alarms
GasFailure
TransFailure
TransMode
Description
Quality
Stage 08/09 chez SIMTRONICS SAS
Optimisation
Dans le but de pouvoir permettre à SIMTRONICS SAS
d'exploiter mon travail après la fin de mon stage, il m'a fallu,
après avoir complètement réalisé le mode de
démonstration, optimiser le mode OPC de façon à avoir le
moins de variables externes possibles.
En effet, les variables dites « externes »
sont en réalité les variables liées à des variables
OPC du serveur OPC.
Par ailleurs, dans le cas de PCVUE, le prix du logiciel
dépend du nombre de variables externes utilisées.
C'est pourquoi l'optimisation est une étape importante
dans le but de réduire au maximum le coût financier de la
supervision.
Pour le mode OPC de mon projet, nous avons donc
décidé de travailler uniquement en bytes, permettant dans un
premier temps de réduire le nombre de variables externes.
C'est pour cela qu'il m'a fallu établir une
méthode de travail rigoureuse.
Stage 08/09 chez SIMTRONICS SAS
Méthode de travail en mode OPC réel
La méthode de travail que j'ai utilisée est la
suivante :
1. Lancement du configurateur SYNTEL pour pouvoir
émuler un changement d'état sur le serveur OPC
2. Lancement du client OPC « SOFTING OPC TOOLBOX
DEMO CLIENT »
3. Lancement du superviseur PCVUE pour les procédures
de tests.
Par exemple, pour la variable qui permet de retourner la
valeur de la mesure du capteur.
On crée la variable Measure qui sera associée
à la variable externe OPC du serveur ICARE :
net[255].node[4353].nvo_LifeSignal!ICARE_Gas!Bytes!Measure
Via le configurateur, on émule une mesure qui va se
répercuter sur le serveur OPC
Ici, on a émulé une mesure du capteur de
30%LIE
La valeur est repercutée sur le client OPC qui nous
permet de vérifier si le serveur OPC a bien pris en compte la nouvelle
valeur :
On a lié la variable measure au barre graphe sur la vue
de détails du capteur sur PCVUE
Le serveur OPC répond bien à la supervision, le
principe reste le même pour tout le reste du développement.
|