Tyypillisiä ohjelmointimuotoja ovat
tikapuu- eli relekaavio (LD),
logiikkakaavio (FBD),
käskylista (STL),
lausemuotoinen strukturoitu teksti (ST).
Myös sekvenssiohjauksiin on sopiva sekvenssivuokaaviomuoto (SFC). Usein toistuviin samankaltaisiin ohjelmarakenteisiin sopii toimilohko-ohjelmointi (FB).
CX-Programmer-ohjelmistolla ohjaukset tehdään tyypillisesti relekaaviomuodossa. Ohjelmia voi luoda myös ST- sekä SFC-muodossa sekä hyödyntää toimilohkoja.
Ohjelma voidaan kirjoittaa ilman logiikkaa. Ohjelma luodaan ja talletetaan, testausta varten tarvitaan yleensä ohjelmoitava logiikka, joka kytketään ohjelmointiohjelmiston sisältävään tietokoneeseen esimerkiksi sarjaportin kautta. Muodostetaan yhteys logiikan ja tietokoneen välille, ja ladataan sovellusohjelma logiikkaan ja suoritetaan testaus. Ohjelmointiohjelmistoissa on eri tyyppisiä monitorointimahdollisuuksia logiikan muistien tilojen seuraamiseksi tai ohjaamiseksi. On myös mahdollista testata ohjelman toimintaa tietokoneessa pyörivässä simulointiohjelmistossa. CX- One-ohjelmistopaketti sisältää simulointiohjelmiston nimeltä CX-Simulator ja siinä voi testata CS1/CJ1/CJ2/CP1-logiikoiden ohjelmia.
Yksinkertaisimmillaan relekaavio-ohjelma muistuttaa ohjauspiirikaavioita. Avautuvilla ja sulkeutuvilla koskettimilla muodostetaan tarvittavista bittimuuttujista ehtologiikka, jonka tila kopioidaan kelalla haluttuun bittiin.
Käytännössä ohjelmissa esiintyy useita erilaisia bittejä tai sanoja käsitteleviä logiikkakäskyjä, joilla toteutetaan mutkikkaampia operaatioita.
On lausemuotoista IEC-ohjelmointikieltä. IEC-ohjelmoinnissa on hyvänä puolena, että samaa ohjelmakoodia voidaan soveltaa toisten ohjelmoitavien logiikoiden valmistajien laitteisiin.
Perusehtologiikan ohjelmointi on tällä tavalla hankalampaa verrattuna relekaavioon, mutta toisaalta mutkikkaampien laskutoimitusten ja ohjelmasilmukoiden ohjelmointi taas huomattavasti joustavampaa.
Funktio tulo ja lähtöparametreineen.
Toimilohkot ovat ohjelmoijan itsensä tai laitevalmistajan tekemiä funktioita, jotka esitetään yhdellä käskyllä lohkoa kutsuvassa ohjelmassa.
Kuvassa alla relekaaviomuotoinen kutsulaatikko, joka kutsuu toimilohkoa Tekstinkäsittely. Itse ohjelma yksinkertaistuu, koska mutkikkaatkin toiminnot voidaan esittää yhdellä käskyllä, joka käyttää tarvittavia tulo- ja lähtöparametreja funktion toiminnan suorittamiseksi.
Automaatiotekniikassa sekvenssiohjauksella tarkoitetaan ohjelmarakennetta, jossa ohjelma etenee peräkkäin tai rinnakkain tapahtuvien toimintojen perusteella. Sekvenssi kehitetään ja ohjelmoidaan, jotta ohjelman tilaa ja siirtymiä olisi helpompi seurata.
Sekvenssikaavio voidaan kuvata SFS-EN 60848 - Grafcet- määrittelykielen avulla. Tämä kansainvälinen standardi on pääasiassa tarkoitettu suunnittelu- ja kunnossapitoinsinööreille, sekä niille henkilöille, jotka määritelevät järjestelmän käyttäytymisen tilanteissa kuten esim. turvalaite tai automaatiojärjestelmä lähettää ohjauskomennon järjestelmälle. Tämän määrittelykielen tulisi toimia viestintävälineenä automaatiojärjestelmän suunnittelijoiden ja sen käyttäjien välillä. ( SFS-EN 60848, s.12)
Sekvenssiohjauksen toiminta perustuu kolmeen eri pääelementtiin:
Askel (Step)
Kuvataan neliönä, jossa vaiheen nimi tai tunniste.
Kuvataan järjestelmän tilaa, jossa suoritetaan jokin toiminto
Askel voi olla aktiivinen tai vaikutekseton
Siirtymäehto (transitioin condition)
Kuvataan viivalla askeleiden välillä. Tässä kuvataan loogisena lausekkeena ehto, joka tulee täyttyä, jotta voidaan siirtyä seuraavaan askeleeseen. (A and B =1).
Toiminto (Action)
Kuvaataan toiminto, mikä toteutetaan kyseisessä toiminnossa. Esim. magneettiventtiilin aktivointi.
Lisäksi sekvenssiohjelmassa voi olla haarautumia
Rinnakkasisuoritus (Parallel Execution)
Sekvenssi haarautuu kahdeksi rinnakkaisekseki sekvenssiksi, joissa askel on sama. Tämä mahdollistaa kahden tai useamman prosessin suorittamisen samanaikaisesti.
Haarautuminen (Branching / Divergence)
Sekvenssi voi myös haarautua, jolloin tiettyjen ehtojen täyttyessä sekvenssi toteuttaa vaihtoehtoisia toimintoja.
Sekvenssi etenee niin, että:
Ensin toteutetaan askeleeseen ohjelmoitu toimenpide.
Tämän jälkeen jäädään valvomaan, että etenemisehto täyttyy
Kun etenemisehto on täyttynyt siirrytään seuraavaan askeleeseen ja toteutetaan sinne ohjelmoitu toimenpide ja niin edelleen.
Askeleilla 7, 1 ja 14 päälle ohjattava lähtö K1.
Ohjelman edetessä, sekvenssin askel tulee olla tiedossa koko ajan.
Ohjelman askeleen numeroa voidaan valvoa esimerkiksi jollakin muistialueen rekisterillä, esimerkiksi Omron CPL1 CPU:n rekisterialue H0.
Rekisterialueen H muistialue sisältää tietyn määrän sanoja (tietotekniikan word), sanan sisällä on käytettävissä 16 bittiä. Rekisterialueen bittien tilaa vaihdetaan sen mukaan, mikä askel kullakin hetkellä on voimassa. Kun ohjelma siirtyy siirtyy seuraavaan askeleeseen, binaarirekisterissä olevien bittien tilaa vaihdetaan. Toisin sanoen jokainen bitti vastaa askeleen numeroa.
Esimerkiksi, kun siirrytään askeleesta 1 askeleeseen 2, binaarirekisterin (esim. H0.0) bitti 0 asetellaan tilaan 0 ja bitti 1 (H0.1) tilaan 1.
Sekvenssin rekisteri kannattaa alustaa käynnistyksen yhteydessä. Kun sovelluksen sekvenssiohjelma käynnistyy ensinmäisen kerran kannattaa rekisterin ensinmäinen bitti, eli ensinmäinen sekvenssi aktivoida. Eli sekvenssi initialisoidaan sekvenssi.
Rekisterin arvoa voidaan muuttaa käyttämällä MOVE (MOV) toimintoa ja aktivoida tämä toimilohko vaikka start- tai reset- painikkeen avulla. Tämän jälkeen sekvenssi kelaa sovellusta alusta loppuun sille aseteltujen ehtojen mukaan niin kauan, kunnes ohjelma pysäytetään.
Ehto-osassa määritellään sovelluksen ehdot, joilla se voi siirtyä sekvenssin seuraavaan askeleeseen.
Kun ohjelmoidut ehdot ovat täyttyneet, asetellaan askel rekisterialueen tilan seuraavaa askelta vastaavan bitin tilaksi 1 ja sen hetkisen askeleen bitti tilaan 0. Ehto alueella ei toteuteta mitään toimenpiteitä (asetella lähtöjä aktiiviseksi), vaan asetellaan askeleen tilat ehtoja vastaavaksi.
Esimerkisi askeleen 2 ehtoina on pinta_rajan GS1 ja GS2 ollessa aktiivisia.
Toimenpideosassa asetellaan toimintojen arvoksi 0 tai 1 askeleen tilan mukaan.
Esimerkiksi, venttiilin V1 ohjaus asetellaan tilaan 1 tai 0 askeleen 2 tai 4 ollessa aktiivisia.
Askeleen toiminnon kuvauslaatikossa oleva ylöspäin nuoli tarkoittaa, että toiminto suoritetaan kerran askeleen aktivoituessa.
Esimerkki Feston kappaleenkäsittely moduuleihin tekemästä sekvenssikaaviosta.
Askel taulukko tukee järjestelmän ohjelmointityötä kertomalla askeleiden etenmisehdot sekä askeleessa suortitettavat toimenpiteet.
Suunnittelutyötä voidaan tehdä valmiiksi ilman, että ohjelmankoodia tarvitsee muodostaa, jolloin toiminnansuunnitteluun voi osallistua myös henkilöt, joilla ei ole varsinaista ohjelmointiosaamista.
Taulukon rakenne muodostuu projektissa tarvittavista sarakkeista.
Askelsarake, askeleet numeroidaan suoritettavaan järjesteykseen 'askel' sarakkeeseen.
Askeleen nimi, Askeleelle annetaan kuvaava ja yksilöivä nimi.
Toimenpiteet, sarakkeeseen kuvataan mitä toimintoja askeleessa suoritetaan. Esimerkiksi aktivoi venttiili 3Y1.
Etenemisehdot, kertovat mitkä ehdot pitää olla täyttyneet, että voidaan aktivoida seuraava askel.
Tämän jälkeen ohjelmointityö voidaan suorittaa taulukon mukaisilla ehdoilla.
Ohjelma rakenne muodostuu 'ehto- ' ja 'toteutus'osasta.
Ehto-osaan ohjelmoidaan sovellus, jossa etenmisehtojen pohjalta aktivoidaan seuraava sekvenssin askel.
Toteutusosaan ohjelmoidaan sovellus, jossa askeleessa suoritettava toimenpide aktivoidaan.