exemples/csv_read/plc.xml
author Edouard Tisserant
Fri, 16 Dec 2022 13:46:07 +0100
changeset 3708 2299f25779ce
permissions -rw-r--r--
examples: add "csv_read" project to demo CSV access from PLC
<?xml version='1.0' encoding='utf-8'?>
<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
  <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2022-12-09T12:13:26"/>
  <contentHeader name="Unnamed" modificationDateTime="2022-12-16T11:30:15">
    <coordinateInfo>
      <fbd>
        <scaling x="5" y="5"/>
      </fbd>
      <ld>
        <scaling x="0" y="0"/>
      </ld>
      <sfc>
        <scaling x="0" y="0"/>
      </sfc>
    </coordinateInfo>
  </contentHeader>
  <types>
    <dataTypes/>
    <pous>
      <pou name="program0" pouType="program">
        <interface>
          <localVars>
            <variable name="CSV_NAME_0">
              <type>
                <derived name="HMI_STRING"/>
              </type>
              <initialValue>
                <simpleValue value="'my_int_csv.csv'"/>
              </initialValue>
            </variable>
            <variable name="CSV_NAME_1">
              <type>
                <derived name="HMI_STRING"/>
              </type>
              <initialValue>
                <simpleValue value="'my_str_csv.csv'"/>
              </initialValue>
            </variable>
            <variable name="CSV_ROWSTR">
              <type>
                <derived name="HMI_STRING"/>
              </type>
              <initialValue>
                <simpleValue value="'Recipe 5'"/>
              </initialValue>
            </variable>
            <variable name="CSV_COLSTR">
              <type>
                <derived name="HMI_STRING"/>
              </type>
              <initialValue>
                <simpleValue value="'Ingredient D'"/>
              </initialValue>
            </variable>
            <variable name="CSV_ROWIDX">
              <type>
                <derived name="HMI_INT"/>
              </type>
              <initialValue>
                <simpleValue value="5"/>
              </initialValue>
            </variable>
            <variable name="CSV_COLIDX">
              <type>
                <derived name="HMI_INT"/>
              </type>
              <initialValue>
                <simpleValue value="4"/>
              </initialValue>
            </variable>
            <variable name="csv_read_by_string0">
              <type>
                <derived name="csv_read_by_string"/>
              </type>
            </variable>
            <variable name="csv_read_by_int0">
              <type>
                <derived name="csv_read_by_int"/>
              </type>
            </variable>
            <variable name="csv_reload0">
              <type>
                <derived name="csv_reload"/>
              </type>
            </variable>
            <variable name="CSV_RES_0">
              <type>
                <derived name="HMI_STRING"/>
              </type>
            </variable>
            <variable name="CSV_RES_1">
              <type>
                <derived name="HMI_STRING"/>
              </type>
            </variable>
            <variable name="CSV_ACK_0">
              <type>
                <derived name="HMI_BOOL"/>
              </type>
            </variable>
            <variable name="CSV_ACK_1">
              <type>
                <derived name="HMI_BOOL"/>
              </type>
            </variable>
            <variable name="CSV_RELOAD_BTN">
              <type>
                <derived name="HMI_BOOL"/>
              </type>
            </variable>
          </localVars>
        </interface>
        <body>
          <FBD>
            <block localId="1" typeName="csv_read_by_string" instanceName="csv_read_by_string0" executionOrderId="0" height="100" width="154">
              <position x="450" y="170"/>
              <inputVariables>
                <variable formalParameter="FILE_NAME">
                  <connectionPointIn>
                    <relPosition x="0" y="35"/>
                    <connection refLocalId="7">
                      <position x="450" y="205"/>
                      <position x="390" y="205"/>
                    </connection>
                  </connectionPointIn>
                </variable>
                <variable formalParameter="ROW">
                  <connectionPointIn>
                    <relPosition x="0" y="60"/>
                    <connection refLocalId="8">
                      <position x="450" y="230"/>
                      <position x="390" y="230"/>
                    </connection>
                  </connectionPointIn>
                </variable>
                <variable formalParameter="COLUMN">
                  <connectionPointIn>
                    <relPosition x="0" y="85"/>
                    <connection refLocalId="9">
                      <position x="450" y="255"/>
                      <position x="390" y="255"/>
                    </connection>
                  </connectionPointIn>
                </variable>
              </inputVariables>
              <inOutVariables/>
              <outputVariables>
                <variable formalParameter="ACK">
                  <connectionPointOut>
                    <relPosition x="154" y="35"/>
                  </connectionPointOut>
                </variable>
                <variable formalParameter="RESULT">
                  <connectionPointOut>
                    <relPosition x="154" y="60"/>
                  </connectionPointOut>
                </variable>
              </outputVariables>
            </block>
            <block localId="2" typeName="csv_read_by_int" instanceName="csv_read_by_int0" executionOrderId="0" height="100" width="155">
              <position x="450" y="40"/>
              <inputVariables>
                <variable formalParameter="FILE_NAME">
                  <connectionPointIn>
                    <relPosition x="0" y="35"/>
                    <connection refLocalId="4">
                      <position x="450" y="75"/>
                      <position x="390" y="75"/>
                    </connection>
                  </connectionPointIn>
                </variable>
                <variable formalParameter="ROW">
                  <connectionPointIn>
                    <relPosition x="0" y="60"/>
                    <connection refLocalId="5">
                      <position x="450" y="100"/>
                      <position x="390" y="100"/>
                    </connection>
                  </connectionPointIn>
                </variable>
                <variable formalParameter="COLUMN">
                  <connectionPointIn>
                    <relPosition x="0" y="85"/>
                    <connection refLocalId="6">
                      <position x="450" y="125"/>
                      <position x="390" y="125"/>
                    </connection>
                  </connectionPointIn>
                </variable>
              </inputVariables>
              <inOutVariables/>
              <outputVariables>
                <variable formalParameter="ACK">
                  <connectionPointOut>
                    <relPosition x="155" y="35"/>
                  </connectionPointOut>
                </variable>
                <variable formalParameter="RESULT">
                  <connectionPointOut>
                    <relPosition x="155" y="60"/>
                  </connectionPointOut>
                </variable>
              </outputVariables>
            </block>
            <block localId="3" typeName="csv_reload" instanceName="csv_reload0" executionOrderId="0" height="60" width="135">
              <position x="470" y="334"/>
              <inputVariables>
                <variable formalParameter="TRIG">
                  <connectionPointIn>
                    <relPosition x="0" y="31"/>
                    <connection refLocalId="14">
                      <position x="470" y="365"/>
                      <position x="425" y="365"/>
                    </connection>
                  </connectionPointIn>
                </variable>
              </inputVariables>
              <inOutVariables/>
              <outputVariables>
                <variable formalParameter="ACK">
                  <connectionPointOut>
                    <relPosition x="135" y="31"/>
                  </connectionPointOut>
                </variable>
                <variable formalParameter="RESULT">
                  <connectionPointOut>
                    <relPosition x="135" y="51"/>
                  </connectionPointOut>
                </variable>
              </outputVariables>
            </block>
            <inVariable localId="4" executionOrderId="0" height="30" width="110" negated="false">
              <position x="280" y="60"/>
              <connectionPointOut>
                <relPosition x="110" y="15"/>
              </connectionPointOut>
              <expression>CSV_NAME_0</expression>
            </inVariable>
            <inVariable localId="5" executionOrderId="0" height="25" width="110" negated="false">
              <position x="280" y="90"/>
              <connectionPointOut>
                <relPosition x="110" y="10"/>
              </connectionPointOut>
              <expression>CSV_ROWIDX</expression>
            </inVariable>
            <inVariable localId="6" executionOrderId="0" height="25" width="110" negated="false">
              <position x="280" y="115"/>
              <connectionPointOut>
                <relPosition x="110" y="10"/>
              </connectionPointOut>
              <expression>CSV_COLIDX</expression>
            </inVariable>
            <inVariable localId="7" executionOrderId="0" height="30" width="110" negated="false">
              <position x="280" y="190"/>
              <connectionPointOut>
                <relPosition x="110" y="15"/>
              </connectionPointOut>
              <expression>CSV_NAME_1</expression>
            </inVariable>
            <inVariable localId="8" executionOrderId="0" height="25" width="110" negated="false">
              <position x="280" y="220"/>
              <connectionPointOut>
                <relPosition x="110" y="10"/>
              </connectionPointOut>
              <expression>CSV_ROWSTR</expression>
            </inVariable>
            <inVariable localId="9" executionOrderId="0" height="25" width="110" negated="false">
              <position x="280" y="245"/>
              <connectionPointOut>
                <relPosition x="110" y="10"/>
              </connectionPointOut>
              <expression>CSV_COLSTR</expression>
            </inVariable>
            <outVariable localId="10" executionOrderId="0" height="25" width="82" negated="false">
              <position x="645" y="90"/>
              <connectionPointIn>
                <relPosition x="0" y="10"/>
                <connection refLocalId="2" formalParameter="RESULT">
                  <position x="645" y="100"/>
                  <position x="605" y="100"/>
                </connection>
              </connectionPointIn>
              <expression>CSV_RES_0</expression>
            </outVariable>
            <outVariable localId="11" executionOrderId="0" height="25" width="82" negated="false">
              <position x="645" y="65"/>
              <connectionPointIn>
                <relPosition x="0" y="10"/>
                <connection refLocalId="2" formalParameter="ACK">
                  <position x="645" y="75"/>
                  <position x="605" y="75"/>
                </connection>
              </connectionPointIn>
              <expression>CSV_ACK_0</expression>
            </outVariable>
            <outVariable localId="12" executionOrderId="0" height="25" width="82" negated="false">
              <position x="645" y="195"/>
              <connectionPointIn>
                <relPosition x="0" y="10"/>
                <connection refLocalId="1" formalParameter="ACK">
                  <position x="645" y="205"/>
                  <position x="604" y="205"/>
                </connection>
              </connectionPointIn>
              <expression>CSV_ACK_1</expression>
            </outVariable>
            <outVariable localId="13" executionOrderId="0" height="25" width="82" negated="false">
              <position x="645" y="220"/>
              <connectionPointIn>
                <relPosition x="0" y="10"/>
                <connection refLocalId="1" formalParameter="RESULT">
                  <position x="645" y="230"/>
                  <position x="604" y="230"/>
                </connection>
              </connectionPointIn>
              <expression>CSV_RES_1</expression>
            </outVariable>
            <inVariable localId="14" executionOrderId="0" height="25" width="125" negated="false">
              <position x="300" y="355"/>
              <connectionPointOut>
                <relPosition x="125" y="10"/>
              </connectionPointOut>
              <expression>CSV_RELOAD_BTN</expression>
            </inVariable>
          </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="program0"/>
          </task>
        </resource>
      </configuration>
    </configurations>
  </instances>
</project>