Esipuhe, sisällysluettelo Osa 1: Työskentely FUP-editorilla IMATIC 7 Osa 2: Kielikuvaus Liitteet FUP/FBD 7-300/400 Yksiköiden ohjelmointi toimintakaaviomuodossa Käsikirja C79000-G7000-C508-02
Turvallisuus - määräykset! Tässä käsikirjassa on ohjeita, joita on noudatettava henkilökohtaisen turvallisuuden ja esinevahinkojen välttämiseksi. Ohjeet on merkitty kolmiolla seuraavasti vaarallisuusasteen mukaisesti: Vaara tarkoittaa, että aiheutuu kuolema, vaikea ruumiinvamma tai huomattava esinevahinko, jollei tarpeellisia varotoimenpiteitä suoriteta.! Varoitus tarkoittaa, että kuolema, vaikea ruumiinvamma tai huomattavia esinevahinkoja saattaa aiheutua, jollei tarpeellisia varotoimenpiteitä suoriteta.! Varo tarkoittaa, että lievä ruumiinvamma tai esinevahinko saattaa aiheutua, jollei tarpeellisia varotoimenpiteitä suoriteta. Huomautus on tärkeä tieto tuotteesta, tuotteen käsittelystä tai käsikirjan siitä osasta, johon tulee kiinnittää erityistä huomiota. Määräysten mukainen käyttö! Huomioitava seuraavaa: Varoitus Laitetta saa käyttää vain katalogissa ja teknisessä selostuksessa mainituissa yksittäistapauksissa ja vain iemens suosittelemien tai hyväksymien vieraslaitteiden ja -komponenttien yhteydessä. Tavaramerkit IMATICR ja INECR ovat IEMEN AG:n tavaramerkkejä. Muut tällaiset merkinnät voivat olla tavaramerkkejä, joiden käyttö kolmannen osapuolen tarkoituksiin saattaa loukata haltijan oikeuksia. Copyright E iemens AG 1996 All rights reserved Tämän aineiston edelleenjakelu sekä monistus, sen sisällön hyödyntäminen ja siitä tiedottaminen ei ole sallittua, mikäli siitä ei ole selvästi sovittu. Rikkomukset johtavat vahingonkorvauksiin. Kaikki oikeudet pidätetään, erityisesti jos tuotteella on patentti tai GM-merkintä. iemens AG Bereich Automatisierungstechnik Geschäftsgebiet Industrie-Automatisierung Postfach 4848, D-90327 Nürnberg iemens Aktiengesellschaft Vastuuvapaus Olemme tarkastaneet tämän tuotteen sisällön yhtäpitävyyden kuvattuun laite- ja ohjelmistopuoleen nähden. Poikkeukset eivät kuitenkaan ole poissuljettuja, niin että emme takaa täydellistä yhdenmukaisuutta. Tämän tuotteen tiedot tarkistetaan säännöllisesti ja tarpeelliset korjaukset tehdään seuraaviin painoksiin. Kiitämme etukäteen parannusehdotuksista. E iemens AG 1996 Pidätämme oikeudet teknisiin muutoksiin. C79000-G7000-C508 Tämä suomenkielinen versio on käännös vastaavasta alkuperäiskielisestä käsikirjasta. Tämän tuotteen julkaisun jälkeen on voinut tulla uusia komponentteja, tai niiden ominaisuudet ovat voineet muuttua. Tässä tapauksessa on syytä lisäksi tukeutua viimeisimpään saksan/englanninkieliseen laitekäsikirjaan.
Esipuhe Käsikirjan tarkoitus Tämä käsikirja tukee käyttäjäohjelmien laadintaa FUP/FBD - ohjelmointikielellä. iksi tässä selitetään ohjelman laadinnan periaatteelliset menettelytavat. Käsittelyvaiheiden yksityiskohdat löytyvät Online-avusta. en ohella käsikirja sisältää FUP-ohjelmointikielen kielielementtien referenssiosan, jossa kuvataan yksittäisten kielielementtien syntaksia ja toimintatapaa. FUP = FBD = toimintakaaviomuoto. Käsikirjasta käytetään tästä lyhennystä FUP. Käyttäjät Tämä käsikrija on tarkoitettu 7-ohjelmoijille, käyttöönottajille ja huoltohenkilökunnalle. Tämä edellyttää kyseisen alueen automaatiotekniikan yleistä tuntemusta. Käsikirjan voimassaolo IEC 1131-3:n mukaiset normit Tämä käsikirja pätee TEP 7 -ohjelmiston versiolle 3.0. FUP vastaa normissa DIN EN-61131-3 ( int. IEC 1131-3) määriteltyä kieltä toimintakaavio. TEP 7:n NORM.TAB-tiedoston normitaulukossa on tarkka kuvaus normien täyttymisestä. (aksa) (Englanti) FUP = FBD = Toimintakaaviomuoto KOP = LAD = Relekaaviomuoto AWL = TL = Käskylistamuoto Ohjelmaesimerkeissä käytetään IMATIC -lyhennekielivalintaa. iii
Esipuhe ijoitus 7 300/400 informaatiodokumentoinnissa 7-automaatiojärjestelmän tueksi ja konfiguroimiseksi on olemassa laaja käyttäjädokumentointi, joka on tarkoitettu valikoivaan käyttöön. euraavien selvitysten tulisi helpottaa käyttäjädokumentoinnin käyttöä. Annettu järjestys on ehdotus 7:n ensikäyttäjälle. ymboli Merkitys Dokumentointi johtaa metodiikkaan. Hakuteokset ja siksi vain valikoidusti käytettävissä. Dokumentointia täydennetään Online-avulla. Aapi - nen /30/ Automaatiojärjestelmä 7-300 Yksinkertainen rakenne ja ohjelmointi Käsikirja M7-300/400 -käsikirjat Laitteisto Ohjel - mointi - käsikirja /234/ Järjestelmäohjelmisto 7-300/400 Ohjelmasuunnittelu Online-apu Käyttäjä - käsikirja Perusohjelmisto7jaM7 TEP 7 Käyttäjä - käsikirja Perusohjelmisto 7-300/400 5-ohjelmien konvertointi /231/ /230/ AWL KOP FUP CL /232/ /233/ /236/ /250/ GRAPH 7 HiGraph CFC / 7 Refere - renssi - käsikirja /235/ Järjestelmäohjelmisto 7-300/400 Järjestelmä- ja standarditoiminnat /251/ /252/ /254/ Kielipaketit /xxx/: kirjallisuusluettelon kirjanumero Kuva A-1 Informaatiodokumentointi iv
Esipuhe Taulukko A-1 Informaatiosisältö Nimi Aapinen 7-300 Yksinkertainen rakenne ja ohjelmointi Ohjelmointikäsikirja Ohjelmasuunnittelu 7-300/400 Referenssikäsikirja Järjestelmä- ja standarditoiminnat 7-300/400 Käyttäjäkäsikirja TEP 7 Käyttäjäkäsikirja 5-ohjelmien konvertointi Käsikirjat AWL, KOP, FUP, CL 1 Käsikirjat GRAPH 1,HiGraph 1, CFC 1 1 7-300/400:n optiopaketit järjestelmäohjelmistolle isältö Aapinen perehdyttää hyvin yksinkertaisesti 7-300/400:n ohjelmoinnin ja rakenteen metodiikkaan. e sopii erinomaisesti 7-automaatiojärjestelmän ensikäyttäjälle. Ohjelmointikäsikirja Ohjelmasuunnittelu 7-300/400 antaa perustavaa laatua olevaa tietoa 7-CPU:n käyttäjäohjelman ja käyttöjärjestelmän rakenteesta. 7-300/400:n ensikäyttäjän tulisi käyttää sitä hankkiakseen yleiskuvan ohjelmointimetodiikasta ja rakentaakseen käyttäjäohjelmansa suunnitelun sen varaan. 7-CPUt sisältävät käyttöjärjestelmään integroituja järjestelmätoimintoja ja organisaatioyksiköitä, joita voidaan käyttää ohjelmoinnissa. Käsikirja antaa yleiskuvan 7:ssä käytettävistä järjestelmätoiminnoista, organisaatioyksiköistä ja ladattavista standarditoiminnoista sekä - hakutietona - yksityiskohtaisia liitäntäpistekuvauksia käyttäjäohjelmaan soveltamiseksi. TEP 7 -käyttäjäkäsikirjassa selitetään TEP 7 -automaatio-ohjelmiston periaatteellista käyttöä ja toimintoja. TEP 7:n ensikäyttäjälle sekä myös TEP 5:n tuntijalle antaa käsikirja yleiskuvan 7-300/400:n menettelytavoista konfiguroitaessa, ohjelmoitaessa ja käyttöönotettaessa. W:llä työskenneltäessä voidaan päästä valikoiden Online-apuun, josta saa tukea W-käytön yksityiskohtaisissa kysymyksissä. Käyttäjäkäsikirjaa 5-ohjelmien konvertointi tarvitaan, mikäli halutaan konvertoida jo olemassa olevia 5-ohjelmia, jotta nämä saataisiin toimimaan 7-CPU:ssa. Käsikirja antaa yleiskuvan menettelytavoista ja konvertterin käytöstä; konvertteritoimintojen yksityiskohtainen käyttö selviää Online-avusta. Online-avusta saa myös käytettävien konvertoitujen 7-toimintojen liitäntäpistekuvauksen. Kielipakettien AWL, KOP FUP ja CL -käsikirjoissa on sekä käyttöohjeet että kielikuvaus. 7-300/400:n ohjelmointiin tarvitaan vain yhtä näistä kielistä, mutta tarvittaessa voidaan projektissa yhdistää kieliä. Käytettäessä kieliä ensimmäistä kertaa suositellaan perehtymistä ohjelman laadintamenetelmiin käsikirjan avulla. W:llä työskenneltäessä voidaan käyttää Online-apua, joka vastaa kaikkiin yksityiskohtaisiin kysymyksiin koskien asianomaisten editorien/käännösohjelmien käyttöä. GRAPH, HiGraph, CFC -kielet tarjoavat lisäksi mahdollisuuksiaaskelohjausten,tilaohjausten tai graafisten yksikkökytkentöjen toteuttamiseen. Käsikirjoissa on sekä käyttöohje että kielikuvaus. Käytettäessä kieliä ensimmäistä kertaa suositellaan perehtymistä ohjelman laadintamenetelmiin käsikirjan avulla. W:llä työskenneltäessä voidaan käyttää lisäksi Online-apua (poikkeuksena HiGraph), joka vastaa kaikkiin yksityiskohtaisiin kysymyksiin koskien asianomaisten editorien/käännösohjelmien käyttöä. Oheiset käsikirjat ovat englannin- ja saksankielisiä. v
Esipuhe Hakuapu käsikirjaan Tämä FUP -käsikirja edellyttää teoreettista tietoa 7-ohjelmista, jota saa ohjelmointikäsikirjasta /234/. Koska kielipaketit perustuvat TEP 7-perusohjelmistoon, tulisi käyttäjällä olla jo tietoa perusohjelmiston käsittelystä, jota löytyy käyttäjäkäsikirjasta /231/. Käsikirja on jaoteltu seuraavien aihepiirien mukaisesti. Osassa 1 selitetään editorin käyttöä. Osassa 2 referenssiosa kaikista FUP-operaatioista ja se on ajalteltu hakuteokseksi. Muu tuki Kuvatun ohjelmiston käyttöä koskevissa kysymyksissä, joihin ei löydy vastausta paperidokumentoinnista eikä Online-avusta, tulee kääntyä iemensin puoleen. Lisäksi on käytettävissä Hotline -puhelinpalvelu: Puh. (09) 5105 3888 Helpottaaksemme IMATIC 7 -automaatiojärjestelmään tutustumista, pidämme kursseja tästä aiheesta. Puh. 09 -- 51051 / imatic--kurssit. Eritysiviittaus Tämän käsikirjan käyttäjäosassa ei ole mitään yksityiskohtaisia ohjeita yksittäisine vaiheineen, vaan se selventää periaatteellisia menettelytapoja. Tarkempaa tietoa ohjelmistodialogeista ja niiden käsittelystä löytyy aina Online-avusta. vi
isällysluettelo Esipuhe... iii Osa 1: Työskentely FUP -editorilla 1 Yleiskuva tuotteesta... 1-1 2 Johdanto... 2-1 2.1 Käyttäjäohjelmien rakenne... 2-2 2.2 Käyttäjäohjelmien laadinta -- yleiskuva... 2-4 2.3 Huomioon otettavat säännöt... 2-7 3 Koodiyksiköiden laadinta... 3-1 3.1 Koodiyksiköiden laadinta -- yleiskuva... 3-2 3.2 Koodiyksiköt editorissa... 3-3 3.3 Muuttujien selitystaulukon rakenne... 3-6 3.4 Muuttujien selitystaulukon käsittely -- yleiskuva... 3-8 3.5 Multi-instanssien selitys... 3-10 3.6 ysteemiattribuuttien anto parametreille... 3-11 3.7 Käskyosan käsittely -- yleiskuva... 3-13 3.8 FUP-elementtien syötön perussäännöt... 3-15 3.9 FUP-elementtien anto... 3-17 3.10 Osoitteiden ja parametrien editointi... 3-20 3.11 ymbolinen osoitteen anto... 3-21 3.12 Muunto ylikirjoitusmuodossa... 3-23 3.13 Otsikoiden ja kommenttien anto... 3-24 4 Tiedostoyksiköiden ja käyttäjämääritteisten tiedostotyyppien muodostus.. 4-1 4.1 Tiedostoyksiköiden laadinta -- yleiskuva... 4-2 4.2 Laadintamenetelmän valinta... 4-4 4.3 elitystaulukon käsittely... 4-5 4.4 Aktuellien data-arvojen käsittely... 4-6 4.5 Käyttäjämääritteisten tiedostotyyppien laadinta (UDT)... 4-8 vii
isällysluettelo 5 Yksikön ominaisuuksien ja ohjelmatestin käsittely... 5-1 5.1 Yksikön ominaisuuksien käsittely... 5-2 5.2 FUP-ohjelman testaus - yleiskuva... 5-5 5.3 Ohjelman tilan näytön asetus... 5-6 5.4 Triggeriehtojen asetus... 5-7 5.5 Testausympäristön valinta ja ohjelman tilan käynnistys/pysäytys... 5-8 Osa 2: Kielikuvaus 6 FUP:n rakenne ja elementit... 6-1 6.1 Elementit ja kehykset... 6-2 6.2 Boolen logiikka ja totuustaulukot... 6-6 6.3 CPU-rekisterin merkitys käskyissä... 6-9 7 Osoitteen anto... 7-1 7.1 Yleiskuva... 7-2 7.2 Osoitelajit... 7-4 8 Bittilukitusoperaatiot... 8-1 8.1 Yleiskuva... 8-2 8.2 JA--lukitus... 8-3 8.3 TAI--lukitus... 8-4 8.4 JA--ennen--TAI--lukitus ja TAI--ennen--JA--lukitus... 8-5 8.5 EHDOTON--TAI--lukitus... 8-6 8.6 Binääritulon väliinkirjoitus... 8-7 8.7 Binääritulon kääntö... 8-8 8.8 Osoitus... 8-9 8.9 Konnektori... 8-10 8.10 Lukitustuloksen lataus BIE--rekisteriin... 8-11 8.11 Lähdön asetus... 8-12 8.12 Lähdön nollaus... 8-13 8.13 Laskurin aloitusarvon asetus... 8-14 8.14 Operaatio: Eteenpäinlaskenta... 8-16 8.15 Operaatio: Taaksepäinlaskenta... 8-17 8.16 Operaatio: Ajan käynnistys impulssina... 8-18 8.17 Operaatio: Ajan käynnistys pidennettynä impulssina... 8-20 8.18 Operaatio: Ajan käynnistys vetohidastuksena... 8-22 8.19 Operaatio: Ajan käynnistys tallentavana vetohidastuksena... 8-24 8.20 Operaatio: Ajan käynnistys päästöhidastuksena... 8-26 viii
isällysluettelo 8.21 Reunan 0 --> 1 kysely... 8-28 8.22 Reunan 1 --> 0 kysely... 8-29 8.23 ignaalireunan 0 --> 1 kysely... 8-30 8.24 ignaalireunan 1 --> 0 kysely... 8-31 8.25 Flipflopin asetus/nollaus... 8-32 8.26 Flipflopin nollaus/asetus... 8-33 9 Aikaoperaatiot... 9-1 9.1 Ajan muistialueet ja komponentit... 9-2 9.2 Oikean ajan valinta... 9-4 9.3 Ajan käynnistys impulssina... 9-5 9.4 Ajan käynnistys pidennettynä impulssina... 9-7 9.5 Ajan käynnistys vetohidastuksena... 9-9 9.6 Ajan käynnistys tallentavana vetohidastuksena... 9-11 9.7 Ajan käynnistys päästöhidastuksena... 9-13 10 Laskentaoperaatiot... 10-1 10.1 Muistin laskuriosite ja laskurin komponentit... 10-2 10.2 Eteenpäin-/taaksepäinlaskenta... 10-3 10.3 Eteenpäinlaskenta... 10-5 10.4 Taaksepäinlaskenta... 10-7 11 Peruslaskentaoperaatiot... 11-1 11.1 Kokonaislukujen yhteenlasku (16 bittiä)... 11-2 11.2 Kokonaislukujen yhteenlasku (32 bittiä)... 11-3 11.3 Kokonaislukujen vähennyslasku (16 bittiä)... 11-4 11.4 Kokonaislukujen vähennyslasku (32 bittiä)... 11-5 11.5 Kokonaislukujen kertolasku (16 bittiä)... 11-6 11.6 Kokonaislukujen kertolasku (32 bittiä)... 11-7 11.7 Kokonaislukujen jakolasku (16 bittiä)... 11-8 11.8 Kokonaislukujen jakolasku (32 bittiä)... 11-9 11.9 Jakojäännös (32 bittiä)... 11-10 11.10 Tilasanan bittien tulkinta peruslaskentaoperaatioissa... 11-11 12 Liukulukuaritmetiikka... 12-1 12.1 Yleiskuva... 12-2 12.2 Liukulukujen yhteenlasku... 12-3 12.3 Liukulukujen vähennyslasku... 12-4 12.4 Liukulukujen kertolasku... 12-5 12.5 Liukulukujen jakolasku... 12-6 ix
isällysluettelo 12.6 Tilasanan bittien tulkinta liukulukuoperaatioissa... 12-7 12.7 Liukuluvun absoluuttiarvon muodostus... 12-8 12.8 Liukuluvun neliön (QR) muodostus... 12-9 12.9 Liukuluvun neliöjuuren (QRT) muodostus... 12-10 12.10 Liukuluvun luonnollisen logaritmin muodostus... 12-11 12.11 Liukuluvun eksponenttiarvon muodostus... 12-12 12.12 Kulmien trigonometristen funktioiden laskenta liukulukuina... 12-13 13 Vertailuoperaatiot... 13-1 13.1 Kokonaislukujen vertailu (16 bittiä)... 13-2 13.2 Kokonaislukujen vertailu (32 bittiä)... 13-3 13.3 Liukulukujen vertailu... 13-4 14 iirto - ja muunnosoperaatiot... 14-1 14.1 Arvon siirto... 14-2 14.2 BCD--luvun muunto kokonaisluvuksi (16 bittiä)... 14-3 14.3 Kokonaisluvun (16 bittiä) muunto BCD--luvuksi... 14-4 14.4 Kokonaisluvun (16 bittiä) muunto kokonaisluvuksi (32 bittiä)... 14-5 14.5 BCD--luvun muunto kokonaisluvuksi (32 bittiä)... 14-6 14.6 Kokonaisluvun (32 bittiä) muunto BCD--luvuksi... 14-7 14.7 Kokonaisluvun (32 bittiä) muunto liukuluvuksi... 14-8 14.8 Kokonaisluvun (16 bittiä) 1n komplementin muodostus... 14-9 14.9 Kokonaisluvun (32 bittiä) 1n komplementin muodostus... 14-10 14.10 Kokonaisluvun (16 bittiä) 2n komplementin muodostus... 14-11 14.11 Kokonaisluvun (32 bittiä) 2n komplementin muodostus... 14-12 14.12 Liukuluvun etumerkin vaihto... 14-13 14.13 Luvun pyöristys... 14-14 14.14 Kokonaisluvun muodostus... 14-15 14.15 euraavaksi suuremman kokonaisluvun muodostus liukuluvusta... 14-16 14.16 euraavaksi pienemmän kokonaisluvun muodostus liukuluvusta... 14-17 15 analukitusoperaatiot... 15-1 15.1 Yleiskuva... 15-2 15.2 16 bitin JA--lukitus... 15-3 15.3 32 bitin JA--lukitus... 15-4 15.4 16 bitin TAI--lukitus... 15-5 15.5 32 bitin TAI--lukitus... 15-6 15.6 16 bitin EHDOTON--TAI--lukitus... 15-7 x
isällysluettelo 15.7 32 bitin EHDOTON--TAI--lukitus... 15-8 16 iirto - ja pyöritysoperaatiot... 16-1 16.1 iirto - operaatiot... 16-2 16.2 Pyöritysoperaatiot... 16-10 17 Tiedostoyksikköoperaatiot... 17-1 17.1 Tiedostoyksikön avaus... 17-2 18 Hyppyoperaatiot... 18-1 18.1 Yleiskuva... 18-2 18.2 Ehdoton hyppy yksikössä... 18-3 18.3 Hyppy, kun 1 (ehdollinen)... 18-4 18.4 Hyppy, kun 0 (ehdollinen)... 18-5 18.5 Hyppymerkki... 18-6 19 Tilabittioperaatiot... 19-1 19.1 Yleiskuva... 19-2 19.2 BIE-rekisterin bitti... 19-3 19.3 Tulosbitit... 19-4 19.4 Väärien operaatioiden virhebitti... 19-6 19.5 Ylivuodon virhebitti... 19-7 19.6 Tallennetun ylivuodon virhebitti... 19-8 20 Ohjelmanohjausoperaatiot... 20-1 20.1 FC/FC:n kutsu ilman parametrejä... 20-2 20.2 FB:n, FC:n, FB:n, FC:n ja multi -instanssien kutsu... 20-4 20.3 Hyppy takaisin... 20-8 20.4 Master Control Relayn toiminnat... 20-9 20.5 Master Control Relayn alku/loppu... 20-10 20.6 Master Control Relay päälle/pois päältä... 20-13 Liitteet A Aakkosellinen operaatiolista... A-1 A.1 Englanninkielinen selityslista... A-2 A.2 IEC--mnemoniikka ja IMATIC--mnemoniikka... A-6 xi
isällysluettelo B Ohjelmointiesimerkkejä... B-1 B.1 Yleiskuva... B-2 B.2 Bittilukitusoperaatiot... B-3 B.3 Aikaoperaatiot... B-7 B.4 Laskenta- ja vertailuoperaatiot... B-11 B.5 Aritmeettiset operaatiot kokonaisluvuilla... B-13 B.6 analukitusoperaatiot... B-14 C Lukujen esitys... C-1 C.1 Lukujen esitys... C-2 xii
Osa 1: Työskentely FUP-editorilla Yleiskuva tuotteesta 1 Johdanto 2 Koodiyksiköiden laadinta 3 Tiedostoyksiköiden ja käyttäjämääritteisten tiedostotyyppien muodostus 4 Yksikön ominaisuuksien ja ohjelmatestin käsittely 5
2-2
Yleiskuva tuotteesta 1 Mitä FUP/FBD tarkoittaa? FUP tarkoittaa toimintakaaviota. e on graafinen ohjelmointikieli ja siinä käytetään logiikan esittämiseen Boolen algebrasta tuttuja loogisia kehyksiä. en lisäksi voidaan kompleksifunktiot (esim. matemaattiset funktiot) esittää suoraan loogisten kehysten yhteydessä. Tässä käsikirjassa käytetään toimintakaaviosta sen saksankielestä tulevaa FUP -lyhennettä. Englanninkielisessä valikossa sen lyhenne on FBD. KOP = LAD = relekaavio AWL = TL = käskylista FUP ohjelmointikieli FUP -ohjelmointikielessä on käytettävissä kaikki elementit, jotka tarvitaan täydellisen käyttäjäohjelman laadintaan. FUP:lla on mahtava käskykanta. iihen kuuluvat eri perusoperaatiot sekä laaja operandivalikoima parametrointeineen. Toimintojen ja toimintayksiköiden konsepti mahdollistaa FUP-ohjelman havainnollisen rakentamisen. Ohjelmointipaketti FUP-ohjelmistopaketti on TEP 7 -perusohjelmiston integroitu osa. TEP 7-ohjelmiston asennuksen jälkeen ovat käytettävissä kaikki FUP:n editori-, käännösohjelma- ja testitoiminnat. FUP:n avulla voidaan käyttäjäohjelma laatia inkrementtieditorilla. Tässä on ratkaistu yksikön paikallinen tiedostorakenne mukavasti taulukkoeditoreilla. Koska FUP:n ohella myös AWL - ja KOP -ohjelmointikielet on integroitu perusohjelmistoon, voidaan kielten välillä vaihdella ja valita siten sopiva esitys yksikköohjelmointia varten. Yleisesti pätee, että KOP:ssa tai FUP:ssa kirjoitetut ohjelmat voidaan esittää ongelmitta AWL:ssä. Muunnettaessa KOP-ohjelmia FUP-ohjelmiksi ja päinvastoin tulee AWL:n näyttöön ohjelmaelementtejä, jotka eivät ole esitettävissä kohdekielellä. 1-1
1-2
Johdanto 2 Mitä tämä kappale sisältää? Tässä kappaleessa selitetään lyhyesti yksiköistä muodostuvan käyttäjäohjelman rakenne. FUP-editori asettaa IMATIC managerissa pohjan kaikille TEP 7-sovelluksille. Tässä selviää, miten IMATIC managerista päästään FUP-editoriin ja mihin laaditut yksiköt on järjestetty projektirakenteessa. Yleiskuva kappaleesta Kappale isältö ivu 2.1 Käyttäjäohjelmien rakenne 2-2 2.2 Käyttäjäohjelmien laadinta - yleiskuva 2-4 2.3 Huomioon otettavat säännöt 2-7 2-1
Johdanto 2.1 Käyttäjäohjelmien rakenne Koodiyksiköt ja tiedostoyksiköt Käyttäjäohjelma koostuu koodiyksiköistä ja tiedostoyksiköistä. Koodiyksiköihin kuuluvat kaikki yksiköt, joissa on käskyosa, siis organisaatioyksiköt, toimintayksiköt ja toiminnat. Organisaatio - yksiköt Organisaatioyksiköt (OBt) esittävät käyttöjärjestelmän ja käyttäjäohjelman välistä liitäntäpistettä. Eri organisaatioyksiköillä on tällöin ihan määrättyjä tehtäviä. 7-CPU:n FUP-käyttäjäohjelma kootaan organisaatioyksiköistä (OBt), joita automaatioratkaisussa tarvitaan. Yksinkertaisimmassa tapauksessa siihen kuuluvat käynnistyksen (OB 100, OB 101) syklisen pääohjelman (OB1) ja virheenkäsittelyn (OB 80... OB 87, OB 121, OB 122), mikäli CPU:n ei tule vikatapauksessa mennä TOP -tilaan. organisaatioyksiköt. en lisäksi on vielä muita organisaatioyksiköitä, joiden avulla voidaan käsitellä CPU:n tai prosessin keskeytyksiä. Mitä tehtäviä kullakin organaisaatioyksiköllä on ja minkä aloitusinfon CPUkäyttöjärjestelmä antaa, selviää referenssikäsikirjasta /235/. Toiminnat/ toimintayksiköt Jokainen organisaatioyksikkö voidaan ohjelmoida rakenteellisena ohjelmana, laatimalla toiminnat (FC) ja toimintayksiköt (FB) ja kutsumalla niitä käskyosassa. Yksikköä kutsuttaessa tulee selvitetyt parametrit varustaa vastaavasti tiedoilla. Toimintayksikkö (FB) on koodiyksikkö muistilla. Muistina toimii tällöin FB:lle varattu oheis-tiedostoyksikkö, johon todelliset parametrit ja toimintayksikön staattiset tiedot tallennetaan. Toiminta (FC) on koodiyksikkö ilman muistia. Lähtöparametrit sisältävät FC:n käsittelyn jälkeen lasketut toiminta-arvot. Todellisten parametrien muu käyttö ja tallennus FC:n kutsun jälkeen on käyttäjän oma asia. Tiedot Käyttöjärjestelmä asettaa valmiiksi seuraavat tiedot: Periferiatulot ja -lähdöt Tulojen ja lähtöjen prosessikuva Merkkerit Ajat Laskurit 2-2
Johdanto Lisäksi voidaan määritellä omia tietoja: Globaalidata, joka pätee koko käyttäjäohjelmalle, määritellään tiedostoyksiköissä. taattiset muuttujat pätevät aina siinä FB:ssä, jossa ne on määritelty. Joka kerran FB:tä kutsuttaessa annetaan oheis-db, joka sisältää kaikkien parametrien ohella staattiset tiedot. Mikäli multi-instanssit on määritelty, on niiden instanssitiedot, staattiset tiedot mukaanlukien upotettu oheis-db:hen. Väliaikaiset eli hetkelliset (temp)-tiedot määritellään koodiyksiköitä laadittaessa. Ne varaavat muistipaikan pinossa vain koodiyksikön käsittelyn ajan. Tiedostoyksiköt Käyttäjäohjelman tiedot tallennetaan tiedostoyksiköihin. Tiedostoyksiköitä on kahta lajia, globaali-tiedostoyksiköt ja oheis-tiedostoyksiköt. Globaali-tiedostoyksiköihin pääsee käyttäjäohjelman joka kohdasta. Oheis-tiedostoyksiköt (instanssi) on varattu toimintayksikölle ja ne sisältävät FB:n tietojen ohella myös mahdollisesti määriteltyjen multi-instanssien tiedot. iksi instanssi-tiedostoyksiköitä tulee käsitellä vain kyseisten toimintayksiköiden yhteydessä. Muuta tietoa Johdanto ohjelmointimetodiikkaan löytyy käsikirjasta /234/. 2-3
Johdanto 2.2 Käyttäjäohjelmien laadinta - yleiskuva Käyttäjäohjelma Käyttäjäohjelma, jonka tulee toimia 7-CPU:ssa, muodostuu pääasiassa yksiköistä. Lisäksi se sisältää muuta informaatiota kuten esim. järjestelmän konfigurointitiedot tai järjestelmän verkotustiedot. Käyttötapauksesta riippuen tulee käyttäjäohjelmassa olla seuraavat yksiköt: Organisaatioyksiköt (OBt) Toimintayksiköt (FBt) Toiminnat (FCt) Tiedostoyksiköt (DBt). Lisäksi voidaan yksinkertaistamista varten asettaa määriteltyjä tiedostotyyppejä (UDTt), joita voidaan käyttää omana tiedostotyyppinä tai DB:iden laadintamallina. Muutamat usein käytetyistä yksiköistä kuten järjestelmätoimintayksiköt (FBt) ja järjestelmätoiminnat (FCt) on integroitu CPU:hun. Muut yksiköt (esim. IEC-toimintoja tai säätäjäyksiköitä varten) ovat ladattavissa pakettina (standarditoimintayksiköt). Kyseiset ohjelmoimattomat yksiköt voidaan liittää yksinkertaisella tavalla käyttäjäohjelmaan. Huomautus Mitkä FBt ja FCt CPU:hun on integroitu, voidaan näyttää online valikkokäskyn Accessible Nodes " Blocks kautta. Inkrementti- FUP-editori Yksiköiden ohjelmoimiseksi on TEP 7:n perusohjelmiston ohella käytettävissä vastaava editori. Koodiyksiköiden ohjelmoimiseksi (OBt, FBt, FCt) voidaan asettaa ohjelmointikieli FUP. FUP-editori työskentelee differentiaalisesti, se tarkoittaa, jokaisen syötön jälkeen suoritetaan siihen viittaava syntaksikoe. yntaksivirheet näytetään, kielletyt FUP-elementtien tai osoitteiden operaatiot torjutaan heti. Aloitus IMATICjärjestelmän - hallinnasta FUP-editori käynnistetään IMATIC -managerista. Edellytyksenä on, että siellä on 7-ohjelmalla varustettu projekti. 7-ohjelma voidaan laatia laitteistosta riippuen tai siitä riippumatta. itä varten liitetään 7-ohjelma suoraan projektiin tai käsitellään ohjelmoitavalle yksikölle varattua 7-ohjelmaa. Ohjelmassa itsessään voi olla mm. käyttäjäohjelma-alueita, lähteitä tai suunnitelmia. FUP-editorilla käsitellään yksinomaan yksiöitä, jotka tallennetaan käyttäjäohjelman alueelle. 2-4
Johdanto IMATIC Manager - TRAFFIC File Edit Insert PLC View Options Window Help ON OFF TRAFFIC - <Offline> (Project) TRAFFIC 7 Program (1) ource Files Blocks IMATIC 300 tation1 OB1 DB5 FB6 DB6 Press F1 for help. NUM Kuva 2-1 FUP-editorin käynnistys IMATIC managerista Yksikön luonti Mikäli halutaan laatia yksikkö ensimmäisen kerran, tulee ensin luoda tyhjä yksikkö IMATIC managerissa, jonka kautta editori avataan. Kun FUP -editori on avattu, voidaan siellä luoda uusia yksiköitä. IMATIC managerissa merkitään käyttäjäohjelma ja lisätään halutun yksikkölajin yksikkö valikkokäskyllä Insert 7-Block.... Uusi yksikkö ilmestyy oikealla olevaan projekti-ikkunaan. Editorissa uusi yksikkö voidaan luoda yksinkertaisesti valikkokäskyllä File New. eurantadialogissa annetaan myös yksikkölaji ja yksikkönumero. Ohjelmointikielen valitseminen Yksikköä luotaessa määritellään, millä ohjelmointikielellä yksikkö halutaan laatia. Tämän tiedon mukaisesti käynnistetään vastaava editori yksikköä avattaessa. FUP:ssa tapahtuvaa ohjelmointia varten valitaan FUP - ohjelmointikieli IMATIC managerin dialogikentässä ominaisuudet (properties). FUP-editorissa valikkokäskyllä Option Customize dialogikentässä KOP/AWL/FUP, rekisterissä editori. Yksikön avaaminen Yksikkö avataan IMATIC managerissa kaksoisklikkaamalla yksikköä. Vaihtoehtoisesti voidaan tämä tehdä myös valikkokäskyllä Edit Open Object tai menemällä toimintorivin vastaavaan symboliin. 2-5
Johdanto Yksikön tallennus Tallennettaessa yksikköä editoriin on huomioitava seuraavaa: File ave tallentaa yksikön ohjelmassa aina PG:n tai PC:n kovalevylle. PLC Download lataa avatun yksikön CPU:hun. Kun käyttäjäohjelman yksiköt on laadittu, ladataan tämä IMATIC managerissa täydellisenä 7-CPU:hun. Lisää käyttäjäohjelmien latausta koskevaa tietoa löytyy käyttäjäkäsikirjasta TEP 7 /231/. Huomautus Aina ei riitä, että kaikki luodut yksiköt ladataan yksitellen CPU:hun, koska järjestelmäkonfigurointitietoja tarvitaan mahdollisesti. Ohjelma ladataan siksi aina kokonaisena IMATIC managerin kautta. Tukitoimintojen kutsu FUP-editorissa voidaan suorittaa suoraan seuraavat toiminnat, joista on apua ohjelmaa laadittaessa ja käyttöönotettaessa: Taulukko 2-1 FUP-editorin tukitoiminnat Toiminnat Käyttäjäohjelman referenssitietojen kutsu ymbolitaulukon tai yksittäisten symbolien käsittely Muuttujien seuranta / ohjaus Käyttötilan näyttö/vaihto sekä CPU:n perusnollaus CPU:n yksikön tilan näyttö CPU:n päiväyksen ja kellonajan muutos Valikkokäsky Options " Reference Data Options " ymbol Table tai Options " Edit ymbols PLC " Monitor/Modify Variables PLC " Operating Mode tai PLC " Clear/Reset PLC " Module Information PLC " et Time and Date Nämä toiminnat on kuvattu perusteellisesti käyttäjäkäsikirjassa TEP 7 /231/. 2-6
Johdanto 2.3 Huomioon otettavat säännöt Yksikön laadintajärjestys Käyttäjäohjelman koodiyksiköitä ja tiedostoyksiköitä laadittaessa on yksiköiden laadintajärjestys ratkaiseva. Periaatteessa pätee: Yksiköiden, joita kutsutaan toisesta yksiköstä käsin, tulee kutsua ohjelmoitaessa olla jo olemassa - siis aiemmin ohjelmoituja. Ei olemassa olevan(ohjelmoimattoman) yksikön syöttö FUP-elementtinä (kehys) ei ole mahdollinen. Kutsuttaessa yksikköä CALL:lla esitetään ei olemassa olevan (ohjelmoimattoman) yksikön syöttö tallennettaessa virheenä, koska kutsuttua yksikköä ei löydy ohjelmasta. Käsittely ohjelman kulun aikana CPU:n ollessa käyttötilassa RUN, voidaan CPU:hun tallennettua käyttäjäohjelmaa käsitellä TEP 7:llä online.! Varoitus Meneillään olevan ohjelman Online-käsittely voi johtaa laitteen virhetoimintoihin tai ennennäkemättömiin häiriöihin ja siten loukkaantumisiin ja/tai esinevahinkoihin. Jos CPU on kytketty online ja on käyttötilassa RUN, voidaan CPU:hun tallennettua käyttäjäohjelmaa käsiteltäessä aiheuttaa erehdyksessä tilanteita, joissa laitteistot yhtäkkiä kytketään päälle ja pois päältä ja aiheutetaan näin esine- tai henkilövahinkoja. Prosessin kulku tulisi siksi aina suunnitella voimassa olevia turvallisuusmääräyksiä noudattaen. Meneillään olevaa ohjelmaa ei tulisi koskaan yrittää muuttaa Online-tilassa, ilman että sitä ennen on varmistuttu riittävistä turvatoimista. Huomautus Online- ja Offline-kytkennästä löytyy tietoa TEP 7 -käyttäjäkäsikirjasta /231/. 2-7
Johdanto 2-8
Koodiyksiköiden laadinta 3 Mitä tämä kappale sisältää? Käyttäjäohjelma ei selviä ilman koodiyksiköitä. Monissa ongelmissa voidaan tosin turvautua keskusyksikön integroituihin yksiköihin tai tarjottuihin standarditoimintayksiköihin. Vähimmäismäärä koodiyksiköitä on joka tapauksessa kuitenkin laadittava itse. Tässä kappaleessa kerrotaan, miten FUPeditorissa tällöin menetellään. Yleiskuva kappaleesta Kappale isältö ivu 3.1 Koodiyksiköiden laadinta - yleiskuva 3-2 3.2 Koodiyksiköt editorissa 3-3 3.3 Muuttujien selitystaulukon rakenne 3-6 3.4 Muuttujien selitystaulukoiden käsittely - yleiskuva 3-8 3.5 Multi-instanssien selitys 3-10 3.6 ysteemiattribuuttien anto parametreille 3-11 3.7 Käskyosan käsittely - yleiskuva 3-13 3.8 FUP-elementtien syötön perussäännöt 3-15 3.9 FUP-elementtien anto 3-17 3.10 Osoitteiden ja parametrien anto 3-20 3.11 ymbolinen osoitteenanto 3-21 3.12 Muunto ylikirjoitusmuodossa 3-23 3.13 Otsikoiden ja kommenttien anto 3-24 3-1
Koodiyksiköiden laadinta 3.1 Koodiyksiköiden laadinta - yleiskuva Koodiyksiköt Koodiyksiköt (OBt, FBt, FCt) muodostuvat muuttujien selitysosasta, käskyosasta ja niillä on lisäominaisuuksia. Ohjelmoitaessa tulee käsitellä seuraavia kolmea osaa: Muuttujien selitystaulukko. Muuttujien selitystaulukossa määritellään yksikön parametrit, parametrien systeemiattribuutit ja paikalliset muuttujat. Käskyosa: Käskyosassa ohjelmoidaan yksikkökoodi, jota automaatiojärjestelmän tulee käsitellä. e muodostuu yhdestä tai useammasta toimintakaavio-elementit sisältävästä virtapiiristä. Yksikön ominaisuudet: Yksikön ominaisuuksissa on lisätietoa kuten aikamäärite tai polkutieto, jotka järjestelmä kirjoittaa. en ohella voi itse antaa nimiä, ryhmän, version ja tekijän sekä systeemiattributteja yksiköille (katso kapp. 5). Koodiyksikön käsittely Periaatteessa on sama, missä järjestyksessä koodiyksikön osia käsitellään. Yksikköä voi myös korjata ja täydentää. Mikäli halutaan takaisin symbolitaulukon symboleihin, tulee ensin tarkistaa, että nämä ovat täydellisiä ja tarpeen vaatiessa mahdollisesti täydentää niitä. IMATIC managerissa luodaan koodiyksikkö (FB, FC tai OB) FUP-editori Valitaan editorin asetukset. Käsitellään yksikön muttujien selitystaulukkoa. Käsitellään käskyosaa. Käsitellään yksikön ominaisuuksia. Tallennetaan yksikkö. Kuva 3-1 Menettelytapa koodiyksiköitä FUP:ssa ohjelmoitaessa 3-2
Koodiyksiköiden laadinta 3.2 Koodiyksiköt editorissa Yleiskuva Ennen ohjelmoinnin aloittamista FUP-editorissa, tulisi tutustua asetus - mahdollisuuksiin mahdollisimman mukavan ja tottumuksia vastaavan työskentelyn takaamiseksi. Editorin asetukset Rekisteridialogi avataan valikkokäskyn Options Customize kautta. Editori -rekisterissä voidaan esiasetukset asettaa yksiköiden ohjelmointia varten seuraavasti: kirjoitus (laji ja koko) tekstinä ja taulukkoina valittu kieli FBD = FUP, LAD = KOP, TL = AWL (FUP, KOP tai AWL). Kielivalinnasta riippuen avataan KOP:ssa, FUP:ssa tai AWL:ssä uusi muodostettu yksikkö. iitä huolimatta - rajoitukset huomioiden - voidaan yksikköä katsella myöhemmin myös muulla kyseeseen tulevalla kielellä. halutaanko uudessa yksikössä saada näyttöön lähinnä symboliikka ja kommentit. Kielen, kommentin ja symboliikan asetuksia voidaan aina muuttaa käsittelyn aikana View... -valikon käskyillä. FUP:n asetukset Rekisterissä KOP/FUP / ( LAD/FBD ), johon myös päästään Options Customize kautta, voidaan tehdä seuraavat perusasetukset: FUP/FBD-Layout: Määrää virtapiirien esityskoon. Valitun koon mukaan voidaan virtapiiriin sijoittaa vierekkäin enemmän tai vähemmän FUP-elementtejä. Tällä päätöksellä on myös vaikutuksia yksikön tulostukseen. Operandikentän leveys: e määrää operandien kuten esim. osoitteiden tekstikentän leveyden. Operandileveyden ylittyessä seuraa rivinvaihto. ymbolisessa osoitteenannossa on suurempi operandikenttä mielekkäämpi, absoluuttisessa riittää pieni kenttä. Elementtien esitys: Voidaan valita, näytetäänkö FUP-elementit kaksi- vai kolmiulotteisina. Linja/väri: valittu elementti, koskettimet, tila täytetty, tilaa ei täytetty. 3-3
Koodiyksiköiden laadinta FUP-editorin pääikkuna Kun koodiyksikkö on avattu ilmestyy ikkuna, jonka yläosassa on yksikön muuttujien selitystaulukko ja alaosassa on käskyosa, jossa varsinasta yksikkökoodia käsitellään. FB6-<Offline> - LAD\TL\FBD File Edit Insert PLC Debug View Options Window Help & >1 = TRAFFIC\...\FB6-<Offline> Address Decl. ymbol Type Initial Value Comment 0.0 in dur_g_p 5TIME 5T#0M Duration green_pedestrian 2.0 in del_r_p 5TIME 5T#0M Delay red_pedestrian 4.0 in starter BOOL FALE tart switch 6.0 in t_dur_y_car TIMER Timer duration yellow_car 8.0 in t_dur_g_ped TIMER Timer duration green_pedestrian Network 1 : Red for road traffic #starter >=1 #condition & #t_next_red_car #t_dur_r_car #condition = Kuva 3-2 FUP:n muuttujien selitystaulukko ja käskyosa Yksikön ominaisuuksia käsitellään oman dialogin kautta (katso kappale 5). Editorissa voi olla avattuna useampia yksiköitä joita voidaan käsitellä vuorotellen toiveiden mukaan. Yhteisvaikutus Muuttujien selitys - käskyosa Muuttujien selitystaulukko ja koodiyksiköiden käskyosa ovat tiiviisti sidoksissa keskenään, koska käskyosassa käytetään muuttujien selitystaulukon nimiä. Muuttujien selityksessä tapahtuvat muutokset vaikuttavat sentähden koko käskyosaan ja aina koko yksikköön. 3-4
Koodiyksiköiden laadinta Taulukko 3-1 Muuttujien selityksen ja käskyosan yhteisvaikutus Muuttujien selitystoiminta virheetön uudelleensyöttö virheetön nimenmuutos ilman tyyppimuutosta virheetön nimi muutetaan mitättömäksi mitätön nimi muutetaan virheettömäksi Tyyppimuutos Muuttujan nollaus (symboli), jota käytetään koodissa. Kommenttimuutokset Uuden muuttujan virheellinen syöttö Ei käytetyn muuttujan nollaus Aloitusarvon muutos Reaktio käskyosassa Jos on mitätön koodi, tulee tätä ennen määrit tämättömästä muuttujasta nyt voim. oleva. ymboli esitetään heti kaikkialla uudella nimellä. Koodia ei muuteta. Mikäli on olemassa mitätön koodi, tulee tämä voimaan. Mikäli on olemassa mitätön koodi, tulee tämä voimaan, ja mikäli on olemassa voimassa oleva koodi, tulee tästä mitätön. Voimassa olevasta koodista tulee mitätön. Ei ole Ei ole Ei ole Ei ole 3-5
Koodiyksiköiden laadinta 3.3 Muuttujien selitystaulukon rakenne Yleiskuva Muuttujien selitystaulukossa määritellään paikalliset muuttujat mukaanlukien yksikön muodolliset parametrit ja parametrien systeemiattribuutit. illä on mm. seuraavat vaikutukset: elityksen avulla varataan vastaavasti muistitilaa paikallisdatapinossa tai instanssi-(oheis)tiedostoyksikössä. Määrittelemällä tulo-, lähtö- ja läpikulkuparametrit määritellään ohjelmassa myös liitäntäpiste yksikön kutsua varten. Mikäli muuttujat selitetään toimintayksikössä, määräävät nämä muuttujat myös jokaisen FB:lle varatun oheis-db:n tiedostorakenteen. Määräämällä systeemiattribuutit varataan parametreille erikoisominaisuuksia hälytys- ja liityntäsuunnittelua, ohjaus- ja valvontatoimintoja ja prosessiteknistä suunnittelua varten. Muuttujien selitystaulukon rakenne Kun uudelleenasetettu koodiyksikkö on avattu, tulee näyttöön esiasetettu muuttujien selitystaulukko. Kyseisessä taulukossa on vain valitulle yksikkölajille sallitut selitystyypit (in, out, in_out, stat, temp) ja nekin määrätyssä järjestyksessä. OB:tä uudelleen asetettaessa näytössä on standardi-muutujienselitys, jonka arvoja voidaan muuttaa. Muuttujien selitystaulukossa on merkintöjä muuttujien osoitteista, selitystyypistä, nimestä, tiedostotyypistä, aloitusarvosta ja kommentista. Jokainen taulukkorivi on muuttujien selitystä varten. Kentän tai rakenteen tiedostotyypin muuttujat tarvitsevat useampia rivejä. FB40 - <Offline> Address Decl. ymbol Data Type Initial Value Comment 0.0 0.1 2.0 2.1 in in out out in start Motor Message BOOL BOOL BOOL BOOL FALE FALE FALE FALE Light on witch Motor Motor 4.0 in_out in_outp1 INT 0 6.0 in_out in_outp2 INT 0 Kuva 3-3 Esimerkki muuttujien selitystaulukosta 3-6
Koodiyksiköiden laadinta Palstojen merkitys Muuttujien selitystaulukon palstoilla on seuraava merkitys: Taulukko 3-2 Muuttujien selitystaulukko Palsta Merkitys Huomautukset Käsittely Osoite Osoite muodossa BYTE.BIT. Tiedostotyypeillä, jotka tarvitsevat enemmän kuin yhden tavun, näyttää osoite järjestyksen hyppäämällä seuraavaan tavuosoitteeseen. Merkkien selitys: * : tavun kenttäelementin koko. + : aloitusosoite, suht. rakenteen alkuun = : rakenteen koko muistitarve elitys elitystyyppi, Muuttujien käyttötarkoitus Yksikkölajista riippuen mahdollisia ovat: Tuloparametri in Lähtöparametri out Läpimenoparametri in_out taattiset muuttujat stat Hetkelliset muuttujat temp Nimi Muuttujien symbolinen nimi Nimen tulee alkaa kirjaimella. Varattuja avainsanoja ei sallita. Tyyppi Aloitusarvo Muuttujan tiedostotyyppi (BOOL, INT, WORD, ARRAY jne.) Aloitusarvo, kun ohjelmiston ei tule hyväksyä oletusarvoa. Perustiedostotyypit voidaan valita hiiren oikean korvan valikolla. Tulee olla tiedostotyypin kanssa yhteensopiva. Aloitusarvo vastaanotetaan DB:tä ensimmäisen kerran tallennettaessa muuttujan aktuellina arvona, jos aktuellia arvoa ei selvästi vahvisteta. Järj.merkintä: Järjestelmä antaa ja näyttää osoitteen kun selityksen syöttö on loppu. Järjestelmän anto yksikkölajin mukaan vaaditaan vaaditaan valinnainen Kommentti Dokumentoinnin kommentti valinnainen Viirin merkitys Mikäli yhdelle muuttujalle on osoitettu systeemiattribuutteja (katso kapp. 3.6), ilmestyy palstalle Nimi symboli ( Viiri, katso kuva 3-3). Kaksoisklikkaus viirin kohdalla avaa ysteemiattribuutti -dialogikentän. Palstan leveyden vaihtelu Taulukon palstojen leveyttä voidaan muunnella. itä varten asetetaan hiiren nuoli kahden palstan väliin ja liikutetaan sitä vaakasuoraan hiiren vasemman korvan ollessa alaspainettu. Vaihtoehtoisesti voidaan palstan leveyttä muuttaa valikkokäskyllä View Column Width. Taulukon on tällöin oltava valittu. Mikäli halutaan luopua kokonaan kommenttien tai aloitusarvojen optionaalisesta syötöstä, voidaan nämä palstat minimoida tällä tavalla, jotta voitaisiin keskittyä kokonaan muihin palstoihin. 3-7
Koodiyksiköiden laadinta 3.4 Muuttujien selitystaulukon käsittely - yleiskuva Menettelytavat Annettaessa uutta selitystä syötetään halutun selitystyypin jälkeen peräkkäin muuttujan nimi, tiedostotyyppi, aloitusarvo (valinnainen) ja kommentti (valinnainen). Kursori viedään tällöin TAB-painikkeella viereiseen kenttään. Rivin päätyttyä osoitetaan muuttujalle osoite. Joka kerran kun taulukkokenttää käsitellään, seuraa syntaksitesti, joka näyttää mahdolliset virheet punaisena. Kyseisiä kenttiä ei tule heti korjata, vaan muu käsittely voi jatkua ja korjaukset voidaan tehdä myöhemmin. Käsittelytoiminnat Taulukon käsittelyyn on käytettävissä Edit/käsittely -valikosta tutut toiminnat. Jotta käsittely olisi yksinkertaista, voidaan hiiren oikean korvan alta hakea tyyppivalikko. Tiedostotyyppiä syötettäessäkin on apuna hiiren oikean korvan alainen valikko. Tiedostotyyppi -valikossa ovat kaikki perustiedostotyypit. Yksittäiset rivit merkitään klikkaamalla asianomaista, kirjoitussuojattua osoitekenttää. aman selitystyypin lisärivit merkitään pitämällä HIFT-näppäintä alhaalla. Merkityt rivit tallennetaan mustana. elitystyypin muuttaminen Decl. -palsta on kirjoitussuojattu. elitystyypin määrää selityksen positio taulukon sisällä. Täten varmistetaan, että muuttujat voidaan syöttää vain selitystyyppien oikeassa järjestyksessä. Mikäli jonkin selityksen tyyppiä halutaan muuttaa, leikataan selitys ensin pois ja liitetään sen jälkeen takaisin uudella selitystyypillä varustettuna. Rakenteiden syöttö Mikäli rakenne halutaan syöttää muuttujana, syötetään nimipalstaan nimi ja tiedostotyyppipalstaan avainsana TRUCT. Rakennetta (END_TRUCT) varten väliinkirjoitetaan TAB-näppäintä tai RETURN-näppäintä painamalla yksi tyhjä rivi ja päätösrivi. Tyhjällä rivillä ilmoitetaan rakenteen elementti vahvistamalla sen nimi, tyyppi ja valinnaisesti aloitusarvot. Muut elementit (rivit) väliinkirjoitetaan valikkokäskyllä tai RETURN-näppäintä painamalla. Mikäli rakenne halutaan merkitä, klikataan hiirellä ensimmäisen tai viimeisen rivin osoitekentässä (jossa siis avainsana TRUCT tai END_TRUCT on). Yksittäiset selitykset rakenteen sisällä merkitään klikkaamalla rivin vastaavassa osoitekentässä. Mikäli rakenteita syötetään toisten rakenteiden sisällä, näkyy hierarkia muuttujien nimien vastaavana sisennyksenä. 3-8
Koodiyksiköiden laadinta Kenttien syöttö Mikäli tiedostotyyppinä halutaan syöttää kenttä, syötetään Nimi -palstalla nimi ja tiedostotyyppi palstalla avainsana ARRAY ilmoittamalla kentän koko, siis esim. array[1..20,3..24] kaksiulotteiselle kentälle. TAB-näppäintä painamalla (mahd. useamman kerran) lisätään yksi rivi, johon kentän tiedostotyyppi syötetään. Mikäli kenttä halutaan merkitä, klikataan kyseisen rivin osoitekentässä. Yksittäisten kenttäelementtien aloitusarvot voidaan määritellä joko yksitellen tain toistokertoimella (katso kuva 3-4): Yksittäissyöttö: Yksittäisille elementeille annetaan oma aloitusarvo. Arvot listataan pilkulla erotettuina. Toistokerroin: Useammalle elementille annetaan sama aloitusarvo. Arvon anto tapahtuu kaarisuluissa, elementtien lukumäärää varten on esiasetettu toistokerroin. Esimerkki Kuvassa 3-4 on esimerkki muuttujien selitystaulukosta: FB50 - <Offline> Address Decl. ymbol Data Type Initial Value Comment 0.0 +0.0 +2.0 in in in structur1 var1 var2 TRUCT BOOL INT FALE 0 +4.0 =6.0 in in var3 WORD END_TRUCT W#16#0 6.0 in array1 ARRAY[1..20,1..40] TRUE *2.0 in BOOL Kuva 3-4 Muuttujien selitystaulukon rakenteet ja kentät Huomautus Mikäli yksiköiden, joiden kutsu on ohjelmoitu jo aiemmin, muuttujien selitystä muutetaan jälkikäteen voi siitä seurata aikamerkintäristiriita. iksi kaikki kutsuttavat yksiköt ohjelmoidaan mikäli mahdollista ensisijaisesti ja sen jälkeen yksiköt, joista näitä kutsutaan. Toimintayksiköissä tulee silloin mahdollisesti laatia vastaavat oheis-dbt uudelleen. Mikäli UDT:tä, joka muuttujien selityksessä on annettu tiedostotyyppinä, muutetaan jälkikäteen, tulee yksikön muuttujien selitys tarkistaa ja tallentaa yksikkö uudelleen. 3-9
Koodiyksiköiden laadinta 3.5 Multi--instanssien selitys Multi -instanssit Multi-instanssi muodostuu toimintayksikön (FB) tiedostotyypistä staattista muuttujaa selittämällä. Käskyosassa instanssia kutsutaan FUP-elementtinä. Lisää tietoa multi-instanssien roolista löytyy ohjelmointikäsikirjasta /234/ Multi-instanssien kutsun syntaksia selitetään tämän käsikrjan osassa 2. äännöt Multi-instanssien selitystä koskevat seuraavat säännöt: Multi-instanssien selitys on mahdollista vain toimintayksiköissä. Toimintayksikölle, jossa multi-instanssia selitetään, on varattava oheis-db. Multi-instanssi voidaan selittää vain staattisena muuttujana (selitystyyppi stat ). Multi - instansien syöttö Multi-instanssin selittämiseksi syötetään nimi-palstaan muuttujan nimi selitystyypin stat jälkeen. Tiedostotyypiksi ilmoitetaan toimintayksikkö. Toimintayksikkö voidaan antaa ehdottomana tai symbolisella nimellään. Valinnaisesti voidaan merkitä kommentti. FB50 - <Offline> Address Decl. ymbol Data Type Initial Value Comment 0.0 +0.0 +2.0 in in in structur1 var1 var2 TRUCT BOOL INT FALE 0 +4.0 =6.0 in in var3 WORD END_TRUCT W#16#0 6.0 in array1 ARRAY[1..20,1..40] TRUE *2.0 in BOOL Kuva 3-5 Multi-instanssit (esimerkki) 3-10
Koodiyksiköiden laadinta 3.6 ysteemiattribuuttien anto parametreille ysteemiattribuutit ysteemiattribuutteja voidaan osoittaa yksiköille ja parametreille. Ne ohjaavat hälytys- ja liityntäsuunnittelua, ohjaus- ja valvontatoimintoja ja prosessitekniikan suunnittelua. Muuttujien selitystaulukossa voidaan TEP 7-peruspaketille antaa seuraavat systeemiattribuutit parametrejä varten: ysteemiattri - buuttien syöttö parametrejä varten Annettaessa parametrejä systeemiattribuuteille valitaan parametrin nimi muuttujien selitystaulukosta ja valitaan valikkokäsky Edit Object Properties. Ominaisuudet -dialogikentän rekisterissä ysteemiattribuutit syötetään haluttu attribuutti ja kulloinenkin arvo. Taulukossa 3-3 esitetään, mitä systeemiattribuutteja muuttujien selitystaulukon parametreille voidaan syöttää: Taulukko 3-3 Parametrien systeemiattribuutit Attribuutti Arvo Tämä attribuutti annetaan, jos allittu selitystyyppi 7_server 7_a_type 7_co connection, alarm_archiv alarm, alarm_8, alarm_8p, alarm_s, notify, ar_send pbkl, pbk, ptpl, obkl, fdl, iso, pbks, obkv parametrillä on merkitystä liityntä- tai hälytyssuunnittelussa. Ko. parametri sisältää liityntä- tai hälytysnumeron. määritellään hälytysyksikön hälytysyksikkötyyppi, jota kutsutaan käskyosassa (edellytys: attribuutti 7_server:=alarm_archiv on myös annettu). määritellään suunniteltavan liitynnän liitäntätyyppi, (edellytys: attribuutti 7_server:=connection on myös annettu). 7_m_c true, false parametriä tulee ohjata ja valvoa ohjaus-ja valvontalaitteesta käsin. 7_shortcut 7_unit 7_string_0 7_string_1 16 mitä tahansa merkkiä, esim. ohjearvo =, asetussuure = Yksikkö, esim. litra 16 mitä tahansa merkkiä, esim. AUF 16 mitä tahansa merkkiä, esim. ZU parametrille tulee osoittaa tekstiä analogiarvojen tulkintaa varten. parametrille tulee osoittaa yksiköitä analogiarvojen tulkintaa varten. parametrille tulee osoittaa tekstiä binääriarvojen tulkintaa varten. parametrille tulee osoittaa tekstiä binääriarvojen tulkintaa varten. IN IN, vain yksiköillä, jotka ovat tyyppiä FB, FB IN IN/OUT/ IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB IN/OUT/ IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB IN/OUT/ IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB IN/OUT/ IN_OUT, vain yksiköillä, jotka ovat tyyppiä B, FB, FC, FC IN/OUT/ IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB, FC, FC 3-11
Koodiyksiköiden laadinta Taulukko 3-3 Parametrien systeemiattribuutit Attribuutti Arvo Tämä attribuutti annetaan, jos allittu selitystyyppi 7_visible true, false parametriä ei tule näyttää CFC:ssä. IN/OUT/IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB, FC, FC 7_link true, false parametrin ei tule olla kytkettävissä CFC:ssä. IN/OUT/IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB, FC, FC 7_dynamic true, false parametrin tulee testattaessa olla dynamisoitavissa CFC:ssä. IN/OUT/IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB, FC, FC 7_param true, false parametrin ei tule olla parametroitavissa CFC:ssä. IN/IN_OUT, vain yksiköillä, jotka ovat tyyppiä FB, FB, FC, FC 3-12
Koodiyksiköiden laadinta 3.7 Käskyosan käsittely - yleiskuva Käskyosa Käskyosassa kuvataan koodiyksikön ohjelmankulkua. Virtapiireissä annetaan sitä varten FUP-käskyjä. Koodiyksikön käskyosa muodostuu useimmissa tapauksissa monesta virtapiiristä. Editori suorittaa heti FUP-elementin syötön jälkeen syntaksitestin ja näyttää virheet punaisena. Elementtien väärät sijoitukset torjutaan virheilmoituksilla. Käskyosan editoitavat osat Käskyosassa voidaan virtapiirien sisällä käsitellä yksikön otsikkoa, yksikkökommentteja, virtapiirin otsikkoa, virtapiirikommentteja ja käskyrivejä. FB6 - <Offline> FB6 : Ampelschaltung teuerung einer Ampelanlage für einen Fußübergang an der Hauptstraße. Netzwerk 1 : Vormerkung Rot für den traßenverkehr Yksikön otsikko Yksikkökommentti Virtapiirikommentti Die Vormerkung Rot durch den traßenverkehr wird durch den tarteingang aktiviert, wenn die Zeit zwischen zwei Rotphasen für den traßenverkehr läuft. FUP-elementit #starter >=1 #condition & #t_next_red_car #t_dur_r_car #condition = Virtapiiri-- otsikko Netzwerk 2 : Grün für den traßenverkehr Grüne Ampel für die traße brennt, wenn keine Vormerkung für Rot. Kuva 3-6 Käskyosan rakenne Uusien yksiköiden syöttö Käskyosan osia voidaan periaatteessa käsitellä halutussa järjestyksessä. Yksikköä ensimmäistä kertaa ohjelmoitaessa suositellaan seuraavaa: 3-13
Koodiyksiköiden laadinta Yksikön otsikon anto (valinnainen) Yksikkökommentin anto (valinnainen) Virtapiirien käsittely Virtapiiriotsikon anto (valinnainen) Virtapiirikommentin anto (valinnainen) FUP-elementtien anto Kuva 3-7 Käskyosan käsittely Muutoksia voidaan väliinkirjoitusmuodon lisäksi tehdä myös ylikirjoitusmuodossa. Muodosta toiseen vaihdetaan INERT-näppäimellä. 3-14
Koodiyksiköiden laadinta 3.8 FUP-elementtien syötön perussäännöt Yleistä FUP-virtapiiri voi muodostua useammasta elementistä. Kaikkien elementtien on oltava liitetty keskenään (IEC 1131-3). FUP:ssa ohjelmoitaessa on huomioitava muutamia sääntöjä. Virheilmoitukset huomauttavat mahdollisista virheistä. Kehysten sijoitus Kyhyksiin, joissa on binäärilukituksia (&, >=1, XOR) voidaan liittää standardikehyksiä (Flipflopit, laskurit, ajat, laskentaoperaatiot jne.). Vertailukehykset ovat poikkeus tästä säännöstä. Virtapiiriin ei saa ohjelmoida mitään toisistaan erotettuja lukituksia, joissa on erilliset lähdöt. Lukitusketjun T-haaran avulla voidaan kuitenkin järjestää useampia osoituksia. Kuvassa 3-8 on tästä esimerkki. #starter #condition >=1 & T-haara #t_next_red_car #t_dur_r_car #condition = >=1 #car #cond_02 = Kuva 3-8 Virtapiiri kahdella osoituksella euraavat kehykset voidaan sijoittaa vain lukitusketjun oikeaan reunaan, jossa ne muodostavat ketjun lopun: laskurin aloitusarvon asetus eteenpäinlaskenta, taaksepäinlaskenta ajan käynnistys impulssina, ajan käynnistys pidennettynä impulssina ajan käynnistys vetohidastuksena/päästöhidastuksena. 3-15
Koodiyksiköiden laadinta Kehysten joukossa on sellaisia, jotka vaativat boolen lukituksen, ja sellaisia, joilla ei saa olla boolen lukitusta. Kehykset, joissa on vaadittu boolen lukitus: Lähtö, lähdön asetus, lähdön nollaus [R] Konnektori [#], positiivinen reuna [P], negatiivinen reuna [N] kaikki laskuri- ja Timer/ajastinkehykset Hyppy, kun 0 [JMPN] Master Control Relaisin päällekytkentä [MCR<] Lukitustuloksen lataus BIE-rekisteriin [AVE] Hyppy takaisin [RET] Kehykset, joissa boolen lukitus ei ole sallittu: Master Control Relaisin alku [MCRA] Master Control Relaisin loppu [MCRD] Datalohkon avaus [AUF] Master Control Relaisin poiskytkentä [MCR>] Kaikilla muilla kehyksillä voi olla valinnaisesti boolen lukitus tai sitten ei. Vapautustulo/ Vapautuslähtö eurauksena voi olla kehysten vapautustulon EN tai vapautuslähdön ENO kytkentä, mutta sitä ei myöskään vaadita. Poisto ja muunto Poistamalla kehys poistetaan päähaaraa lukuunottamatta myös kaikki haarat, jotka on liitetty kehykseen boolen tuloilla. amantyyppisten elementtien yksinkertaista vaihtoa varten on käytettävissä ylikirjoitusmuoto (katso kappale 3.12). 3-16