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

So I took another look and basically you could just get rid of all the FormatMessage calls and functions using it. You will loose only some debug / status information of the COMM port.

However I fear that you will run into the next error right afterwards.

Could you do me a favor please and state which version of Excel 2016 and Windows 10 you are using? Which of them is either 32 or 64 bit?
It looks like PLX DAQ is currently only distinguishing between Excel versions, not Windows 10 versions. There might be room for improvement here.

@NetDevil, What is the latest version of PLC-DAQ? Many of the links took me to 2.11 but I also found 2.2 and 2.3.

adwsystems:
@NetDevil, What is the latest version of PLC-DAQ? Many of the links took me to 2.11 but I also found 2.2 and 2.3.

Shame there isn't a GitHub repo, isn't it?...

Power_Broker:
Shame there isn't a GitHub repo, isn't it?...

Is there I didn't find a link in scanning all 24 pages of this thread? If so, then how about sharing this top secret information.

adwsystems:
Is there I didn't find a link in scanning all 24 pages of this thread? If so, then how about sharing this top secret information.

Nononono, I wasn't trying to be sarcastic to you, I tried to suggest a GitHub repo be made for this software in previous posts to no avail. Sorry for the confusion

Power_Broker:
Nononono, I wasn't trying to be sarcastic to you, I tried to suggest a GitHub repo be made for this software in previous posts to no avail. Sorry for the confusion

My apologies as well. It is a great idea.

Hi there

@adwsystems: each post links back to the initial post where I have provided and overview of all available versions including links to the posts for downloading. The important part is, that it is "version two point eleven" (2.11) thus it is more recent then 2.2 and 2.3 :slight_smile: it is the most recent one :slight_smile:

@Power_Broker: yeah ok, go ahead. Sorry to say but my life consists of things apart caring for this thread like my job, the house I recently build, my leisure time, quality time with my wife and yeah by the way we are expecting a baby. So sarcastic some one else or go for it yourself. Isn't that the whole point of Free and Open Source Software... Never had anyone complained about a version control here except you. Thanks.

I am able to save data in an excel sheet but if I want to read data from an excel sheet through arduino and send it through zigbee protocol.. how can it be done?

abhiramnvs:
I am able to save data in an excel sheet but if I want to read data from an excel sheet through arduino and send it through zigbee protocol.. how can it be done?

Hi ahiramnvs,

since you're already able to store/send data to Excel you have achieved more then half the way already :wink: Please take a look at the Beginners Guide, there is a section with regards to the "CELL,GET" command. It allows Arduino to query the content of a specific cell from Excel.
On Arduino side it is important to do two steps: 1) query the data via CELL,GET command and 2) wait for the data to be received (code is in the document).

Afterwards you can process the received data and continue to send via zigbee protocol. Regarding that zigbee, I know basically what it is but never had any experience on it. So from there on I can't help you with that.

Cheers

thanks a lot

How do I get/read a complete row or a column in arduino. Till now I'm able to access only a single value from a row by using CELL,GET but hoe do we get a complete row??

abhiramnvs:
How do I get/read a complete row or a column in arduino. Till now I'm able to access only a single value from a row by using CELL,GET but hoe do we get a complete row??

Hi, there is no function for this.
There never was an actual demand and basically no need because all data in Excel comes from Arduino - so why first write to Excel and then query back? Better to store it directly in Arduino.

You could write it yourself but it comes with some tricky questions (like which data format to use).
Or in case you know the number of lines/columns you could use CELL,GET in an iteration (not really performant).

can you help me how to use CELL,GET in an iteration if I have 20values in a single row A.
for(i=0;i<=20;i++)
Serial.println("CELL,GET,A%d",n); or Serial.println("CELL,GET,An"); or some thing likw this? Help please

NetDevil:
@adwsystems: you are right, there is only that one option to send data from PLX DAQ to Arduino. I haven't had any other use case ; yet. Attached you can find a special version of 2.11 with a new text field to send data to Arduino (please expand DirectDebugWindow to fully see the field + button + label). It only works while being connected (obviously :smiley: ). Give it a try and I might add the same (in beautiful) to the next release. I might add two or three text fields at the same time thus one can post different pre-defined commands more rapidly.

I know I'm hoping in the way back machine to post #128. But that is where I need the assistance. I'm finally trying to finish that project.

I am working to make a kind-of SD DOS (just the basic commands) that will appear in the debug window. The point here is to be able to see the files on the card while connected to the Arduino without interrupting the Arduino or having to disassemble the system to remove the card and attach it to the computer to just find the file name. Once the filename is determined, a command will be given to transfer it using the standard PLX-DAQ and into the excel file.

I had my SD DOS working in the serial monitor with sending a carriage return (char(13)). The PLX-DAQ write window (ref v2.11 special in post 128) doesn't appear to send char(13). That's fine. In the spirit of C programming, I included the semi-colon as a substitute for char(13). Here's the issue. Via PLX-DAQ, the first command works fine, the second and on does not. It works fine through the serial monitor (either with carriage return and no semi-colon, or semi-colon and no carriage return).

My assumption is there is an additional item sent from the PLX-DAQ that is not from the serial monitor and thus the command buffer is being thrown off. I am in need of help to confirm this and develop a pathforward (or correction to my Arduino program; attached).

