Drivery

Přehled driverů dodávaných s QInsight. Konfigurační parametry se zadávají v poli Settings ve formátu klíč=hodnota;klíč=hodnota (velikost písmen u klíčů nehraje roli). Driver obstarává fyzický přenos dat — o jejich výklad se stará protokol.

Při přidání driveru se pole Settings automaticky předvyplní šablonou se všemi parametry (u každého driveru níže řádek Předvyplní se). Jde jen o výchozí hodnoty — vždy je přepište podle reálné situace. Sloupec Výchozí v tabulkách platí, když parametr úplně vynecháte. U parametrů specifických pro zařízení (port, deviceId, ip) je nutné hodnotu vždy nastavit.

Ke čtení nastavení obecně: klíče se porovnávají bez ohledu na velikost písmen a hodnoty smějí být v uvozovkách (port="COM3"). Neznámý klíč (překlep nebo název z dřívější verze) se ignoruje a driver na něj upozorní varováním v logu, ve kterém vypíše i všechny klíče, které zná; neplatná hodnota se s varováním nahradí výchozí. Po každé změně nastavení proto zkontrolujte log.

Obnova spojení

Všechny drivery, které komunikují se zařízením (Serial Port, TCP Client, TCP Server, PEAK CAN), se po ztrátě spojení chovají stejně a nastavují se stejnou dvojicí parametrů:

ParametrVýchozíVýznam
reconnectDelayMs1000 (Serial Port 2000)prodleva mezi dvěma pokusy o obnovení spojení v ms
reconnectAttempts-1počet opakování po neúspěšném pokusu: -1 = donekonečna, 0 = neopakovat (driver se zastaví při první chybě), N = ukončit pokusy po N po sobě jdoucích neúspěších
  • Počítadlo neúspěšných pokusů se po každém úspěšném připojení nuluje — dlouhé měření tak vydrží i několik ojedinělých výpadků, limit vyčerpá jen nepřerušená řada neúspěchů.
  • Během výpadku je driver ve stavu Faulted, protokoly na něm zůstávají spuštěné a čekají (XCP zahodí session a po obnovení naváže novou, Modbus master pozastaví dotazy). Po obnovení spojení komunikace pokračuje bez zásahu obsluhy.
  • Každý pokus je v logu jako varování … failed (attempt 3/4): … Reconnecting in 1000 ms. Při nekonečném opakování se po prvních třech pokusech loguje už jen jednou za minutu s aktuálním číslem pokusu, aby nedocházelo k zahlcení logu.
  • Po vyčerpání limitu driver zapíše do logu chybu gave up after N reconnect attempt(s): …, zastaví své protokoly a skončí ve stavu Stopped s tímto hlášením. Ostatní drivery a runtime běží dál; zastavený driver lze znovu spustit tlačítkem Start v jeho vlastnostech — viz Stavy driverů a tlačítko Start.

TCP drivery mají navíc parametr keepAliveMs (výchozí 5000, 0 = vypnuto): po takto dlouhé nečinnosti na spojení začne operační systém posílat keepalive sondy (každou sekundu, po třech neúspěšných spojení ukončí). Odpojený kabel nebo vypnutá protistrana se tak zjistí během několika sekund místo desítek sekund, které trvá vlastní timeout TCP. Vypněte jej pouze v sítích, kde keepalive sondy působí potíže.

TCP Client

Technický název (v projektu): TcpClientDriver

Obousměrný TCP klient: připojí se na server (zařízení) a přenáší surové bajty. Rámování a kódování dat je věcí protokolu — typicky JSON Signal Stream, Modbus Master (TCP) nebo XCP on TCP.

Předvyplní se: ip=127.0.0.1;port=5000;connectionTimeoutMs=5000;reconnectDelayMs=1000;reconnectAttempts=-1;keepAliveMs=5000

ParametrVýchozíVýznam
ip127.0.0.1adresa serveru
port5000TCP port
connectionTimeoutMs5000jak dlouho čekat na navázání spojení, v ms
reconnectDelayMs1000prodleva mezi pokusy o znovupřipojení, viz Obnova spojení
reconnectAttempts-1počet pokusů o znovupřipojení, -1 = donekonečna
keepAliveMs5000TCP keepalive: po takto dlouhé nečinnosti ověřuje spojení, 0 = vypnuto

Nečinnost na lince driver nepovažuje za chybu (Modbus TCP mezi dotazy nic neposílá); přerušené spojení zjistí keepalive. Timeouty menší než 1 ms se zvýší na 1 ms. Dřívější názvy reconnectTimeMs, numberOfReconnections a idleTimeoutMs se už nečtou — v logu se objeví varování o neznámém klíči a je třeba je v nastavení přepsat.

TCP Server

Technický název (v projektu): TcpServerDriver

Binární TCP server (listener) přenášející surové bajty — typicky pro Modbus Slave (TCP). Přijímá jednoho klienta; nové příchozí spojení nahradí to stávající.

Předvyplní se: bindAddress=0.0.0.0;port=502;reconnectDelayMs=1000;reconnectAttempts=-1;keepAliveMs=5000

ParametrVýchozíVýznam
bindAddress0.0.0.0lokální adresa, na které server naslouchá
port502TCP port (výchozí hodnota odpovídá Modbus TCP)
reconnectDelayMs1000prodleva mezi pokusy o otevření portu, viz Obnova spojení
reconnectAttempts-1počet pokusů o otevření portu, -1 = donekonečna
keepAliveMs5000TCP keepalive na přijatém spojení, 0 = vypnuto

