generointi Excel-tietokannasta



Samankaltaiset tiedostot
Tekstinkäsittelyn jatko KSAO Liiketalous 1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

AutoCAD Electrical Päivitys

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

Ohjelmoinnin perusteet Y Python

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

MICROSOFT EXCEL 2010

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin perusteet Y Python

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Muuttujien määrittely

AutoCAD Electrical - Päivitys

Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje.

Excel-lomakkeen (syöttötaulukko) käyttäminen talousarvio- ja suunnitelmatietojen toimittamisen testaamisessa Kuntatalouden tietopalvelussa

Climecon MagiCADliitosohjelma

MicroStation V8i-käyttöympäristö

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

ADMIN. Käyttöopas 08Q4

HENKILÖLISTA-PALVELU Käyttöohjeet versio

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1

OpenOffice.org Impress 3.1.0

AutoCAD blokit. RI Rami Ylä-Pöntinen

Ohjelmoinnin perusteet Y Python

PIKAOHJE USEIDEN VASTAANOTTAJIEN LISÄÄMISEEN YHTIÖN JAKELULISTOILLE

Ohjelmoinnin perusteet Y Python

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

Uutiskirjesovelluksen käyttöohje

Design Your Buildings

HELIA 1 (11) Outi Virkki Tiedonhallinta

Excel 2016 Power Pivot

AutoCAD Electrical - Päivitys

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Henkilö- ja koulutusrekisterin asennusohje

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

Ohjelmoinnin perusteet Y Python

Tietokannat PERUSMATERIAALI Microsoft Access 2007 Kieliversio: suomi Materiaaliversio 1.0 päivitetty

Aloita uusi kartoitus -painikkeesta käynnistyy uuden kartoituksen tekeminen

Suunnittelu / Asennusohjeet

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Ohjelmoinnin perusteet Y Python

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

1 JOHDANTO UUDEN ILMOITUKSEN LUOMINEN VALMIIN ILMOITUKSEN MUOKKAAMINEN YLEISTEKSTIEN KÄYTTÖ JA LUOMINEN...4

Yhdistäminen. Tietolähteen luominen. Word-taulukko. Joukkokirje, osoitetarrat Työvälineohjelmistot 1(5)

Ohjeisto tiedonsiirrosta

Visma Business AddOn Tositteiden tuonti. Käsikirja

Tutoriaaliläsnäoloista

Harjoitustyö: virtuaalikone

Office 365 palvelujen käyttöohje Sisällys

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows 1.

Ohjelmoinnin peruskurssi Y1

TIETOKANTOJEN PERUSTEET MARKKU SUNI

DXL Library ja DXL-kielen olemus. Pekka Mäkinen SoftQA Oy http/

Sisällys Clerica Web-sovellusten käytön aloittaminen 2

AutoCAD Electrical Päivitys

Monivalintamuuttujien käsittely

SISÄLTÖ. Vuokko Vanhala-Nurmi, 2013 Excel jatko

FOTONETTI BOOK CREATOR

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

Pika-aloitusopas. Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

Käyttöohje. Energent MagiCAD plugin

OptimePortal ja OptimeEvent versioiden yhteenveto joulukuu

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

2020 Fusion. What s New in Version 6? What s New in Version 6? 1 of Fusion

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Ohjelmoinnin peruskurssi Y1

CEM DT-3353 Pihtimittari

Maiju Mykkänen Susanna Sällinen

TAULUKON TEKEMINEN. Sisällysluettelo

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje

KAUKOVALVONTAOHJELMA CARELAY CONTROL WPREMOTE

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

AutoCAD-natiiviobjektin toteutus

RATKI 1.0 Käyttäjän ohje

ASENNUS JA KÄYTTÖOHJE

RATKAISU REAALIAIKAISEEN TIEDONSIIRTOON NIINIPLUS PROJEKTIPANKKI INTEGRAATION - PIKAOPAS

Sähköposti ja uutisryhmät

PlanMan Project 2015 projektihallintaohjelmisto loma-aikataulu

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Työkalujen merkitys mittaamisessa

Uuden työ- tai mittavälineen luominen tietokantaan

KÄYTTÖOHJE. Servia. S solutions

OHJE EXCEL-MAKRON LUOMISEKSI JA MAKRON KÄYTÖSTÄ

Transkriptio:

Metropolia Ammattikorkeakoulu Automaatiotekniikan koulutusohjelma Jani Havulehto Rakennusautomaation kytkentäpiirustuksen generointi Excel-tietokannasta Insinöörityö 06.03.2009 Työn ohjaaja: Työn valvojat: tekninen johtaja Jarkko Turunen yliopettaja Kaj Backman lehtori Jaana Wuorila-Stenberg

Metropolia Ammattikorkeakoulu Insinöörityön tiivistelmä Tekijä Otsikko Sivumäärä Aika Koulutusohjelma Tutkinto Ohjaaja Ohjaavat opettajat Jani Havulehto Rakennusautomaation kytkentäpiirustuksen generointi Excel-tietokannasta 79 sivua 06.03.2009 automaatiotekniikan koulutusohjelma insinööri (AMK) tekninen johtaja Jarkko Turunen yliopettaja Kaj Backman lehtori Jaana Wuorila-Stenberg Insinöörityön aiheena on rakennusautomaation kenttälaitteiden uudis- ja saneerausurakointiin sekä huoltoon liittyvien kytkentäpiirustusten muodostaminen laaditun tietokannan pohjalta. Työn aihe oli ollut rakennusautomaatiota urakoivan Arealtec Oy:n tehtävälistalla jo useita kuukausia. Uuden alakeskussukupolven myötä suunnittelua ja piirustusten laadintaa voitiin siirtää entistä enemmän standardisoituun muotoon. Toimintojen standardisoinnilla tähdättiin suunnittelutyötuntien säästöön ja suunnitelmien ja toteutusten yhdenmukaistamiseen. Standardoinnin perustaksi otettiin tietokantapohjaiseen suunnitteluun siirtyminen. Insinöörityössä määriteltiin suunnitteluprosessin kuvaus ja laadittiin määrittelyt tietokantapohjaiselle suunnittelulle. Määrittelyn perustana oli AutoCAD LT -pohjainen piirtäminen, ja toteutuksessa päädyttiin laatimaan tietokantatoiminnot Visual Basic for Applications -ohjelmoinnilla ja suorittamaan piirtäminen AutoCAD-skriptillä. Työn valmistuttua voitiin arvioida saavutetun hyvän perustan suunnittelun standardisoinnille ja tehtyjen ratkaisujen mahdollistavan muidenkin suunnitteluvaiheiden standardoinnin. Hakusanat kytkentäpiirustus, rakennusautomaatio, alakeskus, AutoCAD

Metropolia University of Applied Sciences Abstract Author Title Number of Pages Date Degree Programme Degree Instructor Supervisor Jani Havulehto Generating building automation installation drawings from Excel-database 79 06 March 2009 automation technology Bachelor of Engineering Jarkko Turunen, technical Manager Kaj Backman, principal Lecturer Jaana Wuorila-Stenberg, lecturer The main aim of this final year project was to determine and create process for composing building automation electrical connection diagrams on basis of database. Installation drawings shall be used in both new buildings and restructurings. The idea of this project had been on the to do list of building automation contractor company, Arealtec Oy for several months prior start of this project. After the establishment of new era substation called IQ3, the design work of system and connection diagrams were able to move towards more standardized manners. Standardization of design work aimed to cost savings on labor work and harmonizing of designs. The basis of standardization was taken when it was decided to move forward to database oriented designing. In this project there was determined the whole design process and created definitions for database based electrical connection diagrams designs. Basis for defining the process steps was creating the database functions with Visual Basic for Applications and the final creation of drawings with AutoCAD LT script. The aims of this project where evaluated fulfilled and possibilities for further development of standardization and design automatization found worthwhile. Keywords electrical connection diagrams, building automation, substation, AutoCAD

SISÄLLYSLUETTELO Tiivistelmä Abstract Lyhenteet, käsitteet ja määritelmät 1 Johdanto... 7 2 Insinöörityön tarkoitus... 8 2.1 Laajuuden rajaus... 8 2.2 Työn suoritustapa... 9 3 Rakennusautomaatio... 11 3.1 Yleinen rakenne... 11 3.1.1 Kenttälaitteet... 12 3.1.2 Valvomolaitteet... 12 3.2 Signaalit... 13 4 Kytkentäpiirustus... 14 4.1 Piirustuksen tarkoitus... 14 4.2 Piirustuksen sisältö... 15 5 Tietokoneavusteinen suunnittelu... 16 5.1 Toimintojen automatisointi... 16 5.2 AutoCAD... 16 5.3 AutoCADin historia... 17 5.4 AutoCAD LT... 17 5.5 AutoCADin käyttö... 18 5.5.1 Template... 18 5.5.2 Blokki ja Wblokki... 18 5.6 AutoCAD-skripti... 19 5.7 Excel-AutoCAD -linkitys... 19 6 Visual Basic for Applications... 20 6.1 VBA:sta yleisesti... 20 6.2 VBA -projektin rakenne... 20 6.2.1 Proseduuri... 21 6.2.2 Funktio... 21 6.2.3 Käyttäjälomakkeet... 21 6.2.4 Moduulit... 21 6.3 Muuttujat... 22 6.4 Makron ja VBA:n välinen ero... 22 7 Lähtötilanne... 23 7.1 Piirustuspohjan luonti... 24 7.2 Kytkentäpisteiden lisäys kytkentäpiirustuspohjaan... 25 7.3 Piirtämisessä käytetyt blokit... 26 7.4 Ylläpito... 27

