PLX-DAQ version 2 - now with 64 bit support! (and further new features)

Hi to everyone,

I need to know if there is a way to create a circolar buffer to data.
Is there a command to restar to cell a2 when a number of data is reach without deleting previous data?

I have try CREARDATA or CLEARSHEET but this delete all previous data.

my objective is create a continue plot system.

Best regards

Davide

Power_Broker:
I looked at your zip file and all of it can be version controlled through GitHub - even your xlsm file.

@Power_Broker:
thanks for looking into that. I'll try to get upload to git with the next release (ok that might take some years based on the current progress ... ) or maybe intermediate someday. But I'll definitely switch to git as I personally appreciate the concept of it.



ranbros:
I need to know if there is a way to create a circolar buffer to data.
Is there a command to restar to cell a2 when a number of data is reach without deleting previous data?
I have try CREARDATA or CLEARSHEET but this delete all previous data.

@Davide:
yes, there is a way. You might use the ROW command to make Excel fill data at a certain row once again.
Use use a counter and increase it everey time you send out data, then use a modulo division for the counter to set it back to e.g. 2.

int counter;
counter = 2; //based on your starting row in Excel

void loop() {

    Serial.println((String) "DATA,DATE,TIME," + someVariable);

    if(++counter % 30 == 0) { counter = 2; Serial.println("ROW,SET,2"); }
}

(all code from the top of my head. Syntax errors might occur)

Thanks NetDevil. now it works.
I'll ask you:

  • if I use PLX-DAQ-v2-AutoGrapher-RandomValue.xlsm I have the following error (with Excel 2007)
    SYS: |15:44:18| ## ERROR within command ! ## 438 / Proprietà o metodo non supportati dall'oggetto
    |15:44:18| DATA,DATE,TIME,1093,217
    SYS: |15:44:18| ## ERROR within command ! ## 438 / Proprietà o metodo non supportati dall'oggetto
    |15:44:18| DATA,DATE,TIME,1042,180
    SYS: |15:44:18| ## ERROR within command ! ## 438 / Proprietà o metodo non supportati dall'oggetto
    |15:44:18| DATA,DATE,TIME,992,484
    SYS: |15:44:18| ## ERROR within command ! ## 438 / Proprietà o metodo non supportati dall'oggetto
    if I use PLX-DAQ-v2.11.xlsm works without errors the same PLX-DAQ-v2-AutoGrapher-RandomValue.ino
    It is due to old Excel?
  • Is there a trick to avoid the latency due to plot graph?

Thanks

Davide

Hello,

I was wondering if the Excel file of the PLX-DAQ be converted to .csv format automatically? I mean, not going through File > Save As. Or at least be able to have a copy of the data in the Excel file be saved as .csv format.

Thank you,

OneLeafAutumn

ranbros:

  • if I use PLX-DAQ-v2-AutoGrapher-RandomValue.xlsm I have the following error (with Excel 2007)
    SYS: |15:44:18| ## ERROR within command ! ## 438 / Proprietà o metodo non supportati dall'oggetto
    |15:44:18| DATA,DATE,TIME,1093,217
    if I use PLX-DAQ-v2.11.xlsm works without errors the same PLX-DAQ-v2-AutoGrapher-RandomValue.ino
    It is due to old Excel?

Hi Davide
yes this might be an Excel issue. The example tries to update the graph object to automatically refresh the visual. Might be that Excel 2007 simply does not support that yet. The Arduino code is pretty simple and just pushes data to Excel. It will work on mostly all modern PLX DAQ versions. Just the graph update is the fancy thing to show here.

ranbros:

  • Is there a trick to avoid the latency due to plot graph?

I don't quite understand what you mean? The latency in updating the graph or in sending data from Arduino to Excel? I think the graph updating speed depends mostly on your PC performance. In the example it is just two lines of code with native Excel VBA - should be super fast.



