Présentation des modules CUBLOC

Principe de fonctionnement des modules CUBLOC 

Les CUBLOC™ sont de petits modules destinés à prendre place au cœur de vos applications afin d'en assurer une gestion "informatique". Ces derniers intègrent à la fois un microcontrôleur programmable en langage "BASIC" très évolué (proche du " C" ) ainsi qu’un mini-automate (PLC) programmable en langage contact, lesquels pourront être exploités simultanément de part la structure multitâches des CUBLOC™.

Il vous sera ainsi possible d’utiliser les modules CUBLOC™ uniquement en langage BASIC, uniquement en mode PLC ou avec 2 applications séparées (BASIC et PLC) fonctionnant en même temps ! Les CUBLOC™ sont donc tout indiqués pour les personnes ayant des connaissances dans l’une des 2 technologies (programmation BASIC ou langage contact), lesquels pourront commencer un développement sur des bases connues et s’essayer "progressivement" à l’autre technologie.

 

Principe de fonctionnement des modules CUBLOC

Pourquoi 2 technologies à la fois ? 
Le langage BASIC est par définition un langage de type séquentiel (lequel accompli des actions les unes après les autres). Ce langage est idéal pour pouvoir réaliser certaines fonctions comme la gestion d’afficheurs, de clavier, la réalisation de calcul mathématique ou du traitement de données). 

A l’inverse le lange contact permet aux PLC (mini-automate) de pouvoir traiter toutes les actions en "parallèle" selon une notion de temps de cycle (de durée fixe) pendant lequel le programme est lu du début jusqu'à la fin, quelle que soit sa longueur. 

Ces derniers sont donc tout indiqués pour pouvoir réaliser des traitements précis et immédiat sur des entrées/sorties. Dès lors l’utilisation conjointe des 2 types de technologies ouvre des possibilités de conception très élaborées et performantes jusqu’alors difficile à réaliser.
 

La structure des CUBLOC™
Les CUBLOC™ disposent d’une mémoire Flash destinée à recevoir vos programmes. L’espace dédié au programme BASIC (1) et l’espace dédié au langage contact (2) se partagent la même mémoire Flash d’une capacité totale de 80 K. Vous êtes libre d’utiliser toute la capacité uniquement pour un programme en BASIC ou uniquement pour un programme en langage contact ou bien de partager l’espace pour les 2 technologies, dès lors que l’ensemble ne dépasse pas les 80 K. 

  
Structure des modules CUBLOC
  
  

Les CUBLOC™ disposent d’une mémoire SRAM de 2 à 24 K (suivant modèle) dédié au programme BASIC et d’une mémoire SRAM de 1 à 4 K (commune au BASIC et au langage contact, laquelle vous permettra d’echanger des données entre les 2 technologies). A noter que certains modèles de CUBLOC™ disposent également d’une mémoire EEPROM additionnelle de 4 K. Les ports d’entrées/ sorties peuvent être indépendamment utilisé dans votre programme BASIC ou en langage contact. 
  
Note: Le nouveau CUBLOC "CB405" disposent encore plus de mémoire programme et de mémoire RAM.
  


Exemples d'utilisation des modules CUBLOC

 

Mise en oeuvre 
Les CUBLOC™ se programment très facilement par l'intermédiaire d'un compatible PC et du logiciel "CUBLOC Studio" qui transformera vos développements (en langage contact et en BASIC) en codes spécifiques, lesquels pourront alors être transférés dans la mémoire du CUBLOC™ par le biais d'une simple liaison série. 

L’environnement "CUBLOC Studio" vous permettra également de bénéficier de fonctions DEBUG qui simplifieront les phases de mise au point.

Une fois le CUBLOC™ "programmé", ce dernier pourra être déconnecté du "PC" pour devenir autonome afin de réaliser votre application par le biais de son microcontrôleur qui récupérera un à un les codes transférés pour les "traduire" en "actions" adéquates.
 

  
Que faut-il pour commencer ?


  
Comment commencer avec les modules CUBLOC
   
  
1) La première chose à acquérir est le module CUBLOC™ en lui même (choisissez ce dernier en fonction de ses possibilités et de votre application). 
 
   
2) Téléchargez ensuite librement le logiciel "CUBLOC Studio" et procurez-vous un câble série (ou un câble d’adaptation série <> USB si votre PC ne dispose pas de port série).  
   
3) Vous pourrez ensuite choisir une platine support optionnelle sur laquelle vous pourrez enficher votre CUBLOC™ (vous pouvez également réaliser votre propre platine support). 
   
