Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

RS232 do excelu nebo do .txt
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
vohrablo



Založen: Apr 24, 2009
Příspěvky: 24

PříspěvekZaslal: so duben 25 2009, 21:17    Předmět: RS232 do excelu nebo do .txt Citovat

Ahoj,
dokazal by mi nekdo poradit, jak dostat data z PICu do excelu po RS232 jinak, nez pres terminal? Nebo aspon do .txt souboru, kde si je pak excel makrem vyzvedne?
Na strane PICu muzu posilat cokoliv (ale idealni by bylo na řádku: data1, data2, data3, znak dalsiho radku).
Diky moc.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zmije



Založen: Jun 30, 2005
Příspěvky: 1569
Bydliště: Pardubický kraj

PříspěvekZaslal: so duben 25 2009, 22:52    Předmět: Citovat

Pro jaký operační systém to má být ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
vohrablo



Založen: Apr 24, 2009
Příspěvky: 24

PříspěvekZaslal: ne duben 26 2009, 9:15    Předmět: Citovat

Pro WinXP.
Na excelu netrvam (ale bylo by to nejpohodlnejsi).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
zdenoeddie



Založen: Oct 31, 2007
Příspěvky: 2491
Bydliště: uz len Presov :)

PříspěvekZaslal: ne duben 26 2009, 9:31    Předmět: Citovat

Ak mozem poradit, pouzij textovy subor .csv , je otvoritelny aj excelom a udaje ktore don zapises ak sa dobre pamatam oddelene ciarkou a medzerou nacita ako tabulku. Novy riadok je klasika \r \n
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
Zmije



Založen: Jun 30, 2005
Příspěvky: 1569
Bydliště: Pardubický kraj

PříspěvekZaslal: ne duben 26 2009, 10:50    Předmět: Citovat

Ve win na to existují api funkce, v C by se dalo to ukládání do txt napsat odhadem na nějakých 50 řádků, já jsem komunikaci přes RS232 programoval podle tohoto příkladu:
kód:
#include <windows.h>
#include <stdio.h>

HANDLE m_hCom = 0;

void CloseCommunication() // ukoncuje komunikaci (asi se nemusi volat, windows to pri konci programu mozna zavrou)

{

   if(m_hCom) {

      CloseHandle(m_hCom);

      m_hCom = 0;

   }

}

unsigned char SetCommunication(const char *m_sComPort) // otevre komunikaci, parametr je jmeno portu ("Com1")

{

   if(m_hCom)

      CloseCommunication();

   // ...

   DCB m_dcb;

   COMMTIMEOUTS m_CommTimeouts;

   if(!(m_hCom = CreateFile(m_sComPort, GENERIC_READ | GENERIC_WRITE, 0,

      NULL, OPEN_EXISTING, 0, NULL)))

      return 0;

   if(!SetupComm(m_hCom, 128, 128) || !GetCommState(m_hCom, &m_dcb)) {

      CloseCommunication();

      return 0;

   }

   // otevre com a nastavi i/o fronty

    m_dcb.BaudRate = 9600;

    m_dcb.ByteSize = 8;

    m_dcb.Parity = NOPARITY;

   m_dcb.StopBits = ONESTOPBIT;

   m_dcb.fAbortOnError = TRUE;

   if(!SetCommState(m_hCom, &m_dcb) ||

      !GetCommTimeouts(m_hCom, &m_CommTimeouts)) {

      CloseCommunication();

      return 0;

   }

   // nastavi rychlost, pocet bitu, paritu a stop bit

   m_CommTimeouts.ReadIntervalTimeout = 50;

    m_CommTimeouts.ReadTotalTimeoutConstant = 50;

    m_CommTimeouts.ReadTotalTimeoutMultiplier = 10;

    m_CommTimeouts.WriteTotalTimeoutConstant = 50;

    m_CommTimeouts.WriteTotalTimeoutMultiplier = 10;

   if(!SetCommTimeouts(m_hCom, &m_CommTimeouts)) {

      CloseCommunication();

      return 0;

   }

   // nastavi timeouty (cas cekani na data)

   return 1;

}


int Transmit(unsigned char sBuffer) // vysle jeden bajt. funkce vraci -1 pri chybe, nebo pocet zapsanych bajtu (1)

{

   DWORD iBytesWritten;

   if(!WriteFile(m_hCom, &sBuffer, 1, &iBytesWritten, NULL))

      return -1;

   return iBytesWritten;

}

int Receive(unsigned char *sBuffer) // precte jeden bajt. funkce vraci -1 pri chybe, nebo pocet prectenych bajtu (1)

{

   DWORD iBytesRead;

   if(!ReadFile(m_hCom, sBuffer, 1, &iBytesRead, NULL))

      return -1;

   return iBytesRead;

}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
vohrablo



Založen: Apr 24, 2009
Příspěvky: 24

PříspěvekZaslal: ne duben 26 2009, 15:31    Předmět: Citovat

Diky za to, nicmene v ccku vubec neumim. Mozna jen trochu VBA zvladnu.
V cem bych to mel zkompilovat, aby to neco delalo?
Diky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zmije



Založen: Jun 30, 2005
Příspěvky: 1569
Bydliště: Pardubický kraj

PříspěvekZaslal: ne duben 26 2009, 15:43    Předmět: Citovat

