Sida 1 av 1

Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 11:47:30
av Johel572
Jag håller på med att logga lite data från en pic via en rs-232 lina till en PC. Att visa data i hyperterminalen fungerar bra (skickar redigerad data i ascii tecken) men det vore ju lite mer intressant om man tex kunde rita upp en graf. Jag har sett ett system där data tas emot på comporten och exporteras till Excel i realtid men jag vet inte hur det gick till.

Jag tror man kan skriva ett macro i Excel som kontinuerligt tar emot data och skriver ut det i lämplig cell. Vad är det som krävs för att kunna importera data på det viset? Efter vad jag har sett så krävs någon typ av datalogger för comporten med DDE (är det rätt?) interface för att man skall kunna importera data. Problemet är ju att dessa programvaror är rätt dyra och jag undrar om någon känner till något annat sätt eller vettig lösning?

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 12:10:05
av H.O
Ta en titt på STAMPPlot från SelmaWare, det kanske kan passa. Det är ju förstås inte EXCEL men det kan plotta data i realtid.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 12:30:41
av Nerre
Jag har gjort det på jobbet men då var det med "komponenter" från en inköpt Visual Basic har jag för mig (det är 6-7 år sen så jag minns inte så noga).

Lite snabbt googlande på "VBA serial port" gav t.ex. de här två träffarna
http://www.pencomdesign.com/support/rel ... xample.htm
http://www.activexperts.com/activcomport/howto/vba/

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 12:58:16
av AndersG
Man kan skriva en EXE eller DLL som kommunicerar med Excel via DDE

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 16:05:46
av PeterH
Om man kan programmera, varför använda Excel överhuvudtaget? Man kan väl koda ihop en applikation som visar grafer direkt? Troligtvis lika enkelt och mycket mindre resurskrävande än Excel!

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 16:14:20
av psynoise
Man kan alltid låta terminalprogrammet skriva till en fil och sen låta den filen plotas med jämna mellan rum.

Med minicom eller cutecom samt tail och något plot program borde man kunna fixa det med ett bash-script. Annars kolla freashmeat.net efter någon redan färdig lösning.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 16:53:48
av Nerre
PeterH skrev:Om man kan programmera, varför använda Excel överhuvudtaget? Man kan väl koda ihop en applikation som visar grafer direkt? Troligtvis lika enkelt och mycket mindre resurskrävande än Excel!
Nja, det är klart enklare att koda nåt som stoppar in data i celler i Excel än att skriva en helt fristående applikation.

Mindre resurskrävande på datorn är det antagligen, men jag är inte så mycket för att uppfinna hjulet två gånger:-)

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 17:08:27
av Johel572
Hm, nu försvann mitt inlägg.

Att skriva något eget är uteslutet då jag inte är någon driven programmerare. Det som behövs torde vara ett protokoll för att komma åt comporten i xp eller vista. Och sen borde man kunna skriva en funktion i VDA (som jag aldrig använt dock) som lägger datan i rätt cell.

Problem 2:
Jag förstår dock inte riktigt hur jag skall få den att uppdatera då jag skickar ny data på comporten. Jag har ju bara Tx pinnen annsluten på min uC så jag skickar ju inga komandon, bara rå data.

Jaja, få se om det överhuvudtaget går att få i nå data.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 9 februari 2009, 17:16:17
av Nerre
Serieports-grejerna ger typ en "interrupt" för varje tecken.

Du skriver alltså en liten "interrupt-hanterare" som läser av tecken för tecken och "fyller på" en buffertvariabel. När den har fått ihop ett komplett värde får den skicka värdet till huvudrutinen som skriver in det i en cell.

Ett enkelt sätt att lära sig VBA är att spela in makron medans man manuellt gör det som skall göras.


Protokoll för att komma åt serieporten via VBA länkade jag ju till tidigare i tråden.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 13 februari 2009, 03:04:26
av JimmyAndersson
Jag ser inget om interrupt i de länkarna. I den första länken pysslar de med VB v6 och det har ändrats mycket sedan dess i VisualBasic.

Behöver precis samma grejj som Johel572 (jag använder Visual Studio/Basic 2000), så en liten ledtråd om hur man fixar en interrupt-hanterare för COM-porten i VisualBasic vore inte fel. :)

edit: Jag har sökt väldigt mycket om detta i Google. Gjorde även en tråd för en tid sedan när jag behövde detta till parallellporten.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 13 februari 2009, 07:28:50
av hh
Interrupt är kanske lite att ta i, men om man sätter SThreshold = 1 och RThreshold = 1 (med MSCOMM32 då) så kommer subben OnComm att köras och serieportens event comEvReceive triggas för varje inkommande byte (det finns också events för CTS, DSR...).

Jag vet uppenbarligen inte hur man skall förklara sånt på VB(A)-språk, men det OnComm fungerar som interrupthanterare och interrupten för mottaget data är comEvReceive. Det är rätt simpelt, men effektivt.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 13 februari 2009, 07:45:57
av Nerre
Precis, det fungerar alltså så att vid vissa händelser så körs olika funktioner.

T.ex. gör man ju ofta en funktion som körs när man klickar på en knapp. Men med ett comm-objekt så har man alltså händelser som utförs t.ex. när sändbufferten är tom eller när mottagningsbufferten är full.

Det fungerar alltså på samma sätt som när man använder interrupt.

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 13 februari 2009, 08:35:16
av ristomemo
Har inte provat själv, men realterm har något stöd för excel.
http://realterm.sourceforge.net/

Re: Vad behövs för att visa data från en comport i Excel i realt

Postat: 13 februari 2009, 09:00:17
av AndLi
http://www.excelforum.com/excel-program ... evice.html
Med event (interrupt eller vad man nu känner för att kalla det) och hela paketet.

VBA i Excel 2003 tycker i alla fall jag påminner extremt mycket om gamla hederliga VB6