(c) 30.11.2002 Pavel Pindora
Pro více informací je zde formulář
Uživatelská část v KDevelop new 17.12.2002
Konfigurace PCI-1711 new 23.12.2002
Hardware k PCI-1711 PC Rack new 31.12.2002
NEW PC Rack and VIA EPIA new 28.01.2007
Protože bych chtěl v nejbližší době používat Linux jako datový vstupně výstupní server pro sběr dat z technologie, začal jsem k uvedenému datumu laborovat s kartou PCI-1711 firmy Advantech , tato karta obsahuje jak digitální vstupy a výstupy (TTL) tak i analogové. Viz následující tabulka.


Protože tvořit kompletní driver pro Linux by bylo časově velmi náročné , pátral jsem po Internetu , kde by se daly sehnat nějaké ovládače této karty nebo karet z PCI-1710 Series až jsem po dlouhé době objevil:
*************************************************
COMEDI
The Linux Control and Measurement Device Interface
David Schleef <ds@schleef.org>
* About Comedi:
Comedi is a collection of drivers for data acquisition hardware.
These drivers work with Linux, and also with Linux combined with
the real-time extensions RTAI and RTLinux. The Comedi core, which
ties all the driver together, allows applications to be written
that are completely hardware independent.
Comedi supports a variety of data acquisition hardware; an
incomplete list can be found in Documentation/comedi/drivers.txt.
This distribution contains just the Comedi kernel modules. You will
almost certainly also want to download Comedilib, which is a user
space library, a few utilities, and some example programs.
* Installation:
For installation instructions, look at the file INSTALL.
* Mailing List:
Questions about Comedi should be sent to the Comedi mailing list,
<comedi@comedi.org>. Mailing the maintainer directly is always
acceptable, but since the mailing list is archived and questions
are often answered more quickly by others, the mailing list is
preferred.
To subscribe to ans unsubscribe from the mailing list, go to
http://www.comedi.org/cgi-bin/mailman/listinfo/comedi. Alternatively,
you can send "subscribe comedi" to <comedi-request@comedi.org>
Traffic on the list is light, and mainly questions/answers about
comedi installation, bugs, and programming. General questions
about data acquisition are also welcome.
* More Information:
Comedi also has a web page, at http://www.comedi.org/comedi. New versions
of comedi can be found on the ftp site ftp://ftp.comedi.org/pub/comedi.
Often bugfixes and new features that are not in the current release
can be found in the CVS repository. Instructions for anonymous CVS
access to the Comedi and Comedilib repositories are found at
http://cvs.comedi.org/cvs_anon.html.
Comedi may be freely distributed and modified in accordance with the
GNU General Public License.
The person behind all this misspelled humor is David Schleef
<ds@schleef.org>.
*************************************************
Odtud jsem stáhl soubory
![]()
Zatím jsem rozbalil comedi-0.7.65.tgz a to do adresáře k tomu účelu vytvořenému , např :

Nyní musíme potřebné moduly vytvořit přeložením zdrojáků a to pomocí příkazu make v daném adresáři , kdy napoprvé jsme dotazování jaký ovládač (modul) chceme přeložit a na podruhé se provede vlastní překlad dle navolené konfigurace. Pro úspěšný překlad je nutné mít nainstalovanou podporu vývoje jádra, jinak se překlad nezdaří, viz následující dva obrázky z přehledem balíčků , gcc , headry , apod. jsou samozřejmostí. mdk v názvu balíčku informuje, že se jedná o Mandrake Linux a pod jinou distribucí bude název jiný a to i podle toho jaké jádro je v Linuxu provozováno.


Po úspěšném přeložení můžeme nainstalovat potřebné moduly do adresářů , opět nejlépe znázorněných obrázky :

Protože se k modulům přistupuje přes dev je potřeba je tam zavést, k tomu slouží příkaz make dev , který to provede. Jeho spuštění provedeme v adresáři comedi-0.7.65 .

Moduly *.o musíme do Linuxu zavést příkazem insmod název_modulu ale modul adv_pci1710 jako poslední, jinak budou hlášeny chyby . Na pořadí ostatních modulů snad nezáleží.
Po restartu systému můžeme otestovat funkčnost modulů příkazem, např modprobe adv_pci1710 .
Pokud se vše podaří můžeme naprogramovat uživatelskou část sběru dat z karty 1711.
New 18.12.2002 Uživatelská část v KDevelop
Nejdříve jsem potřeboval udělat jednoduše rychlý projekt , třeba s menu takže jsem spustil KDevelop a ...

Vybral jsem si typ aplikace

Vyplnil potřebné názvy a adresáře

V dalším kroku jsem vynechal VCS
Headry jsem také nepoužil