OneLeafAutumn:
I was wondering if the Excel file of the PLX-DAQ be converted to .csv format automatically? I mean, not going through File > Save As. Or at least be able to have a copy of the data in the Excel file be saved as .csv format.

Hi OneLeafAutumn,

sorry hadn't had the time to respond to your private message yet... but thanks for posting the question to the board as well. In here it will definitely help others as well.

So basically there is no option yet. no. I just did a bit of research and it can be easily accomplished. Open the marco code editor of PLX DAQ, there open the frmStampDAQ (so to see the code of PLX DAQ) and search for CASE "SAVEWORKBOOKAS". You can see the different types of commands that exist.

Just add this new one:

Case "SAVEWORKBOOKASCSV"
    Application.DisplayAlerts = False
    WStoUse.Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & DataVal(1) & ".csv", FileFormat:=xlCSV, CreateBackup:=True
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    txtStatus2 = "Workbook saved as '" & DataVal(1) & ".csv' by command"

Afterwards in Arduino code you should be able to use the following line:

Serial.println("SAVEWORKBOOKASCSV,exportFileName");

It should save a copy of the sheet where the data is currently being posted to in the same folder as the main Excel file by the name exportFileName.csv
Any feedback if it is working is welcome :slight_smile:

And with regards to your other question: PLX DAQ only posts the current date and time to the Excel sheet. There is no function for sending the current date and time to the Arduino. Although as shown above new and / or own functions can be included in the code easily :wink: feel free to give it a try.
In case you only need the date and/or time in Excel when logging data then yes: RTC module (DS3231) is not needed any more.

Hi NetDevil!
First of all, thank you so much for your work. I use your program to read a load cell and it works great.
I just want to report a little issue: using "Arduino Nano Every" the "Reset on Connect" flag does not work.
I suspect because of the ATMega4809, but I will wait for your opinion.
Do you have any suggestions or solutions?
Thank you!
Best regards

ToniLab

ToniLab:
using "Arduino Nano Every" the "Reset on Connect" flag does not work.
I suspect because of the ATMega4809, but I will wait for your opinion.

Hi ToniLab,

unfortunately I think so too :slight_smile: digging a bit more into the rs232 documentation I was following the path of RTS and DTR flags used by PLX DAQ to reset on startup. Looks like those pins are used with esp8266 boards a lot, with other boards it might behave differently or even worse by USB it might behave differently. In case you are an C / Arduino enthusiast and want to check how the Arduino IDE is handling the reset for all boards in general I'll gladly try to implement a more universal solution :slight_smile: Although I guess no one else has reported the same kind of issues yet (?)

Hi NetDevil!

First, THANK YOU for creating and sharing this fantastic tool! It has helped me so much already!
I have it working quite well, receiving and plotting data from an ESP32 board, at 9600baud.
I also have the Autographing working, plotting my data.

I find after a while Excel stops running.. I wonder if it could be from having collected way too much data?
I send a new record DATE, temperature, millis(), pressure every 0.25sec. I'd like to display just the last ~1 minute of data (240 points) but run for hours

Since storing the data is not a priority, would it be possible to create a scrolling array (not a circular array) so that array size remained fixed? For example,
If an array of 240 points, than at 241st point, the array is moved up 1 row, and the new data is stored in row 243, and so on. This way, the chart's start and stop remains fixed, and the plot would move smoothly.

Is this possible with commands sent from the Arduino?
I am not terribly familiar with VBA in excel, but want to take this opportunity to learn..
Can you help, or point me to how I can do this?
Many thanks!

Hiho,

first of all thanks for that great work!

