Vous êtes sur la page 1sur 370

Manuel utilisateur CUBLOC

PLC / Embedded computer


TM

Manuel utilisateur
Version 2.5

Everything for Embedded Control

Comfile Technology Inc.


www.comfiletech.com

Copyright 1996,2007 Comfile Technology


Traduction Franaise@2005 Copyright Lextronic Tous droits rservs.
La reproduction et la distribution (de quelque manire que ce soit) de tout ou partie de ce
document est interdite sans lautorisation crite de Lextronic.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 1


Manuel utilisateur CUBLOC

Copyrights et appellations commerciales


Windows XP est une appellation commerciale appartenant Microsoft Corporation.
XPORT est une appellation commerciale appartenant Lantronix inc.
CUBLOC est une appellation commerciale appartenant Comfile Technology Inc.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 2


Manuel utilisateur CUBLOC

En cas de litige, l'entire responsabilit du Fabricant et de LEXTRONIC vis--vis de votre


recours se limitera exclusivement selon le choix du Fabricant et de LEXTRONIC au
remboursement du module "CUBLOC" et/ou de ses platines et modules optionnels associs
et/ou de leur rparation et/ou de leur change. Le Fabricant et LEXTRONIC dmentent toutes
autres garanties, exprimes ou implicites.

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.

Rappel sur lvacuation des quipements lectroniques usags


Ce symbole prsent sur les modules "CUBLOC" ainsi que leurs platines et
modules optionnels associs et/ou leurs emballages indique que vous ne pouvez
pas vous dbarraser de ces produits de la mme faon que vos dchets courants.
Au contraire, vous tes responsable de lvacuation de ces produits lorsquils
arrivent en fin de vie (ou quils sont hors dusage) et cet effet, vous tes tenu
de les remettre un point de collecte agr pour le recyclage des quipements
lectriques et lectroniques usags. Le tri, lvacuation et le recyclage spars de vos qui-
pements usags permet-tent de prserver les ressources naturelles et de sassurer que ces
quipements sont recycls dans le respect de la sant humaine et de lenvironnement. Pour
plus dinformations sur les lieux de collecte des quipements lectroniques usags, veuillez
contacter votre mairie ou votre service local de traitement des dchets.

Note for all residents of the European Union


This symbol on the product or on its packaging indicates that this product must
not be disposed of with other household waste. Instead, it is your responsability
to dispose of your waste equipement by handing it over to designated collection
point for the recycling of waste electrical and electric equipement. The separate
collection and recycling of your waste equipement at the time of disposal will help
to conserve natural resources and ensure that it is recycled in a manner that protects human
health and environnement. For more information about where you can drop off your waste equi-
pement for recycling, please contact your local city office or your local hold waste disposal
service.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 3


Manuel utilisateur CUBLOC

A lire avant toute utilisation


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.

Contactez-nous si vous ne disposez pas de connexion Internet afin que nous puissions vous
adresser si ncessaire la dernire version jour.

Pensez galement vous connecter rgulirement sur le site www.comfiletech.com (rubrique


Download ) pour tlcharger les mises jours.

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 !

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 4


Manuel utilisateur CUBLOC

Table des matires

Chapitre 1 Prsentation des modules CUBLOC ............. 12


Qu'est qu'un CUBLOC ? ....................................................... 13
LADDER et BASIC................................................................ 17
Gestion multitche du LADDER et du BASIC ....................... 19
Les avantages des modules PLC "OEM".............................. 21
Environement de dveloppement ......................................... 23
Tlchargement et monitoring via Internet............................ 24
Notes l'attention des utilisateurs de PLC traditionnels ....... 25
Notes l'attention des utilisateurs de microcontrleurs ........ 26
La structure interne des CUBLOC..................................... 27

Chapitre 2 Aspect matriel des CUBLOC ........................ 31


Caractristiques matrielles.................................................. 32
Module "CB220".................................................................... 33
Module "CB280".................................................................... 36
Module "CB290".................................................................... 39
Module "CB405".................................................................... 43
Prcautions dusage.............................................................. 47
Chipset CUBLOC CB280CS ....................................... 51

Chapitre 3 Editeur/Compilateur CUBLOC STUDIO ............. 54


Les bases de CUBLOC STUDIO .......................................... 55
Dveloppement en "BASIC".................................................. 57
Dbugage ............................................................................. 58
Dtail des menus .................................................................. 59

Chapitre 4 Le langage BASIC des modules CUBLOC ..... 62


Caractristiques principales du BASIC des CUBLOC....... 63
Exemple simple de programme BASIC................................. 65
Sous-routine Sub et Fonction .................................... 66
Variables globales et locales ..................................... 67
Appels aux sous-routines...................................................... 68
Emplacement des sous-routines........................................... 69
Renvoi de paramtres et valeurs depuis sous-routines ........ 70
Les variables ......................................................................... 72
Les chanes .......................................................................... 74
A propos de lespace mmoire ddi aux variables.............. 77
Initialisation mmoire ............................................................ 77
Tableaux (matrices) .............................................................. 78
Gestion des bits et des octets ............................................... 79
Constantes ............................................................................ 81
Oprateurs ............................................................................ 84
Le pr-processeur BASIC ............................................... 88
Directives conditionnelles...................................................... 90
Pour utiliser uniquement le Ladder ....................................... 93
Pour utiliser uniquement le Basic.......................................... 93
Interruptions .......................................................................... 94
Pointeurs utilisant Peek, Poke et Memadr ............................ 96

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 5


Manuel utilisateur CUBLOC

Partage de donnes.............................................................. 97
Utilisation des broches du ladder en Basic ........................... 98

Chapitre 5 Les principales fonctions BASIC ....................... 99


Fonctions mathmatiques ................................................... 100
Conversion de formats ........................................................ 103
Fonctions de gestion de chanes ........................................ 105

Chapitre 6 Les librairies BASIC des CUBLOC ............... 113


Adin() .................................................................................. 114
Alias .................................................................................... 116
Bcd2bin ............................................................................... 116
Bclr ...................................................................................... 116
Beep.................................................................................... 117
Bfree() ................................................................................. 117
Bin2bcd ............................................................................... 118
Blen( ) ................................................................................. 119
Bytein( )............................................................................... 120
Byteout ................................................................................ 121
CheckBf( ) ........................................................................... 121
Compare ............................................................................. 122
Count( ) ............................................................................... 123
Countreset .......................................................................... 124
Dcd...................................................................................... 125
Debug ................................................................................. 126
Decr .................................................................................... 129
Delay ................................................................................... 129
Do...Loop ............................................................................ 130
Dtzero ................................................................................. 132
Eadin() ................................................................................ 133
Eeread( ) ............................................................................. 135
Eewrite ................................................................................ 136
Ekeypad .............................................................................. 137
For...Next ............................................................................ 138
Freepin ................................................................................ 140
Freqout................................................................................ 141
Get( ) ................................................................................... 143
Geta .................................................................................... 144
Geta2 .................................................................................. 145
Getcrc ................................................................................. 146
Getstr( ) ............................................................................... 147
Getstr2 ................................................................................ 148
Gosub..Return..................................................................... 149
Goto .................................................................................... 149
Accs la mmoire Heap du CB405 ............................ 150
Hread .................................................................................. 150
Hwrite .................................................................................. 151
Heapclear............................................................................ 152
Heap() ................................................................................. 152
Heapw ................................................................................. 152
A propos de ladressage de la mmoire Heap .............. 143

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 6


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 7


Manuel utilisateur CUBLOC

Set Onrecv .......................................................................... 193


Set Ontimer ......................................................................... 194
Set Onpad ........................................................................... 195
Set RS232........................................................................... 197
Set RS485........................................................................... 198
Set Until .............................................................................. 200
Shiftin( )............................................................................... 201
Shiftout ................................................................................ 202
Steppulse ............................................................................ 203
Stepstop .............................................................................. 203
Stepstat() ............................................................................ 204
Sys( )................................................................................... 206
Tadin()................................................................................. 207
Time( )................................................................................. 208
Horloge systme (RTC) ...................................................... 209
Timeset ............................................................................... 211
Udelay ................................................................................. 213
Usepin ................................................................................. 213
Utmax.................................................................................. 214
Wait ..................................................................................... 214
WaitTx ................................................................................. 215

Chapitre 7 Les librairies daffichages des CUBLOC...... 216


Afficheurs LCD alphanumriques CLCD ....................... 217
Set Dislay ............................................................................ 219
Cls ....................................................................................... 222
Csron .................................................................................. 222
Csroff .................................................................................. 222
Locate ................................................................................. 222
Print..................................................................................... 223
Commandes spciales pour afficheurs CLCD .............. 224
Afficheurs LCD graphiques srie GHB3224 .................. 226
Cls ....................................................................................... 227
Clear ................................................................................... 227
Csron .................................................................................. 227
Csroff .................................................................................. 227
Locate ................................................................................. 227
Print..................................................................................... 229
Layer ................................................................................... 229
GLayer ................................................................................ 230
Overlay................................................................................ 230
Contrast .............................................................................. 230
Light .................................................................................... 230
Font ..................................................................................... 231
Style .................................................................................... 232
Cmode ................................................................................ 232
Line ..................................................................................... 232
Lineto .................................................................................. 233
Box ...................................................................................... 233
Boxclear .............................................................................. 234
Boxfill .................................................................................. 234

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 8


Manuel utilisateur CUBLOC

Circle ................................................................................... 235


Circlefill ............................................................................... 235
Ellipse ................................................................................. 236
Elfill ..................................................................................... 236
Glocate................................................................................ 237
Gprint .................................................................................. 237
Dprint .................................................................................. 238
Offset .................................................................................. 239
Pset ..................................................................................... 239
Color ................................................................................... 240
Linestyle .............................................................................. 240
Dotsize ................................................................................ 240
Paint .................................................................................... 240
Arc....................................................................................... 241
Defchr ................................................................................. 241
Bmp..................................................................................... 242
Gpush ................................................................................. 244
Gpop ................................................................................... 244
Gpaste ................................................................................ 245
Hpush.................................................................................. 246
Hpop ................................................................................... 246
Hpaste................................................................................. 246
Afficheurs 7 segments Leds srie " CSG "....................... 248
Csgdec ................................................................................ 249
Csghex ................................................................................ 250
Csgnput............................................................................... 250
Csgxput ............................................................................... 250

Chapitre 8 Interfaage des modules CUBLOC.............. 251


Raccordement des Entres / Sorties .................................. 252
Les priphriques CuNET ddis aux CUBLOC .......... 257
Les communications I2C ................................................. 259

Chapitre 9 Communications MODBUS ......................... 265


Adresses des modules........................................................ 268
Fonctions Codes ................................................................. 269
Mode MODBUS ASCII Matre ......................................... 277
Mode MODBUS ASCII esclave ....................................... 278
Mode MODBUS RTU Matre ........................................... 279

Chapitre 10 Le Ladder des CUBLOC ............................ 280


Les bases du LADDER ....................................................... 281
Dveloppement en LADDER .............................................. 282
Lditeur du LADDER.......................................................... 284
Monitoring en Ladder .......................................................... 287
Liste des Registres utiliss par le LADDER ........................ 294
Les symboles du " LADDER " ............................................. 296
Utilisation des " E/S " .......................................................... 297
Utilisation des " alias "......................................................... 298
Dmarrage du programme LADDER .................................. 299
Si vous voulez utiliser le LADDER (sans le BASIC)............ 300

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 9


Manuel utilisateur CUBLOC

Activation du mode " Turbo Scan Time " du LADDER........ 301


Choses se rappeler en LADDER ..................................... 302
Les instructions du LADDER............................................... 305
LOAD,LOADN,OUT ............................................................ 307
NOT, AND,OR..................................................................... 308
SETOUT, RSTOUT............................................................. 309
DIFU, DIFN ......................................................................... 310
MCS, MCSCLR ................................................................... 311
STEPSET............................................................................ 313
STEPOUT ........................................................................... 314
TON, TAON......................................................................... 315
TOFF, TAOFF ..................................................................... 316
CTU..................................................................................... 317
CTD..................................................................................... 317
Compteur " UP/DOWN " ..................................................... 318
KCTU .................................................................................. 319
KCTD .................................................................................. 319
Comparaisons logiques....................................................... 320
Mmoriser des donnes Words et Double Words .............. 321
Binaire, Dcimal, Hxadcimal ........................................... 322
WMOV, DWMOV ................................................................ 323
WXCHG, DWXCHG ............................................................ 324
FMOV.................................................................................. 325
GMOV ................................................................................. 326
WINC, DWINC, WDEC, DWDEC........................................ 327
WADD, DWADD.................................................................. 328
WSUB, DWSUB .................................................................. 328
WMUL, DWMUL.................................................................. 329
WDIV, DWDIV..................................................................... 330
WOR, DWOR ...................................................................... 331
WXOR, DWXOR ................................................................. 332
WAND, DWAND.................................................................. 333
WROL, DWROL .................................................................. 334
WROR, DWROR................................................................. 335
GOTO, LABEL .................................................................... 336
CALLS, SBRT, RET ............................................................ 337
INTON ................................................................................. 338

Chapitre 11 Tutorial : Premires applications ................... 341


Premier programme Basic ............................................ 351
Premier programme Ladder .......................................... 357
Premier programme BASIC et Ladder .................... 362

Chapitre 12 F.A.Q CUBLOC.......................................... 365

Chapitre 13 Appendice CUBLOC .................................. 368

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 10


Manuel utilisateur CUBLOC

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.

Lexprience de Comfile Technology dans le dveloppement et la distribution des TinyPLC et


des PicBASIC (qui sont respectivement des modules microcontrls de type PLC et
programmables en BASIC), leur a permis damliorer leurs techniques de conception au fil des
annes. Contrairement la plupart des autres produits concurrents, vous pourrez ainsi utiliser
les modules CUBLOC uniquement en les programmant en langage BASIC ou uniquement via
une programmation PLC ou encore avec les 2 technologies la fois.

La programmation en LADDER, permet le dveloppement dapplications de contrles


squentiels trs complexes. La programmation en langage BASIC permet limplmentation de
processus divers et varis avec une grande simplicit de prise en main et une grande
souplesse de travail.

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 professionnels apprcieront galement les possibilits et la puissance des modules


CUBLOC qui leur permettront de mettre trs rapidement leurs produits sur le march en
conservant une longueur davance sur leurs concurrents.

- 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).

Comfile Technology, Inc.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 11


Manuel utilisateur CUBLOC

Chapitre 1.
Prsentation des
modules CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 12


Manuel utilisateur CUBLOC

Quest-ce quun module CUBLOC ?


Les CUBLOC sont diffrents des automates PLC traditionnels que vous avez dj peut tre
pu utiliser. Les automates traditionnels se prsentent gnralement sous la forme de botiers
modulaires dots de diverses connexions (voir reprsentation ci-dessous).

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.

CUBLOC core module


traditional PLC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 13


Manuel utilisateur CUBLOC

Tableau comparatif

Modle CB220 CB280 CB290 CB405

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 14


Manuel utilisateur CUBLOC

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

LADDER LOGIC BASIC

Photo de lenvironnement de dveloppement des CUBLOC appel CUBLOC Studio.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 15


Manuel utilisateur CUBLOC

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

SINGLE TASK MULTI TASK

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 16


Manuel utilisateur CUBLOC

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.

En comparaison, la gestion dun processus en BASIC seffectue selon un droulement


squentiel.
Dim A As Integer
Dim B As Integer
A=0
Jump
Again:
For B=0 to 10
Debug DEC A,CR
A = A + 10
Loop
Next
Goto Again

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 17


Manuel utilisateur CUBLOC

Comme indiqu prcdement le principal avantage de la programmation en LADDER est de


permettre le traitement de lensemble des tches avec la mme dure. Ainsi quelque-soit la
complxit de vos circuits , le LADDER sera toujours prt activer les sorties lorsque les
entres seront sollicites. Ceci est pourquoi il est courant davoir recours ce type de langage
pour le pilotage de machines diverses en automatisme.

Le LADDER nest pas un langage de programmation traditionnel proprement parl. Ce


dernier est en effet davantage ddi la gestion dvnements logiques. Des lors, le recours
au LADDER pour la gestion dvnement complexes tels que la saisie dinformations issues de
claviers, laffichage sur cran LCD ou afficheurs 7 segments Leds savrera trs vite
impossible ou trs fastidieux mettre en uvre.

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.

LADDER Programmation en BASIC


Module PLC (automate) PC ou Microcontrleur
Application Automatisme Toute application
Avantage Gestion logique et squentielle, Gestion calcule Mathmatique,
gestion de Bit, Timers, Communication de donnes (srie/
Compteurs I2C), Acquisition de donnes,
Affichage sur cran LCD divers.
Gestion En Parallle De faon Squentielle
structurelle

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 18


Manuel utilisateur CUBLOC

Gestion multitche du LADDER et du BASIC


Il existe plusieurs faons dimplmenter une programmation BASIC et LADDER dans un mme
processeur. La plupart des produits similaires actuellement disponibles sur le march utilisent le
BASIC comme une sous-partie du langage LADDER avec notre sens la clef des
limitations importantes.

FUNC #1

P0 P1 Print "Setting Mode"


FUNC #1 A=A+1
B = B +1
RETUR N

La premire limitation vient de la dure dexcution du programme en langage BASIC qui va


irrmdiablement avoir des effets sur le programme LADDER. Par exemple, si le programme
BASIC ralise une boucle sans fin , lexcution du programme LADDER sera galement
stoppe. Le principal avantage du LADDER tant de disposer dun temps dexcution identique
pour lensemble de ses actions, il nest donc pas conseill dans ce cas dinclure une partie en
langage BASIC qui aura comme effet dannuler cet avantage !

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 19


Manuel utilisateur CUBLOC

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

If A=1 THEN _M(1) = 1


P3
If B=1 THEN _M(1) = 0
MCSCLR 0

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 20


Manuel utilisateur CUBLOC

Les avantages des modules PLC OEM


Un des principaux avantages des CUBLOC est quils se prsentent sous la forme dun
module hybride OEM . Lutilisation dautomates (PLC) standard ncessite gnralement
lutilisation dun coffrt destin recevoir le cblage de votre application.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 21


Manuel utilisateur CUBLOC

Le tableau ci-dessous montre les diffrences entre un automate traditionnel et un module


CUBLOC OEM .

PLC traditionnel CUBLOC

Photo

Production Support Rail Din PCB ou Rail Din


Cot Souvent lev Faible
Montage Souvent difficile Simple
en srie
Dim. Grande Faible
Dim. finale Grande Compacte

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 22


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 23


Manuel utilisateur CUBLOC

Tlchargement et monitoring via Internet

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)

Le module Internet optionnel XPORT

Serveur pour Monitoring/Download via de multiples modules XPORT

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 24


Manuel utilisateur CUBLOC

Notes lattention des utilisateurs de PLC traditionnels


Les personnes habitues la programmation sur automates traditionnels pourront programmer
les modules CUBLOC uniquement en langage LADDER. Ces derniers pourront totalement
dlaisser la programmation en BASIC o sy essayer progressivement laide des
nombreux exemples et notes dapplications disponibles en annexe. Ds lors ces personnes
pourront intgrer petit petit de nouvelles fonctions qui nauraient pas pu tre ralises
auparavant avec des automates traditionnels en leur permettant ainsi de pouvoir raliser des
applications plus performantes.

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

Nous fournissons toutefois de nombreuses librairies de fonctions en BASIC qui vous


permettront (par simple copier & coller ) de pouvoir grer des claviers de saisie, des
afficheurs, etc mme si vos connaissances en BASIC sont limites.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 25


Manuel utilisateur CUBLOC

Notes lattention des utilisateurs de microcontrleurs


Afin de pouvoir rduire les cots de production dans le cadre de ralisations en trs grandes
sries, les microcontrleurs tels que les PIC, AVR et autres 8051 sont tous indiqus.
Toutefois le principal inconvnient de ces microcontrleurs est quils ncessitent gnralement
(sauf pour les applications trs simples) des temps de dveloppement trs importants et des
dures dapprentissage trs longues et fastidieuses (sans parler des cots initiaux ncessaires
lacquisition du matriel de base qui permettra de les exploiter : programmateur, compilateur,
sonde de dbug, mulateur, etc).

De la part mme des ingnieurs expriments, le dveloppement sur les microcontrleurs


standards est une tche trs complexe qui ncessitera de trs longues heures (jour / mois
voir annes suivant les cas) pour arriver concevoir une application finale. Mme aprs la
phase de dveloppement si un bug est dtect il est pratiquement impossible ou trs difficile
de mettre jour le programme du micorocntrleur.

PC compiler
PC
socket
flash programmer
mcu cubloc

emulator target board target board

MCU engineer's desk CUBLOC engineer 's desk

En comparaison, les modules CUBLOC de Comfile vous permettront de bnficier de temps


de dveloppement jusqu 20 fois moins long avec la possibilit de pouvoir effectuer des mises
jour via une liaison RS-232 ou via Internet (avec le module optionnel XPORT) en vous
permettant ainsi de disposer dun atout indniable sur vos concurrents.

Si en plus vous avez dj quelques connaissances en terme de programmation sur les


microcontrleurs standards, le passage aux CUBLOC sera une simple formalit . Vous
pourrez ds lors entirement vous focaliser sur les caractristiques de votre produit final plutt
que de devoir passer des heures et des heures devant votre ordinateur !

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 26


Manuel utilisateur CUBLOC

La structure interne des 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

Linterprteur BASIC dispose dune mmoire Flash ddie au programme BASIC. Le


processeur de gestion du LADDER dispose galement de sa mmoire Flash pour lexcution du
programme LADDER.

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.

La mmoire programme du BASIC (1) et du LADDER (2) se partage la mme ressource de


mmoire Flash. Cette ressource mmoire est de 80 K. Une application entirement
programme en BASIC peut utiliser lintgralit de ces 80 K. De mme, une application
entirement programme en LADDER peut galement utiliser lintgralit de cette mmoire.
Une application programme en BASIC et en LADDER pourra tre dveloppe ds lors que le
total du programme BASIC et LADDER ne dpasse pas les 80 K. Les modles CB2XX
disposent actuellement de 80 K. Les futures versions de modules CUBLOC pourront disposer
davantage de mmoire.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 27


Manuel utilisateur CUBLOC

Les priphriques des CUBLOC

Platines PROTO BOARD


Les platines Proto Board sont spcialement conues pour raliser des tests et dvelopper
les prototypes de vos applications base de modules CUBLOC. Ces platines intgrent un
tage de rgulation ainsi quun tage de mise en forme de la sortie srie des modules.

Platines BASE BOARD (srie CUBASE)


Les platines BASE Board sont spcialement conues pour acclrer la mise en uvre de
vos applications. Destines tre alimente en 24 Vcc, ces dernires pourront directement
piloter des relais ou lire ltat de contacts.

Platines srie CUSB


Les platines CUSB sont spcialement conues pour acclrer la mise en uvre de vos
applications. Destines tre alimente en 24 Vcc, ces dernires disposent de sorties relais et
dentres tout-ou-rien opto-isoles.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 28


Manuel utilisateur CUBLOC

Platines STUDY BOARD


Ces platines sont toutes indiques pour lexprimentation et la prise en main rapide et simplifie
des modules CUBLOC. Ces dernires disposent de bouton-poussoirs, de leds, de boutons-
poussoirs, dun tage de rgulation, dunn tage de mise en forme de la sortie srie des
modules, dun buzzer, dune plaque de dveloppement sans soudure, etc

Afficheurs LCD (Modules srie CLCD, GHLCD)


De nombreux types dafficheurs LCD pourront tre utiliss par les modules CUBLOC via une
communication de type I2C. A laide dune seule ligne de commande (PRINT, CLS, etc),
vous pourrez facilement commencer crire du texte sur votre afficheur sans avoir utiliser de
multiples instructions complexes.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 29


Manuel utilisateur CUBLOC

Modules daffichage 7 Segments Leds (srie CSG)


Divers types dafficheurs numriques 7 segments Leds pourront tre utiliss par les modules
CUBLOC via via une communication de type I2C.

Afficheurs graphiques dalles tactiles (srie CUTOUCH)


Le botier CUTOUCH est un afficheur graphique LCD dalle tactile dot dun cur
microcontrl CUBLOC . Des instructions BASIC vous permettront de concevoir des
crans de saisie et de grer la dalle tactile tandis que la partie LADDER vous permettra davoir
accs aux possibilits dautomatisme des CUBLOC.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 30


Manuel utilisateur CUBLOC

Chapitre 2.
Aspect matriel
des CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 31


Manuel utilisateur CUBLOC

Caractristiques matrielles

Les CUBLOC de la srie CB2XX ont les caractristiques suivantes :

z (BASIC et LADDER) 80 K de mmoire Flash


z Vitesse dexcution BASIC : 36,000 Instr/sec
z Vitesse dexcution LADDER : Scan time 10 ms (Turbo Mode ~= 100 Micro seconde)
z Mmoire donnes pour le BASIC: 2 ~ 24 K (Sauvegarde batterie sur modle CB290)
z Mmoire donnes LADDER: 1 ~ 4 K
z Mmoire EEPROM: 4 K
z 16 91 broches dE/S
z 8 canaux de conversion Analogique/numrique 10 bits
z 3 ou 6 canaux PWM (8 ~ 16 bits)
z Gestion matrielle UART (RS232C)
z Interface PC via port RS232C
z Circuit dhorloge RTC intgr (sur CB290 uniquement)

Tableau de compaison
Caractristique / CB220 CB280 CB290 CB405
Modle

Mmoire programme 80 K 80 K 80 K 200 K


Mmoire donnes BASIC 2 K BASIC 2 K BASIC 24 K BASIC 51 K
LADDER 1 K LADDER 1 K LADDER 4 K LADDER 4 K
HEAP 55 K
Mmoire donne - - En option En option
sauvegardable
EEPROM 4K 4K 4K 4K
Ports E/S 16 49 91 64
Ports sries 2 2 2 4
Format DIL 24broches Module Module Module
64 broches 108 broches 80 broches
Conv. A/N 10 bits 8 Canaux 8 Canaux 8 Canaux 16 Canaux
PWM 3 Canaux 6 Canaux 6 Canaux 12 Canaux
Interruption Ext. - 4 4 4
Entre compt. rapide 2 Canaux 2 Canaux 2 Canaux 2 Canaux
(RTC) - - Oui -
Temp. fonctionnement +10C~65C +10C~65C +10C~65C +10C~65C

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 32


Manuel utilisateur CUBLOC

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).

N'hsitez-pas faire des comparaisons de performances / possibilits / nombre d'instructions /


capacits mmoires / prix avec vos produits habituels... Vous vous apercevrez alors trs vite
qu'il est peut tre temps de passer aux CUBLOC !

SOUT 1 24 VIN (5.5V~12Vinput)


SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
SS_P0 5 20 P15_HCNT1
(Input only)SCK_P1 6 19 P14_HCNT0
MOSI_P2 7 18 P13
MISO_P3 8 17 P12
P4 9 16 P11_TX(CH1)
PWM0_P5 10 15 P10_RX(CH1)
PWM1_P6 11 14 P9_SDA(CUNET)
PWM2_P7 12 13 P8_SCL(CUNET)

CB220

Pin Nom E/S Bloc Port Description


1 SOUT Sortie Tlchargement srie (Sortie)
2 SIN Entre Tlchargement srie (Entre)
3 ATN Entre Tlchargement srie (Entre)
4 VSS Alim. Masse
5 P0 E/S ADC0 / SPI SS
6 P1 Entre ADC1 / SPI SCK
7 P2 E/S ADC2 / SPI MOSI
8 P3 E/S Bloc 0 ADC3 / SPI MISO
9 P4 E/S ADC4
10 P5 E/S PWM0 / ADC5
11 P6 E/S PWM1 / ADC6
12 P7 E/S PWM2 / ADC7
13 P8 E/S SCL (vers module CuNet)
14 P9 E/S SDA (vers module CuNet)
15 P10 E/S Port srie 1 - Niv. TTL RX / INT2
16 P11 E/S Bloc 1 Port srie 1 - Niv. TTL TX / INT3
17 P12 E/S
18 P13 E/S
19 P14 E/S Compteur rapide canal 0
20 P15 E/S Compteur rapide canal 1
21 VDD E/S 5 V Entre / Sortie
22 RES Entre Entre RESET
(Reset sur un Niveau Bas !)
23 VSS Entre Masse
24 VIN Entre 5.5 V ~ 12 V Entre alimentation

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 33


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 34


Manuel utilisateur CUBLOC

Alimentation du module CB220


Le CB220 peut tre aliment de 2 faons diffrentes :

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

1 SOUT 1 24 VIN DC5V


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 7 18 P13
9 P3 17 P12
8
5 GND P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8

Vous pouvez alimenter le module CB220 directement sous une tension continue de + 5 V
rgule et filtre en utilisant la broche 21.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 35


Manuel utilisateur CUBLOC

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.

SOUT 1 17 VDD TX1 33 49 TTLTX1


