Move tests/project/modbus in exemples.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/beremiz.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="LOCAL://">
+ <TargetType>
+ <Linux/>
+ </TargetType>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="ModbusRequest_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<ModbusRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" Function="16 - Write Multiple Registers" SlaveID="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="ModbusRequest_1"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<ModbusRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" Function="04 - Read Input Registers" SlaveID="0" Start_Address="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="ModbusTCPclient_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<ModbusTCPclient xmlns:xsd="http://www.w3.org/2001/XMLSchema" Remote_Port_Number="1502"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="HoldingRegs"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<MemoryArea xmlns:xsd="http://www.w3.org/2001/XMLSchema" MemoryAreaType="03 - Holding Registers" Nr_of_Channels="1"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="InputRegs"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<MemoryArea xmlns:xsd="http://www.w3.org/2001/XMLSchema" MemoryAreaType="04 - Input Registers"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="ModbusTCPserver_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<ModbusServerNode xmlns:xsd="http://www.w3.org/2001/XMLSchema" Local_Port_Number="1502" Local_IP_Address="127.0.0.1"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/baseconfnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="modbus_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/modbus_0@modbus/confnode.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<ModbusRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/modbus/plc.xml Wed Oct 18 19:36:20 2023 +0200
@@ -0,0 +1,314 @@
+<?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="Beremiz" productName="Beremiz" productVersion="1" creationDateTime="2018-07-27T13:19:12"/>
+ <contentHeader name="Modbus" modificationDateTime="2018-07-27T15:43:56">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="0" y="0"/>
+ </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="Counter">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="CounterReadBack">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </localVars>
+ <localVars>
+ <variable name="MasterWriteToReg0" address="%QW0.0.0.0">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="MasterReadFromReg1" address="%IW0.0.1.0">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="SlaveHoldReg0" address="%IW0.1.0.0">
+ <type>
+ <WORD/>
+ </type>
+ </variable>
+ <variable name="SlaveInputReg0" address="%QW0.1.1.0">
+ <type>
+ <WORD/>
+ </type>
+ </variable>
+ </localVars>
+ <localVars>
+ <variable name="CTU0">
+ <type>
+ <derived name="CTU"/>
+ </type>
+ </variable>
+ <variable name="Generator0">
+ <type>
+ <derived name="Generator"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <comment localId="4" height="109" width="350">
+ <position x="102" y="438"/>
+ <content>
+ <xhtml:p><![CDATA[Modbus TCP Master writes counter value to one holding register on Modbus TCP Slave and reads it back from other input register.]]></xhtml:p>
+ </content>
+ </comment>
+ <comment localId="3" height="407" width="680">
+ <position x="21" y="15"/>
+ <content>
+ <xhtml:p><![CDATA[This examples shows how to work with Modbus extension. It uses Modbus TCP, but the same functions are available for Modbus RTU as well. Buth protocols are supported.
+
+Modbus extensions requires native Modbus RTU/TCP library to be installed nearby Beremiz.
+Following directory structure is expected:
+<Parent directory>
+ "beremiz"
+ "Modbus"
+
+If Modbus library is installed elsewhere, then place corresponding paths
+in CFLAGS/LDFLAGS in project settings.
+
+For GNU/Linux to install Modbus library in parent directory run following commands:
+$ hg clone https://bitbucket.org/mjsousa/modbus Modbus
+$ cd Modbus
+$ make
+
+After that Modbus extension is ready to be used in Beremiz projects.]]></xhtml:p>
+ </content>
+ </comment>
+ <block localId="5" typeName="CTU" instanceName="CTU0" executionOrderId="0" height="80" width="52">
+ <position x="346" y="605"/>
+ <inputVariables>
+ <variable formalParameter="CU" edge="rising">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="6" formalParameter="OUT">
+ <position x="346" y="635"/>
+ <position x="303" y="635"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="R">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="PV">
+ <connectionPointIn>
+ <relPosition x="0" y="70"/>
+ <connection refLocalId="7">
+ <position x="346" y="675"/>
+ <position x="324" y="675"/>
+ <position x="324" y="703"/>
+ <position x="302" y="703"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q">
+ <connectionPointOut>
+ <relPosition x="52" y="30"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="CV">
+ <connectionPointOut>
+ <relPosition x="52" y="50"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="6" typeName="Generator" instanceName="Generator0" executionOrderId="0" height="60" width="79">
+ <position x="224" y="605"/>
+ <inputVariables>
+ <variable formalParameter="PON">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="1">
+ <position x="224" y="635"/>
+ <position x="154" y="635"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="POFF">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="1">
+ <position x="224" y="655"/>
+ <position x="189" y="655"/>
+ <position x="189" y="635"/>
+ <position x="154" y="635"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="79" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="1" executionOrderId="0" height="30" width="138" negated="false">
+ <position x="16" y="620"/>
+ <connectionPointOut>
+ <relPosition x="138" y="15"/>
+ </connectionPointOut>
+ <expression>T#1s</expression>
+ </inVariable>
+ <inVariable localId="7" executionOrderId="0" height="30" width="138" negated="false">
+ <position x="164" y="688"/>
+ <connectionPointOut>
+ <relPosition x="138" y="15"/>
+ </connectionPointOut>
+ <expression>32767</expression>
+ </inVariable>
+ <inOutVariable localId="2" executionOrderId="0" height="30" width="138" negatedOut="false" negatedIn="false">
+ <position x="544" y="640"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="5" formalParameter="CV">
+ <position x="544" y="655"/>
+ <position x="398" y="655"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="138" y="15"/>
+ </connectionPointOut>
+ <expression>Counter</expression>
+ </inOutVariable>
+ <outVariable localId="8" executionOrderId="0" height="30" width="138" negated="false">
+ <position x="762" y="640"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="2">
+ <position x="762" y="655"/>
+ <position x="682" y="655"/>
+ </connection>
+ </connectionPointIn>
+ <expression>MasterWriteToReg0</expression>
+ </outVariable>
+ <inVariable localId="9" executionOrderId="0" height="30" width="152" negated="false">
+ <position x="81" y="747"/>
+ <connectionPointOut>
+ <relPosition x="152" y="15"/>
+ </connectionPointOut>
+ <expression>MasterReadFromReg1</expression>
+ </inVariable>
+ <outVariable localId="10" executionOrderId="0" height="30" width="137" negated="false">
+ <position x="547" y="747"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="9">
+ <position x="547" y="762"/>
+ <position x="233" y="762"/>
+ </connection>
+ </connectionPointIn>
+ <expression>CounterReadBack</expression>
+ </outVariable>
+ <comment localId="11" height="109" width="350">
+ <position x="85" y="825"/>
+ <content>
+ <xhtml:p><![CDATA[Modbus TCP Slave just copies received register value from holding register to input register.]]></xhtml:p>
+ </content>
+ </comment>
+ <inVariable localId="12" executionOrderId="0" height="30" width="152" negated="false">
+ <position x="82" y="970"/>
+ <connectionPointOut>
+ <relPosition x="152" y="15"/>
+ </connectionPointOut>
+ <expression>SlaveHoldReg0</expression>
+ </inVariable>
+ <outVariable localId="13" executionOrderId="0" height="30" width="123" negated="false">
+ <position x="548" y="970"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="12">
+ <position x="548" y="985"/>
+ <position x="234" y="985"/>
+ </connection>
+ </connectionPointIn>
+ <expression>SlaveInputReg0</expression>
+ </outVariable>
+ </FBD>
+ </body>
+ </pou>
+ <pou name="Generator" pouType="functionBlock">
+ <interface>
+ <outputVars>
+ <variable name="OUT">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ </outputVars>
+ <inputVars>
+ <variable name="PON">
+ <type>
+ <TIME/>
+ </type>
+ </variable>
+ <variable name="POFF">
+ <type>
+ <TIME/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="T1">
+ <type>
+ <derived name="TON"/>
+ </type>
+ </variable>
+ <variable name="T2">
+ <type>
+ <derived name="TOF"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <ST>
+ <xhtml:p><![CDATA[T1( IN := NOT T2.Q, PT := POFF);
+T2( IN := T1.Q, PT := PON);
+OUT := T2.Q;]]></xhtml:p>
+ </ST>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="program0"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- a/tests/projects/modbus/beremiz.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="LOCAL://">
- <TargetType>
- <Linux/>
- </TargetType>
-</BeremizRoot>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="ModbusRequest_0"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<ModbusRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" Function="16 - Write Multiple Registers" SlaveID="0"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="ModbusRequest_1"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<ModbusRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" Function="04 - Read Input Registers" SlaveID="0" Start_Address="0"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="ModbusTCPclient_0"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<ModbusTCPclient xmlns:xsd="http://www.w3.org/2001/XMLSchema" Remote_Port_Number="1502"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="HoldingRegs"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<MemoryArea xmlns:xsd="http://www.w3.org/2001/XMLSchema" MemoryAreaType="03 - Holding Registers" Nr_of_Channels="1"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="InputRegs"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<MemoryArea xmlns:xsd="http://www.w3.org/2001/XMLSchema" MemoryAreaType="04 - Input Registers"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="ModbusTCPserver_0"/>
--- a/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<ModbusServerNode xmlns:xsd="http://www.w3.org/2001/XMLSchema" Local_Port_Number="1502" Local_IP_Address="127.0.0.1"/>
--- a/tests/projects/modbus/modbus_0@modbus/baseconfnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="modbus_0"/>
--- a/tests/projects/modbus/modbus_0@modbus/confnode.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<ModbusRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
--- a/tests/projects/modbus/plc.xml Wed Oct 18 19:28:35 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-<?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="Beremiz" productName="Beremiz" productVersion="1" creationDateTime="2018-07-27T13:19:12"/>
- <contentHeader name="Modbus" modificationDateTime="2018-07-27T15:43:56">
- <coordinateInfo>
- <fbd>
- <scaling x="0" y="0"/>
- </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="Counter">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="CounterReadBack">
- <type>
- <INT/>
- </type>
- </variable>
- </localVars>
- <localVars>
- <variable name="MasterWriteToReg0" address="%QW0.0.0.0">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="MasterReadFromReg1" address="%IW0.0.1.0">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="SlaveHoldReg0" address="%IW0.1.0.0">
- <type>
- <WORD/>
- </type>
- </variable>
- <variable name="SlaveInputReg0" address="%QW0.1.1.0">
- <type>
- <WORD/>
- </type>
- </variable>
- </localVars>
- <localVars>
- <variable name="CTU0">
- <type>
- <derived name="CTU"/>
- </type>
- </variable>
- <variable name="Generator0">
- <type>
- <derived name="Generator"/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <FBD>
- <comment localId="4" height="109" width="350">
- <position x="102" y="438"/>
- <content>
- <xhtml:p><![CDATA[Modbus TCP Master writes counter value to one holding register on Modbus TCP Slave and reads it back from other input register.]]></xhtml:p>
- </content>
- </comment>
- <comment localId="3" height="407" width="680">
- <position x="21" y="15"/>
- <content>
- <xhtml:p><![CDATA[This examples shows how to work with Modbus extension. It uses Modbus TCP, but the same functions are available for Modbus RTU as well. Buth protocols are supported.
-
-Modbus extensions requires native Modbus RTU/TCP library to be installed nearby Beremiz.
-Following directory structure is expected:
-<Parent directory>
- "beremiz"
- "Modbus"
-
-If Modbus library is installed elsewhere, then place corresponding paths
-in CFLAGS/LDFLAGS in project settings.
-
-For GNU/Linux to install Modbus library in parent directory run following commands:
-$ hg clone https://bitbucket.org/mjsousa/modbus Modbus
-$ cd Modbus
-$ make
-
-After that Modbus extension is ready to be used in Beremiz projects.]]></xhtml:p>
- </content>
- </comment>
- <block localId="5" typeName="CTU" instanceName="CTU0" executionOrderId="0" height="80" width="52">
- <position x="346" y="605"/>
- <inputVariables>
- <variable formalParameter="CU" edge="rising">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="6" formalParameter="OUT">
- <position x="346" y="635"/>
- <position x="303" y="635"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="R">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- </connectionPointIn>
- </variable>
- <variable formalParameter="PV">
- <connectionPointIn>
- <relPosition x="0" y="70"/>
- <connection refLocalId="7">
- <position x="346" y="675"/>
- <position x="324" y="675"/>
- <position x="324" y="703"/>
- <position x="302" y="703"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="Q">
- <connectionPointOut>
- <relPosition x="52" y="30"/>
- </connectionPointOut>
- </variable>
- <variable formalParameter="CV">
- <connectionPointOut>
- <relPosition x="52" y="50"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <block localId="6" typeName="Generator" instanceName="Generator0" executionOrderId="0" height="60" width="79">
- <position x="224" y="605"/>
- <inputVariables>
- <variable formalParameter="PON">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="1">
- <position x="224" y="635"/>
- <position x="154" y="635"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="POFF">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="1">
- <position x="224" y="655"/>
- <position x="189" y="655"/>
- <position x="189" y="635"/>
- <position x="154" y="635"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="79" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="1" executionOrderId="0" height="30" width="138" negated="false">
- <position x="16" y="620"/>
- <connectionPointOut>
- <relPosition x="138" y="15"/>
- </connectionPointOut>
- <expression>T#1s</expression>
- </inVariable>
- <inVariable localId="7" executionOrderId="0" height="30" width="138" negated="false">
- <position x="164" y="688"/>
- <connectionPointOut>
- <relPosition x="138" y="15"/>
- </connectionPointOut>
- <expression>32767</expression>
- </inVariable>
- <inOutVariable localId="2" executionOrderId="0" height="30" width="138" negatedOut="false" negatedIn="false">
- <position x="544" y="640"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="5" formalParameter="CV">
- <position x="544" y="655"/>
- <position x="398" y="655"/>
- </connection>
- </connectionPointIn>
- <connectionPointOut>
- <relPosition x="138" y="15"/>
- </connectionPointOut>
- <expression>Counter</expression>
- </inOutVariable>
- <outVariable localId="8" executionOrderId="0" height="30" width="138" negated="false">
- <position x="762" y="640"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="2">
- <position x="762" y="655"/>
- <position x="682" y="655"/>
- </connection>
- </connectionPointIn>
- <expression>MasterWriteToReg0</expression>
- </outVariable>
- <inVariable localId="9" executionOrderId="0" height="30" width="152" negated="false">
- <position x="81" y="747"/>
- <connectionPointOut>
- <relPosition x="152" y="15"/>
- </connectionPointOut>
- <expression>MasterReadFromReg1</expression>
- </inVariable>
- <outVariable localId="10" executionOrderId="0" height="30" width="137" negated="false">
- <position x="547" y="747"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="9">
- <position x="547" y="762"/>
- <position x="233" y="762"/>
- </connection>
- </connectionPointIn>
- <expression>CounterReadBack</expression>
- </outVariable>
- <comment localId="11" height="109" width="350">
- <position x="85" y="825"/>
- <content>
- <xhtml:p><![CDATA[Modbus TCP Slave just copies received register value from holding register to input register.]]></xhtml:p>
- </content>
- </comment>
- <inVariable localId="12" executionOrderId="0" height="30" width="152" negated="false">
- <position x="82" y="970"/>
- <connectionPointOut>
- <relPosition x="152" y="15"/>
- </connectionPointOut>
- <expression>SlaveHoldReg0</expression>
- </inVariable>
- <outVariable localId="13" executionOrderId="0" height="30" width="123" negated="false">
- <position x="548" y="970"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="12">
- <position x="548" y="985"/>
- <position x="234" y="985"/>
- </connection>
- </connectionPointIn>
- <expression>SlaveInputReg0</expression>
- </outVariable>
- </FBD>
- </body>
- </pou>
- <pou name="Generator" pouType="functionBlock">
- <interface>
- <outputVars>
- <variable name="OUT">
- <type>
- <BOOL/>
- </type>
- </variable>
- </outputVars>
- <inputVars>
- <variable name="PON">
- <type>
- <TIME/>
- </type>
- </variable>
- <variable name="POFF">
- <type>
- <TIME/>
- </type>
- </variable>
- </inputVars>
- <localVars>
- <variable name="T1">
- <type>
- <derived name="TON"/>
- </type>
- </variable>
- <variable name="T2">
- <type>
- <derived name="TOF"/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <ST>
- <xhtml:p><![CDATA[T1( IN := NOT T2.Q, PT := POFF);
-T2( IN := T1.Q, PT := PON);
-OUT := T2.Q;]]></xhtml:p>
- </ST>
- </body>
- </pou>
- </pous>
- </types>
- <instances>
- <configurations>
- <configuration name="config">
- <resource name="resource1">
- <task name="task0" priority="0" interval="T#20ms">
- <pouInstance name="instance0" typeName="program0"/>
- </task>
- </resource>
- </configuration>
- </configurations>
- </instances>
-</project>