<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Exchanging data between tasks]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">I’m wondering if there’s a way to exchange data asynchronously between tasks. Specifically, I have two tasks: one running faster and another running significantly slower. The slower task performs a computational process that varies in execution time within known rough limits, which is why I’ve set its period slightly oversized.</p>
<p dir="auto">My goal is to pass the results from the slower task back to the faster task as soon as the computation is complete, rather than waiting for the next cycle of the slower task.</p>
<p dir="auto">Is there a recommended approach for achieving this?</p>
<p dir="auto">Thanks,<br />
Stepan</p>
]]></description><link>https://forum.rexygen.com/topic/596/exchanging-data-between-tasks</link><generator>RSS for Node</generator><lastBuildDate>Tue, 09 Jun 2026 18:42:57 GMT</lastBuildDate><atom:link href="https://forum.rexygen.com/topic/596.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Jan 2025 10:47:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exchanging data between tasks on Mon, 17 Feb 2025 07:46:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.rexygen.com/uid/3925">@carvin</a> Hi carvin,</p>
<p dir="auto">thanks for your feedback. I would suggest to use the SRTF function block with some certain subsystem (e.g. "sybsystem_slow") within your fast task.</p>
<p dir="auto">Would that solve your issue?</p>
<p dir="auto">Cheers,<br />
Tomas</p>
]]></description><link>https://forum.rexygen.com/post/1653</link><guid isPermaLink="true">https://forum.rexygen.com/post/1653</guid><dc:creator><![CDATA[cechurat]]></dc:creator><pubDate>Mon, 17 Feb 2025 07:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Exchanging data between tasks on Sat, 15 Feb 2025 03:23:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.rexygen.com/uid/5">@cechurat</a> Hi Tomas,</p>
<p dir="auto">Thanks for replying. With the SRTF block in a fast taks, I try to call a slower task on demand (setting EXDIS: True and manual pulse to EXOSH). This generally works, but the timing is not what we want.<br />
The slower task should be executed at the end of a tick of the fast task right away and not wait for the next tick of the slow task. In other works, we want to start the slow task independent of its ticks and toggled by a manual pulse.</p>
<p dir="auto">I've shared an example project where one can see that the timing is not what we want. In the project open the TRND bock and run MP. We want the time of the top of the rising edge to match the time in the display; neglecting computation time to calculate the time.</p>
<p dir="auto">I hope my intention is clear.<br />
Regards<br />
Carvin</p>
<p dir="auto"><a href="/assets/uploads/files/1739589681507-test_on_demand_running_ca.zip">test_on_demand_running_ca.zip</a></p>
]]></description><link>https://forum.rexygen.com/post/1652</link><guid isPermaLink="true">https://forum.rexygen.com/post/1652</guid><dc:creator><![CDATA[carvin]]></dc:creator><pubDate>Sat, 15 Feb 2025 03:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to Exchanging data between tasks on Tue, 04 Feb 2025 08:32:38 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.rexygen.com/uid/26">@stepan-ozana</a> Hi Stepan,</p>
<p dir="auto">Thank you for your question. It is possible to set the start of task execution as soon as the previous task ends. More details in TASK documentation: <a href="https://www.rexygen.com/doc/ENGLISH/MANUALS/BRef/TASK.html#x26-250002">https://www.rexygen.com/doc/ENGLISH/MANUALS/BRef/TASK.html#x26-250002</a></p>
<p dir="auto">Information between tasks should be always sent via Inports and Outports if possible (SETPx function blocks can introduce undesired inverse of priorities when sending data between tasks).</p>
<p dir="auto">Second part - "on demand" execution:<br />
Thanks for sharing your solution! It is also possible to use SRTF function block (Set run-time flags):<br />
Doc: <a href="https://www.rexygen.com/doc/ENGLISH/MANUALS/BRef/SRTF.html#x21-200002">https://www.rexygen.com/doc/ENGLISH/MANUALS/BRef/SRTF.html#x21-200002</a></p>
<p dir="auto">If you need any assistance just let me know.</p>
<p dir="auto">Cheers,<br />
Tomas</p>
]]></description><link>https://forum.rexygen.com/post/1651</link><guid isPermaLink="true">https://forum.rexygen.com/post/1651</guid><dc:creator><![CDATA[cechurat]]></dc:creator><pubDate>Tue, 04 Feb 2025 08:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to Exchanging data between tasks on Fri, 31 Jan 2025 10:40:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.rexygen.com/uid/26">@stepan-ozana</a> Regarding "Update - second part of the problem": In the meantime, I conducted a simple test of my idea using CallExt(".Taskname.blockname"), and it seems to work. If anyone is interested, I can share the test results here.</p>
<p dir="auto">.<a href="/assets/uploads/files/1738319497760-test_on_demand_running.zip">test_on_demand_running.zip</a></p>
]]></description><link>https://forum.rexygen.com/post/1648</link><guid isPermaLink="true">https://forum.rexygen.com/post/1648</guid><dc:creator><![CDATA[stepan.ozana]]></dc:creator><pubDate>Fri, 31 Jan 2025 10:40:55 GMT</pubDate></item><item><title><![CDATA[Reply to Exchanging data between tasks on Fri, 31 Jan 2025 09:22:15 GMT]]></title><description><![CDATA[<p dir="auto">Update - second part of the problem : I am also wondering if slower task can be run "on-demand" - asynchrounously, from the faster task. Is there any similar mechanism like for the general blocks inside some tasks that can be halted (marked as red-crossed blocks) and run at specific times using REXLANG with CallExt(".blockname"). Or is it possible to use the entire connection string in CallExt? Such as<br />
CallExt(".Taskname.blockname")?</p>
]]></description><link>https://forum.rexygen.com/post/1647</link><guid isPermaLink="true">https://forum.rexygen.com/post/1647</guid><dc:creator><![CDATA[stepan.ozana]]></dc:creator><pubDate>Fri, 31 Jan 2025 09:22:15 GMT</pubDate></item></channel></rss>