Modbus: allows modbus thread stack size customization with MODBUS_STACK_SIZE macro.
For example, add "-DMODBUS_STACK_SIZE=0x2000" to target CFLAGS to limit stack size to 128kB
<?xml version='1.0' encoding='utf-8'?>
<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
<fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2022-07-16T10:46:25"/>
<contentHeader name="Unnamed" modificationDateTime="2022-07-16T22:47:46">
<coordinateInfo>
<fbd>
<scaling x="5" y="5"/>
</fbd>
<ld>
<scaling x="0" y="0"/>
</ld>
<sfc>
<scaling x="0" y="0"/>
</sfc>
</coordinateInfo>
</contentHeader>
<types>
<dataTypes/>
<pous>
<pou name="program0" pouType="program">
<interface>
<localVars>
<variable name="LocalVar0" address="%IL0.0">
<type>
<LREAL/>
</type>
</variable>
<variable name="LocalVar1" address="%QL0.0">
<type>
<LREAL/>
</type>
</variable>
</localVars>
<localVars>
<variable name="python_poll0">
<type>
<derived name="python_poll"/>
</type>
</variable>
</localVars>
</interface>
<body>
<FBD>
<inVariable localId="1" executionOrderId="0" height="25" width="85" negated="false">
<position x="160" y="190"/>
<connectionPointOut>
<relPosition x="85" y="10"/>
</connectionPointOut>
<expression>LocalVar0</expression>
</inVariable>
<outVariable localId="2" executionOrderId="0" height="24" width="82" negated="false">
<position x="238" y="49"/>
<connectionPointIn>
<relPosition x="0" y="11"/>
<connection refLocalId="9">
<position x="238" y="60"/>
<position x="204" y="60"/>
</connection>
</connectionPointIn>
<expression>LocalVar1</expression>
</outVariable>
<block localId="4" typeName="python_poll" instanceName="python_poll0" executionOrderId="0" height="60" width="98">
<position x="658" y="101"/>
<inputVariables>
<variable formalParameter="TRIG">
<connectionPointIn>
<relPosition x="0" y="29"/>
<connection refLocalId="7">
<position x="658" y="130"/>
<position x="623" y="130"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="CODE">
<connectionPointIn>
<relPosition x="0" y="49"/>
<connection refLocalId="6" formalParameter="OUT">
<position x="658" y="150"/>
<position x="560" y="150"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="ACK">
<connectionPointOut>
<relPosition x="98" y="29"/>
</connectionPointOut>
</variable>
<variable formalParameter="RESULT">
<connectionPointOut>
<relPosition x="98" y="49"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="5" typeName="LREAL_TO_STRING" executionOrderId="0" height="40" width="130">
<position x="280" y="170"/>
<inputVariables>
<variable formalParameter="IN">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="1">
<position x="280" y="200"/>
<position x="255" y="200"/>
<position x="255" y="200"/>
<position x="300" y="200"/>
<position x="300" y="200"/>
<position x="245" y="200"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="130" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="6" typeName="CONCAT" executionOrderId="0" height="165" width="63">
<position x="497" y="108"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="42"/>
<connection refLocalId="3">
<position x="497" y="150"/>
<position x="330" y="150"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="92"/>
<connection refLocalId="5" formalParameter="OUT">
<position x="497" y="200"/>
<position x="410" y="200"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN3">
<connectionPointIn>
<relPosition x="0" y="142"/>
<connection refLocalId="8">
<position x="497" y="250"/>
<position x="225" y="250"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="63" y="42"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="7" executionOrderId="0" height="24" width="44" negated="false">
<position x="579" y="116"/>
<connectionPointOut>
<relPosition x="44" y="14"/>
</connectionPointOut>
<expression>TRUE</expression>
</inVariable>
<inVariable localId="3" executionOrderId="0" height="25" width="180" negated="false">
<position x="160" y="140"/>
<connectionPointOut>
<relPosition x="180" y="10"/>
</connectionPointOut>
<expression>'pfunc("'</expression>
</inVariable>
<inVariable localId="8" executionOrderId="0" height="25" width="230" negated="false">
<position x="165" y="240"/>
<connectionPointOut>
<relPosition x="230" y="10"/>
</connectionPointOut>
<expression>'\n")'</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="29" width="45" negated="false">
<position x="159" y="47"/>
<connectionPointOut>
<relPosition x="45" y="13"/>
</connectionPointOut>
<expression>3.4</expression>
</inVariable>
</FBD>
</body>
</pou>
</pous>
</types>
<instances>
<configurations>
<configuration name="config">
<resource name="resource1">
<task name="task0" priority="0" interval="T#100ms">
<pouInstance name="instance0" typeName="program0"/>
</task>
</resource>
</configuration>
</configurations>
</instances>
</project>