SCPI komunikace
Marek Peca
marek na duch.cz
Neděle Červen 30 15:03:48 CEST 2013
> 1) Komunikace bude přes sériovou linku, podle datasheetu komunikuje
> protokolem SCPI. To je textový protokol, ale v dokumentaci k jinému přístroji
> (Resistomat 2316) je popsaná také komunikace SCPI příkazy, ale jsou obaleny
> do nějakého binárního protokolu (STX, ETX, jsou tam adresy zařízení).
> Domnívám se, že je to nějaké rozšíření nebo další vrstva kvůli komunikaci s
> více zařízeními a když to není u EST 19035 popsáno, tak se komunikuje čistě
> textově?
> Pokud někdo nezná toto konkrétní zařízení, ale jiné komunikující přes SCPI po
> sériové lince, mohl by mi napsat svůj názor založený na komunikaci s jiným
> zařízení?
Vase konkretni zarizeni neznam. Parkrat jsem pouzival SCPI nebo jim
inspirovane protokoly jak pres GPIB, tak pres RS232 a USB-TMC. V zasade
tam urcita tvorivost vyrobcu je, jak moc normalizovana, to nevim.
U GPIB (a USB-TMC) je vyhoda, ze jsou se cti vyreseny nizsi vrstvy v
situaci vice zarizeni na jedne sbernici. Zda to nekdo obohacuje u seriaku
o vyber zarizeni, to nevim, ale je to mozne.
Zato vim, ze treba oblibeny osc Tektronix TDS2xxx vysilal znak ASCII DCL a
pred zahajenim komunikace cekal na BREAK, aby vubec zacal odpovidat:
/* vynulovat komunikaci s osciloskopem */
tcsendbreak(dev, 0);
/* viz nize //pockej na prvni znak, abychom nevolali tcflush prilis brzy
*/
//read(dev, s, 1);
/* tady je treba trapne pockat na DCL, protoze znak precteny v minulem
radku mohl pochazet od predchoziho maglajzu */
usleep(100000);
/* profoukni trubky */
tcflush(dev, TCIOFLUSH);
/* naroubuj na linku v/v s nelidskou tvari */
f = fdopen(dev, "r+");
> 2) Nastavovací příkazy SCPI jsou celkem jasné, ale jak funguje čtení? Zapíšu
> příkaz končící otazníkem (FETC?) a přečtu data končící nějakým koncem řádky?
Ano, je to vse orientovano na konce radku, vyslani i prijeti.
Zdravi Marek
Další informace o konferenci Hw-list