
Spcification Matriel;

Ce fichier "VB_AUT.TXT"

Le c utilis est un Pic16F876 ne pouvant pas grer le 3 ports prvus.
Pour votre application 2 ports est utile (non utilisons le A)
Sur le PORTA 6 pins sont connectes au lieu de 8 sur M2 (toutes utilises)
Sur le PORTB les 8  pins sont connectes. 0  7 (OK),  seul la pin 1 est utilise pour le " Watch dog "
Pas de PORTC

Pour la version " One Board "
Les entres ADC ne sont pas connectes pour cette version
La sortie PWM ne sont pas connectes pour cette version
La sortie INT ne sont pas connectes pour cette version
 L'alimentation 5 volts est connecte a l'alimentation gnrale avec un rgulateur 5 volts
Le Reset hard du c n'est sont pas connect pour cette version



L'alimentation se fait par un bornier sous 17 volts.
Une alimentation suprieur risque de dtriorer les relais , les convertisseurs opto - lectronique , et engendrer une chauffe trop importante du rgulateur 5 volts.

Des straps sont prsent sur les sortie 5 et 6 permetant de choisir la tension de sortie entre 10 et 12 volts.







Spcification Logiciel;

On pourrait terminer la chane de commande avec un code exemple CR/LF code
dcimale 13/10. (facultatif , time out 50ms)
Si le code 10 (LF) ,  la commande se fait aprs rception d'une chane (sans
fin prcise) un "Time out" de 50ms  se dclenche, (c'est trs court)
Le c alors analyse la chane reu,
Cela limite  une vingtaine d'instruction  la seconde , si l'on utilise le "Time out".
Sinon avec le CR/LF la commande est excuter ds la rception de fin de chaine (LF code 10 dcimale)
La vitesse dpend alors du temps d'excution pure du c.


Lorsque l'ordre arrive au c je renvoie sont  numro de fonction (voir les commandes) puis "OK" aprs l'excution.
Et pour compatibilit M2 un " > " seul. (signifiant l'attente de commande "
Et "ERROR" en lieu et place du " OK3 si l'ordre est inconnu.

La commande "@" est implant et renvoie la dernire commande excute.
    Semble t il utilis comme un genre d'accus rception.
    Dans le cas ou l'on voudrait supprime "OK,ERROR" l'utilisation de "@" devient
ncessaire pour savoir qu'elle a t la dernire commande.
Les lectures de PORTA, pour le moment renvoie la valeur HEXA entre 2
parenthses

PC	retour		Commentaires
===	======		============

PRB
	>(H05)		' code fonction
	(HF0)		' valeur renvoye
	OK		' commande effectu
	>		' prompt (attend l'ordre suivant)


Les fonctions (serial automat)
------------------------------
code	Mnmonique	 fonction
1	 PCA	    excute la commande configuration du PORT A
2	 PCB	    excute la commande configuration du PORT B
3	 PCC	    non connect ,  renvoie OK
4	 PRA	    lit le PORTA
5	 PRB	    lit le PORTA
6	 PRC	    renvoie 0
7	 PWA	    crit le PORTA
8	 PWB	    crit le PORTB
9	 PWC	    ne fait rien, renvoie OK

ordres directs
______________
	@	        renvoie la dernire commande excute.
	RESET 		excute un Reset Soft ,  le Buffer @ est effac
                	Les ports sont mis en entre.
(sauf portA 4 qui est mis en sortie  0)



Reset automatique
La carte est quip d'un " Watch-dog " Hardware (matriel " qui reset la carte micro-contrleur en cas de non prsence du signal de relance du " Watch-dog "
La LED prs du NE555 flash rgulirement , ce temps est rglable avec le potientiomtre prs du bornier d'alimentation.
Si 10 flashs sont effectu , sans relance de " Watch-dog " le reset hard de la carte est effectu. 

La commande PWB2 suivie de PWB0 , permet de faire flasher la LED verte prt du rgulateur, ce qui signifie que la relance est faite.

Les commandes automates devront tenir compte de cette possibilit est les squence d'initialisation des port comme (PCA255 PCB255) devront tre inclus dans les boucle , sous peine que les boucle ne puissent plus fonctionner aprs un reset.
La relance du " Watch dog " devra se faire au moins 2 fois pour une priode  d'attente " Watch-dog " , pour grer le cas ou l'une des commandes ne se fait pas suite  une erreur de transmission.


La LED prs du micro-contrleur indique que le 5 volts est prsent. 
Elle s'teint  seulement lorsque le " Watch-dog " s'active. 



Les erreurs de transmission

Les erreurs de transmission avec une communications srie sont invitables , quoique normalement rare , dans le cas d'erreurs nombreuses , il faut vrifier le matriels , viter des longueur de cbles trop importante, mettre le montage dans un botier mtallique si des parasites sont  craindre.(milieu industriel)

Les programmes de commande devront donc prendre en compte cette possibilit soit en contrlant les rponses, soi en faisant des commandes redondantes.
Et en faisant des procdures autonomes , ne ncessitant pas de commande prparatoire sans aucun contrle qui ferait que la suite du programme ne puissent pas fonctionner.









Les fonctions PC
-----------------

CLS
Fonction PC efface les fentres Zone de rception 1 et 2 et la fentre mission
Ncessaire pour vider le buffer d'affichage PC , ce qui ralentirait le fonctionnement de l'automate si ce n'est pas fait !
Une scurit nettoie automatiquement les zone d'affichage mme si cette fonction n'est pas utilise.
La taille maximum est de 5000 caractres , l'effacement automatique se produit ds ce chiffre atteint
Il est prfrable de le mettre  (le CLS)  un endroit choisi .

MONLABEL:
Le ":" signifie qu'il s'agit d'une adresse de saut ou de procdure.

GOTO LABEL
GOTO MONLABEL
La prochaine ligne excuter sera la ligne MONLABEL


GOSUB MONLABEL
La prochaine ligne excuter sera la ligne MONLABEL Gosub appel une procdure qui est terminer par un RETURN
Lorsque la ligne return est rencontr le programme retourne  la ligne  suivant le GOSUB MONLABEL

RETURN
Lorsque la ligne return est rencontr le programme retourne  la ligne  suivant le GOSUB qui  appel.


DELAYPC 1000
Une attente est faite par le PC le temps est en millisecondes 1000= 1 seconde.

END
Arrte l'excution du programme.
S'il s'agit de la dernire ligne de code , cette commande est facultative.
Si la fin du programme se trouve au milieu du elle es indispensable



IFBIT d GOTO label
IFBIT d GOSUB label
Test d'un bit et branchement  l'adresse indique si le BIT est  1
Cette fonction doit tre prcde d'une lecture PRA, PRB , PRC
d indique le bit de 1  8
label l'adresse de branchement


IFNBIT d GOTO label
IFNBIT d GOSUB label
Test d'un bit et branchement  l'adresse indique si le BIT est  0
Cette fonction doit tre prcde d'une lecture PRA, PRB , PRC
d indique le bit de 1  8
label l'adresse de branchement


Exemple:
' TEST le bit 1 sur le PORTB
' met le portA  HFF si le bit est  0
' met le portA  H00 si le bit est  1
LOOP:
PRB
IFNBIT 1 GOTO MYFUNCTION
PWA H00
GOTO LOOP
MYFUNCTION
PWA HFF
GOTO LOOP


Nota Bene)

