Etienne, like so often you are absolutely right with your analysis oft he Situation : ) Indeed these are very valuable features.
In plc4x there exists a compontent called the "Scraper" (which I wrote initially) and which was extended to a "TriggeredScraper" by @Tim Mitsch which does exactly that. Watch a bit or a condition and only fetch data, when this condition changes. In fact we want (since months) integrate our in-house developed Engine for these Tasks, CRUNCH as a PLC4X Subproject to push this even further (see here for CRUNCH https://github.com/pragmaticminds/crunch). I guess it helps you to take a look at both resoures! Julian Am 17.04.20, 09:21 schrieb "Etienne Robinet" <[email protected]>: Hi everyone, As the Camel component is now working correctly, I thought about some features we could add on it, based on work I read from a coworker. I would like to know if these would fit inside this project and if so I would be glad to implement them. Trigger & Completion To prevent writing to a PLC that is using data or to fetch a bunch of data that has not changed, we could use Flags (Bits). A transaction will only take place if the Trigger bit is 1, and once it is done, it's set back to 0 and the completion bit to 1 (or Error bit). This way, the PLC is the master of the transaction and can tell when it can be written to or read from. Polling In order to be aware of the change of state of the trigger, we should do a polling on this bit. This way, we only read 1 bit, at an user specified interval, and once the bit is 1, we do the transaction(read/write) Default values If none or not every of these parameters are given, then we could use default values like reading the tags given every 1000ms or so (e.g. for monitoring) Hope this is interesting for you and if so I would start next week. Etienne