SIN 2 18 VSS RX1 34 50 TTLRX1
ATN 3 19 RES AVDD 35 51 AVREF
VSS 4 20 N/C N/C 36 52 P48
SS_P0 5 21 P16 ADC0 _P24 37 53 P31_ADC7
(Input_only)SCK_P1 6 22 P17 ADC1 _P25 38 54 P30_ADC6
MOSI_P 2 7 23 P18 ADC2 _P26 39 55 P29_ADC5
MISO_P 3 8 24 P19_PWM3 ADC3 _P27 40 56 P28_ADC4
P4 9 25 P20_PWM4_INT0 P47 41 57 P32
PWM0_P5 10 26 P21_PWM5_INT1 P46 42 58 P33
PWM1_P6 11 27 P22_INT2 P45 43 59 P34
PWM2_P7 12 28 P23_INT3 P44 44 60 P35
(CUNET)S CL_P8 13 29 P15_HCNT1 P43 45 61 P36
(CUNET)S DA_P 9 14 30 P14_HCNT0 P42 46 62 P37
P10 15 31 P13 P41 47 63 P38
P11 16 32 P12 P40 48 64 P39

CB280

Les N de broches sont ranges par fonctions et non pas par ordre chronologique.

Nom Pin # E/S Bloc Description


Port
SOUT 1 Sortie Tlchargement srie (Sortie)
SIN 2 Entre Tlchargement srie (Entre)
ATN 3 Entre Tlchargement srie (Entre)
VSS 4 Alim. Masse
P0 5 E/S SPI SS
P1 6 Entre SPI SCK
P2 7 E/S SPI MOSI
P3 8 E/S Bloc 0 SP MISIO
P4 9 E/S
P5 10 E/S PWM0
P6 11 E/S PWM1
P7 12 E/S PWM2
P8 13 E/S SCL (vers Module CuNET)
P9 14 E/S SDA (vers Module CuNET)
P10 15 E/S
P11 16 E/S Bloc 1
P12 32 E/S
P13 31 E/S
P14 30 E/S Compteur rapide canal 0
P15 29 E/S Compteur rapide canal 1

* IMPORTANT :
Les broches 20 et 36 ne sont pas utilises NE RIEN CONNECTER SUR CES BROCHES

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 36


Manuel utilisateur CUBLOC

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

VDD 17 IN Alim. 5 Vcc


VSS 18 IN Masse
RES 19 IN Entre RESET
Reset sur un Niveau Bas
TX1 33 Canal 1 (RS232)
Niveau +/- 12V -> Sortie donnes
RX1 34 Canal 1 (RS232)
Niveau +/- 12V -> Entre donnes
AVDD 35 Alim. convertisseur A/N
TTLTX1 49 Canal 1 (RS232)
Niveau 5 V (TTL) - Sortie donnes
TTLRX 50 Canal 1 (RS232)
1 Niveau 5 V (TTL) - Entre donnes
AVREF 51 Rfrence de tension ADC

* IMPORTANT :
Les broches 20 et 36 ne sont pas utilises NE RIEN CONNECTER SUR CES BROCHES

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 37


Manuel utilisateur CUBLOC

Alimentation du module CB280


Le module CB280 ne dispose pas de rgulateur interne et vous devrez lalimenter uniquement
sous une tension rgule et filtre de + 5 Vcc comme indiqu ci-dessous.

DC5V

1 S OUT 1 17 V DD TX1 33 49 TTLTX 1


6
S IN 2 18 V SS RX 1 34 50 TTLRX 1
2 Rx
7 ATN 3 19 RE S AV DD 35 51 AV RE F
3 Tx N/C 36 52 P 48
V SS 4 20 N/C
8
4 P0 5 21 P 16 P 24 37 53 P 31
DTR
9 P1 6 22 P 17 P 25 38 54 P 30
5 GND P2 7 23 P 18 P 26 39 55 P 29
P3 8 24 P 19 P 27 40 56 P 28
P4 9 25 P 20 P 47 41 57 P 32
P5 10 26 P 21 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

* IMPORTANT :
Les broches 20 et 36 ne sont pas utilises NE RIEN CONNECTER SUR CES BROCHES

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 38


Manuel utilisateur CUBLOC

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.

Nom Pin # E/S Bloc Port Dsignation


SOUT 1 Sortie Tlchargement srie (Sortie)
SIN 2 Entre Tlchargement srie (Entre)
ATN 3 Entre Tlchargement srie (Entre)
VSS 4 Alim. Masse
P0 5 E/S SPI SS
P1 6 Entre SPI SCK
P2 7 E/S SPI MOSI
P3 8 E/S Bloc 0 SPI MISIO
P4 9 E/S
P5 10 E/S PWM0
P6 11 E/S PWM1
P7 12 E/S PWM2
P8 25 E/S ADC0 : A/N Canal 0
P9 26 E/S ADC1 : A/N Canal 1
P10 27 E/S ADC2 : A/N Canal 2
P11 28 E/S Bloc 1 ADC3 : A/N Canal 3
P12 29 E/S ADC4 : A/N Canal 4
P13 30 E/S ADC5 : A/N Canal 5
P14 31 E/S ADC6 : A/N Canal 6
P15 32 E/S ADC7 : A/N Canal 7
P16 83 E/S SCL (vers module CuNET)
P17 84 E/S SDA (vers module CuNET)
P18 85 E/S INT 2
P19 86 E/S Bloc 2 INT 3
P20 97 E/S
P21 98 E/S
P22 99 E/S Compteur rapide canal 0
P23 100 E/S Compteur rapide canal 1

* Ne pas utiliser le port P88 et ne rien connecter dessus.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 39


Manuel utilisateur CUBLOC

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

* Ne pas utiliser le port P88 et ne rien connecter dessus.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 40


Manuel utilisateur CUBLOC

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

* Ne pas utiliser le port P88 et ne rien connecter dessus.

Sout 1 21 Vdd TX1 41 61 TtlTX1


Sin 2 22 Vss RX1 42 62 TtlRX1
Atn 3 23 RES AVdd 43 63 AVref
Vss 4 24 VBB Vdd 44 64 Vss
P0 5 25 P8 /AD0 P24 45 65 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

P7 12 32 P15 /AD7 P31 52 P39


P19 / INT 4
P18 / INT3
P16 / SCL
P17/ SDA

P56 13 33 P64 P40 53 73 P48


P57 14 34 P65 P41 54 74 P49
P58 15 35 P66 P42 55 75 P50
P88

P72
P73
P74
P75
P80
P81
P82
P83

P59 16 36 P67 P43 56 76 P51


P60 17 37 P68 P44 57 77 P52
81
82
83
84
85
86
87
88
89
90
91
92
93
94

P61 18 38 P69 P45 58 78 P53


P62 19 39 P70 P46 59 79 P54
P63 20 40 P71 P47 60 80 P55
95
96
97
98
99
100
101
102
103
104
105
106
107
108
PWM4 / P90
PWM5 / P91
P20
P21
HCNT1 / P22
HCNT2 / P23
P76
P77
P78
P79
P84
P85
P86
P87

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 41


Manuel utilisateur CUBLOC

0 1 3 4
CB290

7 8 5 6

11 2 9 10

Port Blocks

Note concernant les ports P24 P55.


Il existe ce jour 2 versions de modules CB290 . La version CB290 rev A. et la version
CB290 rev B. (vous pouvez contrler votre version grce une inscription prsente au dos
du module).

Pour les modules CB290 (ou CT1720) en version rev A.


Lorsque vous utilisez ces modules avec une pile de sauvegarde (y compris sur les platines de
test CB290 Proto ou Baseboard 64 ou CT1720 ) la mmoire RAM des donnes
(relative aux ports P24 P55) sera sauvegarde en cas de coupure dalimentation (y compris
ltat de sortie des E/S ).A la remise sous tension, ces ports retrouveront ltat quils
avaient au moment de la coupure dalimentation. Ceci permettra au module de reprendre son
fonctionnement normal en cas de perte dalimentation passagre.

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).

Pour les modules CB290 (ou CT1720) en version rev B.


Les ports P24 P55 sont en haut impdance (High-Z) la mise sous tension du module
CB290 (ou CT1720) afin dviter que des valeurs alatoires ne soient appliques ce
moment sur ces derniers. Aussi afin de pouvoir exploiter tous ces Ports en sortie, il vous faudra
utiliser au pralable linstruction Set Outonly On .

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 42


Manuel utilisateur CUBLOC

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).

Sout 1 21 Vdd TXE 41 61 TtlTXE


Sin 2 22 Vss RXE 42 62 TtlRXE
Atn
Vss
P0
3
4
5
23
24
25
RES
VBB
P16 / AD0
CB405 AVdd
Vdd
AD8 / P32
43
44
45
63
64
65
AVref
Vss
P48
SCK / P1 6 26 P17 / AD1 AD9 / P33 46 66 P49
Input
Only MOSI / P2 7 27 P18 / AD2 AD10 / P34 47 67 P50
MISO / P3 8 28 P19 / AD3 AD11 / P35 48 68 P51 / PWM9
P4 9 29 P20 / AD4 AD12 / P36 49 69 P52 / PWM10
PWM0 / P5 10 30 P21 / AD5 AD13 / P37 50 70 P53 / PWM11
PWM1 / P6 11 31 P22 / AD6 AD14 / P38 51 71 P54
PWM2 / P7 12 32 P23 / AD7 AD15 / P39 52 72 P55
RX2 / P8 13 33 P24 HCNT1 / P47 53 73 P63
TX2 / P9 14 34 P25 HCNT0 / P46 54 74 P62
P10 15 35 P26 P45 55 75 P61
PWM6 / P11 16 36 P27 / PWM3 P44 56 76 P60
PWM7 / P12 17 37 P28 / PWM4 /INT0 TX1 / P43 57 77 P59
PWM8 / P13 18 38 P29 / PWM5/ INT 1 RX1 / P42 58 78 P58
P14 19 39 P30 / INT2 SDA / P41 59 79 P57 / TX3
P15 20 40 P31 / INT3 SCL / P40 60 80 P56 / RX3

Les N de broches sont ranges par fonctions et non pas par ordre chronologique.

Nom Pin # E/S Bloc Port Dsignation


SOUT 1 Sortie Tlchargement srie (Sortie)
SIN 2 Entre Tlchargement srie (Entre)
ATN 3 Entre Tlchargement srie (Entre)
VSS 4, 22, Alim. Masse
64
VDD 21, 44 Alim. 5 Vcc
AVDD 43 Alim. Alim. convertisseur A/N
AVREF 63 Alim. Rfrence de tension ADC
VBB 24 Entre Pile Backup
RES 23 Entre Entre RESET
Reset sur un Niveau Bas
TTL 61 Sortie Broche libre du "MAX232" interne
TXE Niveau 5 V (TTL)
Sortie donnes
TTL 62 Entre Broche libre du "MAX232" interne
RXE Niveau 5 V (TTL)
Entre donnes
TXE 41 Sortie Broche exploitable du MAX232
Niveau +/- 12V
Sortie donnes
RXE 42 Entre Broche exploitable du MAX232
Niveau +/- 12V
Entre donnes

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 43


Manuel utilisateur CUBLOC

Les N de broches sont ranges par fonctions et non pas par ordre chronologique

Nom Pin # E/S Bloc Port Dsignation


P0 5 E/S SPI SS
P1 6 Entre SPI SCK
P2 7 Entre SPI MOSI
P3 8 Entre Bloc 0 SPI MISIO
P4 9 E/S
P5 10 E/S PWM0
P6 11 E/S PWM1
P7 12 E/S PWM2

P8 13 E/S Canal 2 - TTLRX2


Niveau 5 V (TTL)
Entre donnes
P9 14 E/S Bloc 1 Canal 2 - TTLTX2
Niveau 5 V (TTL)
Sortie donnes
P10 15 E/S
P11 16 E/S PWM6
P12 17 E/S PWM7
P13 18 E/S PWM8
P14 19 E/S
P15 20 E/S

P16 25 E/S ADC0 : A/N Canal 0


P17 26 E/S ADC1 : A/N Canal 1
P18 27 E/S ADC2 : A/N Canal 2
P19 28 E/S Bloc 2 ADC3 : A/N Canal 3
P20 29 E/S ADC4 : A/N Canal 4
P21 30 E/S ADC5 : A/N Canal 5
P22 31 E/S ADC6 : A/N Canal 6
P23 32 E/S ADC7 : A/N Canal 7

P24 33 E/S Co-processeur (SCL) *


P25 34 E/S Co-processeur (SDA) *
P26 35 E/S Co-processeur (INT) *
P27 36 E/S Bloc 3 PWM3
P28 37 E/S PWM4 / INT0
P29 38 E/S PWM5 / INT1
P30 39 E/S INT2
P31 40 E/S INT3
* Pour pilotage ultrieur dun coprocesseur externe (essayez dans la mesure du
possible de ne pas exploiter ces broches afin que vous puissiez y avoir recours
lorsque le module coprocesseur externe sera disponible).

P32 45 E/S ADC8 : A/N Canal 8


P33 46 E/S ADC9 : A/N Canal 9
P34 47 E/S ADC10 : A/N Canal 10
P35 48 E/S Bloc 4 ADC11 : A/N Canal 11
P36 49 E/S ADC12 : A/N Canal 12
P37 50 E/S ADC13 : A/N Canal 13
P38 51 E/S ADC14 : A/N Canal 14
P39 52 E/S ADC15 : A/N Canal 15

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 44


Manuel utilisateur CUBLOC

P40 60 E/S SCL (vers module CuNET)


P41 59 E/S SDA (vers module CuNET)
P42 58 E/S Canal 1 TTLRX1
Bloc 5
Niveau 5 V (TTL)
Entre donnes
P43 57 E/S Canal 1 TTLTX1
Niveau 5 V (TTL)
Sortie donnes
P44 56 E/S
P45 55 E/S
P46 54 E/S Compteur rapide canal 0
P47 53 E/S Compteur rapide canal 1

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

P56 80 E/S Canal 3 TTLRX3


Niveau 5 V (TTL)
Entre donnes
Bloc 7
P57 79 E/S Canal 3 TTLTX3
Niveau 5 V (TTL)
Sortie donnes
P58 78 E/S
P59 77 E/S
P60 76 E/S
P61 75 E/S
P62 74 E/S
P63 73 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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 45


Manuel utilisateur CUBLOC

Comment connecter une pile de sauvegarde sur


les modules CB290 et CB405 ?

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

Caractristiques lectriques communes


z Tension de fonctionnement : 4.5 5.5 Vcc
z Frquence de cadencement : 18.432 MHz
z Source Current port E/S : 20 mA
z Sink Current port E/S: 25 mA
z Tempratures limites de fonctionnement : +10 +65 Degrs (Celsius)
z Fonctionnement taux dhumidit : 10 ~ 80 % RH

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 46


Manuel utilisateur CUBLOC

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.

Correctement utiliss, vos modules CUBLOC vous permettront de raliser d'innombrables


quantits de montages et d'applications dont vous ne pouvez mme pas imaginer la puissance.
Toutefois il vous faut imprativement garder l'esprit que les modules CUBLOC ne sont rien
d'autre que des microcontrleurs et au mme titre qu'avec tout autre microcontrleur il vous faut
respecter certaines rgles de bases afin d'viter qu'il ne rende l'me !

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:

- Vrifiez toujours que ces tensions soient gales ou infrieures + 5 Vcc.

- Coupez en PRIORIT l'alimentation des capteurs externes AVANT de couper celle du


module CUBLOC afin d'viter qu'une tension soit toujours prsente sur l'entre du
module CUBLOC alors que ce dernier n'est plus aliment (sans quoi le port du CUBLOC
serait endommag).

- 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.

3) Ne jamais inverser la polarit d'alimentation du module CUBLOC.

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.

6) Dcouplez rigoureusement l'alimentation du CUBLOC (au plus prs de celui-ci).

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 47


Manuel utilisateur CUBLOC

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.

11) Le port P1 est UNIQUEMENT un port utilisable en entre.

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.

14) 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 .

15) Si vous dconnectez le cble de programmation du module CUBLOC ou que vous


teignez lalimentation du PC alors que le CUBLOC est encore reli au PC via le
cble de programmation, le module CUBLOC peut tre ammen effectuer un
Reset (prenez en compte lors du dveloppement de votre application).

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 48


Manuel utilisateur CUBLOC

Rappel des brochages des modules CUBLOC


SOUT 1 17 VDD TX1 33 49 TTLTX1
SOUT 1 24 VIN (5.5V~12Vinput) RX1 34 50 TTLRX1
SIN 2 18 VSS
SIN 2 23 VSS ATN 3 19 RES AVDD 35 51 AVREF
ATN 3 22 RES VSS 4 20 N/C N/C 36 52 P48
SS_P0 5 21 P16 ADC0_P24 37 53 P31_ADC7
VSS 4 21 VDD
(Input_only)SCK_P1 6 22 P17 ADC1_P25 38 54 P30_ADC6
SS_P0 5 20 P15_HCNT1 ADC2_P26 39 55 P29_ADC5
MOSI_P2 7 23 P18
(Input only)SCK_P1 6 19 P14_HCNT0 MISO_P3 8 24 P19_PWM3 ADC3_P27 40 56 P28_ADC4
MOSI_P2 7 18 P13 P4 9 25 P20_PWM4_INT0 P47 41 57 P32
PWM0_P5 10 26 P21_PWM5_INT1 P46 42 58 P33
MISO_P3 8 17 P12
PWM1_P6 11 27 P22_INT2 P45 43 59 P34
P4 9 16 P11_TX(CH1) P44 44 60 P35
PWM2_P7 12 28 P23_INT3
PWM0_P5 10 15 P10_RX(CH1) (CUNET)SCL_P8 13 29 P15_HCNT1 P43 45 61 P36
PWM1_P6 11 14 P9_SDA(CUNET) (CUNET)SDA_P9 14 30 P14_HCNT0 P42 46 62 P37
P10 15 31 P13 P41 47 63 P38
PWM2_P7 12 13 P8_SCL(CUNET)
P11 16 32 P12 P40 48 64 P39

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

P7 12 32 P15 /AD7 P31 52 P39


P19 / INT 4
P18 / INT3
P16 / SCL
P17/ SDA

P56 13 33 P64 P40 53 73 P48


P57 14 34 P65 P41 54 74 P49
P58 15 35 P66 P42 55 75 P50
P88

P72
P73
P74
P75
P80
P81
P82
P83

P59 16 36 P67 P43 56 76 P51


P60 17 37 P68 P44 57 77 P52
81
82
83
84
85
86
87
88
89
90
91
92
93
94

P61 18 38 P69 P45 58 78 P53


P62 19 39 P70 P46 59 79 P54
P63 20 40 P71 P47 60 80 P55
95
96
97
98
99
100
101
102
103
104
105
106
107
108
PWM4 / P90
PWM5 / P91
P20
P21

P76
P77
P78
P79
P84
P85
P86
P87
HCNT0/ P22
HCNT1/ P23

Sout 1 21 Vdd TXE 41 61 TtlTXE


Sin 2 22 Vss RXE 42 62 TtlRXE
Atn
Vss
P0
3
4
5
23
24
25
RES
VBB
P16 / AD0
CB405 AVdd
Vdd
AD8 / P32
43
44
45
63
64
65
AVref
Vss
P48
SCK / P1 6 26 P17 / AD1 AD9 / P33 46 66 P49
Input
Only MOSI / P2 7 27 P18 / AD2 AD10 / P34 47 67 P50
MISO / P3 8 28 P19 / AD3 AD11 / P35 48 68 P51 / PWM9
P4 9 29 P20 / AD4 AD12 / P36 49 69 P52 / PWM10
PWM0 / P5 10 30 P21 / AD5 AD13 / P37 50 70 P53 / PWM11
PWM1 / P6 11 31 P22 / AD6 AD14 / P38 51 71 P54
PWM2 / P7 12 32 P23 / AD7 AD15 / P39 52 72 P55
RX2 / P8 13 33 P24 HCNT1 / P47 53 73 P63
TX2 / P9 14 34 P25 HCNT0 / P46 54 74 P62
P10 15 35 P26 P45 55 75 P61
PWM6 / P11 16 36 P27 / PWM3 P44 56 76 P60
PWM7 / P12 17 37 P28 / PWM4 /INT0 TX1 / P43 57 77 P59
PWM8 / P13 18 38 P29 / PWM5/ INT 1 RX1 / P42 58 78 P58
P14 19 39 P30 / INT2 SDA / P41 59 79 P57 / TX3
P15 20 40 P31 / INT3 SCL / P40 60 80 P56 / RX3

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 49


Manuel utilisateur CUBLOC

Dimensions des modules CUBLOC


25.4mm (1000 mil)

CB220

2mm (78.74 mil)


34.9mm (1374mil)
CB280
30mm (1181mil)

2mm (78.74 mil)

15.24mm (600 mil) 18.415mm (725 mil)

59.4mm (2338 mil)

49.53mm (1950 mil)

X:150 X:2100
Y:1600 Y:1600

2mm (78.74 mil)


CB290
CB405
36.83mm (1450 mil) 47.8mm (1882mil)

CB290
CB405
X:575
Y:150

2mm (78.74 mil)


X:0
Y:0
10.8mm (425 mil) Unit : 1/1000 Inch (Mil

14.0 ~14.9mm (551~586m il)

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 50


Manuel utilisateur CUBLOC

Chipset CUBLOC CB280CS


Le Chipset CUBLOC CB280CS correspond aux 2 principaux circuits intgrs utiliss dans le
module "CB280". Ils sont proposs au dtail afin que vous puissiez directement implanter les
possibilits du module "CB280" moindre cot au sein de votre propre carte lectronique. Le
premier composant est au format QFP 64 broches, le second au format SOIC 8 broches. Si
vous navez jamais utilis les modules CUBLOC, il est prfrable dans un premier temps
dutiliser le module CB280 avant denvisager ensuite dans un second temps dintgrer le
Chipset Cubloc CB280CS . Le Chipset Cubloc CB280CS comprend les 2 circuits
intgrs.

Brochage du circuit intgr pricncipal du Chipset CUBLOC CB280CS


Pin # Port Fonction Description.
1 VDD Alimentation
2 RX0 DOWNLOAD RX RS232-RX
3 TX0 DOWNLOAD TX RS232-TX
4 P18 Port E/S
5 P19 PWM3 Port E/S
6 P20 PWM4 / INT0 Port E/S
7 P21 PWM5 / INT1 Port E/S
8 P22 INT2 Port E/S
9 P23 INT3 Port E/S
10 P0 SS Port E/S
11 P1 SCK Port E/S
12 P2 MOSI Port E/S
13 P3 MISO Port E/S
14 P4 Port E/S
15 P5 PWM0 Port E/S
16 P6 PWM1 Port E/S
17 P7 PWM2 Port E/S
18 P16 Port E/S
19 P17 Port E/S
20 /RESET Reset (Actif niveau bas)
21 VDD Alimentation
22 VSS Masse
23 XTALOUT Entre Quartz
24 XTALIN Sortie Quartz
25 P8 SCL Port E/S (vers module CuNET)
26 P9 SDA Port E/S (vers module CuNET)
27 RX1 RS232 CH1 RX RS232 Channel 1 Rx
28 TX1 RS232 CH1 TX RS232 Channel 1 Tx
29 P12 Port E/S
30 P13 Port E/S
31 P14 HCOUNT0 Port E/S

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 51


Manuel utilisateur CUBLOC

32 P15 HCOUNT1 Port E/S


33 P10 Port E/S
34 P11 Port E/S
35 P40 Port E/S
36 P41 Port E/S
37 P42 Port E/S
38 P43 Port E/S
39 P44 Port E/S
40 P45 Port E/S
41 P46 Port E/S
42 P47 Port E/S
43 P48 Port E/S
44 P39 Port E/S
45 P38 Port E/S
46 P37 Port E/S
47 P36 Port E/S
48 P35 Port E/S
49 P34 Port E/S
50 P33 Port E/S
51 P32 Port E/S
52 VDD Alimentation
53 VSS Masse
54 P31 ADC7 Port E/S
55 P30 ADC6 Port E/S
56 P29 ADC5 Port E/S
57 P28 ADC4 Port E/S
58 P27 ADC3 Port E/S
59 P26 ADC2 Port E/S
60 P25 ADC1 Port E/S
61 P24 ADC0 Port E/S
62 AREF Rfrence pour ADC
63 VSS Masse
64 AVDD Alimentation pour ADC

Consultez lappendice F pour plus dinformation sur les spcifications du CB280CS .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 52


Manuel utilisateur CUBLOC

Schma de mise en uvre du chipset CUBLOC CB280CS

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 53


Manuel utilisateur CUBLOC

Chapitre 3.
Lditeur / compilateur
CUBLOC STUDIO

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 54


Manuel utilisateur CUBLOC

Les bases de CUBLOC STUDIO


Aprs avoir install (voir procdure sur la feuille jointe avec le module CUBLOC) et
lexcution de CUBLOC STUDIO, vous verrez cet cran.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 55


Manuel utilisateur CUBLOC

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.

Lorsque vous sollicitez le bouton RUN (ou la combinaison de touches CTRL-R ), le


processus Save ->Compile -> Download -> Execute est automatiquement ralis. Les
programmes LADDER et BASIC sont compil dans une seule opration. Si des erreurs sont
trouves, lcran affichera la partie du programme o lerreur a t dtecte.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 56


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 57


Manuel utilisateur CUBLOC

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 58


Manuel utilisateur CUBLOC

Dtail des menus de la fentre de dveloppement en BASIC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 59


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 60


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 61


Manuel utilisateur CUBLOC

* 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 .

CONST DEVICE = CB220 Use 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.

Autres exemples de dclarations :

CONST DEVICE = CT1720 Use CT1720.


CONST DEVICE = CB280 Use CB280.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 62


Manuel utilisateur CUBLOC

Caractristiques principales du BASIC des CUBLOC

Interfaage avec un PC depuis le port RS232C


Le BASIC du CUBLOC utilise le port RS232 pour sinterfacer avec un PC. Il vous est
galement possible (en option) dutiliser un module additionnel XPORT afin de pouvoir
effectuer des tlchargements/monitoring depuis Internet.

Le BASIC du CUBLOC supporte les fonctions et sous-routines.


Au mme titre quavec le langage C , lutilisateur du langage BASIC du CUBLOC sera en
mesure de crer des sous-routines et fonctions afin de limiter la complexit de son programme.
En ayant la possibilit de pouvoir rutiliser des sous-routines et des fonctions que vous avez
dj crites (par simple copier/coller) dans vos nouveaux programmes, vous pourrez acclrer
vos temps de dveloppements. Vous trouverez ci-dessous un petit exemple de fonction que
vous pourrez raliser.

Function SUM( A As Integer, B As Integer) As Integer


Dim RES As Integer
RES = A + B
SUM = RES
End Function

La gestion de fonctions mathmatiques complexes est pris en compte.


A = SIN(A) * LOG(3.0) + 100 + ( B * 3.14 + 100) / 210

Les CUBLOC pourront dont assurer des calculs complexes.

Des traitements conditionns pourront tre effectus au moyen de fonctions


telles que If, While, etc
IF ((A + 1) = 100) THEN GOTO ABC

IF ((A + 1) = 100) AND (B / 100 = 20) OR C = 3 THEN GOTO ABC

Les tableaux Multi-dimensions sont supports.


Les CUBLOC supportent les tableaux multi-dimensions (jusqu 8 dimensions et une
dimension avec des champs de type caractre ).

DIM A(100,10,20) AS BYTE

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 63


Manuel utilisateur CUBLOC

Les communication RS232 Hardware sont supportes


Les CUBLOC disposent dun buffer de communication afin de pouvoir grer les liaisons
RS232 sans interfrence avec le droulement de votre programme.

Les dclarations conditionnes sont supportes


Le BASIC des CUBLOC supporte les instructions de type : SELECT CASE et DOLOOP

Librairie graphique pour gestion de LCD spcifiques


Les CUBLOC disposent dune libraire graphique permettant la gestion dafficheur LCD
graphiques spciaux de type GHLCD. Tracer des rectangles, des lignes, des cercles et utiliser
des commandes graphiques seffectuera en quelques lignes de codes.

De nombreux protocoles de communication sont supports


Pour la gestion de priphriques CuNET spciaux et ddis aux modules
CUBLOC tels que des afficheurs LCD, des afficheurs 7 segments Leds
RS232
MODBUS : HMI et protocole Touch screen
I2C : A laide des commandes du type I2CREAD et I2CWRITE
SPI : A laide des commandes du type SHIFTIN, SHIFTOUT
PAD: pour la gestion de clavier

Le BASIC du CUBLOC peut tre compar sur certains points au C


Supporte les dclarations #define, #include
Supporte #if..#ifdef..#endif
Commandes de type Incr, Decr
Supporte les pointeurs (PEEK, POKE et MEMADR)
Tableau de type String (1 dimension)

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 64


Manuel utilisateur CUBLOC

Exemple simple de programme BASIC


Vous trouverez ci-dessous un petit exemple de programme BASIC avec linstruction DoLoop.

Dim A As Byte
Do
Byteout 0, A
A=A+1
Loop

Ce programme sort la valeur de la variable A (qui sincrmente automatiquement) sur le port


P0-P7. Le programme suivant utilise le recours une sous-routine pour raliser la mme
chose:

Dim A As Byte
Do
Byteout 0, A
A=ADD_VALUE(A)
Loop
End

Function ADD_VALUE(B As Byte) As Byte


ADD_VALUE = B + 1
End Function

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.

Ces fonctions devront tre crites la fin du programme principal.

MAIN P ROGRAM

SUB

Sub routine
FUNCTION

SUB

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 65


Manuel utilisateur CUBLOC

Sous-routines Sub et Fonction


A noter que pour la gnration de sous-routines, il vous est possible dutiliser les instructions
Sub ou Fonction . Sub ne vous permettra pas de retourner de valeur alors que
Fonction vous permettra de retourner une valeur en sortie de la sous-routine.

Sub SubName (Param1 As DataType [,ParamX As DataType][,])


Statements
[Exit sub] ' Sort de la sous-routine
End Sub

Function FunctionName (Param1 As DataType [,])[As ReturnDataType]


Statements
[Exit Function] ' Sort de la sous-routine
End Function

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).