I perpared a little test with the classic 10k poti analog read on a NodeMCU ESP8266 Board. when i open the spreadsheet and set the COM Port + Baud (9600 even tho I'd like to use more but 9600 is enough for testing). When i connect the system seems to work properly, but unfortunatly the Data Aquisition stops after 30...50 samples and Excle closes. Im using WIN10 64-Bit and Excel 2013. I post my Arduino IDE Code down below.

Cheers, Hannes!

/*
 * Oszi using "PLX DAQ v2"
 * 
 */


void setup() {

  // open serial connection
    Serial.begin(9600);

    //Serial.println("CLEARDATA"); // clears sheet starting at row 2
    Serial.println("CLEARSHEET"); // clears sheet starting at row 1
    
  // define n columns named " ", " ",...
    Serial.println("LABEL,Date,Time,AnalogRead,millis");

  // set the names for the 3 checkboxes
    Serial.println("CUSTOMBOX1,LABEL,Stop logging at 250?");
    Serial.println("CUSTOMBOX2,LABEL,Resume log at 350?");
    Serial.println("CUSTOMBOX3,LABEL,Quit at 450?");

  // check 0 of the 3 checkboxes (all false)
    Serial.println("CUSTOMBOX1,SET,0");
    Serial.println("CUSTOMBOX2,SET,0");
    Serial.println("CUSTOMBOX3,SET,0");
}

void loop() 
{
  int value;
  value = analogRead(A0);

    // simple print out of number and millis. Output e.g.,: "DATA,DATE,TIME,TIMER,4711,13374,AUTOSCROLL_20"
      Serial.println( (String) "DATA,DATE,TIME," + value + "," + millis() + ",AUTOSCROLL_20" );
      delay(1);
      // alternative writing method:
        /* Serial.print("DATA,DATE,TIME,TIMER,");
        Serial.print(i++); Serial.print(",");
        Serial.println(millis()); 
        Serial.print(","); Serial.println("SCROLLDATA_20"); */
}

I may have found the problem already, i dont think Excel can match the data rate... If i use higher delay values it works just fine... Bummer, is there a way to collect data every ~Millisecond (+-)
Cheers, Hannes

Hi All,

Has anyone run PLX_DAQ within the spreadsheet application in WPS Office?
When I tried, I cannot get the macro to launch..
Any help very much appreciated!

-tony

Hi there guys,

sorry for posting late, it will always be a bit more time before I can reply nowadays. Anyways, let's get to the issues:


@TonyParakka:
thanks buddy, it is always good to know the software can help people with their ideas :slight_smile: Using the Autoplotter is fantastic. Very few people seemed to have used that yet.
The way I use the Autoplotter in my example is to move the data set of the graph around to only display the latest values. I never thought about a way before to move the data like a LIFO system around. I can think of several ideas now, some being more complex or less performant then others. The "best" one (although not the prettiest one) would be to use the CustomDevPoint to check if more then 240 data rows are already receiverd, and in case yes, put the new data to row #242 and delete row #2. That way you would have just the correct amount of data. Might be that the graph's data set will not cope well with rows being deleted, therefore I guess it would be best to rewrite the data set anew every iteration as well (to use e.g. B2 to B242).
I hope this will work for you as an entry point to coding things for the time being.

Your second question regarding WPS Office I have no idea. Never used that software. Does it run on Windows? PLX DAQ highly makes use of Windows API calls and therefore has a huge dependency on the platform...



@jdechow:
Hi Hannes, and thanks for the feedback, much appreciated :slight_smile:
You are right with what you figured out: too much data is not being supported by the current version of PLX DAQ. Every ms will flood the inbound API call. Are you really sure you need that much data? I mean .... can you even handle that on the human side :wink: ?
Maybe you could collect the data in Arduino every ms, make a meridian / middle value of it every 50ms and send that to Excel?
To reduce overhead you could also collect e.g. 10 data in an array and send array to Excel every 10ms (thus the amount of communication gets reduced). But you have to parse the array on Excel side and split the values one by one yourself (although the PC is generally capable of processing that little bit of operation).
Last idea would be to get back to the original Serial.print without using the (String)-converter. This will mainly save ressources on the Arduino side but could maybe improve stability as well since communication might be smoother (because Arduino is quicker in responding / acknowledging to send data).


Please revert back in case you have any problems.

Kind regards

Jonathan

Hi Jonathan!

Much appreciate coming back on this

How do you do this : "I use the Autoplotter in my example is to move the data set of the graph"
Is this in the macro somewhere? There may be a solution here..

I tried [1] create new row at 2 with shift down, and [2] add new data to row2
New data addition worked nicely and the data shows on the graph, but graph stretches vertically with every added rows! Yikes!
I tried placing the graph at top, and adding new data from some row further down e.g. 40).. in this case the graph stayed blank :frowning: I tried placing the graph on a separate worksheet; here too, the graph stayed blank :frowning:

