Home www.visualprog.cz

 

(c)  30.11.2002 Pavel Pindora 

Email Kontakt

Pro více informací je zde formulář

Click on of the PayPal button to donate money to this Project

 

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

Instalace I/O karty PCI-1711 do systému Linux Mandrake 9.0 GPL

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.

 

 

 

 

 

 

28.01.2007 PC Rack 19" and VIA EPIA

 

VIA EPIA ML8000AG Mini ITX  is installed to the left side of rack

 

 

 

The Rise card and next ethernet , sound card .

 

 

 

Operating system W2k and Linux FC6

 

 

 

¨