Introduction

Par leur concept, les systèmes ADwin sont dédiés aux applications temps réel. Ils sont capables, non seulement de mettre en œuvre des programmes temps réel multitâches, mais il sont aussi en mesure de créer des applications multi processeurs. Cela s'avère particulièrement intéressant lorsque des conditions spécifiques sont rencontrées et qu'il devient alors plus simple, et plus efficace, de distribuer les tâches sur plusieurs cibles.


A titre d'exemple, si sur une machine spéciale, un équipement, un banc d'essais, sont équipés d'un bus numérique spécifique, quelle que soit son implémentation matérielle, et que ce bus impose un protocole lui aussi spécifique, il devient intéressant que la couche logicielle en charge de gérer ce protocole soit implantée sur une cible dédiée. Par exemple, une simple carte d'entrées/sorties numériques TTL. On implémentera alors sur le processeur local de cette carte la gestion de ce protocole. Ce processeur local pourra alors nourrir le processeur temps réel central de données directement utilisables.


Un autre exemple classique consiste à utiliser une carte de sorties analogiques équipée d'un coprocesseur pour générer des formes d'ondes arbitraires sans pour cela prendre des ressources au processeur temps réel central.


Les systèmes ADwin autorisent ce type de fonctionnement grâce à la présence sur certains systèmes, ou sur certains modules de la série ADwin-Pro II, d'un coprocesseur nommé TiCo.


Les coprocesseurs TiCo sont optimisés pour des tâches ou le contrôle temporel est important. Ils peuvent accéder aux ressources matérielles en un simple cycle d'horloge sans gigue (Jitter Free). Ce cycle d'horloge étant, selon les versions de 10ns ou de 5 ns. Cela permet donc de créer des applications avec des gestions de temps ou de déclenchement complexes.


Le langage TiCoBasic et son environnement de développement sont dédiés à la génération des codes exécutables par ces coprocesseurs.

Cibles

TiCoBasic est donc utilisable sur tous les systèmes ou modules équipés d'un coprocesseur TiCo. La liste de cibles possibles est donc la suivante :


 - ADwin-Gold II,
 - ADwin-Pro II. La liste des modules concernés est la suivante :


Modules multifonctions
Pro II-MIO-4 16 entrées analogiques, 4 sorties analogiques, 8 entrées/sorties numériques
Pro II-MIO-4-ET1 16 entrées analogiques, 4 sorties analogiques, 16 entrées/sorties numériques, compteurs, Ethercat
Pro II-MIO-D12 12 sorties transistor, 12 relais, 2 compteurs
Modules d'entrées analogiques multiplexées 8 voies 18 bits
Pro II AIN-8/18-LP30V-TiCo Gamme ± 30V. Filtres 10 KHz. Coprocesseur TiCo. Connecteurs LEMO
Pro II-AIN-8/18-LP30V-D-TiCo Gamme ± 30V. Filtres 10 KHz. Coprocesseur TiCo. Connecteur SubD 37
Pro II AIN-8/18-LP50-TiCo Filtres 50 KHz. Coprocesseur TiCo. Connecteurs LEMO
Pro II AIN-8/18-LP50-D-TiCo Filtres 50 KHz. Coprocesseur TiCo. Connecteur SubD 37
Modules d'entrées analogiques multiplexées 32 voies 18 bits
Pro II-AIN-32/18-D-TiCo 16/32 voies référencées/différentielles. Coprocesseur TiCo
Modules de sorties analogiques 16 bits
Pro II AOUT-4/16-TiCo 4 Voies. 3 µs. Coprocesseur TiCo. Connecteurs LEMO 1 pôle
Pro II AOUT-4/16-L2-TiCo 4 Voies. 3 µs. Coprocesseur TiCo. Connecteurs LEMO 2 pôles
Pro II AOUT-4/16-B-TiCo 4 Voies. 3 µs. Coprocesseur TiCo. Connecteurs BNC
Pro II AOUT-4/16-D-TiCo 4 Voies. 3 µs. Coprocesseur TiCo. ConnecteurSubD 37
Pro II AOUT-8/16-TiCo 8 Voies. 3 µs. Coprocesseur TiCo. Connecteurs LEMO 1 pôle
Pro II AOUT-8/16-L2-TiCo 8 Voies. 3 µs. Coprocesseur TiCo. Connecteurs LEMO 2 pôles
Pro II AOUT-8/16-B-TiCo 8 Voies. 3 µs. Coprocesseur TiCo. Connecteurs BNC
Pro II AOUT-8/16-D-TiCo 8 Voies. 3 µs. Coprocesseur TiCo. Connecteur SubD 37
Modules d'entrées/sorties numériques
Pro II DIO32-TiCo 32 entrées/sorties numériques TTL. Coprocesseur TiCo
Pro II DIO32/1-TiCo 32 entrées/sorties numériques TTL. Coprocesseur TiCo 1
Pro II DIO32-TiCo2 32 entrées/sorties numériques TTL. Coprocesseur TiCo 2
Modules Interfaces Bus Numériques et de Terrain
Pro II SPI-2-T 3 ports SPI TTL
Pro II SPI-2-D 2 ports SPI Différentiels