Já jsem tohle dělal v CodeBlocks, kompiloval jsem to pomocí gcc, ale není to kompletní funkční příklad, je to jen ukázka jednoduchých funkcí na nastavení, čtení a zápis RS232, doporučil bych udělat si z odesílaných dat jednoduchý rámec zakončený třeba 8bit cyklickým součtem, protože se při přenosu čas od času může vyskytnout chyba. Jinak základy C není těžké si osvojit a při programování aplikací s jednočipy, se ti navíc bude hodit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Yarda1



Založen: Feb 11, 2009
Příspěvky: 2575

PříspěvekZaslal: po duben 27 2009, 7:28    Předmět: Citovat

Pokud ten PIC jen vysílá a nechce komunikovat, na to jsem si kdysi napsal prográmek v PWBasicu (hyperterminál snad některé znaky nepřepíše ale interpretuje je jako řídicí např. že má ukončit čtení sériového portu). Jinak se prý na to používají nějaké zachytávací programy - psalo se o tom snad na hw.cz, osobně jsem to nezkoušel.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
brtnik



Založen: Oct 05, 2004
Příspěvky: 329
Bydliště: Ostrava

PříspěvekZaslal: po duben 27 2009, 9:37    Předmět: Citovat

k některému nářadí Arrow , které umí komunikovat po RS232 mám prográmek, který vypadá jako malé okénko s logem a možností nastavení parametrů COM portu. Po spuštění se uklidí někam bokem a vše, co přijde po RS232 dává na místo kurzoru ve Windows (takže třeba sype data do Excelu, vypisuje protokol do Wordu atd, vše jednosměrně a včetně řídicích znaků). Dělali jsme něco podobného i v Lab- Wiew a taky to šlapalo. Napiš SZ...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
Jirka



Založen: Jul 01, 2005
Příspěvky: 2031
Bydliště: zbídačený kraj

PříspěvekZaslal: út duben 28 2009, 0:08    Předmět: Citovat

Napadlo mě, že se staví teploměry pro PC s připojení přes RS232, který používají logovací program pro ukládání teplot do txt souborů.
Nešel by ten program použít i pro tvůj účel, když ukládá to, co mu přijde na sériový port?
např. : http://teplomer.sh.cvut.cz/dokumentace/
a zkus pohledat: http://www.google.cz/search?hl=cs&q=teplom%C4%9Br+program+sch%C3%A9ma&btnG=Vyhledat+Googlem&lr=lang_cs

_________________
*****
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
vohrablo



Založen: Apr 24, 2009
Příspěvky: 24

PříspěvekZaslal: út duben 28 2009, 19:08    Předmět: Citovat

Zkousel jsem vsechno mozne, bohuzel vetsina nefunkcni.
Nasel jsem http://dev.emcelettronica.com/serial-port-communication-excel-vba , ale to taky nic nedela (i kdyz to vypadalo docela slibne).
Presto vsem diky za snahu pomoci (ale tema je to pro mne stale aktualni, dokud se to nepodari - pak se podelim o vysledek).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hakamusai



Založen: Apr 17, 2007
Příspěvky: 943

PříspěvekZaslal: út duben 28 2009, 21:40    Předmět: Citovat

Pokud by stačilo napsat program "na míru",mohl bych pomoct.
Pro čtení dat z PICu by bylo ideální posílat pro oddělení #13#10

Na co to má vlastně sloužit ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vohrablo



Založen: Apr 24, 2009
Příspěvky: 24

PříspěvekZaslal: st duben 29 2009, 4:06    Předmět: Citovat

Má to merit prubeh napeti na jednom zarizeni. Nadela to vzorky, ulozi do EEPROM a pak je po lince posle do PC ke zpracovani. Nepotrebuji oboustranou komunikaci, v PC mi staci pouze cekat na data (tzn. ze nepotrebuji ani zadne periodicke nacitani z portu, proste tam z PICu prijde balik hodnot, s nejak oddelenymi daty (Hserout cas , #napeti, CrLf)). Ikdyz, oboustranou komunikaci bych si o ty data mohl jeste rict, kdyz by bylo vse ready - ale netrvam na tom.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hakamusai



Založen: Apr 17, 2007
Příspěvky: 943

PříspěvekZaslal: st duben 29 2009, 20:01    Předmět: Citovat

Narychlo jsem něco spíchnul (je to podobný terminalu),koukni na to a napiš co a jak bude třeba.
Konfigurace portu: 9600,8,'N',0,false,false
http://uloz.to/1699150/Project1.rar
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vohrablo



Založen: Apr 24, 2009
Příspěvky: 24

PříspěvekZaslal: čt duben 30 2009, 4:27    Předmět: Citovat

Diky, data to prijima, ale vypisuje to porad
TX47/T
TX47/T
TX47/T
TX47/T
ale to bude tim, ze jsem do PICu nedal ty znaky pro oddeleni, jak jsi psal, nemel jsem cas. Vecer to kusim jeste nejak poladit a pisnu ti.
Mohl by jsi mi napsat, v cem jsi to delal? Kdybych to potreboval upravit, nerad bych otravoval. Preci jen bude lepsi, kdyz se to naucim, bude to + pro mne, urcite se to hodi. A funkcni priklad je to nejlepsi na zkoumani.
Diky moc!!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.15 sekund