Présentation
Le protocole UNI?TE est utilisé pour :
identifier et diagnostiquer tous les équipements disposant d'un serveur UNI?TE ;
fournir un ensemble de services donnant l'accès en lecture/écriture aux données de type ;
télécharger les données d'un équipement à un autre ;
protéger un serveur contre les connexions concurrentes en période critique.
Ces différents services sont disponibles grâce à
la fonction SEND_REQ
, avec le codage de la requête
UNI-TE à envoyer.
Les tableaux suivants fournissent une liste non exhaustive des requêtes reconnues par les équipements Premium.
Requêtes d'utilisation générale
Ces requêtes sont utilisées pour identifier et diagnostiquer tous les types d'équipement disposant d'un serveur UNI?TE.
Nom de requête |
Code de requête |
Code de compte rendu |
Commentaire |
---|---|---|---|
|
16#0F |
16#3F |
Fournit des informations sur:
|
|
16#4F |
16#7F |
Réalise un diagnostic système sur n'importe quel équipement. |
|
16#30 |
16#60 |
Permet d'adapter la version du protocole entre deux équipements communicants. |
|
16#FA |
16#FB |
Teste le routage correct des données entre deux équipements communicants. |
Modification dynamique des paramètres IP
Modification des paramètres IP
Nom de requête |
Code de requête |
Commentaire |
---|---|---|
|
16#37 |
Fonction de codage d'une requête. |
|
16#13 |
Modifie la sous-fonction des paramètres IP. |
Pour garantir que le module ETY est prêt à fonctionner,
laissez l'automate fonctionner (en mode Run) pendant 15 secondes après
le dernier arrêt avant de lancer la fonction SEND_REQ. Après l'émission de la commande CHANGE IP PARAMETERS
par l'utilisateur et l'acceptation
des nouveaux paramètres par le module ETY, ce dernier est réinitialisé
et lance les opérations en fonction des nouveaux paramètres.
Utilisation des paramètres en cas de modification de l'adresse IP
Ce tableau est basé sur un exemple utilisant l'adresse IP 139.158.10.7, le masque de sous-réseau 255.255.248.0 et l'adresse de passerelle 139.158.8.1.
Paramètre |
Type |
Valeur |
Commentaire |
---|---|---|---|
|
array [0...5] of INT |
ADDR ('rack.slot.channel.SYS') |
Exemple : ADDR (0.x.0.SYS’) x = emplacement dans lequel le module ETY est installé. |
|
INT |
16#37 |
|
|
array [0...8] of INT |
Octet 1 : sous-fonction (13h) |
Octet de poids fort |
Octet 2 : sous-fonction (96h) |
Octet de poids faible |
||
Octet 3 : 0 |
La valeur est ignorée. |
||
Octet 4 : 0 |
La valeur est ignorée. |
||
Octet 5 : adresse IP 2 (158) |
1-239 (octet de poids fort) |
||
Octet 6 : adresse IP 1 (139) |
0-255 (octet de poids faible) |
||
Octet 7 : adresse IP 4 (7) |
0-255 (octet de poids fort) |
||
Octet 8 : adresse IP 3 (10) |
0-255 (octet de poids faible) |
||
Octet 9 : masque de sous-réseau 2 (255) |
255 |
||
Octet 10 : masque de sous-réseau 1 (255) |
0-255 |
||
Octet 11 : masque de sous-réseau 4 (0) |
0-255 |
||
Octet 12 : masque de sous-réseau 3 (248) |
0-255 |
||
Octet 13 : passerelle 2 (158) |
1-239 (l'adresse de la passerelle doit se trouver sur le même sous-réseau que l'adresse IP.) |
||
octet 14 : passerelle 1 (139) |
0-255 |
||
octet 15 : passerelle 4 (1) |
0-255 |
||
octet 16 : passerelle 3 (8) |
0-255 |
||
|
numéro du mot |
Octet de poids fort |
Octet de poids faible |
1 |
compte rendu d'activité |
00 |
|
2 |
compte rendu d'opération (voir remarque) |
compte rendu de communication (voir remarque) |
|
3 |
temporisation (ms) |
||
4 |
longueur : 18 (INT) |
||
NOTE : le tableau
suivant fournit des informations détaillées sur les codes
d'adresse IP (corrects et incorrects).
|
Reportez-vous à l'exemple de la section Modification des paramètres IP avec SEND_REQ.
Modification des codes d'adresse IP
Rapport d'opération |
Rapport de communication |
Signification |
---|---|---|
code correct |
||
FE (hex) |
00 (hex) |
(SEND_REQ) a modifié correctement l'adresse IP. |
codes d'erreur |
||
01 (hex) |
FF (hex) |
valeur de code de requête incorrecte (par exemple, différente de 16#37) |
00 (hex) |
03 (hex) |
SEND_REQ envoyée à l'adresse IP du module ETY au lieu d'être envoyée sur l'embase |
00 (hex) |
07 (hex) |
mappage d'adresse vers le module ETY incorrect |
16 (hex) |
FF (hex) |
adresse IP incorrecte |
17 (hex) |
FF (hex) |
sous-réseau incorrect |
18 (hex) |
FF (hex) |
adresse de passerelle incorrecte |
19 (hex) |
FF (hex) |
adresse réseau incorrecte |
1A (hex) |
FF (hex) |
adresse IP du module ETY déjà réglée pour envoyer une requête (SEND_REQ) |
FD (hex) |
00 (hex) |
(SEND_REQ) n'a pas réussi à modifier l'adresse IP. |
Utilisation des paramètres de commande de réinitialisation de module
L'opération de réinitialisation de module force le module Premium ETY et le module de communication ETY PORT à amorcer un cycle de réinitialisation de leur environnement de travail. Pour programmer un bloc fonction SEND_REQ qui exécute cette commande de réinitialisation, utilisez le code fonction 37 et le code sous-fonction 10.
Paramètre |
Type |
Valeur |
Commentaire |
---|---|---|---|
|
array [0...5] of INT |
ADDR ('rack.slot.channel.SYS') |
Exemple : ADDR (0.x.0.SYS’) x = emplacement dans lequel le module ETY est installé. |
|
INT |
16#37 |
|
|
array [0...1] of INT |
Octet 1 : sous-fonction (10h) |
Octet de poids fort |
Octet 2 : sous-fonction (96h) |
Octet de poids faible |
||
Octets 3, 4 : 0 |
Réservé |
||
|
Numéro du mot |
Octet de poids fort |
Octet de poids faible |
1 |
compte rendu d'activité |
00 |
|
2 |
compte rendu d'opération (voir remarque) |
compte rendu de communication (voir remarque) |
|
3 |
temporisation (ms) |
||
4 |
longueur : 4 (INT) (dans cet exemple) |
||
NOTE : le tableau
suivant fournit des informations détaillées sur les codes
de réinitialisation de module (corrects et incorrects).
|
Codes de commande de réinitialisation de module
Rapport d'opération |
Rapport de communication |
Signification |
---|---|---|
code correct |
||
FE (hex) |
00 (hex) |
SEND_REQ a correctement réinitialisé le module |
codes d'erreur |
||
01 (hex) |
FF (hex) |
valeur de code de requête incorrecte (par exemple, différente de 16#37) |
00 (hex) |
07 (hex) |
mappage d'adresse vers le module ETY incorrect |
FD (hex) |
00 (hex) |
SEND_REQ n'a pas réinitialisé le module |
Accès aux objets
Ces requêtes fournissent un ensemble de services qui permettent l'accès en lecture/écriture aux données internes de type bit et mot, aux données système de type bit et mot, aux données de virgule flottante, aux données constantes et aux données SFC.
Nom de requête |
Code de requête |
Code de compte rendu |
Commentaire |
---|---|---|---|
|
16#36 |
16#66 |
Permet de lire un ou plusieurs objets consécutifs du même type. |
|
16#37 |
16#FE |
Permet d'écrire un ou plusieurs objets consécutifs du même type. |
|
16#00 |
16#30 |
Permet de lire la valeur d'un bit interne. |
|
16#10 |
16#FE |
Permet d'écrire la valeur d'un bit interne. |
|
16#04 |
16#34 |
Permet de lire la valeur d'un mot interne. |
|
16#14 |
16#FE |
Permet d'écrire la valeur d'un mot interne. |
Gestion des modes de marche
Ces requêtes fournissent un ensemble de services servant à gérer les modes de marche d'un processeur.
Nom de requête |
Code de requête |
Code de compte rendu |
Commentaire |
---|---|---|---|
RUN |
16#24 |
16#FE |
Permet de lancer l'exécution des tâches d'un processeur. |
STOP |
16#25 |
16#FE |
Permet d'arrêter l'exécution des tâches d'un processeur. |
INIT |
16#33 |
16#63 |
Permet de déclencher un redémarrage à chaud ou à froid. |
Gestion des réservations
Ces requêtes fournissent un mécanisme de réservation servant à protéger un serveur contre des connexions concurrentes en période critique.
Nom de requête |
Code de requête |
Code de compte rendu |
Commentaire |
---|---|---|---|
RESERVE |
16#1D |
16#FE |
Permet à un client de réserver tout ou partie des fonctions d'un serveur. |
RELEASE |
16# 1E |
16#FE |
Permet à un client de libérer le serveur réservé. |
I_AM_ALIVE |
16#2D |
16#FE |
Permet de maintenir la réservation. |
SEND_REQ
avec le code de requête 16#1D.If
NOT Management_Table[0].0 then (*reservation 1D*)
Management_Table[2]:=4; (* time out *)
SEND_REQ (ADR :=ADDR('sys'),
CODE := 16#001D,
EMIS := Emis_table,
GEST := Management_Table,
RECP => Receive_buffer);
END_IF;
Avec les variables créées dans l'éditeur de données comme suit :
Management_Table: ARRAY [0..3] OF INT
Emis_table: ARRAY [0..0] OF INT
Receive_buffer: ARRAY [0..0] OF INT
Management_Table[2]
.