4) Vous disposer d’une multitude de petits modules optionnels qui vous permettrons d’accélérer vos développements en vous proposant des sous-ensembles fonctionnels.
  
    
  
Exemple d'utilisation:

 


Etapes pour utiliser les modules CUBLOC

Ce petit exemple exploite un "CB280", associé à une platine d’essai "CUBLOC Study Board" et à un afficheur LCD alphanumérique à commande I2C™ "CLCD216-G". En quelques minutes, l’ensemble vous permettra d’afficher la valeur analogique (sous la forme d’un nombre compris entre 0 et 1023) présente sur un des potentiomètres de la platine d’essai. En combien de temps et en combien de lignes de code "assembleur" auriez-vous pu faire la même chose ?

1) Insérez le CUBLOC™ sur le support de la platine d’essai. 
    
2) Connectez l’afficheur LCD sur la platine d’essai. 
    
3) Connectez le câble de programmation au CUBLOC™. 
    
4) Reliez le potentiomètre à l’entrée du CUBLOC™. 
    
5) Alimentez la platine d’essai. 
    
6) Saisissez et exécutez lee programme ci-dessous via le logiciel "CUBLOC Studio".

DIM I AS BYTE                       ' Déclaration de la variable 'I'
SET DISPLAY 2,0,1,50           ' Configure port communication afficheur 
CLS                                        ' Efface afficheur
DO                                         ' Boucle sans fin
     I = ADIN(0)                       ' converti la valeur analogique de l'entrée 0
                                                du CUBLOC et sauvegarde valeur dans 'I'
LOCATE 0,0                           ' Place curseur en haut à gauche de l’écran
PRINT DEC(I)                          ' Affiche la valeur décimale de la variable 'I'
LOOP 
    
7) Tournez le potentiomètre et observez l’afficheur LCD. 
        
L’exploitation via une programmation en langage contact s’utilise exactement avec la même rapidité et simplicité.
 
 

A propos du logiciel de développement des CUBLOC 

Disponible en libre téléchargement en version complète ou fourni sur CD-ROM (avec les modules), le logiciel de développement dédié aux CUBLOC™ nécessite un compatible PC doté d’un système d’exploitation Windows™ XP à Windows 10.
 
Appelé "CUBLOC Studio", il est livré avec une notice entièrement en Français. Une fois exécuté, le logiciel vous donne accès à 2 fenêtres distinctes relatives à la programmation en BASIC et en langage contact.
    
  Téléchargez la dernière version du logiciel "CUBLOC STUDIO
 
  Documentation des modules CUBLOC (doc en Français)

  

          
Programmation en langage " BASIC "

Bien que reposant sur une programmation en BASIC (langage souvant dénigrée pour sa simplicité), la version supportée par les CUBLOC™ est à bien des égards très proche du langage "C" de par ses fonctionnalités et ses possibilités.

Il vous sera ainsi possible de créer des fonctions et de faire appel à des sous-routines, de réaliser des adressages mémoire via des pointeurs, d’utiliser des fonctions structurées telles que: 

Do.. Loop
Do until...
Do while
For (step) ... next
If... Then... Else
if... Endif
Select... Case.

  
Mais aussi d'avoir recours à des commandes "include" & "define" ainsi qu'à des commandes de compilation conditionnées permettant de modifier le code à compiler en fonction de vos spécifications.
    
La notion de "fonctions" vous permettra d'écrire une multitude de petites sous-routines capables de gérer chacunes des actions précises; actions que vous pourrez ensuite appeler et déclencher comme une "simple" instruction. A ce titre, nous proposerons très prochainement une base de fonctions prêtes à l'emploi qui vous permettrons de gérer des capteurs, des moteurs pas-à-pas, des boussoles électroniques, etc, etc....
  
Les CUBLOC peuvent gérer des variables de type BYTE (8 bits), INTEGER (16 bits), LONG (32 bits positif/négatif), SINGLE (32 bits virgule flottante), des chaînes de caratères ainsi que des tableaux jusqu’à 8 dimensions. De très nombreuses fonctions mathématiques sont également supportées lesquelles peuvent être facilement exploitées au sein d’instructions complexes.

  
Les CUBLOC disposent aussi de fonctions pour:
  
- La gestion des chaînes.
- Les conversions de formats entre données.
- Pour effectuer des traitements sur les octets, word, bit ou groupement de 4 bits.
- Pour pouvoir échanger des données entre la partie BASIC et langage contact.
    
Les CUBLOC peuvent également:
  
