Codesys

CODESYS on ohjauslaitteiden, kuten ohjelmoitava logiikka, ja sulautettujen järjestelmien ohjelmointiin tarkoitettu kansainvälisen IEC 61131-3 normin mukainen ohjelmointiympäristö.

Esittely
CODEYSin on kehittänyt ja sitä markkinoi saksalainen ohjelmistoyritys 3S-Smart Software Solutions, joka sijaitsee Kemptenin kaupungissa Baijerissa. 
Ensimmäinen versio, V.1.0, julkaistiin vuonna 1994. CODESYS on lyhenne sanoista COntroller DEvelopment SYStem. CODESYS on lisenssivapaa ilmaisohjelma ja sen voi ladata yrityksen kotisivuilta.
Ohjelmointiympäristö kattaa teollisuusautomaation eri lajit yhdessä ohjelmistossa.

Tekniikka
Ohjelmointikielinä CODESYS kehitysympäristössä ovat kaikki viisi IEC 61131-3 normin mukaista ohjelmointitapaa.

Tekstieditorit:
 IL (Instruction list) eli käskylista, muistuttaa assembler-ohjelmointikieltä 
 ST (Structured text) eli rakenteinen teksti, muistuttaa Pascal- ja C-kieliä

Graafiset editorit:
 LD (Ladder logic) eli tikapuu- tai relekaavio-ohjelmointi yhdistää virtapiirit virtuaalisesti
 FBD (Function block diagram) eli toimilohkokaavio visuaaliseen ohjelmointiin 
 SFC (Sequential function chart) eli vuokaavio-ohjelmointi askelmaiseen ohjelmointiin

Lisäksi CODESYS sisältää graafisen editorin, joka ei ole IEC normin mukainen:

 CFC (Continuous Function Chart) eli sekvenssikaavio-ohjelmointi muistuttaa lähinnä vapaalla kädellä ohjelmoitavaa toimilohkokaaviota (FBD). 

Toimintolohko-ohjelmoinnissa kytkennät lohkojen tulojen ja lähtöjen välille muodostetaan automaattisesti. Sekvenssikaavio-ohjelmoinnissa pitää ohjelmoijan piirtää ne. 
Kaikki lohkot voidaan asetella vapaasti, mikä mahdollistaa takaisinkytkentäsilmukoiden tekemisen ilman apumuuttujia.

Integroidut kääntäjät muuntavat CODESYSillä luodun sovelluskoodin natiiviksi konekieliseksi binäärikoodiksi, joka sen jälkeen ladataan ohjaimeen. Tärkeimmät 16- ja 32-bittiset suoritinperheet (CPU) ont tuettu,
kuten C166, TriCore, 80x86, ARM/Cortex, Power Architecture, SH, MIPS ja BlackFin.

CODESYS ohjelman ollessa yhteydessä ohjaimeen, se tarjoaa laajat käännöstoiminnot, kuten monitorointi/kirjoitus/pakotus, asettamalla kirjanmerkkejä/suorittamalla yksittäisiä askelia tai tallentamalla muuttujien arvoja yhteydessä olevan ohjaimen rengaspuskuriin (Näytteenoton jäljitys).

CODESYS V3.x perustuu ns CODESYS Automation Platform -alustaan, joka on automaatiojärjestelmärunko laitevalmistajille. Nämä voivat laajentaa CODESYSiä omilla liitännäismoduuleillaan.

CODESYS Professional Developer Edition tarjoaa mahdollisuuden lisätä lisenssinalaisiin työkaluihin komponentteja, kuten esimerkiksi integroidun UML-kielen tuen, yhteyden SVN-versionhallintaan tai sovelluskoodin staattisen analysoinnin.

Maksuttomalla CODESYS Application Composer -ohjelmistolla voidaan luoda IEC 61131-3 automaatiosovelluksia. Koneen tai laitoksen konfigurointi voi perustua moduuleihin, esim. määritellään koneen mekaaninen rakenne tai käytettävät ohjelmatoiminnot jotka sisältävät koko projektin sisältämät toiminnot.

Runtime
CODESYS Control Runtime Systemin implementoinin jälkeen älykkäät ohjainlaitteet voidaan ohjelmoida CODESYSllä. Maksullinen Toolkit sisältää tämän Runtime systemin lähde- ja objektikoodin ja se voidaan sovittaa eri alustoille.

Kenttäväyläteknologia
Erilaisia kenttäväyliä voidaan käyttää suoraan CODESYS ohjelmointiympäristössä. Tähän tarkoitukseen on olemassa konfigurointityökalut yleisimpiin kenttäväyliin, kuten Profibus, Modbus RTU ja TCP, CANopen,CAN-väylä, EtherCAT, Profinet, Ethernet IP sekä Ethernet TCP/IP. Joihinkin järjestelmiin on saatavilla protokollapinot CODESYS-kirjastosta, jotka voidaan ladata erikseen.

FDT (Field Device Tool) -standardin avulla voidaan liittää kolmansien osapuolten laitekohtaisia rajapintoja. Kommunikointi näiden rajapintojen kautta toteutetaan DTM-laitekuvauksen (Device Type Manager) luomalla yhteydellä.

