At prikazy a Matlab
Zaplatilek Karel
Karel.Zaplatilek at unob.cz
Mon Jun 23 11:01:13 CEST 2008
Zdravím, s rozhraním RS-232 máme nějaké, byť malé, zkušenosti. Ne tedy s GSM zařízením, ale obecně se to dá použít téměř všude.
Vždy je nutné si přečíst popis komunikace u daného zařízení (GSM, měřicí
přístroje). Nejdete zde rychlost, paritu bitů aj. Moderní zařízení jsou
vybaveny jazykem podle standardu SCPI a tomu odpovídá formát příkazů
na posílání a čtení dat a řídicích slov. My jsme použili např. tyto
příkazy:
1. Ovládání staršího digitálního multimetru Metex M-4650CR
s=serial('COM1','baudrate',1200,'databits',7,'parity','none','stopbits',2,
'terminator','CR');
fopen(s)
fprintf(s,'D') % poslani priznaku D, kteremu Metex rozumi, on pak posle
data
data=fscan(s) % precteni dat - kopie displeje
data =
DC 14.475 C
data1=str2num(data([3:9]))
data1 =
14.475
fclose(s) % uzavreni komunikace
Jedná se o navázání spojení vytvořením objektu "s", nastavení hodnot přenosu dle návodu a díky písmenu D, poslaného přístroji, je vyžádána kopie displeje ve formě řetězce znaků s převodem na Double.
2. Náročnější řízení moderního přístroje Agilent 33120A (generátor libovolných průběhů)
s=serial('COM2','baudrate',9600,'databits',7,'parity','even','stopbits',2,
'terminator','LF');
fopen(s)
rizeni=sprintf('APPL:SIN %.1f HZ, %1.3f VPP, %1.3f V/n',50e3,2,-0.5);
fprintf(s,rizeni)
fclose(s)
Řetězec v závorce příkazu sprintf je ukázkou komunikace s využitím standardu SCPI(Standard Commands for Programmable Instruments). Vše bylo pěkně popsáno v návodu k přístroji včetně příkladů a fungovalo to ihned.
Šlo o to nastavit generování signálu s tvarem Sinus (SIN) s danými parametry. Před začátkem se však musela povolit komunikace s PC na panelu přístroje.
Pozor na neuzavřené objekty sériové komunikace. Vznikne to tehdy, když je otevřete (fopen), ale dále dojde k chybě, aniž se pomocí fclose uzavřou. Viz help MATLABu.
Snad vám to k něčemu bude. Možná že zařízení GSM komunikují podobně.
Karel Zaplatílek, UO Brno.
More information about the CsMUG
mailing list