Function ADD_VALUE(B As Byte) As Byte


ADD_VALUE = B + 1 ' Retourne B+1.
End Function

Vous pouvez tester lutilisation des Fonctions en saisissant le programme ci-dessous.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 66


Manuel utilisateur CUBLOC

Variables globales et locales


Lorsque vous dclarez des variables lintrieur de sous-programmes de type Sub ou
Fonction , ces variables sont dites de type locale . Ces dire que ces dernires sont
cres temporairement en mmoire vive, puis effaces lors de la sortie du sous-programme.
Lutilisation de ces variables ne peut alors de faire que dans le sous-programme.

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 Program A Sub Program B

Local Variable Local Variable

Dim A As Integer ' Dclare A comme une variable de type global


LOOP1:
A=A+1
Debug Dp(A),CR ' Affiche A dans le fentre de dbug
DELAYTIME ' Appel la sous-routine DELAYTIME
Goto LOOP1
End ' Fin du programme principal

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 .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 67


Manuel utilisateur CUBLOC

Appels aux sous-routines


Lorsque vous avez cr des sous-routines, il vous sera possible de les utiliser comme sil
sagissait dune nouvelle instruction. Pour les sous-routines de type Sub , vous navez pas
besoin dutiliser de parenthses entre les paramtres. Pour utiliser des paramtres multiples,
utilisez des virgules pour les sparer (voir exemple ci-dessous).

DELAYTIME 100 ' Appel de la sous-routine


End

Sub DELAYTIME(DL As Integer)


Dim K As Integer ' Dclare K comme une variable locale
For K=0 To DL
Next
End Sub

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

Function SUMAB(A AS INTEGER, B AS INTEGER) As Integer


SUMAB = A + B
End Function

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 68


Manuel utilisateur CUBLOC

Emplacement des sous-routines


Les sous-routines de type Sub et Fonction doivent tre places APRES le
programme principal. Pour ce faire, il vous faut placer linstruction End la fin de votre
programme principal, puis les sous-routine aprs. Linstruction End la fin de votre
programme principale ne devra tre utilise que si vous disposez de sous-routine de type
Sub ou Fonction .

Dim A As Integer
LOOP1:
A=A+1
Debug DP(A),CR
DELAYTIME
Goto Loop1

End ' Fin du programme principal

Sub DELAYTIME()
Dim K As Integer
For K=0 To 10
Next
End Sub

Si par contre vous utilisez des sous-routines conventionnelles appele laide de


linstruction Gosub , il vous faudra placer ces dernires lintrieur de votre programme
principal comme indiqu ci-dessous :

Dim A As Integer
:
:
Gosub ABC
:
ABC:
:
End

Sub DEF(B as Byte)


:
:
End Sub

Function GHI(C as Byte)


:
:
End Function

* 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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 69


Manuel utilisateur CUBLOC

Renvoi de paramtres et valeurs depuis les sous-routines


Les fonctions peuvent utiliser presque tous les types de donnes pour le renvoi de
paramtres et de valeurs.

Dim A(10) As Integer


Function ABC(A AS Single) as Single ' Retourne une valeur de type Single
End Function

Function ABC(A AS String * 12) as String *12 ' Retourne une Chane de caractres
End Function

Function ABC(A AS long) ' Valeur de type Long comme paramtre


End Function ' Si la valeur de retour nest pas dclare,
' une valeur de type Long sera utilise.

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.

Dim b(10) as integer


K = ARRAYUSING(b(10)) ' Utilise le 10 me lment du tableau comme paramtre.

Function ARRAYUSING(A AS Integer) as integer


End Function

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

Sub ADDATEN(V As Integer)


V = V + 10 ' A ne sera pas modifi lorsque V est modifi.
ADDATEN = V
End Sub

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 70


Manuel utilisateur CUBLOC

Trop de caractres sur une seule ligne ?


Si la ligne de votre instruction est trop grande pour apparatre en totalit lcran, vous pouvez
utiliser le caractre underscore ( _ ) pour indiquer de continuer la ligne suivante.

ST = "COMFILE TECHNOLOGY"

Revient crire

ST = "COMFILE _
TECHNOLOGY"

Affichage de commentaires dans votre programme


Utilisez le caractre ( ) pour indiquer le dbut dun commentaire. Ces commentaires seront
ignors lors de la compilation du programme et ne monopoliserons aucune ressource mmoire.

ADD_VALUE = B + 1 ' Ajouter 1 B (ceci est un commentaire)

Sous-routines imbriques
Les CUBLOC supportent le recours des sous-routines imbriques.

A=FLOOR(SQR(F)) ' Ralise Floor() de SQR(F).

Gestion des sparations


La sparation par un caractre ( : ) nest pas reconnu par les CUBLOC.

A=1: B=1 : C=1 ' Non correct.

A=1 ' Correct.


B=1
C=1

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 71


Manuel utilisateur CUBLOC

Variables
Il y a 5 types de variables pouvant tre gres par le BASIC des CUBLOC.

BYTE 8 bits nombre positif 0~255


INTEGER 16 bits nombre positif 0~65535
LONG 32 bits nombre positif/ngatif -2147483648 ~ +2147483647
SINGLE 32 bits Nombre virgule flottante, -3.402823E+38 ~ 3.402823E+38
STRING String (chane), 0 127 octets

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.

DIM A AS BYTE Declare A comme en BYTE.


DIM B AS INTEGER, C AS BYTE La virgule ne doit pas tre utilise.
DIM ST1 AS STRING * 12 Dclaration de la taille de la chane.
DIM ST2 AS STRING Dclaration dune chane avec taille par dfaut (64 octets).
DIM AR(10) AS BYTE Dclaration dun tableau doctets.
DIM AK(10,20) AS INTEGER Dclaration dun tableau 2 D.
DIM ST(10) AS STRING*10 Dclaration dun tableau de chanes

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 72


Manuel utilisateur CUBLOC

Exemple de programme de test mettant en uvre la dclaration des variables.

Instruction VAR
Linstruction VAR pourra tre utilise pour la dclaration des variables limage de
linstruction DIM en utilisant la syntaxe ci-dessous.

A Var Byte ' Dclare A comme BYTE.


ST1 Var String * 12 ' Dclare ST1 comme une chane de of 12 octets.
AR Var Byte(10) ' Dclare AR comme un tableau de 10 octets.
AK Var Integer(10,20) ' Dclare AK comme un tableau 2 dimensions (Interger)
ST Var String *12 (10) ' Dclare un tableau de type chane

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 73


Manuel utilisateur CUBLOC

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.

DIM ST AS STRING * 14 Cette chane aurra une taille max. de 14 octets


DIM ST2 AS STRING Cette chane aurra une taille max. de 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 (,).

PRINT CHR(&H22),COMFILE TECHNOLOGY,CHR(&H22) ()


PRINT CHR(&H27),COMFILE TECHNOLOGY,CHR(&H27) () Apostrophe

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 74


Manuel utilisateur CUBLOC

Pour associer de multiples chanes, vous pouvez utiliser des virgules.

PRINT ABC,DEF,GHI Same as PRINT ABCDEFGHI.

Utilisez CR pour le retour la ligne.

PRINT California,CR Affiche California et va la ligne suivante.

Voir exemples sur le programme de test ci-dessous :

Fusionner de multiples chanes


Pour fusionner de multiples chanes, utilisez le caractre & comme indiqu ci-dessous :

Dim a1 As String * 30
Dim a2 As String * 30
a1 = "Comfile "
a2 = "Technology "
a1 = a1 & a2 & ",Inc"
Debug a1,cr

Le programme ci-dessous affichera Comfile Technology, Inc sur la fentre de dbug.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 75


Manuel utilisateur CUBLOC

Comment accder individuellement aux caractres dune chane


Pour ce faire, vous pouvez utiliser les chanes comme un tableau en ajoutant simplement
_A la variable de la chane comme indiqu dans lexemple ci-dessous:

DIM ST1 AS STRING * 12 Le champ ST1_A est cr en mme temps.


ST1 = 123
ST1_A(0) = ASC(A) Mmorise A dans le premier caractre de ST1.

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.

Dim st(10) As String * 3

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 76


Manuel utilisateur CUBLOC

A propos de lespace mmoire ddi aux variables


En ce qui concerne les modules CB220 et CB280, vous disposez de 2 K de mmoire de
donne. Vous ne pourrez pas utiliser toute la mmoire pour vos variables (la mmoire est en
effet galement utilise pour dautres priphriques tels que les AFFICHEURS optionnels
commandes sries ou I2C ainsi que le buffer RS232). Vous disposez en fait denviron 1800
octets pour vos variables et les priphriques et de 80 octets seront ddis aux commandes de
DEBUG. Ainsi lorsque vous utilisez les commandes SET DISPLAY ou OPENCOM, ou que
vous exploitez des sous-routines de type Sub ou Fonction la mmoire restante pour vos
variables sera donc dautant plus rduite.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 77


Manuel utilisateur CUBLOC

Tableaux (matrices)
Le BASIC des CUBLOC peut grer des tableaux (matrices) jusqu 8 dimensions (de 65535
lments max.)

DIM A(20) AS BYTE Dclare tableau 20 lments


DIM B(200) AS INTEGER Dclare tableau avec des variables de type Integer
DIM C(200) AS LONG Dclare tableau avec des variables de type Long
DIM D(20,10) AS SINGLE Dclare tableau 2 D avec variables de type Single
DIM ST1(10) AS STRING * 12 Dclare tableau avec variables de String (chane)

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.

13 * 10 = 130 octets de mmoire de donnes !


(les variables Chanes ncessitent 1 octets en plus)

DIM ST1(10) AS STRING * 12

4*10 * 20 = 800 octets de mmoire de donnes !

DIM D(20,10) AS SINGLE

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 78


Manuel utilisateur CUBLOC

Gestion des bits et des Octets


Les variables de type bit et octet peuvent tre individuellement adress laide des
commandes ci-dessous.

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

A.BIT2 = 1 Place le bit 2 de la variable A 1.


T7
T6
T5
T4
T3
T2
T1
T0
BI
BI
BI
BI
BI
BI
BI
BI

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.

LOWNIB Variable -> NIBBLE 0


NIB0~7 Variable -> NIBBLE 0~7

A.NIB3 = 7 Mmorise 7 en Nibble 3 de A

LONG

NIB7 NIB6 NIB1 NIB0


LOWNIB

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 79


Manuel utilisateur CUBLOC

Byte
Pour dterminer un octet particulier dune variable, les noms suivant peuvent tre utiliss.
(Loctet A est sur 8 bits)

LOWBYTE, BYTE0 Octet 0 de la Variable


BYTE1 Octet 1 de la Variable
BYTE2 Octet 2 de la Variable
BYTE3 Octet 3 de la Variable

A.BYTE1 = &HAB Mmorise &hAB dans loctet 1 de la variable A

LONG BYTE3 BYTE2 BYTE1 BYTE0

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, Donne Word 0 de la variable


WORD0
WORD1 Donne Word 1 de la variable

A.WORD1 = &HABCD Mmorise &hABCD dans la donne word 1 de la variable A

LONG WORD1 WORD0

LOWWORD

Astuce : Vous dsirez accedez 5 bits dune variable ?


Essayez NewVariable = Variable and 0x1F
Ceci aura pour effet de masquer les 5 derniers bits de la variable

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 80


Manuel utilisateur CUBLOC

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.

CONST PI AS SINGLE = 3.14159


CONST WRTTIME AS BYTE = 10
CONST MSG1 AS STRING = ACCESS PORT

Lorsque le type de contante nest pas indiqu, le compilateur BASIC du CBLOC essayera de
dterminer le type de donne le plus appropri:

CONST PI = 3.14159 Dclare PI comme un SINGLE


CONST WRTTIME = 10 Dclare WRTTIME come un Byte
CONST MYROOM = 310 Dclare MYROOM comme Integer (car il dpasse 255).
CONST MSG1 = ACCESS PORT Dclare comme une chane (String)

CON (autre mmthode similaire CONST)


La commande CON peut galement tre utilise pour dclarer les constantes comme suit :

PI CON 3.14159 Dclare PI comme un SINGLE.


WRTTIME CON 10 Dclare WRTTIME come un Byte
MYROOM CON 310 Dclare MYROOM comme Integer (car il dpasse 255).
MSG1 CON ACCESS PORT Dclare comme une chane (String)

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 81


Manuel utilisateur CUBLOC

Constantes de type tableau...


En utilisant des constantes de type tableau, vous pourrez spcifier une liste de nombres au
dbut de votre programme afin de simplifier vos dclarations:

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.

Const Byte DATA1 = ("CUBLOC SYSTEMS")

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.

Des tableaux de variables diverses peuvent tre utiliss:

CONST INTEGER DATA1 = (6000, 3000, 65500, 0, 3200)


CONST LONG DATA2 = (12345678, 356789, 165500, 0, 0)
CONST SINGLE DATA3 = (3.14, 0.12345, 1.5443, 0.0, 32.0)

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)

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 82


Manuel utilisateur CUBLOC

Les chanes peuvent tre utilises comme ci-dessous:

CONST STRING * 6 STRTBL = (COMFILE, BASIC, ERROR, PICTURE)

Configurez la taille de la chane afin quelle soit suprieure la taille de tous les lments de la
liste.

Il nest possible de dclarer que des tableaux une seule dimension.

Comparaison Tableau Constante (tableau)


Stockage Mmoire donnes (SRAM) Mmoire programme (FLASH)
Dure de stockage Pendant lexcution du programme Pendant le tlchargement
Peut tre chang ? Oui Non
Objectif Valeurs modifiables Valeurs non modifiables
Coupure alimentation Disparition donnes Sauvegarde

Exemple de programme :

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 83


Manuel utilisateur CUBLOC

Oprateurs
Lorsque vous utilisez des oprateurs logiques, la table de priorit ci-dessous indique lordre de
traitement effectu par le BASIC du CUBLOC.

Oprateur Explication Type Priorit


^ A la puissance Math La plus haute
*,/,MOD Multiplier, Diviser, MOD Math
+,- Ajouter, Soustraire Math
<<, >> Dcalage gauche, Dcalage drote Comparaison
<, >, <=, >= Plus petit que, Plus grand que, Comparaison
Moins ou gal , plus grand ou gal .
=, <> Egale, Diffrent Comparaison
AND, XOR, OR AND, XOR, OR Logique La plus basse

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:

IF A+1 = 10 THEN GOTO ABC

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.

IF A=1 AND B=1 THEN C=1 if A=1 et B=1 (Opration logique)


IF A=1 OR B=1 THEN C=1 if A=1 ou B=1( Opration logique)

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 84


Manuel utilisateur CUBLOC

Les chanes peuvent tre compares avec le signe =.


Les valeurs ASCII sont compares pour les chanes.

DIM ST1 AS STRING * 12


DIM ST2 AS STRING * 12
ST1 = COMFILE
ST2 = CUBLOC
IF ST1=ST2 THEN ST2 = OK Vrifie si ST1 est gal ST2.

Les oprateurs utiliss dans le langage BASIC des CUBLOC peuvent avoir une signification
lgrement diffrente des autres langage BASIC (voir le tableau ci-dessous).

Opration Math Basic Exemple


Addition + + 3+4+5, 6+A
Soustraction - - 10-3, 63-B
Multiplication X * 2 * 4, A * 5
Division / 1234/3, 3843/A
A la puissance de 53 ^ 5^3, A^2
MOD Reste de mod 102 mod 3

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 85


Manuel utilisateur CUBLOC

Priorit des oprations


Lorsque vous utilisez des oprations multiples, lordre de priorit ci-dessous est utilis :

1) Opration entre parenthses


2) Signe ngatif ()
3) (^)
4) Multiplication, Division, Reste (*, /, MOD)
5) Addition / Soustraction (+,-)
6) dcalage gauche, Dcalage droite (<<, >>)

Exemple de programme :

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 86


Manuel utilisateur CUBLOC

Exemples dexpression des nombres (en bits)


Il existe 3 faons pour exprimer les nombres avec les CUBLOC.
Binaire (2 bits), Dcimal (10 bits) et Hxadecimal (16 bits).

Exemples:

Binaire : &B10001010, &B10101,


0b1001001, 0b1100

Dcimal : 10, 20, 32, 1234

Hexadecimal : &HA, &H1234, &HABCD


0xABCD, 0x1234 Similaire au langage C
$1234, $ABCD Similaire au langage Assembleur

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 87


Manuel utilisateur CUBLOC

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 nom de fichier


Permet dajouter un fichier au code source. Pour les fichiers prsents dans le mme rpertoire
que le fichier source, vous pouvez utilisez la syntaxe ci-dessous :

#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 ).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 88


Manuel utilisateur CUBLOC

#define nom de constante


En utilisant la commande #define, vous pourrez dfinir des constantes avant la compilation.

#define motorport 4
low motorport

Dans lexemple ci-dessus, lexpression motorport sera compil comme lexpression 4.


Vous pouvez aussi utiliser plus simplement CONST comme dans lexemple ci-dessous:

CONST motorport = 4
low motorport

Lexemple suivant utilise #define pour replacer une ligne de commande :

#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 :

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 89


Manuel utilisateur CUBLOC

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 :

- Un programme peu ncessiter lutilisation de diffrents codes en fonction du modle de


CUBLOC utilis (certains CUBLOC disposent de spcificits propres). Ds lors en
utilisant une directive conditionnelle, vous pourrez adapter automatiquement le code de
votre programme en fonction des spcificits de chaque module et disposer dun
programme universel pouvant sadapter tous les modules CUBLOC.

- 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).

Const Device = CB280

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 .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 90


Manuel utilisateur CUBLOC

#elseif
#else
En utilisant les directives #elseif ou #else, vous pourrez crer des tests plus complexes.

Const Device = CB220

Delay 500

#If Device = 220


Debug "Module CB220 utilis !"
#elseif device = 280
Debug " Module CB280 utilis!"
#elseif device = 290
Debug " Module CB290 utilis !"
#elseif device = 1720
Debug " Module CT1720 utilis !"
#endif

#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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 91


Manuel utilisateur CUBLOC

#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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 92


Manuel utilisateur CUBLOC

Pour utiliser uniquement le LADDER


Si vous ne dsirez pas programmer en BASIC, votre application pourra tre entirement
dveloppe en langage LADDER. Toutefois, le programme BASIC devra toutefois comporter
quelques instructions dinitialisation comme indiqu ci-dessous:

Const Device = CB280 ' Slectionnez le type de module CUBLOC utilis

Usepin 0,In,START ' Dclarez les broches utilises en LADDER


Usepin 1,Out,RELAY

Alias M0 = MOTORSTATE ' Dclarez ventuellement des alias pour les Registres
Alias M1 = RELAY1STATE

Set Ladder On ' Dmarrer le LADDER.

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.

Pour utiliser uniquement le BASIC


Programmez simplement en BASIC ! (Le LADDER est dsactiv apr dfaut).

SET LADDER ON Nutilisez pas cette commande.


LADDERSCAN Ni celle-ci.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 93


Manuel utilisateur CUBLOC

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

Des interruptions pour quoi faire ?


La saisie dune touche ou encore larrive de donnes sur le port RS-232 pouvant intervenir
tout moment, il est dans ce cas intressant davoir recours lutilisation des interruptions afin de
ne pas avoir faire surveiller en permanence ces entres dans le programme principal.

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.

Type dInterruption Explanation


On Timer Gnre une interruption intervalle de temps donn
On Int Gnre une interruption lorsquune entre externe est sollicite
On Recv Gnre une interruption lorsque des donnes arrivent sur la liaison RS-232
On LadderInt Gnre une interruption lorsque celle-ci est demande par le LADDER
On Pad Gnre une interruption lorsquun clavier de saisie est sollicit

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 94


Manuel utilisateur CUBLOC

En savoir plus sur les interruptions des modules CUBLOC


Les modules CUBLOC (ainsi que le module CUTOUCH) disposent dun mini-systme
dexploitation qui prend en charge les interruptions. La gestion des interruptions est lgrement
diffrente de celle que lon peu retrouver sur les microcontrleurs standards.

1. Lorsquune interruption A survient, durant lexcution de la sous-routine associe cette


interruption, une nouvelle interruption A ne pourra pas tre nouveau gnre. Mais
une interruption diffrente B par exemple pourra survenir. Afin dtre plus explicite, on
pourra par exemple indiquer que les interruptions de type A et B correspondent
des interruption gnres par On Timer et On Recv .

2. Lorsque linterruption B survient (pendant lexcution de la sous-routine dinterruption


A ), la sous-routine de linterruption B sera immdiatement excute et le programme
principal reviendra linterruption A afin de terminer celle-ci.

3. A la fin de votre routine dinterruption il vous faudra imprativement ajouter une instruction
return (sous peine de dysfonction de votre programme).

4. Il ny a pas de limite sur le nombre dinterruptions, ni mme sur la taille de la routine


dinterruption (sans la limite de lespace mmoire de votre programme bien sr).

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 :

Set Onglobal Off


Delay 100 ' La commande Delay ne sera pas affecte
Set Onglobal On

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.

* Par dfaut, la commande Set Onglobal est active ( ON ).

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.

8. Si vous dclarez une interruption 2 fois, le dernier appel sera effectif.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 95


Manuel utilisateur CUBLOC

Pointeurs utilisant Peek, Poke et Memadr


Lexemple suivant montre comment utiliser les commandes EEWRITE et EEREAD pour lire des
donnes comportant des nombres virgule flottante:

Const Device = CB280


Dim f1 As Single, f2 As Single
f1 = 3.14
Eewrite 0,f1,4
f2 = Eeread(0,4)
Debug Float f2,cr

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.

Const Device = CB280


Dim F1 As Single, F2 As Single
F1 = 3.14
Eewrite 10,Peek(Memadr(F1),4),4
Poke Memadr(F2),Eeread(10,4),4

Debug Float F2,CR

La fentre Debug affichera maintenant 3.14.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 96


Manuel utilisateur CUBLOC

Partage de donnes
Les modules CUBLOC disposent dune mmoire de donne individuelle pour le BASIC et le
LADDER.

BASIC DATA MEMORY LADDER DATA MEMORY

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.

Variables Type de donne Registres du LADDER


systmes
_P Bits _P(0) ~ P(127) Registre P
_M Bits _P(0) ~ P(511) Registre M
_WP Words _WP(0) ~ _WP(7) Registre P (Word Access)
_WM Words _WM(0) ~ _WM(31) Registre M (Word Access)
_T Words _T(0) ~ _T(99) Registre T (Timer)
_C Words _C(0) ~ _C(49) Registre C (Counter)
_D Words _D(0) ~ _D(99) Registre D (Data)

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 .

Par exemple _WP(0) reprsente P0 P15.

Voir galement dautres exemples ci-dessous:

_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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 97


Manuel utilisateur CUBLOC

Utilisation des broches du Ladder en BASIC via commandes ALIAS


Les commandes ALIAS pourront tre utilises depuis le BASIC pour donner des alias aux
Registres du LADDER (tous sauf D). Il vous sera ds lors possible dutiliser ces alias
librement en BASIC ou en LADDER. Ceci est idal pour amliorer la lisibilit de votre
programme.

Usepin 0,In,START
Usepin 1,Out,RELAY
Alias M0 = MOTORSTATE
Alias M1 = RELAY1STATE
Alias T1 = SUBTIMER

RELAY = 0 ' Mettre le port 1 au niveau BAS


MOTORSTATE = 1 ' Mettre le Registre M0 au niveau HAUT. Idem _M(0) = 1.

A = RELAY1STATE ' Mmorise tat de M1 dans la variable A.


B = SUBTIMER ' Mmorise tat de T1 dans la variable B

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 98


Manuel utilisateur CUBLOC

Chapitre 5.
Les principales fonctions
BASIC des CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 99


Manuel utilisateur 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 .

Ralisez alors un double click sur licne Options rgionales .

Cliquez ensuite sur le bouton Personnaliser et slectionnez le . (point) comme


symbole dcimal. Puis validez les modifications en cliquant chaque fois sur le bouton
OK pour referner les fentres.

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 100


Manuel utilisateur CUBLOC

SIN, COS, TAN


Retourne les valeurs Sinus, Cosinus et Tangente. Les CUBLOC utilisent les radians comme
unit. Utilisez des variables de type SINGLE pour une plus grande prcision.

A=SIN B Retourne la valeur du Sinus de B.


A=COS B Retourne la valeur du Cosinus de B.
A=TAN B Retourne la valeur de la Tangente de B.

ASIN, ACOS, ATAN


Retourne les valeurs Arc Sine, Arc Cosine et Arc Tangente. Les CUBLOC utilisent les
radians comme unit. Utilisez des variables de type SINGLE pour une plus grande
prcision.

A=ASIN B Retourne la valeur de lArc Sinus de B.


A=ACOS B Retourne la valeur de lArc Cosinus de B.
A=ATAN B Retourne la valeur de lArc Tangente de B.

SINH, COSH, TANH


Retourne les valeurs Sinus Hyperbolic, Cosinus Hyperbolic et Tangente Hyperbolic.

A=SINH B Retourne la valeur du Sinus Hyperbolic de B.


A=COSH B Retourne la valeur du Cosinus Hyperbolic de B.
A=TANH B Retourne la valeur de la Tangeante Hyperbolic de B.

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

Astuce : Pour le logarithme naturel (Ln), utilisez simplement : A = Log(B) / Log(Exp(1))

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 101


Manuel utilisateur CUBLOC

ABS (ne fonctionne que pour les variables de type LONG)

Dim A As Long, B As Long


B = -1234
A=ABS B ' Retourne |B|.
Debug Dec A ' Affiche 1234

FABS (ne fonctionne que pour les variables de type SINGLE)

Dim A As Single, B As Single


B = -1234.0
A=FABS B ' Retourne |B|.
Debug Float A ' Affiche 1234.00

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 102


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 103


Manuel utilisateur CUBLOC

?
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.

Const Device = cb280


Dim F1 As Single
F1 = 3.14
Debug Float F1,cr ' Affiche "3.14000" et va la ligne

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 104


Manuel utilisateur CUBLOC

Fonctions de gestion de chanes


Ces fonctions permettent de raliser des traitements simplifis sur les chanes.

DP(Variable, Place Decimale, Affichage zro)


Permet de convertir une variable en une chane de reprsentation dcimale.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 105


Manuel utilisateur CUBLOC

HP(Variable, Place Decimale, Affichage zro)


Permet de convertir une variable en une chane de reprsentation hxadcimale.

Si le paramtre Affichage zro est mis 1, des zros remplacent les espaces libres.

DEBUG HP(A,4,0) ' Convertion de A dans une chane de reprsentation hxadcimale


' Rserve 4 emplacements pour laffichage.
' Si A = ABC, alors bABC sera affich.
' (b sera remplac par des espaces .)
DEBUG HP(A,4,1) ' Si A = ABC, alors 0ABC sera affich.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 106


Manuel utilisateur CUBLOC

FP(Variable, Nombre de Digits, Nombre aprs virgule)


Permet de convertir un nombre virgule flottante dans une chane formate avec la possibilit
de slectionner le format daffichage.

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

En utilisant la fonction FP il vous sera possible de dfinir le format daffichage de vos


expressions sur la fentre de Dbug ou sur les afficheurs LCD par exemple.

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).

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 107


Manuel utilisateur CUBLOC

LEFT(Variable, Nb caractres)
Slectionne un nombre dfini de caractres dune chane en partant de la gauche.

DIM ST1 AS STRING * 12


ST1 = CUBLOC
DEBUG LEFT(ST1,4) CUBL sera affich dans la fentre DEBUG.

RIGHT(Variable, Nb caractres)
Slectionne un nombre dfini de caractres dune chane en partant de la droite.

DIM ST1 AS STRING * 12


ST1 = CUBLOC
DEBUG RIGHT(ST1,4) BLOC sera affich dans la fentre DEBUG.

MID(Variable, Position, Nb caractres)


Slectionne un nombre dfini de caractres dune chane en partant dune position donne.

DIM ST1 AS STRING * 12


ST1 = CUBLOC
DEBUG MID(ST1,2,4) UBLO sera affich dans la fentre DEBUG.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 108


Manuel utilisateur CUBLOC

LEN(Variable)
Retourne la longeur dune chane.

DIM ST1 AS STRING * 12


ST1 = CUBLOC
DEBUG DEC LEN(ST1) 6 sera affich car la chane comprend 6 caractres.

STRING(ASCII code, longueur)


Permet de crer une chane de longeur spcifie remplie avec un caractre ASCII donn.

DIM ST1 AS STRING * 12


