Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

Podporované typy a verzie zariadení
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Scheduler v zariadeniach Siemens Desigo
Scheduler v zariadeniach Delta Controls
Informácie o eventoch
Informácie o alarmoch
Poznámka k cachovaniu adries
Poznámka k zariadeniam Delta Controls
Poznámka k zariadeniam E-DDC3.1
Poznámka k zariadeniam Klimasoft MBG-MSTP
Poznámka k zariadeniam Siemens Desigo
Poznámka k iLON 10 Ethernet adaptéru
Poznámka k implementácii BACnet MS/TP
Poznámka k podpore BBMD (BACnet Broadcast Management Devices)
Tell príkazy
Literatúra
Zmeny a úpravy
Revízie dokumentu

Kotva
typy_verzie
typy_verzie
Podporované typy a verzie zariadení

...

  • komunikácia v sieťach Ethernet (BACnet/IP) a LONTalk
  • obmedzená podpora MS/TP siete (master-slave token-passing na RS-485): bez automatického vyhľadávania Master staníc
  • podpora BACnet routra (prepojenie medzi BACnet/IP a LONTalk sieťami)
  • čítanie a zápis jednoduchých hodnôt (binárne, celočíselné, reálne, reťazce, dátum, čas atď.) aj ľubovoľných ASN sekvencií
  • podpora pollingového spôsobu čítania dát (správy ReadProperty-Request a ReadPropertyMultiple-Request)
  • podpora zmenového spôsobu čítania dát (voliteľná registrácia pomocou správ SubscribeCOV-Request, resp. SubscribeCOVProperty-Request a následné spracovanie ConfirmedCOVNotification-Request a UnconfirmedCOVNotification-Request)
  • zápis hodnôt správou WriteProperty-Request
  • dynamická zmena adresy meraného bodu pomocou TELL príkazu SETPTADDR (na načítanie hodnôt objektov typu schedule)
  • práca s objektmi typu schedule (časové plány)

...

  • Kategória komunikačnej linky: TCP/IP-UDP, LonWorks, Serial, SerialOverUDP Device Redundant.
  • Parametre linky TCP/IP-UDP:
    • Host: IP adresa sieťového rozhrania, ktoré KOM proces používa na komunikáciu. Je možné zadať aj sybolické meno, ktoré sa dá previesť na IP adresu.
      Pozn: Je možné zadať aj adresu ALL - v tom prípade sa používajú všetky dostupné rozhrania.
    • Port: číslo UDP portu, ktorý KOM proces používa na komunikáciu (podľa normy 0xBAC0, t.j. 47808).
      Pozn: parametre záložného servera (Host a Port) nie sú v protokole použité


Parametre protokolu linky

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
Kotva
dbgi
dbgi
DBGI
Debug InputRozšírené debug informácie o vstupných dátach. Význam jednotlivých bitov:
  • 1. bit - debugovanie parsovania ASN správy
  • 2. bit - debugovanie názvov meraných bodov, ktorým prišla nová hodnota
  • ostatné bity - zatiaľ nepoužité
-0
Kotva
dtq
dtq
DTQ
Debug Timeout QueueRozšírené debug informácie o správach v časovej fronte.-False
Kotva
di
di
DI
Device InstanceNenulová hodnota spôsobí, že KOM proces odpovedá na požiadavku Who-Is správou I-Am, v ktorej uvádza zadané Device Instance. Nulová hodnota spôsobí, že Who-Is požiadavky budú ignorované.-0
Kotva
rb
rb
RB
Receive Buffer(iba pre TCP/IP-UDP
linku
 linku) Veľkosť prijímacieho buffra nastavovaná na UDP sockete. Hodnota 0 znamená, že sa veľkosť buffra nemení. Štandardná veľkosť na Windows XP je 8192 bajtov, pri väčšom počte staníc, resp. intenzívnejšej komunikácii je vhodné buffer zväčšiť.bytes0
Kotva
ro
ro
RO
Receive OnlyAk je hodnota True, žiadnej stanici na linke sa neposielajú žiadne správy. Parameter je použiteľný napr. pri odposluchu komunikácie LonTalk: Na linke sa nakonfiguruje adresa zhodná s adresou existujúceho LonTalk zariadenia a nakonfiguruje sa stanica s adresou zariadenia, ktorého komunikáciu potrebujeme odpočúvať. V logovacom súbore linky sa bude nachádzať zaznamenaná komunikácia medzi zariadeniami. RO=True zabezpečí, že KOM proces neovplyvní komunikáciu vlastnými príkazmi a odpoveďami.-False
Kotva
sc
sc
SC
Send Count(iba pre LonWorks
linku
 linku) počet opakovania jedného paketu - prednastavená hodnota je 1, ale v určitých situáciách pri použití iLON(tm)10 Ethernet Adapter-a prvá správa akoby neprešla a komunikácia začala korektne fungovať, keď sa nastavil SC=2.
Poznámka: neskôr bolo zistené, že na vine bolo neukončenie Free topology zbernice terminátorom, ale parameter bol už implementovaný..
-1
Kotva
sd
sd
SD
Send Delay(iba pre LonWorks
linku
 linku) doplnok parametra SC, ktorý udáva oneskorenie (v ms) po každom poslaní paketu.ms0
Kotva
vi
vi
VI
Vendor IDParameter Vendor ID správy I-Am (viď parameter Device Instance).-1