- Gérer des ports d’entrées/sorties.
- Lire des entrées de conversion analogique/numérique (avec ou sans OP amp).
- Communiquer avec de nombreux périphériques externes via les protocoles I2C, SPI, MODBUS et RS232 (la gestion RS232 se fait en tâche de fond
   grâce à la présence de buffers d’émission/réception).
  
Les CUBLOC disposent d’entrées de comptage et de sorties PWM (il vous sera ainsi possible de piloter directement 3 servomoteurs avec le module "CB220" et 6 servomoteurs avec les "CB289" et "CB290"). 
      
Les modules sont capables de gérer de multiples interruptions activés par un timer, ou suite à la réception de données dans le buffer RS232, ou via le programme du langage contact ou via des entrées externes (sur les "CB280", "CB290" et "CB405"). 
  
Les CUBLOC disposent enfin de fonctions spéciales qui leur premettrons de piloter très facilement et rapidement des afficheurs LCD/VFD, des afficheurs 7 segments à Leds ou un afficheur graphique spécialisés au travers d’une communication I2C ou RS232.
    

 
Les CUBLOC™ disposent de fonctions qui leur permettront de piloter très facilement des afficheurs LCD alphanumériques, des afficheurs LCD graphiques, des afficheurs 7 segments à Leds au travers d’une communication I2C™ ou RS232.
   
 
Puissant mode DEBUG intégré
Afin de faciliter la phase de mise au point et de développement, il vous sera possible de positionner des instruction spéciales à certaines lignes de votre programme qui vous permettrons de "remonter" la valeur de vos variables ainsi que d'autres informations diverses vers une fenêtre de Debug sur le PC.
 
Cette possibilité met à votre disposition un formidable outil qui vous permettra de développer vos applications encore plus rapidement.

       

Programmation en langage " Contact " (PLC) 


L’environnement "CUBLOC Studio" dispose d’une seconde fenêtre donnant accès à un puissant éditeur dédié à la programmation en langage contact. Ce dernier dispose d’une multitude de possibilités (création / insertion / effacement de cellules, édition des noms et des commentaires liés aux fonctions, etc...). 
  
Les CUBLOC™ disposent de différents types de fonctions (appelées Relay). Ainsi il vous sera possible de gérer des Relay de type:



- Entrées
- Sorties.
- Pour des gestion internes.
- De type Timer.
- De type compteur.
- Pour la mémorisation de données.
- Pour la gestion de séquences.
    
En plus de ces instructions de base, les CUBLOC™ disposent de commandes supplémentaires dédiés aux:

- Transferts de données
- A l’incrémentation / décrémentation de données
- A certaines opérations logiques et mathématiques et à la gestion sur les bits des données.

De plus, 2 puissants outils intégrés faciliteront la mise au point de vos applications.
  
  
          
  
Le premier est un mode "Moniteur" qui vous permettra de remonter l’état des Relay sur l’écran du PC lors de l’exécution du programme.
  
Le second est un écran analyseur qui vous permettra lorsque le CUBLOC™ est en action de faire l’acquisition de 8 de ses Relays (avec possibilité de réglage de la base de temps) afin de pouvoir ensuite visualiser toute la séquence mémorisée (avec des fonctions zoom) tout en ayant à votre disposition des curseurs de mesures que vous pourrez déplacer sur les différents signaux.
 
 

Liste des instructions des modules CUBLOC 

Vous trouverez ci-dessous une liste des instructions supportées par les modules CUBLOC. Cette liste est donnée à titre indicatif. Le langage des CUBLOC évolue au fil des différentes mise à jour proposées par le fabricant. De nouvelles instructions sont probablement désormais disponibles. Consultez la documentation des modules pour plus d'informations.


Instructions de base


ADIN 
ALIAS 
BCD2BIN 
BEEP   
BIN2BCD 
COUNT  
COUNTRESET  
DCD   
DECR  
DELAY  
DO ... LOOP  
DTZERO   
DELAY  
EEREAD  
EEADIN  
EEWRITE  
FOR ... NEXT 
FREQOUT  nce 
GOSUB ... RETURN 
GOTO   
LABEL  
IF...THEN ... ELSE... ENDIF     
IN  
INCR  
LADDERSCAN   
MEMADR  
NCD  
ON LADDERINT ... GOSUB 
PAUSE  
PEEK 
POKE   
RAMCLEAR  
RND  
SELECT... CASE 
SET DEBUG 
SET LADDER ™ 
SET MODBUS  
SET ONGLOBAL  
SET ONTIMER
TADIN  ues 
TIME  

TIMESET  
UDELAY  
USEPIN  
UTMAX  
HEAPCLEAR
HREAD