8 Tavoiteprosessin kuvaus... 28 8.1 Toteutussuunnitelma... 29 8.2 Testauksen tuomia muutostarpeita... 29 8.3 Alakeskusmoduulien tunnistaminen... 30 8.4 Käytettävät blokit... 31 8.4.1 Uusi blokki... 31 8.4.2 Blokin poistaminen... 32 8.4.3 Blokin muokkaaminen... 32 8.5 Blokin geometria... 32 8.6 Kytkentäpisteiden attribuutit... 33 9 Excel-tietokannan toteutus... 35 9.1 Pistetietokannan perusrakenne... 35 9.2 Projektikohtaisen tietokannan muodostus... 36 9.3 Laitetietokannat... 36 9.3.1 Laitteen lisäys tietokantaan... 36 9.3.2 Laitteen poisto tietokannasta... 37 9.3.3 Laitteen attribuuttien muutos tietokannassa... 37 9.4 Alakeskusmoduulien lisääminen... 37 9.5 Kytkentäpisteen lisäys... 39 9.5.1 Attribuuttitietosolujen sijoittelu... 40 9.5.2 Attribuuttitietosolujen muotoilu... 40 9.6 Tyhjä kytkentäpiste eli varalla -blokki... 40 9.7 Käyttöliittymä... 41 9.7.1 Käyttöliittymän toteutus... 41 9.7.2 Käyttöliittymän toiminnot... 41 9.8 Kytkentäpisteen poistaminen ohjelmallisesti... 42 10 AutoCAD-skriptin muodostaminen... 44 10.1 Moduulipohjan luonti... 45 10.2 Kytkentäpisteen lisäys... 47 10.3 Sijoitusmääritykset... 47 10.4 Havaitut virheet skriptin muodostuksessa... 48 10.5 Välilyöntien eliminointi attribuuttidatassa... 48 10.6 Numeron esittäminen tekstinä Excel-solussa... 49 11 Käyttöohjeet... 50 12 Tulokset... 51 13 Jatkokehitys... 52 14 Lähteet... 53 Liitteet Liite 1 Liite 2 Pisteluettelosovelluksen käyttöohje Blokin määrittelyt

LYHENTEET, KÄSITTEET JA MÄÄRITELMÄT AutoCAD Suunnittelu- ja piirto-ohjelma Rakennusautomaatio Talotekniikan teknisten laitteiden ohjaus VBA Kytkentäpiirustus Kytkentäpiste Alakeskus Valvontakeskus Moduuli ( IQ3 ) Skripti Moduuli ( VBA ) Pääohjelma Aliohjelma Funktio Visual Basic for Applications, Microsoftin sovellusohjelmissa makrokielenä käytetty ohjelmointikieli Piirikaaviomuotoinen dokumentti alakeskusten ja kenttälaitteiden välisen kytkennän kuvaamiseen Alakeskukseen liitetty kenttälaite Digitaalisesti ohjattu rakennusautomaation logiikkayksikkö, joka koostuu 1-15 moduulista Alakeskusten muodostama ohjauskeskus Alakeskuksen pienin yksikkö, alakeskus koostuu yhdestä tai useammasta moduulista Eräajotiedosto, komentosarja Ryhmä yhdessä tiedostossa olevia VBA-proseduureja Ohjelma, jonka lisäksi ohjelmointiprojektissa on myös apuohjelmia Itsenäinen ohjelman osa, joka suorittaa tietyn toiminnon ja jota voidaan kutsua eri puolilta pääohjelmaa tai muista aliohjelmista Aliohjelma, joka palauttaa vastauksen kutsuvalle ohjelmalle Makro Kokoelma komentoja, jotka voidaan suorittaa yksittäisen napsautuksen avulla

7 1 JOHDANTO Arealtec Oy on Uudellamaalla toimiva rakennusautomaatiourakoitsija, joka urakoi Trend-merkkisillä automaatiojärjestelmillä. Sen liikeideana on tuottaa asiakkaiden tarpeiden mukaisia rakennusautomaatiojärjestelmiä rakennusten talotekniikan hallintaan kustannustehokkaasti. Tarjottaviin palveluihin kuuluvat suunnittelu, projektinhoito, asennus, käyttöönotto, koulutus, huolto, tekninen tuki ja etäseurantapalvelut. Arealtec Oy on toteuttanut yli 800 kpl uudisrakennuskohteiden automatisointia, joissa kytkentäpisteitä on kokonaisuudessaan yli 400 000. Uudisrakennuskohteiden lisäksi Arealtec Oy on toteuttanut useita kymmeniä saneerauskohteita. Insinöörityön raportin rakenne on laadittu siten, että luvuissa 2-6 kuvataan työn tarkoitusta ja käytettyjä välineitä. Luvussa 7 kuvataan suunnittelun lähtötilannetta insinöörityötä aloitettaessa. Luvussa 8 kuvataan insinöörityön tavoitteita ja luvuissa 9-10, kuinka insinöörityön tavoitteet saavutettiin. Lopuksi arvioidaan saavutettuja tuloksia ja jatkokehitysmahdollisuuksia.

8 2 INSINÖÖRITYÖN TARKOITUS Insinöörityön tarkoituksena oli kehittää yrityksen käytössä olevia automaattisia suunnittelu- ja piirustustoimintoja, joilla luodaan kytkentäkuvat asentajien ja huollon käyttöön. Nykyisellään kytkentäkuvat piirretään automaattisesti luodun alakeskuskuvan pohjalta, lisäämällä kytkentäpisteet manuaalisesti. Insinöörityön tavoitteena oli automatisoida myös kytkentäpisteiden lisääminen. Insinöörityöstä sovittaessa määriteltiin, että ohjelman laadinnassa huomioitaisiin sen jatkokehitysmahdollisuudet. Tämän takia piti erityisesti kiinnittää huomiota modulaarisuuteen ja koodin ylläpidettävyyteen. Tämän insinöörityön lisäämällä automaatioasteella tavoitellaan aikasäästön lisäksi seuraavia merkittäviä etuja: vakiomuotoiset kuvat - vähemmän tilaa yksilöllisille ratkaisuille koulutustarpeen väheneminen, jolloin ei ole tarvetta osata spesifisia ohjelmia virheriskin merkittävä väheneminen. Automatisoinnilla siis pyritään antamaan suunnittelijalle aikaa sellaisten työvaiheiden toteuttamiseen, joihin kone ei pysty. Tällöin alakohtaisen ammattitaidon merkitys korostuu. 2.1 Laajuuden rajaus Insinöörityössä oli tarkoitus kehittää ohjelma, jolla IQ3 -alakeskusten kytkentäpiirustukset saadaan automaattisesti generoitua Excel-taulukko-ohjelmalla luodun pisteluettelon datan perusteella. Kytkentäpiirustuksissa esitetään moduulipohja sekä kytkentäpisteet.

9 Muiden alakeskustyyppien kytkentäpiirustusten generoiminen jätettiin työn ulkopuolelle, koska IQ3-alakeskukset ovat nyt ja tulevaisuudessa yleisin käytetty alakeskustyyppi. Työssä ei uudistettu niitä piirtämisen ja suunnittelun vaiheita, joihin oli valmiina soveltuva automatisoinnin ohjelmisto. Näitä olivat mm. riviliitinnumerointi, pisteluettelotulosteen luonti ja kaapelivetoluettelon luonti. Insinöörityön vaiheiksi määriteltiin tutustuminen nykyiseen käytäntöön ja käytettyihin ohjelmistoihin, uuden suunnittelu- ja piirtotavan suunnittelu sekä tähän liittyvän ohjelmiston toteutus ja testaus. Insinöörityön edetessä lisättiin suunnitteluympäristön käyttöohje suunnittelijan käyttöön sekä ylläpito-ohje suunnitteluympäristön ylläpitäjälle. Sovittiin, että käyttöohjeista laaditaan ensin perusversio, jota on mahdollista täydentää myöhemmin. Insinöörityön ulkopuolelle rajattiin käyttöönotto sekä ylläpito. Käyttöönotto oli ajateltu suoritettavan toisen opiskelijan insinöörityönä. 2.2 Työn suoritustapa Insinöörityö tehtiin Arealtec Oy:n käyttöön jo käytössä olevien suunnittelun ja piirtämisen automatisoinnin ohjelmistojen pohjalta. Työssä tutustuttiin käytössä olleeseen piirtämis- ja suunnittelutapaan, laadittiin viitekehys uudelle toimintatavalle sekä luotiin uuden toimintatavan työkalut. Alussa tutustuttiin käytettyjen ohjelmistojen ja ohjelmointikielen rakenteeseen. Tutustuttaessa Auto- CAD-ympäristöön ja erityisesti AutoCAD-skriptin käyttöön saatiin lähtökohta, kuinka kokonaisuuden rakentamiseksi. Visual Basic for Applications-ympäristöön tutustuminen antoi perustaa ohjelmoinnin toteutuksesta. Suurempi painotus työn suorituksessa oli kuitenkin viitekehyksen luomisessa siten, että tavoiteltu toimintamalli olisi alusta asti käyttöön sopiva. Viitekehyksen ja yksityiskoh-

