CUBLOC 220 FR
CUBLOC 220 FR
CUBLOC 220 FR
Manuel utilisateur
Version 2.5
Toutes les marques, les procds, les rfrences et les appellations commerciales des produits
cits dans ce document appartiennent leur propritaire et Fabricant respectif. All brand names
and trademarks are the property of their respective owners - Other trademarks mentioned are
registered trademarks of their respective holders.
Informations techniques
Ce manuel a t conu avec la plus grande attention. Tous les efforts ont t mis en oeuvre
pour viter les anomalies. Toutefois, nous ne pouvons garantir que ce dernier soit 100%
exempt de toute erreur. Les informations prsentes dans ce manuel sont donnes titre
indicatif. Les caractristiques techniques des "CUBLOC", la nature, les possibilits et le nombre
de leurs instructions, ainsi que les possibilits de leurs logiciels de programmation et les
caractristiques des modules priphriques associs aux CUBLOC peuvent changer tout
moment sans aucun pravis dans le but d'amliorer la qualit et les possibilits de ces derniers.
Ces produits sont protgs par des brevets travers le monde.
Limitation de responsabilit
En aucun cas le Fabricant et LEXTRONIC ne pourront tre tenus responsables de dommages
quels qu'ils soient (intgrant, mais sans limitation, les dommages pour perte de bnfice
commercial, interruption d'exploitation commerciale, perte dinformations et de donnes
caractre commercial ou de toute autre perte financire) provenant de l'utilisation ou de
l'incapacit pouvoir utiliser les modules "CUBLOC" et leurs logiciels associs ainsi que leurs
platines et modules optionnels associs, mme si le Fabricant ou LEXTRONIC ont t informs
de la possibilit de tels dommages.
Les modules "CUBLOC" ainsi que leurs platines et modules optionnels associs sont destins
tre utiliss en milieu rsidentiel dans les gammes de tempratures limites +10 +65 C. Les
modules "CUBLOC" ainsi que leurs platines et modules optionnels associs ne sont pas
conus, ni destins, ni autoriss pour tre utiliss au sein d'applications militaires, ni au sein
d'applications mdicales, ni dalarme anti-intrusion, ni dalerte incendie, ni au sein dapplications
pour ascenseurs ou commande de feux dartifices, ni au sein dapplications sur machine outils
ou dapplications embarques dans des vhicules (automobiles, camions, bateaux, scooters,
motos, kart, scooters des mers, avions, hlicoptres, ULM...), ni au sein d'applications em-
barques sur des maquettes volantes de modles rduits (avions, hlicoptres, planeurs...).
De mme, les modules "CUBLOC" ainsi que leurs platines et modules optionnels associs ne
sont pas conus, ni destins, ni autoriss pour exprimenter, dvelopper ou tre intgrs au
sein d'applications dans lesquelles une dfaillance de ces derniers pourrait crer une situation
dangereuse pouvant entraner des pertes financires, des dgts matriels, des blessures
corporelles ou la mort de personnes ou d'animaux. Si vous utilisez les modules "CUBLOC" ainsi
que leurs platines et modules optionnels associs volontairement ou involontairement pour de
telles applications non autorises, vous vous engagez soustraire le Fabricant et LEXTRONIC
de toute responsabilit et de toute demande de ddommagement.
L'utilisateur des modules "CUBLOC" et de ses platines et modules optionnels associs est
entirement et seul responsable des dveloppements logiciels (de l'criture de son programme
en langage BASIC et/ou PLC) ainsi que de lintgration matrielle, des modifications et ajouts
de priphriques qu'il effectuera sur les modules "CUBLOC" ainsi que leurs platines et modules
optionnels associs. S'agissant de matriel "OEM", Il incombera l'utilisateur de vrifier que
l'application finie complte dveloppe avec les modules "CUBLOC" ainsi que leurs platines et
modules optionnels associs soient conformes aux normes de scurit et aux normes CEM en
vigueur.
Tous les modules "CUBLOC" ainsi que leurs platines et modules optionnels associs sont
tests avant expdition. Toute inversion de polarit, dpassement des valeurs limites des
tensions dalimentation, courts-circuits, utilisation en dehors des spcifications et limites
indiques dans ce document ou utilisation pour des applications non prvues pourront affecter
la fiabilit, crer des dysfonctionnements et/ou endommager les modules "CUBLOC" ainsi que
leurs platines et modules optionnels associs sans que la responsabilit du Fabricant et de
LEXTRONIC ne puisse tre mise en cause, ni que les produits puissent tre changs au titre
de la garantie.
Toutefois de part les mises jours rgulires opres par Comfile Technology, il vous faudra
imprativement vrifier sur le site www.comfiletech.com (rubrique Download ) que vous
disposez bien de la dernire version en date du CUBLOC Studio avant dinstaller et dutiliser
ce dernier lors de votre premire utilisation.
Contactez-nous si vous ne disposez pas de connexion Internet afin que nous puissions vous
adresser si ncessaire la dernire version jour.
Une fois votre version du CUBLOC Studio mis jour, il vous faudra galement remettre
jour le Firmware de votre module CUBLOC afin que ce dernier dispose des dernires
possibilits de programmation (consultez la page 366 pour plus dinformations ce sujet).
A ce titre, certaines commandes et possibilits dcrites dans cette documentation suppose que
vous disposiez dune version du CUBLOC Studio suprieur la version 2.0.x.
Bien que nous comprenions votre impatience vouloir utiliser immdiatement les possibilits
des modules CUBLOC en vous inspirant des exemples de programmes et des notes
dapplications prsentent sur le CD-ROM, nous vous suggrons toutefois lors de votre
premire utilisation de suivre pas pas les indications dcrites dans le chapitre 11 (page
341). Vous trouverez en effet dans ces lignes certains points techniques primordiaux
respecter.
Dans tous les cas, si vous rencontrez des problmes lors de la mise en uvre de vos
modules CUBLOC, nous vous suggrons de lire mticuleusement les informations du
chapitre 11 (page 341) ainsi que de prendre connaissance des questions/rponses de la
F.A.Q des CUBLOC disponibles au chapitre 12 (page 366) Les solutions vos
problmes sont probablement prsentent dans ces pages !
Partage de donnes.............................................................. 97
Utilisation des broches du ladder en Basic ........................... 98
High..................................................................................... 154
I2Cstart ............................................................................... 155
I2Cstop................................................................................ 155
I2Cread( ) ............................................................................ 156
I2Creadna( ) ........................................................................ 156
I2Cwrite( )............................................................................ 157
If..Then..ElseifEndif ......................................................... 158
In( )...................................................................................... 159
Incr ...................................................................................... 159
Input .................................................................................... 159
Keyin ................................................................................... 160
Keyinh ................................................................................. 160
Keypad ................................................................................ 161
Ladderscan ......................................................................... 162
Low ..................................................................................... 163
Memadr( )............................................................................ 163
Ncd...................................................................................... 164
Nop ..................................................................................... 165
On Int .................................................................................. 165
On Ladderint Gosub............................................................ 166
On Pad Gosub .................................................................... 168
On Recvx ............................................................................ 169
On Timer ............................................................................. 170
Opencom ............................................................................ 171
Comment utiliser les ports RS232 du CB405 ................ 173
Out ...................................................................................... 174
Output ................................................................................. 174
Outstat( ) ............................................................................. 175
Pause .................................................................................. 175
Peek( ) ................................................................................ 175
Poke .................................................................................... 176
Pulsout ................................................................................ 177
Put....................................................................................... 178
Puta..................................................................................... 179
Puta2................................................................................... 179
Putstr................................................................................... 180
Pwm .................................................................................... 181
Pwmoff ................................................................................ 182
Ramclear............................................................................. 183
Reverse............................................................................... 183
Rnd( ) .................................................................................. 183
Select...Case....................................................................... 184
Set Debug ........................................................................... 185
Set i2c ................................................................................. 188
Set Int.................................................................................. 189
Set Ladder on/off................................................................. 189
Set modbus ......................................................................... 190
Set Onglobal ....................................................................... 191
Set Onint ............................................................................. 191
Set OnLadderint .................................................................. 192
Set Onpad ........................................................................... 193
Prface
La socit Comfile Technology est rpute pour dvelopper des modules microcontrls PLC et
BASIC depuis 1997. De part son exprience acquise dans ce domaine, Comfile Technology est
en mesure de vous proposer aujourdhui une nouvelle gamme de produits encore plus
puissants et plus flexibles, lesquels bnficient du meilleur des possibilits des contrleurs
embarqus programmables en BASIC et en PLC.
Les CUBLOC sont capables de grer la fois un programme crit en langage BASIC et/ou
en LADDER grce leur cur multitche. De plus ces 2 technologies (BASIC et LADDER)
disposent dune mmoire commune qui vous permettra ainsi de travailler avec un type de
module microcontrl part entire tout fait nouveau.
Les CUBLOC sadressent la fois aux novices, comme aux professionnels et aux
automaticiens.
- Les novices trouveront avec les CUBLOC le composant idal pour pouvoir raliser trs
rapidement leurs premires applications en toute simplicit mme si ces derniers nont pas de
connaissance approfondie sur les microcontrleurs.
- Les automaticiens pourront trouver trs rapidement leur marque avec les CUBLOC
(grce leur programmation en LADDER) tout en ayant galement la possibilit de
sessayer progressivement aux possibilits de programmation en langage BASIC si
ncessaire (la rciproque tant aussi vraie).
Chapitre 1.
Prsentation des
modules CUBLOC
Les CUBLOC sapparentent pour leur part de mini automates OEM qui se prsentent
sous forme de modules hybrides, lesquels vous permettront de pouvoir les intgrer au sein de
votre produit final en vous laissant ainsi une plus grande flexibilit sur la taille et les spcificits
de votre application.
Les modules CUBLOC sont similaires aux automates traditionnels en ce sens quils peuvent
tout comme eux tre programms en langage LADDER. Toutefois leur petite taille vous
permettra de les intgrer directement sur le circuit imprim de votre application comme un
microcontrleur traditionnel.
Il existe diffrents modules CUBLOC, lesquels se distinguent par leur capacit mmoire,
nombre dE/S, etc Vous trouverez ci-aprs un petit tableau de slection.
Tableau comparatif
Photo
Mmoire 80 K 80 K 80 K 200 K
programme
Mmoire 2 K (BASIC) 2 K (BASIC) 24 K (BASIC) 51 K (BASIC)
de 1 K (Ladder) 1 K (Ladder) 4 K (Ladder) 4 K (Ladder)
donnes 55 K (Heap)
Mmoire 4K 4K 4K 4K
EEprom
Vitesse 36,000/sec 36,000/sec 36,000/sec 36,000/sec
excution
Ports 16 49 91 rpartis en 64
dentres / sorties entres/sorties entres/sorties 33 entres entres/sorties
32 sorties
26 E/S
Ports sries 2 ports sries 2 ports sries 2 ports sries 4 ports sries
Configurables de Port 0 : RS232 Port 0 : RS232 Port 0 : RS232 Port 0 : RS232
2400 bps Port 1 : TTL Port 1 : TTL & Port 1 : TTL & Port 1 3 : TTL
230.400 bps RS232 RS232
Entres de conversion 8 entres 8 entres 8 entres 16 entres
analogique / numrique Rsolution Rsolution Rsolution Rsolution
(parmis les E/S gnrales) 10 bits 10 bits 10 bits 10 bits
Sorties PWM 3 sorties 6 sorties 6 sorties 12 sorties
Frquence configurable Rsolution Rsolution Rsolution Rsolution
35 Hz 1.5 MHz 16 bits 16 bits 16 bits 16 bits
Interruption externe - 4 canaux 4 canaux 4 canaux
(parmis les E/S gnrales)
Entre de comptage rapide 2 compteurs 2 compteurs 2 compteurs 2 compteurs
(parmis les E/S gnrales) 32 bits 32 bits 32 bits 32 bits
Alimentation 5 12 Vcc 5 Vcc 5 Vcc 5 Vcc
Consommation (ports non chargs) 40 mA 40 mA 70 mA 50 mA
Horloge RTC intgre - - Oui -
Sauvegarde RAM - - En option En option
Temprature fonctionnement +10 +65C +10 +65C +10 +65C +10 +65C
Prsentation DIL 24 broches Module Module Module
600 mil. 64 broches 108 broches 80 broches
Dimensions (mm) 30 x 15.3 x 11 35 x 25.4 x 11 59.4 x 47.8 x 13 59.4 x 47.8 x 13
Le principal avantage des modules CUBLOC vis vis des autres automates est que les
CUBLOC peuvent compenser certaines limitations propres la programmation en langage
LADDER par une programmation additionnelle en langage BASIC (trs volu). La
programmation en langage LADDER est en effet toute indique pour prendre en charge des
actions qui sinscrivent dans un diagramme de squences mais lorsquune application
ncessite de stocker des donnes, dafficher des graphiques et de raliser dautres tches plus
complexes les automates traditionnels ne sont alors plus adapts. Cest la principale raison
pour laquelle une programmation en langage BASIC a t ajoute sur les modules CUBLOC.
Ds lors, vous pourrez la fois programmer en LADDER et en BASIC !
Un des autres avantages du langage BASIC gr par les modules CUBLOC vis vis dautres
modules programmables en langage BASIC vient du fait que les 2 technologies intgres au
CUBLOC (la programmation en BASIC et en LADDER) soient totalement indpendantes.
DIM A AS INTEGER
IF IN(0) = 0 THEN
OUT 2,A
END IF
GOTO LAB1
A ce jour, dautres modules automates disponibles sur le march sont capables de supporter
une programmation en LADDER et en BASIC. Toutefois la plupart de ces derniers ne disposent
pas dune structure et dun cur multitche et sapparentent proprement dit des modules
structure simple tche . Ce qui veut dire que les bouts de programmes en langage
BASIC seront considrs comme des sous-parties du langage LADDER, lesquelles ne pourront
pas tre excutes de faon indpendante comme vous pourrez le faire sur les modules
CUBLOC. Cette conception est notre sens quelque part pnalisante du fait mme de la
non gestion en temps rel de la partie en langage BASIC qui pourra affecter les
performances du programme en LADDER.
Les modules CUBLOC ont pour leur part une approche diffrente de part leur structure
multitche qui vous offriront une grande prcision et un timing rigoureux lors de lexcution de
leur programmes. Ainsi contrairement la plupart des autres modules programmables en
langage BASIC actuellement disponibles sur le march, les modules CUBLOC sont capables
de support la fois la gestion multitche et la gestion de process en temps rel.
La structure multitche des modules CUBLOC leur permettront ainsi de pouvoir la fois
excuter un programme LADDER et un programme BASIC en mme temps en vous permettant
ainsi de pouvoir bnficier de la prcision du timing dexcution du LADDER, tout en
concernant les atouts dune application programme en langage BASIC. Dans tous les cas,
vous conservez galement la possibilit de pouvoir programmer toute votre application
uniquement en langage LADDER ou uniquement en langage BASIC ou avec les 2 technologies
la fois
LADDER
BASIC
LADDER BASIC
LADDER
BASIC
Comme vous pouvez le constater, les modules CUBLOC sapparentent ainsi de nouveaux
types de contrleurs. En vous permettant de raliser des applications que des mini-automates
traditionnels ne pourraient pas effectuer sans lapport du langage BASIC, les CUBLOC
ouvrent de nouvelles perspectives de dveloppement et dapplications.
LADDER et BASIC
Le principal avantage dune programmation en langage LADDER est que lensemble des
circuits (de votre programme) soit scrut en Parallle, de telle sorte que lexcution des
processus seffectue avec la mme dure.
P0 P2 P9
A
P3
P5 P6 P8
B
Comme vous le voyez ci-dessus, la fois les circuits A et B sont en tat dattente et prt
activer les sorties lorsquils seront sollicits.
Ces 2 types de langages sont utiliss depuis trs longtemps dans des secteurs dactivits et
pour des applications trs diffrentes. Le LADDER est principalement exploit en automatisme
par le biais dautomates programmables. Pour sa part, le langage BASIC et couramment utilis
pour la mise en uvre dapplications diverses et varies sur compatibles PC et sur de
nombreux microcontrleurs.
A linverses de telles applications sont trs simples prendre en charge avec un langage
comme le BASIC. Ainsi le langage BASIC des modules est capable de grer des nombres
virgule, des communications sries et de trs nombreuses autres fonctions qui chappent aux
possibilits offertes par le langage LADDER. Un des autres avantages du langage BASIC des
modules CUBLOC est que malgr le fait que ce dernier soit trs performant et dot de trs
nombreuses fonctions, il est galement capable daccepter certaines instructions connues de la
plupart des dbutants (IF, GOTO, etc) afin que ces derniers puissent sinitier progressivement
au dveloppement sur les modules CUBLOC sans avoir passer des heures, des jours ou
mme des mois essayer de comprendre comment fonctionne le module.
La gestion parralle des processus du LADDER ainsi que la gestion squentielle des processus
du langage BASIC disposent chacuns de leurs avantages.
Le LADDER sera ainsi capable de grer des applications impossibles raliser en BASIC.
A linverse, le langage BASIC sera capable de raliser des applications impossible raliser en
LADDER (ou trs difficilement).
Cest la principale raison pour laquelle nous avons cr les modules CUBLOC, de telle sorte
que lutilisateur puisse librement utiliser une programmation en langage LADDER et/ou en
langage BASIC. Aprs avoir appris matriser les possibilits et avantages offerts par le
langage LADDER et le langage BASIC, lutilisateur sera ainsi en mesure de pouvoir dvelopper
des applications encore plus complexes et de faon plus rapide afin davoir une longueur
davance sur ces concurrents en conomisant au final du temps et de largent
FUNC #1
La seconde limitation est quil est trs problmatique de ne pouvoir utiliser le langage BASIC
que comme une sous-partie du langage LADDER en ne vous permettant pas ainsi de
pouvoir utiliser toutes les possibilits et toute la puissance du langage BASIC.
La troisime limitation pourra provenir de la gestion des ports dE/S. Lexcution du langage
BASIC lors de la gestion des E/S du module pourra crer des conflits non dsirs avec le
LADDER.
Afin de pouvoir rsoudre lensemble de ces limitations, nous avons dcid de concevoir un
module dot dune gestion multitche des programmes dvelopps en langage BASIC et en
langage LADDER. Le programme dvelopp en langage BASIC sexcutera ainsi
indpendamment et simultanment du programme dvelopp en langage LADDER sans aucun
conflit ne collision avec lun lautre.
Le langage BASIC des modules CUBLOC vous permettra de crer de trs nombreuses
applications. En comparaison avec la plupart des modules concurrents programmables en
langage BASIC, le langage BASIC des modules CUBLOC est dans la plupart des cas plus
performants, plus structur et bien plus rapide. Si vous navez pas besoin davoir recours au
langage LADDER, votre application pourra trs bien tre entirement programme en BASIC.
Dans le cas des E/S, lutilisateur pourra spcifier les E/S devant tre utilises en BASIC et en
LADDER afin dviter les problmes de collision des E/S.
Les modules CUBLOC utilisent le BASIC comme leur langage principal . Il est donc
recommand de controller le LADDER depuis le BASIC.
Par exemple il est possible davoir recours une fonction MASTER CONTROL dans le
LADDER, qui permettra lutilisateur dactiver/dsactiver facilement des zones du LADDER.
M1 MCS 0
P0 P2 P9
En BASIC, lutilisateur pourra lire ou crire dans une mmoire commune avec le langage
LADDER. Dans lexemple ci-dessus, vous pourrez avoir accs au Registre M1 par la
variable _M(1) depuis le BASIC !
Comme vous pouvez le constater, les modules CUBLOC supportent les changes mmoires
multitches entre le BASIC et le LADDER.
La ralisation dune installation unique nest gnralement pas un problme. Mais lorsquil est
ncessaire de raliser des installations en quantit, le montage et la main duvre ncessaire
leur mise en place deviennent vite rdhibitoire. Sans parler du cot additionnel des lments
ajouter et de la taille importante de lapplication finale.
CUBLOC
CORE MODULE
CUBLOC
CORE MODULE
De part leur conception, les modules hybrides OEM CUBLOC sont spcialement conus
pour tre intgr sur votre propre platine. Vous pourrez ainsi personnaliser votre PLC ainsi que
les fonctionnalits et les dimensions de votre application comme si vous utilisiez un simple
microcontrleur.
Photo
Si vous utilisez dj des automates traditionnels, comparez les caractristiques de nos produits
et le gain de place, fonctionnalits cot que vous pourrez obtenir en intgrant les CUBLOC
sur votre application.
Environnement de dveloppement
Pour exploiter et programmer les modules CUBLOC vous aurez besoin de disposer dun
compatible PC quip dun systme dexploitation de type Windows XP.
Un port srie RS-232 (ou un port USB associ un cble de conversion USB <> srie) sera
galement ncessaire pour tlcharger le programme dans le CUBLOC et effectuer le
monitoring de votre application depuis le PC.
RS232
1 SOUT 1 24 VIN
6 SIN 2 23 VSS
2 Rx ATN 3 22 RES
7 VSS 4 21 VDD
3 Tx P0 5 20 P15
8 P1 6 19 P14
4 DTR P2 7 18 P13
9 P3 8 17 P12
5 GND P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
Lorsque le module CUBLOC sera dconnect du PC, ce dernier fonctionnera alors de faon
totalement autonome. Votre programme sera stock dans la mmoire Flash non volatile du
CUBLOC (la mmoire ne sefface pas en cas de coupure dalimentation). Cette mmoire
pourra bien videmment tre facilement efface et reprogramme chaque modification de
votre programme.
Le XPORT est un module additionnel optionnel cabale de convertir les signaux RS-232 en
paquets Internet TCP ou UDP. Vous pourrez utilisez le module XPORT associ au module
CUBLOC pour tlcharger et faire le monitoring de vos programmes via Internet.
En utilisant cette fonctionnalit, vous pourrez mettre a jour votre application et offrir une
prestation de service vos Clients mme si ces derniers sont lautre bout du monde !
Nous proposons un Firmware spcial pour le module XPORT permettant via un serveur et
des applets de tlcharger/et faire du Monitoring sur le module CUBLOC module. Vous
pourrez utiliser ce programme pour grer des centaines de produits via Internet !
Consultez le Forum des CUBLOC sur la page de nos notes dapplications pour plus dinfos.
(http://cubloc.com)
En fait, lutilisateur nest nullement besoin davoir une quelconque connaissance en langage
BASIC pour pouvoir exploiter les modules CUBLOC en LADDER.
DISPLAY
KEYPAD
PC INTERFACE
MACHINE CONTROL
PC compiler
PC
socket
flash programmer
mcu cubloc
BASIC LADDER
Interpreter Processor
BASIC LADDER
Program Memory Program Memory
4 1 3 2
SRAM FLASH SRAM FLASH
2KB~32KB 40KB~80KB 1KB~4KB 40KB~80KB
BASIC LADDER
Data Memory Data Memory
5 I/O Ports
Les Entres/Sorties peuvent tre partages librement entre les programmes BASIC et
LADDER.
La mmoire de donnes du BASIC ne pourra tre accde que par linterprteur BASIC tandis
que la mmoire des donnes du LADDER pourra tre accde la fois par linterprteur BASIC
comme par le processeur LADDER.
Les ports dEntres/Sorties (5) peuvent tre partags entre le BASIC et le LADDER. Lutilisateur
doit spcifier les ports dE/S utiliss dans le BASIC et ceux utiliss dans le LADDER. Il est
possible dutiliser tous les ports uniquement pour le BASIC ou uniquement pour le LADDER.
Cet afficheur existe aussi en version OEM (sans botier et sans module microcontrl) afin
que vous puissiez le piloter avec un module CUBLOC externe. De trs nombreux modules
optionnels supplmentaires seront prochainement disponibles, consultez les sites
www.comfiletech.com et www.lextronic.fr afin de vous tenir inform de la disponibilits des
nouveauts.
Chapitre 2.
Aspect matriel
des CUBLOC
Caractristiques matrielles
Tableau de compaison
Caractristique / CB220 CB280 CB290 CB405
Modle
Module CB220
Le CB220 se prsente sous la forme dun module hybride 24 broches au format. Dot de 16
ports dentres/sorties, il intgre son propre tage de rgulation + 5 V. Si vous avez dj
l'habitude de travailler avec dautres modules concurrents programmables en langage BASIC,
le module CB220 risque de vous intresser au plus haut point.
D'une part parce qu'il offre des possibilits et une puissance bien suprieur la plupart des
produits similaires, mais aussi parce quil est compatible broches broches avec les produits
que vous utilisez peut tre actuellement ! (dans certains cas il vous faudra juste court-circuiter
un condensateur sur votre platine de test existante pour assurer la compatibilit voir plus
dinfos page 253 de la rubrique 9. Tutorial Premires applications en BASIC et LADDER).
CB220
SIN, SOUT, ATN sont les broches de connexion devant tre raccordes au port srie du PC (ou
du module XPORT optionnel) pour tlcharger, dbuguer ou avoir accs au mode moniteur
du CUBLOC (voir schma ci-dessous). Tous les modles de CUBLOC disposent des
broches SOUT, SIN, ATN.
1 SO UT 1 24 VIN
6 SIN 2 23 VS S
2 Rx ATN 3 22 RES
7 VS S 4 21 VDD
3 Tx P0 5 20 P1 5
8 P1 6 19 P1 4
4 DTR P2 7 18 P1 3
9 P3 8 17 P1 2
5 GND P4 9 16 P11
P5 10 15 P1 0
P6 11 14 P9
P7 12 13 P8
La plupart des autres broches sont des ENTREES / SORTIES . Lutilisateur pourra spcifier
quelles seront les broches utiliser en ENTREES et quelles seront celles utiliser en
SORTIES.
Lorsquelles sont utilises en ENTREE, les broches sont dans un tat HAUTE impdance.
Lorsquelles sont utilises en SORTIE, les broches peuvent prendre un tat logique HAUT ou
BAS. Le courant de sortie maximale disponible en sortie est de lordre de 25 mA. Lutilisateur
est libre de choisir le rle de chaque broche.
Mthode 1
DC5.5~12V
1 SOUT 1 24 VIN
6 SIN 23 VSS
2
2 Rx ATN 3 22 RES
7 VSS 21 VDD
4
3 Tx P0 20 P15
5
8 P1 19 P14
6
4 DTR P2 18 P13
7
9 P3 17 P12
8
5 GND P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
Le CB220 dispose dun rgulateur interne qui vous permettra de pouvoir lalimenter sous une
tension continue comprise entre 5,5 ~12 Vcc (la tension doit tre convenablement filtre). Ce
rgulateur fourni galement une tension de sortie stable de +5 Vcc (100 mA max.) sur une des
broches du CUBLOC. Utilisez la broche 24 pour appliquer votre tension de 5,5 ~12 Vcc (ds
lors vous obtiendrez du +5 Vcc sur la broche 21 - Attention : ne connectez jamais de
dispositif consommant plus de 100 mA sur cette broche sous peine de destruction de
ltage de rgulation du module CB220 (non pris en compte par la garantie).
Il ne sera par exemple pas possible dalimenter un afficheur de type CLCD via la
broche 21 du CUBLOC (la consommation du rtro-clairage de lafficheur tant trop
importante).
Mthode 2
Vous pouvez alimenter le module CB220 directement sous une tension continue de + 5 V
rgule et filtre en utilisant la broche 21.
Module CB280
Le CB280 se prsente sous la forme dun module capt 64 broches dont 49 broches peuvent
tre utilises en E/S. Attention, le CB280 ne dispose pas de rgulateur interne et vous devrez
lalimenter uniquement sous une tension rgule et filtre de + 5 Vcc.
CB280
Les N de broches sont ranges par fonctions et non pas par ordre chronologique.
* IMPORTANT :
Les broches 20 et 36 ne sont pas utilises NE RIEN CONNECTER SUR CES BROCHES
P16 21 E/S
P17 22 E/S
P18 23 E/S
P19 24 E/S Bloc 2 PWM3
P20 25 E/S PWM4 / INT0
P21 26 E/S PWM5 / INT1
P22 27 E/S INT2
P23 28 E/S INT3
P24 37 E/S ADC0 : A/N Canal 0
P25 38 E/S ADC1 : A/N Canal 1
P26 39 E/S ADC2 : A/N Canal 2
P27 40 E/S Bloc 3 ADC3 : A/N Canal 3
P28 56 E/S ADC4 : A/N Canal 4
P29 55 E/S ADC5 : A/N Canal 5
P30 54 E/S ADC6 : A/N Canal 6
P31 53 E/S ADC7 : A/N Canal 7
P32 57 E/S
P33 58 E/S
P34 59 E/S
P35 60 E/S Bloc 4
P36 61 E/S
P37 62 E/S
P38 63 E/S
P39 64 E/S
P40 48 E/S
P41 47 E/S
P42 46 E/S
P43 45 E/S Bloc 5
P44 44 E/S
P45 43 E/S
P46 42 E/S
P47 41 E/S
P48 52 E/S
* IMPORTANT :
Les broches 20 et 36 ne sont pas utilises NE RIEN CONNECTER SUR CES BROCHES
DC5V
* IMPORTANT :
Les broches 20 et 36 ne sont pas utilises NE RIEN CONNECTER SUR CES BROCHES
Module CB290
Le CB290 se prsente sous la forme dun module capt 108 broches dont 92 broches peuvent
tre utilises en E/S. Attention, le CB290 ne dispose pas de rgulateur interne et vous devrez
lalimenter uniquement sous une tension rgule et filtre de + 5 Vcc. Ce dernier dispose dune
mmoire RAM de 28 K et dune horloge RTC pouvant tre sauvegards par une pile externe
(non livre). Parmis les ports dE/S 32 ports ne peuvent tre utiliss quen sorties, 33 ports ne
peuvent tre utiliss quen entres et le reste des ports peuvent tre configurs volont.
1 21 41 61
2 22 42 62
3 23 43 63
4 24 44 64
5 25 45 65
6 26 46 66
7 27 47 67
8 28 48 68
9 29 49 69
10 30 50 70
11 31 51 71
12 32 52 72
13 33 53 73
14 34 54 74
15 35 55 75
16 36 56 76
17 37 57 77
81
82
83
84
85
86
87
88
89
90
91
92
93
94
18 38 58 78
19 39 59 79
20 40 60 80
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Les N de broches sont ranges par fonctions et non pas par ordre chronologique.
P24 45 Sortie
P25 46 Sortie
P26 47 Sortie
P27 48 Sortie Bloc 3
P28 49 Sortie
P29 50 Sortie
P30 51 Sortie
P31 52 Sortie
P32 65 Sortie
P33 66 Sortie
P34 67 Sortie
P35 68 Sortie Bloc 4
P36 69 Sortie
P37 70 Sortie
P38 71 Sortie
P39 72 Sortie
P40 53 Sortie
P41 54 Sortie
P42 55 Sortie
P43 56 Sortie Bloc 5
P44 57 Sortie
P45 58 Sortie
P46 59 Sortie
P47 60 Sortie
P48 73 Sortie
P49 74 Sortie
P50 75 Sortie
P51 76 Sortie Bloc 6
P52 77 Sortie
P53 78 Sortie
P54 79 Sortie
P55 80 Sortie
P56 13 Entre
P57 14 Entre
P58 15 Entre
P59 16 Entre Bloc 7
P60 17 Entre
P61 18 Entre
P62 19 Entre
P63 20 Entre
P64 33 Entre
P65 34 Entre
P66 35 Entre
P67 36 Entre Bloc 8
P68 37 Entre
P69 38 Entre
P70 39 Entre
P71 40 Entre
P72 87 Entre
P73 88 Entre
P74 89 Entre
P75 90 Entre Bloc 9
P76 101 Entre
P77 102 Entre
P78 103 Entre
P79 104 Entre
P80 91 Entre
P81 92 Entre
P82 93 Entre
P83 94 Entre Bloc 10
P84 105 Entre
P85 106 Entre
P86 107 Entre
P87 108 Entre
P88 81 N/C N/C (Ne rien connecter)
P89 82 E/S PWM3
P90 95 E/S Bloc 11 PWM4 / INT0
P91 96 E/S PWM5 / INT1
VDD 21,44 Entre Alim. 5 Vcc
VSS 22,64 Entre Masse
RES 23 Entre Entre RESET
Reset sur un Niveau Bas
VBB 24 Entre Pile Backup
TX1 41 Canal 1 (RS232)
+/- 12V -> Sortie donnes
RX1 42 Canal 1 (RS232)
+/- 12V -> Entre donnes
AVDD 43 Alim. convertisseur A/N
TTLTX1 61 Canal 1 (RS232)
Niveau 5 V (TTL)
Sortie donnes
TTLRX 62 Canal 1 (RS232)
1 Niveau 5 V (TTL)
Entre donnes
AVREF 63 Rfrence de tension ADC
P72
P73
P74
P75
P80
P81
P82
P83
0 1 3 4
CB290
7 8 5 6
11 2 9 10
Port Blocks
Toutefois cette fonctionnalit ncessite dtre vigilent si vous ne connaissez pas ltat des
donnes de la RAM alors que vous utilisez une pile de sauvegarde afin dviter que des valeurs
alatoires nactivent ces sorties lors de la mise sous tension. Si vous devez disposer de sorties
dont le niveau doit tre imprativement BAS la mise sous tension, utilisez alors des ports
dentres/sorties standards (autres que P24 P55).
Set Outonly On
Le port P88 est en fait utilis pour ragir linstruction Set Outonly et piloter les tages des
ports P24 P55. Il est donc impratif de ne JAMAIS utiliser le port P88 au sein de votre
application (ni en BASIC, ni en Ladder).
Module CB405
Le CB405 se prsente sous la forme dun module capt 80 broches dont 64 broches peuvent
tre utilises en E/S. Attention, le CB405 ne dispose pas de rgulateur interne et vous devrez
lalimenter uniquement sous une tension rgule et filtre de + 5 Vcc. Ce dernier dispose dune
mmoire RAM de 55 K pouvant tre sauvegarde par une pile externe (non livre).
Les N de broches sont ranges par fonctions et non pas par ordre chronologique.
Les N de broches sont ranges par fonctions et non pas par ordre chronologique
P48 65 E/S
P49 66 E/S
P50 67 E/S
P51 68 E/S Bloc 6 PWM9
P52 69 E/S PWM10
P53 70 E/S PWM11
P54 71 E/S
P55 72 E/S
Le module CB405 dispose dun composant interne de mise niveau MAX232 dont les
broches (TTLTXE et TTLRXE) pourront tre connectes lun de ses Ports sries (niveau
logique 0 / 5 V) afin que le port en question puisse tre directement utilis sur une liaison srie
au niveau logique +/- 12 V via les broches TXE et RXE . Dans lexemple ci-dessous, le Port
srie TX3 initialement dot dun niveau logique 0 / 5 V pourra tre exploit via les broches
TXE et RXE sur une liaison srie RS232 de niveau logique + /- 12 V.
Si vous utilisez une super capacit sur le port VBB du module CB290, il vous sera possible
de sauvegarder les donnes RAM et RTC pendant plusieurs jours en cas de coupure
dalimentation.
Pour des dures de sauvegardes plus importantes une pile devra tre utilise. Le recours une
pile et une large capacit pourra suivant les cas dutilisation vous permettre dentre la dure
de sauvegarde jusqu 1 an. Utilisez imprativement le schma ci-dessous AVEC la diode pour
raliser le dispositif de sauvegarde.
VBB
CB290
Prcautions dusages
Il conviendra dtre extrmement vigilant avec le type de signaux appliqus sur les broches des
modules CUBLOC et le type de dispositifs pilots par ces broches. Ceci est dautant plus vrai
lors des premires phases dutilisation ou pour le besoin de vos tests, pendant lesquels vous
serez amen changer souvent le rle (entre ou sortie) de vos broches.
1) Ne jamais dpasser les limites des tensions dalimentation des modules CUBLOC.
2) Si vous appliquez des tensions issues de capteurs ou de dispositifs extrieurs sur les
CUBLOC:
- Selon la mme recommandation que ci-dessus, vrifiez que vous ne disposez pas de
condensateurs de forte valeur relis sur les entres des CUBLOC, lesquels pourront stocker
une tension qui viendra alors se dcharger dans le CUBLOC lorsque vous couperez les
alimentations.
4) Lorsque vous utilisez les ports du CUBLOC en entres, n'utilisez jamais de grand fils pour
y raccorder des boutons-poussoirs et autres capteurs sans avoir recours un circuit de mise
en forme et de protection (voir exemples de montage dans la documentation). Si pour vos
tests vous n'utilisez pas de protection de ce type, limitez la longueur de vos fils 3 - 4 cm
afin d'viter les phnomnes de "latch-up" ou de destruction par lectricit statique.
5) Utilisez imprativement des diodes et autres dispositfs de protection lorsque vous pilotez (via
une lectronique de puissance) des charges inductives (moteurs par exemple) et viter de
placer le cble de tlchargement ct de cette source.
7) Avant dappliquer une quelconque tension (+ 5V ou masse) sur une des broches du
CUBLOC, vrifiez IMPERATIVEMENT que cette broche ai bien t configure en
ENTREE. Ds lors, ne reliez aucune tension (+ 5V ou masse) sur les ports du
CUBLOC configurs en sorties (sous peine de court-circuit et de destruction de ces
derniers).
8) Passez toujours par un montage dinterface (voir exemple dans la notice) pour alimenter et
piloter un dispositif consommant plus d'une vingtaine de milli-ampre.
9) Si certaines broches du module CUBLOC ne sont pas utilises pour les besoins de votre
application, configurez tout de mme imprativement ces dernires en ENTREES. Dans le
mme esprit, mettez toutes les broches de SORTIES non utilises au niveau logique BAS.
Remettez galement jour ltat de toutes les broches des CUBLOC rgulirement
(mme celles non utilises) au sein de la boucle principale de votre programme (ne vous
contentez pas dune simple configuration au dbut du programme).
10) Comme TOUT microcontrleur, les CUBLOC sont sensibles llectricit statique. Ces
derniers devront donc tre manipuls (et souds) avec les prcautions qui simposent afin
dviter leur destruction ou leur fragilisation.
12) Lorsquelles ne sont pas utilises, les broches SIN, SOUT et ATN ne doivent jamais tre
connectes quoi que ce soit. Le connecteur de programmation doit tre cbl directement
la sortie et au plus prs des broches SIN, SOUT et ATN du module CUBLOC
13) Nutilisez pas de cble de raccordement srie suprieur 2 mtres pour le tlchargement
de votre module CUBLOC.
16) Il est impratif de faire fonctionner les modules CUBLOC en dessous des valeurs limites
de tempratures, lequelles correspondent aux conditions extrmes dutilisation.
En cas de non respect des limites et des conditions dutilisations indiques dans ce manuel, la
fiabilit et la dure de vie des modules CUBLOC sera remise en cause (sans que la
responsabilit de Lextronic puisse tre mise en cause, ni que lchange du module CUBLOC
ne puisse tre pris en charge au titre de la garantie).
CB220 CB280
Sout 1 21 Vdd TX1 41 61 TtlTX1
Sin 2 22 Vss RX1 42 62 TtlRX1
Atn
Vss
P0
3
4
5
23
24
25
RES
VBB
P8 /AD0
CB290 AVdd
Vdd
P24
43
44
45
63
64
65
AVref
Vss
P32
P1 6 26 P9 /AD1 P25 46 66 P33
P2 7 27 P10 /AD2 P26 47 67 P34
P3 8 28 P11 /AD3 P27 48 68 P35
P4 9 29 P12 /AD4 P28 49 69 P36
P5 10 30 P13 /AD5 P29 50 70 P37
P6 11 31 P14 /AD6 P30 51 71 P38
72
P89 /PWM3
P72
P73
P74
P75
P80
P81
P82
P83
P76
P77
P78
P79
P84
P85
P86
P87
HCNT0/ P22
HCNT1/ P23
CB220
X:150 X:2100
Y:1600 Y:1600
CB290
CB405
X:575
Y:150
CB290 CB405
9.5m m (374mil)
Reportez-vous aux schmas ci-dessus pour limplantation sur votre circuit imprim.
Les valeurs sont indexes sur les coordonnes 0, 0.
Chapitre 3.
Lditeur / compilateur
CUBLOC STUDIO
En premier lieu, CUBLOC STUDIO vous place sous la fentre de lEDITEUR DE TEXTE.
Si vous pressez la touche F2, la fentre de lEDITEUR du LADDER saffichera alors et si vous
pressez la touche F1, la fentre de lEDITEUR DE TEXTE saffichera nouveau.
Le fichier source de votre programme sera sauvegard dans 2 fichiers (portant les extensions
.CUL et .CUB . Si vous devez raliser des sauvegardes de vos programmes pensez
imprativement copier les 2 fichiers la fois.
Lorsque vous chargez un de vos programmes, seule l fichier avec lextension .CUL sera
visible (les fichiers avec les extensions .CUB ne sont pas visibles bien quils soient dans le
mme rpertoire). Lorsque vous chargerez un fichier avec lextension .CUL , le CUBLOC
STUDIO chargera automatiquement le fichier .CUB associ.
Votre code source ne peut tre charg que depuis le PC. Il nest pas possible de rcuprer un
programme source depuis un module CUBLOC dj programm.
IMPORTANT
Les modules CUBLOC disposent dun systme de protection de code avec
cryptage qui interdira un autre utilisateur (comme vous mme) de relire tout ou
partie du programme que vous aurez tlcharg dans le module.
Dveloppement en BASIC
Vous pouvez crer et crire votre programme BASIC comme lexemple de lcran ci-dessous.
Lditeur de TEXT du CUBLOC STUDIO est similaire la plupart des autres diteurs de textes.
Ce dernier supporte diffrents raccourcis clavier (voir ci-dessous) ainsi que la coloration
syntaxique permettant dobtenir une plus grande visibilit du code.
Raccorcis Explications
CTRL-Z UNDO
CTRL-O OPEN (Ouvrir fichier)
CTRL-S SAVE (Sauvegarder fichier)
CTRL-C COPY (Copier)
CTRL-X CUT (Couper)
CTRL-V PASTE (Coller)
CTRL-F FIND (Trouver)
CTRL-HOME Go to the very beginning (Aller au tout dbut)
CTRL-END Go to the very end (Aller la fin)
CTRL-Y REDO
Dbugage
Afin de faciliter la mise au point de vos applications, vous avez la possibilit dactiver des
fonctions de DEBUG (via des commandes spciales placer au sein de votre programme
BASIC) afin de pouvoir afficher ltat de variables ou dinformations diverses sur une fentre
spciale du PC un ou plusieurs moments particuliers du droulement de votre programme.
Attention, il nest cependant pas possible dutiliser la fois le mode DEBUG du BASIC et la
fonction de monitoring du langage LADDER. Si vous dsirez utiliser la fonction de monitoring du
LADDER, vous devrez enlever ou dsactiver les commande de DEBUG que vous aurez placez
dans votre programme BASIC (il vous suffit de faire passer ces commandes comme des
commentaires en plaant une apostrophe devant ou dutiliser la commande Set Debug Off, qui
dsactivera totalement les possibilits de DEBUG du BASIC). De plus il est dconseill de
remonter des informations via le mode dbug en boucle de faon rpte, sans quoi vous
pourrez avoir des difficults transfrer votre programme au sein du module CUBLOC (la
ligne srie tant alors occupe) En ce cas, le module CUBLOC pourra au moment de la
programmation vous signaler un problme de communication srie (il vous suffira alors de
recommencer lopration de tlchargement plusieurs fois pour arriver tomber dans un
intervalle de temps ou la ligne srie est inoccupe).
Menu File
Explications
New Permet de crer un nouveau fichier
Open Ouvre un fichier.
Ladder Import Importe une partie de LADDER dans le programme du CUBLOC.
Save Sauvegarde le programme courrant.
Save As Sauvegarde le programme courrant sous une nom diffrent.
Save Object Sauvegarde le programme courrant sous la forme dun fichier binaire
objet . Ceci permet de protger votre code source afin quil ne puisse
pas tre analys par une autre personne. Vous pourrez ensuite utiliser le
menu Download from Object File pour tlcharger un programme
initialement sauvegard en fichier object dans un module CUBLOC.
Vous pouvez crer des fichiers object capables dtre tlchargs via
Internet avec les utilitaires CuMAX ou CuMAX Server.
Print Ladder Imprimer le programme LADDER uniquement.
Print Basic Imprimer le programme BASIC uniquement.
Print Setup Rglage de limpression pour la partie LADDER uniquement.
Download Tlcharger un fichier Object dans une module CUBLOC.
from Object
file
Basic Section Basculer vers la fentre de lditeur BASIC (Utilisez aussi F1).
Ladder Basculer vers la fentre de lditeur LADDER (Utilisez aussi F2).
Section
Last 4 Files Voir les 4 derniers fichiers utiliss.
Edited
Exit Sortir du programme CUBLOC Studio
Menu Run
Menu Explications
Run Compile le programme Basic et Ladder, puis les tlcharge dans le
module CUBLOC ( condition quaucune erreur nest t dtecte).
Une fois tlcharg, le programme sxcute immdiatement. Vous
pouvez dsactiver le dmarrage automatique du programme depuis le
menu Setup -> Studio Option.
Reset Reset le module CUBLOC.
Ladder Monitor on Active le Monitoring du LADDER.
BASIC Debug Ouvre la fentre du terminal de Debug du BASIC.
Terminal Cette fentre souvre galement automatiquement lorsquune
commande DEBUG est dtecte lors de lexcution du programme.
Time Chart Monitor Voir la fentre moniteur Time Chart .
Clear CUBLOCs Efface la mmoire Flash du CUBLOC.
Flash Memory
Write enable fuse Cette option permet de dsactiver la fonction de tlchargement du
off module CUBLOC afin de protger son programme en vrouillant
laccs de sa mmoire Flash (conseill si ce dernier est exploit en
environnement perturb). Une fois slectionne, plus aucun
programme ne pourra tre tlcharg dans le CUBLOC (La seule
faon pour pouvoir tlcharger nouveau un programme est de
reprogrammer le Firmware du CUBLOC)
View Register (Aprs compilation) Visulalise les Registres utiliss dans le LADDER.
Usage
Check Syntax Permet de vrifier la syntaxe.
Menu Edit
Menu Explications
Find / replace / Go Vous retrouvez ici toutes les fonctions usuelles (copier/coler/ etc)
Line / Undo / Redo propres tout diteur de texte.
/ Copy / Cut / Paste
/ Sellect All
Menu Device
Menu Explications
CB220 / CB280 / Permet de modifier automatiquement lentte de dclaration du
CB290 / CB405 / programme BASIC en fonction du type de CUBLOC utilis.
CT1720
Menu Setup
Menu Explications
PLC Setup Wizard Interface daide la gnration automatique des codes dinitialisation
du programme BASIC en cas dutilisation conjoint avec le LADDER.
PC Interface Setup Configuration du N de pour COM RS232 (COM1 COM4) ddi au
tlchargement de votre programme.
Editor Environment Configuration de lenvironnement de lEditeur de texte du BASIC.
Setup
Environnement Options de paramtrage doption diverses du CUBLOC STUDIO.
Options
Use Korean Menu Permet lutilisation de menu en Coren.
Firmware Permet de remettre jour le Firmware du module CUBLOC.
Download
Le menu Help
Menu Explications
Upgrade History / Permet dobtenir des informations sur la version du CUBLOC STUDIO
About CUBLOC et sur lhistorique de ses mises jour.
STUDIO
* Lisez imprativement cette page, mme si vous ne comptez utiliser que le langage
LADDER.
Chapitre 4.
Le langage BASIC des
Modules CUBLOC
Const Device
IMPORTANT
Vous devez dclarer au sein du programme BASIC le modle de CUBLOC que
vous allez utiliser (que votre application soit dveloppe en BASIC ou en LADDER).
Lexemple ci-dessous montre comment dclarer que vous travaillez avec un module
CUBLOC CB220 .
Cette dclaration doit tre faite la premire ligne de votre programme BASIC. Si
cette dclaration est absente, le CUBLOC choisira le modle CB220 par dfaut.
Dim A As Byte
Do
Byteout 0, A
A=A+1
Loop
Dim A As Byte
Do
Byteout 0, A
A=ADD_VALUE(A)
Loop
End
Mme si ce programme peut vous sembler plus compliqu que le prcdent, on aura pu mettre
en valeur que linstruction A=A+1 a t transforme en une fonction qui pourra ds lors tre
appele depuis nimporte quelle autre partie du programme. Dans le cas dun traitement plus
complexe quun simple A=A+1, vous pourrez raliser des actions trs complexes au sein dune
fonction, laquelle pourra alors sapparenter une nouvelle instruction. Une fonction pourra par
exemple rcuprer les valeurs dun mini-module sonar externe au CUBLOC afin de
dterminer la distance qui le spare dun obstacle. Cette fonction pourra alors sapparenter
elle seule une nouvelle instruction permettant de raliser cette action, instruction que vous
pourrez appeler tout moment dans votre programme en simplifiant ainsi sa composition.
MAIN P ROGRAM
SUB
Sub routine
FUNCTION
SUB
Pour retourner une valeur au programme principal en sortie dune Fonction , il vous suffit de
stocker cette valeur dans une variable protant le mme nom que la Fonction (voir exemple
ci-dessous).
A loppos, les variables utilises dans le programme principal sont de type global et
peuvent tre utilises dans nimporte quelle partie de votre code.
Main Program
Global Variable
Sub DELAYTIME()
Dim K As Integer ' Dclare K comme une variable de type Local
For K=0 To 10
Next
End Sub
Dans le programme ci-dessus, la variable A (de type global) pourra tre utilise dans TOUT le
programme alors que la variable K (de type local) ne pourra tre utilise que dans la sous-
routine DELAYTIME() .
A noter que les variable de type tableau ne pourront pas tre utilis comme des variables de
type local . Les variables de type tableau doient tre uniquement dclare comme
des variables de type global .
Lorsque vous appelez une Fonction , vous devez utiliser des parenthses entre les
paramtres (les parenthses doivent tre utilise mme sil ny a pas de paramtres).
Dim K As Integer
K = SUMAB(100,200) ' Appel de la sous-routine et stock valeur retourne dans K
Debug Dec K,cr
End
Dim A As Integer
LOOP1:
A=A+1
Debug DP(A),CR
DELAYTIME
Goto Loop1
Sub DELAYTIME()
Dim K As Integer
For K=0 To 10
Next
End Sub
Dim A As Integer
:
:
Gosub ABC
:
ABC:
:
End
* Attention lutilisation de linstruction End est diffrente suivant que vous tes en BASIC ou
en ladder. Linstruction End en Ladder signifie la fin dfinitive de votre programme
Ladder.
Function ABC(A AS String * 12) as String *12 ' Retourne une Chane de caractres
End Function
La variables de type tableau ne peuvent pas par contre tre utiliss pour le retour de
Fonction .
Function ARRAYUSING(A(10) AS Integer) ' Les tableaux ne peuvent pas tre utiliss comme
' paramtres.
End Function
Mais vous pouvez utiliser un seul lment dun tableau comme paramtre.
Tous les paramtres des fonctions sont grs commes des valeurs de sortie . Cest
dire que ces valeurs sont uniquement gres comme variable de rfrence . Mme si la
valeur du paramtre change, ceci naffectera pas ltat actuel de la variable utilise comme
paramtre (voir lexemple ci-dessous).
Dim A As Integer
Dim K As Integer
A = 100
K = ADDATEN(A)
Debug Dec? A, Dec? K,CR ' A est gale 100 et K est gal 110
End
ST = "COMFILE TECHNOLOGY"
Revient crire
ST = "COMFILE _
TECHNOLOGY"
Sous-routines imbriques
Les CUBLOC supportent le recours des sous-routines imbriques.
Variables
Il y a 5 types de variables pouvant tre gres par le BASIC des CUBLOC.
Une variable Byte est un nombre positif sur 8 bits pouvant tre compris entre 0 et 255.
Une variable Integer est un nombre positif sur 16 bits pouvant tre compris entre 0 et
65535.
Une variable Long est un nombre positif/ngatif sur 32 bits pouvant tre compris
entre -2,147,483,648 to 2,147,483,647.
Une variable Single est un nombre positif/ngatif sur 32 bits virgule flottante pouvant tre
compris entre -3.402823x1038 to 3.402823 x 1038.
BYTE
WORD
LONG
*Pour mmoriser des nombres ngatifs, utilisez des variables de type LONG ou SINGLE.
Utilisez la commande DIM pour dclarer les variables en dbut de programme comme
indiqu ci-dessous.
Instruction VAR
Linstruction VAR pourra tre utilise pour la dclaration des variables limage de
linstruction DIM en utilisant la syntaxe ci-dessous.
Chanes
Une chane peut tre dote dune taille maximale de 127 octets. Si la taille de la chane nest
pas dclare, celle-ci sera doffice configure avec 64 octets.
Il est important de noter que lorsque vous slectionnerez une taille maximale de 14 octets pour
une chane, un autre octet est allou par le processeur du module CUBLOC pour stocker une
chane NULL.
Si vous essayez de stocker une variable de taille suprieur ce que la chane peu contenir,
vous ne pourrez utiliser que la place dclare. Ainsi dans lexemple ci-dessous, les 4 derniers
caractres ne seront pas mmoris.
DIM ST AS STRING * 14
ST = COMFILE TECHNOLOGY LOGY is not stored
COMFILE TECHNOLOGY
C O M F I L E T E C H N O L O dGo Yn o t fit h e re
Dans le BASIC du CUBLOC, le caractre () doit tre utilis pour dfinir une chane par
contre, certains caractres ne pourront pas tre utilis lintrieur dune chane.
ST = COMFILE TECHNOLOGY () Ce caractre ne peut pas tre utilis dans une chane.
ST = COMFILE TECHNOLOGY () Ce caractre ne peut pas tre utilis dans une chane.
ST = COMFILE , TECHNOLOGY (,) Ce caractre ne peut pas tre utilis dans une chane.
Vous pouvez utiliser la commande CHR(&H22) pour dfinir le caractre () et CHR(&H27) pour
dfinir le caractre () ou encore la commande CHR(&H2C) pour dfinir le caractre (,).
Dim a1 As String * 30
Dim a2 As String * 30
a1 = "Comfile "
a2 = "Technology "
a1 = a1 & a2 & ",Inc"
Debug a1,cr
Lorsque vous dclarez Dim ST1 AS STRING * 12 , un tableau de type ST1_A(12) est
alors automatiquement cr par le systme dexploitation du CUBLOC. Les chanes et les
tableaux utilisent en fait la mme ressource mmoire et vous y accdez de la mme faon.
Lexemple ci-dessous montre comment remplacer les caractres vides par des caractres
z .
Attention, toutefois les tableau de type chane ne peuvent pas utiliser cette possibilit.
Initialisation de la mmoire
La mmoire de donnes des CUBLOC nest pas initialise la mise sous tension. Vous
devrez donc penser mettre vos variables zro ou utiliser la commande RAMCLEAR pour
effacer toute la mmoire.
Ramclear
En absence dexcution de cette instruction, la mmoire RAM contiendra des valeurs indfinies
aprs la mise sous-tension.
Si vous utilisez une sauvegarde par pile (pour les CUBLOC disposant de cette possibilit), les
variables conserveront leur valeur aprs une remise sous tension du module principal.
Tableaux (matrices)
Le BASIC des CUBLOC peut grer des tableaux (matrices) jusqu 8 dimensions (de 65535
lments max.)
A(6)
A(3,6)
A(3,3,6)
Prenez garde calculer (suivant la nature des variables) loccupation mmoire en RAM lorsque
vous utilisez des tableaux multi-dimensions.
DIM A AS INTEGER
DIM B AS BYTE
A.LOWBYTE = &H12 Mmorise &H12 dans les octets de poid faible de A
Bit
LOWBIT Variable -> bit 0
BIT0~31 Variable -> bit 0 31
BYTE
LOWBIT
BI 1
BI 0
BI 9
BI 8
BI 7
BI 6
BI 5
4
T7
T6
T5
T4
T3
T2
T1
T0
T3
T3
T2
T2
T2
T2
T2
T2
BI
BI
BI
BI
BI
BI
BI
BI
BI
LONG
LOWBIT
Nibble
Cette commande permet de traiter 4 bits la fois afin de disposer dune plus grande flxibilit
pour manipuler les donnes.
LONG
Byte
Pour dterminer un octet particulier dune variable, les noms suivant peuvent tre utiliss.
(Loctet A est sur 8 bits)
LOWBYTE
Word
Pour dterminer une donne de type word particulire dune variable, les noms suivant
peuvent tre utiliss: (La donne de type Word est sur 16 bits)
LOWWORD
Constantes
Les constantes peuvent tre utilises pour dclarer une valeur fixe au dbut de votre
programme. En utilisant celles-ci, votre programme sera plus lisible et plaus simple
comprendre. Utilisez la commande CONST pour dclarer vos constantes dans le CUBLOC.
Lorsque le type de contante nest pas indiqu, le compilateur BASIC du CBLOC essayera de
dterminer le type de donne le plus appropri:
Const Byte DATA1 = (31, 25, 102, 34, 1, 0, 0, 0, 0, 0, 65, 64, 34)
I=0
A = DATA1(I) ' Mmorise 31 dans A.
I=I+1
A = DATA1(I) ' Mmorise 25 dans A.
Les donnes de type chane peuvent tre stockes dans des tableaux doctets. Le code ASCII
du caractre sera retourn. Si DATA1(0) est lu, le code ASCII C sera retourn. De la mme
faon si la donne DATA1(1) est lu, le code ASCII U sera retourn.
Si vous devez dfinir de trs longues suite de nombres, procdez comme dans les exemples ci-
dessous:
1)
CONST BYTE DATA1 = (31, 25, 102, 34, 1, 0, 0, 0, 0, 0, 65, 64, 34,
12, 123, 94, 200, 0, 123, 44, 39, 120, 239,
132, 13, 34, 20, 101, 123, 44, 39, 12, 39)
2)
CONST BYTE DATA2 = (31, 25, 102, 34, 1, 0, 65, 64, 34,_
101, 123, 44, 39, 12, 39)
Configurez la taille de la chane afin quelle soit suprieure la taille de tous les lments de la
liste.
Exemple de programme :
Oprateurs
Lorsque vous utilisez des oprateurs logiques, la table de priorit ci-dessous indique lordre de
traitement effectu par le BASIC du CUBLOC.
Consulter le tableau ci-dessus pour vrifier lordre de priorit de vos calculs. Dans une ligne de
calcul, lordre de priorit part de la gauche vers la droite.
Vous pouvez utiliser des oprateurs en tant que condition comme ci-dessous:
Tous les nombres peuvent tre mixs avec les nombres virgule flottante. Le rsultat final sera
associ (ou converti) par rapport au type de la variable dans lequel il sera sauvegard.
DIM F1 AS SINGLE
DIM A AS LONG
F1=1.1234
A = F1 * 3.14 A = 3 mme si le rsultat est 3.525456 (car A est de type LONG).
Veillez bien inclure des (.) lorsque vous utilisez des nombres virgule flottante.
F1 = 3.0/4.0 3/4 doit tre crit 3.0/4.0 pour obtenir des virgules flottantes
F1 = 200.0 + FLOOR(A) * 12.0 + SQR(B) 200 doit tre crit 200.0 et 12 doit tre crit 12.0
AND, XOR, OR sont utiliss pour des oprations logiques et comme oprateur sur le bits.
A = B AND &HF Met les 4 bits de poids fort 0 (Opration sur les bits)
A = B XOR &HF Inverse les 4 bits de poids faible. (Opration sur les bits)
A = B OR &HF Met les 4 bits de poids faible 1. (Opration sur les bits).
Les oprateurs utiliss dans le langage BASIC des CUBLOC peuvent avoir une signification
lgrement diffrente des autres langage BASIC (voir le tableau ci-dessous).
Avec le BASIC des CUBLOC, le caractre ( / ) est utilis pour dsigner une division.
Vrifiez que vous utilisez les parenthses de faon approprie pour formuler correctement les
oprations de calcul.
Exemple de programme :
Exemples:
Le pr-processeur BASIC
Le pr-processeur BASIC est un macro processeur automatiquement utilis par le
compilateur pour transformer votre programme avant la compilation. Il est appel macro
processeur car il vous permet de dfinir des macros qui vous permettent dallger la
structure de programmes de grande envergure.
Le BASIC des CUBLOC est ce titre similaire au langage C avec le recours possible
des directives telles que #include et #define afin dajouter des fichiers et des processus avant la
compilation.
#INCLUDE "MYLIB.cub"
Pour les fichiers stocks dans un autre rpertoire, vous devrez indiquer le chemin daccs
complet comme dans lexemple ci-dessous :
#INCLUDE "c:\mysource\CUBLOC\lib\mylib.cub"
En utilisant des fichiers externes via la commande #include, vous pourrez par exemple stocker
toutes vos sous-routines dans des fichiers spars.
Utilisez imprativement les commandes #include la fin de votre programme (aprs End
pour les sous-routines ).
#define motorport 4
low motorport
CONST motorport = 4
low motorport
#define FLAGREG1 2
#define f_led FLAGREG1.BIT0
#define calc (4+i)*256
f_led = 1 ' positionne 1er bit FLAGREG1 1.
IF f_led = 1 then f_led = 0 ' Permet une lecture du programme plus simple
j = calc ' Lexpression du calcul est simplifie
Note :
#define ne fait pas de diffrence entre les caractres minuscules et majuscule. Lensemble de
ces derniers seront interprts comme des caractres majuscules.
Par exemple #define ALPHA 0 et #define alpha 0 seront considrs comme identique.
Exemple de programme :
Directives conditionnelles
Une directive conditionnelle permet dindiquer au pr-processeur de slectionner ou non
lintgration dune partie du code avant la compilation. Les directives conditionnelles peuvent
tester des expressions arithmtiques ou un nom dfini comme une macro ou les 2 en mme
temps en utilisant un oprateur spcial.
Voici quelques raisons pour lesquelles vous pouvez avoir recours une directive
conditionnelle :
- Il peut tre ncessaire de compiler le mme fichier source pour obtenir 2 programmes
diffrents. Une premire version pourra par exemple afficher des variable de Dbug sur
lcran du PC alors que la seconde version ne comportera aucun retour dinfos de dbug
vers le PC.
#if constante
#endif
La directive #if du pr-processeur comparera une constante dclare avec linstruction
CONST avec une autre constante. Si la condition teste par #if est vrai, le contenu compris
entre les commandes #if #endif seront compils (sinon le code sera ignor).
Delay 500
#If Device = 220
Debug "Module CB220 utilis !"
#endif
Dans lexemple ci-dessus, le code compil sera diffrent suivant que vous utilis un module
CUBLOC CB280 ou un module CB220 .
#elseif
#else
En utilisant les directives #elseif ou #else, vous pourrez crer des tests plus complexes.
Delay 500
#else ne pourra tre utilis quaprs une expression #if. Vous ne pouvez comparer que des
constantes dclares avec la commande CONST dans les tests #if.
#ifdef nom
#endif
Lorsque vous utilisez #if pour comparer des constantes, vous pouvez utiliser #ifdef pour voir si
la constante a t pralablement dclare via une commande #define ou CONST.
Si la constante a t pralablement dclare, le code prsent entre #if #endif sera compil
(sinon il sera ignor).
#define LOWMODEL 0
#ifdef LOWMODEL
LOW 0
#endif
Dans lexemple ci-dessus, du fait que LOWMODEL ai t dclar, la code LOW 0 sera ajout
au programme lors de la compilation.
#else #elseifdef peuvent tre utiliss pour raliser des tests plus complexes :
#ifdef LOWMODEL
LOW 0
#elseifdef HIGHMODEL
HIGH 0
#else
LOW 1
#endif
#ifndef nom
#endif
#ifndef est exactement loppos de la directive #ifdef. Si une constante na pas t dfinie, le
code entre #if#endif sera compil (sinon il sera ignor).
#define LOWMODEL 0
#ifndef LOWMODEL
LOW 0
#endif
#elseifndef et #else peuvent tre utiliss pour raliser des tests plus complexes :
#ifndef LOWMODEL
LOW 0
#elseifndef HIGHMODEL
HIGH 0
#else
LOW 1
#endif
Il est galement possible de mixer les directive comme dans lexemple ci-dessous:
#if MODELNO = 0
LOW 0
#elseifdef HIGHMODEL
HIGH 0
#else
LOW 1
#endif
Il nest toutefois pas possible dutiliser #if lintrieur dun autre test #if.
Alias M0 = MOTORSTATE ' Dclarez ventuellement des alias pour les Registres
Alias M1 = RELAY1STATE
Le type de CUBLOC et les broches utiliss ainsi que la dfinition des alias devront se
faire en BASIC. Lexcution du programme LADDER devra tre active depuis le programme
BASIC par la commande SET LADDER ON.
Interruptions
Une interruption peut intervenir durant lexcution du programme principal afin de raliser une
routine particulire. La commande ONGOSUB doit tre utilise pour configurer une nouvelle
interruption. Lorsque cette interruption intervient, le programme principal est stopp et le
programme poursuit son excution ladresse indique pralablement par la commande
ONGOSUB. Lorsque la sous routine dinterruption est termine, la commande RETURN
permet au programme principal de reprendre le cours de son excution lendroit o il lavait
stopp.
INTERRUPT
ROU TINE
MAIN PR OGRAM
A ce titre, les modules CUBLOC disposent dune gestion des interruptions extrmement
flexible et puissante. Si une routine dinterruption est en cours dexcution, toute autre requte
dinterruption de mme nature sera ignore. Si par exemple une interruption de type RS232
RECV survient durant lexcution dune sous-routine dinterruption RS232 RECV, cette dernire
sera ignore. Si par contre une interruption de type INT Edge survient durant lexcution dune
sous-routine dinterruption RS232 RECV, cette dernire sera alors immdiatement excute.
3. A la fin de votre routine dinterruption il vous faudra imprativement ajouter une instruction
return (sous peine de dysfonction de votre programme).
5. Les commandes Delay, Pulsout peuvent tre utilises pendant une interruption. Toutefois il
est important de savoir que les commandes Delay, Pulsout peuvent tre affectes par
dautres interruptions intervenant lors de leur excution. Pour viter ce phnomne, utilisez
alors la commande Set Onglobal Off avant dexcuter les commandes Delay et Pulsout
comme dans lexemple ci-dessous :
6. Si aucune interruption nest requise durant lexcution de votre programme, vous pouvez
acclrer sensiblement lexcution de votre programme ou de votre CUTOUCH en
dsactivant toutes les interruptions laide de la commande Set Onglobal Off.
7. Lors de la gnration dune interruption par On Recv, les donnes reues durant lexcution
de la sous-routine On Recv seront simplement stockes dans le buffer de rception (afin
quaucune donne ne soit perdue). Ds que la sous-routine gnre par le On Recv est
termine, sil ny a une nouvelle donne dans le buffer de rception, une nouvelle
interruption est alors immdiatement gnre. La commande Bclr pourra tre utilise si
vous ne dsirez pas rgnrer une nouvelle interruption.
Lorsque vous excutez ce code, la fentre de DUBUG affichera 3.00000 au lieu de 3.14.
La raison est que la commande EEWRITE convertie automatiquement les nombres virgule
flottante en nombre entier.
Afin de pouvoir stocker et relire des nombres virgule flottante, vous devrez utiliser les
commandes Peek et Poke comme indiqu dans lexemple ci-dessous.
La commande Memadr(F1) est utilise pour trouver ladresse mmoire de F1, puis la
commande Peek est utilise pour accder directement la mmoire en y insrivant 4 octets dans
la mmoire EEPROM.
A linverse, les commandes Memadr(F2) et Poke sont utilises pour lire nouveau directement
les 4 octets.
Attention : Prenez garde en utilisant ces commandes, sans quoi les pointeurs risquent
daffecter le programme en entier et/ou le fonctionnement du CUBLOC. Les
commandes Peek et Poke peuvent galement tre utilises pour accder la mmoire de
donne de type SRAM.
Partage de donnes
Les modules CUBLOC disposent dune mmoire de donne individuelle pour le BASIC et le
LADDER.
Variable A P
Variable B
Variable C M
Variable D
Variable E
C
Variable F T
D
La mmoire de donne du LADDER peut tre facilement accde par le BASIC en utilisant des
variables systmes. En utilisant ces variables systmes, cette mmoire donnes pourra
galement tre lue et modifie par le LADDER.
Les Registres P et M du LADDER pourront tre adresss bit bit. Les autres Registres
C, T, et D pourront tre adresss en tant que donnes de type Word . Pour accder aux
Registres P et M en tant que donnes de type Words , utilisez _WP et _WD .
_D(0) = 1234
_D(1) = 3456
_D(2) = 100
FOR I = 0 TO 99
_M(I) = 0
NEXT
IF _P(3) = 1 THEN _M(127) = 1
A linverse, il nest pas possible davoir accs aux variables du BASIC depuis le LADDER. Vous
pourrez toutefois dclencher des interruptions dans le BASIC, lesquelles pourront tre gnres
par le LADDER.
Usepin 0,In,START
Usepin 1,Out,RELAY
Alias M0 = MOTORSTATE
Alias M1 = RELAY1STATE
Alias T1 = SUBTIMER
Chapitre 5.
Les principales fonctions
BASIC des CUBLOC
Fonctions Mathmatiques
Avant de pouvoir utiliser correctement les fonctions mathmatiques des CUBLOC, il
vous faut imprativement (sous votre systme dexploitation Windows XP)
slectionner le menu Dmarrer -> Paramtres - > panneau de configuration .
Si vous ne procdez pas cette modification, vous ne pourrez pas utiliser correctement
les fonctions et calculs mathmatiques des CUBLOC (les rsultats retourns seront
errons).
SQR
A=SQR B Retourne la valeur de la racine care de B.
EXP
A=EXP X Retourne EX.
LOG, LOG10
A=LOG B Retourne la valeur de LOG de B.
Ou
A=LOG10 B
FLOOR
Dim A As Single, B As Single
B = 3.14
A=FLOOR B ' FLOOR de 3.14 donne 3.
Debug Float A ' Affiche 3.0
Conversions de formats
Des commandes vous permettront de modifier une variable vers une reprsentation diffrente.
HEX
Convertie la variable en hex (16 bits). HEX8 signifie une conversion en dcimal sur 8
caractres (1 8 peut tre utilis pour les places dcimales)
DEBUG HEX A Si A est 123ABC, 123ABC sera affich dans la fentre de DEBUG
DEBUG HEX8 A Si A est 123ABC, bb123ABC sera affich dans la fentre de DEBUG
b correspond un caractre blanc.
DEBUG HEX5 A Si A est 123ABC, 23ABC sera affich dans la fentre de DEBUG
Le premier caractre est coup.
DEC
Converti une variable en un dcimal (10 bits). DEC8 signifie une conversion en dcimal sur 8
caractres (1 11 peut tre utilis pour les places dcimales)
DEBUG DEC A Si A est 1234, 1234 sera affich dans la fentre de DEBUG.
DEBUG DEC10 A Si A est 1234, bbbbbb1234 sera affich dans la fentre de DEBUG
b correspond un caractre blanc.
DEBUG DEC3 A Si A est 1234, 234 sera affich dans la fentre de DEBUG
Le premier caractre est coup
?
Permet dajouter le nom de la variable (ne peut tre utilis quavec des variables de type
HEX ou DEC).
DEBUG DEC ? A Si A est 1234, A=1234 sera affich dans la fentre de DEBUG.
DEBUG HEX ? A Si A est ABCD, A=ABCD sera affich dans la fentre de DEBUG.
DEBUG HEX ? B Si B est une sous-routine (CONV par exemple)
B_@_CONV=ABCD sera affich.
FLOAT
Utilisez FLOAT pour convertir les nombres virgule flottante en chane.
Dim ST As String * 12
ST = Float F1 ' Stock F1 dans une chane.
ST = Left(ST,3) ' Ne rcupre que les 3 caractres de gauche.
Debug ST ' Affiche "3.14" dans la fentre DEBUG.
Si le paramtre Affichage zro est mis 1, des zros remplacent les espaces libres.
Dim A as Integer
DEBUG DP(A,10,0) ' Convertion de A dans une chane de reprsentation dcimale.
' Rserve 10 emplacements pour les chiffres.
' Si A = 1234, bbbbbb1234 sera affich.
' (b sera remplac par des espaces .)
DEBUG DP(A,10,1) ' Si A = 1234 alors 0000001234 sera affich.
Si le paramtre Affichage zro est mis 1, des zros remplacent les espaces libres.
Dim A as Single
A = 3.14
DEBUG Float A ' Affiche 3.1400000 (avec tous les digits)
DEBUG FP(A,3,2) ' Affiche valeur selon le format dfini : 3.14
La gestion des nombres virgule flottante des CUBLOC est au format IEEE724. Les valeurs
retournes par la fonction FP et Float peuvent tre diffrentes (mais les valeurs
stockes dans les variables seront bien les mmes).
LEFT(Variable, Nb caractres)
Slectionne un nombre dfini de caractres dune chane en partant de la gauche.
RIGHT(Variable, Nb caractres)
Slectionne un nombre dfini de caractres dune chane en partant de la droite.
LEN(Variable)
Retourne la longeur dune chane.
SPC(Nb Caractres)
Permet de crer une chane de caractres avec des espaces
LTRIM(variable Chane)
Enlve tous les espaces gauche dune chane de caractres.
RTRIM(variable Chane)
Enlve tous les espaces droite dune chane de caractres.
VAL(variable Chane)
Conversion de la valeur numrique dune chane.
VALSNG(variable Chane)
Conversion de la valeur numrique (avec virgule flottante) dune chane.
VALHEX(variable Chane)
Conversion de la valeur hxadcimal dune chane.
CHR(code ASCII)
Retourne le code ASCII dun caractre.
NOTE
Seule une variable peut tre utilise lorsque vous exploitez des fonctions de chanes.
ST1 = INTEGER
DEBUG LEFT(ST1,4) Vous devez utiliser une variable pour raliser cette instruction.
Chapitre 6.
Les librairies BASIC
des CUBLOC
Adin( )
Variable = ADIN (Canal)
Variable : Variable servant mmoriser le rsultat
Canal : Port de conversion Analogique/Numrique (pas le N de la broche du CUBLOC)
La commande ADIN effectue une lecture de la valeur analogique dun signal et mmorise le
rsultat dans la variable. En fonction du modle de module CUBLOC utilis, le N du canal de
conversion A/N sera diffrent. Pour le CUBLOC CB280 par exemple, vous disposez de 8
ports de conversion A/N rparties entre P24 P31. Attention les ports dentres de
conversion A/N doivent au pralable tre dclars en tant que port dentre avant
toute utilisation.
Lorsquune tension comprise entre 0 et AVREF est mesure, cette tension est convertie en une
valeur comprise entre 0 et 1023. * AVREF peut tre compris entre +2 et +5 V (la valeur usuelle
est gnralement de +5 V). Si vous utilisez une tension de +3 V pour AVREF, alors les
tensions comprises entre 0 et +3 V seront converties entre 0 et 1023.
Return value
1023
0
0V 5V Input voltage
DIM A AS INTEGER
INPUT 24 Configure le N de broche du CUBLOC en entre.
A=ADIN(0) Ralise une conversion A/N sur le canal 0 et
mmorise le rsultat dans la variable A
Comme on peut le voir le paramtre Canal (qui ici a la valeur 0) correspond au N du port de
conversion Analogique/Numrique du module CUBLOC. Ainsi dans lexemple ci-dessus,
le port conversion Analogique/Numrique N 0 correspond en fait au Port 24 du CB280.
CB280
CB220 SOUT 1 17 VDD TX1 33 49 TTLTX1
SOUT 1 24 VIN SIN 2 18 VSS RX1 34 50 TTLRX1
ATN 3 19 RES AV DD 35 51 AV RE F
SIN 2 23 VSS
VSS 4 20 N/C N/C 36 52 P48
ATN 3 22 RES P24 37 53 P31
P0 5 21 P16
VSS 4 21 VDD P25 38 54 P30 AD INPUT
P1 6 22 P17
P0 5 20 P15 P2 7 23 P18 P26 39 55 P29
P27 40 56 P28
PORT
P1 6 19 P14 P3 8 24 P19
P47 41 57 P32
P2 7 18 P13 P4 9 25 P20
P5 10 26 P21 P46 42 58 P33
AD INPUT P3 8 17 P12
P45 43 59 P34
P6 11 27 P22
P4 9 16 P11
PORT P7 12 28 P23 P44 44 60 P35
P5 10 15 P10 P8 13 29 P15 P43 45 61 P36
P6 11 14 P9 P9 14 30 P14 P42 46 62 P37
P7 13 P8 P41 47 63 P38
12 P10 15 31 P13
P11 16 32 P12 P40 48 64 P39
Tableau de corespondance.
Alias
ALIAS NomRegitre = NomAlias
NomRegistre : Nom du Registre tels que P0, M0, T0 (Ne pas utiliser D)
NomAlias : Nom plus reprsentatif de la fonction du Registre
Les Alias vous permettront de nommer en clair les Regsitres utiliss dans le LADDER (tels
que P0, M0, C0) afin que votre programme soit plus simple lire et interprter.
Alias M0 = EtatR
Alias M0 = EtatK
Alias P0 = BPStart
Bcd2bin
Variable = BCD2BIN( valeurbcd)
Variable : Variable servant mmoriser le rsultat (Retourne un LONG)
valeurbcd : Valeur BCD convertir en binaire
Dim A As Integer
A=Bcd2bin(&h1234)
Debug Dec A ' Affiche 1234
Bclr
BCLR canal, typebuffer
canal : canal RS232 (0 3 suivant type de module CUBLOC)
typebuffer : 0 = Rception, 1 = Transmission, 2 = les 2
Beep
BEEP Broche, Longueur
Broche : N de Port (0 255)
Longueur : Priode de sortie des impulsions (1 65535)
La commande BEEP est utilise pour crer des bips sonores. Un buzzer (sans oscillateur)
doit pour ce faire tre reli au pralable sur un des ports du module CUBLOC. Un bip sonore
court sera alors gnr. Cette commande est utile par exemple pour confirmer la saisie dune
touche ou raliser des signaux sonores divers. Lorsque vous utilisez cette commande, la
broche utilise et automatiquement configure en sortie.
BEEP 2, 100 Gnre un Bip sonore sur P2 avec une priode de 100
P IE ZO
Bfree( )
Variable = BFREE(canal, typebuffer)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single)
canal : canal RS232 (0 3 suivant type de CUBLOC utilis)
typebuffer: 0 = Buffer de rception, 1 = Buffer dmission
Cette commande retourne la valeur du nombre doctets de libres disponibles dans le buffer de
rception ou dmission. Cette commande pourra par exemple tre utilise pour envoyer des
donnes via le port srie en vitant un dpassement de la capacit du buffer.
DIM A AS BYTE
OPENCOM 1,19200,0, 100, 50
IF BFREE(1,1)>10 THEN
PUT TECHNOLOGY
END IF
Si la taille du buffer est configure 50 octets, 49 octets max. de libre pourront tre
retourns. La fonction retournera un nombre doctets infrieur dune unit par rapport
la taille du buffer lorque le buffer est totalement vide.
Bin2bcd
Variable = BIN2BCD( valeurbinaire)
Variable : Variable servant mmoriser le rsultat (Retourne un LONG)
valeurbinaire : Valeur binaire convertir
La commande BIN2BCD convertie un nombre binaire en valeur BCD (afin de pouvoir en avoir
une expression dcimale).
3451
0000 1101 0111 1011
0 D 7 B
Lexpression ci-dessous montre la valeur binaire 3451 convertie en valeur BCD. Comme vous
pouvez le voir, chaque groupe de 4 bits reprsente un digit du nombre binaire.
3451
0011 0100 0101 0001
3 4 5 1
Cette commande est utile lorsque vous dsirerez convertir une variable binaire afin quelle
puisse par exemple tre reprsente sur un afficheur 7 segments Leds.
I = 123456
j = bin2bcd(i)
Debug Hex J Affiche 123456
Blen( )
Variable = RBLEN(canal, typebuffer)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single)
canal : canal RS232 (0 3 suivant type de CUBLOC utilis)
typebuffer: 0 = Buffer de rception , 1 = Buffer dmission
La commande Blen() retourne le nombre courrant doctets disponibles dans le buffer RS232
spcifi. Si le buffer est vide, le nombre 0 sera retourn. Lorsque vous recevez des donnes
dans le buffer, cette commande peut tre utilise pour savoir combien de donnes ont t
reues avant de pouvoir les rcuprer avec les commandes GET ou GETSTR.
Si le buffer de rception est plein, il ne vous sera plus possible de recevoir dautres donnes.
Pour viter cette situation, utilisez les interruptions en cas de rception de donnes ou
augmentez la taille du buffer de rception.
Dim A As Byte
Opencom 1,19200,0,100,50
On Recv1 DATARECV_RTN ' Lorsque des donnes sont reue sur la
' RS232, continuer programme DATARECV_RTN
Do
Loop ' Boucle sans fin
DATARECV_RTN:
If Blen(1,0) > 0 Then ' Sil y a au moins 1 octet de prsent
A = Get(1) ' Rcuprer 1 octet
End If
Return ' Fin de la routine dinterruption
Bytein( )
Variable = BYTEIN(Bloc)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single)
Bloc : N du Bloc d E/S (0 15 suivant le type de CUBLOC utilis)
Effectue la lecture de ltat en cours dun Bloc dE/S. 8 broches dE/S (ports) sont associes
ce quon appel un Bloc. Les ports 0 7 correspondent au Bloc 0 et les ports 8 15 au Bloc 1.
En fonction du modle de CUBLOC, le nombre de Blocs peut varier. Lorsque vous utilisez
cette commande, toutes les broches dE/S du Bloc sont configures en entres et ltat de ces
dernires est mmoris dans la Variable.
DIM A AS BYTE
A = BYTEIN(0) Sauvegarde ltat des ports du Bloc 0 dans la variable A.
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15
P1 6 19 P14
P2 7 18 P13
BLOCK 0 P3 8 17 P12 BLOCK 1
P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
1 P 10 15 31 P 13 P 41
P 40
47
48
63
64
P 38
P 39
P 11 16 32 P 12
Byteout
BYTEOUT Bloc, valeur
Bloc : N du Bloc d E/S (0 15 suivant le type de CUBLOC utilis)
valeur : Valeur a appliquer sur les sorties (comprise entre 0 et 255).
Permet dappliquer une valeur sur un Bloc. 8 broches dE/S (ports) sont associes ce quon
appel un Bloc. Les ports 0 7 correspondent au Bloc 0 et les ports 8 15 au Bloc 1. En
fonction du modle de CUBLOC, le nombre de Blocs peut varier. Lorsque vous utilisez cette
commande, toutes les broches dE/S du Bloc sont configures en sortie.
* Le port P1 ne pouvant tre utilis quen entre, il en rsulte que la commande BYTEOUT 0 ne
vous permettra pas dutiliser le port P1 en sortie.
CheckBf( )
Variable = CheckBf(canal)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single)
canal : Canal RS232 (0 3 suivant type de CUBLOC utilis)
Sans affecter le contenu du buffer de rception RS232, la commande CheckBf() peut tre
utilise pour vrifier le contenu du buffer. Cette commande vous permettra ainsi de lire ce qui
est prsent dans le buffer (1 seul octet la fois), sans leffacer (contrairement la commande
GET).
Compare
Compare Canal, Cible#, Port, Etatcible
Canal : Canal compteur rapide
Cible# : Cible# dimpulsions (CH0 : 0 65535, CH1 : 0 255)
Port : Port de sortie (Ne pas utiliser les ports dentre seul)
Etatcible : Etat Port Cible de sortie
COUNT
COMPARE
Lorsque un compteur rapide atteind la valeur prdfinie (Cible#), le CUBLOC applique un tat
logique (Etatcible) sur un Port donn.
Si Etatcible = 1 et que le compteur atteind la valeur Cible# alors le Port prendra le niveau
logique haut 1 . A linverse, si Etatcible = 0 et que le compteur atteind la valeur Cible# alors
le Port prendra le niveau logique bas 0 .
Bien que le compteur rapide du CUBLOC puisse fonctionner sur 32 bits, la commande
COMPARE est limite afin que le systme dexploitation du CUBLOC ne soit pas affect
dans sa gestion multitches BASIC / Ladder .
* Note : Pour le canal 0, utilisez la commande Set Count0 On avant de pouvoir utiliser la
commande Compare.
Dim i As Integer
Set Count0 On
Compare 0,10,61,1
Do
i = Count(0)
Debug Goxy,0,0,dec4 i,Cr
Delay 100
Loop
Cet exemple de programme utilise le compteur rapide 0 avec une Cible# de 10 impulsions.
Lorsque le compteur atteind 11 impulsions, le port P61 passe au niveau logique haut .
Count( )
Variable = COUNT(canal)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single)
Canal : N du Canal Compteur (0 ou 1).
Retourne la valeur du canal compteur spcifi. Il vous faut au pralable configurer le port en
entre avant dutiliser cette commande.
Le comptage peut seffectuer sur 32 bits (Byte, Integer, Long). La frquence maximum est de
lordre de 500 KHz.
Les compteurs des modules CUBLOC sont grs de faon matrielle (cest dire quils
fonctionnent de faon indpendante de lexcution du programme principal). Ils seront ainsi
capables deffectuer un comptage en temps rel (quelque soit ltat doccupation du
processeur du module CUBLOC).
Les modules CUBLOC disposent de 2 Compteurs. Le compteur du Canal 0 utilise les mmes
ressources que les fonctions PWM0, 1, 2 et ne pourra donc pas tre utilis en mme temps que
ceux-ci. Toutefois le compteur du Canal 1 pourra tre utilis librement.
Pour exploiter le compteur du Canal 0, la commande SET COUNT0 ON devra tre utilise au
pralable. Lexploitation du compteur du Canal 1 ne ncessite aucune dclaration pralable.
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15 COUNT 1
P1 6 19 P14 COUNT 0
P2 7 18 P13
P3 8 17 P12
P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
Dim R As Integer
Input 15 ' Configure le port P15 en entre (compteur du Canal 1 ).
R = Count(1) ' Lecture de la valeur du compteur.
Du fait que le compteur du Canal 0 utilise les mmes ressources que les fonctions PWM
(comme indiqu ci-dessous), gardez lesprit quil ne vous sera pas possible utiliser toutes ces
fonctions en mme temps.
COUNTER 0
PWM0
TIMER A PWM1
PWM2
PWM3
TIMER B PWM4
PWM5
GetFreq:
A = Count(1)
Debug goxy,10,2
Debug dec5 A
Countreset 1
Reverse 0
Return
Countreset
COUNTRESET canal
Canal : N du Canal Compteur (0 ou 1)
Dcd
Variable = Source DCD
Variable : Variable servant mmoriser le rsultat (Non String, ni Single).
Source : Valeur source
Cette commande retourne la position du bit (en partant du bit de poid faible LSB 0) de la
position la plus haute du bit qui est 1.
Debug
DEBUG donne
donne : donne envoyer au PC
Les modules CUBLOC disposent dune commande de DEBUG qui pourra tre insre
plusieurs reprises o vous voulez dans votre programme. Le rsultat de cette commande sera
affich dans la fentre du terminal de DEBUG du PC lorsque le programme sera excut et quil
arrivera sur une commande DEBUG.
DIM A AS INTEGER
A = 123
DEBUG DEC A
Utilisez DEC ou HEX pour afficher des nombres. Si vous nutilisez pas DEC, ni HEX, les
nombres seront reprsents par leur code ASCII. Utilisez galement DEC ou HEX pour afficher
ltat des variables.
Si vous insrez un point dinterrogation (?) avant DEC ou HEX, le nom de la variable sera
affich en mme temps que sa valeur.
Vous pouvez galement utiliser des nombres pour limiter le nombre de dcimal afficher.
DEBUG HEX8 A
1 8 peuvent tre utiliss avec HEX. HEX8 affichera un nombre hxadcimal 8 digits max.
1 10 peuvent tre utiliss avec DEC.
Vous tes libre de mixer les variables de type strings, nombre, etc
Les commandes de DEBUG sont utiles pour vous aider trouver rapidement et facilement vos
bug de programmation. Elles vous permettront dune part de vous assurer que le
programme est en train de sexcuter un endroit particulier (celui o vous avez plac la
commande DEBUG) et dautre part, ces dernires vous permettront de suivre lvolution de vos
variables durant lexcution de votre programme.
Si vous saisissez des caractres dans la partie blanche de la fentre du Terminal de DEBUG,
ces derniers sont envoys vers le port de tlchargement du module CUBLOC. Cette fonction
sera rserve pour un futur usage.
ATTENTION !
Les commandes de DEBUG du BASIC ne doivent JAMAIS tre utilises en mme temps que le
mode monitoring du LADDER. De la mme faon, le mode monitoring du LADDER ne doit
JAMAIS tre utilis en mme temps que les commandes de DEBUG du BASIC.
Le tableau ci-dessous montre les diffrentes possibilits offertes par les commandes DEBUG
(comme vous pourrez le constater vous retrouverez de grande similitude avec les commandes
dafficheurs LCD).
DEBUG GOXY,5,5,DEC I
DEBUG CLR,TEST PROGRAM
Decr
DECR variable
Variable : Variable dcrmenter (Non String, ni Single).
Delay
DELAY Dure
Dure : variable ou constante (de type Long ou infrieur)
Ralise une temporisation exprime en millisecondes. La commande Delay ne doit tre utilise
que pour gnrer des temporisations de faible dure. Il nest pas conseill davoir recours
lutilisation de cette commande pour raliser des mesures de dures ou des applications de
gestion temporelle pour lesquelles la prcision doit tre prpondrante.
Do...Loop
La commande DO...LOOP ralise une boucle sur elle-mme. Les commandes DO WHILE ou
DO UNTIL ralisent galement une boucle sur elles-mmes associe une condition
permettant de sortir de cette boucle. La commande EXIT DO permet galement de forcer le
programme sortir dune boucle de type DO...LOOP.
Do
Commands
Loop
Dim K As Integer
Do
K=Adin(0) Lecture de lentre A/N du canal 0
Debug Dec K,Cr
Delay 1000
Loop
Dans lexemple ci-aprs, le programme effectuera une boucle sans fin entre DO et LOOP.
EXIT DO or GOTO command must be used to get out of the infinite loop.
Do While [Condition]
Commands
[Exit Do]
Loop
Do
Commands
[Exit Do]
Loop While [Condition]
DO..WHILE ralisera une boucle sans fin jusqu ce que la condition en WHILE soit remplie.
Do Until [Condition]
Commands
[Exit Do]
Loop
Do
Commands
[Exit Do]
Loop Until [Condition]
DO..UNTIL ralisera une boucle sans fin jusqu ce que la condition en UNTIL soit remplie.
Dtzero
DTZERO variable
Variable : Variable dcrmenter (Non String, ni Single).
Dcrment la variable dune unit. Lorsque la variable arrive 0, celle-ci nest plus
dcrmente.
Eadin( )
Variable = EADIN (mux)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single).
mux : Combinaison Port dentre de conversion A/N (0 21)
Cette commande est utile si vous dsirez obtenir une conversion A/N plus prcise. Les
modules CUBLOC disposent dun OPAMP intgr. Lorsque vous utilisez la commande ADIN,
cet OPAMP nest pas exploit. En utilisant la commande EADIN, lutilisateur pourra mettre en
uvre lOPAMP pour un rsultat plus prcis.
ADC
OP AMP.
Le port EADIN doit tre configur en entre avant toute utilisation. En exploitant lOPAMP une
mesure plus prcise (lie un filtrage du bruit ) sera obtenue.
Dim J As Long
Input 24 ' Configure le port en entre (Utilis les ports 24 et 25 pour le CB280)
Input 25
Do
j = Eadin(8) ' Conversion A/N depuis AD0 et Ad1, via OPAMP, 1
Locate 0,0
Print hex5 J,cr ' Affiche rsultat sur le LCD
Delay2 500 ' Petite temprisation
Loop
End
Eeread( )
Variable = EEREAD (Addresse, NbOctet)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single).
Addresse : 0 4095
NbOctet : Nombre doctets lire (1 4)
DIM A AS INTEGER
DIM B AS INTEGER
A = 100
EEWRITE 0,A,2 Mmorise la variable A ladresse 0.
B = EEREAD(0,2) Lecture depuis ladresse 0 et mmorisation dans B.
Eewrite
EEWRITE Addresse, Data, NbOctet
Addresse : 0 4095
Data : Variable crire en EEprom (Type Long ou infrieur)
NbOctet : Nombre doctets crire (1 4)
Dim A As Integer
Dim B As Integer
A = 100
EEWRITE 0,A,2 Mmorise la variable A ladresse 0.
B = EEREAD(0,2) Lecture depuis ladresse 0 et mmorisation dans B.
Pour rappel, sachez galement que la limite dcriture en mmoire EEprom est de lordre de
100.000 cycles (vitez imprativement les boucles sans fin dans lesquelles une criture en
EEprom aurait lieu).
Le tableau ci-dessous prsente un petit comparatif entre les mmoire de type SRAM et
EEPROM.
Ekeypad
Variable = EKEYPAD( BlockIn, BlockOut)
Variable : Variable servant mmoriser le rsultat (Retourne un Byte)
BlockIn : Bloc devant recevoir les entres (0 15)
BlockOut : Bloc devant recevoir les sorties (0 15)
- Il vous faudra toujours ajouter une rsistance de tirage ( ramener au +5 V) sur les ports du
Bloc dentre non utiliss. De plus ces broches ne devront en aucun cas tre utilises pour
une autre fonction.
- De mme, les ports non utiliss du bloc de sortie devront rest en lair et ne devront en
aucun cas tre utiliss pour une autre fonction.
10
11
12
13
14
15
Si aucune touche nest sollicite, le nombre 255 sera retourn. A linverse le code de la touche
sollicit sera retourn.
For...Next
FORNEXT ralisera une boucle sur elle-mme pendant un nombre de fois donn.
Dans lexemple ci-dessous, loption de pas Incrmental nest pas utilis. La boucle
FORNEXT sincrmente par dfaut dune unit.
Dim K As Long
For K=0 To 10
Debug Dp(K),CR
Next
La commande EXIT FOR permet de sortie dune boucle FORNEXT nimporte quel moment.
For K=0 To 10
Debug Dp(K),CR
If K=8 Then Exit For Si K = 8 alors on sort de la boucle FORNEXT.
Next
Lorsque vous utilisez une variable dans une boucle de type FORNEXT, vrifiez
imprativement que cette dernire soit capable de couvrir la plage complte des valeurs
demandes. Par exemple les variables de type Byte ne pourront aller que de 0 255. Pour des
nombres plus grands, une variable avec une plus grande gamme de variation devra tre
choisie.
Dim K As Byte
For K=0 To 255
Debug Dp(K),CR
Next
Lorsque vous utilisez une option Incrmental ngative (STEP xx), pensez imprativement
choisir une variable de type LONG afin de pouvoir grer les nombres ngatifs.
Dim LK As Long
For LK=255 To 0 Step 1 Le nombre -1 sera atteind en fin de boucle
Debug Dp(LK),CR
Next
Exemples de programmes :
Freepin
FREEPIN Port
Port : N du port du CUBLOC
Freqout
FREQOUT Canal, ValFreq
Canal : Canal PWM (0 15)
ValFreq : Frequence comprise entre 1 et 65535
La commande FREQOUT permet de gnrer une frquence sur un canal PWM. Veuillez vous
assurer dindiquer sur quel canal PWM vous voulez travailler (nindiquez pas le N de la
broche). Pour le module CUBLOC CB220 et CB280, les ports 5,6 et 7 sont respectivement
attribus aux canaux PWM 0, 1 et 2.
Les tableaux ci-dessous donnent une indication de la corrlation entre le paramtre ValFreq et
la valeur de la frquence obtenue. Une valeur de 1 pour ValFreq correspondra la frquence la
plus leve tandis que la valeur de 65535 la frquence la plus basse. Une valeur de 0 pour
ValFreq ne gnrera aucune frquence.
Avant de pouvoir gnrer une frquence, il vous faut le port PWM en sortie. Pour stopper le
signal, vous pouvez utiliser la commande PWMOFF.
Du fait que la commande FREQUOUT utilise les mmes ressources que les signaux PWM, il y
a certaines restrictions dutilisation quil faut connatre.
Les canaux PWM 0,1 et 2 utilisent les mmes timers. Si le canal PWM 0 est utilis pour la
commande FREQUOUT, il ne sera plus possible dutiliser les canaux 0,1 et 2 pour gnrer des
signaux PWM.
Il en sera de mme avec les canaux PWM 3, 4 et 5 qui seront inutilisables pour la gnration de
signaux PWM si vous utilisez la commande FREQOUT pour gnrer une frquence sur le canal
PWM 3.
A noter quil est possible de gnrer diffrentes frquence sur les canaux PWM 0 et 3.
Pour rsumer, vous pourrez gnrer 2 frquences diffrentes la fois laide de la commande
FREQUOUT mais ds lors, il ne vous sera plus possible de gnrer de signaux PWM.
La commande FREQUOUT pourra (entre autre) tre utile pour gnrer des notes de musiques.
Le tableau ci-dessous donne une correspondance entre la valeur du paramtre ValFreq et les
notes de musique.
Get( )
Variable = GET(canal, NbData)
Variable : Variable servant mmoriser le rsultat (non String, ni Single)
canal : Canal RS232 (0 3 suivant modle de CUBLOC utilis)
NbData : Nombre de donnes recevoir (1 4)
Lecture des donnes depuis le port RS232. La commande GET() effectue une lecture des
donnes depuis le buffer de rception RS232. Si aucune donne nest prsente dans le buffer
de rception, la commande nest pas effectue (vous pourrez galement utiliser la commande
BLEN() pour vous assurer au pralable de la prsence de donnes dans le buffer avant
dessayer de les rcuprer). Le nombre de donnes lire devra tre compris entre 1 et 4. Pour
recevoir un seul octet, le paramtre NbData devra donc tre 1. Pour recevoir une donne de
type Long, le paramtre NbData devra donc tre 4. Pour pouvoir recevoir une plus grande
quantit de donne, utilisez la commande GETSTR().
Astuce : Utilisez la commande SYS(1) aprs GET() ou GETSTR() pour vrifier combien de
donnes ont t actuellement lues. Si 5 octets ont t reus et seulement 4 vrifis 1 octet
sera alors perdu.
Geta
GETA canal, NomTableau, NbData
canal : RS232 Canal (0 3 suivant modle de CUBLOC utilis)
NomTableau : Tableau servant mmoriser les donnes
NbData : Nombre de donnes mmoriser (1 65535)
La commande GETA peut tre utilise pour recevoir des octets depuis le port RS232 qui seront
stocks dans un tableau (le stockage dbute depuis le premier lment du tableau). Vrifiez au
pralable la prsence de donnes dans le buffer RS232 laide de la commande BLEN() afin
de ne pas remplir le tableau avec des donnes non dsires.
GOTDATA:
Geta 1,A,8
Debug A(0),A(1),A(2),A(3),A(4),A(5),A(6),A(7)
Return
Geta2
GETA2 canal, NomTableau, NbData, CarStop
canal : RS232 Canal (0 3 suivant modle de CUBLOC utilis)
NomTableau : Tableau servant mmoriser les donnes
NbData : Nombre de donnes mmoriser (1 65535)
CarStop : caractre ASCII stoppant
La commande GETA2 sutilise de la mme faon que la commande GETA lexception que la
lecture des donnes sera stoppe la dtection du caractre ASCII CarStop (mme si dautres
donnes reste lire). Si le caractre CarStop nest pas trouv alors cette commande ragit
comme la commande GETA.
CarStop sera stock dans une variable de type String. Vous pouvez utiliser la commande
SYS(1) pour lire le nombre doctets lus.
Getcrc
GETCRC variable, NomTableau, NbData
Variable : variable String pour mmoriser le rsultat (type Integer)
NomTableau : Tableau avec donnes (tableau de type Byte)
NbData : Nombre de donnes pour calculer le CRC
Cette commande est ddie au calcul de CRC lorsque vous utilisez le MODBUS RTU en mode
matre. La commande retourne une valeur de CRC sur 16 bits de type Integer via le tableau.
Vous pouvez dterminer le nombre doctets utiliser pour le calcul du CRC partir du tableau
en partant de 0.
Set Ladder On
A(0) = 9
A(1) = 2
A(2) = 3
A(3) = 0
A(4) = 10
A(5) = 23
Getstr( )
Variable = GETSTR(canal, NbData)
Variable : Variable (de type string) servant mmoriser le rsultat
canal : Canal RS232 Canal
NbData : Nombre de donnes recevoir
Idem Get() mise part que la variable servant recevoir les donnes est du type String.
GOTDATA:
A=Getstr(1,8)
Debug A
Return
Getstr2( )
Variable = GETSTR2(canal, NbData,CarStop)
Variable : Variable (de type string) servant mmoriser le rsultat
canal : Canal RS232 Canal
NbData : Nombre de donnes recevoir
CarStop : caractre ASCII stoppant
Gosub..Return
La commande GOSUB est destine appeler une sous-routine. La commande RETURN doit
tre utilise pour clturer la sous-routine.
GOSUB ADD_VALUE
ADD_VALUE:
A=A+1
RETURN
Goto
La commande GOTO permet au programme de continuer son excution un autre endroit
spcifi (appel tiquette ). Cette commande est prsente sur la plupart des langages
BASIC usuelle. Toutefois il nest pas conseill davoir recours cette dernire si vous voulez
conserver une programmation structure
If I = 2 Then
Goto LAB1
End If
LAB1:
I=3
ADD_VALUE:
LINKPOINT:
Une tiquette ne doit par contre pas utiliser de mots ou constantes rservs, ni de
chiffre et encore moins contenir despace.
55K bytes
0000
4K bytes
0000
&HDDFF &HFFF
Hread( )
Variable = HREAD (Adresse , Long)
Variable : Variable pour le stockage du rsultat
Adresse : adresse dans la mmoire HEAP
Long : Nombre doctets lire (contante ou variable de 1 4)
Hwrite( )
HWRITE Adresse, Donne, Long
Adresse : adresse dans la mmoire HEAP
Donne : Constante ou variable contenant la donne
Long : Nombre doctets crire
DIM A AS INTEGER
DIM B AS INTEGER
A = 100
HWRITE 0,A,2 ' Mmorise la variable de type Integer A ladresse 0
B = HREAD(0,2) Lecture donnes sur 2 octets depuis ladresse 0 et stock dans B
NOTE :
Bien que la syntaxe des commandes EEREAD et EEWRITE soit identique la syntaxe des
commandes HREAD et HWRITE, il est important de rappeler les diffrences quil existe entre
les 2 types de commandes.
Heapclear
HEAPCLEAR
Heap( )
Variable = HEAP (Adresse)
Variable : Variable pour le stockage du rsultat
Adresse : adresse dans la mmoire HEAP
Heapw
HEAPW Adresse, Donne
Adresse : adresse dans la mmoire HEAP
Donne : constante ou variable avec la donne sauvegarder (Byte uniquement)
HWRITE 0, &H1234ABCD, 4
0 CD
1 AB
2 34
3 12
HWRITE 0, &HABCD, 2
HWRITE 1, &H6532, 2
Dans cet exemple de code, il y a un chevauchement entre les 2 donnes stockes au niveau de
ladresse mmoire 1 de la mmoire Heap .
I = &HABCD1234
Heapclear
Hwrite 0,I,4
Do
Heapw 56830,100
Heapw 56831,123
High
HIGH Port
Port : N de Port du module CUBLOC
Cette commande applique un niveau logique HAUT (+5 V) sur le Port du module CUBLOC.
Cette commande configure le Port en sortie et y applique un niveau logique HAUT (+5 V).
Lorsque quun Port est activ par la commande HIGH, ce dernier se retrouve connect VDD
(lorsquil est configur en LOW, ce Port est connect VSS).
I2Cstart
I2CSTART
Gnre (via les signaux SDA et SCL) une condition Start sur le bus I2C . Aprs cette
commande les signaux SDA et SCL sont au niveau logique BAS.
SDA
SCL
START
I2Cstop
I2CSTOP
Gnre (via les signaux SDA et SCL) une condition Stop sur le bus I2C . Aprs cette
commande les signaux SDA et SCL sont au niveau logique HAUT.
SDA
SCL
STOP
I2Cread( )
Variable = I2CREAD(dummy)
Variable : Variable servant mmoriser le rsultat (non String, ni Single).
dummy : valeur quelconque.
Lecture dun octet depuis le bus I2C (pr-initialis laide de la commande SET I2C). Utilisez
nimporte quelle valeur pour le paramtre dummy.
A = I2CREAD(0)
SCL
SDA
Ack
Cette commande renverra un signal dacknowledge ACK au composant esclave I2C que
vous piloterez. Ainsi aprs la lecture dun octet, une impulsion sur SCL sera envoye tandis
que SDA sera maintenu au niveau logique BAS . Ceci sera interprt comme un signal
dacknowledge par le composant esclave I2C.
I2Creadna( )
Variable = I2CREADNA(dummy)
Variable : Variable servant mmoriser le rsultat (non String, ni Single).
dummy : valeur quelconque.
Cette commande sutilise exactement comme la commande prcdente, mise part que le
module CUBLOC ne gnrera aucun signal dacknowledge aprs la lecture.
A = I2CREADNA(0)
SCL
SDA
NoAck
Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.
I2Cwrite( )
Variable = I2CWRITE donne
Variable : Acknowledge(1 = Acquittement, 0= Sans Acquittement)
donne : Done envoyer
Envoi un octet sur le bus I2C. Cette commande gnre une impulsion dacquittement sur le
bus I2C et retourne la valeur 0 si lacquittement du composant adress survient et 1 si le
composant na pas envoy de signal dacquittement. Ce cas de figure peut intervenir cause
de plusieurs cas de figure: Adresse du composant I2C mal configure, mauvais
raccordement des signaux SDA et SCL, problme dalimentation, problme sur le composant
I2C, etc Il est intressant dans ce cas de prvoir une vrification de la bonne
communication I2C (voir exemple ci-dessous):
Lorsque vous navez pas besoin de traiter linformation dacquittement, vous pouvez utiliser
nimporte quelle variable pour recevoir cette information (voir exemple ci-dessous):
A = I2CWRITE(DATA)
If..Then..ElseifEndif
Vous pouvez utiliser la commande IfThenElseif...ElseEndIf afin de raliser des actions
conditionnes dans votre programme.
In( )
Variable = IN(Port)
Variable : Variable servant mmoriser le rsultat
Port : Port du module CUBLOC (0 255)
Cette commande sauvegarde le niveau logique prsent sur un Port du module CUBLOC dans
une variable. Lexcution de cette commande a galement pour consquence de configurer
automatiquement le Port en entre (sans que vous ayez besoin de lindiquer au pralable au
module CUBLOC).
DIM A AS BYTE
A = IN(8) lecture du niveau logique (BAS ou HAUT) du Port 8 et mmorise le
rsultat (0 ou 1) dans la variable A
Rappel
Tous les CUBLOC disposent de Ports pouvant tre configurs en E/S . Vous disposez de
nombreuses options pour configurer le rle (Entre ou Sortie) de chaque Port. Par dfaut, tous
les Ports d E/S sont configures en haute impdance (HIGH-Z) la mise sous tension.
Lorsquun Port est configur en sortie, la sortie pourra alors tre amener prendre un niveau
logique BAS (0 V) ou HAUT (+ 5 V).
Incr
INCR variable
Variable : Variable incrmenter.
Input
INPUT Port
Port : Port du module CUBLOC (0 255)
Keyin
Variable = KEYIN( Port, dureeantirebond )
Variable : Variable servant mmoriser le rsultat
Port : Port du module Cubloc
dureeantirebond : Dure anti-rebond
La commande KEYIN permet dliminer auant que faire ce peu les effets de rebonds que
certaines touches ou boutons-poussoirs peuvent gnerer. Cette commande ne peut tre utilise
que lorsque votre bouton-poussoir met une entre A LA MASSE. Si le bouton poussoir est
cbl pour mettre lentre au NIVEAU HAUT, utilisez alors KEYINH. Lorsque la touche est
sollicite, la commande KEYIN retourne 0 et 1 lorsque la touche nest pas sollicite.
Bouncing effect
Keyinh
Variable = KEYINH(Port, dureeantirebond )
Variable : Variable servant mmoriser le rsultat
Port : Port du module Cubloc
dureeantirebond : Dure anti-rebond
La commande KEYINH permet dliminer auant que faire ce peu les effets de rebonds que
certaines touches ou boutons-poussoirs peuvent gnerer. Cette commande ne peut tre utilise
que lorsque votre bouton-poussoir met une entre AU NIVEAU HAUT. Si le bouton poussoir est
cbl pour mettre lentre la MASSE, utilisez alors KEYIN. Lorsque la touche est sollicite, la
commande KEYIN retourne 1 et 0 lorsque la touche nest pas sollicite.
Keypad
Variable = KEYPAD( BlocPort)
Variable : Variable servant mmoriser le rsultat (Retourne un octet type Byte )
BlocPort : Bloc Port
La commande KEYPAD permet de lire ltat dun clavier matric de 16 touches max. via un bloc
dentres. Les 4 bits de poids faibles du bloc devront tre associs aux entres du clavier (avec
des rsistances de tirage ramener au +5 V) et les 4 bits de poids forts serviront en tant que
sorties pour piloter le clavier matric (voir schma ci-dessous).
Si le clavier dispose de moins de 16 touches : Il vous faudra toujours ajouter une rsistance de
tirage ( ramener au +5 V) sur les ports du Bloc dentre non utiliss. De plus ces broches ne
devront en aucun cas tre utilises pour une autre fonction. De mme, les ports de sortie non
utiliss du bloc ne devront en aucun cas tre utiliss pour une autre fonction.
0 4 8 12
0
1 5 9 13
1
2 6 10 14
2
3 7 11 15
3
Si aucune touche nest sollicite, le nombre 255 sera retourn. A linverse le code de la touche
sollicit sera retourn.
Ladderscan
LADDERSCAN
La commande LADDERSCAN configure le module CUBLOC pour quil ne soit utilis quen
mode LADDER (sans possibilit dutliser de programme BASIC). Lorsque la commande est
place dans une boucle sans fin telle que DOLoop, il en rsulte que la vitesse de traitement
du LADDER pourra atteindre jusqu 10 ms par time scan .
Low
LOW Port
Port : N du Port du Cubloc (0 255)
Met un Port au niveau logique bas (0 V) Cette commande configure le Port en sortie et y
applique un niveau logique BAS (0 V)
Lorsque quun Port est activ par la commande HIGH, ce dernier se retrouve connect VDD
(lorsquil est configur en LOW, ce Port est connect VSS).
Memadr( )
Variable = MEMADR (VariableCible)
Variable : Variable servant mmoriser le rsultat (non String, ni Single)
VariableCible : Variable servant touver ladresse mmoire physique
Comme pour le langage C , vous pourrez utiliser des pointeurs dans le BASIC des modules
CUBLOC. En utilisant ces derniers, vous pourrez trouver ladresse mmoire physique de
variable en RAM afin de pouvoir y stocker ou y lire des donnes.
Dim A as Single
Dim Adr as Integer
Adr = Memadr(A) Retourne ladresse physique de la variable A.
Ncd
Variable = NCD source
Variable : Variable servant mmoriser le rsultat (non String, ni Single).
Source : valeur source (0 31)
La commande NCD peur tre utilis pour mettre 1 le bit de la valeur 0x00000000 et de
retourner le rsultat sous la forme dune valeur 32 bits.
Nop
NOP
Cette commande neffectue aucune action. Elle permet simplement de monopoliser 1 cycle de
commande.
Low 8
Nop
High 8 ' Gnre une impulsion de trs courte dure (Environ 50 S)
Nop
Low 8
On Int
ON INTx GOSUB Etiquette
x : 0 3, Canal dinterruption externe
La commande ON INT doit tre utilise afin de pouvoir activer la prise en compte des
interruptions externes. Les modules CUBLOC disposent de 4 broches dinterruptions
externes
Les broches dinterruption externes peuvent tre configures pour dtecter des fronts montants,
des fronts descendants ou les deux.
La commande SET ONINTx doit galement tre utilise afin que les entres dinterruption
soient totalement oprationnelles.
Dim A As Integer
On INT0 Gosub GETINT0
Set INT0 0 ' Dtection dun front descendant sur la broche
Do
Loop
GETINT0:
A=A+1 ' Enregistre le nombre dinterruptions
Return
On Ladderint Gosub
ON LADDERINT GOSUB Etiquette
Si le Registre F40 est utilis en LADDER et que la commande ON LADDERINT GOSUB est
galement utilise alors le CUBLOC effectuera un saut ltiquette spcifie dans la
commande On Ladderint. Cette fonctionnalit permettra au LADDER dexcuter un bout de
programme BASIC un moment prcis.
Utilisez les commandes SETOUT et DIFU pour crire 1 dans le registre F40. Lorsque
linterruption en BASIC est finie, le registre F40 pourra tre initialis en y crivant 0.
Pendant la dure de linterruption, le fait dcrire un 1 dans le registre F40 naura pas pour
consquence de gnrer une autre interruption.
Si le registre F40 est remis zro depuis le BASIC, ceci aura pour consquence de rinitialiser
linterruption afin quune autre interruption puisse tre prise en compte.
Usepin 0,In
Set Ladder On
Set Display 0,0,16,77,50
On Ladderint Gosub msg1_rtn
Dim i As Integer
Low 1
Do
i=i+1
Byteout 1,i
Delay 200
Loop
msg1_rtn:
Locate 0,0
Print "ON Ladderint",Dec i
Reverse 1
Return
Lorsque P0 est mis ON, le registre F40 sera mis 1 et la sous-routine dinterruption BASIC
msg1_rtn sera excute. Cette sous routine affiche un message sur un cran LCD.
Bien quil ny ait quun seul registre F40 pour gnrer une interruption en BASIC depuis le
LADDER, il est possible dutiliser le registre D pour pouvoir gnrer plusieurs programmes
dinterruptions BASIC.
Lorsque P0 est activ, D0 prend la valeur 3 et une interruption sera gnre par le BASIC.
Lorsque P0 est activ, D0 prend la valeur 2 et une interruption sera gnre par le BASIC.
Il vous suffira alors dans le programme BASIC dinterruption dexcuter telle ou telle routine en
fonction de la valeur prsente dans D0.
msg1_rtn:
If _D(0)=3 Then
Locate 0,0
Print "ON Ladderint",Dec i
End If
If _D(0)=2 Then
Locate 0,0
Print "TEST PROGRAM",Dec i
End If
Return
Le programme ci-dessous fait la mme chose en utilisant la commande INTON du LADDER qui
accomplie la fois une commande WMOV et SETOUT en une seule opration.
On Pad Gosub
ON PAD GOSUB Etiquette
GETTOUCH:
TX1 = Getpad(2)
TY1 = Getpad(2)
Circlefill TX1,TY1,10
Pulsout 18,300
Return
On Recvx
ON RECV0 GOSUB Etiquette
ON RECV1 GOSUB Etiquette
ON RECV2 GOSUB Etiquette
ON RECV3 GOSUB Etiquette
Lorsque des donnes arrivent sur le port RS232 du canal (0 3 suivant le type de module
CUBLOC utilis) et que la commande ON RECVx a t ralise, le programme continuera
automatiquement son excution l tiquette spcifie.
DATARECV_RTN:
If Blen(1,0) > 4 Then
A(0) = Get(1,1) ' Lecture dun octet.
A(1) = Get(1,1) ' Lecture dun octet.
A(2) = Get(1,1) ' Lecture dun octet.
A(3) = Get(1,1) ' Lecture dun octet.
A(4) = Get(1,1) ' Lecture dun octet.
End If
Return ' Fin de la routine dinterruption
IMPORTANT
Lorsque linterruption gnre par ON RECVx est en train dtre excute, il ne
sera pas possible dexcuter une nouvelle interruption ON RECVx. Aprs que
la routine dinterruption ait termin son excution, le CUBLOC pourra revenir
la routine dinterruption ON RECVx si des donnes (dans le buffer de
rception) ont encore t reues.
On Timer
ON TIMER( intervalle ) GOSUB tiquette
Intervalle : Intervalle dintrruption 1 = 10 ms, 2 = 20 ms65535 = 655350 ms
Peu prendre les valeurs 1 65535
I=0
Do
Loop
TIMERTN:
Incr I ' La variable I est incrmente toutes les 1 secondes.
Return
IMPORTANT
Prenez imprativement garde ce que la dure dexcution de la routine
dinterruption soit plus courte que la dure de lintervalle entre 2
interruptions. Si par exemple vous avez choisi un intervalle de 10 ms entre la
gnration de chaque intervalle, il faudra que la dure dexcution du sous-
programme compris entre le nom de ltiquette et linstruction RETURN de
fin dinterruption soit plus court que 10 ms sans quoi un problme de
collision et un dysfonctionnement interviendra dans votre programme.
Opencom
OPENCOM canal, Debit, protocole, recvsize, sendsize
canal : canal RS232 (0 3 suivant type de CUBLOC utilis)
Debit : Debit
protocole : Protocole
recvsize : Taille du buffer de rception (Max. 1024)
sendsize : Taille du buffer dmission (Max. 1024)
Avant toute communication via la liaison srie RS232 du module CUBLOC, il vous sera
ncessaire dutiliser au pralable la commande OPENCOM.
Vous trouverez ci-dessous les diffrents dbits supports par les modules CUBLOC:
2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200, 230400
Le tableau ci-dessous montre les configurations les plus utilises et les valeurs associes du
paramtre protocole calcul par rapport au tableau ci-dessus.
Vous pouvez configurer la taille du buffer de rception et dmission. La taille des buffers de
rception et dmission influencera directement la taille de la mmoire RAM restante pour
lutilisation de vos variables. Si vous choisissez des buffers de taille trs importante, vous ne
pourrez pas utiliser beaucoup de variables. Bien que la taille max. de chaque buffer puisse aller
jusqu 1024 octets, nous vous suggrons pour les applications standards de configurer la taille
du buffer de rception de 30 100 octets et celle du buffer dmission de 30 50 octets.
Pour le CB220, les ports 1 et 2 peuvent tre utiliss pour le canal RS232 N 0 (niveaux +/-
12V). Les ports 10 et 11 peut tre utiliss pour le canal RS232 N 1 (niveaux TTL +5 / 0V).
CHANNEL 0
TX SOUT 1 24 VIN
RX SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15
P1 6 19 P14
P2 7 18 P13
P3 8 17 P12 CHANNEL 1
P4 9 16 P11 TX
P5 10 15 P10 RX
P6 11 14 P9
P7 12 13 P8
Pour le module CB280, vous disposez de ports RS232 ddis. Ainsi pour le canal 1, vous
pouvez utiliser 2 types de signaux +/- 12V et niveaux TTL (+5 / 0V).
+12V
-12V
+12V
SOUT 1 17 VDD TX1 33 49 TTLTX1 +5V
SIN 2 18 VSS RX1 34 50 TTLRX1
ATN 3 19 RES AVDD 35 51 AVREF GND
-12V VSS 4 20 N/C N/C 36 52 P48
P0 5 21 P16 P24 37 53 P31
P1 6 22 P17 P25 38 54 P30
P2 7 23 P18 P26 39 55 P29
P3 8 24 P19 P27 40 56 P28
P4 9 25 P20 P47 41 57 P32
P5 10 26 P21 P46 42 58 P33
P6 11 27 P22 P45 43 59 P34
P7 12 28 P23 P44 44 60 P35
P8 13 29 P15 P43 45 61 P36
P9 14 30 P14 P42 46 62 P37
P10 15 31 P13 P41 47 63 P38
P11 16 32 P12 P40 48 64 P39
Note : Vous pouvez utiliser la commande Set RS232 pour modifier le dbit et les paramtres
dun port de communication srie durant lexcution de votre programme.
Canal Port
1 P42 (RX Niveau logique TTL 0 / +5 V)
P43 (TX Niveau logique TTL 0 / +5 V)
2 P8 (RX Niveau logique TTL 0 / +5 V)
P9 (TX Niveau logique TTL 0 / +5 V)
3 P56 (RX Niveau logique TTL 0 / +5 V)
P57 (TX Niveau logique TTL 0 / +5 V)
Le module CB405 dispose dun composant interne de mise niveau MAX232 dont les
broches (TTLTXE et TTLRXE) pourront tre connectes lun de ses Ports sries (niveau
logique 0 / 5 V) afin que le port en question puisse tre directement utilis sur une liaison srie
au niveau logique +/- 12 V via les broches TXE et RXE .
Dans lexemple ci-dessous, le Port srie TX3 initialement dot dun niveau logique 0 / 5 V
pourra tre exploit via les broches TXE et RXE sur une liaison srie RS232 de niveau
logique + /- 12 V.
Out
OUT Port, Valeur
Port : N du Port du module CUBLOC (1 255)
Valeur : Valeur appliquer sur la broche de sortie (1 ou 0)
La commande OUT permet dappliquer un niveau logique sur un Port du module CUBLOC.
Lorsque vous excutez cette instruction, le module CUBLOC configurera automatiquement le
Port en sortie avant de lui attribuer le niveau dsir. Il ne sera donc pas ncessaire de dfinir au
pralable le rle du Port avec OUTPUT lorsque vous utilisez cette commande.
Output
OUTPUT Port
Port : N du Port du module CUBLOC (1 255)
Configure le Port du module CUBLOC en sortie. Pour rappel, toutes les Ports du module
CUBLOC sont configurs en mode haute impdance la mise sous tension.
Vous pouvez galement (et de prfrence) utiliser les commandes HIGH et LOW pour dfinir un
Port en sortie.
En effet, lorsque vous utilisez la commande OUTPUT, le Port est configur pour fonctionner
comme une sortie, sans pour autant avoir slectionn de faon clairement dfinie le niveau
HAUT ou BAS appliquer sur cette sortie. Il est donc impratif de dfinir ce niveau via les
commandes HIGH ou LOW si vous utilisez la commande OUTPUT.
Outstat( )
Variable = OUTSTAT(Port)
Variable : Variable servant mmoriser le rsultat (non String, ni Single).
Port : N du Port du module CUBLOC (1 255)
Permet de connatre le niveau logique prsent sur un Port du module CUBLOC. Cette
commande est diffrente de la commande IN() en ce sens quelle donne ltat du port, et non
pas la valeur prsente son entre.
DIM A AS BYTE
A = OUTSTAT(0) Lecture de ltat du Port 0 et sauvegarde la valeur dans A.
Pause
PAUSE valeur
Peek( )
Variable = PEEK (Adresse, Long)
Variable : Variable servant mmoriser le rsultat
Adresse : Adresse RAM
Long : Nb doctets lire (1 4 )
Poke
POKE Adresse, Valeur, Long
Addrese : Adresse RAM
Valeur : Variable servant mmoriser le rsultat
Long : Nb doctets crire (1 4)
Attention cette instruction doit tre utilise avec prcaution afin de ne pas dpasser les limites
de la RAM sous peine de dysfonctionnement du module CUBLOC.
Pulsout
PULSOUT Port, Periode
Port : Port de sortie ( 0 255)
Periode : Dure de limpulsion (1 65535 )
Pour gnrer une impulsion HAUTE, la sortie doit au pralable tre place au niveau logique
BAS.
Pour gnrer une impulsion BASSE, la sortie doit au pralable tre place au niveau logique
HAUT.
Si le paramtre Periode est configur avec la valeur 10, vous gnrerez une impulsion de
lordre de 2.5 ms. De la mme faon, si le paramtre Periode est configur avec la valeur
100, vous gnrerez une impulsion de 23 ms.
LOW 2 HIGH 2
PULSOUT 2, 100 23 mS PULSOUT 2, 100 23 mS
HIGH Pulse LOW Pulse
Put
PUT canal, data, NbOctet
canal : canal RS232 (0 3 selon module CUBLOC utilis)
Data : Donnes envoyer (type Long ou infrieur)
NbOctet : Nombre de donnes envoyer (1 4)
Cette commande envoi des donnes au travers du port RS232 spcifi. Les donnes peuvent
tre de type variable ou constante . Pour envoyer une chane de caractres, il vous
faudra utiliser la commande PUTSTR.
OPENCOM 1,19200,0,50,10
DIM A AS BYTE
A = &HA0
PUT 1,A,1 Envoi &HA0 (0xA0) sur le canal RS232 N 1.
IMPORTANT
La commande OPENCOM doit tre utilise au pralable
Le module CUBLOC va en premier lieu stocker les donnes dans son buffer pour ensuite les
envoyer jusqu ce que le buffer soit vide.
Si le buffer est plein lorsque la commande PUT est excute, la commande PUT ne va pas
attendre que le buffer se vide (en dautre terme vous allez perdre les donnes envoyer). Il
est donc important dutiliser conjointement la commande BFREE afin de sassurer de ltat du
buffer afin dviter ce cas de figure.
Astuce :
Aprs avoir utilis les commandes PUT ou PUTSTR, la fonction SYS(0) peut tre utilise pour
vrifier que les donnes ont t enregistres dans le buffer dmission.
OPENCOM 1,19200,0,50,10
PUTSTR 1,COMFILE
DEBUG DEC SYS(0) Si lcran de DEBUG affiche 7 cest que toutes les donnes
ont t envoyes dans le buffer dmission.
Puta
PUTA canal, ArrayName, NbOctet
canal : canal RS232 (0 3 selon module CUBLOC utilis)
ArrayName : Nom Tableau
NbOctet : Nombre de donnes envoyer (1 65535)
La commande PUTA peut tre utilise pour envoyer les donnes (prsentent dans un tableau)
sur la liaison RS232.
Pour ce faire, il vous suffit dindiquer le nom du tableau et le nombre de donnes envoyer.
IMPORTANT:
Si vous essayez denvoyer plus de donnes que contient le tableau, le module
CUBLOC enverra des donnes plus ou moins alatoires.
Puta2
PUTA2 canal, ArrayName, NbOctet, CarStop
canal : canal RS232 (0 3 selon module CUBLOC utilis)
ArrayName : Nom Tableau
NbOctet : Nombre de donnes envoyer (1 65535)
CarStop : caractre ASCII stoppant
La commande PUTA2 sutilise de la mme faon que la commande PUTA lexception que la
transmission des donnes sera stoppe la dtection du caractre ASCII CarStop (ce
caractre sera le dernier envoy).
Putstr
PUTSTR canal, data
canal : canal RS232 (0 3 selon module CUBLOC utilis)
Data : Chane de donnes (variable ou constante)
OPENCOM 1,19200,0,50,10
PUTSTR 1,COMFILE TECHNOLOGY, DEC I, CR
Fonctionne de faon similaire la commande PUT, en envoyant une chane de caractres dans
le buffer dmission aprs quoi linterprteur du module CUBLOC prendra soin denvoyer ces
donnes au travers de la liaison srie. Comme prcdment, prenez soin ne pas dpasser la
capacit du buffer dmission sans quoi vous risquez de perdre des donnes
Pwm
PWM Canal, Duty, Periode
Canal : N du canal PWM (0 15)
Duty : Dure niveau haut, doit tre infrieur au paramtre Periode
Priode -> valeur maximale 65535
Cette commande permet de gnrer des signaux PWM. Attention, le paramtre Canal
correspond au N du canal PWM et non pas aux N des ports d E/S . Pour les modules
CUBLOC CB280, les broches 5, 6 et 7 sont utilises respectivement pour les signaux PWM
0, 1 et 2. Avant dutiliser les signaux PWM assurez-vous que les ports utiliser aient bien t
configurs en SORTIE.
En fonction de la valeur du paramtre Periode, un signal PWM avec une rsolution max. de 16
bits pourra tre cr.
Lorsque Periode est configur 1024, la rsolution du signal PWM sera de 10 bits.
Lorsque Periode est configur 65535, la rsolution du signal PWM sera de 16 bits.
La valeur du paramtre Duty devra tre tre infrieur la valeur du paramtre Periode. Si la
valeur du paramtre Duty est 50 % de la valeur de du paramtre Periode, vous obtiendrez un
signal carr.
Les signaux PWM sont grs automatiquement par le module CUBLOC (il vous suffit
dexcuter la commande PWM pour que le signal soit gnr en permanence par le
CUBLOC, jusqu ce que la commande PWMOFF soit utilise).
200
1024
IMPORTANT:
Les signaux PWM 0, 1 et 2 doivent avoir la mme valeur pour le paramtre Periode
car ils utilisent les mmes ressources. Leur paramtre duty peut en revanche tre
diffrent.
Les signaux PWM 3, 4 et 5 doivent avoir la mme valeur pour le paramtre Periode
car ils utilisent les mmes ressources. Leur paramtre duty peut en revanche tre
diffrent.
Pwmoff
PWMOFF Canal
Canal : Canal PWM ( 0 15 )
Vous trouverez ci-dessous le reprage des canaux PWM en fonction des diffrents modules
CUBLOC:
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15
P1 6 19 P14
P2 7 18 P13
P3 8 17 P12
P4 9 16 P11
PWM0 P5 10 15 P10
PWM1 P6 11 14 P9
PWM2 P7 12 13 P8
Pour le module CB220, 3 canaux PWM sont disponibles via les broches P5, P6 et P7.
Le tableau ci-dessous donne la correspondance des Ports avec les signaux PWM.
Ramclear
RAMCLEAR
Efface la mmoire RAM reserve au BASIC des modules CUBLOC. Cette opration est
ncessaire car la mise sous tension du module CUBLOC, la RAM peut contenir des valeurs
incertaines .
* Certains modules CUBLOC peuvent avoir une sauvegarde de leur RAM par une pile externe.
Si vous ne ralisez pas la commande RAMCLEAR, la pile pourra sauvegarder les valeurs
incertaines prsentent dans la RAM lors de la premire mise sous tension.
Reverse
REVERSE Port
Port : N du Port (0 255)
Inverse le niveau logique prsent sur un Port (lequel devra avoir t au pralablement dfini
comme une sortie). Un Port ltat logique HAUT prendra un niveau logique BAS et un Port au
niveau logique BAS, prendra un niveau logique HAUT.
Rnd( )
Variable = RND(0)
DIM A AS INTEGER
A = RND(0)
La gnration des nombres est pseudo alatoire en ce sens que la mme squence de
suite de nombres se rptera chaque mise sous tension (do le nom de pseudo
alatoire).
Select...Case
Si le cas est vrai (cest dire quil correspond la mme valeur que la variable) ou quil
rempli la condition IS, la commande sous le cas sera excute.
Exemples :
Select Case A
Case 1
B=0
Case 2
B=2
Case 3,4,5,6 Utilisez la virgule (,) pour plus dune valeur.
B=3
Case Is < 1 Utilisez < pour les oprations logiques.
B=3
Case Else Utilisez ELSE pour tous les autres cas.
B=4
End Select
Select Case K
Case Is < 10 Si infrieur 10
R=0
Case Is < 40 Si infrieur 40
R=1
Case Is < 80
R=2
Case Is < 100
R=3
Case Else
R=4
End select
Set Debug
SET DEBUG on [/Off]
Vous pouvez utiliser cette commande pour activer / dsactiver la fentre DEBUG du PC du
BASIC. Cette commande pourra ainsi tre utilise pour dsactiver le fonctionnement des
commandes DEBUG de tout votre programme, sans avoir besoin de les retirer de votre listing
(les commandes sont simplement ignores lors de la compilation).
Dans cet exemple le message ne saffichera jamais car le CUBLOC est dans une boucle do
Loop sans fin.
Comme indiqu prcdement, il vous est possible de dsactiver (sans avoir besoin de les retirer
de votre code) toutes les commandes de Dbug laide de la commande Set Debug Off.
Set i2c
SET I2C DataPort, ClockPort
DataPort : SDA, Data Send/Receive Port (0 255)
ClockPort : SCL, Clock Send/Receive Port (0 255)
Cette commande permet dattribuer un Port du module CUBLOC aux signaux I2C SDA et
SCL. Une fois excute, les 2 Ports dsigns seront automatiquement configurs en Sortie
(haute impdance).
Seuls les Ports d E/S peuvent tre utiliss pour une communication I2C. De plus, il vous
faudra utiliser des rsistances de tirage externes de 4.7 K ( relier au + 5 Vcc comme indiqu
ci-dessous).
SCL
SDA
Attention certains Ports des modules CUBLOC ne peuvent tre utiliss soit quen entre, soit
quen sortie (seuls les Ports utilisables en entres/sorties doivent tre choisis pour les
communications I2C).
Set Int
SET INTx mode
x : 0 3, Canal Interruption Externe
mode : 0 = Front descendant, 1 = Front montant, 2 = Changement dtat
Cette commande doit tre utilise avec la commande On Int afin que le module CUBLOC
puisse gnrer des interruptions via des signaux externes. Il est possible de configurer le
module afin quil ragisse des fronts montants, des fronts descendants ou des changements
dtats.
Active le fonctionnement du programme LADDER. Cette commande doit tre excute afin que
le programme LADDER puisse tre oprationnel (par dfaut Set Ladder est OFF ).
Lexemple de programme ci-dessous donne le code minimal BASIC saisir pour pouvoir utiliser
une programmation en Ladder.
Do
Loop ' Boucle sans fin en BASIC
Set modbus
SET MODBUS mode, slaveaddress, returninterval
mode : 0=ASCII, 1=RTU
slaveaddress : Adresse esclave (1 254)
returninterval : Interval Retour (1 255)
Les modules CUBLOC supportent les communications avec le protocole MODBUS. Le bus
MODBUS pourra tre connect sur le canal RS232 N 1.
Pour activer le mode esclave MODBUS, utilisez la commande SET MODBUS. Cette commande
doit intervenir aprs la commande OPENCOM et ne pourra tre oprationnelle que sur le canal
RS232 N 1. Les paramtres Baurate, bit et parit devront tre configurs avec la commande
OPENCOM.
Consultez le Chapitre 9 pour une description dtaille sur la gestion des communications de
type MODBUS et des exemples associs.
Le terme Returninterval est la dure que le CUBLOC ou que le CUTOUCH mettra rpondre
un dispositif MODBUS matre. Si le paramtre Returninterval est trop rapide, le dispositif Matre
ne pourra pas recevoir toutes les donnes. La valeur par dfaut est 1 (ce qui correspond
environ 200 s). Lutilisateur pourra galement configurer cette valeur 100 (ce qui correspond
une dure de 4 ms) ou 255 (ce qui correspond une dure de 11 ms).
Set Onglobal
SET ONGLOBAL on[/off]
A la mise sous tension du CUBLOC, le paramtre Set Onglobal est ON par dfaut.
Cette commande active (ON) ou dsactive (OFF) la prise en compte de toutes les interruptions.
Lorsque Onglobal est configur en Off, puis en On, toutes configurations dinterruptions
modifies avant la mise sur Off seront affectes
Si vous nutilisez aucune interruption sur votre module CUBLOC, pensez toutes les
dsactiver afin de disposer dune vitesse dexcution accrue de votre module CUBLOC.
Set Onint
SET ONINTx on[/off]
Lorsque la commande Set Onintx est positionne en ON pour une interruption spcifique,
alors une interruption pourra tre gnre en utilisant la commande associe ON INTx. Si la
commande Set Onintx est positionne en OFF alors la commande ON INTx ne gnrera
pas dinterruption. Voir aussi la commande SET INTx qui vous permettra de configurer le mode
de dclenchement des interruptions.
SET ONINT0 ON
SET ONINT1 ON
SET ONINT1 OFF
SET ONINT2 OFF
SET ONINT3 ON
SET ONINT3 OFF
Set OnLadderint
SET ONLADDERINT on[/off]
A la mise sous tension du CUBLOC, le paramtre Set OnLadderint est ON par dfaut.
Cette commande active (ON) ou dsactive (OFF) la prise en compte des interruptions gnres
via le Ladder. Lorsque la commande Set OnLadderint est positionne en ON alors une
interruption pourra tre gnre par la commande On ladderint. Si la commande Set
OnLadderint est positionne en OFF alors la commande On ladderint ne gnrera pas
dinterruption.
Set Onpad
SET ONPAD on[/off]
A la mise sous tension du CUBLOC, le paramtre Set Onpad est ON par dfaut.
Cette commande active (ON) ou dsactive (OFF) les interruptions gnres via la commande
On Pad. Lorsque la commande Set Onpad est positionne en ON alors une interruption
pourra tre gnre par la commande On Pad. Si la commande Set Onpad est positionne en
OFF alors la commande On Pad ne gnrera pas dinterruption.
Voir aussi la commande Set Pad qui vous permettra de configurer le mode de dclenchement
des interruptions.
Set Onrecv
SET ONRECV0 on[/off]
SET ONRECV1 on[/off]
SET ONRECV2 on[/off]
SET ONRECV3 on[/off]
A la mise sous tension du CUBLOC, le paramtre Set Onrecv est ON par dfaut.
Cette commande active (ON) ou dsactive (OFF) les interruptions gnres si des donnes
sont rceptionnes dans le buffer de rception des ports sries. Lorsque la commande Set On
Recv est positionne en ON alors une interruption pourra tre gnre par la commande On
Recv. Si la commande Set OnRecv est positionne en OFF alors la commande On Recv ne
gnrera pas dinterruption. Voir aussi la commande On Recv pour le paramtrage de la
gnration des interruptions.
SET ONRECV1 ON
SET ONRECV1 OFF
Set Ontimer
SET ONTIMER on[/off]
A la mise sous tension du CUBLOC, le paramtre Set Ontimer est ON par dfaut.
Cette commande active (ON) ou dsactive (OFF) les interruptions temporelles gnres via la
commande On Timer(). Lorsque la commande Set Ontimer est positionne en ON alors une
interruption pourra tre gnre par la commande On Timer(). Si la commande Set Ontimer est
positionne en OFF alors la commande On Timer() ne gnrera pas dinterruption. Voir
aussi la commande On Timer pour le paramtrage de la gnration des interruptions.
Set Outonly
SET Outonly on[/off]
Les ports de sorties des modules CUBLOC CB290 (Rev. B) et CUTOUCH CT1720 sont
ltat haute impdance la mise sous tension afin dviter que ces derniers ne prsentent des
niveaux de sortie incertains . Vous devrez utiliser la commande SET OUTONLY ON pour
que ces ports soient utilisables en sorties.
Set Pad
SET PAD mode, packet, NbDonnee
mode : Bit mode (0 255)
packet : Longueur du packet (1 255)
NbDonnee : Taille du buffer de rception (1 255)
Afin de pouvoir exploiter le module optionnel de gestion de clavier en association avec les
CUBLOC, il vous faudra utiliser la commande Set Pad au dbut de votre programme. La
communication entre le module CUBLOC et le module optionnel de gestion de clavier utilise 4
fils (SCK correspondant au signal dhorloge, SS comme signal de slection esclave , MOSI
et MISO comme signaux de communication).
TOUCH PAD
SS SS
SCK SCK
MOSI MOSI
MISO MISO
Vous pouvez ajouter les valeurs des modes de rception. Par exemple pour slectionner une
rception avec les paramtres MSB en premier, High-Edg Triggered SCK et Sampling aprs
SCK : vous utiliserez le calcul 0x00 + 0x00 + 0x04 = 0x04). Vous trouverez ci-dessous dautres
exemples types pour la slection du paramtre Mode .
SCK
&H00 Sample
MSB Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 LSB
SCK
&H04 Sample
MSB Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 LSB
SCK
&H08 Sample
MSB Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 LSB
SCK
&H0C Sample
MSB Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 LSB
Set RS232
Set RS232 canal, Debit, protocole
canal : canal RS232 (0 3 suivant type de CUBLOC utilis)
Debit : Debit
protocole : Protocole
La commande Opencom est utilise pour ouvrir et initialiser une communication srie sur le
module CUBLOC. Afin de pouvoir modifier la vitesse et le protocole de communication au
cours de lexcution de votre programme, vous devrez utiliser la commande SET RS232.
Vous trouverez ci-dessous les diffrents dbits supports par les modules CUBLOC:
2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200, 230400
Le tableau ci-dessous montre les configurations les plus utilises et les valeurs associes du
paramtre protocole calcul par rapport au tableau ci-dessus.
Set RS485
Set RS232 canal, NoPort
canal : canal RS232 (0 3 suivant type de CUBLOC utilis)
NoPort : No dactivation du Port de transmission
Il vous faudra bien sr adjoindre au module CUBLOC une interface lectronique de mise
niveau RS485 (vous pourrez par exemple utiliser des circuits intgrs du type SN75176B ou un
convertisseur de type RS232 <> RS485).
Avec les communications RS485, la transmission et la rception des donnes devront intervenir
au mme moment. Ce type de communication est rput pour sa grande fiabilit (y compris en
milieu perturb et parasit).
Vous pourrez par exemple vous inspirer du schma ci-dessous pour connecter les signaux TTL
du module CB280 au circuit dinterfaage RS485 (SN75176B).
560
CUBLOC CB280
SN75176B
TTLRX R
RE
B 485-
TTLTX
DE A 485 +
P48 D
120
560
La communication RS485 ncessitera lutilisation dun signal Transmit Enable pour indiquer
si le dispositif est en train de transmettre ou de recevoir. Il ne peut y avoir quun seul dispositif
qui transmet pendant que les autres sont en mode de rception.
Exemple : Lorsquun PC transmet, tous les modules esclave seront en rception des donnes.
PC
La commande SET RS485 permet aux modules CUBLOC ou CUTOUCH de contrler la ligne
de donnes chaque fois quils voudront transmettrent ou recevoir. Pendant que les donnes
seront transmises, la broche Transmit Enable sera place au niveau Haut. Ceci sera
automatiquement ralis par le systme dexploitation du CUBLOC.
NOTE : Si vous utilisez un convertisseur RS232 <> RS485 et que ce dernier supporte le mode
automatique, vous naurez pas besoin dutiliser cette commande.
TTLTX
P48
Lorsque vous utilisez la commande SET RS485, le Port utilis peut ne pas tre exploit.
560
SN75176B
R
RE B
DE A
D
120
560
SN75176B
R
RE B
DE A
D
SN75176B
R
B
RE
DE 120
D A
Utilisez une rsistance de 120 ohms de terminaison sur le dispositif en fin de ligne.
Les 2 rsistances de tirage de 560 ohms sont ncessaires pour assurer une communication
fonctionnelle.
Set Until
SET UNTIL canal, packetlength, Stopchar
canal : Canal RS232 (0 3 suivant modle de CUBLOC utilis)
packetlength : Longueur du packet (0 255)
Stopchar : Caractres vrifier
Cette commande conditionnelle peut tre utilise aprs la commande ON RECV. Alors que la
commande ON RECV gnrera une interruption mme si un seul octet est reu par le port
srie, la commande Set Until pourra tre utilise pour dterminer quand linterruption sera
gnre.
Comme vous pouvez le voir, on prvoit une longeur max. de donnes pouvant arriver de 99
octets. En dautre terme, si le caractre S nest pas reus dans les 99 octets qui arrivent,
linterruption interviendra.
Vous pouvez galement uniquement indiquer une taille de donnes recevoir (sans vrification
sur le caractre reu).
Le caractre dtecter peut galement tre formul sous forme dcimal (comme indiqu ci-
desous) :
Shiftin( )
Variable = SHIFTIN(clock, data, mode, bitlength)
Variable : Variable servant mmoriser le rsultat (non String, ni Single)
Clock : Port du Signal dhorloge (0 255)
Data : Port du Signal de donnes (0 255)
Mode : 0 = LSB en premier (Least Significant Bit First), aprs front montant
1 = MSB en premier (Most Significant Bit First), aprs front montant
2 = LSB en premier (Least Significant Bit First), aprs front descendant
3 = MSB en premier (Most Significant Bit First), aprs front descendant
4 = LSB en premier (Least Significant Bit First), avant front montant
5 = MSB en premier (Most Significant Bit First), avant front montant
La commande SHIFTIN() permet la rception de donnes via une communication 2 fils (CLOCK
et DATA).
Les commandes SHIFTIN et SHIFTOUT peuvent tre utilises pour communiquer avec des
composants via un bus SPI, Microwire ou des protocoles similaires. Il vous sera ainsi
possible de piloter des composants SPI externes tels que des EEPROM, des convertisseurs
A/N ou N/A .
CLK
DIM A AS BYTE
A = SHIFTIN(3,4,0,8) Le port 3 est lhorloge, le port 4 correspond aux donnes,
Mode 0 (on travail avec une rception sur 8 bits).
CLK
DATA
0 1 1 0 0 1 0 0 = 26H
LSB MSB
Shiftout
SHIFTOUT clock, data, mode, variable, bitlength
Clock : Port du Signal dhorloge (0 255)
Data : Port du Signal de donnes (0 255)
La commande SHIFTOUT) permet lenvoi de donnes via une communication 2 fils (CLOCK et
DATA). Il est possible dutiliser 3 modes diffrents. Le mode 2 est utilisable pour les
communication de type I2C (pour ce mode, un signal acquitement sera ncessaire (ACK)
aprs chaque envoi de 8 bits).
CLK
DATA
1 0 1 0 1 0 1 0 = 55H
LSB MSB
Steppulse
STEPULSE canal, Port, Freq, Qt
Canal : Canal StepPulse (0 ou 1)
Port : Port du Cubloc
Freq : Frquence de sortie (jusqu 15 KHz)
Qt : Nomnbre dimpulsions gnrer (jusqu 2147483647)
Cette commande gnre un nombre dimpulsions une frquence donne (jusqu 15 KHz).
Bien que les commandes FREQOUT et PWM soient galement destines gnrer des
impulsions, il nest pas possible avec ces dernires de slectionner un nombre dimpulsions
dfini. De plus ces commandes monopolisent les ports PWM. Pour sa part, la commande
Steppulse vous permettra non seulement de travailler avec la plupart des Ports du CUBLOC,
mais aussi de slectionner la frquence de sortie et le nombre dimpulsions gnrer.
Module Canaux Canal Canaux PWM ne pouvant pas tre utiliss pendant cette
commande
CB220, 280, 290, CT17XX 1 0 Canal 0 (soit PWM 3, 4, 5)
CB405 2 0 ou 1 Canal 0 (soit PWM 3, 4, 5)
Canal 1 (Soit PWM 6, 7, 8)
La commande STEPPULSE utilise les compteurs PWM du CUBLOC pour fonctionner de telle
sorte quil ne sera plus possible dexploiter les signaux PWM3, PWM4 et PWM5 lorsque vous
utilisez cette commande.
Pour le CB405, lorsque vous exploitez le canal 1, se sont les signaux PWM6, PWM7 et PWM8
qui ne pourront plus tre utiliss. Avec la srie des CUBLOC CB2xx, seul le canal 0 pourra tre
utilis. Avec le CB405, vous avez 2 canaux simultans votre disposition.
Vous pouvez utiliser nimporte quel Port dE/S du CUBLOC. Lorsque vous excutez la
commande STEPPULSE, ce Port sera automatiquement configur en sortie. Ce port restera
attribu une sortie (mme lorsque les impulsions auront fini dtre gnres).
Stepstop
STEPSTOP canal
Canal : Canal StepPulse (0 ou 1)
Cette commande stoppe immdiatement la gnration des impulsions sur le canal slectionn.
Stepstat()
Variable = STEPSTAT (canal)
Variable : Variable servant mmoriser le rsultat
Canal : Canal StepPulse (0 ou 1)
Cette commande vous permet de contrler combien dimpulsions ont t gnres depuis
lexcution de la dernire commande SETPPULSE. STEPSTAT vous retournera le double du
nombre dimpulsions restant tre gnres. Si par exemple il reste 500 impulsions gnrer,
STEPSTAT vous retournera la valeur 1000.
Vous pouvez galement contrler ltat de la sortie des impulsions en utilisant les registres
F(56) et _F(57) en ladder. Lorsque le canal 0 gnre des impulsions le registre _F(56) sera au
niveau HAUT (1). Lorsque le canal 1 gnre des impulsions le registre _F(57) sera au niveau
HAUT (1). Si aucune impulsion nest gnre, les registres seront au niveau BAS (0).
STEPPULSE CH0
F56
STEPPULSE CH1
F57
Programme de test :
Ce programme gnrera 300 impulsions une frquence de 5 KHz, lorsque le port P0 sera
sollicit via un bouton-poussoir.
CB280 5V
P0
P5
3 Ports seront gnralement ncessaires pour piloter un moteur pas pas via un module
dinterface de puissance. Un premier port sera allou la slection du sens de rotation, un
second port la dsactivation de la commande du moteur et le troisime port la gnration
des impulsions de commande (consultez la documentation de votre module de puissance non
livr avec les CUBLOC pour plus dinfos et plus particulirement sur le nombre dimpulsions
ncessaires pour faire avancer le moteur dun pas).
Sys( )
Variable = SYS(adresse)
Variable : Variable servant mmoriser le rsultat (non String, ni Single)
adresse : Adresse (0 255)
Utilisez la commande Sys() pour lire ltat des buffers RS232 (canal 0 et 1).
Adresse 0 : Nombre doctets envoys dans le buffer dmission aprs lexcution des
commandes PUT ou PUTSTR.
Addresse 1 : Nombre doctets envoys dans le buffer de rception aprs lexcution des
commandes GET ou GETSTR.
Adresse 5 : Valeur dun Timer dont la valeur sincrmente toutes les 10 ms.
Tadin()
Variable = TADIN( canal)
Variable : Variable servant mmoriser le rsultat (non String, ni Single)
canal : N canal de conversion A/N (Pas le N de Port)
La commande Tadin() est similaire Adin() mise part quelle retourne une valeur moyenne de
10 mesures. Si vous travaillez en environnement perturb, cette commande vous apportera une
plus grande prcision de mesure.
Time( )
Variable = TIME (adresse)
Variable : Variable servant mmoriser le rsultat (non String, ni Single)
adresse : Adresse des donnes prsentent dans lhorloges (0 6)
Lorsque cette commande est utilise avec le module CUBLOC CB290, vous bnficierez de
son horloge interne RTC. Vous pouvez utiliser les commandes Time() et Timeset pour mettre
jour et lire les donnes de cette horloge. Lhorloge vous permettra ainsi de savoir lheure, le jour
de la semaine ou encore lanne.
Le tableau ci-dessous montre les diffrentes adresses relatives aux diffrentes informations
prsentes dans l'horloge RTC du module CB290.
* Vous ne pouvez pas utiliser cette commande sur les modules CUBLOC CB220, CB280
et CB405 du fait quils ne disposent pas dhorloge RTC.
Le tableau ci-dessous donne la correspondance des jours de la semaine vis vis des valeurs
numriques:
Dimanche 0
Lundi 1
Mardi 2
Mercredi 3
Jeudi 4
Vendredi 5
Samedi 6
La valeur ladresse 10 sera incrmente toutes les secondes. Lorsque celle-ci atteindra 60, la
valeur de ladresse 11 sera incrmente son tours. Lorsque la valeur de ladresse 11 attendra
60, la valeur de ladresse 12 sera alors galement incrmente son tours. Lorsque cette
valeur atteindra 65535, elle sera rinitialise la valeur 0. A la mise sous tension toutes les
valeurs de ces adresses sont 0.
Les valeurs des emplacements mmoire 10 13 sont stockes en mmoire RAM. Il ne sera
pas ncessaire comme sur le CB290 de procder leur conversion (via les commandes
BCD2BIN et BIN2BCD) pour les rendre exploitables.
Lutilisation des adresses mmoire 10 13 pour la gnration dune horloge RTC systme
interne ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.
Il va de soit que la gnration de cette horloge RTC interne dispose dune prcision infrieure
celle dune vrai horloge RTC ddie comme sur le CB290 par exemple (il faut compter
environ un dcalage potentiel < 1 % par 24 heures).
Timeset
TIMESET adresse, valeur
adresse : Adresse des donnes prsentent dans lhorloges (0 6)
valeur : valeur (0 255)
Utilisez la commande TIMESET pour modifier les paramtres de lhorloge RTC du module
CB290 .
Lexemple qui suit montre comment mettre lheure lhrologe RTC du module CB290 et
comment lafficher dans le fentre DEBUG du PC:
Do
I = Time(6)
Debug "Anne ","200",Hex I, " "
I = Time(5)
Select Case I
Case 0
Debug "Janvier"
Case 1
Debug "Fevrier"
Case 2
Debug "Mars"
Case 3
Debug "Avril"
Case 4
Debug "Mai"
Case 5
Debug "Juin"
Case 6
Debug "Juillet"
Case 7
(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 211
Manuel utilisateur CUBLOC
Debug "Aout"
Case 8
Debug "Septembre"
Case 9
Debug "Novembre"
Case 10
Debug "Decembre"
End Select
I = Time(4)
Select Case I
Case 0
Debug "Dimanche "
Case 1
Debug "Lundi "
Case 2
Debug "Mardi "
Case 3
Debug "Mercredi "
Case 4
Debug "Jeudi "
Case 5
Debug "Vendredi "
Case 6
Debug "Samedi "
End Select
Debug cr
I = Time(2)
Debug Hex2 I,":"
I = Time(1)
Debug Hex2 I,":"
I = Time(0)
Debug Hex I,cr
Delay 1000
Loop
Udelay
UDELAY time
Time : Interval (1 65535)
Cette commande permet de gnrer des dlais spciaux. La commande dbute avec une dure
de base de 70 microsecondes. Chaque unit ajoute au paramtre time provoquera lajout
de 14 18 microsecondes la valeur de base.
Si vous ne dsirez pas que cette commande soit affecte par le LADDER ou par les
interruptions, nous vous suggrons de stopper au pralable laction du LADDER et de toutes les
interruptions.
Usepin
Usepin I/O, In/Out, NomAlias
E/S: N du port d E/S (0 255)
In/Out : Entre ou Sortie
NomAlias : Alias pour le port (Optionel)
La commande Usepin est utilise pour configurer le fonctionnement (Entre ou sortie) ainsi que
le nom des broches dans le programme LADDER. Cette commande doit tre utilise au
pralable avant dutiliser les ports d E/S dans le LADDER.
USEPIN 0,IN,START
USEPIN 1,OUT,RELAY
USEPIN 2,IN,BKEY
USEPIN 3,OUT,MOTOR
Utmax
UTMAX variable
Variable : Variable incrmenter (non String, ni Single).
Incrmente une variable dune unit. Lorsque la variable atteint sa valeur maximale, cette
dernire nest plus incrmente. Cette valeur maximale dpend du type de la variable. Dans le
cas doctets, il sagit de la valeur 255, pour un Integer, on pourra aller jusqu 65535.
Wait
WAIT time
time : Interval (variable ou constante) en ms de 10 2147483640
La commande Wait effectuera une temporisation (en utilisant lhorloge systme). Cette
temporisation dispose dune prcision de lordre de 10 ms.
Wait 10 tempo de 10 ms
Wait 15 tempo de 10 ms
Wait 110 tempo de 110 ms
Wait 115 tempo de 110 ms
WaitTx
WAITTX canal
canal : Canal RS232 (0 3 suivant le modle de CUBLOC utilis)
La commande WaitTx attendra jusqu ce que le buffer dmission RS232 soit purg.
Le programme ci-dessus ralise la mme fonction que la commande WaitTX :
Lorsque cette commande est en phase dattente, les autres interruptions peuvent tre appeles.
En dautres termes, cette commande naffecte pas le fonctionnement du module CUBLOC.
Chapitre 7.
Les librairies daffichages
des CUBLOC
Les modules CUBLOC peuvent piloter trs facilement des modules LCD spciaux de type
alphanumrique ou graphique au moyen de commandes trs simples qui vous permettront
suivant les modles dafficher des textes, de tracer des lignes, des cercles, des carrs, etc
A noter que nous commercialisons galement les platines de commandes seules afin que vous
puissiez utiliser des afficheurs standards 2 x 16 ou 4 x 20 dj en votre pocession et les
transformer ainsi en afficheurs de type CLCD commandes I2C ou sries. Consultez-
notre site Internet www.lextronic.fr pour plus dinfos.
Le second connecteur mle 4 points marron (CUNET) en bas gauche est destin piloter
lafficheur via une liaison 4 fils de type I2C. Ce connecteur est pr-quip dun cble de
liaison. On retrouve sur ce connecteur une broche +5 V (servant alimenter lafficheur), la
masse et les signaux SDA et SCL. Des rsistances de tirage de 4,7 Komhs ( relier au + 5 Vcc)
devront tre ajoutes sur ces 2 signaux au niveau de votre platine dapplication.
Le troisime connecteur en bas droite est un modle 3 points. Il est destin piloter lafficheur
via un signal srie (avec niveau logique 0 / +5 V). On retrouve sur ce connecteur une broche
+5 V (servant alimenter lafficheur), la masse et lentre de commande srie de lafficheur
relier sur la sortie TX de votre microcontrleur. Le signal srie de commande relatif cette
entre ne pourra pas avoir un dbit suprieur 115200 bps. Le cble ncessaire au
raccordement de ce connecteur est livr en option (consultez-nous).
A noter la prsence de 4 trous de connexion (au dessus du marquage CLCD420C). Ces trous
ne sont pas utiliss et rien ne doit tre raccord cet endroit.
Vous trouverez ci-aprs le rle de chaque DIL (le 4me DIL nest pas utilis).
Lafficheur dtectera automatiquement si vous utilisez lentre I2C ou lentre srie pour le
piloter via le CUBLOC (une seule entre devra toutefois tre utilise la fois).
Vous trouverez ci-aprs la liste des commandes du CUBLOC ddies au pilotage de ces
afficheurs.
Set Display
SET DISPLAY type, Mode, baud, Taillebuffer
type : 0=Srie, 1=Graphique, 2=CLCD
Mode : Mode de communication 0=CuNET, 1=COM1
baud : Adresse I2C esclave (si Mode = 0) ou Baud rate (si Mode = 1)
Taille Buffer : Taille du Buffer dmission (jusqu 128)
La commande SET DISPLAY doit tre utilise (une seule fois) en dbut de programme pour
indiquer au CUBLOC avec quel type dafficheur vous allez communiquer et comment vous
lavez interfac.
La commande permet aussi dinitialiser cet afficheur avant de pouvoir communiquer avec ce
dernier. 4 paramtres doivent tre dfinis afin de pouvoir initialiser correctement lafficheur
(type, Mode, baud, Taillebuffer).
La paramtre type
Ce paramtre permet de slectionner le type dafficheur LCD que vous allez utiliser.
> La valeur 0 vous permettra dutiliser les afficheurs modles CLCD via leur liaison srie.
(Attention les afficheur de type ELCD (utiliss avec les PICBASIC - qui sont dautres types
de contrleur programmable en BASIC dvelopps par Comfile Technology) ne sont pas
compatibles avec les modules CUBLOC et ne pourront pas tre pilots via ce mode).
> La valeur 1 vous permettra dutiliser des afficheurs graphiques (voir description ci-aprs).
> La valeur 2 vous permettra dutiliser les afficheurs modles CLCD via leur liaison I2C.
Le paramtre Mode
Ce paramtre sert indiquer au CUBLOC comment vous aller piloter lafficheur (en mode
srie ou via une communication I2C).
> Lorsque Mode = 0, le module CUBLOC sera configur pour dialoguer avec un afficheur de
type CLCD via une liaison I2C. Par exemple, pour un module CB220 les ports
pour gestion de lafficheur seront les Port 8 (Clock) et Port 9 (Data). Il vous faudra
ajouter des rsistances de tirage de 4,7 Kohms au + 5 V sur ces 2 ports. Attention : Bien quil
sagisse dune communication I2C, un seul afficheur doit tre connect sur le module
CUBLOC.
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15
P1 6 19 P14
P2 7 18 P13
P3 8 17 P12
P4 9 16 P11
P5 10 15 P10
P6 11 14 P9 SDA
P7 12 13 P8 SCL
Dans le cadre dune communication avec un afficheur CLCD pilot en mode I2C, le
paramtre baud devra correspondre ladresse esclave de lafficheur (voir le tableau donn
en page 218 pour la correspondance des adresses esclaves de lafficheur et de ses mini-
interrupteur dils).
Exemple :
Ici on initialisation la communication pour un afficheur de type CLCD en liaison I2C dont
ladresse esclave est 1 et avec un buffer dmission de 50 octets.
> Lorsque Mode = 1, le module CUBLOC sera configur pour dialoguer avec un afficheur de
type CLCD en liaison srie (avec niveau logique 0 / 5 V) via le canal de communication
srie N 1 (pour le CB220, utilisez alors le port 11 - TX).
CHANNEL 0
TX SOUT 1 24 VIN
RX SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15
P1 6 19 P14
P2 7 18 P13
P3 8 17 P12 CHANNEL 1
P4 9 16 P11 TX
P5 10 15 P10 RX
P6 11 14 P9
P7 12 13 P8
RX S IN 2 18 V SS RX RX 1 34 50 TTLRX 1
ATN 3 19 RE S AV DD 35 51 AV RE F
V SS 4 20 N/C N/C 36 52 P 48
P0 5 21 P 16 P 24 37 53 P 31
P1 6 22 P 17 P 25 38 54 P 30
P2 7 23 P 18 P 26 39 55 P 29
P3 8 24 P 19 PWM3 P 27 40 56 P 28
P4 9 25 P 20 PWM4 P 47 41 57 P 32
P5 10 26 P 21 PWM5 P 46 42 58 P 33
P6 11 27 P 22 P 45 43 59 P 34
P7 12 28 P 23 P 44 44 60 P 35
P8 13 29 P 15 P 43 45 61 P 36
P9 14 30 P 14 P 42 46 62 P 37
P 10 15 31 P 13 P 41 47 63 P 38
P 11 16 32 P 12 P 40 48 64 P 39
Le paramtre baud
Ce dernier permet de slectionner le dbit de communication srie (lorsque vous exploitez le
mode = 1) parmi les valeurs suivantes : 2400, 4800, 9600, 14400, 19200, 28800, 38400,
57600, 76800, 115200, 230400). Le paramtre baud est remplac par ladresse esclave
de lafficheur lorsque vous utilisez le mode = 0.
Le paramtre Taillebuffer
Ce dernier permet de slectionner la taille du buffer de communication allou au pilotage de
lafficheur. Une valeur comprise entre 50 et 128 est conseille. Si la taille du buffer est trop
petite, laffichage ne se fera pas correctement. Si la taille est trop grande, vous gaspillerez de la
capacit mmoire RAM du CUBLOC.
Ici on initialisation la communication pour un afficheur de type CLCD en liaison srie dont le
dbit est de 19200 bds avec un buffer dmission de 50 octets.
Rappels :
Attention la commande SET DISPLAY ne doit tre utilise quau dbut de votre programme.
Nutilisez pas la sortie +5 V rgule des modules CUBLOC CB220 pour alimenter les
afficheurs CLCD sans quoi le rgulateur interne du CB220 risque une destruction en
raison de son incapacit pouvoir alimenter le rtro-clairage de lafficheur.
Cls
CLS
Initialise lafficheur LCD.
(Pensez ajouter un dlai aprs cette commande avant de poursuivre le reste de votre
programme afin de laisser le temps lafficheur de sinitialiser correctement.)
CLS
DELAY 200
Csron
CSRON
Active laffichage du Curseur (ON). (Par dfaut le curseur est dsactiv).
Csroff
CSROFF
Dsactive laffichage du Curseur (OFF).
Locate
LOCATE x,y
X : position sur laxe des X de lafficheur LCD
Y : position sur laxe des Y de lafficheur LCD
Dfini la position du curseur (quil soit visible ou non). Aprs une commande CLS, le curseur est
en position 0,0.
Print
PRINT String/Variable
String : String
Variable : variable.
Note importante : Si vous devez envoyer des commandes conscutives lafficheur LCD,
prenez garde ce que la commande en cours dxcution soit arive terme avant denvoyer
une nouvelle commande, sans quoi lafficheur risque de ne pas prendre en compte votre
demande (ce dernier tant alors occup). Ainsi par exemple aprs une commande cls ,
ralisez une pause de lordre de 200 ms.
Dans le mme ordre desprit, si vous devez envoyer des commandes lafficheur ds la mise
sous tension du CUBLOC, effectuez imprativement une pause minimale de 100 ms avant
denvoyer votre premier ordre (afin de sassurer que lafficheur soit lui mme initialis).
Si les afficheurs reoivent une suite de caractres qui ne correspondent pas la liste de
commandes reconnues dans le tableau ci-dessus, ces caractres seront affichs lcran.
Les afficheurs de type ALCD disposent galement dun jeu de commandes spciales. Le
nombre de ces commandes est plus important que celui des afficheurs CLCD . Consultez la
notice des afficheurs ALCD pour plus dinformations ce sujet.
DIL1 = OFF
DIL2 = OFF
DIL3 = ON
DIL4 = OFF
Les modles GHB3224 disposent dun affichage LCD de type STN (noir et blanc) ou (blanc
et bleu) avec une rsolution de 320 x 240 pixels. Sur leurs 3 couches, 1 est ddi laffichage
de textes et les 2 autres laffichage des graphiques.
Layer1
Layer2
Layer3
Les versions GHB3224C supportent les communications au protocole I2C (ce qui permet
de librer un port srie sur le CUBLOC).
SET DISPLAY 1,0,1,50 GHLCD, mode I2C, Adresse esclave 1, Taille buffer 50
La taille de la couche ddie au texte est de 40 x 15 (comme on le voit sur la grille ci-dessous).
Chaque caractre est dot dune taille de 8 par 16.
Pour vos graphiques, vous disposez dune rsolution de 320 x 240 pixels.
0 319
239
A noter que les graphiques et les textes apparatront de faon alatoire sur lcran si vous
essayer de les afficher en dehors des postions autorises (cest dire en dehors de la
rsolution 320 x 240 pixels pour les graphiques et en dehors de la grille 40 x 15 pour les textes).
Nous vous recommandons de dessiner le fond de votre affichage sur une des couches
graphiques et les caractres sur la couche texte.
Vous trouverez ci-aprs la liste des commandes du CUBLOC ddies au pilotage de ces
afficheurs.
Cls
CLS
Initialise le LCD et efface toutes les couches.
(Prvoir un dlai afin que lafficheur ait le temps de raliser cette opration)
CLS
DELAY 200
Clear
CLEAR layer
Efface une couche spcifique.
Csron
CSRON
Active laffichage du Curseur (ON). (par dfaut le curseur est dsactiv).
Csroff
CSROFF
Dsactive laffichage du Curseur (OFF).
Locate
LOCATE x,y
X : position axe X sur le LCD
Y : position axe Y sur le LCD
Dfinie une position sur la couche texte. Aprs une commande CLS, le LCD se met doffice en
position 0,0.
Print
PRINT String/Variable
String : String
Variable : lorsque vous utilisez des variables/constantes, la reprsentation des chanes/
variables seront affichs.
Layer
LAYER layer1mode, layer2 mode, layer3 mode
Layer1mode : Set Layer 1 mode (0=off, 1=on, 2=flash)
Layer2mode : Set Layer 2 mode (0=off, 1=on, 2=flash)
Layer3mode : Set Layer 3 mode (0=off, 1=on, 2=flash)
Configure le mode sur une couche spcifique. Le mode flash fera clignoter la couche une
frquence denviron 16 Hz. Les couches 1 et 2 sont ON et la couche 3 est OFF la
mise sous tension de lafficheur.
Utilisez cette fonction pour dissimuler les phases pendant lesquelles vous tracerez des lignes,
des cercles, des rectangles, etc(en mettant la couche en OFF avant les tracs et en
faisant apparatre lensemble des tracs dun seul coup en mettant la couche en ON une
fois que toutes les oprations de dessin seront termines).
GLayer
GLAYER layernumber
Layernumber : Attribution de la couche graphique (0,1,2)
Les afficheurs de la srie GHB3224 disposent de 3 couches. Une de ces couches peut tre
utilise pour les graphiques. Les commandes du type LINE, CIRLCLE et BOX pourront tre
utilises sur la couche qui aura t attribue pour les graphiques. En temps normal, la couche 1
est utilise pour les textes et la couche 2 pour les graphiques. Les couches 2 et 3 disposent de
caractristiques quelque peu diffrentes. Nous recommandons lexploitation de la couche 2
pour la gnration de graphiques qui devront tre effacs souvent.
La couche 1 peut galement si ncessaire tre utilise en tant que couche graphique. Dans ce
cas, vous pourrez effacer du texte laide de commandes prvues pour les graphiques. Pour
attribuer la couche N 3 aux graphiques, utilisez la commande LAYER.
Overlay
OVERLAY overmode
overmode : Mode logique (0 = or, 1 = and, 2 = xor )
Contrast
CONTRAST valeur
value : Valeur du contrast
Contrast 450
Light
LIGHT valeur
valeur : Back light 0 = OFF, 1 = ON
Font
FONT fontsize, efontwidth
fontsize : 0 ~ 8 Slection de la taille de la fonte
efontwidth : 0 = Largeur fixe, 1 = Largeur variable
Style
STYLE bold, inverse, underline
bold : 0 = Normal, 2 ou 3 = Gras
inverse : 0 = Normal, 1 = Invers
underline : 0 = Normal, 1 = Soulign
Vous pouvez utiliser la commande STYLE pour modifier les paramtres daffichage des textes
Bold (gras), Inverse (invers) ou UnderLine (soulign).
M AX BOLD
M AX M AX INVERSE
M AX UNDERLINE
Cmode
CMODE valeur
valeur : 0 = Type BOX, 1 = type Under Line (soulign)
Choisissez le type de curseur. Par dfaut le curseur est de type Under Line (soulign).
0 : BOX Type
Line
LINE x1, y1, x2, y2
0 319
239
Lineto
LINETO x, y
0 319
239
Box
BOX x1, y1, x2, y2
0 319
239
Boxclear
BOXCLEAR x1, y1, x2, y2
Boxfill
BOXFILL x1, y1, x2, y2,logique
logique : 0 =OR, 1 = AND, 2 = XOR
Dessine un rectangle daprs les positions X1,Y1 et X2,Y2 et le remplie suivant la logique
dfinie.
0 319
239
Circle
CIRCLE x, y, r
0 319
239
Circlefill
CIRCLEFILL x, y, r
0 319
239
Ellipse
ELLIPSE x, y, r1, r2
Dessine une ellipse avec pour centre x,y et pour rayon horizontal r1 et pour rayon vertical r2.
0 319
239
Elfill
ELFILL x, y, r1, r2
Dessine une ellipse pleine avec centre x,y et pour rayon horizontal r1 et pour rayon vertical r2.
0 319
239
Glocate
GLOCATE x, y
Gprint
GPRINT string
Affiche des chanes sur la couche graphique. Ceci vous permet de positionner votre texte de
faon plus prcise du fait que vous travaillez sur la couche graphique en utilisant la commande
GLOCATE, puis en affichant votre texte avec la commande GPRINT.
CUBLOC IS FASTER
239
Dprint
DPRINT string
DPRINT est similaire GPRINT mise part quil efface les graphiques du dessous.
WE LOVE CUBLOC
239
Offset
OFFSET x, y
Vous pouvez dfinir loffset pour la chane affiche sur la couche graphique. La valeur par
dfaut est 0. Vous pouvez contrler loffset sur laxe x ou y.
0 319
CUBLOC IS FUN
COMFILE TECHNOLOGY
239
CUBLOC IS FUN
COMFILE TECHNOLOGY
239
Pset
PSET x, y
Color
COLOR valeur
Linestyle
LINESTYLE valeur
Cette commande permet de dfinir le style de vos lignes. Vous pourrez ainsi tracer des lignes
en pointill en augmentant cette valeur. La valeur par dfaut est 0 (pour une ligne pleine).
Dotsize
DOTSIZE valeur, style
Dfinie la taille des points. Valeur reprsente la taille du point et style le type de point (0 pour
un point de type rectangulaire et 1 pour un point circulaire).
Paint
PAINT x, y
Arc
ARC x, y, r, start, end
Dessine un arc avec x, y pour centre. Start et end peuvent prendre des valeurs (en degr)
compris entre 0 et 360.
ARC 200,60, 100, 10, 20 Dessine un arc avec des angles de 10 et 20.
0 319
239
Defchr
DEFCHR Code, Data
Code : Custom character code (&hdb30 ~ &hdbff)
Data : 32byte bitmap data
Les caractres ne sont pas sauvegards lors des coupures dalimentation du LCD.
DEFCHR &HDB30,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,_
&HAA,&HAA,&HAA,&H55,&HAA,&HAA,&HAA,&HAA,_
&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,_
&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA,&HAA
print CHR(&HDB30)
Bmp
BMP x, y, filenumber, layer
X, y : position x,y pour afficher limage BMP
Filenumber : N du fichier BMP
Layer : Couche o afficher limage BMP
Lemplacement mmoire est un modle de type LIFO (Last in First out Dernier entr
premier sorti) qui permet ainsi de rcuprer les dernires donnes sauvegardes.
Vous disposez pour ce faire dune mmoire de 32 KB qui vous permettra ainsi que sauvegarder
3 ou 4 crans pleins.
1 2 3 4 1
3 2 2
4 1 4 1
Gpush
GPUSH x1, y1, x2, y2, layer
GPUSH 10,20,200,100,2
0 319
239
Gpop
GPOP x, y, layer, logique
logique =0 : OR
logique =1 : AND
logique =2 : XOR
logique =3 : Efface lcran puis rcupre limage
Rcupre limage depuis la mmoire, puis laffiche sur la couche spcifie la position x,y en y
associant une logique daffichage (limage est efface de la mmoire tampon).
GPOP 120,20,2,0
0 319
239
0 319
239
Gpaste
GPASTE x, y, layer, logique
Logique =0 : OR
logique =1 : AND
logique =2 : XOR
logique =3 : Efface lcran puis rcupre limage
Ralise la mme opration que la commande GPOP lexception du fait que limage nest pas
efface de la mmoire tampon.
0 319
239
0 319
239
Hpush
HPUSH x1, y1, x2, y2, layer
Les commandes HPUSH, HPOP et HPASTE sont similaires aux commandes GPUSH, GPOP et
GPASTE lexception du fait que les colonnes ne peuvent tre que des multiples de 8 comme
montr ci-dessous:
*Les 320 pixels ont ts diviss par 8 (il y a 40 colonnes de 8 pixels de large).
HPUSH 6,20,12,100,2
Hpop
HPOP x, y, layer
Similaire la commande GPOP (mais avec des valeurs comprises entre 0 et 39).
HPOP 10,20,2,0
Hpaste
Hpaste x, y, layer,
Similaire la commande GPASTE (mais avec des valeurs comprises entre 0 et 39).
Vous ne devez utiliser quun seul port de communication sur lafficheur (srie ou I2C)
Ces afficheurs disponibles selon les modles en 2 tailles diffrentes sont dots de 4 digits. Au
dos de ces derniers vous disposez de 2 connecteurs 4 points et dun commutateur DIL 4
positions. Il vous sera trs facile de les piloter via les modules CUBLOC au moyen des
commandes prsentes dans le tableau ci-dessous.
NOTA : Pour exploiter les commandes ddies aux modules CSG , il vous faudra
imprativement utiliser en premier la commande setI2C.
Csgdec
Csgdec slaveadr, Data
slaveadr : Adresse esclave du module CSG
Data : valeur dcimale afficher
Pour afficher plus de 4 digits, il vous sera possible dutiliser plusieurs modules CSG (sur des
adresses esclaves diffrentes). Les modules seront chans en parallle au moyen de leurs
diffrents connecteurs 4 points.
Utilisez la commande CSGDEC pour afficher une valeur dcimale sur un module CSG .
Csghex
CSGHEX slaveadr, data
slaveadr : Adresse esclave du module CSG
data : valeur hexadcimale afficher
Csgnput
CSGNPUT slaveadr, digit, data
slaveadr : Adresse esclave du module CSG
digit : Position digit de la gauche vers la droite (0 ~ 3)
data : Donne (&h30 &h39, &h41 &h46)
Permet dafficher un chiffre (avec ou sans point dcimal) ou une lettre sur un digit spcifi.
Data peut prendre les valeurs &H30 &H39 pour afficher des chiffres de 0 9 (sans virgule).
Data peut prendre les valeurs &HB0 &HB9 pour afficher des chiffres de 0 9 (avec virgule).
ou les valeurs &H41 &H43 pour afficher respectivement les lettres : a b C d E F (sans virgule)
ou les valeurs &HC1 &HC6 pour afficher respectivement les lettres : a b C d E F (avec virgule)
ou la valeur &H80 pour afficher seulement la virgule (sans chiffre)
Csgxput
CSGXPUT slaveadr, digit, data
slaveadr : Adresse esclave du module CSG
digit : Position digit de la gauche vers la droite (0 ~ 3)
data : Donne
Allume la LED la position spcifie. Cette commande est utilise pour afficher autre chose
que des chiffres en vous permettant de contrler les digits sparment.
A
F B
G
E C
H
D
Bit 7 6 5 4 3 2 1 0
LED H G F E D C B A
Pour afficher le caractre L, les Leds des positions D, E et F devront tre allume. Ainsi la
valeur data devra tre 0011 1000 (soit &H38 ou 0x38) et donc: CSGXPUT 0, 0, &H38
Chapitre 8.
Interfaage des
modules CUBLOC
330 ohm
CuBLOC I/O Port
C u B LO C I/O Po rt
10Kohm
5V
Dans tous les cas le module CUBLOC ne supporte que des niveaux de tension maximal de
+5 V. Si vous devez utiliser des tensions de niveau suprieur, utilisez un rgulateur de tension
adapt.
24V
2 4V +
+
C u BLO C RELAY
1N4148
24V
I/O Po rt
+
ZNR
PC-18T1
10K 222
LOAD
GND
2 4V -
C u BLO C
I/O Po rt
10K
1N 4148
LOAD
4 .7 K
PC -1 8 T1
2 4V -
5V
Sur le module CUBLOC CB220 les broches AVDD et AVREF sont directement relies en
interne au + 5 V CC.
Le schma ci-dessous montre comment relier un potentiomtre sur une entre de conversion
analogique/numrique dun CUBLOC afin dobtenir un nombre compris entre 0 et 1023. Si vous
nutilisez pas de protection particulire, le fil reliant le bouton au CUBLOC ne devra pas
exder 3 4 cm afindviter les phnomnes de Latch-up.
5V
Le schma ci-dessous montre un exemple dutilisation simplifi (uniquement valable pour des
tests et non pas pour un usage au sein dune application finie) afin de permettre une entre
de conversion A/N du CUBLOC de rcuprer des signaux 4 20 mA. Vous pouvez utiliser
une rsistance de 230 Ohms en srie avec une seconde rsistance de 20 Ohm pour arriver la
valeur de 250 Ohms.
Pour mesurer un signal compris entre 0 et 10 V, utilisez un pont diviseur ralis au moyen de 2
rsistances de mme valeur.
1Kohm
0~10V CUBLOC I/O Port
1Kohm
+12V
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
-12V VSS 4 21 VDD
P0 5 20 P15
P1 6 19 P14
P2 7 18 P13
P3 8 17 P12
+5V
P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
GND
P7 12 13 P8
-12V
+12V
SOUT 1 17 VDD TX1 33 49 TT LTX1 +5V
SIN 2 18 VSS RX1 34 50 TT LRX1
ATN 3 19 RES AVDD 35 51 AVREF GND
-12V VSS 4 20 N/C N/C 36 52 P48
P0 5 21 P16 P24 37 53 P31
P1 6 22 P17 P25 38 54 P30
P2 7 23 P18 P26 39 55 P29
P3 8 24 P19 P27 40 56 P28
P4 9 25 P20 P47 41 57 P32
P5 10 26 P21 P46 42 58 P33
P6 11 27 P22 P45 43 59 P34
P7 12 28 P23 P44 44 60 P35
P8 13 29 P15 P43 45 61 P36
P9 14 30 P14 P42 46 62 P37
P10 15 31 P13 P41 47 63 P38
P11 16 32 P12 P40 48 64 P39
Les signaux du port 1 de communication srie dots de niveau logique 5 V pourront tre utiliss
par exemple pour dialoguer avec des modules microcontrls ou des priphriques aliments
en + 5 V.
Les signaux du port 1 de communication srie dots de niveaux logiques +/- 12 V pourront tre
utiliss pour dialoguer directement avec un dispositif RS-232 (tel quun PC par exemple).
Il faudra cependant nutiliser quun seul type de signaux la fois (soit ceux dots dun niveau
logique 5 V, soit ceux dots dun niveau logique +/- 12 V), mais jamais les 2 simultanment.
Il pourra galement tre intressant davoir recours aux signaux de niveau logique 5 V afin de
pouvoir piloter des composants de conversion externes susceptibles de pouvoir mettre les
signaux du CUBLOC niveau vis vis de dispositifs externes de type RS422 ou RS485 ou
RS232.
PC 2 RD
RS232C
3 TD
Port
5
5V
0.1uF
5V
0.1uF
1 16
0.1uF 2 15
3 14
0.1uF 4 13
5 12 CuBLOC RX
6 11 CuBLOC TX
0.1uF 7 10
8 9
1 MAX232 16
2 15
3 14 RS232C OUTPUT
4 13 RS232C INPUT
5 12 TTL OUTPUT
6 11 TTL INPUT
RS232C OUTPUT 7 10 TTL INPUT
RS232C INPUT 8 9 TTL OUTPUT
Pour piloter ces afficheurs, il vous faudra ajouter 2 rsistances de tirage au niveau haut de
4.7 Kohms sur les lignes SCL et SDA. Ces lignes sont de type collecteur ouvert avec une
rjection automatique des impulsions infrieures 50 ns.
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
P0 5 20 P15 1 GND
2
P1 6 19 P14 5V (RESE T)
P2 7 18 P13 SCL
3
P3 8 17 P12 SDA
P4 9 16 P11 4
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
4.7K ohm x 2
Les platines dessais des modules CUBLOC disposent dun connecteur standardis 4 points
ddi aux communications avec les modules CuNET . La broche 1 correspond la masse,
la broche 2 au + 5 V (ou Reset), la broche 3 au signal SCL et la broche 4 au signal SDA .
Lorsque vous utilisez un module CuNET , le CUBLOC agira en tant que matre et les
priphriques connects sur la liaison en tant quesclaves . Tous les priphriques
spcialiss (alors en mode attente) rpondront au module CUBLOC. De ce fait, les modules
esclaves ne pourront pas initier eux mme la communication avec le matre .
Power
G ND G ND
5V 5V
S CL S CL
S DA S DA
CuNET Module
MAIN
Dans certains cas, cette borne + 5 V pourra tre relie la borne RESET du module dinterface
spcialis CuNET afin que ce dernier sinitialise la mise sous tension du module
CUBLOC. Dans ce cas, le module dinterface spcialis CuNET devra disposer de sa
propre alimentation.
Power Power
G ND G ND
R ES ET R ES ET
S CL S CL
S DA S DA
CuNET Module
MAIN
ATTENTION : la longueur des connexions des lignes vers le module CuNET ne devra pas
dpasser une vingtaine de centimtres. Pour des liaisons de longueurs plus importantes, il vous
faudra utiliser des composants amplificateurs de bus I2C (type P82B96 ou P82B715 par
exemple). Dans tous les cas, on veillera galement que les lignes de liaisons I2C (amplifie
ou non) ne cohabitent pas avec des cbles de signaux de puissance.
Une communication I2C ncessite lutilisation de 2 ports (SDA et SCL) afin de pouvoir
travailler en modes MAITRE (MASTER) ou ESCLAVE (SLAVE). Les modules CUBLOC
peuvent uniquement travailler en mode MAITRE (MASTER).
Avant de pouvoir exploiter une communication I2C avec les modules CUBLOC, il vous
faudra au pralable dclarer le port I2C laide de la commande SET I2C.
Lorsque SCL et SDA sont tous les 2 au niveau logique BAS, le bus I2C est occup. Si une
commande STOP est excute durant cet tat, la communication I2C est alors stoppe.
SDA
SCL
R/W
S : Start
A : Acknowledge
P : Stop
Le premier bit correspond la commande de START. Les 4 bits de poids fort de loctet
CONTROL BYTE doivent tre configurs 1010 et les 3 bits de poids faibles servent
slectionner ladresse I2C du composant. Cette adresse peut tre modifie suivant le
niveau logique appliquer sur certaines broches du composant. Il vous sera ainsi possible
dadresser plusieurs mmoires EEPROM via le bus I2C en utilisant des adresses I2C
diffrentes pour chaque composant.
Pour une opration de lecture, le bit R/W devra tre 1 et 0 pour une opration dcriture.
Le bit A correspond un bit dacquittement retourn par le composant (pour indiquer au module
matre ici le CUBLOC - quil a bien reu 8 bits de donnes.
A chaque fois que la mmoire reoit une srie de 8 bits, ce dernier gnre un bit dacquittement
et en fin de communication, il faudra envoyer une commande STOP pour indiquer que la
communication est finie et que le bus I2C est libre.
A noter que lopration dcriture dun octet en mmoire EEPROM ncessite environ 5 ms aprs
que les commandes aient t reues par le composant (tenez en compte dans votre
programme).
Lexemple ci-dessous traduit en langage BASIC pour le CUBLOC la procdure dcriture dun
octet dans une mmoire EEPROM I2C:
Dans ltape ci-dessous en sattardera voir comment on peut lire un octet depuis la mmoire
EEPROM. Bien que lopration puisse paratre plus complexe que pour lcriture dun octet,
vous vous apercevrez rapidement que lopration et assez similaire.
S : Start
A : Acknowledge Read Point
P : Stop
Maintenant voyons comment lire une suite de donnes depuis la mmoire EEPROM. Sans
utiliser la commande STOP, la lecture de la mmoire EEPROM pourra tre continue du fait que
celle-ci incrmente automatiquement son adresse mmoire. De ce fait, il suffira simplement de
lui indiquer ladresse mmoire de dbut pour ensuite lire les donnes les unes la suite des
autres.
err_proc:
Debug "Erreur communication I2C !"
Do
Loop
24LC32 CB280
A0
A1 SCL P2
A2 SDA P3
Seuls les ports pouvant tre configurs la fois en entre ou en sortie doivent tre utiliss
pour les communications I2C. Il ne faudra pas utiliser les ports uniquement utilisables en
entre ou en sortie pour les communications I2C.
Les communications I2C gnres par les modules CUBLOC sont de type matre .
Cest dire que seuls des priphriques I2C esclaves pourront tre pilots par les
CUBLOC.
5V
5V
SCL
SDA
Rappelez-vous que les connexions des communications I2C ne peuvent pas stendre sur de
longues distances. EN cas contraire, il vous faudra utiliser des circuits intgrs permettant
dtendre les distances (par exemple le circuit P82B715). Nous vous recommandons galement
le circuit P82B96 qui sapparente un buffer destin protger les composants I2C des
perturbations et surtensions.
N/C VCC
GND N/C
LDA LDA
SDA SDA
LCL LCL
SCL SCL
LONG CABLE
SDA VCC
SDA TX
RX SCL RX
P82B96
TX RY SCL TY
GND TY RY
P82B96
12V 12V
5V 5V
LONG CABLE
SDA SDA
SCL SCL
P82B96 P82B96
Si vous utilisez une communication I2C sur une grande distance sans circuit intgr de
protection spcialis, nous vous suggrons toutefois davoir recours des diodes de protection
comme indiqu ci-dessous :
A0 VCC
A1 WP
24LC32 CABLE
A2 SCL
SCL
GND SDA
SDA
CUBLOC
Toutefois nous vous recommandons deprfrence davoir recours aux circuits de protection
dcrits ci-avant.
Chapitre 9.
Communications
MODBUS
MODBUS est un protocole dvelopp par la socit MODICON pour aider interfacer les
priphriques avec des PLC.
Ce protocole est gnralement utilis pour les appareils tels que les crans touches tactiles,
les modules HMI et les logiciels type SCADA. Nombreux sont ces priphriques qui supportent
le protocole MODBUS.
Chaque esclave dispose dune adresse unique (appele adresse esclave). Le matre ne peut
dialoguer quavec un seul esclave la fois (en fonction de son adresse).
Pour une connexion entre un matre et un esclave (1 vers 1), une liaison RS232 pourra tre
utilise. Pour une connexion de type 1 vers N, il vous faudra utiliser une connexion de type
RS485. Le matre envoie des messages sous la forme de trames . Chaque trame contient
ladresse esclave, des commandes, des donnes, des codes de contrle derreur. Lesclave
rceptionne la trame et lanalyse. Lorsquun esclave rpond au matre, ce dernier lui renvoi
galement des trames.
En dautres mots, au cours dune communication MODBUS les informations envoyes et reues
se font sous la forme de trames.
Il existe 2 modes de communication MODBUS. Le mode ASCII et RTU. Le mode RTU peut
tre intgr en utilisant moins doctets dans la communication. Le mode ASCII utilise des LRM
pour les contrles derreur, tandis que le mode RTU utilise des CRC.
Vous trouverez ci-aprs comment sont utiliss les modes ASCII et RTU:
Le mode RTU ne ncessite aucun caractre spcial pour dmarrer. Ce dernier utilise 4 octets
Blanc pour indiquer le dbut ou la fin.
En MODBUS il y a des notions dadresses qui sapparentent des registres pour les
CUBLOC. Les registres P, M, F, C, T et D des CUBLOC peuvent tre adresss en utilisant
la table ci-dessous :
Les adresse des modules aprs 40000 correspondent des registres de type word accessibles
en 16 bits).
Consultez la table dadresse ci-dessous lorsque vous utilisez les communications Modbus
avec les CUBLOC ou les CUTOUCH. Les adresses des modules ci-dessous sont
indiques en dcimale.
Adresses flottantes
Utilisez ladresse des modules en fonction des No de registres disponibles.
Requte:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X01 01 2
Start Address HI 0X00 00 2
Start Address LO 0X14 14 2
Length HI 0X00 00 2
Length LO 0X25 25 2
Error Check LRC 2
Ending Code CR LF 2
LRC est le 2s complment de la somme sur 8 bits de toutes les valeurs sauf Colon, CR et LF.
Pour la table ci-dessus : 0x03 + 0x01 + 0x13 + 0x25 = 0x3C.
Pour trouver le 2s complment de 0x3C, on peut lcrire en premier en binaire.
0011 1100
LRC = 0xC4
ASCII : 0 3 0 1 0 0 1 3 0 0 2 5 C 4 CR LF
Hex 3A 30 33 30 31 30 30 31 33 30 30 32 35 43 34 13 10
Rponse:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X01 01 2
Byte Count 0X05 05 2
Data 1 0X53 53 2
Data 2 0X6B 6B 2
Data 3 0X01 01 2
Data 4 0XF4 F4 2
Data 5 0X1B 1B 2
Error Check LRC 2
Ending Code CR LF 2
Vous pourrez constater que les bits 20 27 forment 1 octet. P20 correspond au bit LSB de la
donne 1 et P27 correspond au bit MSB de la donne 1. Ainsi vous pourrez rcuprer les
informations de P20 P56 tout en ne tenant pas compte des autres bits.
Requte:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X03 03 2
Start Address HI 0X70 70 2
Start Address LO 0X00 00 2
Length HI 0X00 00 2
Length LO 0X03 03 2
Error Check LRC 2
Ending Code CR LF 2
Une donne Word tient en 2 octets : nous obtiendrons donc une rponse sur 6 octets.
Rponse:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X03 03 2
Byte Count 0X06 06 2
Data 1 LO 0X03 03 2
Data 1 HI 0XE8 E8 2
Data 2 LO 0X01 01 2
Data 2 HI 0XF4 F4 2
Data 3 LO 0X05 05 2
Data 3 HI 0X33 33 2
Length LO 0X03 03 2
Error Check LRC 2
Ending Code CR LF 2
Requte:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X05 05 2
Start Address HI 0X01 01 2
Start Address LO 0X00 00 2
Length HI 0XFF FF 2
Length LO 0X00 00 2
Error Check LRC 2
Ending Code CR LF 2
Rponse:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X05 05 2
Start Address HI 0X01 01 2
Start Address LO 0X00 00 2
Length HI 0XFF FF 2
Length LO 0X00 00 2
Error Check LRC 2
Ending Code CR LF 2
Requte:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X06 06 2
Start Address HI 0X70 01 2
Start Address LO 0X01 70 2
Length HI 0X12 12 2
Length LO 0X34 34 2
Error Check LRC 2
Ending Code CR LF 2
Rponse:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X06 06 2
Start Address HI 0X70 01 2
Start Address LO 0X01 70 2
Length HI 0X12 12 2
Length LO 0X34 34 2
Error Check LRC 2
Ending Code CR LF 2
Requte:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X0F 0F 2
Start Address HI 0X00 00 2
Start Address LO 0X14 14 2
Length HI 0X00 00 2
Length LO 0X0B 0B 2
Byte Count 0X02 02 2
Data 1 0XD1 D1 2
Data 2 0X05 05 2
Error Check LRC 2
Ending Code CR LF 2
La table ci-dessus montre comment rpartir les donnes de la requte. P27 est plac en tant
que MSB du premier octet envoy et P20 est plac en tant que LSB du premier octet. Il y a un
total de 5 octets envoys avec cette mthode. Les autres bits peuvent tre mis zro.
Bit 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1
Relay P27 P26 P25 P24 P23 P22 P21 P20 P30 P29 P28
Rponse:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X0F 0F 2
Start Address HI 0X00 00 2
Start Address LO 0X14 14 2
Length HI 0X00 00 2
Length LO 0X0B 0B 2
Error Check LRC 2
Ending Code CR LF 2
Requte:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X10 10 2
Start Address HI 0X70 70 2
Start Address LO 0X00 00 2
Length HI 0X00 00 2
Length LO 0X03 03 2
Byte Count 0X06 06 2
Data 1 HI 0XD1 D1 2
Data 1 LO 0X03 03 2
Data 2 HI 0X0A 0A 2
Data 2 LO 0X12 12 2
Data 3 HI 0X04 04 2
Data 3 LO 0X05 05 2
Error Check LRC 2
Ending Code CR LF 2
Rponse:
Field Hex ASCII Bytes
Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X10 10 2
Start Address HI 0X70 70 2
Start Address LO 0X00 00 2
Length HI 0X00 00 2
Length LO 0X03 03 2
Error Check LRC 2
Ending Code CR LF 2
Contrle derreur
Si une erreur survient dans les donnes depuis le matre, lesclave retournera un code derreur.
Le contrle derreur est uniquement pour le Modbus ASCII, il ny a pas de contrle derreur en
RTU. Le Modbus RTU utilise les CRC pour contrler les erreurs de transmission.
Loop
GETMODBUS:
If Blen(1,0) > 0 Then ' Si le buffer est vide alors
A=Blen(1,0) ' Stock la taille sur buffer dans A !
Debug "GOT RESPONSE: "
B=Getstr(1,A) ' Stock donnes reues dans B
Debug B
End If
Return
End
Sub BitWrite(K As Integer, D As Integer)
Dim LRC As Integer
Putstr 1,":0305"
Putstr 1,Hp(k,4,1)
If D=0 Then
Putstr 1,"0000"
LRC = -(3+5+K.Byte1+K.Byte0) 'Calcule LRC
Else
Putstr 1,"00FF"
LRC = -(3+5+K.Byte1+K.Byte0+0xFF) ' LRC
End If
Putstr 1,Hex2(LRC),13,10 ' Envoi
End Sub
Master Slave
RS232
TX RX RS232 P2
CH1 CH1 P3
RX TX
P4
GND GND
CB280 CB280
Lorsque lesclave fini de recevoir les donnes envoyes par le matre, lesclave continuera
lexcution du programme ltiquette GETMODBUS. On utilisera la commande SET UNTIL
pour vrifier la fin du code LF (10).
Alors la commande Getstr sera utilise pour sauvegarder larrive de toutes les donnes dans
RDATA. Les donnes prsentes dans RDATA peuvent tre analyses pour sassurer que
celles-ci sont correctes.
Lorsque lesclave est dconnect, le programme nira jamais excuter la routine GETMODBUS.
'Gestion Modbus
#include "ModbusRTULib016.bas"
Chapitre 10.
Le LADDER
des CUBLOC
Attention, si vous navez pas ajout la commande SET LADDER ON en Basic,
le programme crit en LADDER ne sexcutera pas !
P0 P9
Comme on peu le voir, le LADDER est une reprsentation simplifie dun circuit. Linterrupteur
sera comparable au port P0 et le port P9 sera associ la lampe.
En LADDER, il existe beacoup dautres lments tels que des timers, des compteurs, etc Le
schma ci-dessous montre une connexion LADDER OR et AND:
P0 P2 P9
P3
Le diagramme ci-dessus donne lquivalence du circuit une fois transpos dans lditeur
LADDER du CUBLOC STUDIO (on remarquera que la ligne de droite nest pas visible). Dans le
CUBLOC STUDIO, les lments P0, P1, P2 sont appels Registres.
Dveloppement en LADDER
La fentre ci-dessous montre un exemple de dveloppement dune application en langage
LADDER via le CUBLOC STUDIO.
Le carr rouge reprsente le curseur de slection du LADDER. Vous pouvez utiliser les touches
de directions (haut/bas/droite/gauche) ou la souris pour dplacer ce curseur.
Une fois positionn lendroit voulu, vous pourrez utiliser les touches de fonctions F3 F12
pour appliquer le symbole associ lcran.
Vous pourrez galement saisir du texte pour les symboles qui le ncessitent.
Pensez presser la touche ENTER la fin de chaque texte que vous aurez saisir.
De mme pour rappel, la fin de votre programme LADDER doit imprativement se finir par la
commande END .
Lediteur du LADDER
Modification de Texte
Pour modifier un TEXTE dj existant, placez le curseur sur la position souhaite et pressez la
touche ENTER . Maintenant vous pouvez modifier librement le TEXTE comme vous le
dsirez.
Vous pouvez presser la combinaison de touche CTRL-D pour effacer toute une ligne (cette
ligne est stocke dans un buffer).
Si vous sollicitez la touche DEL, la cellule est efface et le reste de la saisie de droite se dcale
vers la gauche.
Si vous pressez la touche INS, une cellule vide est cre et le reste de la saisie se dcale vers la
droite.
Copie de ligne
Si vous devez dupliquer une ligne, tapez la combinaison de touches CTRL-A.
Commentaires
Vous pouvez saisir des commentaires en ajoutant une apostrophe (). Vous pouvez utiliser un
point virgule (;) pour lafficher la ligne suivante.
Utilisez la souris pour effectuer la slection de la partie dupliquer (en restant appuy sur le
bouton gaucheet en dplaant la souris). Sollicitez ensuite la combinaison de touches CTRL-C
pour copier bloc puis duppliquez le lendroit voulu avec la combinaison de touches CTRL-V.
De la mme faon que pour un diteur de texte, vous pouvez presser la combinaison de
touches CTRL-X pour couper (effacer) le bloc et le dupliquer avec CTRL-V.
Monitoring en LADDER
Pour ce faire, cliquez sur le bouton prvu cet effet en haut de lcran.
Ltat des contacts actifs (ON) est affich en VERT. Les valeurs des timers et compteurs seront
affiches en valeurs dcimales.
Vous pouvez modifier la vitesse du monitoring depuis le menu Setup Menu -> Studio option ->
Monitoring speed. Si la vitesse du monitoring est trop rapide, il est possible que la
communication du CUBLOC soit affecte (car le monitoring monopolise des ressources).
*Assurez-vous imprativement que le monitoring est stopp avant de modifier nouveau votre
programme ou de tlcharger ce dernier dans le module CUBLOC.
Pour ce faire, cliquez sur le bouton prvu cet effet en haut de lcran.
Avec le monitoring avec affichage temporel, vous pourrez suivre le droulement des contacts
du LADDER sur une chelle de temps gradue.
La dure minimale de la base de temps est de 40 ms. Vous pouvez utiliser la fonction de
ZOOM afin de pouvoir effectuer des mesures de temps entres des impulsions aprs la phase
dacquisition.
Relay select
Use/ Unuse
Pour utiliser le monitoring avec affichage temporel, vous devez imprativement dsactiver le
mode dbug du BASIC. Pour faire ceci, ajoutez simplement la commande Set Debug Off
la toute premire ligne de code BASIC.
Lorsque vous utilisez le monitoring avec affichage temporel, il nest pas possible dutiliser en
mme temps le monitoring en Ladder.
WATCH POINT
Vous pouvez utiliser 2 apostrophes () pour ajouter un WATCH POINT qui sera exploit lors de
la phase de monitoring.
Ceci est utile par exemple si vous dsirez surveiller ltat de P0 lors de la phase de monitoring
ainsi que ltat dautres registres qui se situent pourtant loppos du programme et donc
hors cran.
Exemples:
P0 P1 D0
* Prenez garde de bien utiliser 2 APOSTROPHES() et non pas une QUOTATION ().
" "
' '
SH IFT + "
'
LA D D E R size a d ju st
LA D D E R lin e sp a c e a d ju st
LA D D E R b a c kg ro u n d c o lo r
A u to ru n w h e n d o w n lo a d
La slection au bas de la fentre Auto Run when download, vous permet de configurer le
module CUBLOC afin quil effectue automatiquement son programme aprs la phase de
tlchargement. Vous pouvez si ncessaire dsactiver cette fonction (il vous faudra alors
effectuer un Reset du CUBLOC pour quil excute son programme).
Comme vous pouvez le constater, il vous sera possible au sein de cette fentre de configurer
extrmement simplement au moyen de simples clicks le nom du module, ltat des E/S, le nom
que vous pourrez attribuer aux Registres du LADDER afin de faciliter la lisibilit de votre
programme, la prise en compte des communication Modbus, etc
Vous pourrez (en cliquant sur longlet Output BASIC code review ), afficher une
visualisation prliminaire des commandes BASIC qui seront votre programme avec la
configuration que vous aurez slectionn.
Pour pouvoir utiliser les entres de conversion A/N , les sorties PWM ou les entres de
comptage COUNT , vous pourrez simplement lire les rsultats de ces derniers dans les
registres D.
Pour ADC0, la valeur A/N sera stocke dans D(10). Il vous suffira alors simplement de lire le
Registre D10 pour connatre la valeur de AD0.
Pour PWM3, il vous suffira dcrire dans le registres D29 pour modifier la valeur PWM.
Cliquez sur le bouton [Replace Basic Code] lorsque vous dsirez vraiment que votre
programme BASIC soit initialis avec la configuration que vous aurez slectionn.
Vous pouvez galement sauvegarder [SAVE AS..] ou rcuprer [LOAD] vos configurations
prfres ou typiques sur le disque dur du PC.
Les registres P, M et F sont sur 1 bit tandis que les registres T, C et D sont sur 16 bits (Word).
Pour accder aux registres P, M et F en mode 16 bits (word), vous pouvez utiliser WP, WM ou
WF.
WP0 renferme P0 P15. P0 est en partie LSB de WP0 et P15 est en partie MSB de WP0. Ces
registres sutilisent trs facilement laide de la commande WMOV.
Les Registres P, M et F sont sur 1 bit tandis que les Registres T, C et D sont sur 16 bits (Word).
Pour accder aux Registres P, M et F en mode 16 bits (word), vous pouvez utiliser WP, WM ou
WF.
WP0 renferme P0 P15. P0 est en partie LSB de WP0 et P15 est en partie MSB de WP0. Ces
Registres sutilisent trs facilement laide de la commande WMOV.
WP0 P15 P0
Contact A, Contact B
Le contact A est Normalement Ouvert et se ferme lorsque le signal est reu. A loppos, le
contact B est Normalement ferm et souvre lorsque le signal est reu.
Output R elay
Contact B
Registres Fonction
Parmi les Registres Fonction, on trouve : les timers, compteurs et autres Registres permettant
de raliser certaines oprations mathmatiques.
Function Relay
Registres Internes
Les Registres internes (M) agissent simplement lintrieur du programme ( moins quils ne
soient connects un port externe). Vous pouvez utiliser les Registres M comme symbole
dentre ou de sortie.
Les Registres P qui ne sont pas utiliss comme des ports dE/S
Les CUBLOC disposent de Registres P rpartis de P0 P127. Ces Registres sont
directement raccords aux ports dE/S. Toutefois, pour les CUBLOC qui disposent de moins de
128 E/S, il vous est possible dutiliser les Registres P non connects comme des Registres M.
USEPIN 0,IN
USEPIN 1,OUT
Les commandes ci-dessus permettent e configurer les ports P0 en entre et P1 en sortie afin
quils puissent tre utiliss en LADDER.
Le mode de fonctionnement des CUBLOC implique que les commandes USEPIN sont
flashes par le LADDER. Ce Flashage veut dire que le Ladder effectuera au pralable une
lecture des E/S, puis les stockera leur tat dans les Registres P. Aprs la ralisation du cycle du
LADDER, ce dernier criera nouveau ltat des E/S dans les Registres P.
INPUT REFLASH
LADDER SCAN
OUTPUT REFLASH
En BASIC, les commandes IN et OUT peuvent tre utilises pour contrler les ports dE/S.
Cette mthode permet laccs direct aux port dE/S (que vous ayez besoin de les utiliser pour
lire ou pour crire sur ces derniers). Aussi, afin dviter les collisions entre les E/S lors de
lutilisation du BASIC et du LADDER, il conviendra de dclarer au pralable les ports utiliser
en LADDER.
Une fois dclar pour tre utilis par le LADDER laide de la commande USEPIN, un port ne
pourra alors plus tre utilis par le BASIC. Cette dclarartion se fait en dbut de programme
BASIC (il vous faudra donc crire quelques lignes de commandes BASIC mme si vous ne
programmez quen LADDER !).
Lors de la dclaration, il vous est galement possible (et conseill) dutiliser des noms dalias
tels (START et RELAY dans lexemple ci-dessus) afin de simplifier la lecture de votre
programme et sa rdaction. Il est en effet plus facile ensuite dans votre programme dutiliser
START pour dsigner une entre de bouton-poussoir plutt que P0 (voir explications ci-
dessous).
Afin de pouvoir utiliser ces alias, vous devez les dclarer dans votre programme BASIC en
nommant ainsi en clair les Registres en fonction de leur usage.
ALIAS M0 = MOTEUR1
ALIAS M2 = ETAT1
ALIAS M4 = MOTEURSTOP
Vous pouvez galement utiliser la commande USEPIN (comme vu la page prcdente) pour
dclarer vos alias.
SET LADDER ON
Do
Loop ' Boucle sans fin du BASIC
Cette fonction est possible grce lutilisation de la commande LADDERSCAN (laquelle devra
tre place dans une boucle sans fin de type DOLOOP.
La dure du temps de cycle pourra alors schelonner entre 500 uS 1 ms pour des petits
programmes LADDER comportant moins de 50 lignes (La dure est fonction de la taille du
programme LADDER).
Le Registre F16 est un Registre spcial qui vous permettra de contrler la dure courante du
temps de cycle. Il vous suffira de le relier un port ES et de visualiser le signal laide dun
oscilloscope pour en connatre la valeur.
Lexemple ci-dessous permet dexploiter le mode Tubro Scan Time en mode conditionn
(uniquement lorsque le Registre M0 est ON).
Do
Set Ladder On Dure de cycle de 10 ms lorsque M0 est OFF
Do While _M(0) = 1
LadderScan Mode Turbo Scan Time uniquement quand M0 = ON
Loop
Loop
Il ne faut jamais utiliser les mmes sorties en LADDER pour viter les collisions.
Lutilisation de bloc non ncessaire comme ci-dessous provoquera une erreur la compilation.
Th is lin e is u n n e c e ssa ry
Lorsque quun programme LADDER est complexe, il est prfrable de le fractionner afin de le
rendre plus lisible (voir exemple ci-dessus).
OUT Sortie
DIFU Mis ON pour 1 dure dxcution (scan time) lorsque signal HAUT reu
DIFD Mis ON pour 1 dure dxcution (scan time) lorsque signal BAS reu
Commandes Mathmatiques
WADD s1,s2,d Addition sur donne Word
DWADD s1,s2,d Addition sur donne Double Word
WSUB s1,s2,d Soustraction sur donne Word
DWSUB s1,s2,d Soustraction sur donne Double Word
WMUL s1,s2,d Multiplication sur donne Word
DWMUL s1,s2,d Multiplication sur donne Double Word
WDIV s1,s2,d Division sur donne Word
DWDIV s1,s2,d Division sur donne Double Word
LOADN
P0
P2
P1
P3
NOT, AND, OR
NOT Symbol
AND
OR
Le symbole AND sutilise lorsque 2 Registres sont placs horizontalement lun de lautre. Les 2
Registres P0 et P1 doivent tre vrai (ON) pour que P5 soit vrai (ON).
Le symbole OR sutilise lorsque 2 Registres sont placs verticalement sur une ligne spare. Si
P0 ou P1 est vrai (ON) alors P5 sera vrai (ON).
BLOCK OR
SETOUT, RSTOUT
SETOUT activera P5 en ON lorsque P0 sera ON et laissera P5 ON mme si P0 retourne en
OFF.
P0
P1
P5
DIFU, DIFD
La commande DIFU active en ON la sortie 1 durant une dure de time scan si lentre
passe du niveau OFF vers ON.
De la mme faon, la commande DIFD passe la sortie 1 en ON une dure de time scan si
lentre passe du niveau ON vers OFF.
DIFU
DIFD
P0
P1
1 SC AN
P5
1 SC AN
P6
MCS, MCSCLR
Les commandes MCS et MCSCLR permettent lexcution du programme LADDER plac entre
MCS X et MCSCLR X lorsquelles sont actives (ON). Si MCS est OFF, le programme
LADDER entre MCS X et MCSCLR X ne sera pas excut.
En utilisant cette commande, il est possible de contrler lexcution dun bloc complet de
LADDER.
M C S # (0 ~ 7 )
Dans lexemple ci-dessus, lorsque M0 passe en ON, le programme LADDER entre MCS 0 et
MCSCLR sexcutera normalement. Si M0 est OFF, P5 et P6 seront dsactivs.
Lorsque MCS est dsactiv OFF, toutes les sorties lintrieur des blocs MCS seront
dsactivs (OFF), les Timer seront effectueront un Reset et les compteurs seront stopps.
Lcran ci-dessous montre lutilisation dune commande MCS lintrieur dune autre
commande MCS.
*Vous pouvez simplement rutiliser MCS 0 si aucune autre commande MCS ne doit tre place
lintrieur de la commande MCS.
Relay ( 0~15 )
Step # ( 0~255 )
S7:126
Pour les commande de type (Step Control), il y a des pas normaux et pas inverss . Pour
les pas normaux , vous pouvez utiliser la commande STEPSET.
STEPSET
- Lorsque P2 passe ON, S0:0 passe ON et les autres pas passe OFF (S0:0 ou step 0 est
utilis pour le reset ceci permet davoir une utilisation ordonne).
P0
P1
P2
S0:0
S0:1
S0:2
STEPOUT
La commande STEPOUT permettra lactivation dun seul pas pour toutes les fois. Le dernier
pas activ en ON pourra tre remplac par un autre pas tout moment.
P0
P1
P2
S0:0
S0:1
S0:2
TON, TAON
Lorsquune entre passe ON, la valeur dun timer sactive et la sortie passe ON lorsque le
timer arrive terme. Il existe 2 types de timers, le premier fonctionne avec des units en
multiples de 0.01 secondes et le secondes avec des units multiples de 0.1 secondes.
Les commandes TON et TAON ncessitent 2 paramtres. Pour le premier paramtre, vous
pouvez choisir entre T0 to T99 et pour le second paramtre, vous pouvez utiliser un nombre ou
une mmoire donnes telle que D0.
Dans lexemple ci-dessus, lorsque lentre START passe ON, le Timer T0 dmarre de zro
jusqu 100. Lorsque la valeur 100 est atteinte, T0 passe ON. Ici, 100 est quivalent 1
seconde pour TON et 10 secondes pour TAON.
1sec
START
T0
Lorsque lentre START repasse en OFF, le timer est rinitialis sa valeur initiale et T0
repasse aussi en OFF. Les commandes TON et TAON rinitialisent la valeur de leur timer lors
dune coupure dalimentation. Pour utiliser des possibilits de sauvegarde par pile, vous devrez
utiliser les commandes KTON et KTAON qui (au moyen dune pile externe sur le CB290
pourront maintenir la valeur de leur timer suite une coupure dalimentation).
TOFF, TAOFF
Lorsquune entre passe ON, la sortie passe aussi ON. Lorsque lentre repasse en OFF, la
sortie reste ON pendant quun timer sactive. Au terme de ce timer, la sortie repasse OFF. Il
existe 2 types de timers, le premier fonctionne avec des units en multiples de 0.01 secondes et
le secondes avec des units multiples de 0.1 secondes.
Les commandes TOFF et TAOFF ncessitent 2 paramtres. Pour le premier paramtre, vous
pouvez choisir entre T0 to T99 et pour le second paramtre, vous pouvez utiliser un nombre ou
une mmoire donnes telle que D0.
Dans lexemple ci-dessus, lorsque lentre START passe ON, la sortie T0 passe galement
ON et le Timer sinitialise la valeur 100. Lorsque lentre START repasse OFF, le Timer
commence dcompter. Une fois arriv zro, la sortie T0 repasse OFF.
Ici, 100 est quivalent 1 seconde pour TOFF et 10 secondes pour TAOFF.
1sec
START
T0
CTU
Cette commande est un compteur ascendant. Lorsque sa premire entre est sollicite, le
compteur est incrment dune unit. Lorsque le compteur arrive une certaine valeur, le
Registre associ passera ON. Le compteur dispose dune seconde entre permettant de
bnficier dune fonction Reset si ncessaire.
100 pulse
PULSE
RESET
C0
CTD
Cette commande est un compteur descendant. Lorsque sa premire entre est sollicite, le
compteur dcrment dune unit. Lorsque le compteur arrive zro, le Registre associ
passera ON. Le compteur dispose dune seconde entre permettant de bnficier dune
fonction Reset si ncessaire.
100 pulse
PULSE
RESET
C1
Compteur UP/DOWN
Lexmple ci-dessous montre une faon simple de raliser un compteur ascendant /
descendant .
P0
P2
P1
C0
COU NT
C0
KCTU
Cette commande est identique la commande CTU mise part que la valeur du compteur
pourra tre mmorise en cas de coupure dalimentation ( condition de pouvoir disposer dune
option de sauvegarde par pile comme sur le module CB290. A linverse, la commande CTU
perdra la valeur du compteur en cas de coupure dalimentation.
100 pulse
P0
P1
C0
Lorsque vous utilisez cette commande pour la toute premire fois, il vous faudra imprativement
effectuer un RESET du signal pour initialiser la valeur du compteur et ne pas travailler avec une
valeur alatoire.
KCTD
Cette commande est identique la commande CTD mise part que la valeur du compteur
pourra tre mmorise en cas de coupure dalimentation ( condition de pouvoir disposer dune
option de sauvegarde par pile comme sur le module CB290. A linverse, la commande CTD
perdra la valeur du compteur en cas de coupure dalimentation.
Les commandes KCTU et KCTD doivent tre utilise uniquement avec les modules capables de
supporter les sauvegardes par piles (comme sur le CB290 par exemple).
Comparaisons Logiques
Ces commandes permettent de comparer 2 donnes de type Words(16 bits) ou 2 donnes de
type Double Words (32 bits) afin de pouvoir activer une sortie lorsque la condition de test est
remplie.
1 WORD
DOUBLE WORD
Il existe 2 mthodes pour mmoriser les donnes de type Word issues dun Double Word. Un
Word ou Double Word peut tre mmoris partir de loctet de poid faible (LOW BYTE) ou de
loctet de poids fort (HIGH BYTE). Pour le CUBLOC, il sera mmoriser partir de loctet de
poid faible (LOW BYTE) ou LSB (Least Significant Byte).
Les Registres C, T et D sont des units de Words. Pour mmoriser une donne de type Double
Word, un emplacement de 2 Word ser requis (soit lemplacement de 2 Registres).
D0 5678
D1 1234
D2
D3
D4
Lors de la saisie de votre programme en LADDER, vous pourrez exprimer les nombre binaires
et hexadcimal de la faon suivante:
Binaire: 00101010B
Hexadcimal: 0ABCDH
La lettre B est ajoute la fin de lexpression pour dsigner un binaire et on ajoute H pour
dsigner un nombre hexadcimal. Pour clarifier lidentification pour un nombre de type valeur, il
suffit dajouter 0 au dbut de lexpression numrique hexadcimale (Exemple : 0ABH, 0A1H,
0BCDH )
* En BASIC, cest trs lgrement diffrent du LADDER en ce sens quil vous est possible
dexprimer les nombre en binaire et en hexadcimal. Vous pouvez utiliser &B100010 ou &HAB
pour exprimer ces 2 nombres.
WMOV, DWMOV
WMOV s, d
DWMOV s, d
Lorsque lentre START passe ON, D0 prendra la valeur 100. Lorsque IN0 passera ON, D2
prendra la valeur 1234H.
D0 100
D1
D2 1234H
D3 0
D4
WXCHG, DWXCHG
WXCHG s, d
DWXCHG s, d
La commande WXCHG change les donnes entre s et d . WXCHG est pour lchange
de donnes de type Word et la commande DWXCHG est pour lchange entre Double Word.
Lorsque lentre START passe ON, D0 prend la valeur 100 et D1 la valeur 123. Lorsque IN0
passe ON, D0 et D1 changent leur valeur (voir ci-dessous):
D0 123
D1 100
D2
D3
D4
FMOV
FMOV s, d, n
D0 100
D1 100
D2 100
D3 100
D4 100
D5 100
GMOV
GMOV s, d, n
D0 12
D1 34
D2 56
D3 78
D4 90
D5
D6
D7
D8
D9
D10 12
D11 34
D12 56
D13 78
D14 90
D15
D16
D0 99
D1
D2
D3
WADD, DWADD
WADD s1, s2, d
DWADD s1, s2, d
WADD permet de travailler sur les valeurs de type Word et DWADD sur les Double Word.
WSUB, DWSUB
WSUB s1, s2, d
DWSUB s1, s2, d
WMUL, DWMUL
WMUL s1, s2, d
DWMUL s1, s2, d
Le rsultat de 1234H * 1234H est mmoris en D1 en tant que double word de valeur
14B5A90H.
D0 1234H
D1 5A90H
D2 14BH
D0 3456H
D1 0012H
D2 0AD78H
D3 4B60H
D4 0
D5 0
WDIV, DWDIV
WDIV s1, s2, d
DWDIV s1, s2, d
D0 1234H
D1
D2 3
D3
D4 611H
D5 1
D0 5678H
D1 1234H
D2 7
D3 0
D4 0C335H
D5 299H
D6 5
D7 0
WOR, DWOR
WOR s1, s2, d
DWOR s1, s2, d
WOR permet de travailler sur les valeurs de type et DWOR sur les Double Word.
D0 1200H
D1 34H
D2 1234H
WXOR, DWXOR
WXOR s1, s2, d
DWXOR s1, s2, d
WXOR permet de travailler sur les valeurs de type et DWXOR sur les Double Word.
D0 1234H
D1 0FFH
D2 12CBH
Lorsque vous dsirez inverser un bit spcifique, vous pouvez utiliser une opration logique de
type XOR.
WAND, DWAND
WAND s1, s2, d
DWAND s1, s2, d
WAND permet de travailler sur les valeurs de type et DWAND sur les Double Word.
D0 1234H
D1 0FFH
D2 34H
Vous pouvez utiliser une opration logique de type AND lorsque vous dsirez utiliser seulement
un bit spcifique.
WROL, DWROL
WROL d
DWROL d
Effectue une rotation du Registre d vers la gauche. Le bit sortant est mmoris dans le
flag Carry
WROL permet de travailler sur les valeurs de type et DWROL sur les Double Word.
C d
D0 0843H
D1
WROR, DWROR
WROR d
DWROR d
Effectue une rotation du Registre d vers la droite. Le bit sortant est mmoris dans le flag
Carry
WROR permet de travailler sur les valeurs de type et DWROR sur les Double Word.
d C
D0
D1 0C210H
GOTO, LABEL
GOTO label
LABEL label
Lorsque lentre START passe ON, le programme LADDER continuera son excution
l tiquette SK_1
Dans ce second exemple, lorsque D0 est gal C0, le programme continuera son excution
l tiquette SK_1.
M a in Pro g ra m
R ET m u st b e u se d w h e n
th e re a re su b -ro u tin e s
En d o f su b -ro u tin e
En d o f La d d e r
Prenez garde lorsque vous ajoutez des sous-routines votre programme bien utiliser la
commande RET la fin du programme principal afin de le diffrencier des sous-routines
La commande END doit quand elle tre utilise la fin de votre programme principal et de
vos sous-routines (si vous en avez).
INTON
INTON s,d
La commande INTON est identique la commande WMOV lexeption que cette dernire peut
tre lorigine dune interruption en BASIC.
TND
TND est une commande se sortie conditionnelle. Lorsque lutilisateur dsire stopper un
scanning du Ladder, il pourra avoir ecours cette commande.
Vous pouvez utiliser cette commande pour sortir de sous-routine lorsquune condition
particulire est rencontre. Dans lexemple ci-dessus ce sera lorsque P1 sera ON.
Registres spciaux
Vous pouvez utiliser ces Registres pour connatre ltat du CUBLOC ou pour raliser des
applications ncessitant un timing particulier.
Registre Explication
spcial
F0 Toujours OFF
F1 Toujours ON
F2 Passe en on durant un SCAN time la mise sous tension (Set Ladder On).
F3
F4
F5
F6
F7
F8 1 SCAN On chaque 10 ms
F9 1 SCAN On chaque 100 ms
F10
F11
F12
F13
F14
F15
F16 Rpte cycle ON/OFF tous les 1 Scan time.
F17 Rpte cycle ON/OFF tous les 2 Scan times.
F18 Rpte cycle ON/OFF tous les 4 Scan times.
F19 Rpte cycle ON/OFF tous les 8 Scan times.
F20 Rpte cycle ON/OFF tous les 16 Scan times.
F21 Rpte cycle ON/OFF tous les 32 Scan times.
F22 Rpte cycle ON/OFF tous les 64 Scan times.
F23 Rpte cycle ON/OFF tous les 128 Scan times.
F24 Rpte cycle ON/OFF tous les 10ms
F25 Rpte cycle ON/OFF tous les 20ms
F26 Rpte cycle ON/OFF tous les 40ms
F27 Rpte cycle ON/OFF tous les 80ms
F28 Rpte cycle ON/OFF tous les 160ms
F29 Rpte cycle ON/OFF tous les 320ms
F30 Rpte cycle ON/OFF tous les 640ms
F31 Rpte cycle ON/OFF tous les 1.28 secondes
F32 Rpte cycle ON/OFF tous les 5.12 secondes
F33 Rpte cycle ON/OFF tous les 10.24 secondes
F34 Rpte cycle ON/OFF tous les 20.48 secondes
F35 Rpte cycle ON/OFF tous les 40.96 secondes
F36 Rpte cycle ON/OFF tous les 81.92 secondes
F37 Rpte cycle ON/OFF tous les 163.84 secondes
F38 Rpte cycle ON/OFF tous les 327.68 secondes
F39 Rpte cycle ON/OFF tous les 655.36 secondes
F40 Appel LADDERINT en BASIC
F41
F42
* Les Registres vierges non expliqus sont rservs pour des usages futurs. Il conviendra
de ne pas les utiliser.
Chapitre 11.
Tutorial : Premires
applications en
BASIC et LADDER
Prparation matriel
Alimentation :
La premire chose prvoir est avant tout une platine support qui vous permettra de relier le
module CUBLOC votre PC. Vous pouvez ralisez trs facilement vous mme cette platine.
Le minimum requis est une alimentation rgule et filtre.
Le module CUBLOC CB220 peut suivant lentre utilise salimenter de 5,5 12 Vcc ou
directement en + 5 Vcc (consultez les pages 35 pour plus dinformation).
Les modules CUBLOC CB280, CB290 et CB405 ne peuvent salimenter quen 5 Vcc
(consultez les pages 38, 39 et 43 pour le brochage).
Nutilisez JAMAIS de transformateur type bloc secteur dont la tension non rgule est souvent
bien plus importante que celle indique sur le commutateur de rglage, vous risqueriez
dendommager irrmdiablement le module CUBLOC. Utilisez un rgulateur + 5 Vcc (associ
des condensateurs de dcouplage en entre et en sortie) ainsi quun condensateur cramique
de 47 nf 0,1 uF placer directement au plus prs des broches dalimentation du CUBLOC.
Sachez galement quafin dviter davoir souder les modules CUBLOC, nous proposons
des supports permettant de recevoir ces derniers :
Entre Reset :
A noter que lentre RESET des modules CUBLOC pourra rester en lair ou recevoir de
prfrence une rsistance de 10 Kohms de rappel au + 5 Vcc avec un bouton-poussoir reli
entre la broche RESET et la masse. Ce dernier vous permettra de rinitialiser manuellement le
CUBLOC. La rsistance et le bouton-poussoir devront tre au plus prs du module
CUBLOC et la connexion ne devra pas dpasser quelques centimtres.
Connecteur de programmation :
Reste enfin relier les broches de programmation du module CUBLOC au PC. Nous
proposons pour ce faire un connecteur SUB-D 9 broches femelle coud pour circuit imprim
(sous la rfrence 16-W ). Vous trouverez les schmas relatifs chaque modles de
CUBLOC en dbut de documentation (pages 34, 38, 41 et 43).
Afin de vous simplifier la tche et de vous permettre de travailler plus rapidement, nous
proposons des platines supports optionnelles qui permettront de recevoir les modules
CUBLOC.
CB220-I/O Cell Base Platine monte CB280-I/O Cell Base Platine monte
monte pour le module CB220. pour le module CB280.
CUBLOC-STUDY Platine monte pour le module CB220 et CB280. Cette platine (dcrite
plus en dtail ci-aprs) est spcialement conue pour linitiation et lvaluation.
1 SOUT 1 24 VIN
6 SIN 23 VSS
2
2 Rx ATN 3 22 RES
7 VSS 4 21 VDD
3 Tx P0 5 20 P15
8 P1 6 19 P14
4 DTR P2 7 18 P13
9 P3 8 17 P12
5 P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
1 SOUT 1 24 VIN
6 SIN 2 23 VSS
2 Rx ATN 3 22 RES
7 VSS 21 VDD
4
3 Tx P0 5 20 P15
8 P1 6 19 P14
4 DTR P2 7 18 P13
9 P3 8 17 P12
5 P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8
Short here
Raccordement du CUBLOC au PC :
Si vous avez ralis vous-mme votre platine, ninsrez pas tout de suite le CUBLOC sur son
support et vrifiez bien votre cblage ainsi que la prsence du + 5 Vcc sur les entres
dalimentation ddies au CUBLOC. Si tout est correct, coupez lalimentation puis attendez
quelques secondes avant dinsrer le module CUBLOC sur son support (ATTENTION AU
SENS). Il ne vous reste plus qu relier la platine un port srie de libre du PC laide dun
cble srie mle/femelle (nous proposon un modle de cble sous la rfrence CW014 ).
Si vous ne disposez pas de liaison RS232 de libre sur votre PC, il vous est possible dutiliser un
cble de conversion USB <> srie.
Nous proposons ce titre un modle spcialement prvu cet effet sous la rfrence
PCUSB6 . Ce cble permet une fois son driver install dtre vu comme un port COM
srie virtuel du ct du PC et de la platine du CUBLOC (tout en tant connect sur le port
USB de votre PC).
- Insrez le CD-ROM livr avec le cble dans le lecteur de votre PC (sans relier le cble au
port USB, ni la prise SUB-D du module CUBLOC). Laissez le programme dinstallation
dmarrer et cliquez vers le bas de la fentre sur le cble bleu identique au votre. Le
programme vous proposera alors de procder linstallation du driver.
- Fermez ensuite le programme dinstallation et insrez alors le cble sur le port USB de votre
PC (sans relier lautre partie au CUBLOC).
- Allez sur le bureau principal de Windows. Ralisez un click droit de souris sur licne
du poste de travail, puis cliquez sur Proprits .
- Double cliquez sur la slection Prolific USB-to-Serial Comm Port (COMx) (ou x peut
avoir diffrentes valeurs suivant les configurations). Si la valeur x correspond une valeur
comprise en 1 et 6 et que ceci correspond bien un port COM non actuellement utilis par
un autre dispositif de votre PC, notez simplement le nombre afin de pouvoir configurer
correctement le logiciel de programmation des CUBLOC (voir page 61) et refermez toutes
les fentres.
- Si par contre le n du port (x) est dj exploit par un autre dispositif, cliquez sur longlet
Paramtres du port , puis sur la slection Avance . A ce stade, vous aurez la
possibilit de slectionner au bas de la fentre un N de port non utilis (choisissez un N
compris entre 1 et 6). Validez la slection par la touche OK , puis notez le N du port que
vous avez affect au cble et refermez toutes les fentres.
Le CD-ROM qui vous a t livr avec les modules CUBLOC contient gnralement la
dernire version en date du logiciel de dveloppement CUBLOC Studio .
Toutefois de part les mises jours rgulires opres par Comfile Technology, il vous faudra
imprativement vrifier sur le site www.comfiletech.com (rubrique Download ) que vous
disposez bien de la dernire version en date du CUBLOC Studio avant dinstaller et dutiliser
ce dernier lors de votre premire utilisation.
Constatez-nous si vous ne disposez pas de connexion Internet afin que nous puissions vous
adresser si ncessaire la dernire version jour.
Description de la platine :
Download Port
Reset Switch Contact
(LED, S/Ws)
(3)ALCD
Connector
I/O Ports
Contact
CuNET
(4)CuNET
Jumper
Bread Board
- 8 boutons-poussoirs.
- 8 interrupteurs.
- 4 potentiomtres.
- 8 leds.
- 1 bouton de Reset
- 1 Buzzer Piezo.
- 2 connecteurs ddis aux pilotage de module CuNet spcialiss.
- 1 connecteur pour liaison I2C.
- 1 tage de rgulation + 5 Vcc permettant dalimenter la platine sous + 9 Vcc.
- 1 connecteur sub-D 9 Broches ddi au tlchargement de vos programmes.
- 1 connecteur sub-D 9 Broches ddi aux communications RS232.
- 2 supports (le modle de gauche est destin recevoir un module CB280 le modle de
droite est prvu pour un module CB220).
- 1 plaque de connexion sans soudure avec reprise possible du + 5 Vcc de la platine.
Chaque connexion des priphriques de la platine (bouton-poussoir, buzzer, Leds, etc..) ainsi
que chaque port dentre/sortie du module CUBLOC sont accessibles sur des connecteurs
femelles doubles au pas de 2,54 mm. Il vous sera ainsi trs facilement possible de relier les
ports de sorties du CUBLOC aux Leds, les ports dentres aux interrupteurs, etc
Le fait de disposer de connecteurs double contact vous permettra par exemple de positionner
une sonde doscilloscope en parallle afin de pouvoir observer lvolution dun signal par
exemple (des reprises pour la masse (GND) sur des petites boucles sont ce titre galement
disponibles).
La platine intgre galement une plaque de connexion sans soudure qui vous permettra
dutiliser des composants additionnels, sans avoir besoins de souder ces derniers grce
lexistence de raccordements internes prexistants sur la plaque de connexion. Des reprises
dalimentation + 5 Vcc et masse (GND) sont galement votre disposition droite de la plaque
de connexion afin que vous puissiez alimenter les composants additionnels.
La platine CUBLOC Study board intgre un tage de mise niveau interne via un circuit
intgr MAX232. Il vous suffira alors de relier les signaux TX / RX du CUBLOC prsentant un
niveau logique 5 V sur les connecteurs en haut droite TX / RX RS232C afin que vous puissiez
rendre ces signaux compatibles avec une liaison srie au niveau +/- 12 V sur la prise sub-D 9
broches prsente larrire de la platine.
Si vous utilisez un module CB280, il vous suffira alors de raliser les pontages ci-dessous pour
mettre niveau les signaux RS232.
TX TX
RX RX
Si vous dsirez piloter un afficheur spcialis via une liaison srie (au niveau logique 5 V), il
vous suffira de relier la broche TX (niveau logique 5 V) du CUBLOC sur une des broches du
connecteur femelle RS232 LCD connect -> et de relier le cble de lafficheur sur le petit
connecteur blanc 3 points.
Si vous dsirez utiliser des modules spcialiss CuNET , il vous faudra faire un pontage des
plots en JP1 et JP2 laide des cavaliers.
Commutez enfin linterrupteur au dos de la platine sur la position ON (la Led PWR LED
doit alors sallumer).
Votre premier programme sera volontairement trs simple. Il consistera raliser lapplication
ci-dessous dans laquelle on utilisera 2 ports (le port 0 et le port 4) du module CUBLOC en
entre afin dy relier des poussoirs que lon appellera START et STOP ainsi quun port
en sortie (le port 14) sur lequel on connectera une Led.
SOUT VIN
SIN VSS
ATN RES
VSS VDD
START KEY P0 P15
P1 P14
P2 P13
330ohm.
P3 P12
STO P K EY P4 P11
P5 P10
10Kohm. P6 P9
P7 P8
CB220
- Commencez par aller dans le menu Setup , puis slectionnez PC interface setup .
Slectionnez alors le N du port COM du PC sur lequel vous avez connect le cable srie
de programmation du CUBLOC.
Dim a As Byte
Do
If In(0) = 1 Then a = 1
If In(4) = 1 Then a = 0
Out 14,a
Loop
Pour rappel, les lignes ne doivent tre colles fond vers la gauche, il vous faut en effet
laisser quelques espaces par rapport au bord gauche de lcran (utiliser une ou deux fois la
touche TAB par exemple pour obtenir un espacement constant).
Une fois le programme saisie, cliquez sur le menu Run (ou sur le petit triangle bleu de la
barre doutils du haut de lcran). A ce stade, un nom de fichier vous est demand. Ce dernier
correspondra au nom que vous voudrez donner votre application. Choissez par exemple
BASIC et validez. A ce stade, une barre de progression au bas de lcran doit safficher,
indiquant ainsi que le module CUBLOC est en cours de programmation.
Si un message du type Invalid RS232C Port ! ! ! saffiche, cest que vous avez mal configur
le N du port srie utiliser ou que le cble de programmation nest pas reli au PC ou au
CUBLOC ou si vous utilisez un cble USB, que ce dernier n pas t correctement dtect
(dconnectez-le et reconnectez le alors sur le port USB).
Si un message derreur saffiche toujours malgr vos vrifications lors de votre tentatives de
programmation, essayez de remettre jour le Firmware de votre module CUBLOC. Il faut en
fait savoir que le Firmware des modules est mmoris dans le logiciel CUBLOC Studio
(do lintrt de tlcharger la dernire version en date sur le site www.comfiletech.com afin de
pouvoir bnficier des dernires possibilits de votre module). Consultez la F.A.Q du chapitre
12 (page 366) pour connatre la procdure.
Note : Il se peut galement que lors dune premire utilisation, le CUBLOC Studio vous
affiche directement un message relatif au firmware en vous indiquant quun Firmware
plus rcent est prsent et en vous invitant remettre jour ce dernier dans le module
CUBLOC. Dans ce cas acceptez la mise jour qui se par la mme procdure que celle
dcrite dans la F.A.Q du chapitre 12 (page 366).
Dans tous les cas, patientez jusqu la fin de lopration de remise jour du Firmware. A noter
galement que la remise jour du Firmware efface tout programme potentiellement
prsent dans le CUBLOC.
Rappel important : Dans tous les cas, ne dconnectez JAMAIS le cble de programmation
et/ou ne coupez JAMAIS lalimentation du module CUBLOC lorsque ce dernier est en cours
de programmation ou que vous remettez jour son Firmware .
Interprtation du programme :
Ce programme trs simple se droule au sein dune boucle sans fin du type :
Do
.
.
.
Loop
La ligne de programme Out 14,a applique sur le port P14 le niveau logique dfini par la
variable a .
Donc lorsque vous sollicitez alternativement les 2 boutons poussoirs de gauche de la platine (le
modle le plus gauche fera passer la variable a 1, tandis que le 2me bouton fera passer
la variable a 0, ce qui se traduira selon les cas par lallumage ou lextinction de la Led L7.
Attention rappelez-vous que lorsque lon travaille avec les ports dentre/sortie, on fait rfrence
au N du port et non pas au N de la broche du CUBLOC.
Il est intressant de sattarder sur une caractristique propre la plupart des boutons-poussoirs.
En effet lors de leurs manipulations, il est frquent de constater que les contacts gnrs par
ceux-ci ne sont pas francs et sont lorigine de rebonds comme le montre la figure ci-
dessous.
Ces rebonds peuvent interfrer avec le fonctionnement de votre application qui au lieu de
dtecter un passage franc du niveau bas vers le niveau haut , sera alors en prsence
dune succession de passage bas/haut . Si dans le petit exemple ci-dessus, le phnomne
naura aucune consquence, il peut en tre autrement pour dautres applications.
Pour pallier ce type de phnomne, on peut avoir recours un filtrage via une rsistance et un
condensateur sur lentre du module CUBLOC, mais galement une instruction spciale du
CUBLOC : KEYINH() en remplacement de IN() afin de grer ce problme de rebond par
une sorte de filtrage logiciel comme le montre lexemple de programme ci-dessous.
Dim a As Byte
Do
If Keyinh(0,20) = 1 Then a = 1
If Keyinh(4,20) = 1 Then a = 0
Out 14,a
Loop
Le 2me paramtre de linstruction KEYINH(0, 20) permet de dfinir la dure qui permettra
dliminer leffet de rebond de la touche. Dans notre exemple, ltat de la touche ne sera pris en
compte quau bout de 20 ms.
Dans le cadre dune application en milieu perturb, il vous faudra utiliser un montage similaire
celui prsent ci-dessus afin de pouvoir dune part utiliser des tensions suprieures 5 Vcc en
entre et surtout pour pouvoir bnficier dune isolation entre le CUBLOC et le bouton-
poussoir.
DC24V DC5V
2.2Kohm.
CUBLOC I/O
PC-18T1 10Kohm.
Dim a As Byte
Do
If Keyinh(0,20) = 1 Then
a=1
debug dec a, Led allume,Cr
end if
If Keyinh(4,20) = 1 Then
a=0
debug dec a, Led tteinte,Cr
end if
Out 14,a
Loop
Vous verrez alors apparatre une fentre sur le PC qui affichera les messages : 1 Led allume
ou 0 Led teinte lorsque vous solliciterez les boutons-poussoirs de la platine. Ces messages
sont gnrs par les commandes debug prsentes dans le programme qui afficheront la valeur
dcimale de a , associe un message (Led allume ou led teinte) la commande Cr en
bout permet de revenir la ligne suivante dans la fentre de dbug du PC. Le recours aux
commandes Debug sera extrmement utile pour vous aider dvelopper vos applications plus
rapidement et plus simplement. Vous pourrez ainsi vrifier que votre programme passe bien
un endroit particulier de votre listing en plaant une commande debug lendroit en question
ou encore pour vrifier aisment la valeur de vos variables un moment prcis de cotre
application.
A noter quavant de pouvoir programmer nouveau votre module CUBLOC, il vous faudra au
pralable fermer la fentre de Debug au niveau du PC.
Il conviendra par contre dviter dutiliser une commande debug de faon rpte dans une
boucle comme dans lexemple ci-dessous par exemple :
Do
a=a+1
Debug dec a, Cr
loop
Usez donc des commandes Debug sans en abuser ! Dans les cas o vous devez utiliser une
commande dans une boucle pour surveiller lvolution dune variable, il conviendra alors (quitte
ralentir arbitrairement votre programme) placer une commande de temporisation aprs la
commande Debug afin que le CUBLOC Studio puisse trouver plus facilement une priode
pendant laquelle le port srie nest pas exploit pour entrer en communication avec le module
CUBLOC.
Si ncessaire, les programmes ci-dessus sont prsents (sous les noms : essai1 et essai2) sur
notre site internet : www.lextronic.fr. Consultez galement les trs nombreuses notes
dapplications qui vous apporteront une aide prcieuse.
- Pour ce faire, allez ensuite dans le menu Setup , puis slectionnez PLC setup
Wizard . A ce stade une nouvelle fentre saffiche. Commencez par slectionner le
modle de CUBLOC que vous utilisez dans la slection Device Select . Puis indiquez
les ports du CUBLOC qui devront tre utiliss en LADDER ainsi que leur tat (entre
in ou sortie ou en cliquant sur la petite flche arrondie pour modifier ltat pour
rappel, P1 ne peut tre utilis quen entre). Reportez-vous la copie dcran ci-dessous
pour raliser la configuration.
- La section des Alias vous permettra lors de la saisie dans le LADDER dutiliser les
dsignations telles que LED0, BP1 plutt que les noms de Registres (ce qui rend
lcriture et la comprhension de votre programme plus simple). Lors de la compilation du
programme le CUBLOC Studio fera automatiquement le lien entre le nom dAlias et son
Registre associ). Une fois termin, cliquez sur longlet Output BASIC review afin
davoir une ide sur la nature du programme BASIC dinitialisation que vous auriez du saisir
manuellement si vous naviez pas utilis lutilitaire spcialis. Afin de pouvoir commencer la
programmation en LADDER , cliquez sur Replace Basic Code au bas de la fentre.
Le programme CUBLOC Studio vous demandera alors si vous voulez sauvegarder le
programme BASIC potentiellement dj prsent dans lditeur avant de le remplacer par le
petit programme dinitialisation ainsi cre. Dans notre cas, du fait que nous navons aucun
programme BASIC en cours de ralisation, il ne sera pas ncessaire de procder une
sauvegarde (une seconde confirmation vous sera toutefois demande mais ici en encore,
il ne sera pas ncessaire de sauvegarder lancien programme BASIC).
Le programme ci-dessous est prsent (sous le nom : essai3) sur notre site internet :
www.lextronic.fr.
Une fois le programme saisie, alimentez la platine et cliquez sur le menu Run (ou sur le petit
triangle bleu de la barre doutils du haut de lcran). A ce stade, un nom de fichier vous est
demand. Ce dernier correspondra au nom que vous voudrez donner votre application.
Choissez par exemple LADDER et validez. A ce stade, une barre de progression au bas de
lcran doit safficher, indiquant ainsi que le module CUBLOC est en cours de programmation.
Si un message du type Invalid RS232C Port ! ! ! saffiche, cest que vous avez mal configur
le N du port srie utiliser ou que le cble de programmation nest pas reli au PC ou au
CUBLOC ou si vous utilisez un cble USB, que ce dernier n pas t correctement dtect
(dconnectez-le et reconnectez le alors sur le port USB).
Interprtation du programme :
Ce programme trs simple permet de mettre en uvre quelques Registres et fonctions
spciales des CUBLOC.
Le Registre F22 gnre ainsi automatiquement des impulsions toutes les 64 scan times .
Ce Registre est directement appliqu sur la Led2 (le port P3). Il sen suit que la Led Led2
clignote automatiquement.
Le Registre F21 gnre ainsi automatiquement des impulsions toutes les 32 scan times .
Ce Registre insr en srie avec le bouton poussoir N 2 (du port P14) est appliqu sur la
Led1 via le port P2). Ainsi en absence de sollicitation du poussoir N 2, la Led1 est teinte et
elle se met clignoter 2 fois plus vite que la Led2 lorsque le bouton-poussoir N 2 est utilis.
La commande TAOFF est active sur sollicitation du bouton-poussoir n 0 (reli sur lentre
P13). Ceci a pour action dinitialiser le Registre Timer T1 avec une temporisation de 5 s et
dallumer par la mme la Led0 (le timer tant inject sur le port P0). Au terme de la dure du
Timer T1, La led0 steint.
Pour activer ce mode, slectionnez le menu Run , puis Ladder Monitor off .
Vous pouvez galement utiliser la combinaison de touche Ctrl + F7 ou cliquer sur le bouton
reprsentant un carr vert entour de 2 barres noires dans la bote outils du haut de lcran.
A ce stade, la fentre du mode Debug fait apparatre votre programme LADDER dans lequel
vous pourrez suivre lvolution des valeurs de vos Registres Timers, entres, sorties en
quasi temps rel (sauf pour les Registres dont le temps dvolution est trop rapide).
Cliquez sur le bouton Monitoring Stop pour sortir de ce mode (ce qui est impratif si vous
dsirez programmer nouveau votre module CUBLOC). Afin de pouvoir visualiser lvolution
des Registres les plus rapides, il vous est possible davoir accs un deuxime outil pr-
intgr dans le CUBLOC Studio (voir ci-dessous).
A ce stade, une nouvelle fentre apparat dans laquelle vous pourrez slectionner le modle de
CUBLOC que vous utilis (dans la slection Device) et le N du port utilis pour la
communication entre le PC et le CUBLOC.
Sur le ct gauche de lcran vous avez votre disposition 8 boutons qui vous permettront de
choisir le nom des Registres dont vous voudrez faire la surveillance (vous pouvez choisir
des Registres de type mmoire, Timer, Sortie).
En cliquant sur le voyant vert gauche des touches reprsentant les Registres , vous allez
pouvoir activer (voyant allum) ou dsactiver (voyant teint) la mesure des signaux des
Registres . Ne validez dans un premier temps quun seul Registres (P3 par exemple),
puis cliquez sur le bouton Start (en haut gauche de la fentre).
Aprs quelques instant, cliquez sur le bouton Stop . Ds lors, la barre dascenseur
horizontale au bas de lcran vous permettra de vous dplacer dans lensemble du signal
acquis, tandis que le curseur du zoom vous permettra de modifier lchelle daffichage. Il
vous sera enfin possible de dplacer 3 curseurs dont les dures dintervalles saffichent
automatiquement en bas gauche de lcran.
A noter quil vous est possible tout moment lors de la phase dacquisition dactiver ou de
dsactiver un des signaux par lintermdiaire des voyants verts de gauche. A noter toutefois
que si plusieurs signaux sont sollicits en mme temps ou si des signaux de nature diffrentes
sont slectionns, laffichage de ces derniers pourra tre altr et hach . Il conviendra
donc de slectionner les signaux avec attention afin de pouvoir afficher des donnes
exploitables lcran.
Cliquez sur le bouton Exit pour sortir de ce mode (ce qui est impratif si vous dsirez
programmer nouveau votre module CUBLOC).
- Cliquez sur la touche F2 et saisissez alors le programme LADDER de la page 282 (sans
utiliser le logiciel de configuration automatis du programme de dclaration du LADDER)
Cette application complte (programme BASIC et LADDER) est prsent (sous le nom : essai4)
sur notre site internet : www.lextronic.fr.
Une fois le programme saisie, alimentez la platine et cliquez sur le menu Run (ou sur le petit
triangle bleu de la barre doutils du haut de lcran). A ce stade, un nom de fichier vous est
demand. Ce dernier correspondra au nom que vous voudrez donner votre application.
Choissez par exemple MIXTE et validez. A ce stade, une barre de progression au bas de
lcran doit safficher, indiquant ainsi que le module CUBLOC est en cours de programmation.
Tournez alors le potentiomtre de gauche de la platine et observez la led 3 ainsi que la fentre
de Debug du PC. Manipulez les boutons-poussoirs et observez galement les Leds comme
indiqu dans lapplication du programme LADDER seul de la page 360.
Le programme BASIC commence par la dclaration du type de module CUBLOC utilis, suivi
de la dclaration des ports utiliss par la partie LADDER du programme. Au passage on
remarquera que lon dclare ici la fois le N du port, sa fonction (entre ou sortie) et le nom de
lAlias qui lui sera associ sur une seule ligne. Cette faon de dclarer est plus compacte que
celle qui est gnre par lutilitaire de configuration automatique du CUBLOC Studio .
Le programme BASIC sintgre ensuite dans une boucle sans fin de type Do Loop dans
laquelle on fait lacquisition de la valeur analogique prsente sur le port P5 (qui aura au
pralable t dclar en tant que port dentre via la commande Input 5). Une commande
conditionnelle test ensuite si la valeur lue est suprieure 500. Si tel est le cas, la Led 3 est
allume et on affichage la valeur dcimale de la valeur lue dans la fentre de Debug du PC. Si
la valeur est infrieure 500, la Led 3 steint et les valeurs ne saffichent plus dans la fentre
de Debug du PC.
Vous pourrez ainsi constater que le programme BASIC et LADDER sexcutent simultanment
en mode multitche. A noter que si vous dsirez programmer nouveau votre module
CUBLOC, il vous faudra tourner le potentiomtre de telle sorte quaucune valeur ne saffiche
dans la fentre de DEBUG et que le port srie de programmation du CUBLOC soit libre
(voir explications en page 58).
Enfin, vous pourrez galement constater quil nest pas possible dactiver les modes Monitor
ou Time Chart Monitor du LADDER pour la simple et bonne raison que ces modes
partages les ressources du port srie de programmation avec le mode Debug du BASIC. Si
ncessaire, retirez la ligne de la commande Debug dans le programme BASIC pour avoir de
nouveau accs aux modes Monitor ou Time Chart Monitor du LADDER.
Chapitre 12.
F.A.Q
CUBLOC
Vous trouverez ci-aprs une liste de questions/rponses vous permettant de rsoudre la plupart
des cas de problmes de fonctionnement que vous pourrez tre amen rencontrer lors des
premires utilisations de vos modules CUBLOC .
R : Vous avez probablement utilis des commandes Debug qui monopolisent lusage du
port srie de programmation du module CUBLOC. Consultez le bas de la page 263 pour
comprendre ce qui se passe et y remdier.
R : Votre version du CUBLOC Studio est probablement plus rcente (ou plus ancienne)
que le Firmware du module CUBLOC.
ATTENTION ! Cette opration efface tout programme potentiellement prsent dans votre
module CUBLOC.
Une fois lopration termine, essayer nouveau de transfrer votre programme au sein de
votre module CUBLOC.
R : Avant de pouvoir utiliser correctement les fonctions mathmatiques des CUBLOC, il vous
faut imprativement (sous votre systme dexploitation Windows XP) slectionner le menu
Dmarrer -> Paramtres - > panneau de configuration .
Si vous ne procdez pas cette modification, vous ne pourrez pas utiliser correctement les
fonctions et calculs mathmatiques des CUBLOC (les rsultats retourns seront errons).
Chapitre 13.
Appendice
CUBLOC
CB220 CB280
Sout 1 21 Vdd TX1 41 61 TtlTX1
Sin 2 22 Vss RX1 42 62 TtlRX1
Atn
Vss
P0
3
4
5
23
24
25
RES
VBB
P8 /AD0
CB290 AVdd
Vdd
P24
43
44
45
63
64
65
AVref
Vss
P32
P1 6 26 P9 /AD1 P25 46 66 P33
P2 7 27 P10 /AD2 P26 47 67 P34
P3 8 28 P11 /AD3 P27 48 68 P35
P4 9 29 P12 /AD4 P28 49 69 P36
P5 10 30 P13 /AD5 P29 50 70 P37
P6 11 31 P14 /AD6 P30 51 71 P38
72
P89 /PWM3
P72
P73
P74
P75
P80
P81
P82
P83
P76
P77
P78
P79
P84
P85
P86
P87
HCNT0/ P22
HCNT1/ P23
Les informations prsentes dans ce manuel sont donnes titre indicatif. Les caractristiques
techniques et possibilits des modules CUBLOC ainsi que de leur logiciel de dveloppement
CUBLOC STUDIO peuvent changer tout moment sans aucun pravis dans le but
damliorer les possibilits de ces produits.