Parametre protokolu linky špecifické pre BACnet MS/TP

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
Kotva
mstp_br
mstp_br
BR
MS/TP baud rateRýchlosť linky. Tento parameter slúži na prepočet niektorých timeoutov, ktoré sú v parametroch protokolu linky zadávané kompatibilne s normou v bitových časoch, tj. v násobkoch doby, ktorú si pri konkrétnej nastavenej prenosovej rýchlosti vyžiada prenos 1 bitu.bits/sec9600
Kotva
mstp_mif
mstp_mif
MIF
MS/TP Nmax_info_framesMaximálne množstvo informačných rámcov, ktoré môže KOM proces vyslať pred tým, ako musí odovzdať token. Norma nešpecifikuje konkrétnu hodnotu, iba hovorí, že pokiaľ táto hodnota v zariadení nie je konfigurovateľná, musí byť 1. Čím väčšia hodnota je nastavená, tým menšie množstvo času ostane pre ostatných Mastrov, ale na druhej strane sa zmenšuje množstvo rámcov bez informačného obsahu.-5
Kotva
mstp_mo
mstp_mo
MO
MS/TP Nmin_octetsMinimálne množstvo dát (bajtov) prijatých na linke, ktoré musí prijať KOM pred vyhlásením linky za "aktívnu".-4
Kotva
mstp_addr
mstp_addr
MY
MS/TP my addressAdresa KOM procesu na linke RS-485. Platná hodnota je z intervalu 0 - 127. Adresa sa musí líšiť od adries ostatných zariadení na linke (ich adresy budú uvedené v konfiguráciách staníc).-1
Kotva
mstp_tfa
mstp_tfa
TFA
Tframe_abortMinimálny čas (zadávaný v dĺžke vysielania bitov, t.j. závislý od parametra MS/TP baud rate), po ktorého vypršaní, bez prijatia ďalšieho znaku počas prijímania rámca, sa celý rámec zahodí. Podľa normy môžu implementácie používať aj väčšie hodnoty, ktoré neprekročia v absolútnom čase hodnotu 100 ms.bits60
Kotva
mstp_tnt
mstp_tnt
TNT
Tno_tokenČas (zadávaný v ms) po ktorého vypršaní bez prijatia dát bude vyhlásená strata tokenu.ms500
Kotva
mstp_tr
mstp_tr
TR
Treply_timeoutMinimálny čas (zadávaný v ms), ktorý musí KOM čakať, kým stanica začne odpovedať na požiadavku.ms255
Kotva
mstp_ts
mstp_ts
TS
TslotČas (zadávaný v ms), počas ktorého môže stanica vygenerovať token.ms10
Kotva
mstp_tu
mstp_tu
TU
Tusage_timeoutMinimálny čas (zadávaný ms), ktorý musí KOM čakať, kým partner začne používať token alebo odpovie na Poll for master rámec. Štandardná hodnota je 20 ms, podľa normy môžu implementácie používať aj väčšie hodnoty, ktoré neprekročia 100 ms.ms20

Kotva
komunikacna_stanica
komunikacna_stanica
Konfigurácia komunikačnej stanice