10 taisten määrittelyjen muodostamiseen käytettiin useiden lyhyiden keskustelujen kautta saavutettua tietoa suunnittelun etenemisestä. Kokonaiskuvan muodostamisessa oli suurena apuna kirjoittajan aiempi kokemus rakennusautomaation kenttälaitteiden asennustyöstä. Insinöörityötä varten tutustuttiin rakennusautomaatioon kokonaisuutena sekä erityisesti kytkentäpiirustusten laadintaan sekä käyttöön. Sen aikana syntyi selkeä kuva rakennusautomaatioprojektin toteutuksesta tarjouspyyntövaiheesta aina valmiin rakennuksen ylläpitoon saakka. Työ tehtiin tiiviissä yhteistyössä yrityksen suunnittelijoiden ja teknisen johtajan kanssa.

11 3 RAKENNUSAUTOMAATIO Rakennusautomaatio on talotekniikan osa-alue, jolla vaikutetaan rakennusten sisäilmastoon ja valaistukseen sekä laajasti tulkiten myös rakennusten turvallisuuteen. Rakennusautomaatiolla ohjataan rakennuksen teknisiä laitteita ja pyritään minimoimaan energiankulutus, laitteiden kuluminen ja melu sekä saamaan laitteiden käytöstä paras mahdollinen hyöty. 3.1 Yleinen rakenne Rakennusautomaation toimintoja ovat erilaisten suureiden mittaukset, energian ja vesimäärän laskenta, laitteiden toimintojen ohjaukset ja säädöt, valvonta- ja hälytystoiminnot, raportointi ja tilastojen kokoaminen sekä keskitetty kiinteistöjen valvonta. Keskitetyn valvonnan avulla voidaan hallita suurtenkin rakennusryhmien automaatiotoiminnot. [9, s.5] Tavallisimmin asuintalojen automaatiojärjestelmä valvoo ja hoitaa lämmityskattilan, kaukolämmön lämmönvaihtimen, pumppujen ja lämmitysverkoston tai sähkölämmittimien toimintoja. Automaatiolaitteisto mittaa ja säätää talon lämpötiloja sekä valvoo muita laitteita. Jos automaatiolaitteisto havaitsee laitteiden toiminnoissa jotakin vikaa, se hälyttää valvomossa tai etävalvonnassa kiinteistönhoitajan päätelaitteessa, esim. matkapuhelimessa. Automaatiolaitteet säätävät myös käyttöveden lämpötilaa ja mittaavat veden määrää laskutusta varten. Kerrostaloissa on yleensä automatisoitu koneellinen ilmanvaihto tai ilmastointi. Automaatiojärjestelmä ohjaa myös ulko-ovien sähkölukitusta, porrasvaloja sekä saunojen lämmitystä. [9, s.6]

12 Toimistoissa, kouluissa ja teollisuuslaitoksissa on samat automaatiotoiminnot kuin asuinrakennuksissakin, mutta niissä lisäksi säädetään jäähdytystä, poistoilman lämmöntalteenottoa ja joissakin tapauksissa kostutusta, esim. museoissa. Jokaisessa rakennuksessa on digitaalinen valvonta-alakeskus, joka itsenäisesti hoitaa rakennuksen mittaukset, ohjaukset, säädöt, valvonnat, hälytykset ym. rakennusautomaatiotoiminnot. Valvonta-alakeskus on liitetty valvomoon, jonka kautta rakennusautomaatiojärjestelmään saadaan yhteys ja voidaan tarvittaessa puuttua automaation toimintaan. 3.1.1 Kenttälaitteet Rakennusautomaatiossa kuten muussakin automaatiossa kenttälaitteet ovat automaation alin taso, ja ne sijaitsevat prosessin lattiatasossa eli toteuttavat prosessin ohjauksen vaativan raa an työn. Kenttälaitteina rakennusautomaatiossa ovat mittaavat anturit, laskurit, kytkimet ja hälyttävät laitteet sekä toimilaitteina erilaiset venttiilit ja pellit moottoreineen, releet, pumput ja magneettiventtiilit. 3.1.2 Valvomolaitteet Keskittämällä useiden rakennuksen valvonta-alakeskuksen ohjaus ja seuranta yhteen valvomoon saadaan nopeasti tietoa häiriötilanteista ja pystytään joustavasti muuttamaan automaatiotoimintoja ja näin säästämään käyttökustannuksissa. Kuvassa 1 on esitetty alakeskusten ja valvomon liittäminen Trend-järjestelmissä.

13 Kuva 1. Alakeskusten ja valvomon liitäntä 3.2 Signaalit Rakennusautomaation signaloinnissa käytetään passiivielementtiä (kuten Pt100, Pt1000 NTC10 antureilla), 0..10 voltin jänniteviestiä tai 4..20 ma standardivirtaviestiä. Signaloinnin kaapelointina käytetään rakennusautomaatioon kehitettyjä kaapeleita. Kaapeleissa on haluttu määrä johdinpareja punottuna yhdeksi kaapeliksi. Näitä kaapeleita myydään mm. Redak- ja Nomak-tuotemerkeillä.

14 4 KYTKENTÄPIIRUSTUS Kytkentäpiirustuksella tarkoitetaan piirikaaviomuotoista dokumenttia, jossa on kuvattu alakeskusten, apulaitteiden (kuten apureleet, jäätymissuojatermostaatit, virtausvahtikytkimet) ja kenttälaitteiden välinen kytkentä. 4.1 Piirustuksen tarkoitus Kytkentäpiirustukset toimivat ensimmäisenä ja tärkeimpänä vaiheena projektin toteutusketjua. Tärkeimpänä siksi, että vaaditut IO-pisteet tulevat huomioitua jo ennen laitetilausten tekemistä. Virhe kytkentäpiirustuksissa voi pahimmillaan johtaa koko toteutusketjun uudelleen muokkaamiseen. Ketjuun kuuluvat kytkentäpiirustukset, laitetilaukset, asennukset, alakeskusten ohjelmat, valvomografiikka. Kotelon valmistaja valmistaa kotelon kytkentäpiirustusten mukaisesti. Myös työselostuksessa on usein vaadittu kytkentäkuvat piirikaaviomuodossa. Ensiasennustilanteessa kytkentäpiirustuksessa annetaan asentajalle kaapeli- ja kenttälaitekytkentätiedot. Näitä tietoja tarvitaan myös myöhemmin, esimerkiksi huollon tai saneerauksen yhteydessä kytkentäpiirustuksista voidaan lukea, kuinka kaapelit on kytketty. Tästä syystä kytkentäpiirustusten noudattaminen on ehdottoman tärkeää. Lisäksi mahdolliset kytkentävaiheen aikaiset muutokset tulee päivittää myös kytkentäkuviin, jotta vältytään virheellisiltä tulkinnoilta. Nykyisin lisääntyneet saneeraustyöt ovat selkeästi osoittaneet todellisia kytkentöjä vastaavien kytkentäpiirustusten tarpeellisuuden. Kytkentäpiirustusten puutteet ja virheet voivat aiheuttaa jopa useiden kymmenien prosenttien lisätyön.

15 4.2 Piirustuksen sisältö Kytkentäpiirustuksen sisällölle on asetettu minimivaatimukset, jotta tarvittava tieto saataisiin välitettyä. Kytkentäpiirustuksesta tulee ilmetä otsikkotietoina mm. mistä kohteesta / projektista on kyse kohteen sijainti piirustuksen laatija milloin piirustus on laadittu muutoshistoria. Otsikkotietojen lisäksi projektikohtaisista toteutuspiirustuksista tulee ilmetä mitoitustietoa valvontakeskuksen toteutusta varten seuraavasti: Kotelon koko, jotta osataan varata riittävä seinätila ja antaa tietoa kotelonvalmistajalle. Laitemäärät (alakeskukset, apulaitteet). Tilaukset kotelonvalmistajalle. Vahvavirran kytkentäliittimet sähköurakoitsijaa varten. Kaapelointitiedot sähköurakoitsijalle. Tarvittaessa kytkentäpiirustuksessa voidaan esittää muitakin tietoja.