Visualisointi
Integroitu editori auttaa käyttäjää luomaan näyttöjen ja käyttöliittymien visualisoinnit suoraan CODESYS ohjelmointiympäristössä ja niiden animointi perustuu sovelluksen muuttujiin. Saatavilla olevat valmiit visualisointielementit helpottavat  sovellusten tekoa. Optiona saatavilla oleva toolkit mahdollistaa omien elementtien tekemisen. Nän luotuja näyttöjä voidaan käyttää sovellusten testauksessa ja käyttöönotossa ohjelmointiympäristön ollessa yhteydessä ohjaimeen. 
Yhdessä visualisointi-asiakasohjelmiston kanssa näitä näyttöjä voidaan käyttää myös koneiden ja laitosten ohjauksissa (jolloin ohjain ja näyttö on yhdistetty samaan laitteeseen), nettiselaimessa (verkkoselain) tai siirrettävässä runtimessä Windows tai Linux alustalla.

Liikkeenohjaus 
CODESYS SoftMotion on ohjelmointiympäristöön integroitu modulaarinen lisäsovellus, joka mahdollistaa monimutkaisten liikkeiden ohjauksen IEC 61131-3 ohjelmoinnilla. 
Modulaariset sovellukset sisältävät:
 Editorit liikkeenohjaukseen. esimerkiksi CAM-ohjaus tai DIN 66025 normin mukainen CNC -ohjaus.
 Ohjelmakirjastot dekooderille, interpolointiin, ohjelman suoritukseen, esimerkiksi PLCopen MotionControlin mukaisesti, kinematiikkamuunnoksiin ja visualisointimalleille.

Turvallisuus
Jotta saavutettaisiin riskiarvion perusteella vaadittava turvallisuuden eheystaso (Safety Integrity Level/SIL), kaikkien järjestelmän komponenttien tulee täyttää kyseisen tason vaatimukset. Esisertifioidut ohjelmistokomponentit CODESYS-ohjelmistossa helpottavat laitevalmistajien ohjaimien hyväksyntää SIL2 tai SIL3 turvatasoihin. CODESYS Safety koostuu komponenteista, jotka sisältyvät ohjelmointiympäristöön ja runtime systemiin, kun taas projektisuunnittelu on kokonaan integroitu IEC 61131-3 ohjelmointimpäristöön.

Käyttö teollisuudessa
Yli 350 laitevalmistajaa eri teollisuusaloilta tarjoaa älykkäitä CODESYS ohjelmoitavia automaatiolaitteita. Sen vuoksi tuhannet loppukäyttäjät, kuten koneiden ja tehtaiden rakentajat, ympäri maailmaa käyttävät CODESYSiä kaikenlaisissa automaatiosovelluksissa. 

CODESYS Device Directory –laitevalmistajakirjasto tarjoaa yleiskatsauksen lähes 400 laitteeseen jotka ovat CODESYS ohjelmoitavia. Nämä johtavat laitevalmistajat ovat aloilta, kuten ohjaus- ja säätötekniikka, automaatiokomponentit ja sulautetut järjestelmät.

Katso myös
 IDE Ohjelmointiympäristö
 Ohjelmointi
 Automaatio
 Prosessitekniikka
 Ohjelmoitava logiikka
 Sulautettu järjestelmä
 Pascal (ohjelmointikieli)

Aiheesta muualla 
 Homepage of 3S-Smart Software Solutions 
 CODESYS Device Directory 
 CODESYS Store	
 Homepage CODESYS Users' Conference 
 http://www.oscat.de/ OpenSource library for version 2 and 3 of CODESYS
3S - Smart Software Solutions GmbH kotisivut

Kirjallisuutta
Saksankielistä:
 B. Vogel-Heuser/A. Wannagat (2008) Modulares Engineering und Wiederverwendung mit CoDeSys V3, Oldenbourg Industrieverlag
 Herbert Bernstein (2007) SPS-Workshop mit Programmierung nach IEC 61131 mit vielen praktischen Beispielen, mit 2 CD-ROM, VDE Verlag.
 Prof. Dr. Birgit Vogel-Heuser (2008) Automation & Embedded Systems, Oldenbourg Industrieverlag.
 Heinrich Lepers (2005) SPS-Programmierung nach IEC 61131-3 mit Beispielen für CoDeSys und STEP 7, Franzis Verlag
 Günter Wellenreuther/Dieter Zastrow (2007) Automatisieren mit SPS - Übersichten und Übungsaufgaben, Vieweg Verlag.
 Norbert Becker (2006) Automatisierungstechnik, Vogel Buchverlag.

Muilla kielillä:
 Russian: Igor Petrov: Controller Programming: The standard languages and most important development tools. Solon Press, 2007
 Portuguese: Marcos de Oliveira Fonseca et al.(2008) Aplicando a norma IEC 61131 na automação de processos, ISA América do Sul.
 Norwegian: Dag Håkon Hanssen (2008) Programmerbare Logiske Styringer – baser på IEC 61131-3, tapir akademisk forlag.

Teollisuusautomaatio
Ohjelmointiympäristöt