ST1 = STRING(&H41,5)
DEBUG ST1 AAAAA sera affich dans la fentre DEBUG.
&H41est la valeur ASCII de la lettre A.

SPC(Nb Caractres)
Permet de crer une chane de caractres avec des espaces

DIM ST1 AS STRING * 12


ST1 = SPC(5)
DEBUG A,ST1,A AbbbbbA sera affich dans la fentre DEBUG. b sera des espaces.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 109


Manuel utilisateur CUBLOC

LTRIM(variable Chane)
Enlve tous les espaces gauche dune chane de caractres.

DIM ST1 AS STRING * 12


ST1 = COMFILE
ST1 = LTRIM(ST1)
DEBUG AAA,ST1 AAACOMFILE sera affich dans la fentre DEBUG.
Tous les espaces gauche de COMFILE on t retirs.

RTRIM(variable Chane)
Enlve tous les espaces droite dune chane de caractres.

DIM ST1 AS STRING * 12


ST1 = COMFILE
ST1 = RTRIM(ST1)
DEBUG ST1,TECH COMFILETECH sera affich dans la fentre DEBUG.
Tous les espaces gauche de COMFILE on t retirs.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 110


Manuel utilisateur CUBLOC

VAL(variable Chane)
Conversion de la valeur numrique dune chane.

DIM ST1 AS STRING * 12


DIM I AS INTEGER
ST1 = 123
I = VAL(ST1) 123 est mmoris dans la variable numrique I.

VALSNG(variable Chane)
Conversion de la valeur numrique (avec virgule flottante) dune chane.

DIM ST1 AS STRING * 12


DIM F AS SINGLE
ST1 = 3.14
F = VALSNG(ST1) 3.14 est mmoris dans la variable numrique F.

VALHEX(variable Chane)
Conversion de la valeur hxadcimal dune chane.

DIM ST1 AS STRING * 12


DIM I AS LONG
ST1 = ABCD123
I = VALHEX(ST1) &HABCD123 est mmoris dans la variable I.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 111


Manuel utilisateur CUBLOC

CHR(code ASCII)
Retourne le code ASCII dun caractre.

DIM ST1 AS STRING * 12


ST1 = CHR(&H41)
DEBUG ST1 Affiche A, &H41 est le code ASCII de la lettre A.

ASC(variable String ou Constante)


Retourne le code ASCII converti du premier caractre dune chane.

DIM ST1 AS STRING * 12


DIM I AS INTEGER
ST1 = 123
I = ASC(ST1) &H31 est stock dans la variable I. Le code ASCII du chiffre 1
est &H31 ou 0x31.

NOTE
Seule une variable peut tre utilise lorsque vous exploitez des fonctions de chanes.

DEBUG LEFT(INTEGER,4) Impossible dutiliser une chaine de caractre directement.

ST1 = INTEGER
DEBUG LEFT(ST1,4) Vous devez utiliser une variable pour raliser cette instruction.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 112


Manuel utilisateur CUBLOC

Chapitre 6.
Les librairies BASIC
des CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 113


Manuel utilisateur 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)

Les CUBLOC disposent dentres de convertisseurs Analogiques/Numriques avec une


rsolution de 10 bits et de sorties PWM avec une rsolution de 16 bits. Lutilisateur pourra
utiliser les convertisseurs A/N pour mesurer des tensions analogiques ou utiliser les sorties
PWM pour piloter des moteurs cc ou gnrer des signaux analogiques.

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.

* Note : Pour le CB220, la valeur de AVREF est prdfinie +5 Vcc.

Return value

1023

0
0V 5V Input voltage

Exemple de programme sur un module CB280

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 114


Manuel utilisateur CUBLOC

Les schmas et la table ci-dessous donnent la correspondance des ports/N broches de


conversion Analogique / Numrique en fonction des diffrents modles de CUBLOC.

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.

CB220 CB280 CB290 CT17X0 CB405


Canal A/N 0 Port 0 Port 24 Port 8 Port 0 Port 16
Canal A/N 1 Port 1 Port 25 Port 9 Port 1 Port 17
Canal A/N 2 Port 2 Port 26 Port 10 Port 2 Port 18
Canal A/N 3 Port 3 Port 27 Port 11 Port 3 Port 19
Canal A/N 4 Port 4 Port 28 Port 12 Port 4 Port 20
Canal A/N 5 Port 5 Port 29 Port 13 Port 5 Port 21
Canal A/N 6 Port 6 Port 30 Port 14 Port 6 Port 22
Canal A/N 7 Port 7 Port 31 Port 15 Port 7 Port 23
Canal A/N 8 - - - - Port 32
Canal A/N 9 - - - - Port 33
Canal A/N 10 - - - - Port 34
Canal A/N 11 - - - - Port 35
Canal A/N 12 - - - - Port 36
Canal A/N 13 - - - - Port 37
Canal A/N 14 - - - - Port 38
Canal A/N 15 - - - - Port 39

La commande ADIN ne ralise quune seule conversion (au moment de lexcution de la


commande). En comparaison, la commande TADIN retourne la valeur moyenne de 10
conversions afin de donner une plus grande prcision de la mesure. Il conviendra donc dutiliser
la commande TADIN dans le cadre dapplications ncessitant une grande prcision.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 115


Manuel utilisateur CUBLOC

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

Cette commande ralise la fonction inverse de BIN2BCD.

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

Efface le buffer du canal RS-232 (vous pouvez slectionner la nature du buffer).

Bclr 1,0 ' Efface le canal de rception RS232 N 1


Bclr 1,1 ' Efface le canal dmission RS232 N 1
Bclr 1,2 ' Efface les canaux dmission & de rception RS232 N 1

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 116


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 117


Manuel utilisateur CUBLOC

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).

Par exemple: 3451 en binaire sera reprsent comme suit:

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 118


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 119


Manuel utilisateur CUBLOC

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.

Les schmas ci-dessous reprsente la rpartition des blocs en fonction du modle de


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
BLOCK 0 P3 8 17 P12 BLOCK 1
P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8

S OUT 1 17 V DD TX1 33 49 TTLTX 1


S IN 2 18 V SS RX 1 34 50 TTLRX1
ATN 3 19 RE S AV DD 35 51 AV REF
V SS 4 20 N/C N/C 36 52 P 48
P0 5 21 P 16 P 24 37 53 P 31
P1
P2
6
7
22
23
P 17
P 18
P 25
P 26
38
39
54
55
P 30
P 29 3
0 2
P3 8 24 P 19 P 27 40 56 P 28
P4 9 25 P 20 P 47 41 57 P 32
P5 10 26 P 21 P 46 42 58 P 33
P6 11 27 P 22 P 45 43 59 P 34
P7
P8
12
13
28
29
P 23
P 15 5
P 44
P 43
44
45
60
61
P 35
P 36 4
P9 14 30 P 14 P 42 46 62 P 37

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 120


Manuel utilisateur CUBLOC

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.

BYTEOUT 1,255 Positionne le Bloc 1 255.


les ports 8 15 sont au niveau logique HAUT.

* 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).

A = Checkbf(1) Vrifie la donne dans le buffer de rception

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 121


Manuel utilisateur CUBLOC

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 .

Canal Gamme de comparaison


Canal 0 (compteur rapide) 0 ~ 255
Canal 1 (compteur rapide) 0 ~ 65535

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 .

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 122


Manuel utilisateur CUBLOC

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.

Set Count0 On ' Active le compteur du Canal 0


' (les fonctions PWM 0,1,2 deviennent inutilisables).
Input 14 ' Configure le port P15 en entre (compteur du Canal 0).
R = Count(0) ' Lecture de la valeur du compteur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 123


Manuel utilisateur CUBLOC

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

' Exemple de mesure de frquence des impuslions de sortie canal PWM 0


Const Device = CB280
Dim A as Integer
Input 15
Low 5
Freqout 0,2000
Low 0
On Timer(100) Gosub GetFreq
Do
Loop

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)

Reset (remet 0) le Compteur du Canal spcifi.

COUNTRESET 0 Reset le compteur du Canal 0


COUNTRESET 1 Reset le compteur du Canal 1

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 124


Manuel utilisateur CUBLOC

Dcd
Variable = Source DCD
Variable : Variable servant mmoriser le rsultat (Non String, ni Single).
Source : Valeur source

La commande DCD ralise linverse de la commande NCD.

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.

I = DCD 15 Le rsultat est 3 car 15 = 0b00001111

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 125


Manuel utilisateur CUBLOC

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.

DEBUG DEC? A,CR


DEBUG HEX? A,CR

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 126


Manuel utilisateur CUBLOC

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

DEBUG CHECK VALUE HEX? A, CR

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 127


Manuel utilisateur CUBLOC

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).

Commande Co Explications Exemple dutilisation


de
CLR 0 Efface lcran de DEBUG Debug CLR
HOME 1 Dplace le curseur en haut gauche de la fentre de DEBUG Debug HOME
GOXY 2 Dplace le curseur la position X, Y Debug GOXY, 4, 3
CSLE 3 Dplace le curseur dune position vers la gauche
CSRI 4 Dplace le curseur dune position vers la droite
CSUP 5 Dplace le curseur dune position vers le haut
CSDN 6 Dplace le curseur dune position vers le bas
BELL 7 Gnre un bip sonore sur le PC
BKSP 8 Equivalent de la barre ESPACE
LF 10 Equivalent Line Feed Debug ABC,LF
CLRRI 11 Efface tous les caractres droite du curseur jusqu la fin de la ligne.
CLRDN 12 Efface tous les caractres en bas du curseur
CR 13, Equivalent touche Return (va la ligne suivante) Debug, ABC,CR
10

Vous pouvez utiliser plusieurs variantes de commandes DEBUG.

DEBUG GOXY,5,5,DEC I
DEBUG CLR,TEST PROGRAM

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 128


Manuel utilisateur CUBLOC

Decr
DECR variable
Variable : Variable dcrmenter (Non String, ni Single).

Dcrmente la variable dune unit (similaire A - - en langage C )

DECR A Dcrmente A dune unite.

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.

DELAY 10 Delai denviron 10 ms.


DELAY 200 Delai denviron 200 ms.

A titre didactque , linstruction Delay reviendrait raliser cette sous-routine :

sub delay(dl as long)


dl1 var long
dl2 var integer
for dl1=0 to dl
for dl2=0 to 1
nop
nop
nop
next
next
end sub

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 129


Manuel utilisateur CUBLOC

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]

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 130


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 131


Manuel utilisateur CUBLOC

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.

DTZERO A Dcrment A dune unit.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 132


Manuel utilisateur CUBLOC

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.

Slectionnez la valeur de mux en fonction du tableau ci-dessous:

MUX OPAMP + OPAMP - Multiplicateur Rsolution


0 ADC0 ADC0 10 8 Bits
1 ADC1 ADC0 10 8 Bits
2 ADC0 ADC0 200 7 Bits
3 ADC1 ADC0 200 7 Bits
4 ADC2 ADC2 10 8 Bits
5 ADC3 ADC2 10 8 Bits
6 ADC2 ADC2 200 7 Bits
7 ADC3 ADC2 200 7 Bits
8 ADC0 ADC1 1 8 Bits
9 ADC1 ADC1 1 8 Bits
10 ADC2 ADC1 1 8 Bits
11 ADC3 ADC1 1 8 Bits
12 ADC4 ADC1 1 8 Bits
13 ADC5 ADC1 1 8 Bits
14 ADC6 ADC1 1 8 Bits
15 ADC7 ADC1 1 8 Bits
16 ADC0 ADC2 1 8 Bits
17 ADC1 ADC2 1 8 Bits
18 ADC2 ADC2 1 8 Bits
19 ADC3 ADC2 1 8 Bits
20 ADC4 ADC2 1 8 Bits
21 ADC5 ADC2 1 8 Bits

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 133


Manuel utilisateur CUBLOC

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

Sub Delay2(DL As Integer)


Dim I As Integer
For I = 0 To DL
Next
End Sub

La commande EADIN nexploite pas la rsolution maximale de 10 bits obtenue avec la


commande EADIN. Lorsque vous utilisez les multiplicateurs X1 et X10 vous travaillez
avec une rsolution sur 8 bits. Lorsque vous utilisez des multiplicateurs X8 et x200 vous
travaillez avec une rsolution de 7 bits.

ATTENTION : LOPAMP dispose de caractristiques qui ne lui permettent une lecture


quentre 0,5 V et 4,5 V. Avec le module CUBLOC CB405 , la commande EADIN ne
peut tre exploite quavec les canaux 0 7.

Consultez le tableau ci-dessous pour obtenir la correspondance des canaux de conversion


A/N et des n de port de votre module CUBLOC ou CUTOUCH.

Canal CB220 CB280 CB290 CT17X0 CB405


ADC0 PORT 0 PORT 24 PORT 8 PORT 0 PORT 16
ADC1 PORT 1 PORT 25 PORT 9 PORT 1 PORT 17
ADC2 PORT 2 PORT 26 PORT 10 PORT 2 PORT 18
ADC3 PORT 3 PORT 27 PORT 11 PORT 3 PORT 19
ADC4 PORT 4 PORT 28 PORT 12 PORT 4 PORT 20
ADC5 PORT 5 PORT 29 PORT 13 PORT 5 PORT 21
ADC6 PORT 6 PORT 30 PORT 14 PORT 6 PORT 22
ADC7 PORT 7 PORT 31 PORT 15 PORT 7 PORT 23

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 134


Manuel utilisateur CUBLOC

Eeread( )
Variable = EEREAD (Addresse, NbOctet)
Variable : Variable servant mmoriser le rsultat (Non String, ni Single).
Addresse : 0 4095
NbOctet : Nombre doctets lire (1 4)

Lecture de donnes depuis une adresse en EEPROM.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 135


Manuel utilisateur CUBLOC

Eewrite
EEWRITE Addresse, Data, NbOctet
Addresse : 0 4095
Data : Variable crire en EEprom (Type Long ou infrieur)
NbOctet : Nombre doctets crire (1 4)

Mmorise des donnes une adresse spcifique de la mmoire EEPROM.

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.

Attention pensez que la dure dcriture en EEPROM ncessite gnralement 3 5


millisecondes.

La lecture de donnes depuis lEEPROM ne dispose pas de contrainte temporelle.

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).

Si vous envisagez de dvelopper une application ncessitant des stockages de donnes


frquents et nombreux, il conviendra de ne pas utiliser la mmoire EEProm, mais plutt la
mmoire SRAM sauvegarde par pile (comme cela est possible sur le module CB290).

Le tableau ci-dessous prsente un petit comparatif entre les mmoire de type SRAM et
EEPROM.

Type Battery Backup SRAM EEPROM


Rtention des Quelques heures 1 an 40 ans
donnes (en fonction de la capacit de la pile)
Nombre de cycles Infini Environ 100,000
dcritures max.
Dure dcriture Quasiment immdiat 3 to 5 ms
Utilisation Systme dacquisition (type data-looging) Mmoirisation de petite quan-
tit de donnes (paramtres
dun systme par exemple)

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 136


Manuel utilisateur CUBLOC

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)

La commande EKEYPAD permet dtendre les possibilits de la commande KEYPAD afin de


pouvoir lire jusqu 64 touches. 2 blocs de ports devront ce titre tre mis profit. Le bloc de
port dentres (avec rsistances de tirage ramener au +5 V) et le bloc de port de sorties
devront tre slectionns indpendamment.

Si le clavier dispose de moins de 64 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 non utiliss du bloc de sortie devront rest en lair et ne devront en
aucun cas tre utiliss pour une autre fonction.

Lexemple ci-dessous montre comment on utilise le Bloc 0 en entre et le Bloc 1 en sortie.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 137


Manuel utilisateur CUBLOC

For...Next

FORNEXT ralisera une boucle sur elle-mme pendant un nombre de fois donn.

For Variable = Valeur dbut To Valeur fin [Pas IncrmentaI]


Commandes
[Exit For]
Next

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

For K=10 To 0 Step 1 Dcrmentation de 10 jusqu 0.


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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 138


Manuel utilisateur CUBLOC

Exemples de programmes :

Const Device = CB280


Dim A As Integer
For A=1 To 9
Debug "3 * "
Debug Dec A
Debug " = "
Debug Dec 3*A,Cr
Next

Const Device = CB280


Dim A As Integer, B As Integer
For A=2 To 9
For B=1 To 9
Debug Dec A," * "
Debug Dec B
Debug " = "
Debug Dec A*B,Cr
Next
Debug Cr
Next

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 139


Manuel utilisateur CUBLOC

Freepin
FREEPIN Port
Port : N du port du CUBLOC

Permet la libre configuration du Port en Ladder en utilisant la commande Usepin en BASIC.

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 140


Manuel utilisateur 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.

ValFreq Frquence ValFreq Frquence


1 1152 KHz 200 11.52 KHz
2 768 kHz 1000 2.3 KHz
3 576 KHz 2000 1.15 KHz
4 460.8KHz 3000 768 Hz
5 384 KHz 4000 576 Hz
10 209.3 KHz 10000 230 Hz
20 109.7 KHz 20000 115.2 Hz
30 74.4 KHz 30000 76.8 Hz
100 22.83 KHz 65535 35.16 Hz

Il vous est galement possible de calculer vous-mme la frquence en fonction de la valeur de


ValFreq grce la formule ci-dessous.

ValFreq = 2304000 / frquence dsire

Avant de pouvoir gnrer une frquence, il vous faut le port PWM en sortie. Pour stopper le
signal, vous pouvez utiliser la commande PWMOFF.

Voir lexemple ci-dessous:

Const Device = cb280


Dim i As Integer
Low 5 Configure la broche 5 en sortie (et au niveau bas).
Freqout 0,10 Gnre une frquence de 209.3 Khz
Do Boucle infinie
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 141


Manuel utilisateur CUBLOC

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.

Note Octave 2 Octave 3 Octave 4 Octave 5


A 20945 10473 5236 2618
Bb 19770 9885 4942 2471
B 18660 9330 4665 2333
C 17613 8806 4403 2202
Db 16624 8312 4156 2078
D 15691 7846 3923 1961
Eb 14811 7405 3703 1851
E 13979 6990 3495 1747
F 13195 6597 3299 1649
Gb 12454 6227 3114 1557
G 11755 5878 2939 1469
Ab 11095 5548 2774 1387

Freqout 0,5236 Note A en Octave 4(440Hz)


Freqout 0,1469 Note G en Octave 5

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 142


Manuel utilisateur CUBLOC

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.

Const Device = cb280


Dim A as Byte
Opencom 1,115200,3,50,10
On Recv1 Gosub GOTDATA
Do
Do while In(0) = 0
Loop ' Attend jusqu ce quun BP connect sur P0 soit sollicit
Put 1,asc("H"),1
Put 1,asc("E"),1
Put 1,asc("L"),1
Put 1,asc("L"),1
Put 1,asc("O"),1
Put 1,13,1 ' HELLO + Chr (13) + Chr (10)
Put 1,10,1
Do while In(0) = 1
Loop
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 143


Manuel utilisateur CUBLOC

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.

Const Device = cb280


Dim A(10) As Byte
Opencom 1,115200,3,50,10
Set Until 1,8
On Recv1 Gosub GOTDATA
Do
Do While In(0) = 0
Loop ' Attend jusqu ce quun BP connect sur P0 soit sollicit
Putstr 1,"CUBLOC",Cr
Do While In(0) = 1
Loop
Loop

GOTDATA:
Geta 1,A,8
Debug A(0),A(1),A(2),A(3),A(4),A(5),A(6),A(7)
Return

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 144


Manuel utilisateur CUBLOC

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.

Dim A(10) As Byte


Opencom 1,19200,0,50,10
Geta2 1,A,20,10 ' Lecture jusqu ce que le caractre ASCII 10 soit trouv ou que
20 octets aient t reus.

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 145


Manuel utilisateur CUBLOC

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.

Const Device = CB280


Opencom 1,115200,3,80,20
Set Modbus 1,9
Dim A(20) As Byte
Dim B As Integer
Ramclear
Usepin 0,Out
Usepin 9,Out

Set Ladder On

A(0) = 9
A(1) = 2
A(2) = 3
A(3) = 0
A(4) = 10
A(5) = 23

Getcrc B,A,6 'Nom du tableau


Debug Hex B,Cr

* Utilisez uniquement un tableau de type Byte avec cette commande

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 146


Manuel utilisateur CUBLOC

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.

Const Device = cb280


Dim A As String * 10
Opencom 1,115200,3,50,10
Set Until 1,8
On Recv1 Gosub GOTDATA
Do
Do While In(0) = 0
Loop ' Attend jusqu ce quun BP connect sur P0 soit sollicit
Putstr 1,"CUBLOC",Cr
Do While In(0) = 1
Loop
Loop

GOTDATA:
A=Getstr(1,8)
Debug A
Return

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 147


Manuel utilisateur CUBLOC

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

La commande GETSTR2 sutilise de la mme faon que la commande GETSTR 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 GETSTR.

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 148


Manuel utilisateur CUBLOC

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

A propos des tiquettes


Une tiquette sera dfinie en ajoutant la fin le caractre :. Ds lors, il vous sera possible
dy faire rfrence avec les instructions GOTO ou GOSUB afin que votre programme puisse
sy rendre .

ADD_VALUE:
LINKPOINT:

Une tiquette ne doit par contre pas utiliser de mots ou constantes rservs, ni de
chiffre et encore moins contenir despace.

Ci-dessous quelques enxemple dtiquettes quil ne faut pas utiliser:

Ladder: Constante rserve (Problme)


123: Etiquette avec des nombre (Problme).
Aboot 10: Etiquette avec un espace (Problme).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 149


Manuel utilisateur CUBLOC

Accs la mmoire HEAP du module CB405


La mmoire HEAP (uniquement disponible sur le module CUBLOC CB405 ) peut tre
accde depuis ladresse 0 jusqu 56831 (octet par octet) de 0 jusqu &HDDFF en hex. Vous
disposez ainsi de prs de 55 K de mmoire. Cette mmoire est idale pour stocker de grande
quantit de donnes (graphiques, table de temprature, etc). Avec une sauvegarde par pile
externe (non livre) la mmoire pour disposer dune sauvegarde en cas de coupure
dalimentation.

55K bytes
0000

4K bytes
0000
&HDDFF &HFFF

Heap Memory EEPROM Memory

Il existe 5 commandes donnant accs la mmoire HEAP. Ces commandes ne fonctionnent


que sur le CB405 et quavec le logiciel Cubloc Studio version 2.0.x et suprieur.

Commande Syntaxe Fonctionnalit


HEAPCLEAR Heapclear Efface la totalit de la mmoire HEAP
HREAD Variable = HREAD(Adresse, Long) Lecture dun nombre doctets (Long) depuis la
mmoire HEAP ladresse (Adresse) et stockage
dans une Variable
HWRITE HWRITE Adresse, Variable, Long Ecriture dun nombre doctets (Long) dune Variable
dans la mmoire HEAP ladresse (Adresse)
HEAPW HEAPW Adresse, Variable Mmorise un octet dans la mmoire HEAP
ladresse (Adresse)
HEAP Variable = HEAP(Adresse) Lecture dun octets depuis la mmoire HEAP
ladresse (Adresse) et stockage dans une Variable

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)

Cette commande permet de lire de 1 4 octets la fois depuis la mmoire HEAP.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 150


Manuel utilisateur CUBLOC

Hwrite( )
HWRITE Adresse, Donne, Long
Adresse : adresse dans la mmoire HEAP
Donne : Constante ou variable contenant la donne
Long : Nombre doctets crire

Cette commande permet dcrire des donnes dans la mmoire HEAP.

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.

Commande Type de Caractristiques


mmoire
EEWRITE, EEPROM La sauvegarde (en cas de coupure dalimentation) des
EEREAD donnes mmorises seffectue sans pile externe

La commande EEWRITE ncessite un miniumum de 5 ms


pour tre ralise

Vous ne disposez que de 4 K de mmoire votre disposition


HREAD, SRAM La sauvegarde (en cas de coupure dalimentation) des
HWRITE donnes mmorises ncessite une pile externe

La commande HWRITE ncessite un miniumum de 20 S


pour tre ralise

Vous disposez 55 K de mmoire votre disposition

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 151


Manuel utilisateur CUBLOC

Heapclear
HEAPCLEAR

Met toute la mmoire HEAP (les 55 K) la valeur 0

Heap( )
Variable = HEAP (Adresse)
Variable : Variable pour le stockage du rsultat
Adresse : adresse dans la mmoire HEAP

Cette commande permet de lire de 1 octet depuis la mmoire HEAP.

Heapw
HEAPW Adresse, Donne
Adresse : adresse dans la mmoire HEAP
Donne : constante ou variable avec la donne sauvegarder (Byte uniquement)

Cette commande permet dcrire 1 octet dans la mmoire HEAP.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 152


Manuel utilisateur CUBLOC

A propos de ladressage de la mmoire HEAP


Ladressage de la mmoire Heap est accessible octet par octet. Si vous dsirez stocker une
variable de type Long , vous mmoriserez alors 4 octets la fois et 4 emplacements
mmoires seront monopoliss.

HWRITE 0, &H1234ABCD, 4

0 CD
1 AB
2 34
3 12

La table ci-dessus reprsente les 4 emplacements mmoire utiliss pour le stockage de la


variable de type LONG . Ds lors, il vous faudra tre vigilent dans la gestion des adresses
de votre mmoire Heap afin dviter que des donnes ne se chevauchent (comme cest le
cas dans le petit exemple de code ci-dessous).

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 .

Programme de dmo montrant lutilisation de la mmoire Heap

Const Device = CB405


Dim A As Byte
Dim I As Long,J As Long

I = &HABCD1234
Heapclear
Hwrite 0,I,4
Do
Heapw 56830,100
Heapw 56831,123

Debug Dec Heap(56830),Cr


Debug Dec Heap(56831),Cr
J = Hread(0,4)
Debug Hex J,Cr
Delay 100
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 153


Manuel utilisateur CUBLOC

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).

OUTPUT 8 Configure le Port 8 en sortie.


HIGH 8 Applique un niveau logique HAUT (+5 V) sur le Port 8.

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 154


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 155


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 156


Manuel utilisateur CUBLOC

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):

IF I2CWRITE(DATA)=1 THEN GOTO ERR_PROC

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)

La transmission dun octet ncessite environ 60 s


Consultez le chapitre A propos du Bus I2C pour plus dinfos.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 157


Manuel utilisateur CUBLOC

If..Then..ElseifEndif
Vous pouvez utiliser la commande IfThenElseif...ElseEndIf afin de raliser des actions
conditionnes dans votre programme.

If Condition1 Then [Expression1]


[Expression2]
[Elseif Condition2 Then
[Expression3]]
[Else
[Expression4]]
[End If]

Exemple N 1 de rdaction possible


If A<10 Then B=1

Exemple N 2 de rdaction possible


If A<10 Then B=1 Else C=1

Exemple N 3 de rdaction possible


If A<10 Then * Lorsque vous utilisez plus dune ligne,
B=1 * ne mettez pas dexpression aprs Then.
End If

Exemple N 4 de rdaction possible


If A<10 Then
B=1
Else
C=1
End If

Exemple N 5 de rdaction possible Exemple N 6 de rdaction possible


If A<10 Then If A<10 Then
B=1 B=1
Elseif A<20 Then Elseif A<20 Then
C=1 C=1
End If Elseif A<40 Then
C=2
Else
D=1
End If

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 158


Manuel utilisateur CUBLOC

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.

Incrmente la variable dune unit.

INCR A Incrmente A dune unit.

Input
INPUT Port
Port : Port du module CUBLOC (0 255)

Configure le Port spcifie en enre haute impdance (High-Z).


Toutes les entres des CUBLOC, sont configures en entres haute impdance la mise
sous tension du module. Ceci signifie que la rsistance dentre est si leve, que le niveau
nest jamais HAUT, ni BAS.

INPUT 8 Configure le Port 8 en entre haute impdance.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 159


Manuel utilisateur CUBLOC

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.

Si vous utilisez une valeur de 10 pour le paramtre dureeantirebond alors le module


CUBLOC vrifiera quun tat soit stable lentre de la broche pendant environ 10 ms (cette
dure est la valeur typique utiliser).

A = KEYIN(1,10) Lecture dune entre avec filtrage anti-rebond.

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.

Si vous utilisez une valeur de 10 pour le paramtre dureeantirebond alors le module


CUBLOC vrifiera quun tat soit stable lentre de la broche pendant environ 10 ms (cette
dure est la valeur typique utiliser).

A = KEYINH(1,10) Lecture dune entre avec filtrage anti-rebond.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 160


Manuel utilisateur CUBLOC

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

A = KEYPAD(0) Lecture de ltat du clavier via le bloc 0

Si aucune touche nest sollicite, le nombre 255 sera retourn. A linverse le code de la touche
sollicit sera retourn.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 161


Manuel utilisateur CUBLOC

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 .

Const Device = CB280 ' Dclaration du type de CUBLOC utilis


Usepin 0,In,START ' Dclaration des Ports
Usepin 1,In,RESETKEY
Usepin 2,In,BKEY
Usepin 3,Out,MOTOR
Alias M0=RELAYSTATE ' Alias
Alias M1=MAINSTATE
Do
LadderScan
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 162


Manuel utilisateur CUBLOC

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)

