--- a/tests/BACnet/bacnet_0@bacnet/bacnet_slave Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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/canopen_master/beremiz.xml Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Mon Jan 24 11:14:56 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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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 Sun Feb 13 21:21: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>
+ <variable name="PAGESWITCH">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="R_TRIG0">
+ <type>
+ <derived name="R_TRIG"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="60" width="127">
+ <position x="595" y="50"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="100"/>
+ <position x="582" y="100"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="445" y="65"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="1" typeName="PumpControl" instanceName="Pump1" executionOrderId="0" height="60" width="127">
+ <position x="595" y="280"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="330"/>
+ <position x="582" y="330"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="2" typeName="PumpControl" instanceName="Pump2" executionOrderId="0" height="60" width="127">
+ <position x="595" y="160"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="210"/>
+ <position x="582" y="210"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="3" typeName="PumpControl" instanceName="Pump3" executionOrderId="0" height="60" width="127">
+ <position x="595" y="395"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="445"/>
+ <position x="582" y="445"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="6" typeName="PumpControl" instanceName="Pump4" executionOrderId="0" height="60" width="127">
+ <position x="595" y="515"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="565"/>
+ <position x="582" y="565"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="7" typeName="PumpControl" instanceName="Pump5" executionOrderId="0" height="60" width="127">
+ <position x="595" y="645"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="11">
+ <position x="595" y="675"/>
+ <position x="570" y="675"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="695"/>
+ <position x="582" y="695"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="8" typeName="PumpControl" instanceName="Pump6" executionOrderId="0" height="60" width="127">
+ <position x="595" y="775"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="825"/>
+ <position x="582" y="825"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="9" typeName="PumpControl" instanceName="Pump7" executionOrderId="0" height="60" width="127">
+ <position x="595" y="895"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="10">
+ <position x="595" y="925"/>
+ <position x="560" y="925"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="945"/>
+ <position x="582" y="945"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="10" executionOrderId="0" height="25" width="20" negated="false">
+ <position x="540" y="915"/>
+ <connectionPointOut>
+ <relPosition x="20" y="10"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inVariable localId="11" executionOrderId="0" height="25" width="20" negated="false">
+ <position x="550" y="665"/>
+ <connectionPointOut>
+ <relPosition x="20" y="10"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inOutVariable localId="12" executionOrderId="0" height="25" width="125" negatedOut="false" negatedIn="false">
+ <position x="410" y="205"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="13" formalParameter="OUT">
+ <position x="410" y="215"/>
+ <position x="385" y="215"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="125" y="10"/>
+ </connectionPointOut>
+ <expression>CURRENT_PAGE_0</expression>
+ </inOutVariable>
+ <block localId="13" typeName="SEL" executionOrderId="0" height="80" width="65">
+ <position x="320" y="185"/>
+ <inputVariables>
+ <variable formalParameter="G">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="17" formalParameter="Q">
+ <position x="320" y="215"/>
+ <position x="280" y="215"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN0">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="12">
+ <position x="320" y="235"/>
+ <position x="60" y="235"/>
+ <position x="60" y="155"/>
+ <position x="550" y="155"/>
+ <position x="550" y="215"/>
+ <position x="535" y="215"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="70"/>
+ <connection refLocalId="16">
+ <position x="320" y="255"/>
+ <position x="290" y="255"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="15" executionOrderId="0" height="25" width="90" negated="false">
+ <position x="100" y="205"/>
+ <connectionPointOut>
+ <relPosition x="90" y="10"/>
+ </connectionPointOut>
+ <expression>PAGESWITCH</expression>
+ </inVariable>
+ <inVariable localId="16" executionOrderId="0" height="25" width="220" negated="false">
+ <position x="70" y="245"/>
+ <connectionPointOut>
+ <relPosition x="220" y="10"/>
+ </connectionPointOut>
+ <expression>'!RelativePageTest@/PUMP2'</expression>
+ </inVariable>
+ <block localId="17" typeName="R_TRIG" instanceName="R_TRIG0" executionOrderId="0" height="40" width="60">
+ <position x="220" y="185"/>
+ <inputVariables>
+ <variable formalParameter="CLK">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="15">
+ <position x="220" y="215"/>
+ <position x="190" y="215"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="Q">
+ <connectionPointOut>
+ <relPosition x="60" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ </FBD>
+ </body>
+ </pou>
+ <pou name="PumpControl" pouType="functionBlock">
+ <interface>
+ <inputVars>
+ <variable name="Pump">
+ <type>
+ <derived name="HMI_NODE"/>
+ </type>
+ <initialValue>
+ <simpleValue value="1"/>
+ </initialValue>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="Pressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ <inputVars>
+ <variable name="TargetPressure">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="Sloth">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="boolout">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="boolin">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ <initialValue>
+ <simpleValue value="True"/>
+ </initialValue>
+ </variable>
+ <variable name="strout">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ <variable name="strin">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ <initialValue>
+ <simpleValue value="blup"/>
+ </initialValue>
+ </variable>
+ <variable name="floating">
+ <type>
+ <derived name="HMI_REAL"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="150" y="100"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <inOutVariable localId="4" executionOrderId="0" height="30" width="60" negatedOut="false" negatedIn="false">
+ <position x="510" y="80"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="6" formalParameter="OUT">
+ <position x="510" y="95"/>
+ <position x="470" y="95"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inOutVariable>
+ <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65">
+ <position x="405" y="65"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="4">
+ <position x="405" y="95"/>
+ <position x="385" y="95"/>
+ <position x="385" y="50"/>
+ <position x="580" y="50"/>
+ <position x="580" y="95"/>
+ <position x="570" y="95"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="405" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="150" y="135"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65">
+ <position x="295" y="85"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="295" y="115"/>
+ <position x="275" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="1">
+ <position x="295" y="135"/>
+ <position x="285" y="135"/>
+ <position x="285" y="150"/>
+ <position x="225" y="150"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="190"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="435" y="205"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="8" formalParameter="OUT">
+ <position x="435" y="220"/>
+ <position x="410" y="220"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Pressure</expression>
+ </outVariable>
+ <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="345" y="190"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="345" y="220"/>
+ <position x="335" y="220"/>
+ <position x="335" y="205"/>
+ <position x="300" y="205"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="9">
+ <position x="345" y="240"/>
+ <position x="300" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="225"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>100</expression>
+ </inVariable>
+ <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65">
+ <position x="360" y="345"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="13" formalParameter="OUT">
+ <position x="360" y="375"/>
+ <position x="330" y="375"/>
+ <position x="330" y="332"/>
+ <position x="440" y="332"/>
+ <position x="440" y="300"/>
+ <position x="430" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="14">
+ <position x="360" y="395"/>
+ <position x="322" y="395"/>
+ <position x="322" y="400"/>
+ <position x="285" y="400"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false">
+ <position x="495" y="355"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="10" formalParameter="OUT">
+ <position x="495" y="370"/>
+ <position x="450" y="370"/>
+ <position x="450" y="375"/>
+ <position x="425" y="375"/>
+ </connection>
+ </connectionPointIn>
+ <expression>strout</expression>
+ </outVariable>
+ <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="145" y="285"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115">
+ <position x="315" y="270"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="12">
+ <position x="315" y="300"/>
+ <position x="270" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false">
+ <position x="235" y="385"/>
+ <connectionPointOut>
+ <relPosition x="50" y="15"/>
+ </connectionPointOut>
+ <expression>strin</expression>
+ </inVariable>
+ <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="690" y="210"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>boolin</expression>
+ </inVariable>
+ <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false">
+ <position x="915" y="240"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="17" formalParameter="OUT">
+ <position x="915" y="255"/>
+ <position x="880" y="255"/>
+ </connection>
+ </connectionPointIn>
+ <expression>boolout</expression>
+ </outVariable>
+ <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65">
+ <position x="815" y="225"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="15">
+ <position x="815" y="255"/>
+ <position x="762" y="255"/>
+ <position x="762" y="225"/>
+ <position x="750" y="225"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="21" formalParameter="OUT">
+ <position x="815" y="275"/>
+ <position x="750" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="455" y="260"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65">
+ <position x="585" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="18">
+ <position x="585" y="275"/>
+ <position x="530" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="20">
+ <position x="585" y="295"/>
+ <position x="555" y="295"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="535" y="280"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>2</expression>
+ </inVariable>
+ <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="685" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="19" formalParameter="OUT">
+ <position x="685" y="275"/>
+ <position x="650" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="22">
+ <position x="685" y="295"/>
+ <position x="670" y="295"/>
+ <position x="670" y="330"/>
+ <position x="650" y="330"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="630" y="315"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <outVariable localId="23" executionOrderId="0" height="25" width="75" negated="false">
+ <position x="935" y="120"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="25" formalParameter="OUT">
+ <position x="935" y="130"/>
+ <position x="922" y="130"/>
+ <position x="922" y="110"/>
+ <position x="910" y="110"/>
+ </connection>
+ </connectionPointIn>
+ <expression>floating</expression>
+ </outVariable>
+ <inVariable localId="24" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="615" y="65"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <block localId="25" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="845" y="80"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="27" formalParameter="OUT">
+ <position x="845" y="110"/>
+ <position x="822" y="110"/>
+ <position x="822" y="80"/>
+ <position x="800" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="26">
+ <position x="845" y="130"/>
+ <position x="810" y="130"/>
+ <position x="810" y="135"/>
+ <position x="800" y="135"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="26" executionOrderId="0" height="30" width="90" negated="false">
+ <position x="710" y="120"/>
+ <connectionPointOut>
+ <relPosition x="90" y="15"/>
+ </connectionPointOut>
+ <expression>REAL#100.0</expression>
+ </inVariable>
+ <block localId="27" typeName="INT_TO_REAL" executionOrderId="0" height="40" width="100">
+ <position x="700" y="50"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="24">
+ <position x="700" y="80"/>
+ <position x="675" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="100" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="28" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="410" y="430"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="36">
+ <position x="418" y="460"/>
+ <position x="401" y="460"/>
+ <position x="401" y="435"/>
+ <position x="380" y="435"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="29">
+ <position x="410" y="480"/>
+ <position x="367" y="480"/>
+ <position x="367" y="475"/>
+ <position x="325" y="475"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="29" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="305" y="460"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inVariable localId="32" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="765" y="505"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <outVariable localId="31" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="925" y="460"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="33" formalParameter="OUT">
+ <position x="925" y="475"/>
+ <position x="890" y="475"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Sloth</expression>
+ </outVariable>
+ <block localId="33" typeName="MUX" executionOrderId="0" height="80" width="65">
+ <position x="825" y="445"/>
+ <inputVariables>
+ <variable formalParameter="K">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="34" formalParameter="OUT">
+ <position x="825" y="475"/>
+ <position x="685" y="475"/>
+ <position x="685" y="465"/>
+ <position x="675" y="465"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN0">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="30">
+ <position x="825" y="495"/>
+ <position x="800" y="495"/>
+ <position x="800" y="485"/>
+ <position x="790" y="485"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="70"/>
+ <connection refLocalId="32">
+ <position x="825" y="515"/>
+ <position x="795" y="515"/>
+ <position x="795" y="520"/>
+ <position x="785" y="520"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="30" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="715" y="470"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <block localId="34" typeName="BOOL_TO_SINT" executionOrderId="0" height="40" width="110">
+ <position x="565" y="435"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="28" formalParameter="OUT">
+ <position x="565" y="465"/>
+ <position x="520" y="465"/>
+ <position x="520" y="460"/>
+ <position x="475" y="460"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="110" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <connector name="Connection0" localId="35" height="25" width="125">
+ <position x="400" y="140"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="400" y="150"/>
+ <position x="375" y="150"/>
+ <position x="375" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </connector>
+ <continuation name="Connection0" localId="36" height="25" width="125">
+ <position x="255" y="425"/>
+ <connectionPointOut>
+ <relPosition x="125" y="10"/>
+ </connectionPointOut>
+ </continuation>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/py_ext_0@py_ext/baseconfnode.xml Sun Feb 13 21:21: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="py_ext_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/py_ext_0@py_ext/pyfile.xml Sun Feb 13 21:21:14 2022 +0100
@@ -0,0 +1,99 @@
+<?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>
+ <variable name="AlarmNotify" type="HMI_INT"/>
+ <variable name="SendAlarm" type="HMI_INT" onchange="TriggerAlarm"/>
+ <variable name="AlarmText" type="HMI_STRING" initial="'POS'"/>
+ <variable name="AlarmStatus" type="HMI_STRING" initial="'alarm'"/>
+ </variables>
+ <globals>
+ <xhtml:p><![CDATA[
+from twisted.web.resource import Resource
+import json, time, random, collections
+
+Alarms = []
+AlarmIndex = {}
+lastid = 0
+
+def TriggerAlarm(changed_var_name):
+ global Alarms, lastid
+ new_entry = [time.time(), PLCGlobals.AlarmText, PLCGlobals.AlarmStatus, lastid]
+ Alarms.append(new_entry)
+ AlarmIndex[lastid] = new_entry
+ lastid = lastid + 1
+ PLCGlobals.AlarmNotify = random.randint(0, 4294967296)
+
+class AlarmJsonResource(Resource):
+ def render_GET(self, request):
+ return ''
+
+ def render_POST(self, request):
+ newstr = request.content.getvalue()
+ newdata = json.loads(newstr)
+ args = newdata[u'args']
+ range_feedback = newdata[u'range']
+ slider_position = newdata[u'position']
+ visible = newdata[u'visible']
+ extra = newdata[u'extra']
+ options = newdata[u'options']
+
+ if len(options) == 1 :
+ action, = options
+ if action == "action_reset":
+ del Alarms[:]
+ AlarmIndex.clear()
+ elif len(options) == 2 :
+ action, alarmid = options
+ if action == "onClick[acknowledge]":
+ AlarmIndex[int(alarmid)][2] = "ack"
+
+ answer = self.renderTable(range_feedback, slider_position, visible, extra)
+ janswer = json.dumps(answer)
+ return janswer
+
+ def renderTable(self, old_range, old_position, visible, extra):
+ if len(extra) > 0 and extra[0] != "":
+ fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1]
+ else:
+ fAlarms = Alarms[:]
+ fAlarms.reverse()
+ new_range = len(fAlarms)
+ delta = new_range - visible
+ new_position = 0 if delta <= 0 else delta if old_position > delta else old_position
+ new_visible = new_range if delta <= 0 else visible
+
+ visible_alarms = []
+ for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]:
+ visible_alarms.append({
+ "time": time.ctime(ts),
+ "text": text, # TODO translate text
+ "status": status,
+ "alarmid": alarmid
+ })
+
+ return new_range, new_position, visible_alarms
+
+
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[
+
+AddPathToSVGHMIServers("alarms", AlarmJsonResource)
+
+
+]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </stop>
+</PyFile>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/svghmi_0@svghmi/baseconfnode.xml Sun Feb 13 21:21: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="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/svghmi_0@svghmi/confnode.xml Sun Feb 13 21:21:14 2022 +0100
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" WatchdogInitial="10" WatchdogInterval="5" EnableWatchdog="true" Path="{name}" OnStart="chromium --disable-gpu --new-window --user-data-dir=. {url}"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/projects/svghmi/svghmi_0@svghmi/svghmi.svg Sun Feb 13 21:21:14 2022 +0100
@@ -0,0 +1,8357 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient34303"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient20537"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop20535" />
+ </linearGradient>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1971"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1969"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1656"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1654"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient962">
+ <stop
+ style="stop-color:#ff3000;stop-opacity:1;"
+ offset="0"
+ id="stop958" />
+ <stop
+ style="stop-color:#0022ff;stop-opacity:1"
+ offset="1"
+ id="stop960" />
+ </linearGradient>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path895"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient962"
+ id="linearGradient964"
+ x1="113.38908"
+ y1="-62.210247"
+ x2="113.38908"
+ y2="4.0725975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5,0,0,0.5,73.144796,-1.4471993)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="hmi0"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="0.20046201"
+ inkscape:cx="1401.1703"
+ inkscape:cy="-1495.7332"
+ inkscape:window-width="1600"
+ inkscape:window-height="836"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="true" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g7994"
+ id="use7996"
+ transform="translate(1480,800)"
+ width="100%"
+ height="100%"
+ inkscape:label="HMI:Page:RelativePageTest@/PUMP0" />
+ <rect
+ sodipodi:insensitive="true"
+ inkscape:label="HMI:Page:Conf"
+ y="780"
+ x="0"
+ height="720"
+ width="1280"
+ id="rect1016"
+ style="color:#000000;fill:#000000" />
+ <g
+ id="g1082"
+ inkscape:label="HMI:Jump:Home"
+ transform="translate(-940,-558)">
+ <g
+ id="g1152"
+ inkscape:label="button">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z"
+ id="rect1022"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccc" />
+ </g>
+ <g
+ id="g1149"
+ inkscape:label="text">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="home_jmp"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1028"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;fill:#4d4d4d"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home" />
+ <g
+ id="g1077"
+ inkscape:label="HMI:Jump:Conf"
+ transform="matrix(0.57180538,0,0,0.57180538,-373.64055,248.51305)">
+ <g
+ id="g1159"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1020"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1156"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="setting_jmp"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1024"
+ sodipodi:role="line">Settings</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g84"
+ inkscape:label="HMI:Input@/TARGETPRESSURE,0,100"
+ transform="matrix(0.35865594,0,0,0.35865594,22.072155,63.074421)">
+ <text
+ inkscape:label="value"
+ id="text5151"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="218.24219"