Automation, Control, Data Acquisition, and Remote Applications

Started by phenning at 12-03-2007 6:46 AM. Topic has 1 replies.

Print Search
Sort Posts:    
   12-03-2007, 6:46 AM
phenning is not online. Last active: 12/3/2007 10:44:05 PM phenning

Top 500 Posts
Joined on 12-03-2007
Posts 1
Logging data on EB1 & accecing trhough S-type controller
Using PAG manager i can setup logging on the EB1 brains
- how do i set up logging from the control basic side and make the logs avaliable to the S-typpe controller

   Report 
   12-05-2007, 11:41 AM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Logging data on EB1 & accecing trhough S-type controller
Hello phenning,
In order to have a controller data-logging for you using PACControl you have to do all the work by yourself (all the work but collecting data :) )
There are lots of ways to have a controller logging data, it depends on how much time you want to waste implemente features. Lets try to go for a minimum. Let's try to record values from an Analog input named TT001, one sample per minute.

First you need to create a table, as big as you want/need, make it persistent so it recalls values across power losses (the limit is 512Kb, I believe). Say we call it TT001_log.
Next create a chart that controls the system time, detects when minutes change and when so, records one value. The following OptoScript code does the job (personally I prefer to split the following code in simpler blocks, but it will make it dificult to post an answer).
//loop for ever
while(1)
  // wait until it's time to log a value
  while (nCurMinute<>nLastMinute)
    DelaySec(1); //Give away time to other charts
    // Get current time
    nCurMinute = GetMinutes();
  wend

  // new minute: log value
  ShiftNumTableElements(1,TT001_log);
  TT001_log[0] = TT001;
  // Memorize the time
  nLastMinute=nCurMinute;
wend

Finally, modify your Powerup chart to start the above chart.

NOTE: Notice that new values will always go to element 0 of the logging table. This makes easy to know where the newest value on the table is. As time passes, old values will be "falling up" in the table, the last element in the table will be the oldest logged value. ShiftNumTableElements is an fast way to make room for a value (doing it "manually" with OptoScript code will be more than 10000 times slower).

Of course a lot of improvements can be taken into account but I think this is a good starting point.


   Report 
OptoForums » Application For... » Automation, Con... » Logging data on EB1 & accecing trhough S-type controller

Powered by Community Server, by Telligent Systems