OUTPUT 8 Configure le Port 8 en sortie.


LOW 8 Met le Port 8 au niveau logique BAS (0V).

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 163


Manuel utilisateur CUBLOC

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.

I = NCD 0 ' Rsultat 00000001 =1


I = NCD 1 ' Rsultat 00000010 =2
I = NCD 2 ' Rsultat 00000100 =4
I = NCD 3 ' Rsultat 00001000 =8
I = NCD 4 ' Rsultat 00010000 = 16
I = NCD 5 ' Rsultat 00100000 = 32
I = NCD 6 ' Rsultat 01000000 = 64
I = NCD 7 ' Rsultat 10000000 = 128

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 164


Manuel utilisateur CUBLOC

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.

IMPORTANT : Le module CB220 ne dispose pas dentre dinterruption externe.

Rising Edge Falling Edge

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 165


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 166


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 167


Manuel utilisateur CUBLOC

On Pad Gosub
ON PAD GOSUB Etiquette

Les modules CUBLOC disposent de la possibilit de pouvoir piloter un module optionnel de


gestion de clavier. Ce module se prsente sous la forme dune petite platine lectronique
conue pour recevoir diffrents types de claviers matrics et pour communiquer ltat de leurs
touches au module CUBLOC via une liaison 4 fils (de type esclave SPI). Le recours cette
platine optionnelle permet dune part dconomiser le nombre d E/S ncessaire la gestion
dun du clavier et dautre part de pouvoir gnrer des interruptions sur le CUBLOC suite la
sollicitation des touches du clavier (voir commande SET PAD pour plus dinfo).

La commande ON PAD gnrera un saut une routine dinterruption tiquette lorsque la


quantit de donnes prsente dans le buffer du module optionnel de gestion de clavier aura t
atteinte (selon la valeur que vous aurez fixe dans la commande SET PAD).

Utilisez imprativement une commande Return la fin de la sous-routine dinterruption.

Const Device = Ct1720


Dim TX1 As Integer, TY1 As Integer
Contrast 450
Set Pad 0,4,5
On Pad Gosub GETTOUCH
Do
Loop

GETTOUCH:
TX1 = Getpad(2)
TY1 = Getpad(2)
Circlefill TX1,TY1,10
Pulsout 18,300
Return

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 168


Manuel utilisateur CUBLOC

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.

Dim A(5) As Byte


Opencom 1,19200,0, 100, 50
On Recv1 gosub DATARECV_RTN ' Saute DATARECV_RTN lorsque des donnes
Do ' arrivent sur le port RS232 du canal 1
Loop ' Boucle sans fin

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 169


Manuel utilisateur CUBLOC

On Timer
ON TIMER( intervalle ) GOSUB tiquette
Intervalle : Intervalle dintrruption 1 = 10 ms, 2 = 20 ms65535 = 655350 ms
Peu prendre les valeurs 1 65535

La commande ON TIMER permet de gnrer des interruptions intervalles rguliers afin de


pouvoir raliser cycliquement une sous-routine. Il vous faut pour ce faire indiquer dans la
commande le nom de la sous-routine raliser et lintervalle de temps entre chaque
interruptions.

On TIMER(100) Gosub TIMERTN


Dim I As Integer

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 170


Manuel utilisateur CUBLOC

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.

Les modules CUBLOC disposent de 2 ou 4 canaux de communication RS232 (suivant les


modles). Le canal 0 est rserv pour le tlchargement/monioring/dbug (toutefois lutilisateur
pourra galement utiliser ce dernier si le dbug et le monitoring ne sont pas ncessaire).

Vous trouverez ci-dessous les diffrents dbits supports par les modules CUBLOC:

2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200, 230400

Pour le paramtre protocole , vous pouvez vous rfrer au tableau ci-dessous:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0


Parit Stop Bit Bit # of Bits
0 0 = Aucune 0=1 bit de Stop 0 0 = 5 bits
0 1 = Reserv* 1=2 bit de Stop 0 1 = 6 bits
1 0 = Pair 1 0 = 7 bits
1 1 = Impair 1 1 = 8 bits

Le tableau ci-dessous montre les configurations les plus utilises et les valeurs associes du
paramtre protocole calcul par rapport au tableau ci-dessus.

Bits Parit Bit de Stop Valeur du paramtre protocole utilser


8 AUCUNE 1 3
8 PAIR 1 19 (Hex = 13)
8 IMPAIR 1 27 (Hex = 1B)
7 AUCUNE 1 2
7 PAIR 1 18 (Hex = 12)
7 IMPAIR 1 26 (Hex = 1A)

OPENCOM 1, 19200, 3, 30, 20 Configure communication en 8-N-1

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 171


Manuel utilisateur CUBLOC

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).

Attention, il vous faut toutefois utiliser un seul type de digal la fois.

+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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 172


Manuel utilisateur CUBLOC

Comment utiliser les ports RS232 sur le module CB405 ?


Le tableau ci-dessous indique la correspondance des Ports du module CB405 et de ses
ports de communication RS232 (au niveau logique TTL 0 / 5 V).

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 173


Manuel utilisateur CUBLOC

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.

OUT 8,1 Applique un niveau logique HAUT sur le Port 8.

OUT 8,0 Applique un niveau logique BAS sur le Port 8.

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.

OUTPUT 8 Configure le Port 8 pour fonctionner en sortie.

Vous pouvez galement (et de prfrence) utiliser les commandes HIGH et LOW pour dfinir un
Port en sortie.

LOW 8 Place un niveau logique BAS sur le Port 8.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 174


Manuel utilisateur CUBLOC

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

Commande quivalente la commande DELAY

Peek( )
Variable = PEEK (Adresse, Long)
Variable : Variable servant mmoriser le rsultat
Adresse : Adresse RAM
Long : Nb doctets lire (1 4 )

Lecture dun nombre doctets de donnes partir dune adresse en RAM

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 175


Manuel utilisateur CUBLOC

Poke
POKE Adresse, Valeur, Long
Addrese : Adresse RAM
Valeur : Variable servant mmoriser le rsultat
Long : Nb doctets crire (1 4)

Ecriture dun nombre doctets de donnes partir dune adresse en RAM.

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.

Const Device = CB280


Dim F1 As Single, F2 As Single
F1 = 3.14
Eewrite 10,Peek(Memadr(F1),4),4
Poke Memadr(F2),Eeread(10,4),4

Debug Float F2,CR

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 176


Manuel utilisateur CUBLOC

Pulsout
PULSOUT Port, Periode
Port : Port de sortie ( 0 255)
Periode : Dure de limpulsion (1 65535 )

Cette sous librairie vous pemettra de gnrer une impulsion.

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

sub pulsout(pt as byte, ln as word)


dim dl1 as integer
reverse pt
for dl1=0 to ln
next
reverse pt
end sub

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 177


Manuel utilisateur CUBLOC

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.

IF BFREE(1,1) > 2 THEN Si le buffer dispose dau moins 2 octets de libre


PUT 1,A,2
END IF

La commande BFREE() vrifie combien doctets de libre le buffer dispose.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 178


Manuel utilisateur CUBLOC

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.

Les donnes du tableau seront envoyes partir du premier lment.

Dim A(10) As Byte


Opencom 1,19200,0,50,10
Puta 1,A,10 Envoi de 10 lments du tableau A

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).

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 179


Manuel utilisateur CUBLOC

Putstr
PUTSTR canal, data
canal : canal RS232 (0 3 selon module CUBLOC utilis)
Data : Chane de donnes (variable ou constante)

Envoie une chane de donnes sur le canal RS232.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 180


Manuel utilisateur CUBLOC

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

LOW 5 Configure le port 5 en sortie avec un niveau logique BAS.


PWM 0,200,1024 Gnre un signal PWM de rsolution 10 bits avec un niveau haut
de 200 et une dure totale de 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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 181


Manuel utilisateur CUBLOC

Pwmoff
PWMOFF Canal
Canal : Canal PWM ( 0 15 )

Stop le signal de sortie PWM du canal spcifi.

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.

SOUT 1 17 VDD TX1 33 49 TTLTX1


SIN 2 18 VSS RX 1 34 50 TTLRX 1
ATN 3 19 RE S AV DD 35 51 AV RE F
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 PWM3 P27 40 56 P28
P4 9 25 P20 PWM4 P47 41 57 P32
PWM0 P5 10 26 P21 PWM5 P46 42 58 P33
PWM1 P6 11 27 P22 P45 43 59 P34
PWM2 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

Le tableau ci-dessous donne la correspondance des Ports avec les signaux PWM.

Canal PWM CB220 CB280 CB290 CT17X0 CB405


PWM0 PORT 5 PORT 5 PORT 5 PORT 8 PORT 5
PWM1 PORT 6 PORT 6 PORT 6 PORT 9 PORT 6
PWM2 PORT 7 PORT 7 PORT 7 PORT 10 PORT 7
PWM3 PORT 19 PORT 89 PORT 11 PORT 27
PWM4 PORT 20 PORT 90 PORT 12 PORT 28
PWM5 PORT 21 PORT 91 PORT 13 PORT 29
PWM6 PORT 11
PWM7 PORT 12
PWM8 PORT 13
PWM9 PORT 51
PWM10 PORT 52
PWM11 PORT 53

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 182


Manuel utilisateur CUBLOC

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.

OUTPUT 8 Configure le Port 8 en sortie.


LOW 8 Place le Port 8 au niveau logique BAS.
REVERSE 8 Inverse le niveau logique du Port 8 -> Passe HAUT.

Rnd( )
Variable = RND(0)

La commande RND() gnre un nombre pseudo alatoire. Ce nombre (compris entre 0 et


65535) sera stock dans la variable. Le nombre lintrieur des parenthses de la commande
RND () n pas dimportance.

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 183


Manuel utilisateur CUBLOC

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.

Select Case Variable


[Case Value [,Value],
[Statement 1]]
[Case Value [,Value],
[Statement 2]]
[Case Else
[Statement 3]]
End Select

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 184


Manuel utilisateur CUBLOC

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).

En savoir plus sur le mode Debug


Correctement utilis, le mode Dbug vous permettra de dvelopper vos applications encore
plus facilement et rapidement en vous permettant didentifier et de corriger efficacement vos
bugs ou encore de simuler la prsence dun afficheur LCD. Vous trouverez ci-dessous
quelques unes des possibilits du mode Dbug :

1) Vrifier si le programme a effectu un Reset


Il peut tre quelquefois intressant de vrifier si le programme na pas ralis un RESET (cas
pouvant arriver si vous utilisez une mauvaise structure dans votre code). Mettez alors
simplement une commande de DEBUG signifiant que le CUBLOC a effectu un RESET en
dbut de programme. Si le message apparat plus dune fois aprs lexcution du programme,
cest que le CUBLOC a effectu nouveau un RESET ( vous de vrifier si cela est voulu ou
pas dans votre application !).

Const Device = CB280


Debug "==========Reset========="
Do
High 0
Delay 200
Low 0
Delay 200
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 185


Manuel utilisateur CUBLOC

2) Vrifier si le programme passe bien un endroit particulier


Mettez simplement une commande de DEBUG signifiant que le CUBLOC passe cet
endroit et contrler la progression du programme sur lcran de DEBUG du PC.

Const Device = CB280


Do
High 0
Delay 200
Low 0
Delay 200
Loop
Debug "Passe cet endroit !"

Dans cet exemple le message ne saffichera jamais car le CUBLOC est dans une boucle do
Loop sans fin.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 186


Manuel utilisateur CUBLOC

3) Simulez un cran LCD


Vous pouvez simuler un cran LCD en utilisant le terminal de DEBUG. Utilisez simplement les
commandes goxy, XX, YY pour positionner le pointeur du LCD sur lcran de Dbug.

Utilisez la commande Debug CLR pour effacer lcran de Dbug du PC.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 187


Manuel utilisateur CUBLOC

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 188


Manuel utilisateur CUBLOC

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.

SET INT0 0 Configure pour gnration dinterruption sur front descendant.

S OUT 1 17 V DD TX1 33 49 TTLTX1


S IN 2 18 V SS RX 1 34 50 TTLRX 1
ATN 3 19 RE S AV DD 35 51 AV REF
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 P 27 40 56 P 28
P4 9 25 P 20 INT0 P 47 41 57 P 32
P5 10 26 P 21 INT1 P 46 42 58 P 33
P 45 43 59 P 34
P6 11 27 P 22 INT2
P 44 44 60 P 35
P7 12 28 P 23 INT3
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

Set Ladder on/off


SET LADDER On[/Off]

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.

Const Device = CB280 ' Dclaration du type de CUBLOC utilis

Usepin 0,In,START ' Dclaration des Ports


Usepin 1,In,RESETKEY
Usepin 2,In,BKEY
Usepin 3,Out,MOTOR

Alias M0=RELAYSTATE ' Alias


Alias M1=MAINSTATE
Set Ladder On ' Start Ladder

Do
Loop ' Boucle sans fin en BASIC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 189


Manuel utilisateur CUBLOC

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.

Opencom 1,115200,3,80,80 Configurez une taille de buffer de rception dau


moins 50 octets.
Set Modbus 0,1 ' Mode ASCII, Adresse esclave = 1

Aprs cette commande, le module CUBLOC rpondra automatiquement. Le module


CUBLOC supporte les commandes MODBUS 1,2,3,4,5,6,15 et 16.

Commande Nom de la commande


01, 02 Bit Read
03, 04 Word Write
05 1 Bit Write
06 1 Word Write
15 Multiple Bit Write
16 Multiple Word Write

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 190


Manuel utilisateur CUBLOC

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

SET ONGLOBAL OFF Dsactive TOUTES les interruptions.

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]

Cette commande active (ON) ou dsactive (OFF) individuellement la possibilit de pouvoir


prendre en compte les interruptions externes. Le N de linterruption doit tre indiqu dans la
commande. Par exemple ONINT1 est utilis pour linterruption 1.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 191


Manuel utilisateur CUBLOC

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.

Voir aussi la commande On ladderint qui vous permettra de configurer le mode de


dclenchement des interruptions.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 192


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 193


Manuel utilisateur CUBLOC

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.

Const device = cb290


Set outonly on
Low 24

Modle de CUBLOC / CUTOUCH Port utilisables en sortie uniquement


CB290 P24 P55
CT1720 / CT1721 P24 P55

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 194


Manuel utilisateur CUBLOC

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)

Les CUBLOC disposent de la possibilit de pouvoir piloter un module optionnel de gestion de


clavier. Ce module se prsente sous la forme dune petite platine lectronique conue pour
recevoir diffrents types de claviers matrics et pour communiquer ltat de leurs touches au
module CUBLOC via une liaison 4 fils (de type esclave SPI). Le recours cette platine
optionnelle permet dune part dconomiser le nombre d E/S ncessaire la gestion dun
du clavier et dautre part de pouvoir gnrer des interruptions sur le CUBLOC suite la
sollicitation des touches du clavier.

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

TOUCH PAD CUBLOC


CONTROLLER

Les ports P0 P3 seront monopoliss pour assurer la communication entre le CUBLOC et le


module optionnel de gestion de clavier.
SOUT 1 24 VIN
SIN 2 23 VSS
ATN 3 22 RES
VSS 4 21 VDD
SS P0 5 20 P15
SCK P1 6 19 P14
MOSI P2 7 18 P13
MISO P3 8 17 P12
P4 9 16 P11
P5 10 15 P10
P6 11 14 P9
P7 12 13 P8

SOUT 1 17 VDD TX1 33 49 TTLTX1


SIN 2 18 VSS RX1 34 50 TTLRX1
ATN 3 19 RES AVDD 35 51 AVREF
VSS 4 20 N/C N/C 36 52 P48
SS P0 5 21 P16 P24 37 53 P31
SCK P1 6 22 P17 P25 38 54 P30
MOSI P2 7 23 P18 P26 39 55 P29
MISO 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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 195


Manuel utilisateur CUBLOC

Le paramtre Packet correspond au nombre de donnes aprs lesquelles une interruption


sera dclenche sur le CUBLOC. Par exemple si le module de gestion de clavier ncessite la
rception de 4 octets avant de gnrer une interruption, alors le paramtre Packet devra
tre configur avec la valeur 4.

La paramtre NbDonnee correspond la taille maxi du buffer de rception. La taille de ce


buffer doit tre suprieur dau moins un octet par rapport la taille du paramtre Packet
(NbDonne = Packet + 1). Une capacit importante du paramtre NbDonnee vous donnera
essentiellement plus de temps pour exploiter la routine dinterruption. La taille gnralement
utilise pour le buffer doit tre de lordre de 5 10 fois suprieur celle du paramtre
Packet .

Le paramtre Mode permet de configurer le mode de rception des donnes (consultez le


tableau ci-dessous pour plus dinfos).

Mode Valeur Bit Pattern Diagrame


LSB en premier &H20 0010 xxxx
MSB en premier &H00 0000 xxxx

SCK Low-Edge Triggered &H08 xxxx 1xxx


SCK High-Edge Triggered &H00 xxxx 0xxx

Sampling aprs SCK &H04 xxxx x1xx


Sampling avant SCK &H00 xxxx x0xx "0" "1"

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

La commande Set Pad configure automatiquement le fonctionnement des ports P0 P3 (vous


naurez donc pas configurer ces derniers).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 196


Manuel utilisateur CUBLOC

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

Pour le paramtre protocole , vous pouvez vous rfrer au tableau ci-dessous:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0


Parit Stop Bit Bit # of Bits
0 0 = Aucune 0=1 bit de Stop 0 0 = 5 bits
0 1 = Reserv* 1=2 bit de Stop 0 1 = 6 bits
1 0 = Pair 1 0 = 7 bits
1 1 = Impair 1 1 = 8 bits

Le tableau ci-dessous montre les configurations les plus utilises et les valeurs associes du
paramtre protocole calcul par rapport au tableau ci-dessus.

Bits Parit Bit de Stop Valeur du paramtre protocole utilser


8 AUCUNE 1 3
8 PAIR 1 19 (Hex = 13)
8 IMPAIR 1 27 (Hex = 1B)
7 AUCUNE 1 2
7 PAIR 1 18 (Hex = 12)
7 IMPAIR 1 26 (Hex = 1A)

Opencom 1, 19200, 3, 30, 20 ' Ouvre communication Rs232 sur le canal 1


Set Rs232 1, 115200, 19 ' Modification du dbit et de la parit

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 197


Manuel utilisateur CUBLOC

Set RS485
Set RS232 canal, NoPort
canal : canal RS232 (0 3 suivant type de CUBLOC utilis)
NoPort : No dactivation du Port de transmission

La commande RS485 vous permettra dtablir un rseau de communication afin de relier


plusieurs modules CUBLOC entre eux sur de longues distances (jusqu 1 Km !). Cette
communication impose quil y ait un seul matre et que le reste des priphriques soient des
esclaves.

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

Slave Adr "01" Slave Adr "02" Slave Adr "03"

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 198


Manuel utilisateur CUBLOC

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.

SET RS485 1,48

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

Rfrez-vous la figure ci-dessus si vous dsirez relier plusieurs modules CUBLOC ou


CUTOUCH via une liaison RS485.

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.

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 199


Manuel utilisateur CUBLOC

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.

Lorsque les caractres reus correpondront ceux du paramtre Stopchar ou que le


nombre doctets reus sera suprieur la valeur du paramtre packetlength , alors la
commande ON RECV continuera son programme ltiquette dinterruption spcifie. Avec
cette mthode, vous aurez une plus grande souplesse de traitement.

Le paramtre packetlength est ncessaire (dans le cas o le caractre attendu narrive


jamais).

Cette commande DOIT ETRE utilise avec la commande ON RECV.

Voir lexemple ci-dessous:

Dim A(5) As Byte


Opencom 1,19200,0, 100, 50
On Recv1 DATARECV_RTN
Set Until 1,99,"S"

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.

SET UNTIL 1,5

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) :

SET UNTIL 1,100,4

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 200


Manuel utilisateur CUBLOC

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

bitlength : Nombre de bits (1 16)

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 .

After Rising After Falling Edge


Edge

CLK

Before Rising Edge

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 201


Manuel utilisateur CUBLOC

Shiftout
SHIFTOUT clock, data, mode, variable, bitlength
Clock : Port du Signal dhorloge (0 255)
Data : Port du Signal de donnes (0 255)

Mode : 0 = LSB en premier (Least Significant Bit First)


1 = MSB en premier (Most Significant Bit First)
2 = MSB en premier (Most Significant Bit First) , Cration ACK (Pour I2C)

variable : Variable servant mmoriser la donnes envoyer (jusqu 65535)

bitlength : Nombre de bits (1 16)

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).

SHIFTOUT 3,4,0,&H55,8 Port 3 = Horloge, Port 4 = Donnes


Mode = 0, on envoi 0x55
bitlength = envoi de 8 bits,

CLK

DATA
1 0 1 0 1 0 1 0 = 55H
LSB MSB

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 202


Manuel utilisateur CUBLOC

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.

En fonction du modle de CUBLOC utilis, le nombre de canaux peu varier.

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).

La frquence de sortie peut tre configure de 1 Hz 15 KHz. Le nombre dimpulsions peut


tre configur de 1 2147483647. Toutes les impulsions sont gnres en tche de fond de
telle sorte que le CUBLOC puisse tre utilis pour dautres actions en mme temps.

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

Stepstop
STEPSTOP canal
Canal : Canal StepPulse (0 ou 1)

Cette commande stoppe immdiatement la gnration des impulsions sur le canal slectionn.

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 203


Manuel utilisateur CUBLOC

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

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

Programme de test :

Ce programme gnrera 300 impulsions une frquence de 5 KHz, lorsque le port P0 sera
sollicit via un bouton-poussoir.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 204


Manuel utilisateur CUBLOC

CB280 5V

P0

P5

5KHz, 130 Pulses 15KHz, 300 Pulses

Les commandes STEPPULSE, STEPSTOP et STEPSTAT sont idalement conues pour


piloter des moteurs pas--pas ( laide dinterfaces de puissance additonnelles).

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 205


Manuel utilisateur CUBLOC

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.

SYS(5) retournera la valeur du timer systme qui sincrmentera toutes le 10 ms jusqu la


valeur 65535 puis reviendra 0 (idal pour des applications ncessitants lutilisation dunTimer
supplmentaire.

Adresse 6 : Adresse mmoire de donne (RAM).


SYS(6) retournera la valeur courante de ladresse de la mmoire de donne. A la mise sous
tension ladresse de la mmoire de donne sera 0. Aprs lappel une sous-routine ou une
Fonction, ladresse mmoie sera incrmente. Si ladresse mmoire de la RAM excde la
capacit du module CUBLOC, vous risquez de raliser une action de dpassement pouvant
gnrer un dysfonctionnement du module CUBLOC. La commande SYS(6) vous aidera
viter cette situation. Par exemple le module CB280 dispose de 1948 octets de mmoire RAM.
Prenez garde de conserver une marge dau moins 100 octets de libre pour une plus grande
scurit.

A = SYS(6) Stock ladresse de la mmoire RAM dans la variable A

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 206


Manuel utilisateur CUBLOC

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.

Le programme ci-dessous dcompose le fonctionement de la commande TADIN ( laide de la


commande ADIN).

function tadin(num as byte) as integer


dim ii as integer, ta as long
ta = 0
For ii = 0 To 9
ta = ta + Adin(num)
Next
TADIN = TA / 10
End Function

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 207


Manuel utilisateur CUBLOC

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.

Il est possible de sauvegarder le fonctionnement de lhorloge mme si lalimentation du module


est coupe ( condition de prvoir une pile de sauvegarde).

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.

Adresse Valeur Gamme Structure


0 Seconde 0~59 2nd digit place 1st digit place
1 Minute 0~59 2nd digit place 1st digit place
2 Heure 0~23 2nd digit place 1st digit place
3 Date 01~31 2nd digit place 1st digit place
4 Jour 0~6 1st digit place
5 Mois 1~12 2nd digit st
1 digit place
6 Anne 00~99 2nd digit place 1st digit place

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 208


Manuel utilisateur CUBLOC

Horloge systme (RTC)


Il est toutefois possible sur les modules CUBLOC CB220, CB280 et CB405 dexploiter
lhorloge systme interne du microcontrleur pour bnficier dune horloge exploitable laide
des commandes TIME() et TIMESET.

Le tableau ci-dessous vous indique les correspondances dadressage :

Adresse Valeur retourne Gamme


10 Secondes 0~59
11 Minutes 0~59
12 Heures 0~65535
13 Seconde continuelle 0~65535

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.

La commande TIMESET pourra tre utilise pour programmer lheure.

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.

La valeur prsente ladresse 13 sincrmente galement toutes les secondes (comme la


valeur de ladresse 10), mis part quelle ira jusqu 65535 avant de retomber 0.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 209


Manuel utilisateur CUBLOC

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).

Const Device = CB405


Dim i As Integer
Cls
Timeset 10,58
Timeset 13,254
Do
i = Time(10)
Debug Goxy,0,0,dec4 i,Cr
Debug Goxy,0,1,dec4 Time(13)
Delay 100
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 210


Manuel utilisateur CUBLOC

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 .

Adresse Valeur Gamme Structure bit


0 Seconde 0~59 2nd digit place 1st digit place
1 Minute 0~59 2nd digit place 1st digit place
2 Heure 0~23 2nd digit place 1st digit place
3 Date 01~31 2nd digit place 1st digit place
4 Jour 0~6 1st digit place
5 Mois 1~12 10 1st digit place
6 Anne 00~99 2nd digit place 1st digit place

Lexemple qui suit montre comment mettre lheure lhrologe RTC du module CB290 et
comment lafficher dans le fentre DEBUG du PC:

Const Device =CT1700


Dim I As Byte
Timeset 0,0 ' Seconde
Timeset 1,&H32 ' Minute
Timeset 2,&H11 ' Heure
Timeset 3,&H1 ' Date
Timeset 4,&H5 ' Jour de la semaine
Timeset 5,&H6 ' Mois
Timeset 6,&H5 ' Anne

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(3) ' Affiche la date


Debug " ", Hex2 I
Debug " "

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

La fentre de DEBUG du PC:

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 212


Manuel utilisateur CUBLOC

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.

Par exemple, la commande Udelay 0 gnrera une temporisation de 70 microsecondes.


Udelay 1 gnrera une temporisation de lordre de 82 84 microsecondes. Lorsque des
interruption ou le LADDER sont activs en mme temps, la dure de Udelay peut tre
affecte. De mme, durant cette dure, si une interruption BASIC intervient, la dure de
Udelay sera galement affecte.

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.

UDELAY 10 Delay denviron 1630 microsecondes.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 213


Manuel utilisateur CUBLOC

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.

UTMAX A Incrmente A dune unit

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

Cette commande ne fonctionne quavec le Cubloc Studio version 2.0.x et suprieur.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 214


Manuel utilisateur CUBLOC

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 :

OPENCOM 1,19200,0, 100, 50


PUTSTR 1,ILOVEYOU,CR

DO WHILE BFREE(1,1)<49 Attend que toutes les donnes soient envoyes


LOOP

En utilisant la commande WaitTx, la gestion des communications RS232 est simplifie:

OPENCOM 1,19200,0, 100, 50


PUTSTR 1,ILOVEYOU,CR
WAITTX 1 Attend jusqu' ce que toutes les donnes soient expdies

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 215


Manuel utilisateur CUBLOC

Chapitre 7.
Les librairies daffichages
des CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 216


Manuel utilisateur 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

Afficheurs LCD alphanumriques de la gamme CLCD


Les afficheurs LCD de la gamme CLCD vous permettrons dafficher des caractres
alphanumriques ainsi que des nombres.

Ces derniers sont composs dun module afficheur standard (2 x 16 ou 4 x 20 caractres


suivant les modles) associ au dos une petite platine de contrle qui recevra au choix des
donnes de type srie ou I2C en provenance du module CUBLOC afin de les interprter
en commandes comprises par lafficheur.

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.

La platine de commande dispose de 3 connecteurs, dun potentiomtre de rglage de


luminosit et dun commutateur DIL de paramtrage. Le premier connecteur mle 6 points
lextrme gauche de la platine ne doit JAMAIS tre utilis il sert la programmation de la
platine en sortie dusine. Ne court-circuitez jamais ces broches et ny connectez aucun signal.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 217


Manuel utilisateur CUBLOC

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.

Le commutateur DIL prsent sur la platine a une double fonction.

- Lorsque lafficheur est utilis en mode srie, il permet de paramtrer la vitesse de


communication.

- Lorsque lafficheur est utilis en mode I2C, il permet de paramtrer ladresse de


commande de lafficheur.

Vous trouverez ci-aprs le rle de chaque DIL (le 4me DIL nest pas utilis).

DIP Switch Dbit communication RS232 Adresse esclave I2C


1 2 3
ON
2400 0
1 2 3
ON
4800 1
1 2 3
ON
9600 2
1 2 3
ON
19200 3
1 2 3
ON
28800 4
1 2 3
ON
38400 5
1 2 3
ON
57600 6
1 2 3
ON
115200 7

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 218


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 219


Manuel utilisateur CUBLOC

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 :

SET DISPLAY 2,0,1,50

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

Pour le CB280 la broche 49 peut tre utilise.


CHANNEL 1
CHANNEL 0 CHANNEL 1
TX S OUT 1 17 V DD TX TX1 33 49 TTLTX 1

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 220


