Data logging

Hello people,

I have BL2600 with RCM3200. And I am new to this… Infact new to Dynamic C. I want to store some numbers coming from Analog Input channels and digital IO channels… Anyone care to explain in short… with reference and commands???

Thanks.

If you want to see an example of datalogging with a Rabbit SBC have a look at https://sourceforge.net/projects/bacrabbit/

This project implements BACnet/IP on a BL4S100 board and includes the trend log object for data logging. Using this in conjunction with the BACnet stack at https://sourceforge.net/projects/bacnet/ would give you a means of retrieving the data from the SBC without too much more effort.

I don’t know how much effort it would take to implement it on the BL2600 but I imagine it would not be too much work - I haven’t tried to do anything too exotic or too board specific on the BL4S100 port.

Regards,
Peter

I have a number of applications that do data logging. Essentially you are taking a snapshot of the system status at a certain time. Here is what I use:

struct
{
long inputs;
long outputs;
unsigned int analog[8];
} dataset;

This allows me to store up to 32 inputs, 32 outputs, and 8 analog channels in only 24 bytes. Each input and output is stored as a single bit in the long variable. Analog values are scaled from 0.00 to 1.000 and then multiplied by 65535, and stored as a short int. This gives you 16 bits of resolution for a 12 bit value.

I then create an array of these data sets. Once the array is full, then I transmit the set to a PC, by either serial or TCP/IP.

I use realtime kernel to collect data at a certain rate.

Hope this helps. Regards, David E.