|
Documentation complète des commandes D'une manière générale, Portable2 reconnait les commandes de protocole écrites en majuscules et en minuscules. Cela n'est pas vrai pour les paramètres. Le caractère LineFeed (noté <lf>) n'est jamais pris en compte. Par la suite le caractère Return (ou Valide) sera noté <cr> Exemple : ZcOnFeF 0 M<cr> est correct zconfef 0 m n'est pas correct
Protocole Rapide d'Orphy Portable 2
COMMANDES RELATIVES AUX ENTREES BINAIRES
Commande ZEBIT: Portable répond : mode ascii 0<lf><cr> entrée binaire à l'état bas 1<lf><cr> entrée binaire à l'état haut mode binaire <0> entrée binaire à l'état bas <1> entrée binaire à l'état haut Commande ZEBLOC: exemple: EB 0,2,6,7 à l'état bas, EB 1,3,4,5 à l'état haut Portable répond : mode ascii 58<lf><cr> mode binaire :
COMMANDES RELATIVES AUX ENTREES FRONTS
Commande ZCONFEF: exemple ZCONFEF 0 M<lf><cr> configure EF0 en compteur de front montant Commande ZCONFEF?: exemple EF2 configurée en compteur de front descendant A la commande ZCONFEF? 2<lf><cr> Portable répond D<lf><cr> Commande ZCPT: exemple: A la commande ZCPT 1<lf><cr> Portable répond : mode ascii 10000<lf><cr> si 10000 fronts ont été détectés mode binaire <16><39> soit 16 + 39*256 = 10000 fronts Commande ZFREQ: exemple: A la commande ZFREQ n 0<lf><cr> Portable répond au bout de 200ms: mode ascii 10000<lf><cr> si 10000 fronts ont été détectés mode binaire <16><39> soit 16 + 39*256 = 10000 fronts c'est à dire que l'on mesure une fréquence de 5*10000 = 50 kHz exemple: A la commande ZFREQ n 1<lf><cr> Portable répond au bout de 200ms: mode ascii 10<lf><cr> si 10 fronts ont été détectés mode binaire <10><0> soit 10 + 39*0 = 10 fronts c'est à dire que l'on mesure une fréquence de 10 Hz Commande ZDEF: Cette commande permet de lancer un datage de front à l'aide d'un timer à 125ns. L'instant 0s est celui où la commande est totalement interprétée par Portable. Les dates sont codées sur 2 mots de 16bits donc comprises entre 0 et (65535+65535*65536)*125ns c'est à dire 536,9s. Toute acquisition programmée est alors interdite, et les valeurs de l'acquisition précédentes ne sont plus accessibles Commande ZSDEF: Cette commande permet de stopper un datage de front. Dés que la commande est interprétée, Portable renvoie le nombre de dates disponibles en mémoire exemple Portable répond 300<lf><cr> en mode ascii, c'est à dire que 300 fronts ont été détectés et datés. Les dates sont accessibles part ZLDEF Une des dates est : 10000,40 en ascii ou (<16>'(<0> en binaire ) c'est à dire (10000+65536*40)*125ns = 32893µs Commande ZLDEF: exemple Une des dates est 10000,40 en ascii ou (<16>'(<0> en binaire ) c'est à dire (10000+65536*40)*125ns = 32893µs Commandes ZPEF et ZGOEF: Ces commandes permettent d'effectuer un relevé d'événements fronts toutes les t*B ms. Ces relevés sont stockés en mémoire et sont accessibles par les commandes ZRESUL et ZRESUL! . exemple : On désire relever le compteur relatif à l'entrée front 1 toutes les 102ms et cela 100 fois. On envoie à Orphy portable 2: ZPEF 100 51 2<cr> ou ZPEF 100 102 1<cr> ZGOEF 1<cr> remarque: On peut à l'aide de ces commandes mesurer des fréquences inférieures au Hertz et supérieures à 1MHz Attention: Cette commande déprogramme la dernière acquisition analogique programmée
COMMANDES RELATIVES AUX ENTREES FRONTSCODEUR INCREMENTAL
Commande ZRPOSITION: Cette commande permet d'initialiser la variable position du mobile à 128 Commande ZPOSITION: Cette commande permet de lancer une determination de position Si cette commande est passée sans paramètres n, elle arrête la scrutation sur la position du mobile. Commande ZLPOSITION: Cette commande demande à Orphy portable de retourner la valeur (8bits) de la position exemple: On veut pouvoir relever à un instant t la position du mobile. ZRPOSITION<cr> ZPOSITION n<cr> --- déplacement du mobile --- ZLPOSITION<cr> --- déplacement du mobile --- ZLPOSITION<cr> --- fin --- ZPOSITION<cr> Commande ZCODINC: Cette commande lance la datation de front et une détermination de la position d'un mobile selon le principe du codeur incrémental. Le timer utilisé est à 125ns. L'instant 0s est celui où la commande est totalement interprétée par Portable. Les dates sont codées sur 2 mots de 16bits donc comprises entre 0 et (65535+65535*65536)*125ns c'est à dire 536,9s. La position est codée sur 8 bits 128 étant la position zéro. Toute acquisition programmée est alors interdite, et les valeurs de l'acquisition précédentes ne sont plus accessibles Commande ZSCODINC: Cette commande permet de stopper un datage de front. Dés que la commande est interprétée, Portable renvoie le nombre de dates disponibles en mémoire Commande ZLCODINC: Cette commande permet de récupérer toutes les dates et les positions successives du mobile exemple Une des dates/position est 10000,40,140 en ascii ou (<16>'(<0>î en binaire ) c'est à dire (10000+65536*40)*125ns = 32893µs et position 140
Comment fonctionne un codeur incrémental ?
COMMANDES RELATIVES AUX SORTIES BINAIRES
Commande ZRBIT: Commande ZSBIT: Commande ZSBLOC: exemple: SB 0,2,6,7 à l'état bas, SB 1,3,4,5 à l'état haut ZSBLOC 58<lf><cr> Commande ZGENE: Cette commande permet de générer un signal binaire dont la fréquence et le rapport cyclique sont réglables. La base de temps est de 512µs. Remarque: La commande envoyée sans paramètre arrête la génération de signaux
COMMANDES RELATIVES AUX ENTREES/SORTIES BINAIRES
Commande ZEES: Portable répond : mode ascii 0<lf><cr> si l'entrée binaire à l'état bas 1<lf><cr> si l'entrée binaire à l'état haut mode binaire <0> si l'entrée binaire à l'état bas <1> si l'entrée binaire à l'état haut Commande ZRES: Commande ZSES:
COMMANDES DE PROCESS
Commande ZERR: Portable répond exec<lf><cr> si la dernière instruction est valide para<lf><cr> si la dernière instruction a généré une erreur de paramètres prot<lf><cr> si la dernière instruction a généré une erreur de protocole tele<lf><cr> si la dernière instruction a généré une erreur de téléchargement au format Intel Commande ZVERSION: Portable répond Portable 2+ -V1.02<lf><cr> si la Rom est la version 1.02 Commande ZASC: Commande ZBIN: Chaque valeur binaire de 16 bits est envoyée par 2 octets le LSB en premier. Le caractère de séparation n'est pas pris en compte Commande ZFORMAT: Cette commande ne s'applique qu'aux entrées analogiques avec les commandes ZEA et ZRESUL. exemple Le convertisseur 10bits (0 à 1024) mesure une valeur de 625 Portable répond en asii au format 8 bits: 156 Portable répond en asii au format 16 bits: 625 Portable répond en binaire au format 8 bits: <156> Portable répond en binaire au format 16 bits: @<156> en effet les valeurs 10 bits codées sur 16 bits sont enregistrées sous la forme xxxxxxxxxx000000 Commande ZSEPAR: exemple ZSEPAR :<lf><cr> signifie que lors de l'execution d'un ZRESUL par exemple, chaque valeur sera séparée de la suivante par : Commande ZRESET: Cette commande réinitialise tout sauf la vitesse de communication de la voie série et le caractère de séparation. Commande ZBAUDS: Configure la voie série ZBAUDS 0<lf><cr> configure la voie série à 9600bauds ZBAUDS 1<lf><cr> configure la voie série à 19200bauds ZBAUDS 2<lf><cr> configure la voie série à 38400bauds ZBAUDS 3<lf><cr> configure la voie série à 57600bauds Commande ZLDATE: Cette commande permet de lire la date de l'horloge temps réel. Le format de retour est toujours en ascii. exemple A la commande ZLDATE<lf><cr> Portable renvoie : 3,13,1,99,14,41,20,15<lf><cr> c'est à dire mercredi 13 janvier 99 14h41mn20s15cs ATTENTION : Pour Windows le premier jour de la semaine est dimanche et non pas lundi Commande ZEDATE: voir la commande ZLDATE en omettant les centièmes de seconde
COMMANDES D'ACQUISITIONS LONGUES DUREESUTILISATION DE L'HORLOGE TEMPS REELL'horloge temps réel va servir à réveiller l'Orphy Portable lors d'acquisitions longues durées sur le terrain, c'est à dire en milieu dépourvu de source de courant. C'est particulièrement le cas pour des relevés météos. En fait on va surtout s'en servir comme un économiseur de pile.
Commande ZPREVEIL: Exemple on veut programmer 200 acquisitions espacées de 5mn à partir du lundi suivant à 7h25mn. On envoie alors: ZPREVEIL 1 7 25 0 0 5 200<lf><cr> Commande ZAREVEIL: Cette commande permet d'autorisée le mode réveil. Exemple on veut programmer 200 acquisitions espacées de 5mn à partir du lundi suivant à 7h25mn. On envoie alors: ZPREVEIL 1 7 25 0 0 5 200<lf><cr> ZAREVEIL<lf><cr> Le lundi suivant à 7h25mn Portable se réveille, fait une reconnaissance des capteurs présents et fait une acquisition sur chacune des voies détectées. Si une ou plusieurs capsules ont 2 plages de mesure possible, la plus grande sera choisi. Pour récupérer les données voir la commande XMEMO Commande ZSREVEIL: Commande ZLREVEIL: Dans la configuration de l'exemple ci dessus, à la commande ZLREVEIL<lf><cr>, Portable répond : 1,7,25,0,0,5,200<lf><cr>
COMMANDES RELATIVES AUX CAPTEURS
Commande ZCAPTEUR: Exemple Style de réponse: 23,30,35,...,239,23,...,229<lf><cr> Commande ZRECO: Demande un relevé des Entrées fronts, des capsules branchées et des 8 entrées analogiques. Dans l'ordre d'envoi: Entrées fronts, Génération capsules branchées, Valeurs de Reconnaissance, Entrées analogiques 0 à 7 soit EF0,EF1,EF2,EF3,G0,G1,G2,G3,R0,R1,R2,R3,EA0,EA1,EA2,EA3,EA4,EA5,EA6,EA7 soit 4*16bits, 4*8bits, 4*8bits, 8*16bits Exemple: on reçoit 0,0,0,0,0,0,0,0,70,0,0,0,512,2,1,1,281,2,3,1<lf><cr> Aucun front détecté, capsule voltmètre détecté sur la prise 1 et 0 Volt mesuré COMMANDES RELATIVES AUX ENTREES ANALOGIQUESEN MODE IMMEDIAT
Commande ZEA: Si une acquisition programmée est en cours, la commande ZEA sera réalisé dès que le processeur pourra le faire. exemple: voir ZFORMAT
COMMANDES RELATIVES AUX ENTREES ANALOGIQUESEN MODE PROGRAMME ACQUISITION RAPIDE
Commande ZAPR: Programme une acquisition sur 1,2,3 ou 4voies. Attention: On ne peut récupérer les valeurs avant qu'elles ne soient toutes prêtes. Ainsi, si vous demandez un ZRESUL! pendant l'acquisition, toutes les mesures vous seront envoyées à la fin de l'acquisition. Remarque Pour arrêter une acquisition en cours il suffit d'envoyer à Portable une commande ZAPR avec ou sans paramêtres
COMMANDES RELATIVES AUX ENTREES ANALOGIQUESEN MODE PROGRAMME ACQUISITION NON RAPIDE
Commande ZAPL: Programme une acquisition sur 1,2,3,4 ou 8 voies. Remarque Pour arrêter une acquisition en cours il suffit d'envoyer à Portable une commande ZAPL avec ou sans paramêtres
Commande ZGOF: Cette commande permet de lancer une acquisition programmée sur la détection d'un front L'envoi de ZGOF<lf><cr> arrête une attente de synchronisation en cours
Commande ZRESUL: Cette commande permet de lire toutes les valeurs disponibles, c'est à dire celles qui ont déjà été effectuées. Elle permet aussi de les sélectionner. exemples: On a lancé une acquisition préparée de 200 valeurs, toutes les 100µs, sur la voie analogique EA0 par: ZAPL1 0 200 100 1<CR> ZGOI<lf><cr> exemple 1: On désire lire toutes les valeurs. La commande est: ZRESUL 0 200<CR> l'interface renvoie en mode ASCII: <lf><cr> ;si aucune valeur n'est prête x0,x1,...,xn,<CR> ;si il n'y a que n+1 valeurs prêtes x0,x1,...,x199<CR> ;si toutes les valeurs sont prêtes l'interface renvoie en mode BINAIRE: Rien ;si aucune valeur n'est prête <Lx0><Hx0>...<Lxn><Hxn> ;si il n'y a que n+1 valeurs prêtes <Lx0><Hx0>..............<Lx199><Hx199> ;si toutes les valeurs sont prêtes exemple 2: On désire lire de la valeur 10 à la valeur 100. La commande est: ZRESUL 10 91<CR> l'interface renvoie en mode ASCII: <CR> ;si aucune valeur d'indice >=10 n'est prête x10,x11,...,xn,<CR> ;si il n'y a que n+1 valeurs prêtes x10,...,x100<CR> ;si toutes les valeurs sont prêtes l'interface renvoie en mode BINAIRE: rien ;si aucune valeur d'indice >= 10 n'est prête <Lx10><Hx10>...<Lxn><Hxn> ;si il n'y a que n+1 valeurs prêtes <Lx10><Hx10>...<Lx100><Hx100> ;si toutes les valeurs sont prêtes Concernant la commande ZRESUL! : Cette commande permet de lire toutes les valeurs disponibles, c'est à dire celles qui ont déjà été effectuées, et donne les autres au fur et à mesure qu'elles sont disponibles. Elle permet aussi de les sélectionner. En fin de transmission, c'est à dire lorsque toutes les valeurs demandées ont été lues, l'interface aura répondu en mode ASCII: xN1,...,xN2<CR> l'interface aura répondu en mode BINAIRE: <LxN1><HxN1>...<LxN2><HxN2> COMMANDES RELATIVES AUX ENTREES ANALOGIQUESEN MODE SCANNER
Commande ZSCAN1, ZSCAN2, ZSCAN4: Ces commandes sont utiles lorsqu'on ne connait pas la durée de l'expérience. Elle permet en fonction du nombre de points de la mémoire (figé à 16384) de donner le maximum de points avec la meilleure résolution temporelle possible. En fait on lance une acquisition à 100µs par voie sur 16384 points. Dès que le buffer est rempli soit 16384 mesures, on compresse l'information (en fait on conserve un point sur 2) on multiplie la période d'échantillonnage par 2 et ainsi de suite. La limite temporelle pour ZSCAN1 est 7h27mn La limite temporelle pour ZSCAN2 est 3h43mn La limite temporelle pour ZSCAN4 est 1h51mn Commande ZSCANS: Elle stoppe le mode scan. Attention l'ancienne acquisition programmée est effacée. Il faut la reprogrammer Commande ZSCANR: A cette commande Portable répond : le nombre de valeurs disponibles (16 bits) puis la base de temps en µs (16bits) puis le nombre de boucles (16 bits) puis toutes les valeurs au format et au mode désiré. On rappelle que la période d'échantillonnage est la base de temps multipliée par le nombre de boucle
COMMANDES RELATIVES A LA RECUPERATION DES DONNEES PRISES SUR LE TERRAIN
Commande ZRAZRAM: Cette commande est a envoyer impérativement lorsqu'on va sur le terrain pour purger la
mémoire, c'est à dire pour qu'elle soit entièrement disponible. Commande ZMEMO: Cette commande permet de récupérer des enregistrements effectués sur le terrain. Il
faut l' envoyer systématiquement dès que l'on entre dans une application. Sinon 38 paramètres par page d'acquisitions seront envoyées (10 pages maximum). Ces 38 paramètres totalisent 56 octets car l'indice de la période d'échantillonnage, la longueur totale de la page d'acquisition et les couples (PHImax, PHImin] sont des mots de 16bits Détail des 38 paramètres par page d'acquisition
PHImax et PHImin:
exemples:
Tableau pour l'indice de la période d'échantillonnage: 10µs,20µs,30µs,40µs,100µs,200µs,500µs,1ms,2ms,5ms,10ms,20ms,50ms,100ms,200ms,500ms,1s, 2s,5s,10s, 20s,30s,1mn,2mn,5mn,10mn Configuration de l'acquisition (on va raisoner sur les bits 0 à 7)
COMMANDES RELATIVES AUX TP
Commande ZTP: Portable renvoie les 5 premiers caractères, correspondant au nom intelligible du tp, de tous les tp présents en mémoire, séparés par le caractère défini par la commande zsepar. Le premier nom envoyé correspond au tp numéro 1
COMMANDES RELATIVES AUX UTILITAIRESQue peut on faire? Deux types d'utilitaires peuvent être programmés :
Utilitaires résidents (flash): On dispose de 3 zones programmes
Utilitaires non résidents (ram) : On dispose d'une zone programme
Des variables sont dédiés aux utilitaires : 8 variables 1octet, 6 variables 2 octets, 4 variables 4octets Un buffer est dédié aux utilitaires : 1500 octets Identification Chaque code utilitaire commence obligatoirement par # suivi du nom (5 caractères). Le # permet de savoir qu'un utilitaire est en mémoire. COMMANDES RELATIVES AUX UTILITAIRES RESIDENTS
EXEMPLE: On désire charger un utilitaire en résident nommé U =RI dont l'adresse d'exécution est 1c000h. Deux paramètres sont nécessaires soient 128 et 1000.
COMMANDES RELATIVES AUX UTILITAIRES NON RESIDENTS
EXEMPLE: On désire charger un utilitaire non résident nommé U =RI dont l'adresse d'exécution est 30100h. Deux paramètres sont nécessaires soient 128 et 1000. On envoie ZUTILRAM<cr> puis le code au format intel. On envoie ZUTIL? 256<cr> car (30100h-30000h) = 100h = 256d Portable répond #U =RI<lf><cr> On envoie ZUTIL 256 128 0 0 1000 0 0<cr> ce qui lance l'utilitaire immédiatement
|
Christian Rellier rellier@cnam.fr Association EVARISTE dernière mise à jour : 29/11/99 |