Documents+météo

=Problème majeur:=

Avec la nouvelle version de C-More Programming Software, je n'ai pas été capable d'envoyer mon programme terminé à l'interface. Le bouton Send Project to panel était inutilisable. J'ai dû lui envoyer avec la version précédente, sauf que mes changements concernant le site internet (voir plus bas) ne sont pas appliqués. Je vais quand même les documenter, afin que vous puissiez voir ma démarche quand même et qui sait, peut-être même trouver mon problème. = = = = Les trois prochaines images sont tirées de la fenêtre "Touch Panel Network", dans l'onglet "Setup" de C-More

Ici, j'ai indiqué au programme l'adresse IP qu'il devait utiliser pour communiquer avec l'interface. Le masque et la passerelle m'ont été donnés par Mario.



Pour le "Web Server Function", j'ai spécifié le numéro de port à utiliser, soit 80. Ce port m'avait aussi été donné par Mario.



L'onglet "Remote Access" est celui qui n'existe pas dans l'ancienne version de C-More. Comme je n'ai pas pu me connecter avec la nouvelle (voir plus haut), cette portion de mon travail ne s'est pas rendu à l'interface. Je la documente quand même au cas où je réussirais à la rendre à l'interface, et donc sur internet. L'adresse IP de mon travail est 206.167.23.84, ou éolienne#2.cegepth.qc.ca. Le numéro de port à utiliser était 8080. J'ai décidé de donner le contrôle complet de l'interface aux utilisateurs à distance à la condition qu'ils connaissent le nom de mon accompte et son mot de passe. Le mot de passe est: Anthony. J'ai décidé de garder les choses simples pour le choix du mot de passe afin de ne pas obliger les utilisateurs à venir sur mon wiki à chaque fois qu'ils veulent se connecter.

=Programme d'automate:=



La première ligne du ladder ordonne à l'automate de prendre la valeur en binaire (le "8" du K8400) des 4 canaux (le "4" du K8400) et de les écrire à partir de la case V2000 (V2000=canal 1, V2001=canal 2, etc.). La deuxième ligne sert à retirer le bit de signe de la case V2000 (celle utilisée dans mon programme, puisque j'utilise le canal 1) et envoie la nouvelle valeur à la case V2010. C'est cette valeur que j'utilise pour le tagname "TEMPERATURE" dans mon programme C-More.

=Programme d'interface opérateur:=

Explications:


La première chose que j'ai dû faire, c'est de me créer une variable que je vais utiliser pour toute la programmation de l'interface. J'ai appelé cette variable TEMPÉRATURE, puisque c'est exactement ce qu'elle traite. Notez dans le bas de la fenêtre que j'utilise la case V2010 de l'automate, qui est la case dans laquelle j'ai décidé d'envoyer la valeur obtenue dans mon programme d'automate. Lorsque la tension de mon capteur changera, la valeur de la case V2010 changera et, donc, la valeur de la variable TEMPÉRATURE aussi. Cette valeur est codée sur 12 bits, ce qui signifie que la valeur décimale de TEMPÉRATURE variera entre 0 et 4095 pour une valeur analogique de 0 à 5V (puisque c'est la plage d'entrée de la carte que j'ai choisi d'utiliser). Mon capteur, par contre, ne peut m'envoyer qu'un maximum de 2.2V, soit une valeur décimale en 12 bits de 1802. J'ai dû prendre cette information en compte afin de monter la table de conversion suivante:



Cette table tient compte des 4 valeurs critiques de mon programme qui seront utilisée plus tard (voir plus bas).



Ceci est l'onglet général de l'afficheur analogique. On y voit un "range" de 0 à 5 V, bien que mon capteur ne me fournit en tension qu'un maximum de 2.2V. Je trouvais plus esthétique de montrer un afficheur couvrant ce voltage, qui est assez standard. Cet afficheur variera en fonction de la variable TEMPÉRATURE définie plus haut.



Le "scaling" pour cet afficheur est assez simple, puisqu'il s'agit en fait de faire la conversion inverse de celle de mon programme d'automate. Ce dernier convertissait un signal de 0-5V sur 12 bits, je convertis ce signal 12 bits en 0-5V. Je connais donc la tension de sortie exacte de mon capteur.



L'afficheur de la valeur 12-bits étant de loin le plus simple, les explications seront très brèves. Dans cette fenêtre, j'ai sélectionné la variable TEMPÉRATURE, et j'ai choisi de l'afficher avec un total de 4 chiffres ("Number of Digits", "Total", "4", dans la fenêtre "Display Format") pour couvrir la plus grande valeur possible, soit 4095.