Lorsque la chane de caractre "RESET" est reu les zones d'affichages sont effaces
 avant d'afficher le message de "RESET"


LA dernire ligne doit tre imprativement terminer avec la touche "RETURN"
le curseur doit se trouver sur une ligne vide  la fin, si non la ligne ne sera pas prise en compte


Manuel d'utilisation du programme de test

Ce programme  l'origine est destin au Tests de communications sur port srie.
Il a t adapt pour envoyer une suite de commande automatiquement, des petits programmes.


Une fentre de configuration permet de rgler les diffrentes options du port srie.
Les options pour notre application sont 
9600bauds 
8 bits sans parit, 
1 bit stop, 
sans control de flux, 
time-out  de 5 secondes .



Cette fentre n'tant pas le but de notre application elle passe en second plan et sera appel avec le bouton " retour  l'cran de paramtrage "


" zone de rception "
Les caractres reu en ASCII s'affiche de faon lisible

" zone de rception (code ASCII)"
Les caractres reu sont affichs en valeur ASCII en base dcimale

" effacer la zone rception "
Efface les deux fentre rception.

" zone d'envoi "
Fentre de saisie du message  envoyer
Cette zone sera saisie automatiquement lors de la mise en route de l'automate.

" insrer un caractre ASII "
Saisie d'une valeur d'un caractre , puis introduction dans le message.
Normalement, pas utilis dans notre application.


" envoyer "
Envoie le message saisie dans la fentre " zone d'envoi ".
Le message doit tre terminer par un " return ", positionnement sur la ligne suivante pour tre valable.

" Com "
Bouton qui permet d'afficher l'automate.
La zone d'affichage des paramtres sera remplace par l'automate.

" retour  l'cran de paramtrage "
rappelle la fentre configuration de paramtres

" Quitter "
Arrt de cette application.


AUTOMATE

Le bouton " COM " se transforme en " CMD " et permet de basculer du mode affichage de paramtres en mode " automate "

Six boutons de " prog " permettent de choisir parmi six programmes en mmoire
La fentre listing de droite se remplira avec le programme correspondant.
C'est six programmes sont mmoriss sur le disque dans le rpertoire courant du programme dans le fichier " PROG.AUT " pour " programmes de l'Automate "


La fentre listing de droite est une fentre d'dition le programme peut tre cr ou modifi.

Six boutons " MEM " permettent de mettre la fentre listing en mmoire dans l'un des six boutons, le bouton " Sauve " devient rouge rappelant ainsi qu'une sauvegarde disque est ncessaire pour mmoriser ces modifications , pour la prochaine excution du programme de tests.