HWRITE

HEAPW
HEAPR

Lecture valeurs analogiques 
Attribution de noms aux relais
Conversion BCD -> Binaire
Génération BIP sonore 
Conversion Binaire -> BCD 
Lecture valeur entrée comptage 
RAZ compteur 
Retourne position 1er bit à 1 
Décrémente une valeur 
Génération d’une temporisation  
Génération d’une boucle 
Décrémente variable jusqu’à 0 
Génération d’une temporisation 
Lecture valeur en EEPROM 
Lecture valeurs analogiques 
Ecriture valeur en EEPROM 
Gestion boucle 
Génération d’une fréquence 
Sous-routine 
Saut inter-programme
Gestion d’étiquette 
Gestion conditions 
Lecture état d’une broche
Incrémente une valeur 
Efffectue scan Ladder™ 
Gestion pointeur mémoire 
Gestion sur bit d’une variable 
Saut vers Basic depuis Ladder™
Réalise temporisation 
Lecture valeur en RAM 
Ecriture valeur en RAM
Initialise données en RAM 
Génération pseudo-aléatoire 
Saut conditionnel 
Active/désactive DEBUG 
Active/désactive Ladder™ 
Configure MODBUS™ 
BAL Interruption ON/OFF
Interrup. Timer ON/OFF 
Lecture valeur moyenne 10 mesures  
Lecture heure/minute/seconde
/date/jour/mois/année (**) 
Configuration horloge RTC (**)
Génération temporisation 
Redéfinition nom ports E/S 
Icrémente jusqu’à valeur max.
Efface mémoire HEAP (***)
Lecture nombre d'octets depuis
mémoire HEAP (***)
Enregistre nombre d'octets dans
mémoire HEAP (***)
Enregistre 1 octet dans mémoire HEAP (***)
Lecture 1 octet depuis mémoire HEAP (***)

       
  
Gestion des " entrées / sorties "

BYTEIN  
BYTEOUT   
EKEYPAD   
HIGH   
INPUT   
KEYIN   
KEYINH   
KEYPAD   
LOW   
ON INT  
ON PAD  
OUT   
OUTPUT   
OUTSTAT   
PULSOUT   
REVERSE   
PWM 
COMPARE
FREEPIN 
STEPPULSE 
STEPSTOP
STEPSTAT()
SET INT  
SET ONINT  
SET ONLADDERINT
                 

Lecture de 8 entrées à la fois
Sort valeur sur 8 bits à la fois
Lecture clavier 64 touches
Place broche au niveau haut
Configure broche en entrée
Lecture entrée (avec anti-rebond)
Idem ci-dessus
Lecture clavier 16 touches
Place broche au niveau bas
Gestion interruption externe (*)
Gestion interruption clavier
Sélectionne état d’une broche
Configure broche en sortie
Retourne état d’une sortie
Génération impulsion
Inverse état d’une broche
Génération signal PWM
Comparaison compteur
Délestage port PLC pour BASIC
Génération d'un nombre d'impulsion
Stop génération des impulsions
Retourne nombre d'impulsions générées
Configure interruption ext.
Interruption ext. ON/OFF
Interruption Ladder™ ON/OFF

      
  
Gestion communication Bus " I2C™ "

I2CSTART    
I2CSTOP  
I2CREAD
I2CREADNA                              
I2CWRITE  
SETI2C 

Génère condition start I2C™
Génère condition stop I2C™
Lecture octet sur bus I2C™
Lecture octet sur bus I2C™
Envoi octet sur bus I2C™
Attribution broches I2C™

     
  
Gestion communication Bus " SPI™ "

SHIFTIN   
SHIFTOUT
                               

Lecture port SPI™
Envoi données port SPI™

 
      
Gestion d'afficheurs Alphanumériques à commandes " Série / I2C™ "

SETDISPLAY                              
CLS  
CSRON  
CSROFF  
LOCATE  
PRINT 

Initialisation LCD utilisé 
Efface l’écran LCD 
Active curseur
Désactive curseur
Positionne le curseur
Affiche texte

     
  
Gestion d'afficheurs graphiques à commandes " Séries / I2C™ "

CLS                                           
CLEAR 
CSRON/OFF 
LOCATE  
LAYER  
GLAYER 
OVERLAY   
CONTRAST   
LIGHT  
FONT  
CMODE  
LINE / LINETO 
BOX  
BOXCLEAR  
BOXFILL 
CIRCLE  
CIRCLEFILL  
ELLIPSE  
ELFILL  
GLOCATE  
GPRINT / DPRINT 
OFFSET  
PSET  
COLOR  
LINESTYLE 
DOTSIZE  
PAINT  
ARC  
DEFCHR  
BMP  
GPUSH / GPOP 
GPASTE / HPOP 
HPUSH / HPASTE