...

    • Typ stanice: Stanica nakonfigurovaná na linke TCP/IP-UDP musí  musí mať typ BACnet/IP, stanica nakonfigurovaná na linke LonWorks musí mať typ LonWorks. Stanica nakonfigurovaná na linkách SerialOverUDP Device Redundant alebo Serial musí mať typ MS/TP.
    • Kotva
      adresa
      adresa
      Adresa:
      • Stanica BACnet/IP: IP adresa stanice (v tvare A.B.C.D, napr. 172.16.0.99)
      • Stanica LonWorks : adresa LON subsiete a LON uzla (v tvare subnet.node, kde subnet je 8-bitové číslo a node je 7-bitové číslo)
      • Stanica MS/TP: číslo nodu na linke (0-254, adresa 255 je broadcast)
    • Port: (iba pre BACnet/IP): číslo UDP portu stanice (podľa normy 0xBAC0, tj. 47808)
    • Doména: (iba pre LonWorks): 0 alebo 1, súvisí s konfiguráciou linky. Na linke LonWorks je  je možné nakonfigurovať príslušnosť k jednej alebo dvom doménam, na stanici BACnet sa výberom domény udáva, do ktorej domény zariadenie patrí (výber ovplyvňuje 'domain' bit v LON adrese)
    • Source network: číslo zdrojovej siete (tj. siete, do ktorej patrí KOM proces). Pre linku LonWorks sa  sa štandardne nenastavuje, pre linku TCP/IP-UDP je to 16-bitové číslo (alebo sa nenastavuje, viď nižšie Poznámka 2).
    • Kotva
      destionation_network
      destionation_network
      Destination network: 16-bitové číslo cieľovej siete (tj. siete, do ktorej patrí zariadenie, s ktorým KOM proces komunikuje).
      Pre linku LonWorks sa  sa nastavuje v prípade, že KOM proces komunikuje so zariadením, ktoré sa nachádza za BACnet routrom. V takom prípade Adresa stanice je adresa BACnet routra a Destination address je adresa cieľového zariadenia.
      Pre linku TCP/IP-UDP sa parameter Destination network podobne použije iba v prípade komunikácie medzi rôznymi sieťami BACnet.

      Poznámka 1: Táto konfigurácia bola otestovaná nasledovne:
      • Linka: TCP/IP-UDP
      • Typ stanice: BACnet/IP
      • Adresa: 172.16.99.1 (adresa BACnet routra PXG80-N)
      • Destination network: 1
      • Destination address: 1.1 (adresa PXC22 na LON sieti za BACnet routrom
      KOM proces komunikoval so zariadením PXC22 pripojeným k LON sieti prostredníctvom BACnet routra PXG80-N. Komunikácia medzi KOM procesom a BACnet routrom je po sieti Ethernet, preto je linka typu TCP/IP-UDP. Komunikácia medzi BACnet routrom a stanicou PXC22 prebiehala po sieti LON.

      Kotva
      pozn2
      pozn2
      Poznámka 2: Riešili sme podobnú konfiguráciu, kde bol použitý Delta Controls DSM-RTR (pripojený po Ethernet sieti) a za ním cez MS/TP rozhranie pripojené zariadenie Klimasoft MBG (gateway na M-Bus). V skúšanej konfigurácii sa komunikácia rozbehla, pokiaľ nebola nakonfigurovaná Source network, ale iba Destination network (konkr. hodnota 50020) a Destination address (konkr. 96). Pritom v inom prípade v podobnej konfigurácii komunikácia fungovala aj s parametrom Source network, takže treba vyskúšať a poexperimentovať, ktoré nastavenie sieťových parametrov, ktorému zariadeniu vyhovuje.

...

    • Kotva
      resubscribe
      resubscribe
      Resubscribe interval: Čas v sekundách, po uplynutí ktorého sa znovu posiela stanici žiadosť o posielanie zmien meraných bodov. Tento parameter sa týka meraných bodov s Request type rovným SubscribeCOV alebo SubscribeCOVProperty.
    • Max APDU: Maximálna veľkosť správy (APDU=application protocol data unit), ktorú KOM proces posiela. Prednastavené hodnota je:
      Menenie prednastavenej hodnoty má zmysel kvôli testovaniu a na prispôsobenie sa staniciam, ktoré sú schopné spracovať iba menšie správy. V súčasnosti zmenšenie parametra Max APDU má vplyv iba na veľkosť a množstvo správ ReadPropertyMultiple-Request. Tieto správy slúžia na periodické čítanie hodnoty meraného bodu (viď konfigurácia meraného bodu).

      Poznámka: Nastavenie Max APDU nemá vplyv na veľkosť parametra max-APDU-length-accepted v APDU BACnet-Confirmed-Request-PDU, ktorým KOM proces oznamuje partnerovi, akú najväčšiu správu je schopný spracovať. Tento parameter je konfigurovaný pomocou parametra protokolu stanice Segment-Response.

    • Priorita: priorita správy v BACnet protokole. Existujú 4 priority, prednastavená je Normal, vyššie sú Urgent, CriticalEquipment a LifeSafety.
    • Rpt_timer & reply: (iba pre LonWorks): parametre Repeat timer a Retry protokolu LonTalk. Prednastavené hodnoty sú 1 a 1.
    • Tx_timer: (iba pre LonWorks): parameter Tx_timer protokolu LonTalk. Prednastavená hodnota je 3.
    • Timeout a retry: timeout v milisekundách na potvrdenie správy. Prednastavená hodnota je podľa protokolu BACnet 3000 ms. Po vypršaní timeoutu sa správa posiela opäť a to až retry-krát. Ak nie je prijaté žiadne potvrdenie, zvýši sa počítadlo chýb na stanici.

      Poznámka: Pri testovaní zariadenia Siemens PXC64-U (komunikácia cez LonTalk) bolo potrebné nastaviť Retry=8, Timeout=300 (viac opakovaní s kratším timeoutom), v dôsledku toho bolo treba zvýšiť aj hodnoty COM_ERR=10, HARD_ERR=20, aby pri opakovaní posielania správy neprechádzala stanica do chybového stavu.

...

Príklad konfigurácie stanice na linke TCP/IP-UDP:

  • Typ stanice: BACnet/IP
  • Adresa: 10.0.0.1
  • Port: 47808
  • Source network: 1

Príklad konfigurácie stanice na linke linke LonWorks:

  • Typ stanice: LonWorks
  • Adresa: 1.15
  • Doména: 0

...

Parametre protokolu stanice

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
Kotva
ras
ras
RAS
Read After SubscribeParameter ovplyvňuje merané body s Request type = SubscribeCOV alebo SubscribeCOVProperty. Nastavenie hodnoty na True spôsobí, že po výzve SubscribeCOV resp. SubscribeCOVProperty pošle KOM proces následne aj požiadavku na čítanie (ReadProperty-Request).
Pozn: Štandardne parameter netreba nastavovať, pretože ako odpoveď na SubscribeCOV resp. SubscribeCOVProperty väčšina zariadení pošle okrem potvrdenia aj aktuálnu hodnotu. Parameter bol implementovaný kvôli komunikácii so Saphire Communication Controller rev.077-0210, ktorý poslal iba potvrdenie, ale nie aktuálnu hodnotu.
-False
Kotva
rsd
rsd
RSD
Receive-send DelayOneskorenie medzi prijatím odpovede stanice a poslaním ďalšieho paketu.ms0
Kotva
sr
sr
SR
Segment-ResponseBajt obsahujúci Max Segs a Max Resp parametre (viď špecifikáciu protokolu BACnet). Povolené sú iba niektoré hodnoty z intervalu 0-127, ktoré špecifikuje norma BACnet. Hodnotu 128 interpretuje KOM proces ako default:
linka
  •  linka: hodnota sa nastaví na 0x70 (akceptovaných je viac ako 64 segmentov, max. dĺžka správy 50 bajtov)
  • TCP/IP-UDP
linka
  •  linka: hodnota sa nastaví na 0x75 (akceptovaných je viac ako 64 segmentov, max. dĺžka správy 1476 bajtov)
  • Serial a SerialOverUDP Device Redundant linka: hodnota sa nastaví na 0x73 (akceptovaných je viac ako 64 segmentov, max. dĺžka správy 480 bajtov)
-128
Kotva
tsu
tsu
TSU
Time-Synchronization UTCParameter má význam, iba ak je povolená synchronizácia v konfigurácii stanice na záložke "Časové parametre".
Ak je hodnota parametra True (default), časová synchronizácia je vykonávaná pomocou správy UTCTimeSynchronization-Request (synchronizácia v UTC čase). Ak je hodnota parametra False, časová synchronizácia je vykonávaná pomocou správy TimeSynchronization-Request (synchronizácia v lokálnom čase).
Poznámky:
  • Odporúčame synchronizáciu v UTC čase, pokiaľ ju zariadenie podporuje - je tak možné vyhnúť sa problémom s prechodom časov.
  • Požiadavky na časovú synchronizáciu sú nepotvrdzované správy - t.j. od zariadenia nepríde odpoveď ani v prípade, ak podporuje časovú synchronizáciu, ani keď ju nepodporuje.
  • Časová synchronizácia bola otestovaná na zariadení Siemens PXC36-E.D (HW=V3.02). Toto zariadenie podporuje synchronizáciu cez UTC aj lokálny čas. Je možné vyčítať aktuálny čas a dátum ako property local-date(56) a local-time(57) objektu typu Device(8).
    Z tohto objektu je možné vyčítať aj property utc-offset(119) udávajúci offset lokálneho času od UTC (v minútach, t.j. -60 je stredoeurópsky pásmový čas) ako aj property daylight-savings-status(24) udávajúci, či pracuje zariadenie na letnom čase (v septembri 2012 bola na testovanom zariadení hodnota True).
    Po časovej synchronizácii sa hodnoty local-date(56) a local-time(57) príslušne zmenili.
-True

Kotva
merany_bod
merany_bod
Konfigurácia meraných bodov

...

    • Kotva
      requesttype
      requesttype
      Request type: čítanie a zápis vlastností objektov je možný niekoľkými spôsobmi:
      • Kotva
        readproperty
        readproperty
        ReadProperty - periodické čítanie vlastnosti objektu systémom výzva-odpoveď, periódu pollingu je nastaviteľná na stanici na záložke Časové parametre. Na výzvu sa použije správa ReadProperty-Request, zariadenie ako odpoveď posiela správu ReadProperty-Ack. Periodické čítanie zaťažuje sieť a je neefektívne, preto pokiaľ zariadenie podporuje posielanie zmenových dát, odporúčame použiť SubscribeCOV alebo SubscribeCOVProperty.
        Správa ReadProperty-Request je posielaná iba vtedy, ak je zaškrtnutý checkbox Subscribe/read.
      • ReadPropertyMultiple - podobné ako predchádzajúce, na rozdiel od ReadProperty sa v jednej výzve aj odpovedi posiela niekoľko vlastností, takže komunikácia je efektívnejšia. Na výzvu sa použije správa ReadPropertyMultiple-Request, zariadenie ako odpoveď posiela správu ReadPropertyMultiple-Ack.
        Správa ReadPropertyMultiple-Request je posielaná iba vtedy, ak je zaškrtnutý checkbox Subscribe/read.
      • WriteProperty - zapisovanie hodnôt správou WriteProperty-Request. Je nutné špecifikovať aj parameter Application tag. Ak je zaškrtnuté Subscribe/read, po zápise sa spätne číta zapísaná hodnota správou ReadProperty-Request.
      • Kotva
        subscribecov
        subscribecov
        SubscribeCOV - čítanie hodnoty objektu zmenovým spôsobom. Ak je zaškrtnutý checkbox Subscribe/read, po štarte KOM pošle správu SubscribeCOV-Request, ktorou oznámi zariadeniu, že chce byť informovaný o zmenách hodnoty objektu. Je možné špecifikovať, či zariadenie má posielať potvrdzované (správa ConfirmedCOVNotification-Request) alebo nepotvrdzované (UnconfirmedCOVNotification-Request) notifikácie. Potvrdzovaná notifikácia je správa, ktorá vyžaduje explicitné potvrdenie KOM-u správou BACnet-SimpleACK-PDU, takže zaťažuje sieť potvrdeniami, ale pravdepodobnosť, že sa notifikácia stratí, je podstatne menšia ako u nepotvrdzovanej (ak zariadenie nedostane potvrdenie, správu opakuje).

        Poznámka 1: Okrem dynamickej registrácie správou SubscribeCOV-Request môžu niektoré zariadenia podporovať statickú registráciu (uloženú v konfigurácii), takže nie je potrebné sa registrovať a checkbox Subscribe/read môže byť odškrtnutý.
        Poznámka 2: Registrácia môže byť posielaná v pravidelných intervaloch (napr. kvôli možnému výpadku napájania zariadenia). Interval posielania registrácie sa nastavuje na stanici ako parameter Resubscribe interval.
      • Kotva
        subscribecovproperty
        subscribecovproperty
        SubscribeCOVProperty - podobné ako SubscribeCOV, navyše je možné špecifikovať aj Property identifier (takže je možné sledovať aj zmeny iných vlastností objektov ako iba hodnoty) a prípadne Increment - veľkosť prírastku, ktorý spôsobí poslanie zmeny (t.j. pásmo necitlivosti).
        Posielaná správa je SubscribeCOVProperty-Request.

        Poznámka: Testované zariadenie Siemens PXC64-U nepodporovalo parameter Increment.
      • Kotva
        whois
        whois
        WhoIs-identifikačná správa Who-Is-Request na zistenie, aký Device Object zariadenie obsahuje. Odpoveďou je správa I-Am-Request (obsahuje polia iAmDeviceIdentifier, maxAPDULengthAccepted, segmentationSupported, vendorID). Ak je meraný bod typu TxtI, všetky tieto informácie sú v textovej podobe extrahované do hodnoty meraného bodu. Keď takto identifikujem Device Object, môžem si nakonfigurovať meraný bod na načítanie vlastnosti object-list identifikovaného Device Object-u a ak zariadenie túto vlastnosť implementuje, vráti zoznam identifikátorov všetkých objektov, ktoré obsahuje. Následne je možné zisťovať vlastnosti týchto objektov (object-name, location, description, present-value ..)

        Poznámka: Pre zariadenie Siemens PXC64-U je nutné čítať vlastnosť object-list s nastaveným Array index, pričom Array index=0 udáva počet prvkov poľa, prístup k jednotlivým prvkom poľa je cez Array index=1 až N.
      • Kotva
        whohas
        whohas
        WhoHas-identifikačná správa Who-Has-Request na zistenie mena objektu z identifikátora objektu alebo naopak. Odpoveďou je správa I-Have-Request (obsahuje polia deviceIdentifier, objectIdentifier a objectName). Správa Who-Has-Request sa posiela iba raz pri inicializácii meraného bodu (resp. po TELL príkaze SETPTADDR) a slúži na prevod medzi menami a identifikátormi objektov.
        Správa Who-Has-Request bude obsahovať buď meno alebo identifikátor objektu podľa toho, či je na meranom bode nakonfigurovaný Address type ako Name alebo Object type+Instance.
        Podľa toho, či je zaškrtnuté Subscribe/read, môže sa použiť informácia z cache, čo je podstatne rýchlejšie ako zisťovanie z komunikácie.
      • Kotva
        readwritescheduler
        readwritescheduler
        ReadWriteScheduler: na výzvu sa použije správa ReadProperty-Request, na zápis WriteProperty-Request, pričom pri zápise sa zapisuje N dvojíc čas-hodnota. Konfigurácia sa používa na čítanie a zápis objektov typu schedule, podrobnejší popis viď Scheduler v zariadeniach Siemens Desigo.
      • Kotva
        geteventinformation
        geteventinformation
        GetEventInformation: zistenie zoznamu objektov, ktoré sú v alarmovom alebo chybovom stave alebo potrebujú kvitovanie, podrobnejší popis viď Informácie o eventoch.
      • Kotva
        acknowledgealarm
        acknowledgealarm
        AcknowledgeAlarm: kvitovanie alarmov, ktorých zoznam bol načítaný requestom GetEventInformation. Podrobnejší popis viď Informácie o alarmoch. Meraný bod musí byť textový výstup (TxtO).
    • Kotva
      addresstype
      addresstype
      Address type: Každý objekt v protokole BACnet je adresovaný cez Identifikátor objektu. Pri návrhu aplikácie v systéme Desigo sú objekty reprezentované názvami, pričom adresa objektu nie je prístupná a môže sa meniť v dôsledku zmien aplikácie. Zariadenia Delta Controls majú naopak objekty, ktorých adresy zadáva tvorca aplikácie. Z tohto dôvodu sú možné dva spôsoby zadávania adresy meraného bodu zodpovedajúce dvom Address type:
      • Name: zadá sa meno objektu. Typ objektu a číslo inštancie sa zistia dynamicky z komunikácie. Kvôli nezahlcovaniu komunikačných liniek pri štarte KOM procesu sa využíva ukladanie údajov do BACnet cache.
      • Object type + Instance: zadá sa typ objektu a číslo inštancie. Vhodné pre BACnet objekty s konštantnými adresami.
    • Object type: typ objektu, ktorého vlastnosti chcem čítať/zapisovať. Je možné použiť preddefinované typy alebo zapísať číslo nového typu objektu, ktoré si zadefinoval výrobca zariadenia. Typ objektu je 10-bitové číslo.
    • Instance: poradové číslo objektu v rámci typu objektu. Každý objekt má v rámci zariadenia unikátny Object Identifier, čo je dvojica [Object type, Instance]
    • Kotva
      objectname
      objectname
      Object Name: názov objektu, keď Address type= Name, t.j. keď adresa meraného bodu sa zisťuje dynamicky z komunikácie. Object Name musí byť zadaný presne, t.j. netolerujú sa zbytočné medzery na začiatku ani na konci a aj malé a veľké písmená sa musia zhodovať s názvom objektu, ktorý je uložený v zariadení, s ktorým sa komunikuje.
    • Property type: typ vlastnosti - pre Simple sa zadáva iba PropertyIdentifier, pre Complex treba zadať aj Complex address. Komplexný typ vlastnosti je potrebný pri parsovaní implementátorom definovaných rozšírení štandardných správ (Abstract Syntax & Notation). Pri posielaní správ ReadProperty-Request, ReadPropertyMultiple-Request, SubscribeCOV-Request, SubscribeCOVProperty-Request je Complex address ignorovaná,
    • Property identifier: identifikátor vlastnosti objektu. Je možné použiť preddefinované vlastnosti alebo zapísať číslo novej vlastnosti, ktoré si zadefinoval výrobca zariadenia. Identifikátor vlastnosti je typu Enumerated Value, vlastnosti 0-511 sú rezervované pre BACnet, čísla 512-4194303 sú použiteľné pre výrobcov zariadení.
    • Array index: niektoré vlastnosti môžu byť definované ako polia hodnôt, v tom prípade je možné čítať alebo zapisovať konkrétnu položku poľa.
    • Kotva
      application_tag
      application_tag
      Application tag: nutné špecifikovať pri zápise hodnoty (Request type=WriteProperty) a prípadne aj pre iné typy žiadostí, pokiaľ parsovaná odpoveď obsahuje kontextové tagy, ktorých aplikačný typ nie je známy, pretože ide o implementátorom definované rozšírenie správ. Výnimkou je výstupný textový bod, ktorý sa pri nešpecifikovanom aplikačnom tagu chápe ako 'AnyTree' a slúži na zápis ľubovoľnej užívateľom zadanej ASN sekvencie.

      Poznámka: Pokiaľ je zapisovaná hodnota Invalid, nezapíše sa ako definovaný Application tag, ale ako Application tag "Null".
    • Kotva
      complex_address
      complex_address
      Complex address: adresa tagu v 'strome' v prípade implementátorom definovaných rozšírení správ.
      Príklad adresy: [1].[3].2.1
      Popis:
      [1] - kontextový tag č.1 (predpokladá sa, že je to sekvencia),
      [3] - v rámci tejto sekvencie kontextový tag č.2 (opäť musí byť sekvencia),
      2 - v rámci tejto sekvencie druhý tag v poradí (opäť sekvencia),
      1 - v rámci tejto sekvencie prvý tag v poradí.
      Adresa v 'strome' sa začína od úrovne propertyValue (viď príklady správ nižšie).
      Najjednoduchší spôsob zobrazenia parsovanej správy je zapnutie debugu na linke a sledovanie výpisov na konzole alebo v logu linky.

      Príklad 1: Majme zariadenie, ktoré obsahuje objekt typu 2 (Analog Value) s číslom inštancie 1 a predpokladajme, že zariadenie posiela ako hodnotu objektu trojicu čísel, z ktorých prvá je aktuálna hodnota, druhá minútový priemer a tretia desaťminútový priemer. Výpis parsovanej správy môže byť nasledovný:
       === ASN Body beg ===
       objectIdentifier (tag 0) OBJID 2 analog-value,1
       listOfResults (tag 1) SEQUENCE {
        propertyIdentifier (tag 2) ENUM 85 present-value
        propertyValue (tag 4) SEQUENCE {
         REAL 1.40000E+00
         REAL 1.10000E+00
         REAL 1.30000E+00
        }
       }
       === ASN Body end ===
      
      Ak máme záujem o všetky tri hodnoty, nakonfigurujem 3 merané body, (Object type=analog_value, Instance=1, Property-identifier=present-value, Property-type=complex), ktoré sa budú líšiť komplexnou adresou (pre prvý bod 1, pre druhý 2, pre tretí 3). Iba jeden meraný bod by mal mať zaškrtnutý checkbox Subscribe/read, pretože odpoveďou na jednu žiadosť je správa s troma hodnotami. Pri posielaní správ ReadProperty-Request, ReadPropertyMultiple-Request, SubscribeCOV-Request, SubscribeCOVProperty-Request ani WriteProperty-Request sa komplexná adresa nepoužíva.

      Poznámka: Ak by bol nakonfigurovaný meraný bod s Property-type=simple, jeho hodnota by sa po parsovaní správy nastavila na prvú nájdenú hodnotu (v príklade 1.40000E+00).

      Príklad 2: Zariadenie Siemens Desigo PXC64-U má meraný bod (Object type=schedule, Instance=6, zaškrtnutý Subscribe-read, Property-identifier=weekly-schedule, Property-type=complex, Array index=1, Complex address=1). Na linke je zapnutý debug. Po uložení meraného bodu KOM proces pošle požiadavku a vypíše odpoveď:
       === ASN Body beg ===
       objectIdentifier (tag 0) OBJID 17 schedule,6
       propertyIdentifier (tag 1) ENUM 123 weekly-schedule
       propertyArrayIndex (tag 2) UNSIGNED 1
       propertyValue (tag 3) SEQUENCE {
        SEQUENCE {
         TIME 0:0:0.0
         UNSIGNED 2
         TIME 4:0:0.0
         UNSIGNED 3
         TIME 22:0:0.0
         UNSIGNED 1
        }
       }
       === ASN Body end ===
      
      V propertyValue sa nachádza sekvencia 6 hodnôt (striedavo čas a kladné číslo). Ak chceme pristupovať k prvému času, treba nastaviť Complex address=1.1, ak k prvému kladnému číslu, treba nastaviť Complex address=1.2, t.j. prvý element - sekvencia - a v rámci neho druhý element v poradí (UNSIGNED 2). Ak potrebujeme pristupovať k viacerým časom a/alebo hodnotám naraz, stačí nakonfigurovať niekoľko meraných bodov, z ktorých iba jeden bude mať zaškrtnuté Subscribe/read.

      Poznámka 1: Hodnota meraného bodu po vytvorení a uložení s komplexnou adresou 1 zostane Unknown, pretože nakonfigurovaná komplexná adresa 1 zodpovedá 1. prvku v rámci propertyValue, čo je sekvencia a nie jednoduchý zobraziteľný typ.

      Kotva
      pozn2
      pozn2
      Poznámka 2: Meraný bod typu Text je schopný obsiahnuť nielen jednoduchú hodnotu ale aj ľubovoľnú ASN sekvenciu. Jednotlivé hodnoty budú zapísané podľa pravidiel pre zápis ASN sekvencie. Ak v predchádzajúcom príklade nastavíme Complex address=1 a meraný bod zmeníme na textový vstup alebo výstup, jeho hodnota bude reťazec " T0:0:0.0; u2; T4:0:0.0; u3; T22:0:0.0; u1; ". Ak bude Property-type=complex, ale Complex address nebude zadaná, výsledok bude " 0{ T0:0:0.0; u2; T4:0:0.0; u3; T22:0:0.0; u1; }".
    • Increment: prírastok zmeny hodnoty vlastnosti objektu, ktorý spôsobí reportovanie zmeny (viď popis SubscribeCOVProperty).
    • Confirmed: ak je checkbox zaškrtnutý, pre nakonfigurované Request typy SubscribeCOV a SubscribeCOVProperty špecifikuje, či zariadenie má posielať potvrdzované (správa ConfirmedCOVNotification-Request) alebo nepotvrdzované (UnconfirmedCOVNotification-Request) notifikácie.
    • Kotva
      subscriberead
      subscriberead
      Subscribe/read: ak je checkbox zaškrtnutý, sú pre nakonfigurované Request typy posielané príslušné správy na čítanie/registráciu zmien hodnôt:
      ReadProperty: správa ReadProperty-Request
      ReadPropertyMultiple: správa ReadPropertyMultiple-Request
      SubscribeCOV: správa SubscribeCOV-Request
      SubscribeCOVProperty: správa SubscribeCOVProperty-Request
      ReadWriteScheduler: správa ReadProperty-Request

...

Poznámka: Pomocou Ctrl+C je možné skopírovať obsah dialógu Bacnet Item Browser do clipboardu. Pokiaľ je vyznačený konkrétny riadok, skopíruje sa iba ten.

Poznámka: Vo verziách z 20.12.2018 a novších bolo implementované recyklovanie prehliadacieho dialógu. Pokiaľ je dialóg zavretý tlačidlom Cancel alebo po výbere objektu, v skutočnosti je iba skrytý a je k dispozícii pre browsovanie iného meraného bodu v rámci tej istej stanice, takže sa zachováí stromová štruktúra prehliadaných objektov. Kliknutie na krížik vpravo hore spôsobí skutočné zavretie dialógu.

Prehliadanie adresného priestoru

Kotva
anytree
anytree
Zápis ľubovoľnej ASN sekvencie
Pomocou nakonfigurovaného meraného bodu typu textový výstup (TxtO) s nenastaveným aplikačným tagom je možné zapísať ľubovoľnú ASN sekvenciu. Pravidlá zápisu sú nasledovné:

...

Čítanie schedulera (atribút weekly-schedule)

  • Hodnotu po hodnote: dynamickou zmenou komplexnej adresy (1.1, 1.2, 1.3 atď) v skripte je možné vyčítať všetky hodnoty a časy podobne ako pre iné vlastnosti.
  • Všetky časy a hodnoty pre jeden deň naraz:
    • Typ hodnoty: Textový vstup (čítanie schedulera) alebo Textový výstup (čítanie aj zápis)
    • Request type: ReadProperty (čítanie schedulera) ReadWriteScheduler (čítanie aj zápis)
    • Subscribe/read: Y
    • Object type: schedule(17)
    • Instance: číslo inštancie (napr. 6) zistené z konfigurácie Desigo alebo pomocou WhoIs requestu.
    • Property type: Complex
    • Property identifier: weekly-schedule(123)
    • Array index: 1 až 7 podľa načítavaného dňa
    • Application tag: ak nie je udaný, použije sa Unsigned (potrebný iba pri zápise hodnoty)
    • Complex address: 1 (adresa sekvencie)

Do textovej hodnoty sa načítajú časy a hodnoty oddelené bodkočiarkou (

...

viď Poznámka 2).
Pri zápise hodnoty schedulera je potrebné si uvedomiť, že hodnota môže byť poslaná

...

s rôznymi aplikačnými tagmi (Unsigned, Signed), pričom zariadenie očakáva konkrétny tag (najjednoduchšie sa dá zistiť načítaním hodnoty pri zapnutom debugu na linke). Aplikačný tag hodnoty je konfiguračne určený položkou Application tag v konfigurácii. Platné hodnoty Application tag sú Boolean, Unsigned, Signed, Real a Double. V prípade, že je nastavený iný typ, sa automaticky posiela Unsigned hodnota. Typ hodnoty je možné dynamicky zmeniť - ak je prvý znak zapisovanej textovej hodnoty B,U,S,R alebo D, je chápaný ako (B)oolean, (U)nsigned, (S)igned, (R)eal alebo (D)ouble.


Zápis schedulera (atribút weekly-schedule)

  • Nutné je nakonfigurovať Request type=ReadWriteScheduler a do meraného bodu typu Textový výstup priradiť postupnosť dvojíc čas a hodnota oddelených bodkočiarkou, napr. "0:0:0; 1; 2:30:40.5; 2; 5:00:00;1".
  • Aby sa po uložení konfigurácie D2000 alebo po štarte KOM procesu nezapisovala do schedulera 'prázdna sekvencia', je textový reťazec s dĺžkou 0 ignorovaný. Preto, ak je potrebné vymazať časový plán schedulera pre konkrétny deň, do meraného bodu je treba priradiť reťazec nenulovej dĺžky, ktorý neobsahuje žiadny čas ani hodnotu: " ".

Kotva
note_schedulersiemens
note_schedulersiemens

PoznámkaPoznámka: Okrem špecializovaného requestu ReadWriteScheduler je možné zapísať weekly-schedule aj cez zápis ASN sekvencie, napr. hodnote "0:0:0; 1; 2:30:40.5; 2; 5:00:00;1" z predchádzajúceho príkladu zodpovedá sekvencia "{ T0:0:0 u1; T2:30:40.5 u2; T5:0:0 u1 }" pričom konfigurácia meraného bodu sa líši iba v Request type=ReadProperty. Navyše je možné zapísať časový plán na celý týždeň, ak sa nenastaví Array index a hodnota obsahuje 7 sekvencií na jednotlivé dni, napr. "{ T0:10:0 u3 T1:3:0 u1; } {T2:0:0.0 u2 T5:30:10.0; u3; } { T6:0:0.0 u2 T7:0:0.0 u3} { T20:0:0.33; u1} { T21:0:0.0; u1} { T22:0:0.0; u2} 0 { T0:0:0.0; u3; T1:2:0.0; u1; T2:0:0.0; u2; T5:30:10.0; u3}".

...

Po kvitovaní alarmu a následnom načítaní zoznamu alarmov a eventov pomocou requestu GetEventInformation bude vidieť, že alarm bol kvitovaný, pretože sa zmení:
acknowledgedTransitions (tag 2) BITSTRING 0,1,1 to-offnormal(0),to-fault(1),to-normal(2)

na

acknowledgedTransitions (tag 2) BITSTRING 1,1,1 to-offnormal(0),to-fault(1),to-normal(2)

Pokiaľ by bol objekt v stave normal, tak sa v zozname alarmov neobjaví vôbec, ale v tomto príklade bol v stave low-limit, takže ide o aktívny kvitovaný alarm.

Na načítanie zoznamu alarmov, ich výpis do browsera a kvitovanie alarmu je potrebné napísať obslužné skripty na parsovanie textovej hodnoty requestu GetEventInformation a skladanie textovej hodnoty pre AcknowledgeAlarm.

Pozn: v konkrétnom prípade pri potvrdzovaní alarmu vyžadovalo zariadenie DESIGO PXC 100E.D, aby v rámci dátumu bol zadaný aj deň v týždni (napr. D8.6.2020.1  pre pondelok). Hodnota 255 (unspecified) dňa v týždni, ktorá sa posiela, keď deň nie je zadaný, zariadeniu pri potvrdzovaní alarmu nevyhovovala.

Kotva
cache
cache
Poznámka k cachovaniu adries

...

Komunikáciu s testovacou zostavou sa podarilo oživiť v nasledujúcej konfigurácii:

  • Linka: TCP/IP-UDP
  • Typ stanice: BACnet/IP
  • Adresa: 10.0.6.23 (IP adresa E-DDC3.1)
  • Port: 47808
  • Source network: nezadané
  • Destination network: nezadané
  • Destination address: 2001 (získané od BACnet OPC servera od dodávateľa, kde bol tento údaj "Device ID")

...

S pôvodným firmvérom zariadenie (2.01.05) nereagovalo na Who-Is, po upgrade firmvéru na verziu 2.01.16 sa toto chovanie opravilo a korektne funguje aj WriteProperty.

Kotva
desigo
desigo
Poznámka k zariadeniam Siemens Desigo

...

Podľa dokumentu "DESIGO INSIGHT: Installation, setup and communication - Engineering guide" odporúčané adresné nastavenia pre komunikácu cez LonWorks sú:

  • DomainID: 0x49
  • SubnetID: 1
  • NodeID:
    • 1..100 - adresy rezervované pre automatizačné stanice (PX) a systémové zariadenia (BACnet routre)
    • 101..120 - operátorské zariadenia a management stanice DESIGO INSIGHT
    • 121..127 - dočasné operátorské zariadenia (napr. operátorská jednotka PXM20) a nástroje (DTS)

Kotva
mbg-mstp
mbg-mstp
Poznámka k zariadeniam Klimasoft MBG-MSTP

...

Pri použití iLON 10 Ethernet adaptéra na komunikáciu si treba uvedomiť, že komunikačný procesor tohto zariadenia (Neuron 3120) má prednastavené pomerne krátke buffre (network buffer je 66 bajtov), preto nebude prijímať dlhšie pakety. Prejaví sa to vo webovom rozhraní iLON 10, kde bude v záložke Status narastať číslo Missed Messages pri pokuse čítať hodnotu (napr. vždy po uložení meraného bodu, pokiaľ má zaškrtnuté Subscribe/read). Pri testovaní sa tento problém prejavil, keď časový plán schedulera obsahoval viac ako 4 dvojice čas, hodnota. Pri štyroch hodnotách bola celková dĺžka prijatej LON správy 63 bajtov, po pridaní ďalšej dvojice cez terminál PXM20 sa už časový plán načítať nepodarilo.

Pozor! Pomocou utility Nodutil Nodeutil je možné zväčšiť veľkosť prijímaného paketu zväčšením network buffra a aplikačného buffra, ale rovnako dobre je možné nastavením nevhodných hodnôt zariadenie iLON 10 zničiť (Neuron 3120 prestal komunikovať s užívateľským procesorom).
Ak sa rozhodnete prestaviť veľkosť buffrov, postačí zmeniť sieťové a aplikačné buffre z 66 bajtov na 88 bajtov (a zredukovať počty buffrov), pretože KOM proces v svojich paketoch oznamuje, že je schopný prijať 50-bajtovú ASDU (+ 3 bajty hlavička BACnet + 16 bajtov hlavička LON)
Adaptér PCLTA-10 ISA (postavený na komunikačnom čipe Neuron 3150) mal dostatočne dlhé buffre (255 bajtov).
Po zakúpení nového zariadenia iLON 10 bola úspešná konfigurácia vykonaná s nasledovnými parametrami:

...

Do protokolu BACnet bola dorobená (a je k dispozícii vo verziách zverejnených po 17.01.2012) nasledovná vlastnosť týkajúca sa prevodu textových mien na číselné adresy meraných bodov (Siemens zariadenia Desigo) na linke TCP/IP-UDP: ak KOM proces vyšle požiadavku Who-Has a odpoveď I-Have príde z inej IP adresy, hľadá sa (v rámci linky) stanica, ktorá vyslala Who-Has request s textovým názvom, ktorý je uvedený v odpovedi. Ak sa takáto stanica nájde, odpoveď sa spáruje s jej výzvou.
Táto vlastnosť je užitočná, pokiaľ sa komunikuje s viacerými Siemens routrami (za ktorými sú napr. BACnet/LON zariadenia), z ktorých jeden je nakonfigurovaný ako BBMD (Bacnet Broadcast Management Device) a ostatné nie.
Modelová situácia:
KOM proces komunikuje s dvoma BACnet routrami Desigo PXG80-N (Rtr1 a Rtr2). Za každým routrom je LON sieť, pre zjednodušenie s jedinou stanicou Desigo PXM20 (Des1 resp. Des2). Router Rtr2 je nakonfigurovaný tak, aby BACnet broadcasty z LON siete preposielal na Rtr1.

...

Majme jednu komunikačnú linku typu TCP/IP-UDP, na  na nej dve stanice typu BACnet/IP reprezentujúce Des1 a Des2

  • Linka L.Bacnet: typ typ TCP/IP-UDP
  • Stanica B.Des1:
    Typ stanice: BACnet/IP
    Adresa: 10.0.0.1 (adresa Rtr1, za ktorým sa nachádza Des1)
    Port: 47808 (štandardný BACnet port)
    Destination network: 11 (adresa siete za Rtr1)
    Destination address: 1.1 (adresa Des1 v LON sieti)
    Register-Foreign-Device: zapnutý (aby sa KOM proces registroval ako príjemca broadcastov u Rtr1, ktorý má aktívnu BBMD funkcionalitu)
  • Stanica B.Des2:
    Typ stanice: BACnet/IP
    Adresa: 10.0.0.2 (adresa Rtr2, za ktorým sa nachádza Des2)
    Port: 47808 (štandardný BACnet port)
    Destination network: 12 (adresa siete za Rtr2)
    Destination address: 2.2 (adresa Des2 v LON sieti)
    Register-Foreign-Device: vypnutý (Rtr2 má neaktívnu BBMD funkcionalitu)
  • Ľubovolný bod M.Des2_test na stanici B.Des2 (napr. typu SubscribeCOV) s Address type=Name

KOM proces pošle kvôli prevodu textového názvu nakonfigurovaného v adrese M.Des2_test Who-Has požiadavku na zariadenie Des2. Pri posielaní sa použije IP adresa Rtr2 10.0.0.2.
Rtr2 prepošle požiadavku do LON siete na Des2 (podľa parametrov Destination network=12 a Destination address=2.2 uvedených v konfigurácii stanice B.Des2). Z BACnet/LON zariadenia Des2 príde broadcast odpoveď I-Have. Keďže BACnet router Rtr2 je bez podpory BBMD, prepošle odpoveď (za predpokladu, že je tak nakonfigurovaný) BACnet routru Rtr1, ktorý má podporu BBMD.
Rtr1 prepošle I-Have správu ako UDP paket KOM procesu, pretože je nakonfigurovaný parameter stanice B.Des1 Register-Foreign-Device a teda KOM proces sa registroval ako príjemca broadcast správ u Rtr1). Takto sa I-Have správa dostane do KOM procesu s inou IP adresou ako bola pôvodná výzva. Vyššie popisovaná funkcionalita spáruje takúto odpoveď s výzvou od stanice B.Des2 na základe zhody textového názvu objektu v poslanej výzve.

Z popísaného postupu zároveň vyplýva jedno konfiguračné obmedzenie - všetky popísané činnosti sa dejú v kontexte jednej linky, takže je nutné, aby na jednej linke sa nachádzali všetky stanice, ktoré sú v pôsobnosti jedného BBMD zariadenia.

Kotva
tell_cmd
tell_cmd
Tell príkazy

...

PríkazSyntaxPopis
STWATCHSTWATCH MenoStaniceTell príkaz pošle na stanicu príkazy ReadProperty, ReadPropertyMultiple a Subscribe podľa konfigurácie jednotlivých meraných bodov.

Kotva
literatura
literatura
Literatúra

...

ANSI/ASHRAE Standard 135-2001: BACnet - A Data Communication Protocol for Building Automation and Control Networks

ASN.1 Complete by Prof. John Larmouth


Info
titleBlogy

O protokole BACnet si môžete prečítať aj blogy:


Kotva
zmeny_upravy
zmeny_upravy
Zmeny a úpravy

...