Manuel utilisateur CUBLOC

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.

SET DISPLAY 0,1,19200,50

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 221


Manuel utilisateur CUBLOC

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.

LOCATE 1,1 Dplace le curseur en 1,1


PRINT COMFILE et affiche COMFILE

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 222


Manuel utilisateur CUBLOC

Print
PRINT String/Variable
String : String
Variable : variable.

Affiche des caractres lcran

LOCATE 1,1 Il est possible de mixer les donnes afficher


PRINT COMFILE,DEC I constantes et variables ( sparer par des virgules).

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 223


Manuel utilisateur CUBLOC

Commandes spciales pour les afficheurs de type CLCD


Les afficheurs CLCD peuvent galement raliser certaines actions lorsquon leur envoi une
suite de caractres spciaux dont le tableau ci-dessous donne la liste.

Commande Exemple (hex) Octets Dure excution Explication


ESC C 1B 43 2 15 mS Efface lcran. Une temporisation de 15 ms
mini. doit tre ralise aprs cette fonction
avant de pouvoir adresser correctement laf-
ficheur
ESC S 1B 53 2 Curseur ON
ESC s 1B 73 2 Curseur OFF (par dfault)
ESC B 1B 42 2 Backlight ON (par dfault)
ESC b 1B 62 2 Backlight OFF
ESC H 1B 48 2 Equivalent LOCATE 0,0
ESC L X Y 1B 4C xx yy 4 100 uS Change la position du cursor.
ESC 1B 44 11 Les caractres de lafficheur prsents aux
D 8byte adresse (8 15) adresses 8 jusqu 15 peuvent tre modifis
8 octets par vos soins grce lenvoi de cette suite de
codes (consultez les notes dapplications
prsentent sur le CD-ROM ou sur le
www.lextronic.fr pour plus dinfos).
1 01 1 Se place au dbut de la range 1
2 02 1 Se place au dbut de la range 2
3 03 1 Se place au dbut de la range 3
4 04 1 Se place au dbut de la range 4

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 224


Manuel utilisateur CUBLOC

Exemple dutilisation dun afficheur de type CLCD


Le programme ci-dessous donne un exemple de programme permettant dafficher un message
et un compteur sur un cran CLCD204-BLB . Lafficheur sera connect aux Ports P8 et P9
dun module CUBLOC CB220. Les commutateurs DIL de lafficheur devront tre
positionns comme ci-dessous.

DIL1 = OFF
DIL2 = OFF
DIL3 = ON
DIL4 = OFF

Const Device = Cb220


Set Display 2,0,1,50 Pilotage en mode I2C de lafficheur de type CLCD.
Dim i As Integer
Delay 100 ' Dlai pour initialisation de lafficheur
Cls
Delay 200 ' Dlai aprs une commande CLS
Csroff
Locate 5,2
Print "Start !!!"
Delay 500
Cls
Delay 100
Do
Incr i
Locate 0,0
Print "COMFILE"
Locate 1,3
Print "CUBLOC ",Dec i
delay 100
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 225


Manuel utilisateur CUBLOC

Afficheurs LCD graphiques srie GHB3224


Les afficheurs de la srie GHLCD sont capables dafficher des caractres et des graphiques
sur 3 couches diffrentes. Comme tous les afficheurs de la gamme Comfile Technology, les
GHLCD supportent diffrents types de commandes de la part des modules CUBLOC qui
leur permettra de tracer facilement des lignes, des cercles et des rectangles. Dautres
commandes permettent galement des oprations du type Copier / couper / coller ou
encore laffichage dimages BMP pralablement charges dans le GHLCD au moyen dun
utilitaire spcialis (CuCanvas). Ces commandes sont galement compatibles avec les modules
CUTOUCH .

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 GHB3224A supportent les communications sries.

Les versions GHB3224C supportent les communications au protocole I2C (ce qui permet
de librer un port srie sur le CUBLOC).

Vous trouverez ci-dessous un exemple de dclaration pour utiliser un GHB3224C :

SET DISPLAY 1,0,1,50 GHLCD, mode I2C, Adresse esclave 1, Taille buffer 50

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 226


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 227


Manuel utilisateur CUBLOC

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.

CLEAR 1 Efface la couche 1 (Texte).


CLEAR 2 Efface la couche 2 (Graphique).
CLEAR 0 Efface toutes les couches (mme rsultat que la commande CLS ).

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.

LOCATE 1,1 Positionne le curseur en 1,1


PRINT COMFILE

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 228


Manuel utilisateur CUBLOC

Print
PRINT String/Variable
String : String
Variable : lorsque vous utilisez des variables/constantes, la reprsentation des chanes/
variables seront affichs.

Cette commande affiche des caractres sur la couche texte.


Pour afficher des caractres sur la couche graphique, utilisez la commande GPRINT.

LOCATE 1,1 Positionne le curseur en 1,1


PRINT COMFILE,DEC I Affiche le mot COMFILE et la valeur dcimale de la variable I

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 229


Manuel utilisateur CUBLOC

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 )

La commande Overlay dtermine linteraction logique entre les couches 1 et 2.


La couche 1 tant ddie aux textes et la couche 2 aux graphiques.
En utilisant cette commande, vous pourrez choisir comment ragira le LCD lorsque les couches
1 et 2 affichent quelque chose aux mmes endroits. Le mode par dfaut (XOR) provoquera une
inversion lorsque quelque chose sera affich aux mmes endroits sur la couche 1 et 2. Pour ne
pas avoir cette inversion, choisissez le mode OR.

Contrast
CONTRAST valeur
value : Valeur du contrast

Cette commande permet de contrler le contrast du LCD.

Contrast 450

Light
LIGHT valeur
valeur : Back light 0 = OFF, 1 = ON

Active le back light ON ou OFF . Par dfaut, le back light est ON .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 230


Manuel utilisateur CUBLOC

Font
FONT fontsize, efontwidth
fontsize : 0 ~ 8 Slection de la taille de la fonte
efontwidth : 0 = Largeur fixe, 1 = Largeur variable

Les afficheurs GHB3224" disposent de 4 tailles de fontes associes 2 largeurs diffrentes.

Type de fonte Fonte


0,1 10 x 16
2,3,4,5 16 x 16
6,7 24 x 24
8 48 x 48

Const Device = cb220


SET DISPLAY 1,1,19200,50 GHLCD, srie 19200 bds, Taille buffer 50
Cls
Delay 100
Font 0,0
Glocate 10,10
GPrint "FONT 0,0 :ABCDEFGHIJKLMN"
Font 2,0
Glocate 10,30
GPrint "FONT 2,0 :ABCDEFGHIJKLMN"
Font 6,0
Glocate 10,50
GPrint "FONT 6,0 :ABCDEFGHIJKLMN"
Font 8,0
Glocate 10,72
GPrint "FONT 8,0 "
Font 0,1
Glocate 10,120
GPrint "FONT 0,1 :ABCDEFGHIJKLMN"
Font 2,1
Glocate 10,140
GPrint "FONT 2,1 :ABCDEFGHIJKLMN"
Font 6,1
Glocate 10,160
GPrint "FONT 6,1 :ABCDEFGHIJ"
Font 8,1
Glocate 10,185
GPrint "FONT 8,1 "

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 231


Manuel utilisateur CUBLOC

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

1 : Under Line Type

Line
LINE x1, y1, x2, y2

Dessigne une ligne depuis x1, y1 vers x2, y2.

LINE 10,20,100,120 Dessigne une ligne

0 319

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 232


Manuel utilisateur CUBLOC

Lineto
LINETO x, y

Dessine une ligne depuis le dernier point vers x,y.

LINETO 200,50 Continue le trac de la ligne depuis le dernier point.

0 319

239

Box
BOX x1, y1, x2, y2

Dessine un rectangle daprs les positions X1,Y1 et X2,Y2.

BOX 10,20,200,100 Dessine un rectangle

0 319

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 233


Manuel utilisateur CUBLOC

Boxclear
BOXCLEAR x1, y1, x2, y2

Efface un rectangle daprs les positions X1,Y1 et X2,Y2.

BOXCLEAR 10,20,200,100 Efface le rectangle

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 = OR -> affichera toutes les zones qui se chevauchent.


1 = AND -> affichera seulement les zones qui se chevauchent.
2 = XOR -> affichera les zones qui se chevauchent en invers.

BOXFILL 10,20,200,100,0 Dessine un rectangle rempli.

0 319

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 234


Manuel utilisateur CUBLOC

Circle
CIRCLE x, y, r

Dessine un cercle avec pour centre x,y et un rayon de r.

CIRCLE 200,100,50 Dessine un cercle

0 319

239

Circlefill
CIRCLEFILL x, y, r

Dessine un cercle plein avec pour centre x,y et un rayon de r.

CIRCLEFILL 200,100,50 Dessine un cercle plein

0 319

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 235


Manuel utilisateur CUBLOC

Ellipse
ELLIPSE x, y, r1, r2

Dessine une ellipse avec pour centre x,y et pour rayon horizontal r1 et pour rayon vertical r2.

ELLIPSE 200,100,100,50 Dessine une ellipse

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.

ELFILL 200,100,100,50 Dessine une ellipse pleine

0 319

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 236


Manuel utilisateur CUBLOC

Glocate
GLOCATE x, y

Dtermine une nouvelle position pour la couche graphique.

GLOCATE 128,32 Dtermine la nouvelle position

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.

GPRINT CUBLOC IS FASTER,CR Affiche la phrase et passe la ligne (CR)


0 319

CUBLOC IS FASTER

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 237


Manuel utilisateur CUBLOC

Dprint
DPRINT string

DPRINT est similaire GPRINT mise part quil efface les graphiques du dessous.

GPRINT WE LOVE CUBLOC,CR Affiche la phrase et passe la ligne (CR)


0 319

WE LOVE CUBLOC

239

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 238


Manuel utilisateur CUBLOC

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

OFFSET 3,3 dfini un offset de 3 sur laxe x et y.


0 319

CUBLOC IS FUN

COMFILE TECHNOLOGY

239

Aprs la commande, la chane saffichera automatiquement avec le nouvel offset.

Pset
PSET x, y

Affiche un point en x,y

PSET 200,100 Affiche un point

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 239


Manuel utilisateur CUBLOC

Color
COLOR valeur

Dfinie la couleur du LCD. 1 = noir et 0 = blanc. La valeur par dfaut est 0.

COLOR 0 Dfinie la couleur 0.

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).

LINESTYLE 1 Utilise des lignes pointilles

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).

DOTSIZE 1,1 Dfinie une taille de 1 avec un point de type rectangulaire

Paint
PAINT x, y

Rempli une forme ferme partir de la position x,y.

PAINT 100,100 Rempli la forme partir de la position 100,100

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 240


Manuel utilisateur CUBLOC

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

Cette commande permet la cration de caractres personnaliss. Des caractres de 16 x 16


pixels peuvent tre mmoriss dans la mmoire du LCD. Ces caractres pourront ensuite tre
utiliss comme nimporte quel autre caractre avec les commandes usuelles du type : PRINT
ou GPRINT ou DPRINT. Un total de 207 caractres personnaliss peuvent ainsi tre
mmoriss dans lcran LCD.

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)

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 241


Manuel utilisateur CUBLOC

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

Le GHB3224 dispose dune mmoire FLASH permettant la mmorisation dimages BMP


sous la forme de fichiers. Un utilitaire ddi vous permettra ce titre de tlcharger des images
depuis votre PC vers lafficheur. Il vous suffira alors dutiliser la commande BMP pour afficher
les images lcran.

* Lafficheur GHB3224 dispose dune mmoire Flash de 102,400 octets permettant la


mmorisation de vos images au format. Vous pourrez ainsi mmoriser jusqu 10
images dune rsolution de 320 x 240 !

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 242


Manuel utilisateur CUBLOC

Commandes graphique Data PUSH, POP


Les afficheurs de la srie GHB3224 disposent dun emplacement mmoire spcialement
ddi au stockage de donnes graphiques. Vous pourrez stocker ou rcuprer un cran (ou
une partie de ce dernier) au sein de cet emplacement mmoire. En utilisant cette possibilit de
stockage, vous pourrez aisment utiliser des fonctions similaires aux traditionnels Copier /
couper / coller propres aux traitements de textes. Les commandes GPUSH et GPOP sont
utiliser pour extraire des parties prcises de vos crans alors que les commandes HPUSH et
HPOP sont utilisables pour des traitements trs rapides.

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.

Consultez les images ci dessous pour assimiler le mode de fonctionnement de cet


emplacement mmoire:

1 2 3 4 1

3 2 2

4 1 4 1

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 243


Manuel utilisateur CUBLOC

Gpush
GPUSH x1, y1, x2, y2, layer

Envoi le rectangle dimage compris entre x1,y1 et x2, y2 dans la mmoire.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 244


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 245


Manuel utilisateur CUBLOC

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 246


Manuel utilisateur CUBLOC

Configuration des DIP switch des modles GHB3224C


Au dos de lafficheur GHB3224C vous disposez de DIP switch permettant la configuration
de la vitesse de communication RS232 (si vous lutilisez dans ce mode) ou de ladresse esclave
I2C (si vous lutilisez dans ce mode). Le commutateur DIL N 4 nest pas utilis.

DIP Switch Dbit RS232 Adresse esclave I2C


1 2 3
ON
2400 0
1 2 3
ON
4800 1
1 2 3
ON
9600 2
1 2 3
ON
19200 3
1 2 3
ON
28800 4
1 2 3
ON
38400 5
1 2 3
ON
57600 6
1 2 3
ON
115200 7

Vous ne devez utiliser quun seul port de communication sur lafficheur (srie ou I2C)

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 247


Manuel utilisateur CUBLOC

Afficheurs numriques 7 segments Leds srie CSG


Cette gamme dafficheurs spciaux de type 7 segments Leds vous permettra dafficher trs
facilement et rapidement des nombres laide des modules CUBLOC.

Habituellement lutilisation dafficheurs standards de type7 segments Leds ncessite le


recours un demultiplexage dynamique qui peut savrer difficile mettre en uvre. Afin de
vous simplifier la tche, Comfile Technology a dvelop une gamme de modules spcialiss
appels CSG lesquels se pilotent via un bus 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.

Commande Explication Exemple dutilisation


CSGDEC SlaveAdr, Data Affiche une valeur dcimale. CSGDEC 0, I
CSGHEX SlaveAdr, Data Affiche valeur hexadcimale CSGHEX 0,I
CSGNPUT SlaveAdr, Digit, Data Contrle laffichage dun digit CSGNPUT 0,0,8
CSGXPUT SlaveAdr, Digit, Data Permet le contrle de chaque segment dun digit CSGNPUT 0,0,9

NOTA : Pour exploiter les commandes ddies aux modules CSG , il vous faudra
imprativement utiliser en premier la commande setI2C.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 248


Manuel utilisateur CUBLOC

Vous trouverez ci-dessous la description dtaille de ces commandes.

Csgdec
Csgdec slaveadr, Data
slaveadr : Adresse esclave du module CSG
Data : valeur dcimale afficher

Le paramtre slaveadr correspond ladresse esclave du module CSG . Cette adresse se


configure au moyen du commutateur DIL prsent au dos de lafficheur. Il est ainsi possible
dutiliser 4 adresses diffrentes pour une ligne de bus I2C.

DIP Switch Adresse esclave


1 2 3
ON
0
1 2 3
ON
1
1 2 3
ON
2
1 2 3
ON
3

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 .

Const Device = cb280


Set I2c 9,8 Cette commande doit tre appele avant la commande Csgdec
b=8
Do
Csgdec 0,b Affichage sur le module GSG
Delay 100
b=b+1
If b=0 Then b=200
Loop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 249


Manuel utilisateur CUBLOC

Csghex
CSGHEX slaveadr, data
slaveadr : Adresse esclave du module CSG
data : valeur hexadcimale afficher

Mme commande que Csgdec mais pour laffichage de valeur hexadcimale.

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)

CSGNPUT 0, 1, &H43 Affiche le C sur le digit 1

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 250


Manuel utilisateur CUBLOC

Chapitre 8.
Interfaage des
modules CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 251


Manuel utilisateur CUBLOC

Raccordement des Entres / Sorties

Comment connecter des Leds ?


Vous pouvez utiliser le schma ci-dessous pour raccorder une Led sur un port configur en
sortie et sur lequel vous programmez un niveau logique haut pour allumer la Led. Le cble
raccordant la Led au CUBLOC ne doit pas exder une dizaine de centimtre.

330 ohm
CuBLOC I/O Port

Comment connecter un bouton-poussoir ?


Vous pouvez utiliser le schma ci-dessous (le poussoir est reli au + 5 V) et configurer le port
en entre. 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. Lorsque le bouton est
press, le CUBLOC recevra un niveau HAUT (et un niveau BAS en cas contraire).

C u B LO C I/O Po rt
10Kohm

Comment connecter un potentiomtre ?


Vous pouvez utiliser le schma ci-dessous. Le potentiomtre est reli entre le +5 V et la masse,
tandis que son curseur est reli sur un port de conversion analogique/numrique du CUBLOC
(lequel devra tre configur en entre avant de pouvoir utiliser la commande ADIN pour lire la
valeur de la tension prsente sur le curseur). Si vous nutilisez pas de protection particulire, le
fil reliant le bouton au CUBLOC ne devra pas exder 3 4 cm afin dviter les phnomnes
de Latch-up.

5V

10K ohm CUBLOC I/O Port

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 252


Manuel utilisateur CUBLOC

Comment connecter un relais sur le CUBLOC ?


Le schma ci-dessous donne un exemple permettant de connecter un relais au CUBLOC en
utilisant un photocoupleur afin de bnficier dune isolation vis vis du systme qui sera
actionn par le relais. Le port du CUBLOC devra tre configur en sortie. Pour les
applications dans lesquelles le systme pilot nest pas gnrateur de perturbation, il sera
possible dutiliser un montage simplif dans lequel loptocoupleur sera remplac par un simple
transistor de type NPN avec une rsistance de 10 Kohms sa base.

24V
2 4V +

+
C u BLO C RELAY
1N4148

24V
I/O Po rt

+
ZNR
PC-18T1
10K 222
LOAD
GND
2 4V -

Comment connecter un transistor NPN sur un CUBLOC ?


Le schma ci-dessous donne un exemple permettant de connecter un transistor de type NPN
sur un CUBLOC au moyen dun photocoupleur qui vous permettra de bnficier dune
isolation vis vis du systme qui sera actionn par transistor.
2 4V +

C u BLO C
I/O Po rt

10K
1N 4148
LOAD
4 .7 K
PC -1 8 T1

2 4V -

Comment connecter une entre en 24 Vcc sur un CUBLOC ?


Utilisez un photocoupleur double polarit pour convertir le signal 24 Vcc en signal 5 Vcc. Ds
lors, lorsque lentre est sollicite, le module CUBLOC recevra un niveau HAUT (+ 5 V) sur le
port dE/S quil conviendra de configurer en entre.
2.2K (1W)
CuBLOC 0.1uF 47K
I/O Port
680 270
+ 24V
24V +
22K KPC714 100

5V

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 253


Manuel utilisateur CUBLOC

Comment raccorder une entre analogique ?


Pour connecter une entre A/N du module CUBLOC CB280, il vous faudra au pralable
raccorder les broches AVDD et AVREF au +5 Vcc. La broche AVDD alimente ltage du
convertisseur A/N du module CUBLOC, tandis que la broche AVREF correspond lentre de
la tension de rfrence utilise pour les conversions. Ds lors, si AVREF est connect au +
5 V, le CUBLOC convertira les tensions dentre comprises entre 0 et 5 V en valeurs
numriques et si par exemple AVREF est connect au + 3 V, le CUBLOC convertira les
tensions dentre comprises entre 0 et 3 V en valeurs numriques.
DC5V
DC5V
DC5V

S OUT 1 17 V DD TX1 33 49 TTLTX 1


S IN 2 18 V SS 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 P 27 40 56 P 28
P4 9 25 P 20 P 47 41 57 P 32
P5 10 26 P 21 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

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

10K ohm CUBLOC I/O Port

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.

4~20mA CUBLOC I/O Port


250ohm

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 254


Manuel utilisateur CUBLOC

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

Comment gnrer une tension analogique partir dun signal PWM ?


Les modules CUBLOC disposent de 3 6 ports capables de gnrer des signaux PWM. Le
schma ci-dessous vous permettra de gnrer des tensions analogiques au moyen des sorties
PWM. Ce schma nest valable de pour la ralisation de test (la tension ne devra pas tre
utilise pour alimenter un dispositif externe sans quoi cette dernire risque de scrouler).
10Kohm
0~5V
OUTPUT CUBLOC PWM Port
47uF

Comment raccorder un dispositif RS232 un module CUBLOC ?


Par exemple, sur le module CUBLOC CB220, les broches 1 et 2 sont ddies au canal 0 de
communication srie utilis pour recevoir les signaux RS232 (avec niveaux +/- 12V) dun PC
afin de pouvoir programmer le CUBLOC. Le CB220 dispose galement dun second port
srie (canal 1), lequel est dot de niveau logique 5 V.

+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

Pour le module CB280, le canal 1 de communication srie dispose la fois de signaux


accessibles en version avec niveaux logiques 5 V et en version avec niveau +/- 12 V.
+12V

-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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 255


Manuel utilisateur CUBLOC

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.

Le schma ci-dessous donne un exemple de conversion mettant profit un composant de type


MAX232 (permettant de mettre niveau des signaux srie au niveau logique 5 V vers des
signaux de niveaux logique +/- 12 V).

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

Ci-dessous vous trouverez la reprsentation interne du MAX232.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 256


Manuel utilisateur CUBLOC

Les priphriques CuNET ddis aux CUBLOC


Les CUBLOC peuvent piloter des modules priphriques optionnels spciaux appels
modules CuNET (afficheurs CLCD , afficheurs 7 segments CSG ) via une liaison de
type I2C. Par exemple pour les afficheurs CLCD , vous disposez dun jeu dinstructions
BASIC permettant de gnerer directement des trames de donnes I2C que les afficheurs
CLCD comprendons et traduirons en actions associes.

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 .

La broche 2 du connecteur ddi la communication avec les modules CuNET permet de


dupliquer et de ramener le + 5 V dalimentation vers le module dinterface spcialis
CuNET :

Power
G ND G ND
5V 5V
S CL S CL
S DA S DA

CuNET Module
MAIN

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 257


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 258


Manuel utilisateur CUBLOC

A propos des communications I2C


Les modules CUBLOC disposent dun jeu complet de commandes qui leur permettront de
pouvoir communiquer via le protocole I2C. Ce protocole est trs utilis pour pouvoir piloter
diffrents types de composants externes tels que des convertisseurs A/N , des mmoires
EEprom, des convertisseurs N/A , des ports dextension dE/S

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.

Conditions I2C START, STOP


Lorsque les signaux SCL(Clock) et SDA(Data) sont au niveau logique HAUT, le bus I2C est
en mode attente. Si une commande START est excute durant cet tat, la communication
I2C commence alors.

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.

Il existe galement une condition de rptition du mode Start en I2C. Si la commande


START est excute alors que le bus est occup, la communication I2C dmarre nouveau.

SDA

SCL

START STOP Repeated STOP


Start

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 259


Manuel utilisateur CUBLOC

Utilisation dune mmoire EEPROM via le bus I2C


La description qui suit montre comment raliser une communication entre un module
CUBLOC et une mmoire EEprom I2C externe de type 24LC32. Le schma ci-dessous est
extrait du data sheet de la mmoire EEPROM. Ce dernier montre comment envoyer des
donnes dans la mmoire EEPROM.

R/W

S CONTROL BYTE 0 A HIGH ADDRESS A LOW ADDRESS A DATA A P

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.

Ensuite il faudra envoyer linformation de ladresse mmoire de LEEPROM sur laquelle on


dsire travailler (HIGH ADDRESS, LOW ADDRESS) et enfin les donnes mmoriser dans la
mmoire (DATA).

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:

Set I2c 8,9 ' Configure les Port P8 en SDA et P9 en SCL


I2cstart
If I2cwrite(&H10100000) = 1 Then ERR_PROC ' Adresse I2C composant = 0
If I2cwrite(ADR.BYTE1) = 1 Then ERR_PROC ' Adresse en mmoire EEPROM
If I2cwrite(ADR.LOWBYTE) = 1 Then ERR_PROC
If I2cwrite(DATA) = 1 Then ERR_PROC ' Ecriture dun Octet
I2cstop
Delay 5 ' Attend que la mmoire EEprom se soit programme

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 260


Manuel utilisateur CUBLOC

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.

R/W Repeated Start R/W NoAck

S CONTROL BYTE 0 A HIGH ADDRESS A LOW ADDRESS A S CONTROL BYTE 1 A DATA X P

S : Start
A : Acknowledge Read Point
P : Stop

La lecture effective de la donne en EEPROM dbute lindication Read Point . Lensemble


des commandes prcdentes sert la configuration mmoire et ladressage du composant.

Set I2c 8,9 ' Configure les broches SDA, et SCL


I2cstart
If I2cwrite(&H10100000) = 1 Then ERR_PROC ' Adresse I2C composant = 0
If I2cwrite(ADR.BYTE1) = 1 Then ERR_PROC ' Adresse en mmoire EEPROM
If I2cwrite(ADR.LOWBYTE) = 1 Then ERR_PROC
I2cstart ' Nouvelle condition Start (Repeated Start)
If I2cwrite(&H10100001) = 1 Then ERR_PROC ' Commande demandant la lecture.
DATA = I2cread(0) ' Rcupration de loctet de lEEPROM.
I2cstop

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.

Set I2c 8,9 ' Configure les broches SDA, et SCL


I2cstart
If I2cwrite(&H10100000) = 1 Then ERR_PROC ' Adresse I2C composant = 0
If I2cwrite(ADR.BYTE1) = 1 Then ERR_PROC ' Adresse en mmoire EEPROM
If I2cwrite(ADR.LOWBYTE) = 1 Then ERR_PROC
I2cstart ' Nouvelle condition Start (Repeated Start)
If I2cwrite(&H10100001) = 1 Then ERR_PROC ' Commande demandant la lecture
For I = 0 To 10
ADATA(I) = I2cread(0) ' Lectutre de 10 octets la suite
' avec mmorisation dans tableau ADATA
Next
I2cstop

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 261


Manuel utilisateur CUBLOC

Exemple complet de communication I2C


Lexemple qui suit montre comment interfacer un module CUBLOC CB280 avec une mmoire
EEPROM 24LC32. Il vous permettra dcrire une donne une adresse prcise de la mmoire
EPROM, puis de relire cette dernire et de lafficher dans la fentre de DEBUG du PC sous
lenvironnement du CUBLOC Studio. Dans cet exemple la prsence du bit dacquittement nest
pas systmatiquement vrifi.

Const Device = cb280


Dim adr As Integer
Dim data As Byte
Dim a As Byte
data = &ha1 ' Valeur de la donne mmorirer
adr = &h3 ' Adresse mmoire en EEPROM
Set I2c 3,2 ' Configure les broches SDA, et SCL
Do
Ecriture dun Octet en mmoire EEPROM
I2cstart
If I2cwrite(&b10100000)= 1 Then Goto err_proc
a=I2cwrite(adr.byte1)
a=I2cwrite(adr.lowbyte)
a=I2cwrite(data)
I2cstop
Delay 1000 Tempo pour programmation en EEPROM
Lecture dun Octet depuis la mmoire EEPROM
I2cstart
a=I2cwrite(&b10100000)
a=I2cwrite(adr.byte1)
a=I2cwrite(adr.lowbyte)
I2cstart
a=I2cwrite(&b10100001)
a=I2cread(0)
I2cstop
Affiche la valeur lue lcran
Debug Hex a,cr
Delay 500
Loop

err_proc:
Debug "Erreur communication I2C !"
Do
Loop

24LC32 CB280

A0
A1 SCL P2
A2 SDA P3

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 262


Manuel utilisateur CUBLOC

Utilisation avance des communications I2C


La plupart des ports des modules CUBLOC peuvent tre configurs pour raliser une
communication I2C (au moyen dune mulation logiciel via les commandes I2CREAD
ou I2CWRITE ). Ainsi il vous sera possible de dclarer et dutiliser jusqu 24 Ports I2C
diffrents sur un module CB280 !

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

Slave Slave Slave Slave Slave


Address Address Address Address Address
"01" "02" "12" "34" "127"

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

LX LY LX, LY : Buffered Bus, LDA or LCL

SX P82B715 SY SX, SY : I2C Bus, SDA or SCL

GND N/C

LDA LDA
SDA SDA

LCL LCL
SCL SCL

LONG CABLE

CUBLOC P82B715 P82B715


I2C DEVICE

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 263


Manuel utilisateur CUBLOC

Le circuit P82B96 vous permettra disoler la commuincation I2C et damliorer la


protection du bus de communication.

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

Consultez le site de Philips pour plus dinfos sur ces composants :


http://www.standardics.philips.com/.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 264


Manuel utilisateur CUBLOC

Chapitre 9.
Communications
MODBUS

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 265


Manuel utilisateur CUBLOC

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.

Dans une communication de type MODBUS, il y a un mode matre et un mode esclave. Le