Efface l’écran LCD 
Efface couche texte/graphique
Active / désactive curseur
Positionne le curseur
Configuration couches
Configuration couches
Config. interration couches
Configure le contraste
Configure la luminosité
Configure taille de la fonte
Configure style curseur 
Tracé d’une ligne
Tracé d’un rectangle
Efface un rectangle
Trace un rectangle plein
Trace un cercle 
Trace un cercle plein
Trace une ellipse
Trace une ellipse pleine
Gestion position couche
Affichage texte
Sélectionne espacement lettre
Affiche un pixel
Sélectionne état pixel
Sélectionne type de ligne
Sélectionne taille pixel
Rempli une surface
Dessine un arc de cercle
Redéfinition d’un caractère
Gestion dessin format BMP
Gestion dessin couche
Gestion dessin couche
Gestion dessin couche

     
  
Gestion d'afficheurs 7 segments à commandes " I2C™ "

CSGDEC                                    
CSGHEX  
CSGNPUT  
CSGXPUT 

Affiche valeur décimale
Affiche valeur héxadécimale
Sélectionne module afficheur
Affiche un digit particulier

     
  
Gestion communications série " RS-232 " 

BCLR                                          
BFREE  
BLEN  
CHECKBF  
GET  
GETCRC
SETRS485
GETSTR 
GETSTR2 
GETA 
GETA2 
ON RECEV1 
ON TIMER 
OPENCOM  
PUT  
PUTSTR  
PUTA  
PUTA2
SET UNTIL 
SET ONRECV 
SYS 

Efface buffers RS232
Retourne taille buffer RS232
Récupère Nb données buffer RS232
Lecture buffer RS232
Récupère données buffer RS232
Calcul de CRC
Configure port en "RS485" (avec module optionnel)
Récupère chaîne buffer RS232
Récupère chaîne buffer RS232
Données RS232 -> variable
Données RS232 -> variable
Saut sur réception RS232
Interruption temporelle
Ouvre communication RS232
Envoi données sur RS232
Envoi chaîne sur RS232
Envoie variable sur RS232
Envoie variable sur RS232
Condition sur RS232
Interrup. RS232 ON/OFF
Lecture état buffer RS232

 
      
Fonctions " mathématiques "

SIN                                             
COS
TAN 
ASIN
ACOS
ATAN  
SINH
COSH
TANH   
SQR  
EXP  
LOG
LOG10 
ABS  
FLOOR 

Calcule SIN 
Calcule COS 
Calcule TAN 
Calcule Arc Sinus
Calcule Arc Cosinus 
Calcule Arc Tangente 
Calcule sinus hyperbolic 
Calcule cosinus hyperbolic
Calcule tangente hyperbolic
Calcule racine carée
Calcule exponentiel
Calcule Log
Calcule Log10
 Calcule valeur absolue
Calcule arrondi

    
   
Fonctions de " conversions "

VALHEX
HEX                                             
DEC     
FLOAT
FP   

Conversion chaîne en valeur hexadécimale
Conversion en valeur hexadécimale
Conversion en valeur décimale
Conversion numérique en chaîne
Conversion variable virgule flottante en chaîne

     
  
Fonctions de gestion de " chaînes "

DP                                              
HP  
LEFT  
RIGHT  
MID  
LEN  
STRING  
SPC  
LSTRIM  
RTRIM  
VAL  
VALSNG  
CHR  
ASC 

Conversion chaîne en numérique
Conversion chaîne en hexadécimal
Récupération X caractère(s) gauche chaîne
Récupération X caractère(s) droit chaîne
Récupération X caractère(s) milieu chaîne
Retourne taille d’une chaîne
Création chaîne de caractères
Création chaîne de caractère vide
Supprime caract. gauche vides
Supprime caract. droit vides
Conversion chaîne en numérique
Conversion chaîne en numérique
Retourne valeur ASCII d’un caractère
Retourne valeur ASCII chaîne

    

(*) Fonctions non présentes sur le "CB220"
 
(**) Sur les "CB220 / CB280 / CB280CS / CB405", cette fonction utilise les Timers internes pour gérer l'horloge interne. Sur le module "CB290", une horloge RTC est utilisée pour une plus grande précision.
    
(***) Fonctions présentes uniquement sur le "CB405" 
Publié dans: Default category

Laisser un commentaire

Chargement...
Retour en haut