16 5 TIETOKONEAVUSTEINEN SUUNNITTELU Tietokoneavusteinen suunnittelu eli CAD (Computer Aided Design) on muuttanut teknistä suunnittelua ja piirtämistä siten, että lähes kaikki työt tehdään eri ohjelmistotalojen valmistamilla suunnittelu- ja piirto-ohjelmistoilla. Tietokoneavusteinen suunnittelu käsitteenä on melko laaja. Sillä voidaan tarkoittaa piirtämistä kevyellä piirto-ohjelmalla, monimutkaisia 3D-mallinnuksia tai työvaiheiden automatisointia. Valmiiden suunnitelmien helppo ja nopea muokattavuus on yksi kiistaton hyöty, joka CAD-ohjelmistoilla saavutetaan. [2, s.2-5] 5.1 Toimintojen automatisointi Piirustusten tuottamiselle on tyypillistä, että tietyt toimenpiteet toistuvat samanlaisina useissa kohteissa. Tällaisten usein toistuvien rutiinien suorittamiseen CAD-ohjelmien makrot, komentojonot ja apuohjelmat ovat oiva apu. Esimerkkinä toimintojen automatisoinnista voidaan mainita blokit eli piirustusalkioista koostuvat kokonaisuudet. 5.2 AutoCAD AutoCAD on yleiskäyttöinen tietokoneavusteinen suunnittelu, eli CAD-ohjelmisto, jota kehittää ja julkaisee Autodesk Inc. AutoCAD on yleissuunnitteluohjelma, joka on laajennettavissa erilaisilla Autodesk Inc:n ja muiden yritysten valmistamilla sovellusalakohtaisilla laajennuksilla. Kehitystyö on tehtävissä useampien ohjelmointikielien ja rajapintojen kautta. Valmiita tuotteita on tuhansia, ja yritykset voivat tilata tai kehittää myös itse omia räätälöityjä laajennusohjelmistoja. Ohjelmasta on kymmeniä kieliversioita.

17 AutoCAD on vektorigrafiikkaohjelma, jossa tiedon käsittely perustuu graafisiin olioihin, kuten viivoihin, murtoviivoihin, ympyröihin, kaariin, teksteihin jne. Ohjelmassa on valmiina joitakin tilavuusmallinnukseen ja pintamallinnukseen perustuvia 3Dtyövälineitä. Siitä puuttuu kuitenkin monipuolisempia toimintoja, joita monissa uudemmissa mallinnusohjelmissa on. 5.3 AutoCADin historia Ensimmäinen versio julkaistiin vuonna 1982. 1990-luvun alussa AutoCAD nousi johtavaksi CAD-ohjelmistoksi PC-ympäristössä, ja samalla se toi CAD-ohjelmistojen hintatason myös pienyritysten ulottuville. Sen menestys oli niin merkittävä, että ohjelman dwg-tiedostotyypistä ja dxf-siirtoformaatista tuli suunnittelualalla de facto-standardeja, jotka ovat 2D-suunnittelussa osin yhä samassa asemassa. 2000-luvulla ovat monipuolisemmat 3D-ohjelmistot vallanneet CAD-markkinoita. AutoCAD kehitettiin alun perin DOS-alustalle. Aikoinaan siitä on ollut olemassa myös UNIX-versio, mutta nykyisin se toimii vain Windows-alustalla. 5.4 AutoCAD LT AutoCAD LT on ominaisuuksiltaan rajoitetumpi ja edullisemmaksi hinnoiteltu versio samasta ohjelmasta. Varsinkin 3D- ja sovelluskehitysominaisuuksia on karsittu. Auto- CAD LT:ssä ei ole luvussa 6 kuvattavaa Visual Basic for applications -tukea, joten tiedon siirtäminen Excelin ja AutoCAD:n välillä on tapahduttava kohdassa 5.6 kuvattavan skriptitiedoston kautta.

18 5.5 AutoCADin käyttö AutoCAD:n käyttöliittymän muodostavat ohjelmaikkunan eri osat. Käyttäjän kannalta tärkeimpiä ovat ohjelman toimintaan ja käskyjen syöttämiseen liittyvät osat. Käskyjä voi syöttää kolmella eri tavalla: valikoiden kautta, työkalupainikkeilla tai käskyikkunalla. AutoCAD:ssä on useita toimintoja, jotka helpottavat ohjelman käyttöä toistuvissa tilanteissa. Näitä ovat mm. oletuspohjat (templates) ja blokit, joita molempia käytettiin tässä insinöörityössä. 5.5.1 Template Template eli mallipiirustus on aivan normaali AutoCAD-piirustus, jonka perusasetukset on viritetty omaan käyttöön sopivaksi. Tyypillisiä mallipiirustukseen tehtäviä asetuksia ovat mm. kuvatasot, tekstityylit, viivatyypit ja mitoitustyylit. Räätälöidyn mallipiirustuksen avulla saadaan nopeasti hyvät alkuasetukset uuteen piirustukseen. 5.5.2 Blokki ja Wblokki Piirustustyön nopeuttamiseksi usein toistuvat kuviot voidaan määritellä blokiksi. Blokki voi olla yksittäisen piirustuksen sisäinen blokki, joka ei ole käytettävissä muissa piirustuksissa tai ulkoinen Wblokki, joka on käytettävissä tavallisen dwg-piirustuksen tapaan kaikissa piirustuksissa. Blokkiin voidaan näkyvän geometriatiedon lisäksi lisätä attribuutteja eli tekstitietoa. Attribuutti voi olla näkyvä tai näkymätön. Attribuuttitietoa voidaan hyödyntää mm. määrälaskennassa tai kuten kohdassa 2.1 mainituissa sovelluksissa.

19 Lisättäessä blokki AutoCAD kyselee attribuuttitiedot blokkiin määritellyssä järjestyksessä. Attribuuttien kyselyjärjestys määritellään blokkia luodessa siten, että valitaan blokkiin liitettävät attribuutit siinä järjestyksessä kuin halutaan kyselyjärjestykseksi. Blokkien geometriaa ja attribuuttien kyselyjärjestystä on mahdollista jälkeenpäin muuttaa blokkieditorissa. 5.6 AutoCAD-skripti Skripti eli komentojono on sarja AutoCADin käskyjä. Komentojonoilla voidaan tehdä tiettyjä töitä automaattisesti etenkin silloin, kun kyseessä on suurten tietomäärien käsittely. Komentojonot toimivat siten, että ascii-muotoiseen tiedostoon kirjoitetaan AutoCADkäskyjä ja tarvittaessa niiden optiot. Komentojono-tiedoston tarkennin on aina.scr. Erityistä huomiota skriptin käytössä tulee kiinnittää tyhjään välilyöntiin, sillä välilyönti tarkoittaa skriptissä samaa kuin Enter-näppäimen painallus. Mikäli skriptissä on ylimääräisiä välilyöntejä, on hyvin todennäköistä, että skriptin suoritukseen tulee virheitä tai suoritus keskeytyy. Esimerkiksi attribuutin määrittelyssä ylimääräinen välilyönti aiheuttaa sen, että AutoCAD olettaa ylimääräisen tyhjän tarkoittavan attribuutin syöttöä, jolloin AutoCAD siirtyy käsittelemään seuraavaa attribuuttia tai käskyä. [2, s.331] 5.7 Excel-AutoCAD -linkitys Tiedon siirtäminen Excelin ja AutoCAD:n välillä on mahdollista kohdassa 5.6 kuvatun skriptitiedoston kautta. Skriptitiedoston muodostamiseen käytettyjä Visual Basic for Applications-käskyjä ja vaiheita käsitellään luvussa 10.

20 6 VISUAL BASIC FOR APPLICATIONS Visual Basic (VB) ja Visual Basic for Applications (VBA) ovat yleisnimityksiä Microsoftin kehittämälle ohjelmointikielelle. Visual Basic for Applications-komponentit toimivat lisäominaisuuksina Office-sovellusten päällä. Yleinen syy Visual Basic for Applications-ohjelmointiprojektin tekemiseen on se, että esim. Excel itsessään ei osaa tehdä haluttua toimintoa, mutta Visual Basic for Applications-koodilla haluttu toiminto on mahdollista suorittaa. Tässä luvussa moduulilla tarkoitetaan kohdan 6.2.4 mukaista ohjelmamoduulia. 6.1 VBA:sta yleisesti Ohjelmakoodia käsitellään erillisessä Visual Basic-editorissa. Kun editori-ikkuna on avattu, se on avattuna omana ikkunanaan, kuten muutkin sovellukset. Editori voi olla auki samanaikaisesti Excelin kanssa. Niiden välillä voi siirtyä mm. Alt+Tab - näppäinyhdistelmällä. Excel Visual Basic for Applications-ympäristö on todella monipuolinen. Voidaan sanoa, että kaiken mitä käyttäjä voi tehdä taulukkosivuilla, koodaaja voi kirjoittaa tehtäväksi Visual Basic-ohjelmointikielellä. [1, s 7] 6.2 VBA -projektin rakenne Excel Visual Basic for Applications -projektiin kuuluvia osia ovat työkirja, editorissa määritellyt moduulit ja käyttäjälomakkeet. Projektille voidaan määritellä myös muita ominaisuuksia, kuten nimi ja salasana. [1, s 50]

