codesys3 data logger

pguerra
2018-10-27
2023-02-01
  • pguerra - 2018-10-27

    I am trying to create a codesys3 data logger, any recommendations?
    The library AC_DataLog may be useful but can't find how to use it examples.
    still struggling importing OSCAT Network library 1.2.1.1. I have it in the library manager but the compiler doesn't allow me to use it yet. I can see the data type ex "DLOG_DATA" in the library but shows, as not defined when I try to, used it.

     
  • dFx

    dFx - 2018-10-31

    Actually, to datalog, I use a simple FIFO in a huge array of whatever. (usually one or more value and a timestamp in a structure).

    If the datalog has to be huge, you may save CPU time using rotating start/end index instead of moving data.

     
  • hermsen

    hermsen - 2018-10-31

    I am also very interested in a generic datalogging solution!
    A store and forward combined with an RTC generated timestamp (of that old event) in combination with OPC UA is prefered.

     
  • eschwellinger

    eschwellinger - 2018-11-04

    Hi,
    this should point you in the right direction I guess:
    https://help.codesys.com/webapp/ac_dlm_ ... n=3.5.13.0
    For using the AC-data logger no extra license is needed.
    You could choose to log into an csv file or sqlite db.

    BR
    Edwin

     
    👍
    1
  • mos89@yahoo.com - 2019-07-09

    hi i am interested by the datalog functions too,
    but i do not understand how to add my logging variables

     
  • paradox - 2019-07-10

    I marked variable by {ac_datalog[:=DataLogChannel]}, but this didn't work. Has anyone have example how to use AC_DataLog?

     
  • eschwellinger

    eschwellinger - 2019-07-10

    Hi,

    attached an example project:

    PROGRAM PLC_PRG
    VAR
        timer : Standard.TON;
        {attribute 'ac_datalog_hysteresis' := '1.745'}
        {attribute 'ac_datalog' := 'DataLogChannel'}
        iLogVar : INT;
        {attribute 'ac_datalog' := 'DataLogChannel'}
        rLogVar : REAL;
        {attribute 'ac_datalog' := 'DataLogChannel'}
        {attribute 'ac_datalog_hysteresis' := '0.745'}
        sLogVar : STRING := 'Hallo';
        //{attribute 'ac_datalog' := 'DataLogChannel'}
        arLogArray : ARRAY[0..4] OF REAL;
        
        {attribute 'ac_datalog_set_default_group' := 'DataLogChannel'}
        instStruct : LogStruct;
        
        {attribute 'ac_datalog_union_set_representant' := 'uiLog'}
        {attribute 'ac_datalog' := 'DataLogChannel_1'}
        instUnion : LogUnion;
        {attribute 'ac_datalog' := 'DataLogChannel_1'}
        {attribute 'ac_persist' := 'PersistenceChannel'}
        instFB : POU_Log;    
        
        {attribute 'ac_datalog' := 'DataLogChannel_1'}
        iLogVar2 : INT;
    END_VAR
    
    timer(IN := TRUE, PT:=T#5S);
    IF timer.Q THEN
        iLogVar := iLogVar + 1;
        iLogVar2 := iLogVar;
        timer(IN := FALSE);
        rLogVar := arLogArray[2];
        instStruct.bLog := instStruct.bNoLog;
        instFB.Prop_Log := instFB.Prop_Log + 1;
    END_IF
    

    Keep in mind that extensive cyclic data writings will kill your storage device ( so handle with care what and where to save these data)

    Cheers
    Edwin

    IMG: DataLogger.png

    LogGenTestSP14.project [261.21 KiB]

     
    👍
    1

    Related

    Talk.ru: 2

  • hermsen

    hermsen - 2019-07-10

    Nice,

    The attached project works like a charm. Thanks!!

    This brings ups some questions;
    Can the PLC itself now visualise the stored Sqlite db / CSV information? So showing the contents of the db/csv in a trend or trace by design with a local history
    Ideally the PLC pushes the stored information after some trigger to a "consumer". Is there a way to facilitate this?
    If not, any other ideas on achieving such a scenario are very welcome!

    I would like to hear any thoughts on this, as the example shows how to save the data in a neat way but it does not show how to retrieve or send it.

     
    👍
    1
  • mos89@yahoo.com - 2019-07-11

    is this datalogger can be used for 100ms data log ?

     
  • RoryLDM - 2020-02-05

    Thanks for the info on the Data logger. I've got it working great.

    I do have 1 question, is it possible to have the data logger log someplace else? Like have it save it to a usb drive instead of PlcPrg?

     
  • pruwetbe - 2020-10-03

    Hello All,
    Thanks to the project example LogGenTestSP14.project given by Edwin here before, i could modify my project to make AC_datalog beginning to work.
    But i still have problem so i try to compile and make running the example application on my computer without success
    i cannot even compile it without error .
    I am running under V3.5 SP16 patch1. I got some AC_persistence message error.
    I think i got similar trouble when i tried to compile HVAC example program showing HVAC library and developped using AC.
    Thanks for any feedback

     
  • blitz - 2021-03-02

    @eschwellinger Thanks for the great example. I think we are all interested in whether it is possible to log data using the "DataLogManager" module on an external memory such as USB / SD? It would be great if you could answer if there is such a possibility, and if so, please tell us how to set "DataLogManager" to write to external memory

     
  • Technical - 2022-03-14

    Hello. I need to write to an external memory too (USB or SD).
    It there a way to do that by using AC_Datalog?

     
  • marcomontemurro - 2023-02-01

    Hello... I'm trying to make a datalog s&f in the plc... So it have to be a fifo type... Any suggestions?
    Thanks in advance...

     

Log in to post a comment.