Page suivante: Fermeture de BonOMM        Page: BonOMM et le contrôle de la bonnette      Page précédente: Périphériques

Communications


La plupart des communications s'effectuent par le biais des nombreux ports séries de l'ordinateur de la bonnette. Les numéros de port ainsi que leur vitesse (« baud rates ») sont ajustés aux valeurs suivantes :

1. Communication avec les périphériques de BonOMM

1.1 TCS

Le protocole de communication série, initialement conçu par DFM, a été entièrement revu. La séquence de la communication entre BonOMM et TCS est désormais plus robuste. Afin d'augmenter la rapidité d'exécution, nous avons deux ports de communications : « TCS-Requête » et « TCS-Contrôle ». Le premier sert uniquement à obtenir les informations de TCS et répond seulement aux commandes « EXCOM » 13, 25, 26, 28 et 33, tandis que le deuxième port (« TCS-Contrôle ») donne accès à toutes les commandes de type « EXCOM » (voir le manuel du TCS de DFM ). Le connecteur du port de requête (situé à l'arrière de l'ordinateur de TCS) est un DB-25; celui du port de contrôle est un DB-9.

ATTENTIONN : Ces deux ports ne sont pas interchangeables.

1.2 Tables de guidage

La communication avec le contrôleur des tables de guidage est beaucoup moins capricieuse. Il suffit de spécifier le bon numéro de port et de s'assurer que la vitesse de communication de BonOMM et du contrôleur soit la même. Pour ajuster ces paramètres dans le logiciel, il faut utiliser les contrôles « Table port number » et « Table Baud Rate » (quelle section de BonOMM ??) alors que pour le contrôleur il faut utiliser le « joy stick » (voir le manuel du MS-204 pour connaître la procédure "Est-ce que la version PDF est disponible ?"). La seule raison pour laquelle le contrôleur ne ferait pas tout ce qu'on lui demande est l'accumulation de commandes dans le tampon du port. Comme la communication s'effectue normalement à 38400 bits par secondes, il peut répondre à la commande « Q: » (demande de position = 50 bytes) plus de 75 fois par seconde. Cependant, le logiciel ne l'interroge que 2 fois par seconde, il y a donc peu de chance qu'un « OVERFLOW » se produise, mais on ne sait jamais. C'est pourquoi il est recommandé d'attendre la fin de l'exécution d'une commande avant d'en envoyer une autre. La séquence itérative de demande d'informations actualise l'état des tables de guidages toutes les 700ms.

1.3 Lampes d'étalonnage

Ici, la communication est établie directement sur un circuit électronique de contrôle qui transfère les bits séries reçus sur 8 sorties parallèles. Il n'y a donc que trois bits utilisés - les trois bits les plus significatifs - les autres bits disponibles pourront éventuellement être utilisés à d'autres fins. Comme le circuit de communication est alimenté en permanence, tant que l'alimentation est branchée sur le module celui-ci devrait recevoir les commandes même s'il est en mode manuel. Cependant, si LabVIEW est fermé, le fait de passer de PC à manuel ou l'inverse réinitialisera le circuit à des valeurs aléatoires.

ATTENTION : il est important de ne pas faire basculer l'interrupteur en mode PC après avoir fermé LabVIEW, sinon une ou plusieurs lampes pourraient être allumées.

1.4 Caméra de guidage

La communication avec le contrôleur de la caméra de guidage se fait maintenant via un adaptateur réseau qui permet de télécharger les images par le réseau plutôt que par le port parallèle. Afin d'assurer le bon fonctionnement de la caméra, les paramètres doivent être ajustés aux valeurs suivantes:

L'adaptateur réseau transfère ensuite les commandes et/ou les données via le port parallèle comme si ce dernier était branché directement à l'ordinateur. Pour le reste, tout est géré par MaximDL et les problèmes de communications devraient provenir soit de la configuration de MaximDL, soit du câble de la caméra dont voici le schéma :

 

2. Protocole de communication avec un ordinateur externe