21 6.2.1 Proseduuri Proseduuri on toimintosarja, jossa määritellään suoritettava tapahtumaketju. Proseduurilla ei ole lopputulosta, vaan se tekee pyydetyt toiminnot ja valmistuu. Kun proseduuri valmistuu, palaa kontrolli proseduuria kutsuneeseen ohjelmaan tai työkirjaan. Proseduuri on joko julkinen tai yksityinen. Tällä tarkoitetaan ohjelman näkyvyyttä sekä muihin moduuleihin että Excel-työkirjaan nähden. Julkinen ohjelma on käytettävissä kaikissa projektin moduuleissa ja yksityinen ainoastaan saman moduulin sisällä. 6.2.2 Funktio Funktio on ohjelma, jonka suoritus palauttaa kutsuvalle ohjelmalle arvon. Kun funktion toiminnot ovat valmistuneet, funktion palauttama lopputulos tallennetaan funktion nimelle. Funktio on proseduurin tapaan joko julkinen tai yksityinen. 6.2.3 Käyttäjälomakkeet Käyttäjälomakkeilla toteutetaan käyttöliittymä, joka sisältää mm. tiedonsyöttökontrollit, valintalistat, halutut toiminnot sekä toimintojen mukaisen ohjauskoodin. 6.2.4 Moduulit Moduuliin määritellään aliohjelmia haluttujen toimintojen suorittamiseksi. Moduuleihin tallennetut aliohjelmat toimivat rajapintana työkirjan ja Visual Basic for Applicationskoodin välillä. Yhteen moduuliin kannatta tallentaa samaan asiaan liittyviä aliohjelmia.

22 Moduuli koostuu määrittelyalueesta ja koodialueesta. Ylimmille riveille kirjoitetut muuttujat asetetaan automaattisesti globaaleiksi. Editori luo erotinviivan yhteisten muuttujien ja aliohjelman väliin. 6.3 Muuttujat Muuttujiin tallennetaan väliaikaista informaatiota koodin suorituksen aikana. Muuttujaa voisi ajatella vaikka tallelokerona, joka vuokrataan käyttöön aliohjelman suorittamisen ajaksi. Muuttujan arvoksi voidaan antaa jotain ja käydä lukemassa sen sisältö. Nämä toiminnot ovat koodissa muuttujan arvon asettaminen sekä viittaaminen muuttujan nimeen ja informaation käyttö halutulla tavalla. [1, s.65] 6.4 Makron ja VBA:n välinen ero Suurimmat erot nauhoitetun makron ja Visual Basic for Applications-koodin välillä ovat Visual Basic for Applicationsin mahdollistamat silmukka- ja ehtorakenteet. Monesti kuitenkin myös Visual Basic for Applications-sovellusta nimitetään makroksi.

23 7 LÄHTÖTILANNE Työtä aloitettaessa kytkentäpiirustusten muodostamisprosessiin sisältyi automatisoituja vaiheita sekä kytkentäpisteiden lisääminen käsin blokkeina. Eri vaiheiden erityyppiset toteutukset sekä jatkokäsittelyyn liittyvät irralliset sovellukset aiheuttivat prosessiin hajanaisuutta. Suurimman rasituksen aiheutti juuri kytkentäpisteiden lisääminen käsin blokkeina. Kytkentäpiirustusten muodostamisprosessin automatisoituja toimintoja olivat alakeskuslaitteiden määrälaskenta ja sen perusteella piirustuspohjan luominen hinnoittelun yhteydessä. Käytännössä piirustuspohjan luominen oli moduulia kuvaavan blokin lisääminen uuteen piirustukseen ja attribuuttitiedon kirjoitus blokkiin. Attribuuttitietona kirjoitettiin mm. SiteName eli kohde (työmaa) SiteAddress eli kohteen osoite Designer eli suunnittelija boxnumber eli valvontakeskuksen numero DateOfDesing eli päiväys ProjNumber eli projektinumero Manuaalisesti tehtäväksi jäi kytkentäpisteiden lisääminen automaattisesti luotuun AutoCAD-piirustuspohjaan. Kytkentäpisteiden lisäämiseen sisältyi sekä mekaanista Auto- CAD-blokin sijoittamista että suunnittelijan ammattitaitoa vaativaa kykyä hahmottaa, mihin alakeskuksen kanavaan kukin kytkentäpiste oli kokonaisuuden kannalta paras kytkeä.

24 7.1 Piirustuspohjan luonti Piirustuspohjan luominen toteutettiin Excel Visual Basic for Applications-sovelluksella. Säätökaavioista laskettiin kytkentäpisteet tyypeittäin ja määriteltiin Excel-taulukkoon Lasketut pisteet -osioon. Tästä laskettiin tarvittavat alakeskuslaitteet Excel-taulukkoon tehdyllä Visual Basic for Applications-sovelluksella Laske AK-laitteet. Tässä sovelluksessa määritellyt tiedot on esitetty kuvassa 2. Kuva 2. Määritellyt lähtötiedot Sovellus lisäsi laitetiedot Excel-soluihin alkaen rivin 21, sarakkeesta B. Piirustuspohjat muodostava sovellus luki soluista tiedon tarvittavista alakeskuslaitteista. Tämän tiedon pohjalta kirjoitettiin AutoCAD-skriptitiedosto, jolla piirustuspohjat muodostettiin. Esimerkki piirustuspohjasta on esitetty kuvassa 3.

25 Kuva 3, kytkentäpiirustuspohja 7.2 Kytkentäpisteiden lisäys kytkentäpiirustuspohjaan Kytkentäpiirustusten suunnittelun lähtökohtina toimivista säätökaavioista luetaan kytkentäpisteet ja sijoitetaan kenttälaitteen blokki suunnittelijan valitseman moduulin tiettyyn kanavaan. Haasteena tässä oli, että kerralla näkyvissä oli vain yksi kahdeksan kanavaa sisältävä moduulipohja. 16-kanavaiset moduulit oli jaettu kahdelle eri kytkentäpiirustukselle. Suunnittelijan tuli hallita joko toisessa ikkunassa tai omassa muistissaan kaikki käytettävissä olevat moduulit. Toisaalta joustavuus kytkentäpisteiden lisäämisessä oli hyvä. Esimerkiksi suunnittelijan havaitessa kytkentäpisteen sopivan johonkin toiseen kanavaan paremmin oli hänen helppo poistaa kytkentäpiste ja liittää se uudelleen haluttuun kohtaan.

26 Kytkentäpisteiden lisäys oli toteutettu määrittelemällä jokaiselle kenttälaitteelle spesifioitu blokki tarvittavine attribuutteineen. Nämä blokit oli sisällytetty AutoCAD:n menuvalikkoon, josta ne voitiin valita hiirellä. Valmis kytkentäpiirustus on esitetty kuvassa 4 7.3 Piirtämisessä käytetyt blokit Suurimmalle osalle toimilaitteita ja antureita oli määritelty omat blokkinsa. Näin toteutettuna blokin valitseminen oli helppoa, koska blokki voitiin valita AutoCAD:n menusta valmistajan ja tyypin perusteella. Toisaalta suuren blokkimäärän hallinnointi oli työlästä, ja tutkittaessa mm. blokkien attribuutteja havaittiin niiden määritysten olevan varsin epäyhdenmukaiset. Kuva 4. Valmis kytkentäpiirustus

27 7.4 Ylläpito Rakennusaikaiset muutokset, yleensä lisäyksiä, tehtiin manuaalisesti piirustuksiin. Valitettavan usein kenttälaiteasentajien ja projektinhoitajien tekemät muutokset jätettiin päivittämättä piirustuksiin. Kenttälaitteiden lisäys kenttälaitetietokantaan tehtiin määrittelemällä ko. laitteelle uusi blokki ja liittämällä tämä blokki AutoCAD:n menu-valikkoon. Ylläpidon ohjeeksi oli laadittu blokkimäärittely, mutta käytännössä blokit olivat toisistaan poikkeavia joko geometrialtaan tai attribuuteiltaan/attribuuttijärjestykseltään.