" Sauve "
Mise  jour du fichier " PROG.AUT " sur le disque.
Le bouton redevient vert aprs la sauvegarde.

" Aide "
Affiche se prsent fichier dans une fentre d'affichage , simple consultation,
La modification de ce fichier si elle est ncessaire devra se faire avec " notepad " " word " ou tout autre traitement de texte.


Zone de saisie " step ms "
Temps d'attente en millisecondes entre deux excutions de ligne du programme, ce temps est de 60ms par dfaut, une valeur de 1000 (1 seconde) permet par exemple de faire dfiler lentement le programme afin de vrifier son droulement
Un tempsminimum de 1ms est ncessaire.


" run "
Lorsque le bouton est enclenche , il passe en couleur rouge , et son nom devient " STOP3 , sa fonction qui est de lancer le programme , devient alors celle de stopper le programme.

Les instruction de la liste de droite sont alors , recopier une  une dans la " zone d'envoi " et le bouton " envoyer " est cliquer automatiquement. La temporisation dans la zone " step ms " est effectue puis l'instruction suivante est excute.
La fin du programme se fait si plus aucune instruction est disponibble ou si le mot END est rencontr.
Certaine instruction comme GOTO GOSUB permette de boucler le programme de manire  ce qu'il s'excute sans fin.
Voir la liste des commandes.



Programmes de test par dfaut
-----------------------------

=================================================
Programme 1 :
Initialisation des 2 port A et B en sortie
Puis bouclage sur le programme principale en utilisant deux procdure SUB1 et SUB2 les diffrentes oprations temporises par un DELAYPC 100 (100ms).
NB) 
	Si un " Watch-dog " apparat la zone d'initialisation n'tant renvoye qu'au dbut le programme ne fonctionnera plus.
2 solutions 
1) dplacer la partie d'initialisation dans la boucle principale
2) relancer manuellement avec " STOP " et " RUN "
=====================================
PCA255
PCB255
PWB2
PWB0

START:
CLS
PWA0
PWA255
GOSUB SUB1
GOSUB SUB2
' fin de proc
PWB2
PWB0
GOTO START

SUB1:
' Procedure No 1
PWA0
DELAYPC 300
PWA255
DELAYPC 300
RETURN

SUB2:
' Procedure No 2
PWA7
DELAYPC 100
PWA248
DELAYPC 100
PWA7
DELAYPC 100
PWA248
DELAYPC 100
PWA7
DELAYPC 100
PWA248
DELAYPC 100
PWA7
DELAYPC 100
PWA248
DELAYPC 100
PWA7
DELAYPC 100
PWA248
DELAYPC 100
RETURN



=================================================
Programme 2
Permet de faire flasher les relais simplement.
Le rglage de " step ms " fera varier le flashage.
=================================================
PCB HFF
START:
PWB HAA
PWB H55
GOTO START
' fin de proc



=================================================
Programme 3
Permet de faire dfiler les relais simplement.
La fonction CLS permet de ne pas encombrer trop 
Les fentre rception qui finissent par ralentir
L'excution si elle sont trop charger
Le rglage de " step ms " fera varier le flashage.
Les 2 lignes PWA H40, PWA H80 sont inutiles car 
Ces pins ne sont pas connectes.

=================================================
PCA HFF
PCB HFF
LOOP:
CLS
PWA H01
PWA H02
PWA H04
PWA H08
PWA H10
PWA H20
PWA H40
PWA H80
PWA HFF
PWB HFF
PWB H00
GOTO LOOP


=================================================
Programme 4
Permet de faire clignoter alternativement 
les relais simplement.
Pas de fonction CLS l'automate finira par
par ralentir par moment
Pas de " Watch-dog " la carte va reseter !
=================================================
PCA HFF
LOOP:
PWA HAA
DELAYPC 100
PWA H55
DELAYPC 100
GOTO LOOP




=================================================
Programme 5
Simple programme pour allumer tout les relais 
teint les LEDs si elles taient allumes,
puis les allument aussitot aprs
L'automate s'arrte aprs , pas de rebouclage.
pas de "Watch dog" non plus
Si le "Watch dog" se dclenche , quelques instant plus tard, tous s'teint !
=================================================
CLS
PCA HFF
PCB HFF
PWA H00
PWA HFF


=================================================
Programme 6
Programme genre K2000
Avec relance " Watch-dog " en bout de ligne
CLS pour nettoyer  l'endroit dsir
La partie initialisation , n'est pas dans la boucle 
principale
=================================================
PCA255
PCB255
LOOP:
CLS
PWB2
PWB0
PWA1
PWA2
PWA4
PWA8
PWA16
PWA32
PWB2
PWB0
PWA16
PWA8
PWA4
PWA2
PWA1
GOTO LOOP


=================================================
Programme 7
=================================================
Libre pour voir l'affichage de couleur
