Beginners Guide To PLX DAQ v2 (Rev1)
Beginners Guide To PLX DAQ v2 (Rev1)
Net^Devil
(Revision 1)
Table of content
You can, for example, measure temperature data with your Arduino, send
the results to Excel every 10 seconds, printed the data on a sheet and
draw a graph with all information. All communication will be done by
Serial.println commands just like the commands you use to send from
Arduino to monitor in your Arduino IDE Serial Monitor.
The output of
void loop() {
Serial.println( (String) "DATA,DATE,TIME," + millis() );
delay(100);
}
2. How to use
The program uses two parts to work: the special Microsoft Excel
Spreadsheet with the PLX DAQ v2 UI and commands plus any Arduino
device that sends special commands for communication. The latest Excel
Spreadsheet can be downloaded on the Arduino forum (Link:
http://forum.arduino.cc/index.php?
topic=437398.msg3013761#msg3013761 ; please always download the
latest version!), the Arduino code can be written by everyone themselves
with below guideline.
d. Miscellaneous commands:
Everything that is not really crucial or does not have any benefit
(anymore)
b. CLEARDATA:
This commands clears only logged data on the ActiveSheet (starting
at row 2)
Syntax: Serial.println(CLEARDATA);
c. LABEL:
With this command you can set the labels for the top most row of
the ActiveSheet
Syntax: Serial.println(LABEL,1st Column,2nd Column,Third one!);
d. DATA:
This is the most basic and crucial command of PLX DAQ v2. It is used
to send data from your Arduino to Excel and have it printed on the
ActiveSheet. You can send anything you want but you should make
sure you split the data up by commas and match the number of
columns you defined with the LABEL command.
The reserved code words DATE, TIME and TIMER will be recognized
by PLX DAQ and will be replaced with values.
DATE will be switched to the current Windows computers date (e.g.,
12.03.2017)
TIME will be switched to the current Windows computers time (e.g.,
18:17:42)
TIMER will be switched to the time the logging is already active (e.g.,
1,365 seconds)
b. CELL,GET
With this command values from the Excel sheet (either ActiveSheet
or named sheet) can be queried and read by Arduino. For example
you could put a value for the delay duration in cell J9, query it every
loop iteration and control how long your Arduino should pause
between each loop. The value in J9 can be changed by you during
runtime at any time.
Please note: you need to read the value on your Arduino. This can
be done by Integer or String. You should take care to only send
integers when you are reading integers and vice versa.
Use Serial.readStringUntil(10);
or Serial.readStringUntil(10).toInt();
or Serial.readStringUntil(10).toFloat();
With the following command you could read the value in J9 for the
To read a value from any other named sheet please use the
following syntax:
Serial.println("CELL,GET,FROMHEET,AnySheet,C,9);
c. ROW
You can set the row on which data should be logged to manually.
Thus after e.g., having logged 20 data sets you can reset the row
counter to 2 and start from the beginning again. Or you can read
the row that is currently logged to (please note you need
Serial.readStringUntil(10).toInt() command afterwards in Arduino)
Syntax:
Serial.println("ROW,SET,2);
Syntax:
Serial.println("ROW,GET);
myRow = Serial.readStringUntil(10).toInt();
e. CLEARRANGE
Other than Cleardata or Clearsheet this command will only clear a
certain range on the ActiveSheet. Data will be deleted in a rectangle
from top left to bottom right.
Syntax: Serial.println(CLEARRANGE,B,10,D,20);
f. RESETTIMER
It will reset the timer that is used to count the time PLX DAQ is
Beginners Guide to PLX DAQ v2 by Net^Devil (rev1) Page 7 of 12
already logging
Syntax: Serial.println(RESETTIMER);
b. SAVEWORKBOOK
Will just save the workbook by its current name. This is useful if you
are logging for a long time and want to save your data every now
and then.
Syntax: Serial.println(SAVEWORKBOOK);
c. SAVEWORKBOOKAS
Will save the workbook by any given name. The new workbook will
be saved in the same folder as the currently open workbook (except
if you include subfolders in the name to be saved).
Syntax: Serial.println(SAVEWORKBOOKAS,MyNewWorkbookName);
Syntax:
Serial.println(SAVEWORKBOOKAS,Subfolder\Workbookname);
d. FORCEEXCELQUIT
This is a heavy command! It will force quit Excel.
!! PLEASE NOTE TO SAVE YOUR WORKBOOK FIRST !!
Syntax: Serial.println(FORCEEXCELQUIT);
b. MSG
Can be used to put a string on the Controller Message label on the
PLX DAQ UI
Syntax: Serial.println(MSG,Put your text here);
d. GETRANDOM
Will return a random number from Excel to Arduino. This is useful
because Arduino cant create true random numbers. Arduinos
random function requires prior initialization by randomSeed(value).
If value is not unique (e.g., user input) the number sequence return
by Arduinos random will always be the same. To get a unique value
for randomSeeds value you can therefore query Excel.
Syntax:
Serial.println("GETRANDOM,-31313,32323");
int rndseed = Serial.readStringUntil(10).toInt();
randomSeed(rndseed);
Serial.println( (String) 1st number: + random(0, 50));
Serial.println( (String) 2nd number: + random(0, 50));
Serial.println( (String) 3rd number: + random(0, 50));
You could also use the CustomDevPoints that I included in the code. These
functions are called at diferent times during the run. E.g., every time a
new line is read from PLX DAQ (thus after each Serial.println();), after a
new line with DATA is read (thus after each Serial.println(DATA,);) or
after this data is added to the sheet.
a. Download new PLX DAQ Excel and open, open your Excel as well.
b. In your old Excel select first sheet, then hold shift key and select last
sheet, right click first sheet and select "Move or Copy"
Enjoy !!
Greetings
Jonathan Arndt (aka Net^Devil)
/*
* Demo sketch for new "PLX DAQ v2"
* including most all common commands to be used
*/
int i = 0;
void setup() {
// and for forced quit of Excel with saving the file first
if(i==450)
{
Serial.println("CUSTOMBOX3,GET");
if(Serial.readStringUntil(10).toInt()) {
Serial.println("SAVEWORKBOOKAS,450-Lines-File");
Serial.println("FORCEEXCELQUIT");
}
else
Serial.println("No forced Excel quit requested!");
}
}