28 8 TAVOITEPROSESSIN KUVAUS Koska kokonaisuus muodostui useasta eri tarjouskäsittelyn ja suunnittelun vaiheesta, kuvattiin tavoiteprosessi kaaviomuodossa. Prosessin lopullinen määrittely on esitettynä kuvassa 5. Prosessin määrittelyssä pyrittiin säilyttämään soveltuvin osin ne aiemmin käytössä olleet toiminnot sellaisenaan, joita voitiin käyttää myös uudessa mallissa. Tällainen oli mm. pohjien muodostaminen, joka siirrettiin lähes sellaisenaan tietokannan yhteyteen. Kuva 5. Suunnitteluprosessi kokonaisuudessaan.

29 8.1 Toteutussuunnitelma Kun työn tavoitteisiin ja nykykäytäntöön oli perehdytty lähemmin, päädyttiin muuttamaan käytössä ollut toimintatapa seuraavasti. Jokainen kytkentäpiste kirjataan Exceltaulukkoon ja tästä tietokannasta laadittaisiin AutoCAD-skripti, jolla kytkentäpiirustukset muodostetaan. Uuden toimintamallin viitekehyksessä päädyttiin muokkaamaan jo käytössä ollutta Excel-sovellusta IQ3Laskenta ja erityisesti sen osiota, jolla AutoCAD-piirustuspohjat generoitiin. Tämän sovelluksen oli tehnyt työn ohjaaja. Ensimmäisessä toteutettavassa sovelluksessa päädyttiin luomaan sekä tietokanta että tietokannassa olevia alakeskusmoduuleja kuvaavat kytkentäpiirustuspohjat samanaikaisesti. Ensimmäisen ohjelmistoversion valmistuttua koekäyttöasteelle olisi määrä tehdä koesuunnittelu, jotta muutostarpeet löytyisivät. 8.2 Testauksen tuomia muutostarpeita Kun koodi oli saatu kirjoitettua siten, että voitiin muodostaa sekä piirustuspohjat että siirtää kytkentäpisteet tietokannasta piirustuspohjiin, aloitettiin täsmäytys todellisiin projekteihin. Aluksi huomattiin, että projektiin tulee usein muutoksia, joissa moduuleja poistuu tai muuttuu toisen tyyppiseksi välillä laskenta- ja toteutusvaiheiden välillä. Tässä kohtaa pysähdyttiin miettimään prosessin kulkua ja keskustelemaan suunnittelijoiden kanssa. Työn ohjaajan kanssa käydyissä keskusteluissa päädyttiin siihen, että säilytettäisiin aiemmin käytössä ollut, luvussa 7 mainittu piirustuspohjien automaattinen luominen, mutta siirrettään tämä prosessi vasta siihen vaiheeseen, jossa pistetietokanta olisi valmiina ja täytettynä.

30 Prosessi kuvattiin uudestaan, ja rakenne muodostui siten, että tilauksen saapuessa muodostetaan vain tietokantapohja. Kun säätökaaviosta on siirretty kaikki kytkentäpisteet tietokantaan, muodostetaan yhdellä ohjelmalla AutoCAD-skripti, jolla luodaan pohjat sekä lisätään kytkentäpisteet. AutoCAD-piirustuspohjien generointiin käytetty Excel Visual Basic-osio päätettiin siirtää lähes sellaisenaan pistetietokanta-taulukkoon. IQ3Laskenta -tiedostoon kirjoitettiin uusi ohjelma, jolla laskennassa saadut moduulit kopioitiin tietokantapohjaan ja lopulta tallennettiin muodostettu tietokanta projektin nimellä. Näin muodostettuun pistetietokantaan kytkentäpisteet lisättäisiin manuaalisesti säätökaavion perusteella. Kytkentäpiirustusten lopullisessa muodostusprosessissa päädyttiin muodostamaan sekä piirustuspohjat että lisäämään niihin kytkentäpisteet samalla ajolla sen jälkeen, kun tietokanta oli kokonaisuudessaan täytetty. Tätä varten kirjoitettiin tietokantapohjaan ohjelmakoodit, joilla voitiin lisätä kytkentäpisteet kohdan 9.2 mukaisesti sekä muodostaa AutoCAD-skripti luvun 10 mukaisesti. 8.3 Alakeskusmoduulien tunnistaminen Eri moduulien erottamiseen toisistaan päädyttiin käyttämään Select Caselauserakennetta. Rakenteessa tekstin tulee olla kirjoitettuna täsmälleen samoin sekä tietolähteessä että valintarakenteessa, joten oikeinkirjoitukseen on kiinnitettävä huomioita, mikäli moduulien nimityksiä lisätään tai muutetaan. Moduulien erottaminen on siksi oleellinen osa käsittelyä, että eri moduuleilla on eri määrä kanavia, 2-16 kanavaa per moduuli. Lisäksi eri moduulien kanavilla on erilainen kytkentämahdollisuus ja toiminto.

31 8.4 Käytettävät blokit Kohdan 7.2 todetuista valmistaja- ja mallikohtaisista blokeista päätettiin siirtyä yleiskäyttöisiin blokkeihin. Käytetyt blokit kartoitettiin ja selvitettiin minimimäärä attribuutteja, joilla voitaisiin kattaa kaikki tarvittava tiedonvälitys. Päädyttiin luomaan kymmenen erillistä blokkia, joilla kaikilla olisi 28 attribuuttia. Blokkien geometria valittiin mukailemaan aiempaa käytäntöä, jossa anturi kuvataan pienemmällä ruudulla ja toimilaite isommalla. Blokkien yhtenäisyyden säilyttämiseksi laadittiin määrittelyt blokin geometrialle ja attribuuttitiedolle. Nämä on esitetty käyttöohjeen muodossa liitteessä 2. Blokkien määrittelyn yhteydessä oli kiinnitettävä erityistä huomiota kohdassa 2.1 mainittuihin sovelluksiin. Attribuuttien sijainin ja mm. riviliitintyypin merkinnän attribuutissa tuli vastata sovelluksen lukualueen määrittelyjä. Blokkien geometriasta ja käytettävistä attribuuteista laadittiin määrittelyohje, liite 2. 8.4.1 Uusi blokki Käytönaikaista blokkien lisäämistä varten laadittiin em. käyttöohje- ja määrittelydokumentti. Uusi blokki luodaan noudattaen niitä määrittelyjä, joita käyttöohjeessa on mainittu. Blokkimäärittelyistä poikkeaminen on sallittua vain, mikäli varmistetaan yhteensopivuus Pisteluettelo -sovelluksen kanssa. Yksityiskohtaisen käyttöohje- ja määrittelydokumentin luonnilla pyrittiin estämään käytön aikana tapahtuvat toimintavirheet.

32 8.4.2 Blokin poistaminen Koska eniten työtä blokkien suhteen aiheutti blokkien toteuttaminen halutulla kymmenen blokin määrällä, ei katsottu tarpeelliseksi määritellä blokkien poistamista. Todennäköiseksi nähtiin ennemminkin blokkien määrän lisääminen. 8.4.3 Blokin muokkaaminen Blokkien muokkaamista helpotti AutoCAD LT 2009 -ohjelmaversioon sisältynyt blokki-editori, jolla geometriaobjekteja ja attribuuttien syöttöjärjestystä voitiin muokata blokkia räjäyttämättä. Aiemmissa versioissa, joissa blokkieditoria ei ollut, jouduttiin aina blokin luonnin yhteydessä valitsemaan halutut attribuutit jokaisen blokin kohdalla erikseen. Samoin, jos blokkia haluttiin muokata, tapahtui tallentaminen kuten uutta blokkia luonnissa. Tässä riskitekijänä oli aiemminkin mainittu attribuuttien kyselyjärjestyksen muodostuminen vastaamaan valintajärjestystä blokkia luotaessa, jolloin virhemahdollisuus on korkea. 8.5 Blokin geometria Blokin geometriassa päädyttiin säilyttämään käytössä ollut määrittely, jossa anturia kuvaavan blokin koko on pienempi kuin toimilaitetta kuvaavan blokin. Näin saatiin erotetuksi jo ensisilmäyksellä kenttälaitteen tyyppi. Poikkeuksen tästä säännöstä tekevät yleiskäyttöiset mittaus-, hälytys-, säätö- ja indikointiblokit. Näillä on samankokoinen geometria toimilaitteen kanssa.