Il s'agit ici du "scaling" le plus simple, où aucune conversion n'était nécessaire. Je n'avais qu'à prendre la valeur 12-bits de l'automate et à l'afficher telle quelle.



Pour le dernier afficheur, soit la température, j'ai eu un petit problème. Ma valeur devait couvrir la plage de -50°C à 70°C, ce qui est impossible à faire avec le simple "scaling". J'ai donc dû me faire deux afficheurs, que j'ai superposé afin qu'ils semblent n'en faire qu'un. L'un d'eux couvre la portion positive de la plage, l'autre la portion négative. Lorsque la valeur est positive, l'afficheur positif apparait, et vice versa.



Commençons par l'onglet général de la version positive de l'afficheur. J'ai choisi, comme pour les autres afficheurs, la variable TEMPÉRATURE. J'ai décidé d'afficher la température avec une précision au dixième de degrés ("Number of Digits", "Total, 3", Fractionnal, 1"). Ainsi, ma valeur sera affichée sur 3 chiffres, dont 1 après le point, comme dans l'exemple "12.3°C". Puisque j'affiche une température, j'ai décidé d'ajouter le suffixe " °C " à la valeur affichée (Case "Suffix" dans le menu "Display Format").



Voici maintenant l'onglet "Option" de l'afficheur positif. Comme je l'ai dis plus haut, cet afficheur apparait lorsque la température devient positive, d'où le crochet dans la case "Object Visibility Option". L'afficheur est visible lorsque la valeur de la variable température est supérieure ou égale à 750 (voir la table de conversion plus haut). Dans la table, la valeur associée à 0°C était 751. Par contre, afin de ne pas obtenir la valeur " - 0°C ", j'ai dû inclure dans la plage la valeur 750, qui, arrondie, équivaut aussi à 0°C. L'afficheur doit montrer 0°C pour une valeur 12-bits de 750 (voir la table de conversion) et 223°C pour une valeur de 4095. J,ai inscrit 2230 comme valeur afin de tenir compte de la précision au dixième de degré que je désirais. Puisque la valeur 12-bits de la variable TEMPÉRATURE ne dépassera théoriquement pas 1802 (voir table), j'aurais pu "scaler" mes valeurs de 750 à 1802 (équivalent à la plage 0°C à 70°C). J'ai toutefois décidé de "scaler" avec les plus grandes valeurs possibles, afin de me garder une plus grande précision. De plus, si la valeur de la variable TEMPÉRATURE est de 1803, par exemple, je suis sûr et certain que mon interface opérateur m'affichera une valeur quand même.



Pour la portion négative de mon afficheur de température, les paramètres sont exactement les mêmes que pour la portion positive, à l'exception du préfixe " - " qui est ajouté à sa valeur. Puisque je n'ai pas réussi à "scaler" des nombres négatifs, j'ai fais un "scaling" inversé (voir plus bas) de 50°C à 0,1°C. Le préfixe " - " servira tout simplement à ajouter un moins devant ces valeurs, afin de couvrir une plage de -50°C à -0,1°C.



Ici, j'ai coché la visibilité de l'afficheur lorsque la température est inférieure à 0°C. Il apparaitra lorsque la valeur de la variable TEMPÉRATURE sera strictement inférieure à 750, afin d'éviter d'afficher -0°C. J'ai fait un "scaling" inversé, comme expliqué plus haut, qui affiche 500 (50,0°C) pour une valeur 12-bits de 0, et 0°C pour une valeur 12-bits de 750 (l'afficheur ne sera pas visible dans ce cas). En ajoutant le préfixe " - " (voir plus haut), j'obtiens une plage de -50°C à -0,1°C, soit exactement la plage qui n'est pas couverte par l'afficheur positif.

=Fils utilisés:=

Le branchement du portable à l'interface utilisait le câble ethernet que nous avions déjà (Prise ethernet à PC/PLC).

Lien pour la fabrication d'un câble ethernet

Le branchement du portable à l'automate utilisait un adapteur USB/DB-9 et le fil DB-9/ethernet (prise USB à Port 1). Le branchement de l'automate à l'interface utilisait le câble HDB-15/DB-15 (Port 2 à IOIOI-PLC)

= =

=Listes de prix fourni par Campbell Scientific Canada:=



Capteur choisi: 109 Prix: 85$ Manuel