Nakonec jsem dal vygenerovat projekt stiskem Create i když mi to hodilo chybu uživatelské dokumentace, o jejíž příčině jsem nepátral, se vše podařilo


Do openDocument jsem vložil řádky pro otevření comedi0-3 pomocí funkce open, který představuje přístup ke kartě PCI-1711

k tomu je ale potřeba být přihlášen jako root jinak se otevření nepovede.
Nyní jsem chtěl provést načtení dat ( count = read(...) ) ale protože se mi nic načíst nepodařilo, nechal jsem si vypsat hlášení z driveru pomocí příkazu dmesg v okně terminálu, výsledkem bylo:

Kartu je potřeba nakonfigurovat a tak musím v historicky krátkém čase prolistovat dokumentaci a příklady ke kartě.
New 23.12.2002 Konfigurace karty PCI-1711
K tomu je potřeba stáhnout comedilib-0.7.19.tgz, rozbalit ho a vše je potřeba přeložit pomocí make v příslušném adresáří comedilib-0.7.19, viz následující listing adresáře.

po překladu
pomocí make install se vše potřebné nainstaluje a nyní se pokusíme spustit
comedi_config , zatím bez parametru , měl by se vypsat help . Pokud je vše
ok, můžeme nakonfigurovat 1711tku příkazem ![]()
potom v
souboru
zkontrolujeme parametry karty , měly
by být dle následujícího výpisu
![]()
pokud náhodou uděláme v názvu chybu, bude výpis vypadat následovně

V adresáři
můžeme otestovat funkčnost pomocí
programu info , který nám vypíše parametry karty a tím ji i otestuje pro
její použitelnost.

A nakonec již můžeme v tomtéž adresáři spustit ./inp nebo lépe ./inpn abychom mohli zobrazit měřené napětí na jednotlivých kanálech ( 0 - 15 )

Pro sejmutí jednoho kanálu jsem vyšel z inp.c a upravil ho dle následujícího výpisu :
#include <stdio.h>
#include <comedilib.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <getopt.h>
#include <ctype.h>
#include "examples.h"
comedi_t *device;
int main(int argc, char *argv[])
{
char *filename = "/dev/comedi0";
lsampl_t data;
int ret;
//parse_options(argc,argv);
device=comedi_open(filename);
if(!device){
comedi_perror(filename);
exit(0);
}
ret=comedi_data_read( device,
0, // subdevice
0, // channel
0, // range
0, // analog reference
&data
);
if(ret<0){
comedi_perror(filename);
exit(0);
}
printf("%d\n",data);
return 0;
}
Přeložíme ho pomocí make ale potřebujeme ještě Makefile, takže jeho výpis :
CFLAGS += -I ../include -I .
LIBS +=../lib/libcomedi.a \
-lm
BINS=inp # sv
all: $(BINS) $(MBINS)
$(BINS): % : %.o
$(CC) -o $@ $< $(LIBS)
$(MBINS): % : %.o inp.o
$(CC) -o $@ inp.o $< $(LIBS)
clean:
-rm -f *.o $(BINS) $(MBINS)
Nyní je potřeba udělat smyčku, která bude cyklicky v určitých časových intervalech načítat všechny A/D kanály a Digitální vstupy , poté, je nejlépe po TCP socketu, zašle klientovi , který je bude vizualizovat a dále zpracovávat . Nejlépe , když snímací program bude Socket server a klienti, ať už ve Windows (VisualProg, MS Visual C++, .NET, ...) nebo v Linuxu ( Kylix3, KDevelop,... ) se k němu připojovat a načítat potřebná data..
New 31.12.2002 Hardware k PCI-1711
PC Rack 19"
Pro sestavení I/O serveru byl použit hliníkový Rack pro vestavbu do 19" průmyslového rámu . Následující obrázek znázorňuje pohled na přední části PCčka . Do Al rámu byla použita základní deska z vestavenou AGP grafikou a zvukovkou, na čipech Intel i810, o rozměrech 22x20cm, připevněnou k boku . Jako procesor byl použit Intel Celeron 550MHz, který společně s Linux Mandrake 9.0 GPL , tvoří dostatečně výkonný systém pro daný účel.

Detail slotů se :
VGA
COM1 a COM2
LPT portem
síťovou kartou Realtek
1711tka.

Pohled na základní desku s procesorem připevněnou k bočnici Racku.

Pro vestavbu floppy , CD-ROM a harddisku byla použita klasická PC šachta.

Harddisk a floppy je možno vestavět do speciálních zásuvů (vpravo), které mohou být použity na další rozšiřující funkce , na obrázku vlevo je zdroj +-15V .

Pohled zezadu , prodloužené bočnice dovolí připevnit chladící box , svorkovnice atd.

The Rise card and next ethernet , sound card .
Operating system W2k and Linux FC6
![]() |
![]() |
¨