Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » 4DIAC - Framework for Distributed Industrial Automation and Control » Does monitoring has a buffer to store monitored data?(Does monitoring has a buffer to store monitored data?)
Does monitoring has a buffer to store monitored data? [message #1801280] Wed, 16 January 2019 06:58 Go to next message
Xu Chen is currently offline Xu ChenFriend
Messages: 13
Registered: June 2018
Junior Member
As my investigation, 4DIAC IDE will send message(INFO: T#054768ms: <Request ID="2" Action="READ"><Watches/></Request>) to forte to get watched information. Is there a buffer in forte to store history watched data so that there will be no data lose?
Re: Does monitoring has a buffer to store monitored data? [message #1801294 is a reply to message #1801280] Wed, 16 January 2019 09:19 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 868
Registered: January 2014
Senior Member
No currently you only get the most recent value. If you need more accurate data maybe the CVS_WRITER function block could be interesting for you. This FB writes on each REQ even a line into a CVS file.
Re: Does monitoring has a buffer to store monitored data? [message #1801384 is a reply to message #1801294] Fri, 18 January 2019 02:36 Go to previous messageGo to next message
Xu Chen is currently offline Xu ChenFriend
Messages: 13
Registered: June 2018
Junior Member
Thanks

Where is the CVS_WRITER function block? I don't find the definition in forte and IDE.
Actually, I want to log the real time monitoring event and data.
Re: Does monitoring has a buffer to store monitored data? [message #1801393 is a reply to message #1801384] Fri, 18 January 2019 08:34 Go to previous messageGo to next message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 868
Registered: January 2014
Senior Member
Oh sorry I mixed up the name. The correct name is CSV_WRITER_x and you can find it in the utils directory. Where x is the number of inputs that should be written into a comma separated values file. The file would then be located on your controller.

Monitoring is definitely not suitable for real-time data and was never intended to be used for that.

If you need your real-time data remotely for analytics. This is what several other users of 4diac intend to do then I would recommend to also have a look on our MQTT and OPC UA support.

Cheers,
Alois
Re: Does monitoring has a buffer to store monitored data? [message #1801633 is a reply to message #1801393] Thu, 24 January 2019 03:00 Go to previous messageGo to next message
Xu Chen is currently offline Xu ChenFriend
Messages: 13
Registered: June 2018
Junior Member
I want to log all the real time data of a deployed application. So, I want to develop a feature that can meet the requirement.
1. Define a buffer that can store the real time data
2. Modify the funcbloc.cpp
(1) put the write data to buffer before trigger event(CFunctionBlock::sendOutputEvent)
(2) put the read data to buffer in CFunctionBlock::receiveInputEvent
3. create another thread which I call it consumer thread. It will get the data stored in buffer and send data to remote OPCUA server by integrated OPCUA client

My question is: Is this feature can be merged to our master branch? And is this feature follow our 4DIAC community rules?
Re: Does monitoring has a buffer to store monitored data? [message #1801698 is a reply to message #1801633] Thu, 24 January 2019 20:35 Go to previous message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 868
Registered: January 2014
Senior Member
Hi,

thanks for the clarification. You know that this feature will require, depending on the size of your application quite some memory and will have quite some performance impact?

We are open source and the Eclipse Public License allows to modify and extend the source we are providing. You can even distribute the changes. However you should be aware if you are modifying code that we are providing you need to make these changes available again. At least this is my understanding of the Eclipse Public License. You may want to check your self and consult lawyers to be on the save side.

Maybe a further comment on doing such changes: I would try to do them in such a way that you can easily update to newer 4diac FORTE versions. Therefore maybe funcbloc.cpp is not the best place for your changes. With 4diac 1.10.0 Jose introduced a feature which allows to easily replace the default CEventChainExectutionThread class. As this is the class sending events to a FB it would be a good place for doing something what you intend and at the same time have minimal changes to FORTE. An example of a different CEventChainExecutionThread implementation can be found in FMU.

I hope this helps and answers you questions,
Alois
Previous Topic:Connection closed by peer
Next Topic:Debugging view Force doesn't work on master branch
Goto Forum:
  


Current Time: Sat Aug 24 18:30:11 GMT 2019

Powered by FUDForum. Page generated in 0.02374 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top