Il est possible d'envoyer une série de commandes au programme de contrôle de la bonnette BonOMM à partir d'un ordinateur externe par le biais du port série numéro 8. Ces commandes peuvent servir à automatiser une partie des observations ou encore obtenir des informations sur l'état du système (bonnette, télescope, etc.). De façon générale, les commandes externes comportent au moins 4 octets dont le premier débute toujours par le caractère « E » (ETCS, ETAB, EOFF, etc.). Le deuxième octet indique le nombre d'octets associés à la commande (y compris lui-même ??). Les octets suivants définissent la commande ainsi que ses arguements. Le protocole de comminication s'assure que le décompte des octets transmis sur le port série de la bonnette est bon de telle sorte qu'il est possible d'accumuler les commandes dans la mémoire tampon du port série. Toutes les commandes doivent avoir la structure suivante :

XXXXNNNNAAAAAA…

XXXX est une chaîne de 4 caractères identifiant le type de commande (ETCS, ETAB, ...),

NNNN est le le nombre de d'octets « AAAA... » associés à cette commande, et

AAAA… sont les octets formant la commande et ses arguments.

Toutes les réponses reçues de BonOMM ont la forme suivante :

ANSWNNNNAAAAAA…

Si une erreur se produit, la réponse est

ANSW0002E#

# indique le numéro de l'erreur.

Voici la liste des commandes existantes :

Opérations
Commandes
Nb d'arguments attendus
Délai du traitement
Réponse
Nb d'octets de la réponse
Communication avec le TCS
ETCS
Variable
< 1sec
Variable
Variable
Déplacements des tables de guidage
ETAB
Déplacements fins du télescope
EOFF
3 octets
> 1 sec
OK ou E0
1 octet
État du système
EINF
2 octets
< 1 sec
Variable
Variable
Informations sur le guidage
EGUD
2 octets
< 1 sec
Variable
Variable
Déplacements de la roue à filtres
ERAF
> 1 sec

 

Ainsi, pour obtenir les coordonnées (Asc.dr. et Déc.) du télescope données par le TCS, il faut utiliser la commande ETCS à laquelle ont ajoute 25\n (la commande « EXCOM » numéro 25), soit 4 octets. Il faut donc écrire sur le port série :

ETCS000325\n

La bonnette traitera cette commande en environ 0.5 seconde et retournera

ANSW0132xxx

xxx représentent les 132 octets de données que TCS retourne.

2.1 ETCS

Ce type de commande permet à l'observateur de piloter le télescope de la même façon que la bonnette le fait. L'ordinateur externe s'adresse directement à BonOMM qui gère la communication avec le TCS. Aussitôt qu'une commande ETCS est reçue, les octets en arguments sont immédiatement retransmis sur le port de TCS. De la même façon, la réponse du TCS est retournée en argument sur le port de communication externe. Pour connaître les commandes disponibles, consultez le manuel du TCS de DFM, sous la rubrique « EXCOM ». Toutes les commandes ont la forme suivante :

ETCSNNNNAAAAA…

Et les réponses :

ANSWNNNNAAAAA…

Pour des raisons de protection du télescope, seules quelques commandes « EXCOM » de TCS sont acceptées par BonOMM. Voici la liste de ces commandes :

Les différents arguments de la commande doivent toujours être séparés par un caractère de nouvelle ligne « \n ».

2.2 ETAB

Les commandes pour les tables de guidages … à venir …

2.3 EOFF

La commande de type EOFF permet d'effectuer un déplacement fin du télescope (offset). Il est possible d'effectuer des déplacements aussi grands que 30 minutes d'arc, et aussi fins que 0,01 seconde d'arc. La commande a la forme suivante  :

EOFF007D\nRA\nDEC\n (??)

RA et DEC sont donnés en secondes d'arc.

