Kapitola 6
Formát konfiguračního souboru

Soubor *.rio je textový, takže jej lze v případě potřeby prohlížet i upravovat v libovolném textovém editoru pracujícím s prostým textem (například Notepad). Struktura souboru je zřejmá z následujícího příkladu:

CANopen {  
  NetAdapter              "pcanpci0"  
  #NetAdapter              "usb1"  
  NodeID                  1  
  BaudRate                1000000  
  NodeMode                0x207  
  TimeoutSdo              0.2  
  Object {  
    Index                   0x1000  
    Count                   1  
    Entry {  
      Subindex                1  
      Flags                   0x00000125  
      avi                     0x6000  
      Value                   301  
    }  
  }  
  Object {  
    Index                   0x1280  
    Count                   3  
    Entry {  
      Subindex                1  
      Flags                   0x0000000D  
      avi                     0x6000  
      Value                   0x602  
    }  
    Entry {  
      Subindex                2  
      Flags                   0x0000000D  
      avi                     0x6000  
      Value                   0x582  
    }  
    Entry {  
      Subindex                3  
      Flags                   0x0000000D  
      avi                     0x2000  
      Value                   2  
    }  
  }  
}

Platí, že parametry, jejichž název začíná znakem # jsou ignorovány a lze je tedy využít jako komentář. Sekce Object se opakuje tolikrát, kolik definujeme objektů/indexů v „object dictionary“. Obdobně sekce Entry se opakuje pro každý subindex. V názvech parametrů i sekcí se rozlišují velká a malá písmena.

Význam jednotlivých parametrů je následující:

NetAdapter
– Název komunikační karty v operačním systému. V Linuxu je to obvykle pcanpci0 pro PCI kartu a pcanusb0 pro USB kartu; ve Windows usb1 pro USB kartu.
NodeID
– Číslo stanice pro CANopen. Může nabývat hodnot 1 až 127.
BaudRate
– Rychlost sběrnice v bitech za sekundu. Všechny stanice na jedné lince musí mít nastavenu stejnou.
TimeoutSdo
– Doba v sekundách, jak dlouho se čeká na odpověď na SDO příkaz.
NodeMode
– Upravuje některé vlastnosti ovladače. Každý bit představuje/zapíná určitou vlastnost, přičemž:
bit 0

stanice má Master funkce (spouštění sítě, konfigurace stanic)

bit 1

synchronizace semaforem (lze pro urychlení vypnout, pokud všechny vstupy a výstupy do tohoto ovladače vedou jen z jemu přidruženému IOTASKu)

bit 2

Master stanice přejde do plného provozu i když nejsou k dispozici všechny nakonfigurované Slave stanice

bit 8

režim CAN (tj. bez CANopen vrstvy); celá konfigurace je ignorována a lze používat jen vstup RecvMsg a výstup SendMsg; v tomto režimu nelze použít IOTASK

bit 9

ve stavu preop se ignoruje, že Slave stanice neposílá stavové informace (tzv. heartbeat); odporuje to sice specifikaci CANopen, ale některá zařízení dokud nejsou nakonfigurována status neposílají

Index
– Číslo objektu v „object dictionary“
Count
– Počet subindexů objektu, tj. počet následujících sekcí Entry. Subindexy se nesmí vynechávat, takže je to současně nejvyšší subindex.
Subindex
– Číslo subindexu, který definuje tato sekce Entry.
Flags
– Upravuje některé vlastnosti položky. Každý bit představuje/zapíná určitou vlastnost, přičemž:
bit 0 hodnota/subindex může být čten systémem REX
bit 1 hodnota/subindex může být měněn/zapisován systémem REX
bit 2 hodnota/subindex může být čten po sběrnici CAN
bit 3 hodnota/subindex může být měněn/zapisován po sběrnici CAN
bit 4 hodnota/subindex může být mapován do PDO
bit 5 nastavuje se pokud, je jen jeden subindex a je považován za hodnotu celého objektu
avi
– Typ hodnoty. Možnosti jsou:
0x1000

logická hodnota (on/off)

0x2000

BYTE/UNSIGNED8 - 8bitové číslo bez znaménka

0x3000

SHORT/SIGNED16 - 16bitové číslo se znaménkem

0x4000

LONG/SIGNED32 - 32bitové číslo se znaménkem

0x5000

WORD/UNSIGNED16 - 16bitové číslo bez znaménka

0x6000

DWORD/UNSIGNED32 - 32bitové číslo bez znaménka

0x7000

FLOAT/REAL32 - 4bajtové desetinné číslo (dle IEEE754)

0x8000

DOUBLE/REAL64 - 8bajtové desetinné číslo (dle IEEE754)

0xA000

LARGE/SIGNED64 - 64bitové číslo se znaménkem

0xC000

STRING - text

0xD000

INTPTR/DOMAIN - obecné pole bajtů (zadává se do uvozovek jako číslo v hexadecimálním formátu)

Value
– Vlastní (počáteční) hodnota subindexu. Formát musí odpovídat parametru avi.