matre envoie les donnes tandis que lesclave les reoit. Lesclave ne peut que recevoir les
donnes et ne peut appeler le matre.

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:

Field Hex ASCII RTU


Header : (colon) None
Slave Address 0X03 03 0X03
Command 0X01 01 0X01
Start Address HI 0X00 00 0X00
Start Address LO 0X13 13 0X13
Length HI 0X00 00 0X00
Length LO 0X25 25 0X25
Error Check LRC (2 Bytes) CRC(2 Bytes)
Ending Code CR LF None
Total Bytes 17 Bytes 8 Bytes

Le mode ASCII utilise 2 points (: ) pour dmarrer et un CR ou LF pour finir.

START SLAVE FUNCTION DATA LRC END


ADR
: (COLON) 2 Bytes 2 Bytes n Bytes 2 Bytes CR,LF

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 266


Manuel utilisateur CUBLOC

Le mode RTU ne ncessite aucun caractre spcial pour dmarrer. Ce dernier utilise 4 octets
Blanc pour indiquer le dbut ou la fin.

START SLAVE FUNCTION DATA CRC END


ADR
T1-T2-T3- 1 Byte 1 Byte N Bytes 1 Byte T1-T2-T3-
T4 T4

Les CUBLOC supportent les commandes et les adresses MODBUS


Les CUBLOC supportent les commandes 1, 2, 3, 4, 5, 6, 15 et 16.

Commande Nom de la commande


01, 02 Bit Read
03, 04 Word Write
05 1 Bit Write
06 1 Word Write
15 Multiple Bit Write
16 Multiple Word Write

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 :

Bit Units Word Units


Addresse Registre Addresse Registre
0000H P
1000H M
2000H Not Used
3000H Not Used
4000H F
5000H T
6000H C
7000H D
8000H WP
9000H WM
0A000H WF

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 267


Manuel utilisateur CUBLOC

Adresses des modules


Le tableau ci-dessous montre les adresses des modules MODBUS. Ces adresses sont
utilises pour identifier les diffrents registres sur les CUBLOC ou les CUTOUCH. La
plupart des quipements htes (CUBLOC, CUTOUCH, PC, HMI) devront utiliser les rgles ci-
dessous :

Adresse module Adresse Modbus Explication


110000 Adresse module 1 Enlevez 1 unit pour obtenir ladresse Modbus
40001 50000 Adresse module 40001 Enlevez 40001 unit pour obtenir ladresse Modbus

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.

Accs bit (Coil, Etat entre)


Codes de fonction : 1,2,4,15
Adresse module (dcimal) Donnes
1 128 Registres P
385 512 Registres F
4097 8192 Registres M

Accs Word (Holding/Registres dentres)


Codes de fonction : 3,4,6,16
Adresse module (dcimal) Donnes
40001 41000 Registres D
41001 42000 Registres T
42001 43000 Registres C
43001 44000 Registres WM

Adresses flottantes
Utilisez ladresse des modules en fonction des No de registres disponibles.

Par exemple, le CUBLOC CB280 dispose de registres de donnes de D0 D99. Il ne


peut exister que des adresses de 40001 40099. Le reste de 400100 jusqu 41000 (les
adresses flottantes ) ne sont pas utilisables (elles seront exploites pour les mises jour
futures du firmware). Donc Ne les utilisez pas !

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 268


Manuel utilisateur CUBLOC

Fonction code 01 : Lecture tat bobine


Fonction code 02 : Lecture de ltat dune entre
Cette fonction permet de lire le bit dtat des registres du PLC. Lexemple suivant montre la
lecture des registres P20 P56 depuis ladresse esclave 3.

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

Ensuite on inverse les bits.


1100 0011

Ensuite on ajoute 1, ce qui donne:


1100 0100 = 0xC4

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

La rponse la requte est en page suivante.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 269


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 270


Manuel utilisateur CUBLOC

Fonction code 03 : Lecture registres maintenu


Fonction code 04 : Lecture regsitres dentre
Cette fonction permet de lire une donne de type Word (sur 16 bits) ce qui se vle
intrressant pour les Compteurs, Timers et Registres de donnes. Le tableau suivant montre
comment lire les Registres D 0 2 depuis ladresse esclave 3.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 271


Manuel utilisateur CUBLOC

Fonction Code 05 : Ecriture dune bobine


Il est possible de piloter ltat des registres distance dun PLC via les bits grce cette
fonction. Lexemple suivant montre comment le registre P1 sera activ (ON) via ladresse
esclave 3. Pour activer les registres (ON), FF 00 est envoy et pour dsactiver les registres
(OFF) on envoi 00 00.

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

La rponse montre que les donnes on t correctement envoye.


Vous DEVEZ utiliser FF 00 et 00 00 pour activer/dsactiver (ON/OFF) les registres (toute autre
valeur sera ignore).

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 272


Manuel utilisateur CUBLOC

Fonction Code 06 : Initialisation registre unique


Il est possible de piloter ltat des registres distance dun PLC via des Words au moyen de
cette fonction. Lexemple suivant montre comment adresser le D1 via ladresse esclave 3.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 273


Manuel utilisateur CUBLOC

Fonction Code 15: Ecritures de multiples bobines


Il est possible de piloter ltat des registres distance dun PLC via de multiples bits grce
cette fonction. Lexemple suivant montre comment les registres P20 P30 seront
activs/dsactivs via ladresse esclave 3.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 274


Manuel utilisateur CUBLOC

Fonction Code 16 : Ecritures Multiples de registres


Il est possible de piloter ltat des registres distance dun PLC via de multiples words la fois
grce cette fonction. Lexemple suivant montre comment adresser les Registres D0 D2 via
ladresse esclave 3.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 275


Manuel utilisateur CUBLOC

Contrle derreur
Si une erreur survient dans les donnes depuis le matre, lesclave retournera un code derreur.

Field Hex ASCII Bytes


Header : (colon) 1
Slave Address 0X03 03 2
Function Code 0X81 81 2
Error Code 0X09 09 2
Error Check LRC 2
Ending Code CR LF 2

Voici les diffrents type derreurs:

Code Nom erreur Explication


01 ILLEGAL FUNCTION Lorsque un code de fonction non support est reu.
02 ILLEGAL DATA Lorsque dune adresse incorecte est reue.
ADDRESS
03 ILLEGAL DATA VALUE Lorsque de mauvaise donnes sont reue.
09 LRC UNMATCH Lorsque le LRC est incorrect.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 276


Manuel utilisateur CUBLOC

Mode MODBUS ASCII Matre


Il ny a pas de commande spciale pour placer le module CUBLOC en mode matre pour les
communications de type MODBUS. Le mode matre pourra simplement tre mis en place au
travers de la liaison srie RS232 en utilisant les commandes usuelles telles que GET et PUT.
Lexemple suivant montre limplantation du mode matre dans le BASIC du CUBLOC:

Const Device = cb280


Dim RDATA As String * 80
Dim a As Byte, ct As Byte
Dim b As String * 17
Dim Port As Integer
Opencom 1,115200,3,80,80
On Recv1 Gosub GETMODBUS ' Routine dinterruption rception donnes
Set Until 1,60,10 ' Quand donne se termine par Code (10)
' sur canal 1 -> Cration dune interruption
Do
For Port=2 To 4
BitWrite Port, 1 ' Place P0, P1, P2 ON !
Delay 100
Next
For Port=2 To 4
BitWrite Port, 0 ' Place P0, P1, P2 OFF !
Delay 100
Next

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 277


Manuel utilisateur CUBLOC

Mode MODBUS ASCII Esclave


' Source Esclave
Const Device = cb280
Opencom 1,115200,3,80,80
set modbus 0,3
Usepin 2, Out
Usepin 3, Out
Usepin 4, Out
Set Ladder On

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 278


Manuel utilisateur CUBLOC

Mode MODBUS RTU matre


Lexemple ci-dessous montre limplmentation du mode RTU matre en BASIC pour crire des
valeurs flottantes dur 32 bits (2 registres 2 mots) vers un module esclave RTU 1 :

Const Device = CB280


#include "crctable.inc"
'______________Open serial port for MODBUS__________________________
'_________[Configure dbit 115200bps et 8-N-1]________________
'_________[et buffer rception avec 200 octes / buffer mission avec 100 octes]
Opencom 1,115200,3,200,100

'_________[Routine dinterruption en rception]__________________________


On Recv1 Gosub GETMODBUS
'______________[Efface tous les Buffers]__________________________________
Bclr 1,2
'______________[Utilise le Timer pour Timeout MODBUS]______________________
On timer(1) Gosub MyClock

Debug "__________[Ecriture RTU MODBUS de la valeur point flottant]_____",Cr

'Test writing 32bit SINGLE to Register Address 0 of device 1


Debug "writing 3.14 and 6.99 Long value to register 0",Cr
writesingle 1,0,3.14
writesingle 1,0,6.99

' Exemple montrant comment envoyer de multiple variables virgule flottante


' en faison une simple fonction WriteMultipleSingle()
SDataArray(0)=1.11
SDataArray(1)=2.22
SDataArray(2)=3.33
Debug "Writing multiple Single values to address 0",Cr
writemultiplesingle 1,0,3
'-----------------------------------------------------------------
Do
Loop

'Routine rception Modbus


#include "ModbusRTUrecv.bas"
End

'Gestion Modbus
#include "ModbusRTULib016.bas"

* Consultez le Forum, www.cubloc.com sur internet pour davantages dexemples de gestion de


communications ASCII / RTU / MODBUS.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 279


Manuel utilisateur CUBLOC

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 !

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 280


Manuel utilisateur CUBLOC

Les bases du LADDER

Le schma ci-dessous montre lexemple dune lampe et dun interrupteur.

Si vous enlevez la source dalimentation, le schma se simplifie comme ci-dessous:

Si vous le traduisez en logique LADDER, vous obtenez le schma ci-dessous :

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

Dans ce diagramme P0 et P2 sont cbls en logique AND. P0 et P3 en logique OR (Ce qui


veut dire que P0 ou P3 doivent tre ON).

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 281


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 282


Manuel utilisateur CUBLOC

1. Pressez F3 pour crer un contact .

2. Tapez START et pressez la touche ENTER .

3. Pressez F5 plusieurs fois afin de continuer la ligne.

4. En bout de ligne pressez F7 et tapez RELAY .

5. Allez la ligne suivante (line) et pressez le bouton END .

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 .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 283


Manuel utilisateur CUBLOC

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.

Effacer une cellule

Sollicitez la touche ESPACE.

Effacer une ligne

Vous pouvez presser la combinaison de touche CTRL-D pour effacer toute une ligne (cette
ligne est stocke dans un buffer).

Rcuprer une ligne


Pour rcuprer une ligne efface, tapez la combinaison CTRL-U.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 284


Manuel utilisateur CUBLOC

Insrer et effacer une cellule

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 285


Manuel utilisateur CUBLOC

Copier / Coller des blocs en LADDER


Vous pouvez faire une slection dun bloc afin de le copier et de le dupliquer un endroit
diffrent du LADDER.

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.

* Attention la fonction UNDO nest pas supporte en LADDER.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 286


Manuel utilisateur CUBLOC

Monitoring en LADDER

Le CUBLOC STUDIO supporte le monitoring temps rel du LADDER.


C lic k H e re

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).

Nous recommandons une vitesse de monitoring de valeur 5.

*Assurez-vous imprativement que le monitoring est stopp avant de modifier nouveau votre
programme ou de tlcharger ce dernier dans le module CUBLOC.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 287


Manuel utilisateur CUBLOC

Monitoring avec affichage temporel


C lic k H e re

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.

Il est ainsi possible de faire du monitoring sur 8 registres la fois.


Device Select Com Port Select
Start / Stop

Sampling Time Cursor Move


control icon
Zoom control

Relay select

Use/ Unuse

Time interval display X position

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.

Set debug off

Lorsque vous utilisez le monitoring avec affichage temporel, il nest pas possible dutiliser en
mme temps le monitoring en Ladder.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 288


Manuel utilisateur CUBLOC

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 + "
'

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 289


Manuel utilisateur CUBLOC

La fentre Setup -> Cubloc Studio Options

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

LA D D E R m o n ito rrin g sp e e d se ttin g

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 290


Manuel utilisateur CUBLOC

La fentre Setup -> PLC Setup Wizard


Afin de pouvoir utiliser un programme LADDER avec le module CUBLOC, il vous faudra au
pralable initialiser et dclarer certains paramtres dans lentte du programme BASIC. Si cette
opration nest pas complique en soit, elle pourra toutefois monopoliser votre attention lors des
premires utilisations. Cest la raison pour laquelle vous disposez dune fentre spciale qui
vous permettra dautomatiser ces dclarations et initialisations.

PLC SETUP WIZARD

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 291


Manuel utilisateur CUBLOC

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.

Pour le compteur rapide HIGH COUNT1 , lisez simplement le registre D39.


Si vous le dsirez, vous pourrez modifier le regsitre pour stocker ou crire des valeurs en
modifiant le code BASIC.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 292


Manuel utilisateur CUBLOC

Utilisation des Registres du LADDER


Ce menu accessible depuis : Run -> View Register Usage vous permet de visualiser la
dnomination associe chaque registres du LADDER afin que vous puissiez faciliter
encore davantage la phase de dveloppement de vos applications.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 293


Manuel utilisateur CUBLOC

Liste des Registres utiliss par le LADDER


Le tableau ci-dessous donne la liste des Registres des modules CB220, CB280

Nom du Registre Gamme Unit Possibilits


Registres P Entre / Sortie P0~P127 1 bit Interface avec dispositifs externes
Registres internes M M0~M511 1 bit Registres internes
Registres spciaux F F0~F127 1 bit Etat systmes
Timer T T0~T99 16 bits (1 Word) Pour Timers
Copteur C C0~C49 16 bits (1Word) Pour Coumpteurs
Step Enable S S0~S15 256 steps( 1 octet) For Step Enabling
Mmoire donne D D0~99 16 bits (1 Word) Mmorisation de donnes

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.

Nom Registre Gamme Units Feature


WP WP0~7 16 bits (1 Word) Registre P (accs Word)
WM WM0~WM31 16 bits (1 Word) Registre M (accs Word)
WF WF0~WF7 16 bits (1 Word) Registre F (accs Word)

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 294


Manuel utilisateur CUBLOC

Le tableau ci-dessous dresse la liste des Registres du module CB290. Le module


CUBLOC CB290 dispose de plus de registres de type M, C, T et D que les modules
CB220 et CB280.

Nom du Registre Gamme Unit Possibilits


Registres P Entre / Sortie P0~P127 1 bit Interface avec dispositifs externes
Registres internes M M0~M1023 1 bit Registres internes
Registres spciaux F F0~F127 1 bit Etat systmes
Timer T T0~T255 16 bits (1 Word) Pour Timers
Copteur C C0~C255 16 bits (1Word) Pour Coumpteurs
Step Enable S S0~S15 256 steps( 1 octet) For Step Enabling
Mmoire donne D D0~511 16 bits (1 Word) Mmorisation de donnes

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.

Nom Gamme Units Feature


Registre
WP WP0~7 16 bits (1 Word) Registre P (accs Word)
WM WM0~WM63 16 bits (1 Word) Registre M (accs Word)
WF WF0~WF7 16 bits (1 Word) Registre F (accs Word)

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

WP1 P31 P16

WP2 P47 P32

WP3 P63 P48

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 295


Manuel utilisateur CUBLOC

Les symboles du LADDER

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.

(A) Normal Open (B) Normal Close

Symbole Registres Entre, Sortie


Les registres dEntre/Sortie sont les symboles les plus simples en LADDER.
Contact A

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 296


Manuel utilisateur CUBLOC

Utilisation des E/S


Les ports dE/S des CUBLOC peuvent tre utiliss la fois par le programme BASIC et par le
programme LADDER. Sans aucune dclaration particulire, tous les ports dE/S sont attribus
au programme BASIC. Pour utiliser des ports dE/S en LADDER, vous devrez au pralable
utiliser la commande Usepin afin de dclarer les ports qui seront utiliss en LADDER.

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 !).

USEPIN 0,IN, START


USEPIN 1,OUT, RELAY

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 297


Manuel utilisateur CUBLOC

Utilisation des alias


Lorsque vous concevez votre programme en LADER et que vous utilisez des Registres du type
P0, P1 ou encore M0, il est plus simple de leur attribuer un nom (alias) qui vous permettra de
faciliter la lecture et la rdaction de votre application.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 298


Manuel utilisateur CUBLOC

Dmarage du programme LADDER


A la mise sous tension, le programme BASIC des modules CUBLOC est toujours excut en
premier. Vous pourrez alors dans ce programme BASIC ordonner lexcution du programme
LADDER laide de la commande SET LADDER ON. Lorsque cette commande est
rencontre, le LADDER sera excut en permanence avec un temps de cycle de 10
millisecondes.

Si vous ne placez pas la commande SET LADDER ON dans le programme BASIC, le


programme LADDER ne sera pas excut !

SET LADDER ON

Dclaration du type de module CUBLOC utilis


Il est TOUJOURS impratif de dclarer au dbut du programme BASIC (mme si vous ne
programmez quen LADDER) le type de module CUBLOC que vous utilisez laide de la
commande CONST DEVICE (voir exemples ci-dessous).

CONST DEVICE = CB220 Utilisation du module CB220.


ou
CONST DEVICE = CB280 Utilisation du module CB280.

Cette commande est placer la premire ligne du programme BASIC.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 299


Manuel utilisateur CUBLOC

Si vous voulez utiliser le LADDER (sans le BASIC)


Dans lventualit ou votre application devra tre dveloppe uniquement langage LADDER, il
vous faudra tout de mme saisir quelques ligne de commandes en BASIC afin :

- De dclarer avec quel type de module CUBLOC vous allez travailler.


- De dfinir les ports dE/S que vous utiliserez en LADDER.
- De dclarer ventuellement des noms dalias pour les Registres.
- Et enfin pour demander le dmarrage de lexcution du programme LADDER.

Les lignes qui suivent donnent un exemple de la dclaration type :

Const Device = CB280 ' Dclaration du type de CUBLOC utilis

Usepin 0,In,START ' Dclaration des Ports (et alias)


Usepin 1,In,RESETKEY
Usepin 2,In,BKEY
Usepin 3,Out,MOTOR

Alias M0=RELAYSTATE ' Dclaration des alias


Alias M1=MAINSTATE

Set Ladder On ' Activation du programme LADDER

Do
Loop ' Boucle sans fin du BASIC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 300


Manuel utilisateur CUBLOC

Activation du mode Turbo Scan Time du LADDER


Lorsque vous exploitez la fois une application en langage BASIC et en LADDER, vous
obtenez un temps de cycle du LADDER de 10 ms. Il vous est possible dactiver un mode dit
Turbo Scan Time ( condition de ne pas avoir se servir du programme en BASIC). Pour
ce faire, suivez la procdure ci-dessous.

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).

Const Device = CB280 ' Dclaration du type de CUBLOC utilis

Usepin 0,In,START ' Dclaration des Ports (et alias)


Usepin 1,In,RESETKEY
Usepin 2,In,BKEY
Usepin 3,Out,MOTOR

Alias M0=RELAYSTATE ' Dclaration des alias


Alias M1=MAINSTATE

Do Boucle sans fin


LadderScan
Loop

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 301


Manuel utilisateur CUBLOC

Choses se rappeler en LADDER


Le symbole rond indique ce quil faut faire La croix ce quil ne faut pas faire !

Les symboles dentres doivent tre positionns compltement gauche en LADDER.

* Les symboles de doivent tre positionns compltement droite en LADDER.

Il ne faut jamais utiliser les mmes sorties en LADDER pour viter les collisions.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 302


Manuel utilisateur CUBLOC

Nutilisez jamais plus dune ligne verticale comme indiqu ci-dessous.


More than 1 division w ill give compile error

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

Le programme LADDER scrit du HAUT vers le BAS.

Les Registres Fonction ne doivent pas tre positionns gauche en LADDER.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 303


Manuel utilisateur CUBLOC

Lorsque quun programme LADDER est complexe, il est prfrable de le fractionner afin de le
rendre plus lisible (voir exemple ci-dessus).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 304


Manuel utilisateur CUBLOC

Les instructions du LADDER


Instructions de bas niveau
Commande Symbole Explication
LOAD Contact A (Normalement ouvert)

LOADN Contact B (Normalement ferm)

OUT Sortie

NOT NOT (Inverse le rsultat)

STEPSET Sortie Contrleur Pas (Step Set)

STEPOUT Sortie Contrleur Pas (Step Out)

MCS Contrle Start Maitre

MCSCLR Contrle Stop Maitre

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

SETOUT Maintient la sortie ON

RSTOUT Maintient la sortie OFF

END Fin du programme LADDER

GOTO Saut une tiquette

LABEL Dclaration tiquette

CALLS Appel sous-routine

SBRT Dclaration sous-routine


RET Fin sous-routine
TND Commande de sortie conditionnelle

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 305


Manuel utilisateur CUBLOC

Instructions de haut niveau

Commande Paramtre Explication

Commandes de transfert de donnes


WMOV s,d Dplacement Donne Word
DWMOV s,d Dplacement Donne Double Word
WXCHG s,d Echange Donnes Word
DWXCHG s,d Echange Donnes Double Word
FMOV s,d,n Commande de remplissage de Donnes
GMOV s,d,n Commande dplacement Group

Commandes dIncrmentation / Dcrmentation


WINC d Incrmente de 1 la donne Word
DWINC d Incrmente de 1 la donne Double Word
WDEC d Dcrmente de 1 la donne Word
DWDEC d Dcrmente de 1 la donne Double Word

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

Commandes doprations Logiques


WAND s1,s2,d AND logique sur donne Word
DWAND s1,s2,d AND logique sur donne Double Word
WOR s1,s2,d OR logique sur donne Word
DWOR s1,s2,d OR logique sur donne Double Word
WXOR s1,s2,d XOR logique sur donne Word
DWXOR s1,s2,d XOR logique sur donne Word

Commandes de dcalage de Bit


WROL d Dcalage gauche 1 bit dune donne Word
DWROL d Dcalage gauche 1 bit dune donne Double Word
WROR d Dcalage droite 1 bit dune donne Word
DWROR d Dcalage droite 1 bit dune donne Double Word

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 306


Manuel utilisateur CUBLOC

LOAD, LOADN, OUT


LOAD est pour les contacts Normalement Ouvert et LOADN pour les contacts Normalement
ferms. OUT est permet de sortir la donne.
LOAD OUT

LOADN

Registres pouvant tre utiliss P M F S C T D Constantes


LOAD O O O O O O
LOADN
OUT O O

P0

P2

P1

P3

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 307


Manuel utilisateur CUBLOC

NOT, AND, OR
NOT Symbol

AND

OR

Le symbole NOT inverse le rsultat. Si P0 est ON alors P5 passera en OFF.

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).

Lexemple ci-dessous montre lutilisation de bloc AND et de bloc OR.


BLOCK AND

BLOCK OR

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 308


Manuel utilisateur CUBLOC

SETOUT, RSTOUT
SETOUT activera P5 en ON lorsque P0 sera ON et laissera P5 ON mme si P0 retourne en
OFF.

A linverse RSTOUT mettra P5 en OFF lorsque P1 sera ON et laissera P5 en OFF mme si P1


retoorne en OFF.

Registres pouvant tre utiliss P M F S C T D Constantes


SETOUT O O O
RSTOUT O O O

P0

P1

P5

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 309


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 310


Manuel utilisateur CUBLOC

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.

Il est possible dassocier un chiffre de 0 7 avec la commande MCS. Le nombre associ la


commande MCS doit dmarrer de 0, puis augmenter 1, 2, 3, etc MCS 1 doit exister
lintrieur de MCS 0 et MCS 2 doit exister lintrieur de MCS 0. De la sorte, il est possible
dutiliser 7 blocs MCS. Lorsque MCS 0 est OFF, tous les MCS lintrieur de MCS seront OFF.

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.

Commande Lorsque MCS est ON Lorsque MCS est OFF


OUT Opration Normale OFF
SETOUT Opration Normale Maintien tat aprs que MCS se soit plac en OFF
RSTOUT Opration Normale Maintien tat aprs que MCS se soit plac en OFF
Timer Opration Normale Reset la valeur par dfaut
Compteur Opration Normale Maintien tat aprs que MCS se soit plac en OFF
Autres Commandes Opration Normale Stop Opration

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 311


Manuel utilisateur CUBLOC

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 312


Manuel utilisateur CUBLOC

Contrles de pas (Step Control)


Les Registres S sont utiliss pour le contrle de pas . Vous trouverez ci-dessous le format
correct utiliser.

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

La commande STEPSET activera en ON le pas courant si le pas prcdent tait en ON.


Comme on opre dun pas la fois, nous lappelerons STEPSET.

Dans lexemple ci-dessous :


- Lorsque P1 est ON, S0:2 passera en ON si S0:1 est dj pass ON. S0:1 passera OFF.

- 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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 313


Manuel utilisateur CUBLOC

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.

- Lorsque P1 passe en ON, S0:2 passe en ON.


- Lorsque P0 passe en ON, S0:1 passe en ON.

Un pas sexcute jusqu ce quun autre prenne sa place et passe ON.

P0

P1

P2

S0:0

S0:1

S0:2

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 314


Manuel utilisateur CUBLOC

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.

Type de Timer Unit de temps Dure maximale


TON 0.01 sec 655.35 sec
TAON 0.1 sec 6553.5 sec

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.

Registres utilisables P M F S C T D Constantes


TON, TAON O O O O

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).

Lexemple ci-dessous montre comment rinitialiser TAON.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 315


Manuel utilisateur CUBLOC

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.

Type de Timer Unit de temps Dure maximale


TOFF 0.01 sec 655.35 sec
TAOFF 0.1 sec 6553.5 sec

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.

Registres utilisables P M F S C T D Constantes


TOFF, TAOFF O O O O

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 316


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 317


Manuel utilisateur CUBLOC

Compteur UP/DOWN
Lexmple ci-dessous montre une faon simple de raliser un compteur ascendant /
descendant .

P0 sert au comptage ascendant, P2 au comptage descendant et P1 pour le reset. Lorsque le


compteur arrive 100, C0 est activ.

P0

P2

P1

C0
COU NT

C0

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 318


Manuel utilisateur CUBLOC

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

Use RESET to set the


counter to 0 at the Power off & on
beginning

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 319


Manuel utilisateur CUBLOC

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.

Commande de comparaison Types donnes Explications


=, s1, s2 Word (16 bits) Lorsque s1 et s2 sont identique passe la sortie ON.
<>, s1, s2 Word (16 bits) Lorsque s1 et s2 sont diffrents passe la sortie ON.
>, s1, s2 Word (16 bits) Lorsque s1 > s2 passe la sortie ON.
<, s1, s2 Word (16 bits) Lorsque s1 < s2 passe la sortie ON.
>=, s1, s2 Word (16 bits) Lorsque s1 >= s2 passe la sortie ON.
<=, s1, s2 Word (16 bits) Lorsque s1 <= s2 passe la sortie ON.
D=, s1, s2 Dword (32 bits) Lorsque s1 et s2 sont identique passe la sortie ON.
D<>, s1, s2 Dword (32 bits) Lorsque s1 et s2 sont diffrents passe la sortie ON.
D>, s1, s2 Dword (32 bits) Lorsque s1 > s2 passe la sortie ON.
D<, s1, s2 Dword (32 bits) Lorsque s1 < s2 passe la sortie ON.
D>=, s1, s2 Dword (32 bits) Lorsque s1 >= s2 passe la sortie ON.
D<=, s1, s2 Dword (32 bits) Lorsque s1 <= s2 passe la sortie ON.

Vous pouvez mixer diffrentes comparaisons comme suit :

Lorsque lun ou lautre D0=T1 ou D1<100 et si C0>=99, alors M0 passera en ON.

En dautres termes, D0 devra tre quivalent la valeur de T1 ou D1 est infrieur 100


pendant que C0 devra tre plus grand ou gal 99.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 320


Manuel utilisateur CUBLOC

Comment mmoriser des donnes de type Words et Double Words


Les Byte sont sur 8 bits, les Word sur 16 bits et les Double Word sur 32 bits.
1 BYTE

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).

Comme vous pouvez le voir, 1234H est 0 34


1 12
mmoris ladresse mmoire 0 et 12345678H 2
est stock ladresse mmoire 5. Dans chaque 3
4
adresse mmoire, 1 octet de donne est stock. 5 78
6 56
7 34
8 12
9

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).

Vous voyez ci-dessous la mmorisation de la donne Double Word, 12345678H. D1 renferme


ladresse 1234H et D0 referme 5678H.

D0 5678
D1 1234
D2
D3
D4

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 321


Manuel utilisateur CUBLOC

Binaire, Dcimal, Hexadcimal


Dans le cadre de votre programmation, vous aurez souvent prendre en considration des
nombres exprims en dcimal, en binaire ainsi quen hexadcimal. Le tableau ci-dessous vous
donne la correspondance entre ces 3 types de reprsentation.

Dcimal Binaire Hxadcimale


0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 322


Manuel utilisateur CUBLOC

WMOV, DWMOV
WMOV s, d
DWMOV s, d

La commande WMOV dplace une donne de type 16 bits de s vers d . La commande


DWMOV pourra tre utilise pour les donnes de type 32 bits.

