Minnes
enheter är utryústade med minne. Enhetsminnet är uppdelat över flera minnesegment. Minnesegmenten hos en enhet kan t.ex. definieras enligt följande:
- segment_1: lagrar gruppobjektvärden
- segment_2: lagrar parametrar
- segment_3: lagrar applikationsprogram
- segment_4: lagrar allmän information
Fördelarna med minnessegmentskonceptet är:
- nedladdningsoptimering: ladda bara det segment som faktiskt har ändrats, t.ex. är det inte nödvändigt att ladda ned applikationsprogrammet om bara en av parametrarna har ändrats
- skilja på minnes typer
- RAM: Groupbbjevärden (volatila & runtime-data)
- EEPROM/Flash: parametrar & applikationsprogram
- ROM: allmän information
Egenskaper (*)
Konfigurationen av en enhet lagras i dess minne och är uppdelad över ett antal objekt och varje objekt innehåller ett antal egenskaper. En egenskap identifieras av en så kallad "PID".
T.ex så innehåller "enhetsobjektet"(**) bland annat följande allmänna egenskaper:
- Felflaggor
- Programmeringsläge
- Individuell adress
Enhetsobjektet kan förutom de allmänna egenskaperna innehålla enheters (produkt)specifika egenskaper.
Enhetskonfiguration
Konfigurationen av en enhet kan nås på två sätt:
- direkt: via minnestjänster
- indirekt: via egenskapstjänster
Direkt:
- t.ex. MemoryRead(address, data_length)
- "MemoryRead"-tjänsten kan användas för att läsa enhetsparametrar
- Användningen av denna tjänst betyder emellertid att för varje parameter måste dess exakta minnesplats (adress) och dess exakta datalängd vara känd
Indirekt:
- t.ex PropertyRead(Device_Object_ ID, PID)
- även via "PropertyRead"-tjänstparametrarna kan man läsa
- Användningen av den här tjänsten innebär det att endast PID för varje parameter måste vara känd
- "indirekt"innebär att mappningen mellan PID och den faktiska minnesplatsen för egenskapen helt görs inom enheten
(*) "System 1"-enheter har inga egenskaper och stöder därför inte egenskapstjänster
(**) ska inte förväxlas med ett gruppobjekt