33 8.6 Kytkentäpisteiden attribuutit Kytkentäpistettä kuvaavat uudet blokit määriteltiin monikäyttöisiksi aiempien laitekohtaisten blokkien sijasta. Näissä laitteen tiedot annetaan attribuutteina, joita määriteltiin tarvittavan 28 kpl tarvittavan välttämättömän tiedon välittämiseksi. Attribuutit voitiin jakaa kahteen ryhmään, kytkentäpistettä lisättäessä määriteltäviin attribuutteihin sekä kiinteisiin tai muulla sovelluksella täytettäviin attribuuteihin. Attribuutit on lueteltu taulukossa 1. Suunnitteluvaiheessa määriteltäviksi attribuuteiksi valittiin Tunnus, Kuvaus, Vaikutusalue, Valmistaja ja Laitemalli. Nämä tiedot annetaan kytkentäpisteen lisäyksen yhteydessä avautuvassa dialogissa. Muut attribuutit määritellään pisteluettelotietokannan kenttälaitetietokantaan. Yleiskäyttöisille blokeille ei määritellä kenttälaitetietokantaan attribuutteja, vaan ne syötetään joko pisteluettelotietokantaan Excelsovelluksessa tai vasta viimeistelemättömään kytkentäpiirustukseen.

34 Taulukko 1, Kenttälaiteblokin attribuutit 1 TUNNUS Kytkentäpisteen positio 2 KUVAUS Kytkentäpisteen kuvaus, esim. TULOILMA 3 VAIKUTUSALUE Vaikutusalue, esim. TOIMISTOT 1-2.KERROS Kytkentäpisteen tyyppi MIT, IND, HÄL, PULSSI, SÄÄTÖ, OHJAUS 4 PISTETYYPPI 5 VALMISTAJA Laitteen valmistaja 6 MALLI Laitteen malli 7 LAITETYYPPI Laitteen tyyppi, esim. SUODATINVAHTI 8 KENTTÄLIITIN_1 Laitteessa käytettävät kytkentäliittimet 9 KENTTÄLIITIN_2 Laitteessa käytettävät kytkentäliittimet 10 KENTTÄLIITIN_3 Laitteessa käytettävät kytkentäliittimet 11 KENTTÄLIITIN_4 Laitteessa käytettävät kytkentäliittimet 12 JOHDIN_X2_1 Johtimen kuvaus, esim. 1a, 1b, 1, 2 13 JOHDIN_X2_2 Johtimen kuvaus, esim. 1a, 1b, 1, 2 14 JOHDIN_X2_3 Johtimen kuvaus, esim. 1a, 1b, 1, 2 15 JOHDIN_X2_4 Johtimen kuvaus, esim. 1a, 1b, 1, 2 16 KAAPELI_TYYPPI_X2 Kaapelityyppi, esim. NOMAK, KLMA 17 KAAPELI_PARIMAARA_X2 Kaapelin parimäärä, esim. 2x2x0.5+0.5 18 KAAPELINUMERO_X2 19 JOHDIN_X2_1 Johtimen kuvaus, esim. 1a, 1b, 1, 2 20 JOHDIN_X2_2 Johtimen kuvaus, esim. 1a, 1b, 1, 2 21 JOHDIN_X2_3 Johtimen kuvaus, esim. 1a, 1b, 1, 2 22 JOHDIN_X2_4 Johtimen kuvaus, esim. 1a, 1b, 1, 2 23 RIVILIITIN_X2_1 VAKin riviliittimet, huom. automaattinumerointi 24 RIVILIITIN_X2_2 VAKin riviliittimet, huom. automaattinumerointi 25 RIVILIITIN_G VAKin riviliittimet, huom. automaattinumerointi 26 RIVILIITIN_G0 VAKin riviliittimet, huom. automaattinumerointi 27 LAITELUETTELO 28 KILPITILAUS Jos laite on meidän toimituksessa, niin merkitään L K = määrittelemätön (aikaisemmin ollut) T = tarrakilpi R = reikäkilpi tyhjänä ei tule mukaan kilpitilaukseen

35 9 EXCEL-TIETOKANNAN TOTEUTUS Tavoiteprosessin määrittelyn jälkeen seuraavana vaiheena määriteltiin, mihin, kuka ja miten pisteluettelon tietokanta luotaisiin. Koska sovelluskehitysalustaksi oli määritelty Excel ja Visual Basic for Applications, päädyttiin käyttämään Excel-työkirjaa. Tietokanta olisi voitu luoda myös esim. Access-tietokantaohjelmalla, jossa Visual Basic for Applications olisi ollut samoin kuin Excel-ohjelmassa. Koska yrityksessä eikä työn tekijällä ollut kokemusta Access-ohjelman käytöstä eikä yrityksellä ollut valmiina ohjelman lisenssiä, kartoitettiin Excel-ohjelman toimivuus tietokannan alustana. Käytännössä kytkentäpisteiden lukumäärä jää aina alle tuhannen, joten koko ei rajoittaisi Excelin käyttöä. Lisäksi kaikissa yrityksen tietokoneissa oli valmiina asennettuna Excelohjelma. Ennen tietokantarakenteen määrittelyä tutustuttiin useisiin ratkaisuihin, joilla Exceltietokanta oli toteutettu. Tutkituista sovelluksista valittiin tarvittavat toiminnallisuuden siten, että rakenne olisi mahdollisimman yksinkertainen. 9.1 Pistetietokannan perusrakenne Toteutussuunnitelmassa määritellyn mukaisesti laadittiin tietokantamalli, jota käytetään uuden tietokannan muodostamiseen. Tietokantamalli nimettiin Pistetietokanta_pohja.xls. Tietokantamalli sisältää skriptin muodostamisen Visual Basic-koodin. Pistetietokannan perussivuna toimii tietokanta -välilehti. Tällä välilehdellä esitetään projektin perustiedot sekä valvontakeskuksen alakeskus moduuleineen. Työkirjan muita välilehtiä ovat blokin attribuuttien määrittelyyn käytettävät sivut sekä laitetietokannan valmistajakohtaisten sekä yleiskäyttöisten laitemallien tietokannat. Laitetietokannat on esitelty kohdassa 9.6. Peruskäyttäjälle näistä välilehdistä on näkyvissä vain tietokanta -välilehti.

36 9.2 Projektikohtaisen tietokannan muodostus Projektikohtaisten pisteluettelotietokantojen pohjana tulisi olemaan Excel-työkirja. Tämä Excel-työkirja sisältää sekä tietokannan visuaalisen ja muodollisen rakenteen että piilotettuina kenttälaitetietokannan. Projektia muodostettaessa tämä pistetietokanta.xlstiedosto kopiotuine alakeskusmoduulitietoineen tallennetaan projektin nimellä. Projektikohtaisen pistetietokannan luonnin yhteydessä pistetietokanta pohja avattiin alla olevalla Visual Basic -koodilla: '-------------------------------------------------------------------------------------------------------- ' tietokantapohjan sijainti '-------------------------------------------------------------------------------------------------------- Workbooks.Open Filename:="C:\TS4\Pistetietokanta_pohja.xls" Windows("Pistetietokanta_pohja.xls").Activate 9.3 Laitetietokannat Pistetietokanta_pohja.xls-työkirjan sisälle määriteltiin erilliset laitetietokannat omille valmistajakohtaisille välilehdilleen. Kytkentäpistettä lisättäessä laitteen spesifiset tiedot kopioidaan tästä laitetietokannasta. Jatkokehitystä silmälläpitäen tietokantojen rakenne sekä tiedon kopiointi sekvenssi tehtiin sellaiseen muotoon, että laitetietokanta voidaan haluttaessa erottaa omaksi tiedostokseen. 9.3.1 Laitteen lisäys tietokantaan Lisättäessä uusi kenttälaite tietokantaan lisätään sen tiedot välittömästi edellisen kenttälaitteen jälkeiselle riville. Näin varmistetaan ComboBox-kontrolleihin luettavien laitetietojen siirtyminen suunnittelijan käyttöön. Mikäli erillisten laitteiden välissä olisi tyhjä rivi, ei ComboBox-kontrollin Do While-silmukka lukisi tyhjän rivin jälkeisiä kenttälaitteita.

37 ComboBox-kontrollin AddItem-alustusrakenne on esitetty seuraavassa: Do While Worksheets("attr_vaihtoehdot").Cells(10, sarake).value <> "" Me.VALMISTAJA.AddItem Worksheets("attr_vaihtoehdot").Cells(10, sarake).value sarake = sarake + 1 Loop 9.3.2 Laitteen poisto tietokannasta Poistettaessa jokin kenttälaite tietokannasta esim. valmistuksen päättyessä on huolehdittava siitä, ettei tietokantaan jää tyhjiä välirivejä. Mikäli tietokantaan jää tyhjiä rivejä, pysähtyisi AddItem-toiminnon Do while-silmukka tyhjälle riville, eivätkä sitä seuraavat laitteet päivittyisi käyttöliittymän lomakkeelle. 9.3.3 Laitteen attribuuttien muutos tietokannassa Muutettaessa jonkin kenttälaitteen oletusattribuutteja tehdään muutos suoraan kenttälaite tietokannan soluihin. Muutoksen yhteydessä on varmistuttava siitä, että numeromuotoinen tieto esitetään as text -muodossa. Attribuuttitietojen määrämuotoisuuden vuoksi muutokset määriteltiin ylläpitäjän tehtäviksi eikä niitä sisällytetty suunnittelijan käyttöohjeisiin. 9.4 Alakeskusmoduulien lisääminen Alakeskusmoduulien lisääminen pisteluettelon tietokantaan IQ3 Laskenta -sovelluksesta sijoitettiin IQ3 Laskenta -taulukkoon. Toiminto rakennettiin ActiveCell-osoituksella ja muuttujilla. Ensimmäiseksi luettavaksi soluksi valitaan B21, jossa on ensimmäisen päämoduulin tiedot. Moduulin ollessa apurele SRMV ei tätä lisätä tietokantaan.