Registre utilisables P M F S C T D Constantes


s (Source) O O O O
d (Destination) O O O

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 323


Manuel utilisateur CUBLOC

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.

Registre utilisables P M F S C T D Constantes


s O O O
d O O O

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 324


Manuel utilisateur CUBLOC

FMOV
FMOV s, d, n

Mmorise la valeur en s dans d et rpte lopration n fois aux adresses mmoires


suivantes. Cette commande est gnralement utilise pour initialiser ou effacer la mmoire.

Registres utilisables P M F S C T D Constantes


s O O O
d O O O
n O

Le rsultat du programme LADDER est visible ci-dessous:

D0 100
D1 100
D2 100
D3 100
D4 100
D5 100

*Nota: Configurez n avec un nombre infrieur 255.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 325


Manuel utilisateur CUBLOC

GMOV
GMOV s, d, n

Recopie les n valeurs dmarrant en s vers lemplacement mmoire en d . Vrifiez


de ne pas dpasser les emplacements mmoires afin dviter les collisions entre les
donnes.

Registres utilisables P M F S C T D Constantes


s O O O
d O O O
n O

Le rsultat du programme LADDER est visible ci-dessous:

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

*Nota: n doit avoir une valeur infrieure 255.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 326


Manuel utilisateur CUBLOC

WINC, DWINC, WDEC, DWDEC


WINC d
DWINC d
WDEC d
DWDEC d

WINC incrmente une valeur de type Word en d dune unit.


DWINC incrmente une valeur de type Double Word en d dune unit.
WDEC dcrmente une valeur de type Word en d dune unit.
DWDEC dcrmente une valeur de type Double Word en d dune unit.

Registre utilisable P M F S C T D Constantes


d O O O

Le rsultat du programme LADDER est visible ci-dessous:

D0 99
D1
D2
D3

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 327


Manuel utilisateur CUBLOC

WADD, DWADD
WADD s1, s2, d
DWADD s1, s2, d

Ajoute s1 et s2 et mmorise le rsultat en d .

WADD permet de travailler sur les valeurs de type Word et DWADD sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
d O O O

WSUB, DWSUB
WSUB s1, s2, d
DWSUB s1, s2, d

Soustrait s1 de s2 et mmorise le rsultat en d .


WSUB permet de travailler sur les valeurs de type Word et DWSUB sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
d O O O

D1 prend la valeur 95 dans ce programme LADDER.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 328


Manuel utilisateur CUBLOC

WMUL, DWMUL
WMUL s1, s2, d
DWMUL s1, s2, d

Multiplie s1 par s2 et mmorise le rsultat en d .


WMUL permet de travailler sur les valeurs de type Word et DWMUL sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
d O O O

Le rsultat de 1234H * 1234H est mmoris en D1 en tant que double word de valeur
14B5A90H.

D0 1234H
D1 5A90H
D2 14BH

Le rsultat de 123456H * 1234H est mmoris en D2 avec la valeur 4B60AD78H

D0 3456H
D1 0012H
D2 0AD78H
D3 4B60H
D4 0
D5 0

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 329


Manuel utilisateur CUBLOC

WDIV, DWDIV
WDIV s1, s2, d
DWDIV s1, s2, d

Divise s1 par s2 et mmorise le rsultat en d (le reste est dans d+1/ ).


WDIV permet de travailler sur les valeurs de type Word et DWDIV sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
d O O O

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 330


Manuel utilisateur CUBLOC

WOR, DWOR
WOR s1, s2, d
DWOR s1, s2, d

Effectue un OR logique entre s1 et S2 et mmorise le rsultat en d .

WOR permet de travailler sur les valeurs de type et DWOR sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
d O O O

Le rsultat du programme LADDER est visible ci-dessous:

D0 1200H
D1 34H
D2 1234H

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 331


Manuel utilisateur CUBLOC

WXOR, DWXOR
WXOR s1, s2, d
DWXOR s1, s2, d

Effectue un XOR logique entre s1 et S2 et mmorise le rsultat en d .

WXOR permet de travailler sur les valeurs de type et DWXOR sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
d O O O

Le rsultat du programme LADDER est visible ci-dessous:

D0 1234H
D1 0FFH
D2 12CBH

Lorsque vous dsirez inverser un bit spcifique, vous pouvez utiliser une opration logique de
type XOR.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 332


Manuel utilisateur CUBLOC

WAND, DWAND
WAND s1, s2, d
DWAND s1, s2, d

Effectue un AND logique entre s1 et S2 et mmorise le rsultat en d .

WAND permet de travailler sur les valeurs de type et DWAND sur les Double Word.

Registres utilisables P M F S C T D Constantes


s1 O O O O
s2 O O O O
D O O O

Le rsultat du programme LADDER est visible ci-dessous:

D0 1234H
D1 0FFH
D2 34H

Vous pouvez utiliser une opration logique de type AND lorsque vous dsirez utiliser seulement
un bit spcifique.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 333


Manuel utilisateur CUBLOC

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.

Registre utilisable P M F S C T D Constantes


d O O O

C d

Si D0 la valeur 8421H, on obtient le rsultat suivant:

D0 0843H
D1

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 334


Manuel utilisateur CUBLOC

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.

Registre utilisable P M F S C T D Constantes


d O O O

d C

Si D1 la valeur 8421H, on obtient le rsultat suivant:

D0
D1 0C210H

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 335


Manuel utilisateur CUBLOC

GOTO, LABEL
GOTO label
LABEL label

La commande GOTO permettra au LADDER de se rendre une tiquette spcifique.


Label indique le nom de cette tiquette .

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 336


Manuel utilisateur CUBLOC

CALLS, SBRT, RET


CALLS label
SBRT label

CALLS permet dappeler une sous-routine.


SBRT est le point de dpart de la sous-routine.
RET est le point darrt de la sous routine.

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

Sta rt o f su b -ro u tin e

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 337


Manuel utilisateur CUBLOC

INTON
INTON s,d

La commande INTON est identique la commande WMOV lexeption que cette dernire peut
tre lorigine dune interruption en BASIC.

Registres utilisables P M F S C T D Constantes


s (Source) O O O O
d (Destination) O O O

TND

TND est une commande se sortie conditionnelle. Lorsque lutilisateur dsire stopper un
scanning du Ladder, il pourra avoir ecours cette commande.

Lorsque P0 est ON, le Ladder sera stopp.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 338


Manuel utilisateur CUBLOC

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 339


Manuel utilisateur CUBLOC

* Si vous crivez 1 en F40, vous pouvez gnrer un LADDERINT en BASIC. Consultez la


description de la commande ON LADDERINT GOSUB pour davantage dinformations.

* F2 provoque un 1 Scan ON au moment de la commande BASIC SET LADDER ON .

* Les Registres vierges non expliqus sont rservs pour des usages futurs. Il conviendra
de ne pas les utiliser.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 340


Manuel utilisateur CUBLOC

Chapitre 11.
Tutorial : Premires
applications en
BASIC et LADDER

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 341


Manuel utilisateur CUBLOC

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 :

- Rfrence 18-AI type support CI 24 broches pour le module CB220.


- Rfrence CON-CB280 jeu de 2 connecteurs pour le module CB280.
- Rfrence CON-CB290 jeu de 3 connecteurs pour le module CB290.
- Rfrence CON-CB405 jeu de 3 connecteurs pour le module CB290.

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 342


Manuel utilisateur CUBLOC

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-PROTO Platine en kit MPROT-CB280 Platine en kit


pour le module CB220. pour le module CB280

CB280-PROTO Platine monte CB290-PROTO Platine monte


pour le module CB280. pour le module CB290.

CB220-I/O Cell Base Platine monte CB280-I/O Cell Base Platine monte
monte pour le module CB220. pour le module CB280.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 343


Manuel utilisateur CUBLOC

Platine dinterface CUBLOC Header Board Platine dinterface Quick-Start-Board

CUBASE-32M Platine monte pour le module CB280 (prochainement disponible consultez-nous).

CUBASE-64M Platine monte pour le module CB290 (prochainement disponible consultez-nous).

CUSB-22D Platine monte pour le module CB280

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 344


Manuel utilisateur CUBLOC

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.

Note spciale pour les utilisateurs des modules CUBLOC CB220 :


Comme indiqu en dbut de documentation, les modules CB220 sont compatibles broches
broches avec des modules 24 broches dune autre marque galement programmables en
BASIC. Ceci pourra vous permettre de rutiliser vos platines existantes pour les modules
CUBLOC CB220. Toutefois pour pouvoir y parvenir, il vous faudra shunter un condensateur
prsent sur vos platines au niveau du signal DTR (en effet cette capacit est pr-intgre sur le
module CUBLOC et si vous ne shuntez pas directement celle-ci sur la platine, le CUBLOC
gnrera des messages derreurs lors des phases de programmation). Voir les schmas ci-
dessous avec lindication du condensateur shunter.

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 345


Manuel utilisateur CUBLOC

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).

Note concernant linstallation du driver de ce cble :

- 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 .

- Cliquez ensuite sur longlet Matriel , puis sur la slection Gestionnaire de


priphriques , puis double cliquez sur la slection Ports (COM et LPT).

- 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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 346


Manuel utilisateur CUBLOC

- 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.

Note concernant lutilisation du driver de ce cble :


Lorsque vous avez fini dutiliser le CUBLOC et que vous teignez votre PC, il conviendra de
dconnecter le cble du port USB du PC. A la remise sous tension du PC, une fois le systme
dexploitation oprationnel, reconnectez nouveau le cble sur le port USB afin que ce dernier
soit de nouveau correctement dtect (en cas contraire, si vous avez laiss le cble connect
sur le port USB et que le PC est allum, il se peut que le cble ne soit pas automatiquement
reconnu de nouveau dans ce cas, dconnectez-le du port USB attendez quelques instants et
reconnectez-le nouveau).

Installation du logiciel CUBLOC Studio :


Consultez la feuille dinstallation livre avec votre module CUBLOC afin de savoir o trouver
le logiciel sur le CD-ROM joint (la procdure est trs simple et repose sur le dcompactage du
programme et lexcution dun programme dinstallation conventionnel qui pourra vous crer -
- si vous le dsirez - une icne sur votre bureau).

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.

Pensez galement vous connecter rgulirement sur le site www.comfiletech.com (rubrique


Download ) pour tlcharger les mises jours.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 347


Manuel utilisateur CUBLOC

La platine CUBLOC Study Board :


Les pages qui suivent vont vous permettent de raliser respectivement votre premier
programme en langage BASIC, votre premier programme en langage LADDER et votre
premire application qui exploitera la fois une programmation en langage BASIC et LADDER.
Pour ce faire, nous avons choisi dutiliser la platine CUBLOC Study Board qui est
idalement conue pour lvaluation. Cette dernire est galement utilise dans la plupart des
notes dapplications ddies aux CUBLOC que vous pourrez retrouver sur le CD-ROM ou sur
notre site Internet www.lextronic.fr.

Description de la platine :

(1) RS232 CH1


Contact (2) CB280 TX/RX
P IE ZO Contact

Download Port
Reset Switch Contact
(LED, S/Ws)

(3)ALCD
Connector

I/O Ports
Contact

CuNET

(4)CuNET
Jumper

Bread Board

DC 9V INPUT RS232 CHANNEL 1 POWER S/W

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 348


Manuel utilisateur CUBLOC

La platine CUBLOC Study board comprend :

- 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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 349


Manuel utilisateur CUBLOC

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.

Schma thorique de la platine CUBLOC Study Board

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 350


Manuel utilisateur CUBLOC

Ralisation de votre premier programme BASIC


Commencez en premier lieu par vrifier que linterrupteur au dos de la platine soit sur la position
OFF . Insrer ensuite avec prcaution le module CUBLOC CB220 sur le haut de son
support 40 broches en utilisant comme repre le marquage 24 PIN . Vrifiez galement le
sens du module CUBLOC (le repre avec le demi rond blanc doit tre vers le haut de la
platine comme indiqu sur le support). Si vous utilisez un CB280 vous disposez dun ergot en
haut gauche servant de repre.

Allumez ensuite votre PC et raccordez le cble de programmation sur le connecteur sub-D 9


broches du dessus (celui avec le marquage DOWNLOAD ). Alimentez alors la platine
laide dune tension rgule et filtre de +9 Vcc (la polarit de la tension na pas dimportance).
Il vous faut par contre utiliser imprativement et uniquement une tension de + 9 Vcc (nous
proposons un bloc tout indiqu sous la rfrence PSU10R si ncessaire).

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

Ainsi la retranscription du montage ci-dessus sur la platine CUBLOC Study Board


ncessitera que vous ralisiez les pontages suivants laide de fils lectriques.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 351


Manuel utilisateur CUBLOC

Les 2 premiers boutons-poussoirs en partant de la gauche correspondront donc respectivement


aux boutons START et STOP et la Led L7 sera utilise.

- Avant de lancer le programme du CUBLOC Studio sur votre PC, effectuez la


manipulation indique en page 100 de ce manuel (celle-ci vous permettra de raliser une
configuration ncessaire au bon fonctionnement du logiciel mme si lopration demande
ne concerne pas lexemple du tutorial, elle aura le mrite dtre faite une fois pour toute et
de ne pas gner vos dveloppements futurs).

- Excutez ensuite le programme CUBLOC Studio sur le PC.

- 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.

Si vous utilisez un cable de raccordement USB, slectionnez alors ne N de port COM


virtuel pralablement choisi (voir page 346). Validez la slection avec le bouton Ok .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 352


Manuel utilisateur CUBLOC

- Allez enfin dans le menu File et slectionnez New .


Saisissez alors le programme ci-dessous :

Const Device = cb220

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 .

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 353


Manuel utilisateur CUBLOC

Interprtation du programme :
Ce programme trs simple se droule au sein dune boucle sans fin du type :

Do
.
.
.
Loop

La ligne de programme If In(0) = 1 Then a = 1 test ltat de lentre du port P0.


Si le bouton-poussoir qui est reli dessus est sollicit, le port passe au niveau logique 0 et selon
la condition de test, la variable a prendra la valeur 1.

La ligne de programme If In(4) = 1 Then a = 0 test ltat de lentre du port P4


Si le bouton-poussoir qui est reli dessus est sollicit, le port passe au niveau logique 0 et selon
la condition de test, la variable a prendra la valeur 0.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 354


Manuel utilisateur CUBLOC

Const Device = cb220

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.

Mise en uvre du mode DEBUG


Saisissez maintenant le programme suivant et excutez-le.

Const Device = cb220

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 355


Manuel utilisateur CUBLOC

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

Dans ce cas, lincrmentation de la valeur dcimale de a saffichera de faon permanente et


continue dans la fentre Debug. Le problme est que ds lors, le port de communication srie
initialement ddi au tlchargement du programme dans le CUBLOC sera monopolis pour
la remonte de la valeur de a dans la fentre de Debug et lorsque vous essayerez
nouveau de programmer le CUBLOC, ce dernier vous affichera dans la plupart des cas un
message derreur signalant quil narrive pas tlcharger son programme. Dans ce cas, il vous
faudra chaque fois fermer la fentre Debug et essayer nouveau de programmer le
CUBLOC jusqu temps que ce dernier arrive entrer en liaison avec le PC ! Dans certains
cas extrmes, lors de ces tentatives de programmation et de conflits de donnes prsentes sur
le port srie, le CUBLOC Studio pourra mme considrer que le CUBLOC a chang de
Firmware et vous demander si vous dsirez le reprogrammer.

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.

Vous connaissez maintenant les principes de base de la programmation dune application en


langage BASIC et nous vous invitons dvelopper vous-mme vos propres programmes.
Nhsitez pas tout de mme relire le chapitre de la page 47 relatifs aux prcautions dusages.
Ainsi gardez lesprit de ne jamais connecter un port du CUBLOC utilis en sortie sur un
bouton-poussoir ou un interrupteur par exemple (reconfigurez donc IMPERATIVEMENT vos
ports en entres avant de connecter des signaux dessus).

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 356


Manuel utilisateur CUBLOC

Ralisation de votre premier programme LADDER


Dans cette description, nous considrerons que vous avez dj insr le module CUBLOC sur
son support comme indiqu dans la procdure au bas de la page 351 et que vous avez dj
configur le N du port srie utilis pour la programmation comme indiqu en haut de la page
346. Commencez par vrifier que linterrupteur au dos de la platine soit sur la position OFF
et ralisez alors le cblage ci-dessous.

- Excutez alors le programme CUBLOC Studio sur le PC.

- Allez enfin dans le menu File et slectionnez New .

- Comme indiqu dans ce manuel, la programmation en LADDER ncessite toutefois de


dclarer au pralable certains paramtres par le biais dinstructions au sein dun mini
programme BASIC. Vous pouvez effectuer cette dclaration manuellement ou utiliser un
utilitaire spcialement ddi cet usage comme nous allons le faire ci-dessous.

- 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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 357


Manuel utilisateur CUBLOC

- 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).

- A ce stade, le petit programme BASIC dinitialisation du LADDER ralis de faon


automatique prendra place dans lditeur du BASIC. Cliquez alors sur longlet [F2] LADDER
ou tapez la touche de fonction F2 pour afficher la fentre de lditeur du LADDER et
saisissez le programme prsent en page suivante (aidez-vous de la description des
commandes en page 282 si ncessaire).

Le programme ci-dessous est prsent (sous le nom : essai3) sur notre site internet :
www.lextronic.fr.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 358


Manuel utilisateur CUBLOC

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).

Consultez galement la note concernant lapparition potentiel dun message propos du


Firmware du CUBLOC au bas de la page 366.

Si la programmation du CUBLOC se passe correctement, la Led 2 doit se mettre clignoter.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 359


Manuel utilisateur CUBLOC

Mise en uvre du mode Monitor :


Le CUBLOC Studio dispose dune puissante option qui vous permettra de visualiser
lexcution de votre programme et des diffrents Registres utiliss dans celui-ci.

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).

Mise en uvre du mode Time Chart Monitor :


Cette outil fait office en quelque sorte de mini analyseur logique ddi aux Registres des
modules CUBLOC. Pour activer ce dernier, il vous suffira ( condition que la fentre du
moniteur ne soit pas active), de slectionnez le menu Run , puis Time Chart Monitor.
Vous pouvez galement utiliser les petits signaux carrs verts dans la bote outils du haut de
lcran.

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.

Le curseur Time (ms) permet de rgler la frquence dchantillonnage (rglez temporairement


cette dernire sur 100) et choissiez un Zoom de valeur 4.

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 360


Manuel utilisateur CUBLOC

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 361


Manuel utilisateur CUBLOC

Ralisation de votre premier programme BASIC et LADDER


Cette petite application vous permettra de mettre en lumire les possibilits de fonctionnement
multitches des modules CUBLOC par le biais dun programme BASIC et LADDER qui
fonctionneront simultanment. Dans cette description, nous considrerons que vous avez dj
insr le module CUBLOC sur son support comme indiqu dans la procdure au bas de la page
351 et que vous avez dj configur le N du port srie utilis pour la programmation comme
indiqu en haut de la page 346. Commencez par vrifier que linterrupteur au dos de la platine
soit sur la position OFF et ralisez alors le cblage ci-dessous.

Le montage reprend exactement le mme cblage que pour lexemple du programme


LADDER de la page 266 en y ajoutant une liaison entre le premier potentiomtre de gauche
de la platine et le port P5 ainsi quune seconde liaison entre le port P4 et la Led 3 de la platine.
Une fois le cablge termin alimentez la platine et excutez le programme CUBLOC Studio
sur le PC.

- Allez ensuite dans le menu File et slectionnez New .

- 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)

- Cliquez sur la touche F1 et saisissez ensuite le programme BASIC prsent ci-dessous.

Cette application complte (programme BASIC et LADDER) est prsent (sous le nom : essai4)
sur notre site internet : www.lextronic.fr.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 362


Manuel utilisateur CUBLOC

Const Device = cb220


Usepin 0,Out,LED0
Usepin 2,Out,LED1
Usepin 3,Out,LED2
Usepin 13,In,BP0
Usepin 14,In,BP1
Set Ladder On
Dim pot As Integer
Input 5 Configure le Port P5 en entre
Do
Pot = Adin(5) Lecture de la tension du curseur du potentiomtre
If pot > 500 Then
Out 4,1 Allume la Led 3
Debug Dec pot,Cr Affiche la valeur dans la fentre Debug
Else
Out 4,0 Eteint la Led 3
End If
Loop

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.

Interprtation des programmes :


Le programme en LADDER napporte aucun commentaire puisquil fonctionne exactement
de la mme manire que celui dcrit en page 360 (cest normal il sagit su mme
programme !).

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

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 363


Manuel utilisateur CUBLOC

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.

Consultez le CD-ROM des CUBLOC ainsi que le site : www.lextronic.fr et www.cubloc.com


pour tlcharger de trs nombreuses notes dapplications sur les modules CUBLOC.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 364


Manuel utilisateur CUBLOC

Chapitre 12.
F.A.Q
CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 365


Manuel utilisateur 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 .

Q : Un message du type Invalid RS232C Port ! ! ! saffiche lorsque jessai de programmer


mon module CUBLOC ?

R : Vous avez probablement mal configur le N du port srie reliant le PC au CUBLOC ou le


cble de programmation nest pas reli au PC et/ou au CUBLOC. Si vous utilisez un cble
USB, vrifiez que ce dernier a t correctement dtect (dconnectez-le et reconnectez si
ncessaire sur le port USB). Vrifiez galement que votre systme dexploitation soit
Windows XP (dition familiale) Les autres versions ne sont pas compatibles.

Q : Un message derreur saffiche lorsque jessai de programmer mon module 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.

Q : Je narrive toujours pas (ou plus) dialoguer avec le module CUBLOC ?

R : Votre version du CUBLOC Studio est probablement plus rcente (ou plus ancienne)
que le Firmware du module CUBLOC.

Tlchargez et installez la dernire version jour du logiciel de dveloppement des CUBLOC


(CUBLOC Studio) sur le site Internet : www.comfiletech.com (rubrique Download) Contactez-
nous si vous ne disposez pas dune connexion Internet Ce logiciel est peut tre disponible sur
le CD joint avec les CUBLOC. Une fois le logiciel install, remettez jour le Firmware du
CUBLOC via le menu Setup , puis Firmware download . Le programme vous demande
si vous tre prt raliser la mise jour, validez par Oui . Une barre de progression saffiche
alors au bas gauche de lcran (lopration peut prendre plusieurs minutes).

Ne coupez PAS lalimentation de la platine et ne retirez pas la liaison srie entre le PC et le


module CUBLOC pendant cette opration. Laissez cette opration aller jusqu terme.

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 366


Manuel utilisateur CUBLOC

Q : Je narrive pas utiliser les fonctions mathmatiques de mes CUBLOC ?


(les rsultats semblent errons)

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 .

Ralisez alors un double click sur licne Options rgionales .

Cliquez ensuite sur le bouton Personnaliser et slectionnez le . (point) comme


symbole dcimal. Puis validez les modifications en cliquant chaque fois sur le bouton OK
pour referner les fentres.

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).

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 367


Manuel utilisateur CUBLOC

Chapitre 13.
Appendice
CUBLOC

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 368


Manuel utilisateur CUBLOC

Table de codes ASCII

Code char. Code char. Code char. Code char.


00H NUL 20H SPAC 40H @ 60H `
E
01H SOH 21H ! 41H A 61H a
02H STX 22H 42H B 62H b
03H ETX 23H # 43H C 63H c
04H EOT 24H $ 44H D 64H d
05H ENQ 25H % 45H E 65H e
06H ACK 26H & 46H F 66H f
07H BEL 27H 47H G 67H g
08H BS 28H ( 48H H 68H h
09H HT 29H ) 49H I 69H I
0AH LF 2AH * 4AH J 6AH j
0BH VT 2BH + 4BH K 6BH k
0CH FF 2CH , 4CH L 6CH l
0DH CR 2DH - 4DH M 6DH m
0EH SO 2EH . 4EH N 6EH n
0FH SI 2FH / 4FH O 6FH o

10H DLE 30H 0 50H P 70H p


11H DC1 31H 1 51H Q 71H q
12H DC2 32H 2 52H R 72H r
13H DC3 33H 3 53H S 73H s
14H DC4 34H 4 54H T 74H t
15H NAK 35H 5 55H U 75H u
16H SYN 36H 6 56H V 76H v
17H ETB 37H 7 57H W 77H w
18H CAN 38H 8 58H X 78H x
19H EM 39H 9 59H Y 79H y
1AH SUB 3AH : 5AH Z 7AH z
1BH ESC 3BH ; 5BH [ 7BH {
1CH FS 3CH < 5CH \ 7CH |
1DH GS 3DH = 5DH ] 7DH }
1EH RS 3EH > 5EH ^ 7EH ~
1FH US 3FH ? 5FH _ 7FH DEL

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 369


Manuel utilisateur CUBLOC

Rappel du brochage des modules CUBLOC

SOUT 1 17 VDD TX1 33 49 TTLTX1


SOUT 1 24 VIN (5.5V~12Vinput) RX1 34 50 TTLRX1
SIN 2 18 VSS
SIN 2 23 VSS ATN 3 19 RES AVDD 35 51 AVREF
ATN 3 22 RES VSS 4 20 N/C N/C 36 52 P48
SS_P0 5 21 P16 ADC0_P24 37 53 P31_ADC7
VSS 4 21 VDD
(Input_only)SCK_P1 6 22 P17 ADC1_P25 38 54 P30_ADC6
SS_P0 5 20 P15_HCNT1 ADC2_P26 39 55 P29_ADC5
MOSI_P2 7 23 P18
(Input only)SCK_P1 6 19 P14_HCNT0 MISO_P3 8 24 P19_PWM3 ADC3_P27 40 56 P28_ADC4
MOSI_P2 7 18 P13 P4 9 25 P20_PWM4_INT0 P47 41 57 P32
PWM0_P5 10 26 P21_PWM5_INT1 P46 42 58 P33
MISO_P3 8 17 P12
PWM1_P6 11 27 P22_INT2 P45 43 59 P34
P4 9 16 P11_TX(CH1) P44 44 60 P35
PWM2_P7 12 28 P23_INT3
PWM0_P5 10 15 P10_RX(CH1) (CUNET)SCL_P8 13 29 P15_HCNT1 P43 45 61 P36
PWM1_P6 11 14 P9_SDA(CUNET) (CUNET)SDA_P9 14 30 P14_HCNT0 P42 46 62 P37
P10 15 31 P13 P41 47 63 P38
PWM2_P7 12 13 P8_SCL(CUNET)
P11 16 32 P12 P40 48 64 P39

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

P7 12 32 P15 /AD7 P31 52 P39


P19 / INT 4
P18 / INT3
P16 / SCL
P17/ SDA

P56 13 33 P64 P40 53 73 P48


P57 14 34 P65 P41 54 74 P49
P58 15 35 P66 P42 55 75 P50
P88

P72
P73
P74
P75
P80
P81
P82
P83

P59 16 36 P67 P43 56 76 P51


P60 17 37 P68 P44 57 77 P52
81
82
83
84
85
86
87
88
89
90
91
92
93
94

P61 18 38 P69 P45 58 78 P53


P62 19 39 P70 P46 59 79 P54
P63 20 40 P71 P47 60 80 P55
95
96
97
98
99
100
101
102
103
104
105
106
107
108
PWM4 / P90
PWM5 / P91
P20
P21

P76
P77
P78
P79
P84
P85
P86
P87
HCNT0/ P22
HCNT1/ P23

Sout 1 21 Vdd TXE 41 61 TtlTXE


Sin 2 22 Vss RXE 42 62 TtlRXE
Atn
Vss
P0
3
4
5
23
24
25
RES
VBB
P16 / AD0
CB405 AVdd
Vdd
AD8 / P32
43
44
45
63
64
65
AVref
Vss
P48
SCK / P1 6 26 P17 / AD1 AD9 / P33 46 66 P49
Input
Only MOSI / P2 7 27 P18 / AD2 AD10 / P34 47 67 P50
MISO / P3 8 28 P19 / AD3 AD11 / P35 48 68 P51 / PWM9
P4 9 29 P20 / AD4 AD12 / P36 49 69 P52 / PWM10
PWM0 / P5 10 30 P21 / AD5 AD13 / P37 50 70 P53 / PWM11
PWM1 / P6 11 31 P22 / AD6 AD14 / P38 51 71 P54
PWM2 / P7 12 32 P23 / AD7 AD15 / P39 52 72 P55
RX2 / P8 13 33 P24 HCNT1 / P47 53 73 P63
TX2 / P9 14 34 P25 HCNT0 / P46 54 74 P62
P10 15 35 P26 P45 55 75 P61
PWM6 / P11 16 36 P27 / PWM3 P44 56 76 P60
PWM7 / P12 17 37 P28 / PWM4 /INT0 TX1 / P43 57 77 P59
PWM8 / P13 18 38 P29 / PWM5/ INT 1 RX1 / P42 58 78 P58
P14 19 39 P30 / INT2 SDA / P41 59 79 P57 / TX3
P15 20 40 P31 / INT3 SCL / P40 60 80 P56 / RX3

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.

(Traduction Franaise@2005- Copyright Lextronic Tous droits rservs) 370

Vous aimerez peut-être aussi