# Citect

Citect est un éditeur de logiciels spécialisé dans les systèmes d'automatisation et de contrôle industriel. Les principaux logiciels commercialisés par Citect sont CitectSCADA, CitectFacilities, Switch2Citect, CitectSCADAReports et Ampla.

## Historique

Citect a commencé comme une filiale de Alfa Laval. La société était alors connue sous le nom de Control Instrumentation. Le nom changea ensuite pour devenir Ci Technologies, puis Citect afin de prendre en compte le nom bien connu de son logiciel phare, CitectSCADA.
Tout en étant reconnu comme éditeur de logiciels, Citect possède également un grand département de services professionnels qui a été le moteur de ses succès.
En 2006, Citect Pty Ltd a été racheté par le groupe Schneider Electric. Depuis la fin de l'année 2008, le nom a disparu et l'ensemble des activités ont été transférées au groupe.

## Historique des logiciels
### Citect pour DOS

Martin Roberts a écrit Citect pour DOS, paru en 1987, en réponse à la forte demande de logiciels d'interface opérateur basés sur PC de l'époque. Citect pour DOS consistait en une base de données de configuration (au format dBase), un bitmap (256 couleurs) et en un fichier d'animation. L'utilisateur pouvait représenter graphiquement un équipement en utilisant le package graphique disponible Dr Halo et en plaçant des « points d'animation » aux emplacements souhaités.
Les « Variables » étaient définies dans des bases de configuration ; elles correspondaient aux adresses existantes dans les équipements électroniques programmables avec lesquels Citect communiquait. En référençant ces variables aux variables d'animation via une autre base de configuration, l'utilisateur pouvait alors afficher l'état de l'équipement tel que marche, arrêt ou défaut, en temps réel.
Citect pour DOS pouvait communiquer avec de multiples équipements électroniques programmables via de nombreux liens séries inclus dans le produit ; certains au travers de connexions via le port série du PC, d'autres par le biais de cartes de communications spécifiques dédiées pour la communication avec tel ou tel équipement électronique programmable. Des drivers de communication furent écrits pour de nombreux protocoles ; son habileté à communiquer avec une grande variété d'équipements - et la possibilité d'obtenir de nouveaux drivers si nécessaire - fut un argument de vente prépondérant pour Citect.
La partie exécution du logiciel tournait sur une carte DSI, un coprocesseur 32 bits qui était inséré dans un port ISA du PC. Cela était dû au manque de capacité des PC 286 et 386 disponibles à cette époque.

### Citect pour Windows Version 1

Au début des années 90, la puissance de calcul des PC avait évolué et les logiciels basés sur Microsoft Windows devenaient populaires, ainsi Citect pour Windows fut développé et parut en 1992. Il ne nécessitait plus de tourner sur une carte DSI.
La méthode de configuration demeurait similaire à celle de Citect pour DOS mais devenait plus intuitive sous MS Windows. Citect pour Windows fut écrit en réponse directe à une demande de Argyle Diamonds. La société prévoyait initialement d'utiliser un système Honeywell jusqu'à ce qu'un grand nombre d'ingénieurs dArgyle eurent informé Citect des problèmes qu'ils avaient à utiliser ce système Honeywell. Argyle' contribua pour 1 million de dollars au développement de Citect pour Windows. À ce jour, la base de données d'alarmes ArgDig (ie Argyle Digital) existe toujours dans Citect.

### Version 2

En 1993 BHP Iron Ore a modernisé son interface utilisateur de Port Hedland en installant Citect pour Windows. Étant la plus grande installation Citect de l'époque, la version 1 montrait ses limites. La version 2 fut développée pour améliorer ses faiblesses. Des changements clés ont été réalisés dans la configuration graphique par Andrew Allan, l'utilisation de Dr Halo pour les points d'animation fut remplacée par le nouveau système CTG (Citect Graphics).
CTG combinait les anciens fichiers BMP/AN files en des fichiers orientés objet pour donner aux utilisateurs une apparence WISIWYG (« What you see is what you get »).
Le cadre du projet de Port Hedland nécessitait des fonctions additionnelles non incluses dans Citect Windows, mais grâce à l'ouverture du logiciel (en particulier grâce à l'utilisation de Cicode) de nombreuses fonctions additionnelles furent programmées.

### Versions 3 et 4

La version 3 de Citect pour Windows fut développée pour inclure un grand nombre de fonctions qui devaient être programmées auparavant, telles que l'indication des problèmes de communication avec un équipement affichant des données en temps réel. Alors que la version 2 était quelque peu instable, la version 3 était assez robuste. La version 4 était la même que la version 3 mais supportait la plateforme 32 bits de Windows NT.

### Versions 5 et 6

À cette époque, Citect pour Windows possédait la plus grande part de marché des interfaces opérateurs basés sur logiciels PC, mais les logiciels des nouveaux concurrents reprenaient les caractéristiques et fonctions de Citect et gagnaient en popularité. Citect commença à se concentrer davantage sur la compétitivité. La version 5 fut commercialisée ; elle contenait principalement des éléments visant à maintenir le logiciel en avant-garde sur le marché. La version 6 poursuivit cette tendance et comptait plus de fonctionnalités type SCADA en ajout au système de contrôle en temps réel qui demeure le noyau de Citect aujourd'hui.

### Version 7

La version 7 est sortie en août 2007 et est actuellement la dernière version de CitectSCADA. Elle apporte la notion de Clustering et de changement en ligne par rapport aux versions précédentes

## CitectSCADA

CitectSCADA est un logiciel HMI / SCADA de contrôle de PLC.

## Cicode

Cicode est un langage de programmation utilisé par Citect SCADA. Les structure et syntaxe du Cicode sont très proches de celles du Pascal, la principale différence étant que le cicode ne contient pas de pointeurs et concepts associés. Citect fournit une riche API qui inclut des constructions de programmation sophistiquées telles que tâches concurrentes et sémaphores.
Un exemple de Cicode est affiché ci-dessous. La fonction est utilisée pour écrire des informations dans un fichier.