bindAddress musí být IP adresa (0.0.0.0 = všechna rozhraní, 127.0.0.1 = jen lokální stroj) — jméno počítače driver nepřijme. Parametry obnovy se u serveru týkají otevření naslouchacího portu: pokud je port obsazený (na portu 502 již naslouchá jiný program) nebo zadaná adresa v systému dosud neexistuje, driver pokus opakuje a spustí se, jakmile se port uvolní. Odpojení klienta není chyba — server dál naslouchá a další klient ho nahradí; korektní odpojení je v logu jako client … disconnected, spojení ukončené keepalivem (odpojený kabel na straně klienta) jako varování client … lost.

Firewall: příchozí spojení na port serveru musí povolit firewall na počítači s QInsight (Windows Defender Firewall nebo firewall antivirového balíku). V pravidle je lokální strana počítač s QInsight a vzdálená strana master; obnovu spojení po výpadku vždy iniciuje master (klient).

Serial Port (COM)

Technický název (v projektu): SerialPortDriver

Sériový COM port přenášející surové bajty — typicky pro Modbus RTU. Jedna instance = jeden COM port; po chybě (např. odpojení USB převodníku) se port automaticky otevírá znovu.

Předvyplní se: port=COM1;baudRate=9600;dataBits=8;parity=none;stopBits=1;handshake=none;reconnectDelayMs=2000;reconnectAttempts=-1

ParametrVýchozíVýznam
port— (povinný)jméno COM portu, např. COM3
baudRate9600komunikační rychlost
dataBits8počet datových bitů
paritynoneparita: none, even, odd, mark, space
stopBits1stop bity: 1, 1.5, 2
handshakenoneřízení toku: none, rts, xonxoff, rtsxonxoff
reconnectDelayMs2000prodleva před znovuotevřením portu po chybě, viz Obnova spojení
reconnectAttempts-1počet pokusů o znovuotevření portu, -1 = donekonečna

Hodnoty parity/stopBits/handshake pište přesně podle tabulky — neplatná hodnota se s varováním v logu nahradí výchozí a komunikace pak běží s nesprávným rámcem (typicky 8N1 místo 8E1). baudRate a dataBits se předávají portu bez kontroly: neplatná hodnota (např. dataBits=9; obvyklý rozsah je 5–8) způsobí chybu při otevírání portu a driver pak otevření opakuje každých reconnectDelayMs — příčinu najdete v logu. Odpojení USB převodníku zjistí Windows okamžitě; přerušený vodič mezi dvěma převodníky driver nezjistí — tento stav ohlásí až protokol timeoutem odpovědi.

PEAK CAN Adapter

Technický název (v projektu): PeakCANDriver

CAN sběrnice přes USB adaptér PEAK PCAN; protokolům předává CAN rámce (Raw CAN Frames, XCP on CAN). Jedna instance driveru odpovídá jednomu fyzickému adaptéru — vybírá se podle Device ID nastaveného v adaptéru, takže konfigurace zůstane platná i po přepojení do jiného USB portu.

Předvyplní se: deviceId=0x51;bitrate=250000;reconnectDelayMs=1000;reconnectAttempts=-1

ParametrVýchozíVýznam
deviceId0ID adaptéru vždy hexadecimálně (rozsah 0–FF dle PEAK Settings), přijímané tvary 1A, 0x1A, 1Ah
bitrate250000rychlost sběrnice v bit/s, desítkově: 50000, 100000, 125000, 250000, 500000, 800000, 1000000; jiná hodnota se s varováním nahradí 250000
reconnectDelayMs1000prodleva mezi pokusy o inicializaci adaptéru, viz Obnova spojení
reconnectAttempts-1počet pokusů, -1 = donekonečna

Driver prohledává USB adaptéry (PCAN-USB 1–16). Když žádný adaptér se zadaným Device ID nenajde, nebo když stejné ID mají dva adaptéry, pokus o připojení selže s popisem v logu a driver ho podle parametrů obnovy opakuje. Odpojení adaptéru za běhu (nebo stav bus-off) driver zjistí během jedné sekundy: uvolní kanál, protokolům ohlásí ztrátu transportu a adaptér vyhledává znovu; po opětovném připojení XCP naváže session automaticky.

Simulation

Technický název (v projektu): SimulDataDriver

Testovací driver — jen spouští a zastavuje protokol Simulation Signals, který si simulované hodnoty generuje sám v periodách událostí přiřazených proměnným. Umožňuje vyzkoušet projekt bez hardwaru.

Driver nemá žádná nastavení. Starší projekty mohou v nastavení mít periodes=… — hodnota se ignoruje, rychlost simulace určují výhradně události proměnných.

Virtual Variables Host

Technický název (v projektu): VirtualDataDriver

Hostitel virtuálních proměnných — proměnných, jejichž hodnoty počítají Python skripty. Driver s ničím nekomunikuje: jen spouští a zastavuje protokol Virtual Variables, který zápisy skriptů publikuje jako vzorky signálu. K čemu virtuální proměnné slouží a jak se konfigurují popisuje Virtual Variables; kompletní ukázku najdete v příkladu Simulace: všechny signály.

Driver nemá žádná nastavení.

Data Log Recorder

Technický název (v projektu): FileDataLoggerDriver

Zapisuje hodnoty vybraných proměnných do binárního souboru .qilog; logované proměnné mu předává protokol Data Log Pass-Through (PassThroughProtocol), který se k driveru přidává automaticky. Kompletní popis včetně všech parametrů: Logování dat.

Data Log Replay

Technický název (v projektu): FileDataReplayDriver

Přehrává zaznamenaný .qilog soubor zpět do proměnných. Do projektu ho přidává tlačítko Import v ribbon menu Runtime; parametry (file, mode, speed, loop) popisuje kapitola Přehrávání logu.

Drivery jsou pluginy — vlastní driver viz Vlastní rozšíření.