Si l'argument « D » prend la valeur « N », le guidage automatique ne sera pas relancé après le déplacement du télescope. Toute autre valeur que « N » effectuera un déplacement du télescope avec déplacement compensatoire de la sonde et redémarrage du guidage automatique. Cette procédure est légèrement plus longue à exécuter puisque le système attend que l'étoile guide soit recentrée sur la cible de guidage. Dès que le déplacement du télescope est complété et que l'étoile de guidage est à l'intérieur de 5 pixels du centre de la caméra de guidage (± 1 sec d'arc), BonOMM retourne :

ANSW0002OK

si tout s'est bien déroulé et,

ANSW0002E0

en cas d'erreur.

2.4 EINF

Cette commande permet de connaître l'état du système. BonOMM retourne les plus récentes chaînes de caractères d'informations reçues des contrôleurs et du TCS en fonction de l'octet suivant la commande :

EINF0002B\n

Selon la valeur de l'argument B, BonOMM retourne les informations suivantes :

2.5 EGUD

Cette commande permet d'obtenir les informations sur le guidage telles que les coordonnées de l'étoile guide, l'erreur de guidage ainsi que le suivi temporel de l'intensité de l'étoile de guidage. Les arguments suivants la commande EGUD peuvent être les suivants :

EGUDINFO\n 

Retourne une chaîne de caractères équivalente à l'ensemble du fichier de guidage actuel (depuis le dernier arrêt). Ce fichier peut comporter plusieurs dizaines de kilo-octets et il faut donc prévoir un bon délai pour permettre l'échange de ceux-ci.

EGUDFLUX\n 

Retourne 9 caractères, correspondant au flux total de l'étoile guide [en ADU], obtenu en faisant [la somme des 28x28 pixels de guidage]– [flux médian x 28 x 28]. Bien qu'il s'agisse d'un critère tout à fait arbitraire, cette information peut se révéler importante pour certains types d'observations.

EGUDERR\n 

Retourne une chaine de caractères correspondant aux différentes erreurs de guidage compensé pour l'acquisition en cours. La chaîne aura la syntaxe suivante :

Xerr1;Yerr1\nXerr2;Yerr\n … etc …

Finalement la commande

EGUDON(OFF)\n 

sert à interrompre ou démarrer le guidage manuellement. Cette commande est surtout utile pour interrompre le guidage, il suffira alors de faire suivre la commande ERAF de l'argument OFF\n. Par contre, si l'utilisateur veut redémarrer le guidage, il faut alors s'assurer que rien n'est venu modifier les paramètres de guidage entre temps et que l'étoile de guidage se trouve toujours sous le réticule.

2.6 ERAF

Les commandes de type ERAF permettent de contrôler le module de la la roue à filtres. Avant de transmettre des commandes vers le module, il est préférable de vérifier l'état du système au moyen de la commande :

ERAF0003m\n

Cette commande permet de s'assurer de la présence et de l'état de MC-BonOMM. L'argument retourné sera :

ATTENTION : il ne faut pas transmettre de commandes vers le module de la roue à filtres si MC-BonOMM n'est pas dans le mode « f ».

Si le premier argument de la commande ERAF est un chiffre « #\n », le logiciel en déduira qu'il s'agît d'une demande de changement de filtre vers celui spécifiée par #. Si le programme retourne « OK\n », alors la roue à filtre est bien à la position voulue.

Si l'argument de la commande ERAF est « i\n », alors le module retourne une chaîne de 7 arguments représentant les noms des 6 filtres tels que définis par le technicien. En cas de doute, vérifier avec celui-ci pour vous assurer que les filtres ont été identifiés correctement. La réponse sera de la forme suivante :

ANSWNNNNf1\nf2\nf3\nf4\nf5\nf6\n

f# est un octet représentant le nom du filtre #.

q\n

L'argument « q\n » permet d'obtenir le numéro du filtre actuellement dans l'axe optique du télescope. La réponse est :

ANSWNNNN#\n

# est le numéro du filtre sur l'axe optique.

3. Codes d'erreur du protocole de communication avec un ordinateur externe

Si l'exécution d'une commande externe se déroule normalement et qu'aucune information n'est attendue, BonOMM répondra ANSW0003OK\n. En cas d'erreur d'exécution, BonOMM retourne un message d'erreur distinctif identifié par un nombre. Il existe 7 cas différents d'erreurs possibles. Tous les messages d'eereurs ont la forme suivante :

ANSWNNNNE#\n

#\n est un octet (8 bits) correspondant à l'une des erreurs illustrées au tableau suivant :

bits
valeur
E#
Nature de l'erreur
0
1
E0
Erreur commune/indéfinie
1
2
E1
Erreur lors du recentrage après un offset
2
4
E2
Erreur provenant d'une routine de communication avec le TCS
3
8
E4
Erreur provenant d'une routine de communication avec le contrôleur des tables
4
16
E8
Erreur avec la caméra de guidage et/ou MaximDL/CCD
5
32
E16
Problème provenant de MC-BonOMM
6
64
E32
Port série occupé / commande refusée par BonOMM
7
128
E64
Commande inconnue / Erreur dans les quatres premiers bits de la commande


Robert Lamontagne
mardi 24 avril 2007