I also tried the shift up method -on a small scale.
In "DATA" section, I check if row > 40; if not, then add new data at row=row+1; and if yes, then delete row2 with shift up, and add new data at row 42.
So far, the graph stays blank even as data comes in..

Will do more searching to learn about VBA and charts..
Any further thoughts appreciated of course..

-tony

Hi,

This might be long, sorry.

I've scanned the whole thread and the beginner's guide as well but it seems I didn't see the way that I am planning to do or maybe I just failed to understand certain codes because I'm not expert to this field.

Anyway, the command "CELL/ROW,SET" enables you to put the data to a certain cell in the Excel itself and the command "CELL/ROW,GET", on the other hand, will be sent back to Arduino. Please correct if I've failed to comprehend or skipped it.

But what I am planning to do is that I send data from the Arduino in real time to the PLX-DAQ. Therefore, the data will log into the Excel non-stop unless I close the Excel itself (?) or I clicked the "Pause/Resume logging" button (?).

So these are my questions:

  1. I am planning to get the data from the Excel and use it for forecasting and I want the logging of data to continue as I get a sample data (like working simultaneously). Is it possible? (I don't think SET/GET command can do it based on my understanding)
  2. And I think if I continue to send data from Arduino to Excel, the file may be burdened as data compiles non-stop. Is it possible to save the other incoming data, say the 501st data (counter) to another Excel file? (like for Day1 data to Excel1, Day2 data to Excel2)?
  3. Or is it better to just clear the sheet for every 501st, for example, but before clearing the 500 logged data will be save to a database (?) or something first and then clear the sheet.
  4. And lastly, when uploaded (Arduino), PLX-DAQ can only be manually connected?

Thank you for bearing with this.
Note: All of these are just my concepts/theory only, I haven't started code anything yet so sorry again if I can't provide some sample codes.

  • BunnyTee -

Hi NetDevil, i have a problem here...

I downloaded PLX-DAQv2.11, uploaded the PLX-DAQ-v2-DefaultSketch to UNO R3, and opened the excel file PLX-DAQ-v2.11. After execution, an excel file is automatically saved and called 450-Line-File. However, I can't open this file. A window displays "Excel can't open file '450-Line-File.xlsm'. Because the file format or file name is invalid, please make sure the file is not damaged, and the file name matches the file. format"

I would like to ask how to solve this problem, thank you

Hi folks,
took me some time but let's get started:


@Tony:,

your second approach sounds good:

In "DATA" section, I check if row > 40; if not, then add new data at row=row+1; and if yes, then delete row2 with shift up, and add new data at row 42.

You need to check how Excel handles the deletion of the rows with regards to the data set of the diagram. In case your diagram is set to e.g. A2:A42, then deleting rows may result in moving the grid to A1:A41.
In my PowerDemo (included in the ZIP file) I used to set the data grid anew with every data read. The command is a bit cryptic and reads something like this:ChartObjects("MyMainDiagram").Chart.FullSeriesCollection(1).XValues = "='Simple Data'!$C$" & IIf(newRow - 1 <= maxRows, "2", newRow + 1 - maxRows) & ":$C$" & newRow
Just try with dummy data: put 40 data sets in manually, set the data grid of your diagram to those 40 rows, delete row #2 and check the data set settings of your diagram again. then add another row and check again. I guess it will start off good but row by row get smaller and smaller until there is simply no data left to display. And that could be why you need to align the data set after every data input.



@BunnyTee:

BunnyTee:
Anyway, the command "CELL/ROW,SET" enables you to put the data to a certain cell in the Excel itself and the command "CELL/ROW,GET", on the other hand, will be sent back to Arduino.

Correct :slight_smile:

BunnyTee:
But what I am planning to do is that I send data from the Arduino in real time to the PLX-DAQ. Therefore, the data will log into the Excel non-stop unless I close the Excel itself (?) or I clicked the "Pause/Resume logging" button (?).

Both correct, but best to use the "Pause/Resume logging" button as it will correctly close the connection and allow proper reconnection. Killing Excel will result in an unstable state of the COM connection.

BunnyTee:

  1. I am planning to get the data from the Excel and use it for forecasting and I want the logging of data to continue as I get a sample data (like working simultaneously). Is it possible? (I don't think SET/GET command can do it based on my understanding)

You can put the logging commands FROM Arduino TO Excel in your loop function to constantly get data. Every now and then (use a counter, e.g. every 50 steps) you can jump into a sub routine and use "CELL,GET" to query a certain cell from Excel. In said sub routine you have to wait as long as the data is received. That time long no data will be send from Arduino to Excel. It might take about half a second or so.

BunnyTee:
2. And I think if I continue to send data from Arduino to Excel, the file may be burdened as data compiles non-stop. Is it possible to save the other incoming data, say the 501st data (counter) to another Excel file? (like for Day1 data to Excel1, Day2 data to Excel2)?

You can use the SAVEWORKBOOKAS command to save the current workbook by a new name (and stay in it). That way you can kind of leave a "trail" of historic data. On the other hand you could also copy the data to a new workbook which can be saved (all fully automatic of course). Please take a look at this post (response to OneLeafAutumn) where I explained how to build this into PLX DAQ as a new command. You need to exchange the CSV references to your desired data format (xlsm or xlsx).

BunnyTee:
3. Or is it better to just clear the sheet for every 501st, for example, but before clearing the 500 logged data will be save to a database (?) or something first and then clear the sheet.

You should save first and clear then. Doing that is a good idea in case you don't need the historic data but only the current 500 values). The command CLEARSHEET removes all data from the sheet (including headlines), whereby CLEARDATA only removes starting at row 2 downwards.

BunnyTee:
4. And lastly, when uploaded (Arduino), PLX-DAQ can only be manually connected?

I don't quite get that question. But I guess you mean to ask if there is any way to automatically start and connect PLX DAQ e.g. after a new code is uploaded to Arduino? In that case no, there currently is no function to do that. It will be tricky though as there can always only be one active connection to the Arduino via the COM port and uploading will block this (naturally) thus PLX DAQ can not listen to what is going on on the port as well.



@tgod2100:

tgod2100:
However, I can't open this file. A window displays "Excel can't open file '450-Line-File.xlsm'. Because the file format or file name is invalid, please make sure the file is not damaged, and the file name matches the file. format"

That one is tricky. It is a good sign that the file gets created, thus all code is running fine. Which version of Excel are you using? And can you please post the full file name that gets created? Most likely it does not store as ".xlsm"?



Cheers to everyone!

Both correct, but best to use the "Pause/Resume logging" button as it will correctly close the connection and allow proper reconnection. Killing Excel will result in an unstable state of the COM connection.

I've done this. However, it does not do what I've wanted originally, partly. I want to make the Arduino stops sending data to PLX-DAQ at 11:55:00 pm and then resume logging at 12:00:00 mn automatically. I've read from your reply #26 at page 2 of this thread, a somehow of what I want to do but not with Sensorvalue but rather based at the real-time clock of the pc/laptop.

You can put the logging commands FROM Arduino TO Excel in your loop function to constantly get data. Every now and then (use a counter, e.g. every 50 steps) you can jump into a sub routine and use "CELL,GET" to query a certain cell from Excel. In said sub routine you have to wait as long as the data is received. That time long no data will be send from Arduino to Excel. It might take about half a second or so.

Is this doable, say all the data from Cell D?

You can use the SAVEWORKBOOKAS command to save the current workbook by a new name (and stay in it). That way you can kind of leave a "trail" of historic data. On the other hand you could also copy the data to a new workbook which can be saved (all fully automatic of course). Please take a look at this post (response to OneLeafAutumn) where I explained how to build this into PLX DAQ as a new command. You need to exchange the CSV references to your desired data format (xlsm or xlsx).

Okay, I'll try looking into it. But just in case, is it possible to save it to another specific folder? Since from the guide, it says that the new workbook will be saved in the same folder as the current.

You should save first and clear then. Doing that is a good idea in case you don't need the historic data but only the current 500 values). The command CLEARSHEET removes all data from the sheet (including headlines), whereby CLEARDATA only removes starting at row 2 downwards.

Oh, in this question, I mean, I will save the whole 500 data first, save it into another excel file and then CLEARDATA* the current excel and then starts logging again.

I don't quite get that question. But I guess you mean to ask if there is any way to automatically start and connect PLX DAQ e.g. after a new code is uploaded to Arduino? In that case no, there currently is no function to do that. It will be tricky though as there can always only be one active connection to the Arduino via the COM port and uploading will block this (naturally) thus PLX DAQ can not listen to what is going on on the port as well.

Yeah, this is what I meant. Sorry for the vague question.

And thanks for replying and reading my long posts :slight_smile: Thanks for your effort.

I've did some work while waiting for your response, and here's the code I've made.

#include "EmonLib.h"
// Include Emon Library
EnergyMonitor emon1;
// Create an instance

unsigned long previousMillis = 0; 
const long interval = 60000; 

void setup()
{
  Serial.begin(9600);
  Serial.println("CLEARDATA");
  Serial.println("LABEL,Date,Time,Current,Power,millis()");
  
  emon1.current(1, 85.1);             // Current: input pin, calibration.
}

void loop()
{
double Irms = emon1.calcIrms(2580);  // Calculate Irms only
double Prms = Irms*230.0;
unsigned long currentMillis = millis();

 if (currentMillis - previousMillis >= interval) {
    
  Serial.print(Prms);           // Apparent power
  Serial.print(" ");
  Serial.println(Irms);             // Irms
  Serial.println(" ");

  Serial.println( (String) "DATA,DATE,TIME," + Irms + "," + Prms + "," + millis() + ",AUTOSCROLL_30");
    
  previousMillis = currentMillis;
  
  }
}

I've done this. However, it does not do what I've wanted originally, partly. I want to make the Arduino stops sending data to PLX-DAQ at 11:55:00 pm and then resume logging at 12:00:00 mn automatically. I've read from your reply #26 at page 2 of this thread, a somehow of what I want to do but not with Sensorvalue but rather based at the real-time clock of the pc/laptop.

I've searched that the delay() function has limited uses and that millis() function is the better choice when working with intervals. But I can't seem to make this work (the one above). And the time frame of 11:55:01 pm to 11:59:59 pm, I will save all the data gathered in that day into an excel file and then use another excel to resume logging at 12:00:00 mn

NetDevil:
@tgod2100:
That one is tricky. It is a good sign that the file gets created, thus all code is running fine. Which version of Excel are you using? And can you please post the full file name that gets created? Most likely it does not store as ".xlsm"?

@NetDevil:

Hi,NetDevil

The version of Excel I am using is 2003.

The full file name is 450-Lines-File.xlsm

hi Net Devil

I'm Brazialian

I have a problem, with your software

My excel hangs when I put for a grafics.

I use Win10 and Excel 365

Can you help me?

Hi there,
I kind of feel like it is becoming my signature move to reply to a couple of questions with nearly two weeks delay all the time....



@BunnyTee:

I want to make the Arduino stops sending data to PLX-DAQ at 11:55:00 pm and then resume logging at 12:00:00 mn automatically

You can use the real time clock as a module to connect to your Arduino, yes. On the other hand you could use one cell within Excel as a "Do sending: yes/no" information that is passed back and forth from Excel to Arduino. Nevertheless you need you Arduino to run 24/7 as well as your PC and they need to be connection with each other throughout the time.
What I would is to use a cell e.g. A10 and write a "Yes" or "No" in the cell by VBA based on the PC time. You can use the loops running in PLX DAQ for that. In Arduino I would use a millis counter to send a query for cell A10 like every one minute. Based on what is returned to the Arduino it should or shouldn't send data to Excel.

Is this doable, say all the data from Cell D?

"D" is not a cell but a whole column. Getting all data from one column is tricky and would require some change in code. However getting only the data from cell D7 (or as above A10) is within the standards of PLX DAQ. The Beginners Guide does have some example data for that.

Okay, I'll try looking into it. But just in case, is it possible to save it to another specific folder? Since from the guide, it says that the new workbook will be saved in the same folder as the current.

well kind of yes I guess. The code in PLX DAQ is

ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & DataVal(1) & ".xlsm"

whereby DataVal(1) is what you pass as a file name.
Let's say "ThisWorkbook.Path" is equal to C:\Users\YourName\Desktop", then:

  • passing "NewFile" would result in storing a copy of the workbook as C:\Users\YourName\Desktop\NewFile.xlsm
  • passing "folder\NewFile" would result in storing a copy of the workbook as C:\Users\YourName\Desktop\folder\NewFile.xlsm [the subfolder needs to already exist !!]
  • passing "..\NewFile" would result in storing a copy of the workbook as C:\Users\YourName\NewFile.xlsm

So by building the path you can change it, but in any way the current folder is the reference and starting point.

Oh, in this question, I mean, I will save the whole 500 data first, save it into another excel file and then CLEARDATA* the current excel and then starts logging again.

Sure that is possible. After every 500 lines send by Arduino (you need to make the counter in the Arduino code) you can send a SAVEWORKBOOKAS command followed by a CLEARDATA command

I've searched that the delay() function has limited uses and that millis() function is the better choice when working with intervals. But I can't seem to make this work (the one above). And the time frame of 11:55:01 pm to 11:59:59 pm, I will save all the data gathered in that day into an excel file and then use another excel to resume logging at 12:00:00 mn

Delay will typically pause the whole code running on Arduino for the time that should be waited. Total disaster of course as you want to continue logging . Using millis is better as you can just save the current value of millis, add (10006060*25) to it (one full day) and place in variable x and in your loop function check if the current millis is larger then x (thus the day has passed). However this will result in pretty large numbers. I might think that my way (Cell A10 with Yes/No value) is a bit more stable.



@tgod2100:
yeah I would totally suggest this to be an issue with the old Excel version. That version of Excel is older then many users on this board :grin: :grin:
Do you have any option to try to switch to a more up to date version? Maybe 2013?



@JackSilva:
Brazilian, nice :slight_smile: I should start a world map and put pins in and try to get as many continents as possible :slight_smile:
My first guess is that Excel 365 is a problem. However I haven't used it myself... it is a native running client or a cloud service? Does PLX DAQ work with it in general (fetching / receiving data) but crashes only when using graphics?
Just to be sure: by graphics you mean graphs and plots and diagrams? Not pictures? But your goal is to receive data and visualize it? Does your graph auto-update while receiving data or do you receive data, stop the connection, then create a graph of the data and by that Excel crashes?



Cheers everyone!
(see you in 2 weeks time :confused: :roll_eyes: :astonished: )