Serveur OPC-UA sur PLC
Generalites
- ATTENTION il faut un projet pour l'installation (voir ce document)
- La PLC doit tourner le serveur OPC-UA pour permette la communication OPC-UA
- Il faut installer la licence OPC-UA de Beckhoff sur la PLC
- Ua-Expert permet le management des variables de la PLC au travers de la communication OPC-UA
Installation de la licence OPC-UA sur TWC3
Dans le project TWC3 double click sur License puis onglet Manage Licenses
Selectionner TF6100 (TC3 OPC-UA)
Dans l'onglet Order Information (Runtime) selectionner TF6100 et l'activer avec le boutton "7 days Trial License" (suivre les instructions)
Configuration Projet PLC pour OPC-UA sur TWC3
ATTENTION: pour qu'un projet puisse travailler avec OPC-UA il faut activer les target Files:
<Mon_Project> -> PLC -> <mon_project>
Onglet Setting, target Files: selectionner TMC File et TPY File
Installation du server OPC-UA sur PLC
C'est un produit Beckhoff
https://beckhoff.com/ -> Download -> Software -> TwinCAT3 -> TFxxxx -> TF6xxx (Connectivity) -> product: TF6100 | TC3 OPC UA (version 3.3.12)
et dans notre distribution InstallEuler:
/gls/InstallEuler/Beckhoff/TF6100-OPC-UA.exe
Copie depuis une machine distante (PC Windows, Machine Virtuelle) sur la PLC:
Se connecter sur la PLC avec connexion bureau a distance (remote desktop Connection). ATTENTION: au prealable sur la PLC il faut autoriser les connexions remote dans:
Control-Panel -> System -> Remote Settings -> Allows remote connection
La connection se fait sous le compte "Administrator", mot de passe "1"
Sur le PC, lancer le bureau a distance et faire un copy paste d'un bureau a l'autre
Sur la PLC double click sur TF6100-OPC-UA.exe
Effectuer la demande decrite lors de l'installation, c'est a dire configurer le firewall pour autoriser le port TCP 4840:
Control-panel -> Windows Firewall -> Advanced settings
puis: Inbound Rules -> Add New Rule -> port -> TCP, local port:4840 -> "Allow the connection" -> Apply rule to Domain, Private, Public -> Name:
Choisir un nom pour respecter l'ordre dans la liste: UaGateway OPC-UA TCP port 4840
Utilisation de UaExpert depuis une machine distante
Download: https://www.unified-automation.com/downloads/opc-ua-clients/file/download/details/uaexpert-v140.html
On prends la version Windows - 32 Bit (Zip, 17.15MB)
Installation standard (unzip et cliquer sur l'installer)
Il faut remplir un formulaire de licence (Universite de Genève/Observatoire/Versoix/Geneve/CH)
Connexion par UaExpert
Click sur la signe "+" bleu (add Server)
-> Choisir un nom de configuration (nom de projet)
-> Endpoint Filter: type opc.tcp
-> dans l'onglet Discovery sous: Custom Discovery, faire le double click to Add Server et donner le IP:port de la PLC, exemple: opc.tcp://10.10.133.64:4840 et dans l'onglet Advanced remettre le meme Endpoint URL, c'eat a dire et meem exemple: opc.tcp://10.10.133.64:4840
Une fois finalise, on select le server que l'on souhaite acceder (notre projet) et on s'y connecte (icône prise electrique).
La premiere fois on installe une licence propre a Unified Automation UaExpert.
Malgré le message de warning (pour, on clique sur Trust Server Certificate, Continue)
Test de connexion sur serveur OPC-UA de la PLC
Sur la PLC Windows -> All Programs -> BeckHOFF -> TF6100 OPC UA -> TF6100 Configurator
Permet de tester la connexion. menu Server -> Open Online panel
Puis: Get Endpoints -> Connect
Le panneau indique la validite de la license
Verification de la licence pour UaExpert
Sur la PLC, mini-icone UA -> Administrate UaGateway pour les infos
Acces aux variables d'un programme PLC
Chaque variables accessible par OPC-UA doivent avoir les pragmas suivants juste avant leur definition (exemple pour la variable i_counter:
{attribute 'OPC.UA.DA' := '1'} {attribute 'OPC.UA.DA.Access' := '1'} // 1 == ReadOnly i_counter: INT ;
Attention le compilateur ne voit pas les erreurs de pragma!!!
Utilisation de UaExpert
Une fois connecté(icône prise électrique) on sélectionne PLC1 -> MAIN et on descend dans l'arborescence.
Exemple: pour lancer le homing:
on descend dans fb_MAIN_Dome -> st_SMList -> fb_SM_Homming
là on voit les variable de control/status
En cliquant sur b_requested on voit sa valeur dans le panneau attribute -> Value -> Value
il suffit de tirer b_requested dans le panneau central (Data Access View) pour permettre de le modifier.
Comme c'est un boulean on clique dans la colonne Value et un checkBox apparait et permet de modifier la valeur. On la valide en cliquant ailleurs dans le panneau.
Le homing démarre et s'arrête lors de la detection du top zero. Le checkBox disparaît et false apparait.