TESTS: moved non-automated tests Beremiz projects stored as directories in /tests to new directory /tests/projects
--- a/tests/BACnet/bacnet_0@bacnet/bacnet_slave Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-(dp0
-S'BV_Obj'
-p1
-(lp2
-sS'AV_Obj'
-p3
-(lp4
-(dp5
-S'loc'
-p6
-S'MD0_2'
-p7
-sS'Description'
-p8
-S''
-p9
-sS'Unit ID'
-p10
-I19
-sS'Object Identifier'
-p11
-I0
-sS'Ctype'
-p12
-S'float'
-p13
-sS'BACnetObjTypeID'
-p14
-I2
-sS'Settable'
-p15
-S'Y'
-p16
-sS'Engineering Units'
-p17
-V(Energy) kilowatt-hours (19)
-p18
-sS'Object Name'
-p19
-VEnergyCounter
-p20
-sasS'AO_Obj'
-p21
-(lp22
-(dp23
-g6
-S'QD0_1'
-p24
-sg8
-V
-p25
-sS'Unit ID'
-p26
-I62
-sS'Object Identifier'
-p27
-V0
-p28
-sg12
-g13
-sg14
-I1
-sg15
-g16
-sS'Object Name'
-p29
-VTemperatureSetPoint
-p30
-sS'Engineering Units'
-p31
-V(Temperature) degrees-celsius (62)
-p32
-sasS'MSI_Obj'
-p33
-(lp34
-sS'BO_Obj'
-p35
-(lp36
-(dp37
-g6
-S'QX0_4'
-p38
-sg8
-g9
-sS'Object Identifier'
-p39
-I2
-sg12
-S'uint8_t'
-p40
-sg14
-I4
-sg15
-g16
-sS'Object Name'
-p41
-VBlockClimateControl
-p42
-sasS'MSO_Obj'
-p43
-(lp44
-sS'EDEfile_parm'
-p45
-(dp46
-S'next_EDE_file_version'
-p47
-I1
-ssS'BI_Obj'
-p48
-(lp49
-(dp50
-g6
-S'IX0_3'
-p51
-sg8
-g9
-sS'Object Identifier'
-p52
-I0
-sg12
-g40
-sg14
-I3
-sg15
-S'N'
-p53
-sS'Object Name'
-p54
-VHeater
-p55
-sa(dp56
-g6
-g51
-sg8
-g9
-sg52
-I1
-sg12
-g40
-sg14
-I3
-sg15
-g53
-sg54
-VCooler
-p57
-sasS'AI_Obj'
-p58
-(lp59
-(dp60
-g6
-S'ID0_0'
-p61
-sg8
-VCurrent termperature in Beremiz lab
-p62
-sS'Unit ID'
-p63
-I62
-sS'Object Identifier'
-p64
-I0
-sg12
-g13
-sg14
-I0
-sg15
-g53
-sS'Engineering Units'
-p65
-V(Temperature) degrees-celsius (62)
-p66
-sS'Object Name'
-p67
-VTemperature
-p68
-sa(dp69
-g6
-g61
-sg8
-VCurrent humidity in Beremiz lab
-p70
-sg63
-I29
-sg64
-I1
-sg12
-g13
-sg14
-I0
-sg15
-g53
-sg67
-VHumidity
-p71
-sg65
-V(Humidity) percent-relative-humidity (29)
-p72
-sasS'MSV_Obj'
-p73
-(lp74
-s.
\ No newline at end of file
--- a/tests/BACnet/bacnet_0@bacnet/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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="bacnet_0"/>
--- a/tests/BACnet/bacnet_0@bacnet/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BACnetServerNode xmlns:xsd="http://www.w3.org/2001/XMLSchema" UDP_Port_Number="47808" BACnet_Device_ID="3" BACnet_Communication_Control_Password=" " BACnet_Device_Location="Beremiz lab" Network_Interface="virbr0"/>
--- a/tests/BACnet/beremiz.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="LOCAL://">
- <TargetType/>
-</BeremizRoot>
--- a/tests/BACnet/plc.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,601 +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="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2018-07-28T02:24:08"/>
- <contentHeader name="BACnet" modificationDateTime="2018-09-26T14:00:21">
- <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="EnergyCounter" address="%MD0.2.0">
- <type>
- <REAL/>
- </type>
- </variable>
- <variable name="Temperature" address="%ID0.0.0">
- <type>
- <REAL/>
- </type>
- </variable>
- <variable name="Humidity" address="%ID0.0.1">
- <type>
- <REAL/>
- </type>
- </variable>
- </localVars>
- <localVars>
- <variable name="TempSimulation">
- <type>
- <derived name="Simulator"/>
- </type>
- </variable>
- <variable name="HumiditySimulation">
- <type>
- <derived name="Simulator"/>
- </type>
- </variable>
- </localVars>
- <localVars>
- <variable name="TemperatureSetPoint" address="%QD0.1.0">
- <type>
- <REAL/>
- </type>
- </variable>
- <variable name="ControlDisable" address="%QX0.4.2">
- <type>
- <BOOL/>
- </type>
- </variable>
- <variable name="Heater" address="%IX0.3.0">
- <type>
- <BOOL/>
- </type>
- </variable>
- <variable name="Cooler" address="%IX0.3.1">
- <type>
- <BOOL/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <FBD>
- <inVariable localId="1" executionOrderId="0" height="30" width="114" negated="false">
- <position x="299" y="521"/>
- <connectionPointOut>
- <relPosition x="114" y="15"/>
- </connectionPointOut>
- <expression>EnergyCounter</expression>
- </inVariable>
- <outVariable localId="2" executionOrderId="0" height="30" width="114" negated="false">
- <position x="654" y="521"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="3" formalParameter="OUT">
- <position x="654" y="536"/>
- <position x="533" y="536"/>
- </connection>
- </connectionPointIn>
- <expression>EnergyCounter</expression>
- </outVariable>
- <block localId="3" typeName="ADD" executionOrderId="0" height="60" width="67">
- <position x="466" y="506"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="1">
- <position x="466" y="536"/>
- <position x="404" y="536"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="4">
- <position x="466" y="556"/>
- <position x="436" y="556"/>
- <position x="436" y="585"/>
- <position x="401" y="585"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="67" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="4" executionOrderId="0" height="30" width="105" negated="false">
- <position x="296" y="570"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>0.00131</expression>
- </inVariable>
- <comment localId="5" height="67" width="229">
- <position x="27" y="525"/>
- <content>
- <xhtml:p><![CDATA[Always consume some energy]]></xhtml:p>
- </content>
- </comment>
- <block localId="6" typeName="Simulator" instanceName="TempSimulation" executionOrderId="0" height="128" width="143">
- <position x="188" y="648"/>
- <inputVariables>
- <variable formalParameter="MinVal">
- <connectionPointIn>
- <relPosition x="0" y="38"/>
- <connection refLocalId="8">
- <position x="188" y="686"/>
- <position x="138" y="686"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="MaxVal">
- <connectionPointIn>
- <relPosition x="0" y="74"/>
- <connection refLocalId="9">
- <position x="188" y="722"/>
- <position x="138" y="722"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="PeriodSeconds">
- <connectionPointIn>
- <relPosition x="0" y="110"/>
- <connection refLocalId="10">
- <position x="188" y="758"/>
- <position x="138" y="758"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="Out">
- <connectionPointOut>
- <relPosition x="143" y="38"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <outVariable localId="7" executionOrderId="0" height="30" width="98" negated="false">
- <position x="421" y="671"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="6" formalParameter="Out">
- <position x="421" y="686"/>
- <position x="331" y="686"/>
- </connection>
- </connectionPointIn>
- <expression>Temperature</expression>
- </outVariable>
- <inVariable localId="8" executionOrderId="0" height="30" width="105" negated="false">
- <position x="33" y="671"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>18.0</expression>
- </inVariable>
- <inVariable localId="9" executionOrderId="0" height="30" width="105" negated="false">
- <position x="33" y="707"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>30.0</expression>
- </inVariable>
- <inVariable localId="10" executionOrderId="0" height="30" width="105" negated="false">
- <position x="33" y="743"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>120</expression>
- </inVariable>
- <block localId="11" typeName="Simulator" instanceName="HumiditySimulation" executionOrderId="0" height="137" width="143">
- <position x="185" y="803"/>
- <inputVariables>
- <variable formalParameter="MinVal">
- <connectionPointIn>
- <relPosition x="0" y="39"/>
- <connection refLocalId="13">
- <position x="185" y="842"/>
- <position x="135" y="842"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="MaxVal">
- <connectionPointIn>
- <relPosition x="0" y="78"/>
- <connection refLocalId="14">
- <position x="185" y="881"/>
- <position x="135" y="881"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="PeriodSeconds">
- <connectionPointIn>
- <relPosition x="0" y="117"/>
- <connection refLocalId="15">
- <position x="185" y="920"/>
- <position x="135" y="920"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="Out">
- <connectionPointOut>
- <relPosition x="143" y="39"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <outVariable localId="12" executionOrderId="0" height="30" width="111" negated="false">
- <position x="418" y="827"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="11" formalParameter="Out">
- <position x="418" y="842"/>
- <position x="328" y="842"/>
- </connection>
- </connectionPointIn>
- <expression>Humidity</expression>
- </outVariable>
- <inVariable localId="13" executionOrderId="0" height="30" width="105" negated="false">
- <position x="30" y="827"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>55.0</expression>
- </inVariable>
- <inVariable localId="14" executionOrderId="0" height="30" width="105" negated="false">
- <position x="30" y="866"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>78.0</expression>
- </inVariable>
- <inVariable localId="15" executionOrderId="0" height="30" width="105" negated="false">
- <position x="30" y="905"/>
- <connectionPointOut>
- <relPosition x="105" y="15"/>
- </connectionPointOut>
- <expression>58</expression>
- </inVariable>
- <block localId="16" typeName="GT" executionOrderId="0" height="60" width="67">
- <position x="231" y="1103"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="18">
- <position x="231" y="1133"/>
- <position x="132" y="1133"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="22">
- <position x="231" y="1153"/>
- <position x="208" y="1153"/>
- <position x="208" y="1169"/>
- <position x="185" y="1169"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="67" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="18" executionOrderId="0" height="30" width="98" negated="false">
- <position x="40" y="1118"/>
- <connectionPointOut>
- <relPosition x="98" y="15"/>
- </connectionPointOut>
- <expression>Temperature</expression>
- </inVariable>
- <block localId="19" typeName="AND" executionOrderId="0" height="60" width="67">
- <position x="347" y="1059"/>
- <inputVariables>
- <variable formalParameter="IN1" negated="true">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="20">
- <position x="347" y="1089"/>
- <position x="263" y="1089"/>
- <position x="263" y="1074"/>
- <position x="145" y="1074"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="16" formalParameter="OUT">
- <position x="347" y="1109"/>
- <position x="337" y="1109"/>
- <position x="337" y="1133"/>
- <position x="298" y="1133"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="67" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="20" executionOrderId="0" height="30" width="122" negated="false">
- <position x="41" y="1059"/>
- <connectionPointOut>
- <relPosition x="122" y="15"/>
- </connectionPointOut>
- <expression>ControlDisable</expression>
- </inVariable>
- <outVariable localId="21" executionOrderId="0" height="30" width="92" negated="false">
- <position x="468" y="1074"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="19" formalParameter="OUT">
- <position x="468" y="1089"/>
- <position x="414" y="1089"/>
- </connection>
- </connectionPointIn>
- <expression>Cooler</expression>
- </outVariable>
- <inVariable localId="22" executionOrderId="0" height="30" width="162" negated="false">
- <position x="39" y="1154"/>
- <connectionPointOut>
- <relPosition x="162" y="15"/>
- </connectionPointOut>
- <expression>TemperatureSetPoint</expression>
- </inVariable>
- <block localId="17" typeName="LT" executionOrderId="0" height="60" width="67">
- <position x="228" y="1278"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="23">
- <position x="228" y="1308"/>
- <position x="129" y="1308"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="27">
- <position x="228" y="1328"/>
- <position x="205" y="1328"/>
- <position x="205" y="1344"/>
- <position x="182" y="1344"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="67" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="23" executionOrderId="0" height="30" width="98" negated="false">
- <position x="37" y="1293"/>
- <connectionPointOut>
- <relPosition x="98" y="15"/>
- </connectionPointOut>
- <expression>Temperature</expression>
- </inVariable>
- <block localId="24" typeName="AND" executionOrderId="0" height="60" width="67">
- <position x="344" y="1234"/>
- <inputVariables>
- <variable formalParameter="IN1" negated="true">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="25">
- <position x="344" y="1264"/>
- <position x="260" y="1264"/>
- <position x="260" y="1249"/>
- <position x="142" y="1249"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="17" formalParameter="OUT">
- <position x="344" y="1284"/>
- <position x="334" y="1284"/>
- <position x="334" y="1308"/>
- <position x="295" y="1308"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="67" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="25" executionOrderId="0" height="30" width="122" negated="false">
- <position x="38" y="1234"/>
- <connectionPointOut>
- <relPosition x="122" y="15"/>
- </connectionPointOut>
- <expression>ControlDisable</expression>
- </inVariable>
- <outVariable localId="26" executionOrderId="0" height="30" width="92" negated="false">
- <position x="465" y="1249"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="24" formalParameter="OUT">
- <position x="465" y="1264"/>
- <position x="411" y="1264"/>
- </connection>
- </connectionPointIn>
- <expression>Heater</expression>
- </outVariable>
- <inVariable localId="27" executionOrderId="0" height="30" width="162" negated="false">
- <position x="36" y="1329"/>
- <connectionPointOut>
- <relPosition x="162" y="15"/>
- </connectionPointOut>
- <expression>TemperatureSetPoint</expression>
- </inVariable>
- <comment localId="28" height="67" width="229">
- <position x="343" y="734"/>
- <content>
- <xhtml:p><![CDATA[Simple sensor simulation]]></xhtml:p>
- </content>
- </comment>
- <comment localId="29" height="67" width="229">
- <position x="37" y="978"/>
- <content>
- <xhtml:p><![CDATA[Climate control]]></xhtml:p>
- </content>
- </comment>
- <comment localId="30" height="464" width="773">
- <position x="14" y="16"/>
- <content>
- <xhtml:p><![CDATA[This examples shows how to work with BACnet extension.
-
-Extensions requires native BACnet stack to be installed nearby Beremiz.
-Following directory structure is expected:
-<Parent directory>
- "beremiz"
- "BACnet"
-
-If library is installed elsewhere, then place corresponding paths
-in CFLAGS/LDFLAGS in project settings.
-
-For GNU/Linux to install BACnet library in parent directory run following commands:
-$ svn checkout https://svn.code.sf.net/p/bacnet/code/trunk/bacnet-stack/ BACnet
-$ cd BACnet
-$ make
-
-After that BACnet extension is ready to be used in Beremiz projects.
-BACnet stack implementation contains a lot of test tools. They could be useful during
-debugging and BACnet investigation. See "BACnet/bin/readme.txt" for more information about them.]]></xhtml:p>
- </content>
- </comment>
- </FBD>
- </body>
- </pou>
- <pou name="Simulator" pouType="functionBlock">
- <interface>
- <outputVars>
- <variable name="Out">
- <type>
- <REAL/>
- </type>
- </variable>
- </outputVars>
- <inputVars>
- <variable name="MinVal">
- <type>
- <REAL/>
- </type>
- </variable>
- <variable name="MaxVal">
- <type>
- <REAL/>
- </type>
- </variable>
- <variable name="PeriodSeconds">
- <type>
- <INT/>
- </type>
- </variable>
- </inputVars>
- <localVars>
- <variable name="TON0">
- <type>
- <derived name="TON"/>
- </type>
- </variable>
- <variable name="seconds">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="BaseVal">
- <type>
- <REAL/>
- </type>
- </variable>
- <variable name="VarVal">
- <type>
- <REAL/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <ST>
- <xhtml:p><![CDATA[(* pseudo-random variations *)
-TON0(IN := TRUE, PT := T#3120s);
-IF TON0.Q THEN
- TON0(IN := FALSE);
-END_IF;
-seconds := TIME_TO_INT(TON0.ET);
-
-BaseVal := (MaxVal + MinVal)/2.0;
-VarVal := (MaxVal-MinVal)*INT_TO_REAL((seconds MOD PeriodSeconds) - (PeriodSeconds/2))/INT_TO_REAL(PeriodSeconds);
-
-Out := BaseVal + VarVal;]]></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/README.md Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Beremiz projects for non-automated testing
-===
-
-This directory contains unsorted projects used as manually executed test while working on particular topics.
-
-
-
--- a/tests/canopen_master/beremiz.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BeremizRoot URI_location="LOCAL://">
- <TargetType/>
-</BeremizRoot>
--- a/tests/canopen_master/canopen@canfestival/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BaseParams Name="canopen" IEC_Channel="0"/>
--- a/tests/canopen_master/canopen@canfestival/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<CanFestivalInstance/>
--- a/tests/canopen_master/canopen@canfestival/master@CanOpenNode/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BaseParams Name="master" IEC_Channel="0"/>
--- a/tests/canopen_master/canopen@canfestival/master@CanOpenNode/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<CanFestivalNode/>
--- a/tests/canopen_master/canopen@canfestival/master@CanOpenNode/eds/Slave_0_0.eds Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1161 +0,0 @@
-[FileInfo]
-FileName=Slave_0_0.eds
-FileVersion=1
-FileRevision=1
-EDSVersion=4.0
-Description=
-CreationTime=06:35PM
-CreationDate=10-07-2009
-CreatedBy=CANFestival
-ModificationTime=06:35PM
-ModificationDate=10-07-2009
-ModifiedBy=CANFestival
-
-[DeviceInfo]
-VendorName=CANFestival
-VendorNumber=0x00000000
-ProductName=OD_0_0
-ProductNumber=0x00000000
-RevisionNumber=0x00000000
-BaudRate_10=1
-BaudRate_20=1
-BaudRate_50=1
-BaudRate_125=1
-BaudRate_250=1
-BaudRate_500=1
-BaudRate_800=1
-BaudRate_1000=1
-SimpleBootUpMaster=0
-SimpleBootUpSlave=1
-Granularity=8
-DynamicChannelsSupported=0
-CompactPDO=0
-GroupMessaging=0
-NrOfRXPDO=4
-NrOfTXPDO=4
-LSS_Supported=0
-
-[DummyUsage]
-Dummy0001=0
-Dummy0002=1
-Dummy0003=1
-Dummy0004=1
-Dummy0005=1
-Dummy0006=1
-Dummy0007=1
-
-[Comments]
-Lines=0
-
-[MandatoryObjects]
-SupportedObjects=3
-1=0x1000
-2=0x1001
-3=0x1018
-
-[1000]
-ParameterName=Device Type
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1001]
-ParameterName=Error Register
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=0
-PDOMapping=1
-
-[1018]
-ParameterName=Identity
-ObjectType=0x8
-SubNumber=5
-
-[1018sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=4
-PDOMapping=0
-
-[1018sub1]
-ParameterName=Vendor ID
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1018sub2]
-ParameterName=Product Code
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1018sub3]
-ParameterName=Revision Number
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1018sub4]
-ParameterName=Serial Number
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[OptionalObjects]
-SupportedObjects=17
-1=0x1200
-2=0x1400
-3=0x1401
-4=0x1402
-5=0x1403
-6=0x1600
-7=0x1601
-8=0x1602
-9=0x1603
-10=0x1800
-11=0x1801
-12=0x1802
-13=0x1803
-14=0x1A00
-15=0x1A01
-16=0x1A02
-17=0x1A03
-
-[1200]
-ParameterName=Server SDO Parameter
-ObjectType=0x8
-SubNumber=3
-
-[1200sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=2
-PDOMapping=0
-
-[1200sub1]
-ParameterName=COB ID Client to Server (Receive SDO)
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=$NODEID+0x600
-PDOMapping=0
-
-[1200sub2]
-ParameterName=COB ID Server to Client (Transmit SDO)
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=$NODEID+0x580
-PDOMapping=0
-
-[1400]
-ParameterName=Receive PDO 1 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1400sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1400sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x200
-PDOMapping=0
-
-[1400sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1400sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1400sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1401]
-ParameterName=Receive PDO 2 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1401sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1401sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x300
-PDOMapping=0
-
-[1401sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1401sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1401sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1402]
-ParameterName=Receive PDO 3 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1402sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1402sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x400
-PDOMapping=0
-
-[1402sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1402sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1402sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1403]
-ParameterName=Receive PDO 4 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1403sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1403sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x500
-PDOMapping=0
-
-[1403sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1403sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1403sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600]
-ParameterName=Receive PDO 1 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1600sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1600sub1]
-ParameterName=PDO 1 Mapping for an application object 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub2]
-ParameterName=PDO 1 Mapping for an application object 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub3]
-ParameterName=PDO 1 Mapping for an application object 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub4]
-ParameterName=PDO 1 Mapping for an application object 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub5]
-ParameterName=PDO 1 Mapping for an application object 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub6]
-ParameterName=PDO 1 Mapping for an application object 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub7]
-ParameterName=PDO 1 Mapping for an application object 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1600sub8]
-ParameterName=PDO 1 Mapping for an application object 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601]
-ParameterName=Receive PDO 2 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1601sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1601sub1]
-ParameterName=PDO 2 Mapping for an application object 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub2]
-ParameterName=PDO 2 Mapping for an application object 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub3]
-ParameterName=PDO 2 Mapping for an application object 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub4]
-ParameterName=PDO 2 Mapping for an application object 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub5]
-ParameterName=PDO 2 Mapping for an application object 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub6]
-ParameterName=PDO 2 Mapping for an application object 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub7]
-ParameterName=PDO 2 Mapping for an application object 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1601sub8]
-ParameterName=PDO 2 Mapping for an application object 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602]
-ParameterName=Receive PDO 3 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1602sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1602sub1]
-ParameterName=PDO 3 Mapping for an application object 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub2]
-ParameterName=PDO 3 Mapping for an application object 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub3]
-ParameterName=PDO 3 Mapping for an application object 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub4]
-ParameterName=PDO 3 Mapping for an application object 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub5]
-ParameterName=PDO 3 Mapping for an application object 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub6]
-ParameterName=PDO 3 Mapping for an application object 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub7]
-ParameterName=PDO 3 Mapping for an application object 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1602sub8]
-ParameterName=PDO 3 Mapping for an application object 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603]
-ParameterName=Receive PDO 4 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1603sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1603sub1]
-ParameterName=PDO 4 Mapping for an application object 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub2]
-ParameterName=PDO 4 Mapping for an application object 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub3]
-ParameterName=PDO 4 Mapping for an application object 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub4]
-ParameterName=PDO 4 Mapping for an application object 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub5]
-ParameterName=PDO 4 Mapping for an application object 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub6]
-ParameterName=PDO 4 Mapping for an application object 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub7]
-ParameterName=PDO 4 Mapping for an application object 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1603sub8]
-ParameterName=PDO 4 Mapping for an application object 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1800]
-ParameterName=Transmit PDO 1 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1800sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1800sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x180
-PDOMapping=0
-
-[1800sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1800sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1800sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1801]
-ParameterName=Transmit PDO 2 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1801sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1801sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x280
-PDOMapping=0
-
-[1801sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1801sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1801sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1802]
-ParameterName=Transmit PDO 3 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1802sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1802sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x380
-PDOMapping=0
-
-[1802sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1802sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1802sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1803]
-ParameterName=Transmit PDO 4 Parameter
-ObjectType=0x8
-SubNumber=5
-
-[1803sub0]
-ParameterName=Highest SubIndex Supported
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=5
-PDOMapping=0
-
-[1803sub1]
-ParameterName=COB ID used by PDO
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=$NODEID+0x480
-PDOMapping=0
-
-[1803sub2]
-ParameterName=Transmission Type
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1803sub3]
-ParameterName=Inhibit Time
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1803sub5]
-ParameterName=Event Timer
-ObjectType=0x7
-DataType=0x0006
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00]
-ParameterName=Transmit PDO 1 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1A00sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1A00sub1]
-ParameterName=PDO 1 Mapping for a process data variable 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub2]
-ParameterName=PDO 1 Mapping for a process data variable 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub3]
-ParameterName=PDO 1 Mapping for a process data variable 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub4]
-ParameterName=PDO 1 Mapping for a process data variable 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub5]
-ParameterName=PDO 1 Mapping for a process data variable 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub6]
-ParameterName=PDO 1 Mapping for a process data variable 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub7]
-ParameterName=PDO 1 Mapping for a process data variable 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A00sub8]
-ParameterName=PDO 1 Mapping for a process data variable 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01]
-ParameterName=Transmit PDO 2 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1A01sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1A01sub1]
-ParameterName=PDO 2 Mapping for a process data variable 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub2]
-ParameterName=PDO 2 Mapping for a process data variable 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub3]
-ParameterName=PDO 2 Mapping for a process data variable 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub4]
-ParameterName=PDO 2 Mapping for a process data variable 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub5]
-ParameterName=PDO 2 Mapping for a process data variable 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub6]
-ParameterName=PDO 2 Mapping for a process data variable 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub7]
-ParameterName=PDO 2 Mapping for a process data variable 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A01sub8]
-ParameterName=PDO 2 Mapping for a process data variable 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02]
-ParameterName=Transmit PDO 3 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1A02sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1A02sub1]
-ParameterName=PDO 3 Mapping for a process data variable 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub2]
-ParameterName=PDO 3 Mapping for a process data variable 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub3]
-ParameterName=PDO 3 Mapping for a process data variable 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub4]
-ParameterName=PDO 3 Mapping for a process data variable 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub5]
-ParameterName=PDO 3 Mapping for a process data variable 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub6]
-ParameterName=PDO 3 Mapping for a process data variable 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub7]
-ParameterName=PDO 3 Mapping for a process data variable 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A02sub8]
-ParameterName=PDO 3 Mapping for a process data variable 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03]
-ParameterName=Transmit PDO 4 Mapping
-ObjectType=0x9
-SubNumber=9
-
-[1A03sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=rw
-DefaultValue=8
-PDOMapping=0
-
-[1A03sub1]
-ParameterName=PDO 4 Mapping for a process data variable 1
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub2]
-ParameterName=PDO 4 Mapping for a process data variable 2
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub3]
-ParameterName=PDO 4 Mapping for a process data variable 3
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub4]
-ParameterName=PDO 4 Mapping for a process data variable 4
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub5]
-ParameterName=PDO 4 Mapping for a process data variable 5
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub6]
-ParameterName=PDO 4 Mapping for a process data variable 6
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub7]
-ParameterName=PDO 4 Mapping for a process data variable 7
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[1A03sub8]
-ParameterName=PDO 4 Mapping for a process data variable 8
-ObjectType=0x7
-DataType=0x0007
-AccessType=rw
-DefaultValue=0
-PDOMapping=0
-
-[ManufacturerObjects]
-SupportedObjects=2
-1=0x2000
-2=0x2001
-
-[2000]
-ParameterName=OutVar
-ObjectType=0x7
-DataType=0x0003
-AccessType=rw
-DefaultValue=0
-PDOMapping=1
-
-[2001]
-ParameterName=InVar
-ObjectType=0x7
-DataType=0x0003
-AccessType=rw
-DefaultValue=0
-PDOMapping=1
--- a/tests/canopen_master/canopen@canfestival/master@CanOpenNode/master.od Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
-<PyObject module="node" class="Node" id="173548044">
-<attr name="Profile" type="dict" id="173547276" >
-</attr>
-<attr name="Description" type="string" value="" />
-<attr name="Dictionary" type="dict" id="173547004" >
- <entry>
- <key type="numeric" value="4096" />
- <val type="numeric" value="0" />
- </entry>
- <entry>
- <key type="numeric" value="4097" />
- <val type="numeric" value="0" />
- </entry>
- <entry>
- <key type="numeric" value="4120" />
- <val type="list" id="172243596" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
-</attr>
-<attr name="SpecificMenu" type="list" id="172243852" >
-</attr>
-<attr name="ParamsDictionary" type="dict" id="173551796" >
-</attr>
-<attr name="UserMapping" type="dict" id="173551932" >
-</attr>
-<attr name="DS302" type="dict" id="172206524" >
- <entry>
- <key type="numeric" value="7968" />
- <val type="dict" id="172959508" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="172244812" >
- <item type="dict" id="173546596" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Entries" />
- </entry>
- </item>
- <item type="dict" id="173552204" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="15" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Store DCF for node %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="127" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Store DCF" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="7969" />
- <val type="dict" id="173546732" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="172253420" >
- <item type="dict" id="173552612" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Entries" />
- </entry>
- </item>
- <item type="dict" id="173546324" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="2" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Storage Format for Node %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="127" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Storage Format" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="7970" />
- <val type="dict" id="173552476" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="172253484" >
- <item type="dict" id="173552884" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Entries" />
- </entry>
- </item>
- <item type="dict" id="173552748" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="15" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Concise DCF for Node %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="127" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Concise DCF" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
-</attr>
-<attr name="ProfileName" type="string" value="None" />
-<attr name="Type" type="string" value="master" />
-<attr name="ID" type="numeric" value="0" />
-<attr name="Name" type="string" value="MasterNode" />
-</PyObject>
--- a/tests/canopen_master/canopen@canfestival/master@CanOpenNode/nodelist.cpj Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-[TOPOLOGY]
-NetName=None
-Nodes=0x01
-Node2Present=0x01
-Node2Name=SlaveNode
-Node2DCFName=Slave_0_0.eds
-EDSBaseName=eds
--- a/tests/canopen_master/plc.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
- <fileHeader companyName="beremiz" productName="beremiz" productVersion="1" creationDateTime="2008-06-24T18:44:00"/>
- <contentHeader name="canopen_master" modificationDateTime="2018-09-26T13:31:52" language="en-US">
- <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="test_main" pouType="program">
- <interface>
- <localVars>
- <variable name="PLC_OUT" address="%QW0.0.2.8193.0">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="PLC_IN" address="%IW0.0.2.8192.0">
- <type>
- <INT/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <FBD>
- <outVariable localId="1" height="29" width="80" executionOrderId="0" negated="false">
- <position x="362" y="139"/>
- <connectionPointIn>
- <relPosition x="0" y="14"/>
- <connection refLocalId="4" formalParameter="OUT">
- <position x="362" y="153"/>
- <position x="299" y="153"/>
- </connection>
- </connectionPointIn>
- <expression>PLC_OUT</expression>
- </outVariable>
- <inVariable localId="2" height="29" width="20">
- <position x="100" y="115"/>
- <connectionPointOut>
- <relPosition x="20" y="14"/>
- </connectionPointOut>
- <expression>1</expression>
- </inVariable>
- <block localId="4" width="75" height="60" typeName="ADD">
- <position x="224" y="123"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="2">
- <position x="224" y="153"/>
- <position x="183" y="153"/>
- <position x="183" y="129"/>
- <position x="120" y="129"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="5">
- <position x="224" y="173"/>
- <position x="199" y="173"/>
- <position x="199" y="201"/>
- <position x="174" y="201"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="75" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="5" height="29" width="70">
- <position x="104" y="187"/>
- <connectionPointOut>
- <relPosition x="70" y="14"/>
- </connectionPointOut>
- <expression>PLC_IN</expression>
- </inVariable>
- </FBD>
- </body>
- </pou>
- </pous>
- </types>
- <instances>
- <configurations>
- <configuration name="conf">
- <resource name="res">
- <task name="tache" interval="t#50ms" priority="0">
- <pouInstance name="toto" typeName="test_main"/>
- </task>
- </resource>
- </configuration>
- </configurations>
- </instances>
-</project>
--- a/tests/canopen_slave/beremiz.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BeremizRoot URI_location="LOCAL://">
- <TargetType/>
-</BeremizRoot>
--- a/tests/canopen_slave/canopen@canfestival/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BaseParams Name="canopen" IEC_Channel="0"/>
--- a/tests/canopen_slave/canopen@canfestival/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<CanFestivalInstance/>
--- a/tests/canopen_slave/canopen@canfestival/slave@CanOpenSlave/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BaseParams Name="slave" IEC_Channel="0"/>
--- a/tests/canopen_slave/canopen@canfestival/slave@CanOpenSlave/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<CanFestivalSlaveNode/>
--- a/tests/canopen_slave/canopen@canfestival/slave@CanOpenSlave/slave.eds Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-[FileInfo]
-FileName=slave.eds
-FileVersion=1
-FileRevision=1
-EDSVersion=4.0
-Description=
-CreationTime=09:10AM
-CreationDate=10-27-2008
-CreatedBy=CANFestival
-ModificationTime=09:10AM
-ModificationDate=10-27-2008
-ModifiedBy=CANFestival
-
-[DeviceInfo]
-VendorName=CANFestival
-VendorNumber=0x00000000
-ProductName=SlaveNode
-ProductNumber=0x00000000
-RevisionNumber=0x00000000
-BaudRate_10=1
-BaudRate_20=1
-BaudRate_50=1
-BaudRate_125=1
-BaudRate_250=1
-BaudRate_500=1
-BaudRate_800=1
-BaudRate_1000=1
-SimpleBootUpMaster=0
-SimpleBootUpSlave=1
-Granularity=8
-DynamicChannelsSupported=0
-CompactPDO=0
-GroupMessaging=0
-NrOfRXPDO=4
-NrOfTXPDO=4
-LSS_Supported=0
-
-[DummyUsage]
-Dummy0001=0
-Dummy0002=1
-Dummy0003=1
-Dummy0004=1
-Dummy0005=1
-Dummy0006=1
-Dummy0007=1
-
-[Comments]
-Lines=0
-
-[MandatoryObjects]
-SupportedObjects=3
-1=0x1000
-2=0x1001
-3=0x1018
-
-[1000]
-ParameterName=Device Type
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1001]
-ParameterName=Error Register
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=0
-PDOMapping=1
-
-[1018]
-ParameterName=Identity
-ObjectType=0x8
-SubNumber=5
-
-[1018sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=4
-PDOMapping=0
-
-[1018sub1]
-ParameterName=Vendor ID
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1018sub2]
-ParameterName=Product Code
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1018sub3]
-ParameterName=Revision Number
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[1018sub4]
-ParameterName=Serial Number
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=0
-PDOMapping=0
-
-[OptionalObjects]
-SupportedObjects=1
-1=0x1200
-
-[1200]
-ParameterName=Server SDO Parameter
-ObjectType=0x8
-SubNumber=3
-
-[1200sub0]
-ParameterName=Number of Entries
-ObjectType=0x7
-DataType=0x0005
-AccessType=ro
-DefaultValue=2
-PDOMapping=0
-
-[1200sub1]
-ParameterName=COB ID Client to Server (Receive SDO)
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=$NODEID+0x600
-PDOMapping=0
-
-[1200sub2]
-ParameterName=COB ID Server to Client (Transmit SDO)
-ObjectType=0x7
-DataType=0x0007
-AccessType=ro
-DefaultValue=$NODEID+0x580
-PDOMapping=0
-
-[ManufacturerObjects]
-SupportedObjects=2
-1=0x2000
-2=0x2001
-
-[2000]
-ParameterName=OutVar
-ObjectType=0x7
-DataType=0x0003
-AccessType=rw
-DefaultValue=0
-PDOMapping=1
-
-[2001]
-ParameterName=InVar
-ObjectType=0x7
-DataType=0x0003
-AccessType=rw
-DefaultValue=0
-PDOMapping=1
--- a/tests/canopen_slave/canopen@canfestival/slave@CanOpenSlave/slave.od Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,317 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
-<PyObject module="node" class="Node" id="157806348">
-<attr name="Profile" type="dict" id="157588716" >
-</attr>
-<attr name="Description" type="string" value="" />
-<attr name="Dictionary" type="dict" id="157588580" >
- <entry>
- <key type="numeric" value="4096" />
- <val type="numeric" value="0" />
- </entry>
- <entry>
- <key type="numeric" value="4097" />
- <val type="numeric" value="0" />
- </entry>
- <entry>
- <key type="numeric" value="5122" />
- <val type="list" id="160478380" >
- <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="5123" />
- <val type="list" id="158303244" >
- <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="8192" />
- <val type="numeric" value="0" />
- </entry>
- <entry>
- <key type="numeric" value="8193" />
- <val type="numeric" value="0" />
- </entry>
- <entry>
- <key type="numeric" value="5634" />
- <val type="list" id="158305356" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="5635" />
- <val type="list" id="158305388" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6146" />
- <val type="list" id="158305420" >
- <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6658" />
- <val type="list" id="158305932" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6147" />
- <val type="list" id="158305516" >
- <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="4608" />
- <val type="list" id="158305068" >
- <item type="string" value=""$NODEID+0x600"" />
- <item type="string" value=""$NODEID+0x580"" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="4120" />
- <val type="list" id="158304940" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="5120" />
- <val type="list" id="158051500" >
- <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6659" />
- <val type="list" id="158052300" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="5632" />
- <val type="list" id="158049740" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="5121" />
- <val type="list" id="158048716" >
- <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6144" />
- <val type="list" id="158048428" >
- <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="5633" />
- <val type="list" id="158052172" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6656" />
- <val type="list" id="158052204" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6145" />
- <val type="list" id="158052108" >
- <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
- <entry>
- <key type="numeric" value="6657" />
- <val type="list" id="158048588" >
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- <item type="numeric" value="0" />
- </val>
- </entry>
-</attr>
-<attr name="SpecificMenu" type="list" id="158048396" >
-</attr>
-<attr name="ParamsDictionary" type="dict" id="157588308" >
-</attr>
-<attr name="UserMapping" type="dict" id="157588852" >
- <entry>
- <key type="numeric" value="8192" />
- <val type="dict" id="157602516" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="158052332" >
- <item type="dict" id="157586676" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="3" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string">OutVar</val>
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string">OutVar</val>
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="1" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="8193" />
- <val type="dict" id="157535468" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="158305004" >
- <item type="dict" id="158343620" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="3" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string">InVar</val>
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string">InVar</val>
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="1" />
- </entry>
- </val>
- </entry>
-</attr>
-<attr name="DS302" type="dict" id="158328188" >
-</attr>
-<attr name="ProfileName" type="string" value="None" />
-<attr name="Type" type="string" value="slave" />
-<attr name="ID" type="numeric" value="0" />
-<attr name="Name" type="string" value="SlaveNode" />
-</PyObject>
--- a/tests/canopen_slave/plc.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
- <fileHeader companyName="beremiz" productName="beremiz" productVersion="1" creationDateTime="2008-06-24T18:44:00"/>
- <contentHeader name="canopen_slave" modificationDateTime="2018-09-26T13:32:23" language="en-US">
- <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="test_main" pouType="program">
- <interface>
- <localVars>
- <variable name="outvar" address="%QW0.0.8192.0">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="invar" address="%IW0.0.8193.0">
- <type>
- <INT/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <FBD>
- <outVariable localId="1" height="29" width="80" executionOrderId="0" negated="false">
- <position x="362" y="139"/>
- <connectionPointIn>
- <relPosition x="0" y="14"/>
- <connection refLocalId="4" formalParameter="OUT">
- <position x="362" y="153"/>
- <position x="299" y="153"/>
- </connection>
- </connectionPointIn>
- <expression>outvar</expression>
- </outVariable>
- <inVariable localId="2" height="29" width="20">
- <position x="100" y="115"/>
- <connectionPointOut>
- <relPosition x="20" y="14"/>
- </connectionPointOut>
- <expression>1</expression>
- </inVariable>
- <block localId="4" width="75" height="60" typeName="ADD">
- <position x="224" y="123"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="2">
- <position x="224" y="153"/>
- <position x="183" y="153"/>
- <position x="183" y="129"/>
- <position x="120" y="129"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="50"/>
- <connection refLocalId="5">
- <position x="224" y="173"/>
- <position x="187" y="173"/>
- <position x="187" y="187"/>
- <position x="150" y="187"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="75" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="5" height="29" width="60">
- <position x="90" y="173"/>
- <connectionPointOut>
- <relPosition x="60" y="14"/>
- </connectionPointOut>
- <expression>invar</expression>
- </inVariable>
- </FBD>
- </body>
- </pou>
- </pous>
- </types>
- <instances>
- <configurations>
- <configuration name="conf">
- <resource name="res">
- <task name="tache" interval="T#10ms" priority="0">
- <pouInstance name="toto" typeName="test_main"/>
- </task>
- </resource>
- </configuration>
- </configurations>
- </instances>
-</project>
--- a/tests/genericmake/beremiz.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <TargetType>
- <Generic Command="make -C %(buildpath)s -f ../project_files/Makefile all BEREMIZSRC=%(src)s BEREMIZCFLAGS=%(cflags)s MD5=%(md5)s USE_BEREMIZ=1 FROM_BEREMIZ=1"/>
- </TargetType>
- <Libraries Enable_Native_Library="false" Enable_Python_Library="false"/>
-</BeremizRoot>
--- a/tests/genericmake/plc.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2014-01-19T11:14:47" contentDescription="This example shows how you can customize build process by using 'make'. "/>
- <contentHeader name="Makefile Example" modificationDateTime="2018-08-24T13:12:10">
- <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="LocalVara">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="LocalVarb">
- <type>
- <INT/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <FBD>
- <inVariable localId="1" executionOrderId="0" height="30" width="77" negated="false">
- <position x="52" y="424"/>
- <connectionPointOut>
- <relPosition x="77" y="15"/>
- </connectionPointOut>
- <expression>LocalVara</expression>
- </inVariable>
- <outVariable localId="2" executionOrderId="0" height="30" width="77" negated="false">
- <position x="167" y="424"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="1">
- <position x="167" y="439"/>
- <position x="129" y="439"/>
- </connection>
- </connectionPointIn>
- <expression>LocalVarb</expression>
- </outVariable>
- <comment localId="3" height="385" width="760">
- <position x="32" y="23"/>
- <content>
- <xhtml:p><![CDATA[This example shows how you can customize build process by using 'make'.
-
-Sometimes special steps need to be done to build entire project.
-But it's not necessary to create another target in Beremiz every time you need to customize something in build process. Just use for that 'Generic' target and describe all necessary steps in Makefile.
-
-For example, you can
- - preprocess generated by Beremiz C source files,
- - do some fancy source code transformation using any tools you want,
- - use any compiler you want,
- - call static analyzers,
- - run integration tests on the project,
- - upload source code to external build server,
- - upload to the target and compile it there,
- - flash/transfer your compiled binary to the target,
- and much much more.
-]]></xhtml:p>
- </content>
- </comment>
- </FBD>
- </body>
- </pou>
- </pous>
- </types>
- <instances>
- <configurations>
- <configuration name="config">
- <resource name="resource1">
- <task name="Tsk" priority="0" interval="T#100ms">
- <pouInstance name="Inst" typeName="program0"/>
- </task>
- </resource>
- </configuration>
- </configurations>
- </instances>
-</project>
--- a/tests/genericmake/project_files/Makefile Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-BEREMIZ_OBJS = $(BEREMIZSRC:.c=.o)
-
-all: warn some_binary
- @echo "*** all done ***"
-
-warn:
- @echo "*** Sample Makefile, does nothing ***"
-
-some_binary: $(BEREMIZ_OBJS)
- @echo "* Would link $^ -> $@"
-
-%.o: %.c
- @echo "* Would compile $< -> $@"
--- a/tests/logging/beremiz.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<BeremizRoot URI_location="LOCAL://">
- <TargetType/>
- <Libraries Enable_Native_Library="true"/>
-</BeremizRoot>
--- a/tests/logging/plc.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<project xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
- <fileHeader companyName="Unknown" productName="Generic PLC" productVersion="1" creationDateTime="2013-01-29T14:01:00" contentDescription="This example shows logging functionality in Beremiz. Here are shown two ways of logging: - from IEC PLC program; - from python extension. "/>
- <contentHeader name="Logging example" modificationDateTime="2018-09-26T13:10:14">
- <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="beat">
- <type>
- <BOOL/>
- </type>
- </variable>
- <variable name="count">
- <type>
- <INT/>
- </type>
- </variable>
- <variable name="LOGGER0">
- <type>
- <derived name="LOGGER"/>
- </type>
- </variable>
- <variable name="lvl">
- <type>
- <derived name="LOGLEVEL"/>
- </type>
- <initialValue>
- <simpleValue value="INFO"/>
- </initialValue>
- </variable>
- <variable name="Timer">
- <type>
- <derived name="TOF"/>
- </type>
- </variable>
- </localVars>
- </interface>
- <body>
- <FBD>
- <inVariable localId="2" height="30" width="218" executionOrderId="0" negated="false">
- <position x="459" y="365"/>
- <connectionPointOut>
- <relPosition x="218" y="15"/>
- </connectionPointOut>
- <expression>'IEC side logging: beat #'</expression>
- </inVariable>
- <block localId="3" width="59" height="40" typeName="NOT" executionOrderId="0">
- <position x="241" y="287"/>
- <inputVariables>
- <variable formalParameter="IN">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="14" formalParameter="Q">
- <position x="241" y="317"/>
- <position x="197" y="317"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="59" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inOutVariable localId="4" height="30" width="60" executionOrderId="0" negatedOut="false" negatedIn="false">
- <position x="57" y="302"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="3" formalParameter="OUT">
- <position x="57" y="317"/>
- <position x="37" y="317"/>
- <position x="37" y="390"/>
- <position x="314" y="390"/>
- <position x="314" y="317"/>
- <position x="300" y="317"/>
- </connection>
- </connectionPointIn>
- <connectionPointOut>
- <relPosition x="60" y="15"/>
- </connectionPointOut>
- <expression>beat</expression>
- </inOutVariable>
- <block localId="5" width="68" height="98" typeName="ADD" executionOrderId="0">
- <position x="463" y="403"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="39"/>
- <connection refLocalId="10" formalParameter="OUT">
- <position x="463" y="442"/>
- <position x="452" y="442"/>
- <position x="452" y="442"/>
- <position x="455" y="442"/>
- <position x="455" y="442"/>
- <position x="439" y="442"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="78"/>
- <connection refLocalId="6">
- <position x="463" y="481"/>
- <position x="438" y="481"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="68" y="39"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inOutVariable localId="6" height="30" width="103" executionOrderId="0" negatedOut="false" negatedIn="false">
- <position x="335" y="466"/>
- <connectionPointIn>
- <relPosition x="0" y="15"/>
- <connection refLocalId="5" formalParameter="OUT">
- <position x="335" y="481"/>
- <position x="320" y="481"/>
- <position x="320" y="518"/>
- <position x="544" y="518"/>
- <position x="544" y="442"/>
- <position x="531" y="442"/>
- </connection>
- </connectionPointIn>
- <connectionPointOut>
- <relPosition x="103" y="15"/>
- </connectionPointOut>
- <expression>count</expression>
- </inOutVariable>
- <block localId="8" width="67" height="144" typeName="CONCAT" executionOrderId="0">
- <position x="727" y="329"/>
- <inputVariables>
- <variable formalParameter="IN1">
- <connectionPointIn>
- <relPosition x="0" y="51"/>
- <connection refLocalId="2">
- <position x="727" y="380"/>
- <position x="717" y="380"/>
- <position x="717" y="380"/>
- <position x="677" y="380"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="IN2">
- <connectionPointIn>
- <relPosition x="0" y="113"/>
- <connection refLocalId="9" formalParameter="OUT">
- <position x="727" y="442"/>
- <position x="680" y="442"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="67" y="51"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <block localId="9" width="119" height="40" typeName="INT_TO_STRING" executionOrderId="0">
- <position x="561" y="412"/>
- <inputVariables>
- <variable formalParameter="IN">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="5" formalParameter="OUT">
- <position x="561" y="442"/>
- <position x="531" y="442"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="119" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <block localId="10" width="106" height="40" typeName="BOOL_TO_INT" executionOrderId="0">
- <position x="333" y="412"/>
- <inputVariables>
- <variable formalParameter="IN" edge="rising">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="3" formalParameter="OUT">
- <position x="333" y="442"/>
- <position x="314" y="442"/>
- <position x="314" y="317"/>
- <position x="300" y="317"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="106" y="30"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <block localId="11" width="65" height="209" typeName="LOGGER" instanceName="LOGGER0" executionOrderId="0">
- <position x="907" y="266"/>
- <inputVariables>
- <variable formalParameter="TRIG">
- <connectionPointIn>
- <relPosition x="0" y="51"/>
- <connection refLocalId="3" formalParameter="OUT">
- <position x="907" y="317"/>
- <position x="300" y="317"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="MSG">
- <connectionPointIn>
- <relPosition x="0" y="114"/>
- <connection refLocalId="8" formalParameter="OUT">
- <position x="907" y="380"/>
- <position x="794" y="380"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="LEVEL">
- <connectionPointIn>
- <relPosition x="0" y="177"/>
- <connection refLocalId="12">
- <position x="907" y="443"/>
- <position x="880" y="443"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables/>
- </block>
- <inVariable localId="12" height="30" width="79" executionOrderId="0" negated="false">
- <position x="801" y="428"/>
- <connectionPointOut>
- <relPosition x="79" y="15"/>
- </connectionPointOut>
- <expression>lvl</expression>
- </inVariable>
- <block localId="14" typeName="TOF" instanceName="Timer" executionOrderId="0" height="98" width="47">
- <position x="150" y="278"/>
- <inputVariables>
- <variable formalParameter="IN">
- <connectionPointIn>
- <relPosition x="0" y="39"/>
- <connection refLocalId="4">
- <position x="150" y="317"/>
- <position x="117" y="317"/>
- </connection>
- </connectionPointIn>
- </variable>
- <variable formalParameter="PT">
- <connectionPointIn>
- <relPosition x="0" y="78"/>
- <connection refLocalId="1">
- <position x="150" y="356"/>
- <position x="117" y="356"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="Q">
- <connectionPointOut>
- <relPosition x="47" y="39"/>
- </connectionPointOut>
- </variable>
- <variable formalParameter="ET">
- <connectionPointOut>
- <relPosition x="47" y="78"/>
- </connectionPointOut>
- </variable>
- </outputVariables>
- </block>
- <inVariable localId="1" executionOrderId="0" height="30" width="61" negated="false">
- <position x="56" y="341"/>
- <connectionPointOut>
- <relPosition x="61" y="15"/>
- </connectionPointOut>
- <expression>T#3s</expression>
- </inVariable>
- <comment localId="15" height="249" width="682">
- <position x="19" y="8"/>
- <content>
- <xhtml:p><![CDATA[This example shows logging functionality in Beremiz.
-Here are shown two ways of logging:
-- from IEC PLC program;
-- from python extension.
-
-In IEC PLC program every third second (beat) new message is generated and put in PLC log.
-See function blocks below.
-
-Every 15 seconds status of PLC program is put in PLC log from python extension.
-For more information about logging from python look at 0.x: py_ext_0 implementation in project tree.
-]]></xhtml:p>
- </content>
- </comment>
- </FBD>
- </body>
- </pou>
- </pous>
- </types>
- <instances>
- <configurations>
- <configuration name="config">
- <resource name="resource1">
- <task name="task0" priority="0" interval="T#100ms">
- <pouInstance name="prg" typeName="program0"/>
- </task>
- </resource>
- </configuration>
- </configurations>
- </instances>
-</project>
--- a/tests/logging/py_ext_0@py_ext/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<BaseParams Name="py_ext_0" IEC_Channel="0"/>
--- a/tests/logging/py_ext_0@py_ext/pyfile.xml Tue Jan 25 16:37:16 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <variables/>
- <globals>
- <xhtml:p><![CDATA[import threading, time
-
-MyT = None
-Stop = False
-
-def StartLog():
- global MyT
- MyT=threading.Thread(target = DoLog)
- MyT.start()
-
-def DoLog():
- global Stop
- while not Stop:
- PLCObject.LogMessage("Python side Logging (PLC is %s)"%PLCObject.PLCStatus)
- time.sleep(0.3)
-
-def StopLog():
- global MyT,Stop
- Stop=True
-
-_runtime_init.append(StartLog)
-_runtime_cleanup.append(StopLog)
-]]></xhtml:p>
- </globals>
- <init>
- <xhtml:p><![CDATA[]]></xhtml:p>
- </init>
- <cleanup>
- <xhtml:p><![CDATA[]]></xhtml:p>
- </cleanup>
- <start>
- <xhtml:p><![CDATA[]]></xhtml:p>
- </start>
- <stop>
- <xhtml:p><![CDATA[]]></xhtml:p>
- </stop>
-</PyFile>
--- a/tests/modbus/beremiz.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/baseconfnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/modbus_0@modbus/confnode.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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/modbus/plc.xml Tue Jan 25 16:37:16 2022 +0100
+++ /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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/BACnet/bacnet_0@bacnet/bacnet_slave Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,202 @@
+(dp0
+S'BV_Obj'
+p1
+(lp2
+sS'AV_Obj'
+p3
+(lp4
+(dp5
+S'loc'
+p6
+S'MD0_2'
+p7
+sS'Description'
+p8
+S''
+p9
+sS'Unit ID'
+p10
+I19
+sS'Object Identifier'
+p11
+I0
+sS'Ctype'
+p12
+S'float'
+p13
+sS'BACnetObjTypeID'
+p14
+I2
+sS'Settable'
+p15
+S'Y'
+p16
+sS'Engineering Units'
+p17
+V(Energy) kilowatt-hours (19)
+p18
+sS'Object Name'
+p19
+VEnergyCounter
+p20
+sasS'AO_Obj'
+p21
+(lp22
+(dp23
+g6
+S'QD0_1'
+p24
+sg8
+V
+p25
+sS'Unit ID'
+p26
+I62
+sS'Object Identifier'
+p27
+V0
+p28
+sg12
+g13
+sg14
+I1
+sg15
+g16
+sS'Object Name'
+p29
+VTemperatureSetPoint
+p30
+sS'Engineering Units'
+p31
+V(Temperature) degrees-celsius (62)
+p32
+sasS'MSI_Obj'
+p33
+(lp34
+sS'BO_Obj'
+p35
+(lp36
+(dp37
+g6
+S'QX0_4'
+p38
+sg8
+g9
+sS'Object Identifier'
+p39
+I2
+sg12
+S'uint8_t'
+p40
+sg14
+I4
+sg15
+g16
+sS'Object Name'
+p41
+VBlockClimateControl
+p42
+sasS'MSO_Obj'
+p43
+(lp44
+sS'EDEfile_parm'
+p45
+(dp46
+S'next_EDE_file_version'
+p47
+I1
+ssS'BI_Obj'
+p48
+(lp49
+(dp50
+g6
+S'IX0_3'
+p51
+sg8
+g9
+sS'Object Identifier'
+p52
+I0
+sg12
+g40
+sg14
+I3
+sg15
+S'N'
+p53
+sS'Object Name'
+p54
+VHeater
+p55
+sa(dp56
+g6
+g51
+sg8
+g9
+sg52
+I1
+sg12
+g40
+sg14
+I3
+sg15
+g53
+sg54
+VCooler
+p57
+sasS'AI_Obj'
+p58
+(lp59
+(dp60
+g6
+S'ID0_0'
+p61
+sg8
+VCurrent termperature in Beremiz lab
+p62
+sS'Unit ID'
+p63
+I62
+sS'Object Identifier'
+p64
+I0
+sg12
+g13
+sg14
+I0
+sg15
+g53
+sS'Engineering Units'
+p65
+V(Temperature) degrees-celsius (62)
+p66
+sS'Object Name'
+p67
+VTemperature
+p68
+sa(dp69
+g6
+g61
+sg8
+VCurrent humidity in Beremiz lab
+p70
+sg63
+I29
+sg64
+I1
+sg12
+g13
+sg14
+I0
+sg15
+g53
+sg67
+VHumidity
+p71
+sg65
+V(Humidity) percent-relative-humidity (29)
+p72
+sasS'MSV_Obj'
+p73
+(lp74
+s.
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/BACnet/bacnet_0@bacnet/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="bacnet_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/BACnet/bacnet_0@bacnet/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BACnetServerNode xmlns:xsd="http://www.w3.org/2001/XMLSchema" UDP_Port_Number="47808" BACnet_Device_ID="3" BACnet_Communication_Control_Password=" " BACnet_Device_Location="Beremiz lab" Network_Interface="virbr0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/BACnet/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="LOCAL://">
+ <TargetType/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/BACnet/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,601 @@
+<?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="2018-07-28T02:24:08"/>
+ <contentHeader name="BACnet" modificationDateTime="2018-09-26T14:00:21">
+ <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="EnergyCounter" address="%MD0.2.0">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Temperature" address="%ID0.0.0">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="Humidity" address="%ID0.0.1">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ </localVars>
+ <localVars>
+ <variable name="TempSimulation">
+ <type>
+ <derived name="Simulator"/>
+ </type>
+ </variable>
+ <variable name="HumiditySimulation">
+ <type>
+ <derived name="Simulator"/>
+ </type>
+ </variable>
+ </localVars>
+ <localVars>
+ <variable name="TemperatureSetPoint" address="%QD0.1.0">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="ControlDisable" address="%QX0.4.2">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="Heater" address="%IX0.3.0">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="Cooler" address="%IX0.3.1">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="1" executionOrderId="0" height="30" width="114" negated="false">
+ <position x="299" y="521"/>
+ <connectionPointOut>
+ <relPosition x="114" y="15"/>
+ </connectionPointOut>
+ <expression>EnergyCounter</expression>
+ </inVariable>
+ <outVariable localId="2" executionOrderId="0" height="30" width="114" negated="false">
+ <position x="654" y="521"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="3" formalParameter="OUT">
+ <position x="654" y="536"/>
+ <position x="533" y="536"/>
+ </connection>
+ </connectionPointIn>
+ <expression>EnergyCounter</expression>
+ </outVariable>
+ <block localId="3" typeName="ADD" executionOrderId="0" height="60" width="67">
+ <position x="466" y="506"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="1">
+ <position x="466" y="536"/>
+ <position x="404" y="536"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="4">
+ <position x="466" y="556"/>
+ <position x="436" y="556"/>
+ <position x="436" y="585"/>
+ <position x="401" y="585"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="67" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="4" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="296" y="570"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>0.00131</expression>
+ </inVariable>
+ <comment localId="5" height="67" width="229">
+ <position x="27" y="525"/>
+ <content>
+ <xhtml:p><![CDATA[Always consume some energy]]></xhtml:p>
+ </content>
+ </comment>
+ <block localId="6" typeName="Simulator" instanceName="TempSimulation" executionOrderId="0" height="128" width="143">
+ <position x="188" y="648"/>
+ <inputVariables>
+ <variable formalParameter="MinVal">
+ <connectionPointIn>
+ <relPosition x="0" y="38"/>
+ <connection refLocalId="8">
+ <position x="188" y="686"/>
+ <position x="138" y="686"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="MaxVal">
+ <connectionPointIn>
+ <relPosition x="0" y="74"/>
+ <connection refLocalId="9">
+ <position x="188" y="722"/>
+ <position x="138" y="722"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="PeriodSeconds">
+ <connectionPointIn>
+ <relPosition x="0" y="110"/>
+ <connection refLocalId="10">
+ <position x="188" y="758"/>
+ <position x="138" y="758"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Out">
+ <connectionPointOut>
+ <relPosition x="143" y="38"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="7" executionOrderId="0" height="30" width="98" negated="false">
+ <position x="421" y="671"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="6" formalParameter="Out">
+ <position x="421" y="686"/>
+ <position x="331" y="686"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Temperature</expression>
+ </outVariable>
+ <inVariable localId="8" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="33" y="671"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>18.0</expression>
+ </inVariable>
+ <inVariable localId="9" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="33" y="707"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>30.0</expression>
+ </inVariable>
+ <inVariable localId="10" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="33" y="743"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>120</expression>
+ </inVariable>
+ <block localId="11" typeName="Simulator" instanceName="HumiditySimulation" executionOrderId="0" height="137" width="143">
+ <position x="185" y="803"/>
+ <inputVariables>
+ <variable formalParameter="MinVal">
+ <connectionPointIn>
+ <relPosition x="0" y="39"/>
+ <connection refLocalId="13">
+ <position x="185" y="842"/>
+ <position x="135" y="842"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="MaxVal">
+ <connectionPointIn>
+ <relPosition x="0" y="78"/>
+ <connection refLocalId="14">
+ <position x="185" y="881"/>
+ <position x="135" y="881"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="PeriodSeconds">
+ <connectionPointIn>
+ <relPosition x="0" y="117"/>
+ <connection refLocalId="15">
+ <position x="185" y="920"/>
+ <position x="135" y="920"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Out">
+ <connectionPointOut>
+ <relPosition x="143" y="39"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="12" executionOrderId="0" height="30" width="111" negated="false">
+ <position x="418" y="827"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="11" formalParameter="Out">
+ <position x="418" y="842"/>
+ <position x="328" y="842"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Humidity</expression>
+ </outVariable>
+ <inVariable localId="13" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="30" y="827"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>55.0</expression>
+ </inVariable>
+ <inVariable localId="14" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="30" y="866"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>78.0</expression>
+ </inVariable>
+ <inVariable localId="15" executionOrderId="0" height="30" width="105" negated="false">
+ <position x="30" y="905"/>
+ <connectionPointOut>
+ <relPosition x="105" y="15"/>
+ </connectionPointOut>
+ <expression>58</expression>
+ </inVariable>
+ <block localId="16" typeName="GT" executionOrderId="0" height="60" width="67">
+ <position x="231" y="1103"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="18">
+ <position x="231" y="1133"/>
+ <position x="132" y="1133"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="22">
+ <position x="231" y="1153"/>
+ <position x="208" y="1153"/>
+ <position x="208" y="1169"/>
+ <position x="185" y="1169"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="67" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="18" executionOrderId="0" height="30" width="98" negated="false">
+ <position x="40" y="1118"/>
+ <connectionPointOut>
+ <relPosition x="98" y="15"/>
+ </connectionPointOut>
+ <expression>Temperature</expression>
+ </inVariable>
+ <block localId="19" typeName="AND" executionOrderId="0" height="60" width="67">
+ <position x="347" y="1059"/>
+ <inputVariables>
+ <variable formalParameter="IN1" negated="true">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="20">
+ <position x="347" y="1089"/>
+ <position x="263" y="1089"/>
+ <position x="263" y="1074"/>
+ <position x="145" y="1074"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="16" formalParameter="OUT">
+ <position x="347" y="1109"/>
+ <position x="337" y="1109"/>
+ <position x="337" y="1133"/>
+ <position x="298" y="1133"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="67" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="20" executionOrderId="0" height="30" width="122" negated="false">
+ <position x="41" y="1059"/>
+ <connectionPointOut>
+ <relPosition x="122" y="15"/>
+ </connectionPointOut>
+ <expression>ControlDisable</expression>
+ </inVariable>
+ <outVariable localId="21" executionOrderId="0" height="30" width="92" negated="false">
+ <position x="468" y="1074"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="19" formalParameter="OUT">
+ <position x="468" y="1089"/>
+ <position x="414" y="1089"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Cooler</expression>
+ </outVariable>
+ <inVariable localId="22" executionOrderId="0" height="30" width="162" negated="false">
+ <position x="39" y="1154"/>
+ <connectionPointOut>
+ <relPosition x="162" y="15"/>
+ </connectionPointOut>
+ <expression>TemperatureSetPoint</expression>
+ </inVariable>
+ <block localId="17" typeName="LT" executionOrderId="0" height="60" width="67">
+ <position x="228" y="1278"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="23">
+ <position x="228" y="1308"/>
+ <position x="129" y="1308"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="27">
+ <position x="228" y="1328"/>
+ <position x="205" y="1328"/>
+ <position x="205" y="1344"/>
+ <position x="182" y="1344"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="67" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="23" executionOrderId="0" height="30" width="98" negated="false">
+ <position x="37" y="1293"/>
+ <connectionPointOut>
+ <relPosition x="98" y="15"/>
+ </connectionPointOut>
+ <expression>Temperature</expression>
+ </inVariable>
+ <block localId="24" typeName="AND" executionOrderId="0" height="60" width="67">
+ <position x="344" y="1234"/>
+ <inputVariables>
+ <variable formalParameter="IN1" negated="true">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="25">
+ <position x="344" y="1264"/>
+ <position x="260" y="1264"/>
+ <position x="260" y="1249"/>
+ <position x="142" y="1249"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="17" formalParameter="OUT">
+ <position x="344" y="1284"/>
+ <position x="334" y="1284"/>
+ <position x="334" y="1308"/>
+ <position x="295" y="1308"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="67" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="25" executionOrderId="0" height="30" width="122" negated="false">
+ <position x="38" y="1234"/>
+ <connectionPointOut>
+ <relPosition x="122" y="15"/>
+ </connectionPointOut>
+ <expression>ControlDisable</expression>
+ </inVariable>
+ <outVariable localId="26" executionOrderId="0" height="30" width="92" negated="false">
+ <position x="465" y="1249"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="24" formalParameter="OUT">
+ <position x="465" y="1264"/>
+ <position x="411" y="1264"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Heater</expression>
+ </outVariable>
+ <inVariable localId="27" executionOrderId="0" height="30" width="162" negated="false">
+ <position x="36" y="1329"/>
+ <connectionPointOut>
+ <relPosition x="162" y="15"/>
+ </connectionPointOut>
+ <expression>TemperatureSetPoint</expression>
+ </inVariable>
+ <comment localId="28" height="67" width="229">
+ <position x="343" y="734"/>
+ <content>
+ <xhtml:p><![CDATA[Simple sensor simulation]]></xhtml:p>
+ </content>
+ </comment>
+ <comment localId="29" height="67" width="229">
+ <position x="37" y="978"/>
+ <content>
+ <xhtml:p><![CDATA[Climate control]]></xhtml:p>
+ </content>
+ </comment>
+ <comment localId="30" height="464" width="773">
+ <position x="14" y="16"/>
+ <content>
+ <xhtml:p><![CDATA[This examples shows how to work with BACnet extension.
+
+Extensions requires native BACnet stack to be installed nearby Beremiz.
+Following directory structure is expected:
+<Parent directory>
+ "beremiz"
+ "BACnet"
+
+If library is installed elsewhere, then place corresponding paths
+in CFLAGS/LDFLAGS in project settings.
+
+For GNU/Linux to install BACnet library in parent directory run following commands:
+$ svn checkout https://svn.code.sf.net/p/bacnet/code/trunk/bacnet-stack/ BACnet
+$ cd BACnet
+$ make
+
+After that BACnet extension is ready to be used in Beremiz projects.
+BACnet stack implementation contains a lot of test tools. They could be useful during
+debugging and BACnet investigation. See "BACnet/bin/readme.txt" for more information about them.]]></xhtml:p>
+ </content>
+ </comment>
+ </FBD>
+ </body>
+ </pou>
+ <pou name="Simulator" pouType="functionBlock">
+ <interface>
+ <outputVars>
+ <variable name="Out">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ </outputVars>
+ <inputVars>
+ <variable name="MinVal">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="MaxVal">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="PeriodSeconds">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="TON0">
+ <type>
+ <derived name="TON"/>
+ </type>
+ </variable>
+ <variable name="seconds">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="BaseVal">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ <variable name="VarVal">
+ <type>
+ <REAL/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <ST>
+ <xhtml:p><![CDATA[(* pseudo-random variations *)
+TON0(IN := TRUE, PT := T#3120s);
+IF TON0.Q THEN
+ TON0(IN := FALSE);
+END_IF;
+seconds := TIME_TO_INT(TON0.ET);
+
+BaseVal := (MaxVal + MinVal)/2.0;
+VarVal := (MaxVal-MinVal)*INT_TO_REAL((seconds MOD PeriodSeconds) - (PeriodSeconds/2))/INT_TO_REAL(PeriodSeconds);
+
+Out := BaseVal + VarVal;]]></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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/README.md Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,7 @@
+Beremiz projects for non-automated testing
+===
+
+This directory contains unsorted projects used as manually executed test while working on particular topics.
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BeremizRoot URI_location="LOCAL://">
+ <TargetType/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BaseParams Name="canopen" IEC_Channel="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CanFestivalInstance/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/master@CanOpenNode/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BaseParams Name="master" IEC_Channel="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/master@CanOpenNode/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CanFestivalNode/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/master@CanOpenNode/eds/Slave_0_0.eds Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,1161 @@
+[FileInfo]
+FileName=Slave_0_0.eds
+FileVersion=1
+FileRevision=1
+EDSVersion=4.0
+Description=
+CreationTime=06:35PM
+CreationDate=10-07-2009
+CreatedBy=CANFestival
+ModificationTime=06:35PM
+ModificationDate=10-07-2009
+ModifiedBy=CANFestival
+
+[DeviceInfo]
+VendorName=CANFestival
+VendorNumber=0x00000000
+ProductName=OD_0_0
+ProductNumber=0x00000000
+RevisionNumber=0x00000000
+BaudRate_10=1
+BaudRate_20=1
+BaudRate_50=1
+BaudRate_125=1
+BaudRate_250=1
+BaudRate_500=1
+BaudRate_800=1
+BaudRate_1000=1
+SimpleBootUpMaster=0
+SimpleBootUpSlave=1
+Granularity=8
+DynamicChannelsSupported=0
+CompactPDO=0
+GroupMessaging=0
+NrOfRXPDO=4
+NrOfTXPDO=4
+LSS_Supported=0
+
+[DummyUsage]
+Dummy0001=0
+Dummy0002=1
+Dummy0003=1
+Dummy0004=1
+Dummy0005=1
+Dummy0006=1
+Dummy0007=1
+
+[Comments]
+Lines=0
+
+[MandatoryObjects]
+SupportedObjects=3
+1=0x1000
+2=0x1001
+3=0x1018
+
+[1000]
+ParameterName=Device Type
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1001]
+ParameterName=Error Register
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=0
+PDOMapping=1
+
+[1018]
+ParameterName=Identity
+ObjectType=0x8
+SubNumber=5
+
+[1018sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=4
+PDOMapping=0
+
+[1018sub1]
+ParameterName=Vendor ID
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1018sub2]
+ParameterName=Product Code
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1018sub3]
+ParameterName=Revision Number
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1018sub4]
+ParameterName=Serial Number
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[OptionalObjects]
+SupportedObjects=17
+1=0x1200
+2=0x1400
+3=0x1401
+4=0x1402
+5=0x1403
+6=0x1600
+7=0x1601
+8=0x1602
+9=0x1603
+10=0x1800
+11=0x1801
+12=0x1802
+13=0x1803
+14=0x1A00
+15=0x1A01
+16=0x1A02
+17=0x1A03
+
+[1200]
+ParameterName=Server SDO Parameter
+ObjectType=0x8
+SubNumber=3
+
+[1200sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=2
+PDOMapping=0
+
+[1200sub1]
+ParameterName=COB ID Client to Server (Receive SDO)
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=$NODEID+0x600
+PDOMapping=0
+
+[1200sub2]
+ParameterName=COB ID Server to Client (Transmit SDO)
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=$NODEID+0x580
+PDOMapping=0
+
+[1400]
+ParameterName=Receive PDO 1 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1400sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1400sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x200
+PDOMapping=0
+
+[1400sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1400sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1400sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1401]
+ParameterName=Receive PDO 2 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1401sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1401sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x300
+PDOMapping=0
+
+[1401sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1401sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1401sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1402]
+ParameterName=Receive PDO 3 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1402sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1402sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x400
+PDOMapping=0
+
+[1402sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1402sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1402sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1403]
+ParameterName=Receive PDO 4 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1403sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1403sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x500
+PDOMapping=0
+
+[1403sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1403sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1403sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600]
+ParameterName=Receive PDO 1 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1600sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1600sub1]
+ParameterName=PDO 1 Mapping for an application object 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub2]
+ParameterName=PDO 1 Mapping for an application object 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub3]
+ParameterName=PDO 1 Mapping for an application object 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub4]
+ParameterName=PDO 1 Mapping for an application object 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub5]
+ParameterName=PDO 1 Mapping for an application object 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub6]
+ParameterName=PDO 1 Mapping for an application object 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub7]
+ParameterName=PDO 1 Mapping for an application object 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1600sub8]
+ParameterName=PDO 1 Mapping for an application object 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601]
+ParameterName=Receive PDO 2 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1601sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1601sub1]
+ParameterName=PDO 2 Mapping for an application object 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub2]
+ParameterName=PDO 2 Mapping for an application object 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub3]
+ParameterName=PDO 2 Mapping for an application object 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub4]
+ParameterName=PDO 2 Mapping for an application object 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub5]
+ParameterName=PDO 2 Mapping for an application object 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub6]
+ParameterName=PDO 2 Mapping for an application object 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub7]
+ParameterName=PDO 2 Mapping for an application object 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1601sub8]
+ParameterName=PDO 2 Mapping for an application object 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602]
+ParameterName=Receive PDO 3 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1602sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1602sub1]
+ParameterName=PDO 3 Mapping for an application object 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub2]
+ParameterName=PDO 3 Mapping for an application object 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub3]
+ParameterName=PDO 3 Mapping for an application object 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub4]
+ParameterName=PDO 3 Mapping for an application object 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub5]
+ParameterName=PDO 3 Mapping for an application object 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub6]
+ParameterName=PDO 3 Mapping for an application object 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub7]
+ParameterName=PDO 3 Mapping for an application object 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1602sub8]
+ParameterName=PDO 3 Mapping for an application object 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603]
+ParameterName=Receive PDO 4 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1603sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1603sub1]
+ParameterName=PDO 4 Mapping for an application object 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub2]
+ParameterName=PDO 4 Mapping for an application object 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub3]
+ParameterName=PDO 4 Mapping for an application object 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub4]
+ParameterName=PDO 4 Mapping for an application object 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub5]
+ParameterName=PDO 4 Mapping for an application object 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub6]
+ParameterName=PDO 4 Mapping for an application object 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub7]
+ParameterName=PDO 4 Mapping for an application object 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1603sub8]
+ParameterName=PDO 4 Mapping for an application object 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1800]
+ParameterName=Transmit PDO 1 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1800sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1800sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x180
+PDOMapping=0
+
+[1800sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1800sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1800sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1801]
+ParameterName=Transmit PDO 2 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1801sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1801sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x280
+PDOMapping=0
+
+[1801sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1801sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1801sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1802]
+ParameterName=Transmit PDO 3 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1802sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1802sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x380
+PDOMapping=0
+
+[1802sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1802sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1802sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1803]
+ParameterName=Transmit PDO 4 Parameter
+ObjectType=0x8
+SubNumber=5
+
+[1803sub0]
+ParameterName=Highest SubIndex Supported
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=5
+PDOMapping=0
+
+[1803sub1]
+ParameterName=COB ID used by PDO
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=$NODEID+0x480
+PDOMapping=0
+
+[1803sub2]
+ParameterName=Transmission Type
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1803sub3]
+ParameterName=Inhibit Time
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1803sub5]
+ParameterName=Event Timer
+ObjectType=0x7
+DataType=0x0006
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00]
+ParameterName=Transmit PDO 1 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1A00sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1A00sub1]
+ParameterName=PDO 1 Mapping for a process data variable 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub2]
+ParameterName=PDO 1 Mapping for a process data variable 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub3]
+ParameterName=PDO 1 Mapping for a process data variable 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub4]
+ParameterName=PDO 1 Mapping for a process data variable 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub5]
+ParameterName=PDO 1 Mapping for a process data variable 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub6]
+ParameterName=PDO 1 Mapping for a process data variable 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub7]
+ParameterName=PDO 1 Mapping for a process data variable 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A00sub8]
+ParameterName=PDO 1 Mapping for a process data variable 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01]
+ParameterName=Transmit PDO 2 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1A01sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1A01sub1]
+ParameterName=PDO 2 Mapping for a process data variable 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub2]
+ParameterName=PDO 2 Mapping for a process data variable 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub3]
+ParameterName=PDO 2 Mapping for a process data variable 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub4]
+ParameterName=PDO 2 Mapping for a process data variable 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub5]
+ParameterName=PDO 2 Mapping for a process data variable 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub6]
+ParameterName=PDO 2 Mapping for a process data variable 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub7]
+ParameterName=PDO 2 Mapping for a process data variable 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A01sub8]
+ParameterName=PDO 2 Mapping for a process data variable 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02]
+ParameterName=Transmit PDO 3 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1A02sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1A02sub1]
+ParameterName=PDO 3 Mapping for a process data variable 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub2]
+ParameterName=PDO 3 Mapping for a process data variable 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub3]
+ParameterName=PDO 3 Mapping for a process data variable 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub4]
+ParameterName=PDO 3 Mapping for a process data variable 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub5]
+ParameterName=PDO 3 Mapping for a process data variable 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub6]
+ParameterName=PDO 3 Mapping for a process data variable 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub7]
+ParameterName=PDO 3 Mapping for a process data variable 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A02sub8]
+ParameterName=PDO 3 Mapping for a process data variable 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03]
+ParameterName=Transmit PDO 4 Mapping
+ObjectType=0x9
+SubNumber=9
+
+[1A03sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=rw
+DefaultValue=8
+PDOMapping=0
+
+[1A03sub1]
+ParameterName=PDO 4 Mapping for a process data variable 1
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub2]
+ParameterName=PDO 4 Mapping for a process data variable 2
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub3]
+ParameterName=PDO 4 Mapping for a process data variable 3
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub4]
+ParameterName=PDO 4 Mapping for a process data variable 4
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub5]
+ParameterName=PDO 4 Mapping for a process data variable 5
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub6]
+ParameterName=PDO 4 Mapping for a process data variable 6
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub7]
+ParameterName=PDO 4 Mapping for a process data variable 7
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[1A03sub8]
+ParameterName=PDO 4 Mapping for a process data variable 8
+ObjectType=0x7
+DataType=0x0007
+AccessType=rw
+DefaultValue=0
+PDOMapping=0
+
+[ManufacturerObjects]
+SupportedObjects=2
+1=0x2000
+2=0x2001
+
+[2000]
+ParameterName=OutVar
+ObjectType=0x7
+DataType=0x0003
+AccessType=rw
+DefaultValue=0
+PDOMapping=1
+
+[2001]
+ParameterName=InVar
+ObjectType=0x7
+DataType=0x0003
+AccessType=rw
+DefaultValue=0
+PDOMapping=1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/master@CanOpenNode/master.od Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,224 @@
+<?xml version="1.0"?>
+<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
+<PyObject module="node" class="Node" id="173548044">
+<attr name="Profile" type="dict" id="173547276" >
+</attr>
+<attr name="Description" type="string" value="" />
+<attr name="Dictionary" type="dict" id="173547004" >
+ <entry>
+ <key type="numeric" value="4096" />
+ <val type="numeric" value="0" />
+ </entry>
+ <entry>
+ <key type="numeric" value="4097" />
+ <val type="numeric" value="0" />
+ </entry>
+ <entry>
+ <key type="numeric" value="4120" />
+ <val type="list" id="172243596" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+</attr>
+<attr name="SpecificMenu" type="list" id="172243852" >
+</attr>
+<attr name="ParamsDictionary" type="dict" id="173551796" >
+</attr>
+<attr name="UserMapping" type="dict" id="173551932" >
+</attr>
+<attr name="DS302" type="dict" id="172206524" >
+ <entry>
+ <key type="numeric" value="7968" />
+ <val type="dict" id="172959508" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="172244812" >
+ <item type="dict" id="173546596" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Entries" />
+ </entry>
+ </item>
+ <item type="dict" id="173552204" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="15" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Store DCF for node %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="127" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Store DCF" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="7969" />
+ <val type="dict" id="173546732" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="172253420" >
+ <item type="dict" id="173552612" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Entries" />
+ </entry>
+ </item>
+ <item type="dict" id="173546324" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="2" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Storage Format for Node %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="127" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Storage Format" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="7970" />
+ <val type="dict" id="173552476" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="172253484" >
+ <item type="dict" id="173552884" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Entries" />
+ </entry>
+ </item>
+ <item type="dict" id="173552748" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="15" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Concise DCF for Node %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="127" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Concise DCF" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+</attr>
+<attr name="ProfileName" type="string" value="None" />
+<attr name="Type" type="string" value="master" />
+<attr name="ID" type="numeric" value="0" />
+<attr name="Name" type="string" value="MasterNode" />
+</PyObject>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/canopen@canfestival/master@CanOpenNode/nodelist.cpj Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,7 @@
+[TOPOLOGY]
+NetName=None
+Nodes=0x01
+Node2Present=0x01
+Node2Name=SlaveNode
+Node2DCFName=Slave_0_0.eds
+EDSBaseName=eds
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_master/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="beremiz" productName="beremiz" productVersion="1" creationDateTime="2008-06-24T18:44:00"/>
+ <contentHeader name="canopen_master" modificationDateTime="2018-09-26T13:31:52" language="en-US">
+ <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="test_main" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="PLC_OUT" address="%QW0.0.2.8193.0">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="PLC_IN" address="%IW0.0.2.8192.0">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <outVariable localId="1" height="29" width="80" executionOrderId="0" negated="false">
+ <position x="362" y="139"/>
+ <connectionPointIn>
+ <relPosition x="0" y="14"/>
+ <connection refLocalId="4" formalParameter="OUT">
+ <position x="362" y="153"/>
+ <position x="299" y="153"/>
+ </connection>
+ </connectionPointIn>
+ <expression>PLC_OUT</expression>
+ </outVariable>
+ <inVariable localId="2" height="29" width="20">
+ <position x="100" y="115"/>
+ <connectionPointOut>
+ <relPosition x="20" y="14"/>
+ </connectionPointOut>
+ <expression>1</expression>
+ </inVariable>
+ <block localId="4" width="75" height="60" typeName="ADD">
+ <position x="224" y="123"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="224" y="153"/>
+ <position x="183" y="153"/>
+ <position x="183" y="129"/>
+ <position x="120" y="129"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="224" y="173"/>
+ <position x="199" y="173"/>
+ <position x="199" y="201"/>
+ <position x="174" y="201"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="75" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="5" height="29" width="70">
+ <position x="104" y="187"/>
+ <connectionPointOut>
+ <relPosition x="70" y="14"/>
+ </connectionPointOut>
+ <expression>PLC_IN</expression>
+ </inVariable>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="conf">
+ <resource name="res">
+ <task name="tache" interval="t#50ms" priority="0">
+ <pouInstance name="toto" typeName="test_main"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BeremizRoot URI_location="LOCAL://">
+ <TargetType/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/canopen@canfestival/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BaseParams Name="canopen" IEC_Channel="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/canopen@canfestival/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CanFestivalInstance/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/canopen@canfestival/slave@CanOpenSlave/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BaseParams Name="slave" IEC_Channel="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/canopen@canfestival/slave@CanOpenSlave/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CanFestivalSlaveNode/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/canopen@canfestival/slave@CanOpenSlave/slave.eds Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,169 @@
+[FileInfo]
+FileName=slave.eds
+FileVersion=1
+FileRevision=1
+EDSVersion=4.0
+Description=
+CreationTime=09:10AM
+CreationDate=10-27-2008
+CreatedBy=CANFestival
+ModificationTime=09:10AM
+ModificationDate=10-27-2008
+ModifiedBy=CANFestival
+
+[DeviceInfo]
+VendorName=CANFestival
+VendorNumber=0x00000000
+ProductName=SlaveNode
+ProductNumber=0x00000000
+RevisionNumber=0x00000000
+BaudRate_10=1
+BaudRate_20=1
+BaudRate_50=1
+BaudRate_125=1
+BaudRate_250=1
+BaudRate_500=1
+BaudRate_800=1
+BaudRate_1000=1
+SimpleBootUpMaster=0
+SimpleBootUpSlave=1
+Granularity=8
+DynamicChannelsSupported=0
+CompactPDO=0
+GroupMessaging=0
+NrOfRXPDO=4
+NrOfTXPDO=4
+LSS_Supported=0
+
+[DummyUsage]
+Dummy0001=0
+Dummy0002=1
+Dummy0003=1
+Dummy0004=1
+Dummy0005=1
+Dummy0006=1
+Dummy0007=1
+
+[Comments]
+Lines=0
+
+[MandatoryObjects]
+SupportedObjects=3
+1=0x1000
+2=0x1001
+3=0x1018
+
+[1000]
+ParameterName=Device Type
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1001]
+ParameterName=Error Register
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=0
+PDOMapping=1
+
+[1018]
+ParameterName=Identity
+ObjectType=0x8
+SubNumber=5
+
+[1018sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=4
+PDOMapping=0
+
+[1018sub1]
+ParameterName=Vendor ID
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1018sub2]
+ParameterName=Product Code
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1018sub3]
+ParameterName=Revision Number
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[1018sub4]
+ParameterName=Serial Number
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=0
+PDOMapping=0
+
+[OptionalObjects]
+SupportedObjects=1
+1=0x1200
+
+[1200]
+ParameterName=Server SDO Parameter
+ObjectType=0x8
+SubNumber=3
+
+[1200sub0]
+ParameterName=Number of Entries
+ObjectType=0x7
+DataType=0x0005
+AccessType=ro
+DefaultValue=2
+PDOMapping=0
+
+[1200sub1]
+ParameterName=COB ID Client to Server (Receive SDO)
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=$NODEID+0x600
+PDOMapping=0
+
+[1200sub2]
+ParameterName=COB ID Server to Client (Transmit SDO)
+ObjectType=0x7
+DataType=0x0007
+AccessType=ro
+DefaultValue=$NODEID+0x580
+PDOMapping=0
+
+[ManufacturerObjects]
+SupportedObjects=2
+1=0x2000
+2=0x2001
+
+[2000]
+ParameterName=OutVar
+ObjectType=0x7
+DataType=0x0003
+AccessType=rw
+DefaultValue=0
+PDOMapping=1
+
+[2001]
+ParameterName=InVar
+ObjectType=0x7
+DataType=0x0003
+AccessType=rw
+DefaultValue=0
+PDOMapping=1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/canopen@canfestival/slave@CanOpenSlave/slave.od Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,317 @@
+<?xml version="1.0"?>
+<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
+<PyObject module="node" class="Node" id="157806348">
+<attr name="Profile" type="dict" id="157588716" >
+</attr>
+<attr name="Description" type="string" value="" />
+<attr name="Dictionary" type="dict" id="157588580" >
+ <entry>
+ <key type="numeric" value="4096" />
+ <val type="numeric" value="0" />
+ </entry>
+ <entry>
+ <key type="numeric" value="4097" />
+ <val type="numeric" value="0" />
+ </entry>
+ <entry>
+ <key type="numeric" value="5122" />
+ <val type="list" id="160478380" >
+ <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="5123" />
+ <val type="list" id="158303244" >
+ <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="8192" />
+ <val type="numeric" value="0" />
+ </entry>
+ <entry>
+ <key type="numeric" value="8193" />
+ <val type="numeric" value="0" />
+ </entry>
+ <entry>
+ <key type="numeric" value="5634" />
+ <val type="list" id="158305356" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="5635" />
+ <val type="list" id="158305388" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6146" />
+ <val type="list" id="158305420" >
+ <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6658" />
+ <val type="list" id="158305932" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6147" />
+ <val type="list" id="158305516" >
+ <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="4608" />
+ <val type="list" id="158305068" >
+ <item type="string" value=""$NODEID+0x600"" />
+ <item type="string" value=""$NODEID+0x580"" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="4120" />
+ <val type="list" id="158304940" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="5120" />
+ <val type="list" id="158051500" >
+ <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6659" />
+ <val type="list" id="158052300" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="5632" />
+ <val type="list" id="158049740" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="5121" />
+ <val type="list" id="158048716" >
+ <item type="string" value="{True:"$NODEID+0x%X00"%(base+2),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6144" />
+ <val type="list" id="158048428" >
+ <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="5633" />
+ <val type="list" id="158052172" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6656" />
+ <val type="list" id="158052204" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6145" />
+ <val type="list" id="158052108" >
+ <item type="string" value="{True:"$NODEID+0x%X80"%(base+1),False:0x80000000}[base<4]" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="6657" />
+ <val type="list" id="158048588" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+</attr>
+<attr name="SpecificMenu" type="list" id="158048396" >
+</attr>
+<attr name="ParamsDictionary" type="dict" id="157588308" >
+</attr>
+<attr name="UserMapping" type="dict" id="157588852" >
+ <entry>
+ <key type="numeric" value="8192" />
+ <val type="dict" id="157602516" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="158052332" >
+ <item type="dict" id="157586676" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="3" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string">OutVar</val>
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string">OutVar</val>
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="1" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="8193" />
+ <val type="dict" id="157535468" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="158305004" >
+ <item type="dict" id="158343620" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="3" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string">InVar</val>
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string">InVar</val>
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="1" />
+ </entry>
+ </val>
+ </entry>
+</attr>
+<attr name="DS302" type="dict" id="158328188" >
+</attr>
+<attr name="ProfileName" type="string" value="None" />
+<attr name="Type" type="string" value="slave" />
+<attr name="ID" type="numeric" value="0" />
+<attr name="Name" type="string" value="SlaveNode" />
+</PyObject>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/canopen_slave/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="beremiz" productName="beremiz" productVersion="1" creationDateTime="2008-06-24T18:44:00"/>
+ <contentHeader name="canopen_slave" modificationDateTime="2018-09-26T13:32:23" language="en-US">
+ <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="test_main" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="outvar" address="%QW0.0.8192.0">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="invar" address="%IW0.0.8193.0">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <outVariable localId="1" height="29" width="80" executionOrderId="0" negated="false">
+ <position x="362" y="139"/>
+ <connectionPointIn>
+ <relPosition x="0" y="14"/>
+ <connection refLocalId="4" formalParameter="OUT">
+ <position x="362" y="153"/>
+ <position x="299" y="153"/>
+ </connection>
+ </connectionPointIn>
+ <expression>outvar</expression>
+ </outVariable>
+ <inVariable localId="2" height="29" width="20">
+ <position x="100" y="115"/>
+ <connectionPointOut>
+ <relPosition x="20" y="14"/>
+ </connectionPointOut>
+ <expression>1</expression>
+ </inVariable>
+ <block localId="4" width="75" height="60" typeName="ADD">
+ <position x="224" y="123"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="224" y="153"/>
+ <position x="183" y="153"/>
+ <position x="183" y="129"/>
+ <position x="120" y="129"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="224" y="173"/>
+ <position x="187" y="173"/>
+ <position x="187" y="187"/>
+ <position x="150" y="187"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="75" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="5" height="29" width="60">
+ <position x="90" y="173"/>
+ <connectionPointOut>
+ <relPosition x="60" y="14"/>
+ </connectionPointOut>
+ <expression>invar</expression>
+ </inVariable>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="conf">
+ <resource name="res">
+ <task name="tache" interval="T#10ms" priority="0">
+ <pouInstance name="toto" typeName="test_main"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/genericmake/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <TargetType>
+ <Generic Command="make -C %(buildpath)s -f ../project_files/Makefile all BEREMIZSRC=%(src)s BEREMIZCFLAGS=%(cflags)s MD5=%(md5)s USE_BEREMIZ=1 FROM_BEREMIZ=1"/>
+ </TargetType>
+ <Libraries Enable_Native_Library="false" Enable_Python_Library="false"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/genericmake/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,92 @@
+<?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="2014-01-19T11:14:47" contentDescription="This example shows how you can customize build process by using 'make'. "/>
+ <contentHeader name="Makefile Example" modificationDateTime="2018-08-24T13:12:10">
+ <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="LocalVara">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="LocalVarb">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="1" executionOrderId="0" height="30" width="77" negated="false">
+ <position x="52" y="424"/>
+ <connectionPointOut>
+ <relPosition x="77" y="15"/>
+ </connectionPointOut>
+ <expression>LocalVara</expression>
+ </inVariable>
+ <outVariable localId="2" executionOrderId="0" height="30" width="77" negated="false">
+ <position x="167" y="424"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="1">
+ <position x="167" y="439"/>
+ <position x="129" y="439"/>
+ </connection>
+ </connectionPointIn>
+ <expression>LocalVarb</expression>
+ </outVariable>
+ <comment localId="3" height="385" width="760">
+ <position x="32" y="23"/>
+ <content>
+ <xhtml:p><![CDATA[This example shows how you can customize build process by using 'make'.
+
+Sometimes special steps need to be done to build entire project.
+But it's not necessary to create another target in Beremiz every time you need to customize something in build process. Just use for that 'Generic' target and describe all necessary steps in Makefile.
+
+For example, you can
+ - preprocess generated by Beremiz C source files,
+ - do some fancy source code transformation using any tools you want,
+ - use any compiler you want,
+ - call static analyzers,
+ - run integration tests on the project,
+ - upload source code to external build server,
+ - upload to the target and compile it there,
+ - flash/transfer your compiled binary to the target,
+ and much much more.
+]]></xhtml:p>
+ </content>
+ </comment>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="Tsk" priority="0" interval="T#100ms">
+ <pouInstance name="Inst" typeName="program0"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/genericmake/project_files/Makefile Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,13 @@
+BEREMIZ_OBJS = $(BEREMIZSRC:.c=.o)
+
+all: warn some_binary
+ @echo "*** all done ***"
+
+warn:
+ @echo "*** Sample Makefile, does nothing ***"
+
+some_binary: $(BEREMIZ_OBJS)
+ @echo "* Would link $^ -> $@"
+
+%.o: %.c
+ @echo "* Would compile $< -> $@"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/logging/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot URI_location="LOCAL://">
+ <TargetType/>
+ <Libraries Enable_Native_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/logging/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,350 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Generic PLC" productVersion="1" creationDateTime="2013-01-29T14:01:00" contentDescription="This example shows logging functionality in Beremiz. Here are shown two ways of logging: - from IEC PLC program; - from python extension. "/>
+ <contentHeader name="Logging example" modificationDateTime="2018-09-26T13:10:14">
+ <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="beat">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="count">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="LOGGER0">
+ <type>
+ <derived name="LOGGER"/>
+ </type>
+ </variable>
+ <variable name="lvl">
+ <type>
+ <derived name="LOGLEVEL"/>
+ </type>
+ <initialValue>
+ <simpleValue value="INFO"/>
+ </initialValue>
+ </variable>
+ <variable name="Timer">
+ <type>
+ <derived name="TOF"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="2" height="30" width="218" executionOrderId="0" negated="false">
+ <position x="459" y="365"/>
+ <connectionPointOut>
+ <relPosition x="218" y="15"/>
+ </connectionPointOut>
+ <expression>'IEC side logging: beat #'</expression>
+ </inVariable>
+ <block localId="3" width="59" height="40" typeName="NOT" executionOrderId="0">
+ <position x="241" y="287"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="14" formalParameter="Q">
+ <position x="241" y="317"/>
+ <position x="197" y="317"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="59" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inOutVariable localId="4" height="30" width="60" executionOrderId="0" negatedOut="false" negatedIn="false">
+ <position x="57" y="302"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="3" formalParameter="OUT">
+ <position x="57" y="317"/>
+ <position x="37" y="317"/>
+ <position x="37" y="390"/>
+ <position x="314" y="390"/>
+ <position x="314" y="317"/>
+ <position x="300" y="317"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>beat</expression>
+ </inOutVariable>
+ <block localId="5" width="68" height="98" typeName="ADD" executionOrderId="0">
+ <position x="463" y="403"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="39"/>
+ <connection refLocalId="10" formalParameter="OUT">
+ <position x="463" y="442"/>
+ <position x="452" y="442"/>
+ <position x="452" y="442"/>
+ <position x="455" y="442"/>
+ <position x="455" y="442"/>
+ <position x="439" y="442"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="78"/>
+ <connection refLocalId="6">
+ <position x="463" y="481"/>
+ <position x="438" y="481"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="68" y="39"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inOutVariable localId="6" height="30" width="103" executionOrderId="0" negatedOut="false" negatedIn="false">
+ <position x="335" y="466"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="5" formalParameter="OUT">
+ <position x="335" y="481"/>
+ <position x="320" y="481"/>
+ <position x="320" y="518"/>
+ <position x="544" y="518"/>
+ <position x="544" y="442"/>
+ <position x="531" y="442"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="103" y="15"/>
+ </connectionPointOut>
+ <expression>count</expression>
+ </inOutVariable>
+ <block localId="8" width="67" height="144" typeName="CONCAT" executionOrderId="0">
+ <position x="727" y="329"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="51"/>
+ <connection refLocalId="2">
+ <position x="727" y="380"/>
+ <position x="717" y="380"/>
+ <position x="717" y="380"/>
+ <position x="677" y="380"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="113"/>
+ <connection refLocalId="9" formalParameter="OUT">
+ <position x="727" y="442"/>
+ <position x="680" y="442"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="67" y="51"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="9" width="119" height="40" typeName="INT_TO_STRING" executionOrderId="0">
+ <position x="561" y="412"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5" formalParameter="OUT">
+ <position x="561" y="442"/>
+ <position x="531" y="442"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="119" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="10" width="106" height="40" typeName="BOOL_TO_INT" executionOrderId="0">
+ <position x="333" y="412"/>
+ <inputVariables>
+ <variable formalParameter="IN" edge="rising">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="3" formalParameter="OUT">
+ <position x="333" y="442"/>
+ <position x="314" y="442"/>
+ <position x="314" y="317"/>
+ <position x="300" y="317"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="106" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="11" width="65" height="209" typeName="LOGGER" instanceName="LOGGER0" executionOrderId="0">
+ <position x="907" y="266"/>
+ <inputVariables>
+ <variable formalParameter="TRIG">
+ <connectionPointIn>
+ <relPosition x="0" y="51"/>
+ <connection refLocalId="3" formalParameter="OUT">
+ <position x="907" y="317"/>
+ <position x="300" y="317"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="MSG">
+ <connectionPointIn>
+ <relPosition x="0" y="114"/>
+ <connection refLocalId="8" formalParameter="OUT">
+ <position x="907" y="380"/>
+ <position x="794" y="380"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="LEVEL">
+ <connectionPointIn>
+ <relPosition x="0" y="177"/>
+ <connection refLocalId="12">
+ <position x="907" y="443"/>
+ <position x="880" y="443"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="12" height="30" width="79" executionOrderId="0" negated="false">
+ <position x="801" y="428"/>
+ <connectionPointOut>
+ <relPosition x="79" y="15"/>
+ </connectionPointOut>
+ <expression>lvl</expression>
+ </inVariable>
+ <block localId="14" typeName="TOF" instanceName="Timer" executionOrderId="0" height="98" width="47">
+ <position x="150" y="278"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="39"/>
+ <connection refLocalId="4">
+ <position x="150" y="317"/>
+ <position x="117" y="317"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="PT">
+ <connectionPointIn>
+ <relPosition x="0" y="78"/>
+ <connection refLocalId="1">
+ <position x="150" y="356"/>
+ <position x="117" y="356"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q">
+ <connectionPointOut>
+ <relPosition x="47" y="39"/>
+ </connectionPointOut>
+ </variable>
+ <variable formalParameter="ET">
+ <connectionPointOut>
+ <relPosition x="47" y="78"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="1" executionOrderId="0" height="30" width="61" negated="false">
+ <position x="56" y="341"/>
+ <connectionPointOut>
+ <relPosition x="61" y="15"/>
+ </connectionPointOut>
+ <expression>T#3s</expression>
+ </inVariable>
+ <comment localId="15" height="249" width="682">
+ <position x="19" y="8"/>
+ <content>
+ <xhtml:p><![CDATA[This example shows logging functionality in Beremiz.
+Here are shown two ways of logging:
+- from IEC PLC program;
+- from python extension.
+
+In IEC PLC program every third second (beat) new message is generated and put in PLC log.
+See function blocks below.
+
+Every 15 seconds status of PLC program is put in PLC log from python extension.
+For more information about logging from python look at 0.x: py_ext_0 implementation in project tree.
+]]></xhtml:p>
+ </content>
+ </comment>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#100ms">
+ <pouInstance name="prg" typeName="program0"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/logging/py_ext_0@py_ext/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<BaseParams Name="py_ext_0" IEC_Channel="0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/logging/py_ext_0@py_ext/pyfile.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <variables/>
+ <globals>
+ <xhtml:p><![CDATA[import threading, time
+
+MyT = None
+Stop = False
+
+def StartLog():
+ global MyT
+ MyT=threading.Thread(target = DoLog)
+ MyT.start()
+
+def DoLog():
+ global Stop
+ while not Stop:
+ PLCObject.LogMessage("Python side Logging (PLC is %s)"%PLCObject.PLCStatus)
+ time.sleep(0.3)
+
+def StopLog():
+ global MyT,Stop
+ Stop=True
+
+_runtime_init.append(StartLog)
+_runtime_cleanup.append(StopLog)
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[]]></xhtml:p>
+ </stop>
+</PyFile>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/modbus/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_0@ModbusRequest/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/ModbusRequest_1@ModbusRequest/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPclient_0@ModbusTCPclient/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/HoldingRegs@MemoryArea/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/InputRegs@MemoryArea/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/ModbusTCPserver_0@ModbusTCPserver/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/baseconfnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/modbus_0@modbus/confnode.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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/tests/projects/modbus/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/beremiz.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61427">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/plc.xml Tue Jan 25 17:05:14 2022 +0100
@@ -0,0 +1,1104 @@
+<?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="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2022-01-18T11:38:21">
+ <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="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="TargetPressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="selection">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="Pump0">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump1">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump2">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump3">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump4">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump5">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump6">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump7">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ </localVars>
+ <externalVars>
+ <variable name="CURRENT_PAGE_0">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ </externalVars>
+ <localVars>
+