TIA @NetDevil.

SD_DOS_v1.ino (5.11 KB)

adwsystems:
I know I'm hoping in the way back machine to post #128. But that is where I need the assistance. I'm finally trying to finish that project.

I am working to make a kind-of SD DOS (just the basic commands) that will appear in the debug window. The point here is to be able to see the files on the card while connected to the Arduino without interrupting the Arduino or having to disassemble the system to remove the card and attach it to the computer to just find the file name. Once the filename is determined, a command will be given to transfer it using the standard PLX-DAQ and into the excel file.

I had my SD DOS working in the serial monitor with sending a carriage return (char(13)). The PLX-DAQ write window (ref v2.11 special in post 128) doesn't appear to send char(13). That's fine. In the spirit of C programming, I included the semi-colon as a substitute for char(13). Here's the issue. Via PLX-DAQ, the first command works fine, the second and on does not. It works fine through the serial monitor (either with carriage return and no semi-colon, or semi-colon and no carriage return).

My assumption is there is an additional item sent from the PLX-DAQ that is not from the serial monitor and thus the command buffer is being thrown off. I am in need of help to confirm this and develop a pathforward (or correction to my Arduino program; attached).

TIA @NetDevil.

Nevermind. The answer is newline (char(10)).

Hi abhiramnvs,

abhiramnvs:
for(i=0;i<=20;i++)
Serial.println("CELL,GET,A%d",n); or Serial.println("CELL,GET,An"); or some thing likw this? Help please

better use the [ code ] function of this board when posting source code in order to make it more readable.
From the top of my head and according to what I have written in the Beginners Guide it should look something like this to read 20 Integer values from A1 to A20:

for ( int i = 1 ; i++ ; i<=20; ) {
   Serial.println( (String) "CELL,GET,A" + i);
   myValue = Serial.readStringUntil(10).toInt();
   Serial.println( (String) "Read value is: " + myValue);
}


Hi adwsystems,

and sorry for not getting back to you earlier. Anyways it looks like you have proven some dedication and figured out the solution yourself already :slight_smile: nice job!
Yeah, as shown in the code above for abhiramnvs, the "End of Line" character used is char(10). char(13) is also common, as a combination of both. But for some reason back then I chose char(10) as I might recall it was the more commonly use one.
In case of any further questions please feel free to ask :slight_smile:


Cheers to both of you.

Just wanted to thank the creators and updaters!
Works like a charm in my system :slight_smile:

@NetDevil:

I created an account just to thank you for creating the PLX-DAQ software. It's a very robust command-response system which can be adapted for many applications.

I didn't notice in any of the documentation the mention of license information.

Again, thank you.

Thanks for sharing NetDevil, been looking for something like this for quite a while.

@NetDevil:

Time to put your system to work.

First a question. What is the highest reliable baud rate you suggest to use with PLX-DAQ? I have a lot of data that will transfer. So the faster the better, but unreliable and having to restart will be worse.

Long story short. I have to put a SD card between the Arduino and PLX-DAQ. Using the interface in Excel, I trigger the transfer to start. The data is read from the card in up to 20 byte chunks and sent to the serial port.

The data on the card reads:

   Date   ,  Time  ,ON SP,OFF SP,Control Type,BrightLight SP,Dark SP,Valve Mode,Valve Man Cmd,Pump Mode,Pump Man Cmd
2020/17/04,04:04:09,  0  ,   0  ,      0     ,       0      ,   0   ,     0    ,      0      ,    0    ,      0     
2020/17/04,04:04:39,  83 ,  82  ,      1     ,      555     ,  516  ,     0    ,      0      ,    0    ,      0     
2020/17/04,04:05:09,  83 ,  82  ,      1     ,      555     ,  516  ,     0    ,      0      ,    0    ,      0     
2020/17/04,04:05:39,  83 ,  82  ,      1     ,      554     ,  515  ,     0    ,      0      ,    0    ,      0

When the transfer initiates. "LABEL," is sent with the first line, and "DATA," with all the others

LABEL,   Date   ,  Time  ,ON SP,OFF SP,Control Type,BrightLight SP,Dark SP,Valve Mode,Valve Man Cmd,Pump Mode,Pump Man Cmd
DATA,2020/17/04,04:04:09,  0  ,   0  ,      0     ,       0      ,   0   ,     0    ,      0      ,    0    ,      0     
DATA,2020/17/04,04:04:39,  83 ,  82  ,      1     ,      555     ,  516  ,     0    ,      0      ,    0    ,      0     
DATA,2020/17/04,04:05:09,  83 ,  82  ,      1     ,      555     ,  516  ,     0    ,      0      ,    0    ,      0     
DATA,2020/17/04,04:05:39,  83 ,  82  ,      1     ,      554     ,  515  ,     0    ,      0      ,    0    ,      0

(actually that is only the left portion, there are 73 fields in total)

The above is from the Arduino IDE serial monitor.
When I try it in PLX-DAQ. Nothing happens. I have restart on connect checked when I start the UI. The start text scrolls. Then I sent the command and receive the acknowledge message. But no data appears in either the bug window or in Excel.

What do you want/need to see? What do you suspect I have missed?