moi,
Mitä mieltä korkeantason (graafisista) ohjelmointikielistä sulautetussa järjestelmässä? Perustelut?
Sattuuko kukaan käyttämään Labview Embedded Development Module -ohjelmistoa tehdessään ohjelmaa sulautettuun järjestelmään? Mielipiteitä ja perusteluja?
http://www.ni.com/labview/embedded_dev_module.htm
Mitä mieltä korkeantason (graafisista) ohjelmointikielistä sulautetussa järjestelmässä? Perustelut?
Sattuuko kukaan käyttämään Labview Embedded Development Module -ohjelmistoa tehdessään ohjelmaa sulautettuun järjestelmään? Mielipiteitä ja perusteluja?
http://www.ni.com/labview/embedded_dev_module.htm
Vastaukset 4
Vanhimmat
...et oikein tiedä mistä puhut.
Sulautettu järjestelmä (distributed system) tarkoittaa että laskennallinen toiminta on jaettu usempaan yksikköön (konsoli, logiikka, anturit jne). Mitä kieltä käytät eri yksiköiden ohjelmointiin ei ole keskeinen asia.
Korkeatason ohjelmointikieli tarkoittaa "yksinkertaistettua" ohjelmointikieltä (Basic ja Matlab ovat korkeantason kieliä, C ja varsinkin Assembler eivät ole.)
LabView on (melko) helppokäyttöinen graafinen ohjelmointiympäristö säätösovelluksille. Sen suurin etu verrattuna alemmantason kieliin (C, basic...) on että saa aika paljon ilmaiseksi (graafinen käyttöliittymä, ajoitukset). Mutta niin kuin jo nimestä huomaa (labView = laboratory view) se ei ole koskaan ollut tarkoitettu muuhun kuin pienen mittakaavan sovelluksiin. Älä ihmeessä yritä pistää sellutehdasta roikkumaan tuollaisesta.
Säätösovelluksissa ohjelmoitava logiikka (PLC) on paljon keskeisemmässä asemassa kuin graafinen käyttöliittymä (ja tomittajat tarjoavat tavallisesti eri ohjelmat näiden toteuttamiseksi esim Siemens: Siematic Step7 logiikalle ja WinCC käyttöliittymälle).
Eli yhteenvetona: Labview on keskitetty järjestelmä (ei sulautettu) ja se soveltuu pienen mittakaavan sovelluksiin. mm. turvallisuussyistä (lukitukset ym) sitä ei pidä käyttää missään täysikokoisessa prosessissa.
Sulautettu järjestelmä = Embedded System?
Nyt ei ollut kyse ajatuksesta, että mittauskorteilla (PCI,PXI..) tai eri väyliin kytketyillä (GPIB,VXI VME) laitteilla alettaisiinkaan rakentaa mitään tehdasautomaatiota.
En väitäkään että LabView olisi sulautettu järjestelmä, pikemminkin graafinen käyttöliittymä kääntäjälle.
Meinasin siis sitä, että toimiiko Labview:n ohjelmisto ikään kuin kääntäjänä eli teet helpolla tavalla graafisesti koodia ja LabView osaa kääntää koodin ohjaimelle (joita se tukee) kuin mikä tahansa kääntäjä, jolla on tuki kyseiselle ohjaimelle. (
Kun mietit siltä pohjalta, että esim. käytettäessä mittauskortteja tehdään ohjelma esimerkiksi Labview:llä (on muuten noin 10^6 kertaa helpompaa kuin C:llä) niin eikähän joku kääntäjä siellä käännä sen koodin mittauskortin ohjaimelle sopivaksi koodiksi (asembly).
Eikös se olisi melko helkkarin suuri helpotus ohjelmistotekniikalle jos näin olisi? Graafisesti ohjelmointia helppokäyttöisellä ohjelmistolla, joka osaisi vielä kääntää sen tehokkaaksi assebly-koodiksi... (En kylläkään väitä että näin asia olisi vaan etsin vastausta on tuo mahdollista Labview:llä)
En oikein ymmärtänyt mitä ajoit takaa.
Olen joskus tehnyt sovelluksia LabView:lla ja luulen (en tiedä!) sen toimivan näin:
Se ei varsinaisesti käännä kytkentää konekielelle (siis assemblerille) vaan jollekin omalle "kielelle" mitä tulkataan. Valmiit moduulit ovat valmiiksi käännettyjä kirjastorutiineja kuten myös mittauskorttien ajurit.
Kytkentätieto sisältää niin vähän infoa että tällainen lähestymistapa ei paljon hidasta kokonaisprosessia (verrattavissa muutaman kymmenen rivin basic-ohjelman ajamiseen).
Syy tähän uskomukseen on että "käännösaika" on niin lyhyt verrattuna esim. aikaan mitä C-kääntäjä vaatisi saman kokoisen ongelman kääntämiseen ja linkittämiseen. Vaikka LV:llä voi tehdä stand-alone sovelluksia, se ei vielä osoita että itse kytkentä olisi konekielellä. Jos olisi, miten voisi palata graaffiseen kytkentäkaavioon? Konekieli ei sisällä mitään infoa tästä?
Tuo kommenttini ohjelman helppoudesta perustuu tähän: C-kielellä on 23 avaisanaa ja niiden merkitys on tarkasti määritetty (tietää aina tarkasti mitä tekee). Korkeamman tason kielet tai tulkit (nasic, labview tai matlab) sisältävät huomattavasti enemmän avaisanoja, etkä aina voi olla selvillä mitä miten ne tarkasti toimivat, mikä johtaa siihen että paljon aikaa menee hukkaan kun yrittää etsiä virheitä. Lisäksi korkean tason kielet asettavat omia rajoituksia (C-kääntäjä kirjoitettiin aikoinaan C-kielellä (kirjoitetaan vieläkin). Yritä kirjoittaa kääntäjä LV:llä.)
En tietenkään tarkoita että LV olisi mitenkään huono, päinvastoin (olenhan itse sen joskus hankkinut sen!). Tarkoitan vaan että se on tehty pienille sovelluksille, sellaisilla se toimii erinomaisesti.
Onko kukaan kokeillut DelphiStamp:ä
http://home.hccnet.nl/aj.v/ds/ds.html
Aika mielekiintoinen paketti!