38 Tietokannan osoitus ja moduulitypin valinta on esitetty seuraavassa: Worksheets("Laskenta").Range("B21").Select Do While ActiveCell.Value <> Empty ' Loop viimeisella sivulla modulitype = ActiveCell.Value For k = 0 To ActiveCell.Offset(0, 1).Value - 1 Windows("Pistetietokanta_pohja.xls").Activate If modulitype <> Srmv Then ActiveSheet.Cells(R, S).Value = modulitype End If ' siirrytaan kohde tiedost ' "paste" Moduulin lisäyksen yhteydessä varataan moduulin kanavamäärää vastaava määrä rivejä Select Case- ja For Next rakenteilla: '--------------------------------------------------------------------------------------------------------------- ' varataan riveja moduulin mukaisesti '--------------------------------------------------------------------------------------------------------------- Select Case modulitype Case "IQ3XCITE/16/UK/100-240", "IQ3XCITE/16/LAN/UK/100-240", _ "IQ3XCITE/96/UK/100-240", "IQ3XCITE/96/LAN/UK/100-240", _ "IQ3XCITE/128/UK/100-240", "IQ3XCITE/128/LAN/UK/100-240" mnro = 0 ' paamoduuli on aina 0 For e = 0 To 15 ActiveSheet.Cells(R + e, S + 1).Value = mnro ActiveSheet.Cells(R + e, S + 2).Value = e + 1 Next mnro = mnro + 1 ' lisää modulinro ' lisää kanavanro Jokaisen apumoduulin lisäyksen yhteydessä kasvatetaan moduulin järjestysnumeroa yhdellä. Mikäli valvontakeskuksessa on useita alakeskuksia, nollataan apumoduulien jär-

39 jestysnumerolaskenta moduulin ollessa jälleen päämoduuli. Samalla alakeskuksen numeroa kasvatetaan yhdellä. 9.5 Kytkentäpisteen lisäys Kytkentäpisteen lisäys rakennettiin siten, että kaksoisnapsautettaessa (doubleclick) Tunnus-sarakkeen (sarake H eli 8) haluttua riviä (eli haluttu kanava) käynnistyy ensimmäinen lomake (UusiPiste). Kytkentäpisteen lisäyksen suorittamiseksi harkittiin myös pikanäppäimen käyttöä. Päädyttiin kuitenkin käyttämään ainoastaan tuplaklikkausta. Näin on aina tietoisesti valittava rivi, jolle kytkentäpiste lisätään. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 8 Then Range("A1000").Value = ActiveCell.Row If ActiveCell.Value = Empty Then UusiPiste.Show Else VARMISTUS.Show End If End If End Sub Tuplaklikkauksen tunnistava aliohjelma sijoitettiin työkirjaan Tietokanta -sivulle, jolloin muilla työkirjan sivuilla, sarakkeessa 8 (H) suoritettava tuplaklikkaus ei aiheuta UusiPiste -lomakkeen lataamista.

40 9.5.1 Attribuuttitietosolujen sijoittelu Solujen sijoittelu määriteltiin siten, että ensimmäisenä näkyvänä tietona oli pisteen yksilöivä tieto. Tällainen oli kytkentäpisteen tunnus. Oikealta vasemmalle järjestyksessä seuraaviksi aseteltiin yleensä muutettava tieto, ja loput solut sisälsivät muuttumattoman attribuuttitiedon. Sijoittelu ja attribuuttien kyselyjärjestys blokkia lisättäessä sovitettiin samaan järjestykseen. Näin voitiin käyttää attribuuttitiedon lukemiseen For Nextsilmukkaa. 9.5.2 Attribuuttitietosolujen muotoilu AutoCAD-skriptin tulee olla ascii-muotoista tekstiä, eikä tekstissä saa olla ylimääräisiä välilyöntejä. Tästä syystä oli kiinnitettävä huomiota soluissa olevan tiedon muotoiluun, kohdan 5.6 mukaisesti. Tekstinä soluun syötetty tieto siirtyi skriptiin sellaisenaan, eikä sille tarvinnut tehdä erityisiä muotoiluja. Numeerisessa muodossa esitetty tieto aiheutti AutoCAD-skriptiin siirrettäessä välilyönnin tulostuksen ennen merkkejä. Excel-solujen asetus määriteltiin siten, että kaikki attribuuttisoluissa oleva data on as text -muodossa. 9.6 Tyhjä kytkentäpiste eli varalla -blokki Koska moduuleihin useimmiten jää yksi tai useampia kanavia kytkemättä, oli kiinnitettävä huomiota myös tällaisen kohdan käsittelyyn. Moduuleissa voi olla myös tarkoituksella lisättyjä tyhjiä kanavia tulevaisuuden laajennusta varten. AutoCAD:lle on annettava insert-käskyn yhteydessä lisättävän blokin nimi, muutoin skriptin suoritus keskeytyy. Siksi luotiin varalla -blokki. Kaikkiin pistetietokannan soluihin aina riville 999 saakka asetettiin oletusarvoksi tämän blokin nimi.

41 9.7 Käyttöliittymä Koska perusmuotoisen Excel-taulukon täyttäminen ja lukeminen on suuren tietomäärän vuoksi aikaa vievää ja virhealtista, päädyttiin luomaan erillinen käyttöliittymä tiedon lisäämiseksi. Käyttöliittymän toteutussuunnittelussa kiinnitettiin huomiota erilaisten blokkien eroihin. Tällä pyrittiin mahdollisimman pienen tiedon käsittelyyn ja syöttämiseen suunnitteluvaiheessa. Sellainen attribuuttitieto, joka käytännössä on 95 % samaa kaikissa blokeissa, päätettiin jättää käsittelemättä käyttöliittymässä ja näin yksinkertaistaa käyttöliittymää. 9.7.1 Käyttöliittymän toteutus Käyttöliittymävaihtoehtoina oli erillisen Excel-taulukko sivun käyttäminen tai käyttäjälomakkeen (Forms) luominen. Valinnassa päädyttiin käyttäjälomake-pohjaiseen ratkaisuun. Valitussa toteutuksessa tiedot annetaan käyttäjälomakkeisiin kaksivaiheisesti, jolloin laitemallin valintaa ohjaa sitä edeltävä laitevalmistajan valinta. 9.7.2 Käyttöliittymän toiminnot Ensimmäinen lomake (UusiPiste) käynnistyy kaksoisnapsautettaessa (doubleclick) Tunnus -sarakkeen haluttua riviä (eli valitaan haluttu kanava). Tällöin avautuu lomake, jossa syötetään TUNNUS, KUVAUS, VAIKUTUSALUE sekä VALMISTAJA. Valmistajan kohdalla valittiin ComboBox-kontrolli, jotta annettava tieto olisi ennalta määritellyn mukaista. Annettua tietoa käytetään laitteen mallin valinnassa. UusiPistelomake on esitettynä kuvassa 6.

42 Kuva 6. UusiPiste-lomake Kun käyttäjä on valinnut valmistajan tai kytkentäpisteen tyypin, ohjelma päivittää laitemallin ComboBox-kontrolliin laitteet valmistaja-/tyyppikohtaiselta Exceltaulukkosivulta. Mallin valinnan jälkeen ohjelman lukee mallikohtaisen AutoCADblokin attribuuttitiedon Excel-taulukosta ja kopioi sen pistetietokantaan. ComboBox:in etuina havaittiin syötettävän tiedon määrämuotoisuus, kun vaihtoehdot luetaan valmiista tietokannasta. Näin syötetyn tiedon jatkokäsittely mm. valmistajan tai laitetyypin tunnistamiseen helpottuu. Samoin luettaessa vaihtoehdot tietokannasta laitetiedon ylläpito on yksinkertaista eikä lisäyksen tai muokkauksen yhteydessä tarvitse tehdä muutoksia ohjelmakoodiin. 9.8 Kytkentäpisteen poistaminen ohjelmallisesti Tarpeettoman kytkentäpisteen poistamiseksi kirjoitettiin lomake ja sille ohjelmakoodi, joka palauttaa kanavalle oletusarvon VARALLA. Lomakkeen käynnistys linkitettiin hiiren oikean näppäimen klikkaukseen tunnus-sarakkeessa halutun kanavan rivillä: