Muisti
Laitteet sisältävät muistin. Laitteen muisti on jaettu useisiin muistisegmentteihin. Laitteen muistisegmentit voidaan esim. määrittää seuraavasti:
- Segmentti_1: tallentaa Ryhmäobjektien arvot
- segmentti_2: tallentaa parametrit
- segmentti_3: tallentaa Sovellusohjelman
- segmentti_4: tallentaa yleistietoja
Muistisegmenttikonseptin etuja ovat:
- latauksen optimointi: lataa vain segmentti, jota oikeasti on muutettu, esim. ei ole tarvetta ladata Sovellusohjelmaa, jos vain yhtä parametreista on muutettu
- erottaa muistityypit
- RAM: Ryhmäobjektien arvot (vaihtelevat & toiminta-ajan tiedot)
- EEPROM/Flash: parametrit & Sovellusohjelma
- ROM: yleistiedot
Ominaisuudet (*)
Laitteen konfiguraatio tallentuu sen muistiin ja jaetaan useisiin objekteihin, ja jokainen objekti sisältää useita ominaisuuksia. Ominaisuus tunnistetaan niin kutsutun ”PID”-tunnuksen avulla.
Esim. ”Laiteobjekti” (**) sisältää muun muassa seuraavat yleiset ominaisuudet:
- Virhemerkit
- Ohjelmointitila
- Yksilöllinen osoite
Laiteobjekti voi yleisten ominaisuuksien lisäksi sisältää myös laite- (tuote-)kohtaisia ominaisuuksia.
Laitteen konfigurointi
Laitteen konfigurointiin voidaan siirtyä kahdella tavalla:
- suoraan: muistipalveluiden kautta
- epäsuoraan: ominaisuuspalveluiden kautta
Suoraan:
- ts. MemoryRead(address, data_length)
- ”MemoryRead”-palvelua voidaan käyttää laitteen parametrien lukemiseksi
- tämän palvelun käyttö kuitenkin tarkoittaa, että jokaisella parametrilla on täsmällinen muistisijainti (osoite) ja sen tarkka datapituus on tiedettävä
Epäsuoraan:
- ts. PropertyRead(Device_Object_ ID, PID)
- myös ”PropertyRead”-palvelun kautta voidaan lukea laitteen parametrit
- tämän palvelun käyttö tarkoittaa, että vain kunkin parametrin PID on tiedettävä
- ”epäsuoraan” tarkoittaa, että PID-tunnuksen ja todellisen ominaisuuden muistisijainnin kartoitus tehdään kokonaan laitteen sisällä
(*) ”Järjestelmä 1” -laitteilla ei ole ominaisuuksia ja siksi ne eivät tue ominaisuuspalveluita
(**) ei saa sekoittaa Ryhmäobjektiin