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