Utilisation de TiCoBasic

Comme ADbasic, TiCoBasic dispose de son propre environnement de développement. Hors les deux environnements et les deux langages sont, à l'exception de quelques fonctionnalités liées au matériel, strictement identiques. Apprendre ADbasic, c'est aussi apprendre TiCoBasic.


On peut donc se reporter aux rubriques suivantes pour appréhender le langage et l'environnement de développement :


  -Le développement temps réel
  -ADbasic (Environnement de développement)


La suite de cette rubrique se concentre donc exclusivement sur les quelques différences entre les deux langages et environnements.


Communication avec les coprocesseurs TiCo


Il n'existe pas de lien direct entre un PC hôte du système ADwin et les coprocesseurs TiCo potentiellement hébergés par le système. Seul le processeur temps réel central du système ADwin est en mesure de communiquer avec le ou les coprocesseurs. Cela impose quelques différences par rapport à ADbasic :


 - Le chargement des process fonctionnant sur un coprocesseur TiCo impose auparavant de mettre en œuvre la communication avec le processeur central. Sous TiCoBasic, deux boutons sont dédiés à ces deux étapes.
 - Une fois les process chargés sur un coprocesseur, ceux-ci sont autonomes par rapport au processeur central. Même si celui-ci est stoppé, les process fonctionnant sur les coprocesseurs continuent à s'exécuter.
 -Si l'application de supervision fonctionnant sur le PC doit lire or écrire des données vers un process fonctionnant sur un coprocesseur, elle doit passer par une variable globale partagée commune à ADbasic ou TiCoBasic.


Les process


Sur les coprocesseurs TiCo, un seul process haute priorité est autorisé. Un process de basse priorité est possible uniquement si le process de haute priorité est dépendant d'interruptions temps réel émanant d'un timer.


Jeu d'instructions


De par leur structure matérielle les coprocesseurs TiCo n'utilisent que le type de données LONG (entiers longs). Ils ne peuvent pas effectuer de calculs en virgule flottante.


Il n'est possible de définir que 16 tableaux globaux partagés sur le coprocesseur TiCo (contre 200 sur le processeur central).


TiCoBasic définit un type de structure de données nommé "RingBuffer". Cette structure est optimisée pour des accès et des transferts de données à très haut débit.


Certaines instructions ADBAsic sont absentes de TiCoBasic (comme par exemple les instructions de calcul trigonométrique). TiCoBasic définit également des instructions spécifiques.


Communication entre le processeur central et les coprocesseurs TiCo


Pour communiquer avec les coprocesseurs TiCo, le lange ADBAsic dispose d'un jeu d'instructions complémentaires lui permettant de charger, démarrer, stopper, suivre l'état des process fonctionnant sur les coprocesseurs. Il peut également lire et/ou écrire les variables globales de type PAR ou DATA défnies par le coprocesseur. Ces instructions sont l'équivalent, pour ADbasic, des fonctions de l'API ADwin utilisées par les programmes de supervision fonctionnant sur un PC hôte. Cette API est décrite à la rubrique : Pilotes (API).