Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • silecs/opensilecs
  • k.fugiel/opensilecs
  • s.kupiecki/opensilecs
3 results
Show changes
Showing
with 4208 additions and 3250 deletions
#!/usr/bin/python
# Copyright 2016 CERN and GSI
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import unittest
from genparam import genParamBase
testFolder = "test"
generationFolder = testFolder + "/generated_temp/client"
comparisonFolder = testFolder + "/generated_correct/client"
def fakeGetSilecsDesignFilePath(workspacePath, designName):
return testFolder + "/AllTypes.silecsdesign"
def fakeGetParameterFile(workspacePath, deployName, controllerName):
return generationFolder + "/" + controllerName + ".silecsparam"
def fakeGetSilecsDeployFilePath(workspacePath, deployName):
return testFolder + "/AllTypesDU.silecsdeploy"
def fakeGetParameterFileDirectory(workspacePath, deployName):
return generationFolder
class TestGenParam(unittest.TestCase):
@classmethod
def setUpClass(cls):
super(TestGenParam, cls).setUpClass()
genParamBase(fakeGetSilecsDesignFilePath, fakeGetParameterFile,
fakeGetSilecsDeployFilePath, fakeGetParameterFileDirectory,
"fake", "AllTypesDU", "fake", "DEV")
def assertParameterFileEqual(self, filePath1, filePath2):
with open(filePath1) as a: a_content = a.readlines()
with open(filePath2) as b: b_content = b.readlines()
# Ignore lines with date
a_content = [line for line in a_content if not ("<Generation date=" in line)]
b_content = [line for line in b_content if not ("<Generation date=" in line)]
self.assertListEqual(a_content, b_content)
def compareGeneratedFiles(self, hostName, fileExtension):
fileGeneratedPath = generationFolder + "/" + hostName + fileExtension
fileCorrectPath = comparisonFolder + "/" + hostName + fileExtension
self.assertParameterFileEqual(fileGeneratedPath, fileCorrectPath)
def test_siemensSourcesTest(self):
self.compareGeneratedFiles("Siemens_TiaDevice", ".silecsparam")
self.compareGeneratedFiles("Siemens_TiaBlock", ".silecsparam")
self.compareGeneratedFiles("Siemens_Step7Device", ".silecsparam")
self.compareGeneratedFiles("Siemens_Step7Block", ".silecsparam")
def test_siemensVirtualSourcesTest(self):
self.compareGeneratedFiles("Virtual_SiemensBlock", ".silecsparam")
self.compareGeneratedFiles("Virtual_SiemensDevice", ".silecsparam")
def test_beckhoffSourcesTest(self):
self.compareGeneratedFiles("Beckhoff_BC9020", ".silecsparam")
self.compareGeneratedFiles("Beckhoff_CX9020_TC2", ".silecsparam")
self.compareGeneratedFiles("Beckhoff_CX9020_TC3", ".silecsparam")
def test_schneiderSourcesTest(self):
self.compareGeneratedFiles("Schneider_M340", ".silecsparam")
self.compareGeneratedFiles("Schneider_PremiumQuantum", ".silecsparam")
def test_rabbitSourcesTest(self):
self.compareGeneratedFiles("Rabbit_BlockMode", ".silecsparam")
self.compareGeneratedFiles("Rabbit_DeviceMode", ".silecsparam")
\ No newline at end of file
#!/usr/bin/python
# Copyright 2016 CERN and GSI
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import libxml2
import unittest
import genplcsrc
from model.Deploy.Deploy import Deploy
from model.Param.Param import Param
import libxml2
testFolder = "test"
generationFolder = testFolder + "/generated_temp"
comparisonFolder = testFolder + "/generated_correct"
generationFoldeController = generationFolder + "/controller"
comparisonFolderController = comparisonFolder + "/controller"
class TestGenPLCSrc(unittest.TestCase):
@classmethod
def setUpClass(cls):
super(TestGenPLCSrc, cls).setUpClass()
# Generate PLC sources once before the tests are run.
silecsDeploy = Deploy.getDeployFromFile(testFolder + "/AllTypesDU.silecsdeploy")
for controller in silecsDeploy.controllers:
paramsFile = generationFolder + "/client/" + controller.hostName + ".silecsparam"
paramDOM = libxml2.parseFile(paramsFile)
param = Param()
param.initFromXMLNode(paramDOM)
param.deployName = silecsDeploy.name
param.deployVersion = silecsDeploy.version
genplcsrc.generateControllerCode(controller, param, generationFoldeController ,{'errorlog': True})
def assertPLCCodeEqual(self, filePath1, filePath2):
with open(filePath1) as a: a_content = a.readlines()
with open(filePath2) as b: b_content = b.readlines()
# Ignore lines with date
a_content = [line for line in a_content if not (("DT#" in line) or ("SILECS_set_dt" in line))]
b_content = [line for line in b_content if not (("DT#" in line) or ("SILECS_set_dt" in line))]
self.assertListEqual(a_content, b_content)
def compareGeneratedFiles(self, hostName, fileExtension):
fileGeneratedPath = generationFoldeController + "/" + hostName + fileExtension
fileCorrectPath = comparisonFolderController + "/" + hostName + fileExtension
self.assertPLCCodeEqual(fileGeneratedPath, fileCorrectPath)
def test_siemensSourcesTest(self):
self.compareGeneratedFiles("Siemens_TiaDevice", ".scl")
self.compareGeneratedFiles("Siemens_TiaDevice", ".sdf")
self.compareGeneratedFiles("Siemens_TiaBlock", ".scl")
self.compareGeneratedFiles("Siemens_TiaBlock", ".sdf")
self.compareGeneratedFiles("Siemens_Step7Device", ".scl")
self.compareGeneratedFiles("Siemens_Step7Device", ".sdf")
self.compareGeneratedFiles("Siemens_Step7Block", ".scl")
self.compareGeneratedFiles("Siemens_Step7Block", ".sdf")
def test_siemensVirtualSourcesTest(self):
self.compareGeneratedFiles("SilecsHeader_1.0.0", ".h")
self.compareGeneratedFiles("Virtual_SiemensBlock_0.1.0", ".cpp")
self.compareGeneratedFiles("Virtual_SiemensDevice_0.1.0", ".cpp")
def test_beckhoffSourcesTest(self):
self.compareGeneratedFiles("Beckhoff_BC9020", ".exp")
self.compareGeneratedFiles("Beckhoff_CX9020_TC2", ".exp")
self.compareGeneratedFiles("Beckhoff_CX9020_TC3", ".exp")
def test_schneiderSourcesTest(self):
self.compareGeneratedFiles("Schneider_M340", ".xsy")
self.compareGeneratedFiles("Schneider_PremiumQuantum", ".xsy")
def test_rabbitSourcesTest(self):
self.compareGeneratedFiles("Rabbit_BlockMode", ".h")
self.compareGeneratedFiles("Rabbit_DeviceMode", ".h")
......@@ -14,38 +14,34 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import unittest
from test.testBase import *
from iecommon import *
from iecommon import hasChildren, getFirstChild
import libxml2
def testhasChildren():
document = '''<?xml version="1.0"?>
<a>
<b>
class TestIeCommon(unittest.TestCase):
def test_hasChildren(self):
document = '''<?xml version="1.0"?>
<a>
<b>
<c/>
</b>
</a>'''
root = libxml2.parseDoc(document)
self.assertTrue(hasChildren(root))
self.assertTrue(hasChildren(root.xpathEval('/a/b')[0]))
self.assertFalse(hasChildren(root.xpathEval('/a/b/c')[0]))
def test_getFirstChild(self):
document = '''<?xml version="1.0"?>
<a>
<b/>
<c/>
</b>
</a>'''
root = libxml2.parseDoc(document)
assertTrue(hasChildren(root))
assertTrue(hasChildren(root.xpathEval('/a/b')[0]))
assertFalse(hasChildren(root.xpathEval('/a/b/c')[0]))
def testGetFirstChild():
document = '''<?xml version="1.0"?>
<a>
<b/>
<c/>
<d/>
</a>'''
root = libxml2.parseDoc(document)
a = root.xpathEval('/a')[0]
b = getFirstChild(a)
assertEqual( root.xpathEval('/a/b')[0], b )
<d/>
</a>'''
root = libxml2.parseDoc(document)
a = root.xpathEval('/a')[0]
b = getFirstChild(a)
self.assertEqual(root.xpathEval('/a/b')[0], b)
def runTests():
testhasChildren()
testGetFirstChild()
allTestsOk()
/AllTypesFESA.design.testing
/*
* AllTypes.cpp
*
* Generated by SILECS framework tools
* Generated by SILECS framework tools. Will be overwritten on regeneration.
*/
#include <AllTypes/Common/AllTypes.h>
#include <silecs-communication/interface/utility/SilecsException.h>
#include <fesa-core/Synchronization/NoneContext.h>
#include <fesa-core/Synchronization/MultiplexingContext.h>
......@@ -12,12 +13,12 @@ namespace AllTypes
{
//Global objects of the SILECS class
Silecs::Service* AbstractAllTypes::pService_ = NULL;
Silecs::Cluster* AbstractAllTypes::pCluster_ = NULL;
Silecs::PLCHandler* AbstractAllTypes::pPLCHandler_ = NULL;
bool AbstractAllTypes::isInitialized_ = false;
MyROBlock_Type AllTypes::MyROBlock("MyROBlock");
MyRWBlock_Type AllTypes::MyRWBlock("MyRWBlock");
MyWOBlock_Type AllTypes::MyWOBlock("MyWOBlock");
MyCBlock_Type AllTypes::MyCBlock("MyCBlock");
//-------------------------------------------------------------------------------------------------------------
// Constructor & Destructor methods
......@@ -34,8 +35,11 @@ namespace AllTypes
MyWOBlock_Type::MyWOBlock_Type(std::string name): AbstractAllTypes(name) {}
MyWOBlock_Type::~MyWOBlock_Type() {}
MyCBlock_Type::MyCBlock_Type(std::string name): AbstractAllTypes(name) {}
MyCBlock_Type::~MyCBlock_Type() {}
//---------------------------------------------------------------------------------------------------------
// Set-up the SILECS components for the AbstractAllTypes class (service & cluster)
// Set-up the SILECS components for the AbstractAllTypes class (service & plchandler)
void AbstractAllTypes::setup(const ServiceLocator* serviceLocator)
{
......@@ -47,12 +51,11 @@ namespace AllTypes
// Enable the SILECS diagnostic with user topics if any
pService_->setArguments(serviceLocator->getUsrCmdArgs());
// Instantiate the SILECS Cluster object for the given Class/Version
GlobalDevice* pGlobalDevice = serviceLocator->getGlobalDevice();
pCluster_ = pService_->getCluster( "AllTypes", pGlobalDevice->plcClassVersion.get());
pPLCHandler_ = &pService_->getPLCHandler();
isInitialized_ = true;
// Connect each PLC of the Cluster that is referred from the FESA instance
// Connect each PLC of the PLCHandler that is referred from the FESA instance
std::vector<Device*> pDeviceCol = serviceLocator->getDeviceCollection();
for(std::vector<Device*>::iterator pDeviceIter=pDeviceCol.begin(); pDeviceIter!= pDeviceCol.end(); pDeviceIter++)
{
......@@ -60,18 +63,16 @@ namespace AllTypes
// Retrieve the PLC related to the current FESA device
// (from 'plcHostName' FESA field defined on that purpose).
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get());
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
// Update the PLC Slave registers from related FESA fields just before synchronising done at connection time
setPLCSlaveRegisters(pPLC, serviceLocator);
// Update PLC registers from related FESA fields just before synchronising done at connection time
updatePLCRegisters(pPLC, serviceLocator);
// Connect the PLC if not already connected
if (!pPLC->isEnabled())
{ pPLC->connect(/*synchroMode=*/Silecs::FULL_SYNCHRO, /*connectNow=*/true);
{ pPLC->connect(/*connectNow=*/true);
if (pPLC->isConnected())
{ // Update FESA fields from related PLC Master registers just after synchronising done at connection time
getPLCMasterRegisters(pPLC, serviceLocator);
}
updateFesaFields(pPLC, serviceLocator);
}
}
}
......@@ -86,29 +87,31 @@ namespace AllTypes
void AbstractAllTypes::cleanup()
{
// Attention! This method is responsible to stop all the PLC connections
// and to remove all the SILECS resources (Clusters and related components: PLCs, Devices, Registers, ..)
// and to remove all the SILECS resources (PLCs, Devices, Registers, ..)
// Calling method must ensure that no process is currently accessing these resources before cleaning.
//
Silecs::Service::deleteInstance();
}
//---------------------------------------------------------------------------------------------------------
// Synchronise PLC SLAVE/MASTER registers and related FESA fields (automatically called by the setup method @connection time)
void AbstractAllTypes::setPLCSlaveRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator)
//automatically called by the setup method at connection time)
void AbstractAllTypes::updatePLCRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator)
{
fesa::NoneContext noneContext;
AllTypes::MyRWBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext);
AllTypes::MyWOBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext);
AllTypes::MyCBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext);
}
void AbstractAllTypes::getPLCMasterRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator)
//---------------------------------------------------------------------------------------------------------
//automatically called by the setup method at connection time)
void AbstractAllTypes::updateFesaFields(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator)
{
fesa::NoneContext noneContext; //MASTER acquisition fields are not consistent, can be set with none-context
fesa::NoneContext noneContext;
AllTypes::MyROBlock.getPLCDevices(pPLC, serviceLocator, false, &noneContext);
AllTypes::MyRWBlock.getPLCDevices(pPLC, serviceLocator, false, &noneContext);
}
//---------------------------------------------------------------------------------------------------------
// General methods to synchronize the FESA fields and related PLC registers of the FESA server
......@@ -120,7 +123,7 @@ namespace AllTypes
void AbstractAllTypes::getAllDevices(const ServiceLocator* serviceLocator, const bool recvNow, MultiplexingContext* pContext)
{
if (recvNow) theCluster()->recv(blockName_);
if (recvNow) thePLCHandler()->recv(blockName_);
std::vector<Device*> deviceCol = serviceLocator->getDeviceCollection();
for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
......@@ -158,7 +161,7 @@ namespace AllTypes
{ setOneDevice(*pDeviceIter, false, pContext);
}
if (sendNow) theCluster()->send(blockName_);
if (sendNow) thePLCHandler()->send(blockName_);
}
void AbstractAllTypes::setPLCDevices(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator, bool sendNow, MultiplexingContext* pContext)
......@@ -182,763 +185,1383 @@ namespace AllTypes
void AbstractAllTypes::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext) {};
void AbstractAllTypes::checkInitialized()
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - "
"AllTypes::setup needs to be called before any plc-interaction can be done");
}
};
//---------------------------------------------------------------------------------------------------------
void MyROBlock_Type::getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext)
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
}
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
if (recvNow) pPLCDevice -> recv(blockName_);
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
if (recvNow) pPLCDevice -> recv(blockName_);
pDevice->RO_int8.set( pPLCDevice->getRegister("RO_int8")->getValInt8(), pContext);
pDevice->RO_uint8_fesa.set( pPLCDevice->getRegister("RO_uint8")->getValUInt8(), pContext);
pDevice->RO_int16_fesa.set( pPLCDevice->getRegister("RO_int16")->getValInt16(), pContext);
pDevice->RO_uint16_fesa.set( pPLCDevice->getRegister("RO_uint16")->getValUInt16(), pContext);
pDevice->RO_int32_fesa.set( pPLCDevice->getRegister("RO_int32")->getValInt32(), pContext);
pDevice->RO_uint32_fesa.set( pPLCDevice->getRegister("RO_uint32")->getValUInt32(), pContext);
pDevice->RO_float32_fesa.set( pPLCDevice->getRegister("RO_float32")->getValFloat32(), pContext);
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RO_string");
pDevice->RO_string_fesa.set(pRegister->getValString().c_str(), pContext);
}
pDevice->RO_date_fesa.set( pPLCDevice->getRegister("RO_date")->getValDate(), pContext);
pDevice->RO_char_fesa.set( pPLCDevice->getRegister("RO_char")->getValInt8(), pContext);
pDevice->RO_byte_fesa.set( pPLCDevice->getRegister("RO_byte")->getValUInt8(), pContext);
pDevice->RO_word_fesa.set( pPLCDevice->getRegister("RO_word")->getValUInt16(), pContext);
pDevice->RO_dword_fesa.set( pPLCDevice->getRegister("RO_dword")->getValUInt32(), pContext);
pDevice->RO_int_fesa.set( pPLCDevice->getRegister("RO_int")->getValInt16(), pContext);
pDevice->RO_dint_fesa.set( pPLCDevice->getRegister("RO_dint")->getValInt32(), pContext);
pDevice->RO_real_fesa.set( pPLCDevice->getRegister("RO_real")->getValFloat32(), pContext);
pDevice->RO_dt_fesa.set( pPLCDevice->getRegister("RO_dt")->getValDate(), pContext);
pDevice->RO_int8.set( pPLCDevice->getRegister("RO_int8")->getVal<int8_t>(), pContext);
pDevice->RO_uint8_fesa.set( pPLCDevice->getRegister("RO_uint8")->getVal<uint8_t>(), pContext);
pDevice->RO_int16_fesa.set( pPLCDevice->getRegister("RO_int16")->getVal<int16_t>(), pContext);
pDevice->RO_uint16_fesa.set( pPLCDevice->getRegister("RO_uint16")->getVal<uint16_t>(), pContext);
pDevice->RO_int32_fesa.set( pPLCDevice->getRegister("RO_int32")->getVal<int32_t>(), pContext);
pDevice->RO_uint32_fesa.set( pPLCDevice->getRegister("RO_uint32")->getVal<uint32_t>(), pContext);
pDevice->RO_float32_fesa.set( pPLCDevice->getRegister("RO_float32")->getVal<float>(), pContext);
{
auto& pRegister = pPLCDevice->getRegister("RO_string");
pDevice->RO_string_fesa.set(pRegister->getVal<std::string>().c_str(), pContext);
}
pDevice->RO_date_fesa.set( pPLCDevice->getRegister("RO_date")->getVal<double>(), pContext);
pDevice->RO_char_fesa.set( pPLCDevice->getRegister("RO_char")->getVal<int8_t>(), pContext);
pDevice->RO_byte_fesa.set( pPLCDevice->getRegister("RO_byte")->getVal<uint8_t>(), pContext);
pDevice->RO_word_fesa.set( pPLCDevice->getRegister("RO_word")->getVal<uint16_t>(), pContext);
pDevice->RO_dword_fesa.set( pPLCDevice->getRegister("RO_dword")->getVal<uint32_t>(), pContext);
pDevice->RO_int_fesa.set( pPLCDevice->getRegister("RO_int")->getVal<int16_t>(), pContext);
pDevice->RO_dint_fesa.set( pPLCDevice->getRegister("RO_dint")->getVal<int32_t>(), pContext);
pDevice->RO_real_fesa.set( pPLCDevice->getRegister("RO_real")->getVal<float>(), pContext);
pDevice->RO_dt_fesa.set( pPLCDevice->getRegister("RO_dt")->getVal<double>(), pContext);
pDevice->RO_enum_fesa.set(static_cast<TEST_ENUM::TEST_ENUM>(pPLCDevice->getRegister("RO_enum")->getVal<int32_t>()), pContext);
}
void MyRWBlock_Type::getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext)
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
}
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
if (recvNow) pPLCDevice -> recv(blockName_);
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
if (recvNow) pPLCDevice -> recv(blockName_);
pDevice->RW_int8.set( pPLCDevice->getRegister("RW_int8")->getVal<int8_t>(), pContext);
pDevice->RW_uint8_fesa.set( pPLCDevice->getRegister("RW_uint8")->getVal<uint8_t>(), pContext);
pDevice->RW_int16_fesa.set( pPLCDevice->getRegister("RW_int16")->getVal<int16_t>(), pContext);
pDevice->RW_uint16_fesa.set( pPLCDevice->getRegister("RW_uint16")->getVal<uint16_t>(), pContext);
pDevice->RW_int32_fesa.set( pPLCDevice->getRegister("RW_int32")->getVal<int32_t>(), pContext);
pDevice->RW_uint32_fesa.set( pPLCDevice->getRegister("RW_uint32")->getVal<uint32_t>(), pContext);
pDevice->RW_float32_fesa.set( pPLCDevice->getRegister("RW_float32")->getVal<float>(), pContext);
{
auto& pRegister = pPLCDevice->getRegister("RW_string");
pDevice->RW_string_fesa.set(pRegister->getVal<std::string>().c_str(), pContext);
}
pDevice->RW_date_fesa.set( pPLCDevice->getRegister("RW_date")->getVal<double>(), pContext);
pDevice->RW_char_fesa.set( pPLCDevice->getRegister("RW_char")->getVal<int8_t>(), pContext);
pDevice->RW_byte_fesa.set( pPLCDevice->getRegister("RW_byte")->getVal<uint8_t>(), pContext);
pDevice->RW_word_fesa.set( pPLCDevice->getRegister("RW_word")->getVal<uint16_t>(), pContext);
pDevice->RW_dword_fesa.set( pPLCDevice->getRegister("RW_dword")->getVal<uint32_t>(), pContext);
pDevice->RW_int_fesa.set( pPLCDevice->getRegister("RW_int")->getVal<int16_t>(), pContext);
pDevice->RW_dint_fesa.set( pPLCDevice->getRegister("RW_dint")->getVal<int32_t>(), pContext);
pDevice->RW_real_fesa.set( pPLCDevice->getRegister("RW_real")->getVal<float>(), pContext);
pDevice->RW_dt_fesa.set( pPLCDevice->getRegister("RW_dt")->getVal<double>(), pContext);
{
auto& pRegister = pPLCDevice->getRegister("RW2_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_int8.set(pRegister->getRefArray2D<int8_t>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint8_t* arrData = pRegister->getRefArray2D<uint8_t>(dim1, dim2);
std::vector<int16_t> RW2_uint8(arrData, arrData + dim1 * dim2);
pDevice->RW2_uint8_fesa.set(RW2_uint8.data(), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_int16_fesa.set(pRegister->getRefArray2D<int16_t>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint16_t* arrData = pRegister->getRefArray2D<uint16_t>(dim1, dim2);
std::vector<int32_t> RW2_uint16(arrData, arrData + dim1 * dim2);
pDevice->RW2_uint16_fesa.set(RW2_uint16.data(), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_int32_fesa.set(pRegister->getRefArray2D<int32_t>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t* arrData = pRegister->getRefArray2D<uint32_t>(dim1, dim2);
std::vector<int64_t> RW2_uint32(arrData, arrData + dim1 * dim2);
pDevice->RW2_uint32_fesa.set(RW2_uint32.data(), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_float32_fesa.set(pRegister->getRefArray2D<float>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_date_fesa.set(pRegister->getRefArray2D<double>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_char_fesa.set(pRegister->getRefArray2D<int8_t>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint8_t* arrData = pRegister->getRefArray2D<uint8_t>(dim1, dim2);
std::vector<int16_t> RW2_byte(arrData, arrData + dim1 * dim2);
pDevice->RW2_byte_fesa.set(RW2_byte.data(), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint16_t* arrData = pRegister->getRefArray2D<uint16_t>(dim1, dim2);
std::vector<int32_t> RW2_word(arrData, arrData + dim1 * dim2);
pDevice->RW2_word_fesa.set(RW2_word.data(), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t* arrData = pRegister->getRefArray2D<uint32_t>(dim1, dim2);
std::vector<int64_t> RW2_dword(arrData, arrData + dim1 * dim2);
pDevice->RW2_dword_fesa.set(RW2_dword.data(), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_int_fesa.set(pRegister->getRefArray2D<int16_t>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_dint_fesa.set(pRegister->getRefArray2D<int32_t>(dim1, dim2), dim1, dim2, pContext);
}
{
auto& pRegister = pPLCDevice->getRegister("RW2_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_real_fesa.set(pRegister->getRefArray2D<float>(dim1, dim2), dim1, dim2, pContext);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int8");
auto& pRegister = pPLCDevice->getRegister("RW2_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW2_dt_fesa.set(pRegister->getRefArray2D<double>(dim1, dim2), dim1, dim2, pContext);
}
pDevice->RW_enum_fesa.set(static_cast<TEST_ENUM::TEST_ENUM>(pPLCDevice->getRegister("RW_enum")->getVal<int32_t>()), pContext);
}
void MyRWBlock_Type::getOneDevice(Device* pDevice, MyRWBlockPropPropertyData& data, const bool recvNow)
{
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
if (recvNow) pPLCDevice -> recv(blockName_);
data.setRW_int8(pPLCDevice->getRegister("RW_int8")->getVal<int8_t>());
data.setRW_uint8_fesa(pPLCDevice->getRegister("RW_uint8")->getVal<uint8_t>());
data.setRW_int16_fesa(pPLCDevice->getRegister("RW_int16")->getVal<int16_t>());
data.setRW_uint16_fesa(pPLCDevice->getRegister("RW_uint16")->getVal<uint16_t>());
data.setRW_int32_fesa(pPLCDevice->getRegister("RW_int32")->getVal<int32_t>());
data.setRW_uint32_fesa(pPLCDevice->getRegister("RW_uint32")->getVal<uint32_t>());
data.setRW_float32_fesa(pPLCDevice->getRegister("RW_float32")->getVal<float>());
{
auto& pRegister = pPLCDevice->getRegister("RW_string");
data.setRW_string_fesa(pRegister->getVal<std::string>().c_str());
}
data.setRW_date_fesa(pPLCDevice->getRegister("RW_date")->getVal<double>());
data.setRW_char_fesa(pPLCDevice->getRegister("RW_char")->getVal<int8_t>());
data.setRW_byte_fesa(pPLCDevice->getRegister("RW_byte")->getVal<uint8_t>());
data.setRW_word_fesa(pPLCDevice->getRegister("RW_word")->getVal<uint16_t>());
data.setRW_dword_fesa(pPLCDevice->getRegister("RW_dword")->getVal<uint32_t>());
data.setRW_int_fesa(pPLCDevice->getRegister("RW_int")->getVal<int16_t>());
data.setRW_dint_fesa(pPLCDevice->getRegister("RW_dint")->getVal<int32_t>());
data.setRW_real_fesa(pPLCDevice->getRegister("RW_real")->getVal<float>());
data.setRW_dt_fesa(pPLCDevice->getRegister("RW_dt")->getVal<double>());
{
auto& pRegister = pPLCDevice->getRegister("RW2_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_int8.set(pRegister->getRefInt8Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_int8(pRegister->getRefArray2D<int8_t>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint8");
auto& pRegister = pPLCDevice->getRegister("RW2_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
int16_t* RW_uint8 = (int16_t*)calloc(dim1*dim2, sizeof(int16_t));
pRegister->getValUInt8Array2D(RW_uint8, dim1, dim2); //use automatic conversion for JAVA non-supported type
pDevice->RW_uint8_fesa.set(RW_uint8, dim1, dim2, pContext);
free(RW_uint8);
uint8_t* arrData = pRegister->getRefArray2D<uint8_t>(dim1, dim2);
std::vector<int16_t> RW2_uint8(arrData, arrData + dim1 * dim2);
data.setRW2_uint8_fesa(RW2_uint8.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int16");
auto& pRegister = pPLCDevice->getRegister("RW2_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_int16_fesa.set(pRegister->getRefInt16Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_int16_fesa(pRegister->getRefArray2D<int16_t>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint16");
auto& pRegister = pPLCDevice->getRegister("RW2_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
int32_t* RW_uint16 = (int32_t*)calloc(dim1*dim2, sizeof(int32_t));
pRegister->getValUInt16Array2D(RW_uint16, dim1, dim2); //use automatic conversion for JAVA non-supported type
pDevice->RW_uint16_fesa.set(RW_uint16, dim1, dim2, pContext);
free(RW_uint16);
uint16_t* arrData = pRegister->getRefArray2D<uint16_t>(dim1, dim2);
std::vector<int32_t> RW2_uint16(arrData, arrData + dim1 * dim2);
data.setRW2_uint16_fesa(RW2_uint16.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int32");
auto& pRegister = pPLCDevice->getRegister("RW2_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_int32_fesa.set(pRegister->getRefInt32Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_int32_fesa(pRegister->getRefArray2D<int32_t>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint32");
auto& pRegister = pPLCDevice->getRegister("RW2_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
int64_t* RW_uint32 = (int64_t*)calloc(dim1*dim2, sizeof(int64_t));
pRegister->getValUInt32Array2D(RW_uint32, dim1, dim2); //use automatic conversion for JAVA non-supported type
pDevice->RW_uint32_fesa.set(RW_uint32, dim1, dim2, pContext);
free(RW_uint32);
uint32_t* arrData = pRegister->getRefArray2D<uint32_t>(dim1, dim2);
std::vector<int64_t> RW2_uint32(arrData, arrData + dim1 * dim2);
data.setRW2_uint32_fesa(RW2_uint32.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_float32");
auto& pRegister = pPLCDevice->getRegister("RW2_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_float32_fesa.set(pRegister->getRefFloat32Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_float32_fesa(pRegister->getRefArray2D<float>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_date");
auto& pRegister = pPLCDevice->getRegister("RW2_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_date_fesa.set(pRegister->getRefDateArray2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_date_fesa(pRegister->getRefArray2D<double>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_char");
auto& pRegister = pPLCDevice->getRegister("RW2_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_char_fesa.set(pRegister->getRefInt8Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_char_fesa(pRegister->getRefArray2D<int8_t>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_byte");
auto& pRegister = pPLCDevice->getRegister("RW2_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
int16_t* RW_byte = (int16_t*)calloc(dim1*dim2, sizeof(int16_t));
pRegister->getValUInt8Array2D(RW_byte, dim1, dim2); //use automatic conversion for JAVA non-supported type
pDevice->RW_byte_fesa.set(RW_byte, dim1, dim2, pContext);
free(RW_byte);
uint8_t* arrData = pRegister->getRefArray2D<uint8_t>(dim1, dim2);
std::vector<int16_t> RW2_byte(arrData, arrData + dim1 * dim2);
data.setRW2_byte_fesa(RW2_byte.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_word");
auto& pRegister = pPLCDevice->getRegister("RW2_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
int32_t* RW_word = (int32_t*)calloc(dim1*dim2, sizeof(int32_t));
pRegister->getValUInt16Array2D(RW_word, dim1, dim2); //use automatic conversion for JAVA non-supported type
pDevice->RW_word_fesa.set(RW_word, dim1, dim2, pContext);
free(RW_word);
uint16_t* arrData = pRegister->getRefArray2D<uint16_t>(dim1, dim2);
std::vector<int32_t> RW2_word(arrData, arrData + dim1 * dim2);
data.setRW2_word_fesa(RW2_word.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dword");
auto& pRegister = pPLCDevice->getRegister("RW2_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
int64_t* RW_dword = (int64_t*)calloc(dim1*dim2, sizeof(int64_t));
pRegister->getValUInt32Array2D(RW_dword, dim1, dim2); //use automatic conversion for JAVA non-supported type
pDevice->RW_dword_fesa.set(RW_dword, dim1, dim2, pContext);
free(RW_dword);
uint32_t* arrData = pRegister->getRefArray2D<uint32_t>(dim1, dim2);
std::vector<int64_t> RW2_dword(arrData, arrData + dim1 * dim2);
data.setRW2_dword_fesa(RW2_dword.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int");
auto& pRegister = pPLCDevice->getRegister("RW2_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_int_fesa.set(pRegister->getRefInt16Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_int_fesa(pRegister->getRefArray2D<int16_t>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dint");
auto& pRegister = pPLCDevice->getRegister("RW2_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_dint_fesa.set(pRegister->getRefInt32Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_dint_fesa(pRegister->getRefArray2D<int32_t>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_real");
auto& pRegister = pPLCDevice->getRegister("RW2_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_real_fesa.set(pRegister->getRefFloat32Array2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_real_fesa(pRegister->getRefArray2D<float>(dim1, dim2), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dt");
auto& pRegister = pPLCDevice->getRegister("RW2_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
pDevice->RW_dt_fesa.set(pRegister->getRefDateArray2D(dim1, dim2), dim1, dim2, pContext);
data.setRW2_dt_fesa(pRegister->getRefArray2D<double>(dim1, dim2), dim1, dim2);
}
data.setRW_enum_fesa(static_cast<TEST_ENUM::TEST_ENUM>(pPLCDevice->getRegister("RW_enum")->getVal<int32_t>()));
}
void MyRWBlock_Type::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext)
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
}
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int8");
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
pPLCDevice->getRegister("RW_int8")->setVal<int8_t>( pDevice->RW_int8.get(pContext));
pPLCDevice->getRegister("RW_uint8")->setVal<uint8_t>( (uint8_t)pDevice->RW_uint8_fesa.get(pContext));
pPLCDevice->getRegister("RW_int16")->setVal<int16_t>( pDevice->RW_int16_fesa.get(pContext));
pPLCDevice->getRegister("RW_uint16")->setVal<uint16_t>( (uint16_t)pDevice->RW_uint16_fesa.get(pContext));
pPLCDevice->getRegister("RW_int32")->setVal<int32_t>( pDevice->RW_int32_fesa.get(pContext));
pPLCDevice->getRegister("RW_uint32")->setVal<uint32_t>( (uint32_t)pDevice->RW_uint32_fesa.get(pContext));
pPLCDevice->getRegister("RW_float32")->setVal<float>( pDevice->RW_float32_fesa.get(pContext));
pPLCDevice->getRegister("RW_string")->setVal<std::string>(pDevice->RW_string_fesa.get(pContext));
pPLCDevice->getRegister("RW_date")->setVal<double>( pDevice->RW_date_fesa.get(pContext));
pPLCDevice->getRegister("RW_char")->setVal<int8_t>( pDevice->RW_char_fesa.get(pContext));
pPLCDevice->getRegister("RW_byte")->setVal<uint8_t>( (uint8_t)pDevice->RW_byte_fesa.get(pContext));
pPLCDevice->getRegister("RW_word")->setVal<uint16_t>( (uint16_t)pDevice->RW_word_fesa.get(pContext));
pPLCDevice->getRegister("RW_dword")->setVal<uint32_t>( (uint32_t)pDevice->RW_dword_fesa.get(pContext));
pPLCDevice->getRegister("RW_int")->setVal<int16_t>( pDevice->RW_int_fesa.get(pContext));
pPLCDevice->getRegister("RW_dint")->setVal<int32_t>( pDevice->RW_dint_fesa.get(pContext));
pPLCDevice->getRegister("RW_real")->setVal<float>( pDevice->RW_real_fesa.get(pContext));
pPLCDevice->getRegister("RW_dt")->setVal<double>( pDevice->RW_dt_fesa.get(pContext));
{
auto& pRegister = pPLCDevice->getRegister("RW2_int8");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValInt8Array2D(pDevice->RW_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<int8_t>(pDevice->RW2_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint8");
auto& pRegister = pPLCDevice->getRegister("RW2_uint8");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValUInt8Array2D( pDevice->RW_uint8_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type
const int16_t* RW2_uint8 = pDevice->RW2_uint8_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint8_t> data(RW2_uint8, RW2_uint8 + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int16");
auto& pRegister = pPLCDevice->getRegister("RW2_int16");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValInt16Array2D(pDevice->RW_int16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<int16_t>(pDevice->RW2_int16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint16");
auto& pRegister = pPLCDevice->getRegister("RW2_uint16");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValUInt16Array2D( pDevice->RW_uint16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type
const int32_t* RW2_uint16 = pDevice->RW2_uint16_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint16_t> data(RW2_uint16, RW2_uint16 + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int32");
auto& pRegister = pPLCDevice->getRegister("RW2_int32");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValInt32Array2D(pDevice->RW_int32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<int32_t>(pDevice->RW2_int32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint32");
auto& pRegister = pPLCDevice->getRegister("RW2_uint32");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValUInt32Array2D( pDevice->RW_uint32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type
const int64_t* RW2_uint32 = pDevice->RW2_uint32_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint32_t> data(RW2_uint32, RW2_uint32 + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_float32");
auto& pRegister = pPLCDevice->getRegister("RW2_float32");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValFloat32Array2D(pDevice->RW_float32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<float>(pDevice->RW2_float32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_date");
auto& pRegister = pPLCDevice->getRegister("RW2_date");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValDateArray2D(pDevice->RW_date_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<double>(pDevice->RW2_date_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_char");
auto& pRegister = pPLCDevice->getRegister("RW2_char");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValInt8Array2D(pDevice->RW_char_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<int8_t>(pDevice->RW2_char_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_byte");
auto& pRegister = pPLCDevice->getRegister("RW2_byte");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValUInt8Array2D( pDevice->RW_byte_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type
const int16_t* RW2_byte = pDevice->RW2_byte_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint8_t> data(RW2_byte, RW2_byte + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_word");
auto& pRegister = pPLCDevice->getRegister("RW2_word");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValUInt16Array2D( pDevice->RW_word_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type
const int32_t* RW2_word = pDevice->RW2_word_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint16_t> data(RW2_word, RW2_word + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dword");
auto& pRegister = pPLCDevice->getRegister("RW2_dword");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValUInt32Array2D( pDevice->RW_dword_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type
const int64_t* RW2_dword = pDevice->RW2_dword_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint32_t> data(RW2_dword, RW2_dword + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int");
auto& pRegister = pPLCDevice->getRegister("RW2_int");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValInt16Array2D(pDevice->RW_int_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<int16_t>(pDevice->RW2_int_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dint");
auto& pRegister = pPLCDevice->getRegister("RW2_dint");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValInt32Array2D(pDevice->RW_dint_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<int32_t>(pDevice->RW2_dint_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_real");
auto& pRegister = pPLCDevice->getRegister("RW2_real");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValFloat32Array2D(pDevice->RW_real_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<float>(pDevice->RW2_real_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dt");
auto& pRegister = pPLCDevice->getRegister("RW2_dt");
uint32_t dim1 = pRegister->getDimension1();
dim2 = pRegister->getDimension2();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValDateArray2D(pDevice->RW_dt_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
pRegister->setValArray2D<double>(pDevice->RW2_dt_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
pPLCDevice->getRegister("RW_enum")->setVal<int32_t>( pDevice->RW_enum_fesa.get(pContext));
if (sendNow) pPLCDevice->send(blockName_);
}
void MyRWBlock_Type::setOneDevice(Device* pDevice, MyRWBlockPropPropertyData& data, bool sendNow, MultiplexingContext* pContext)
void MyRWBlock_Type::setOneDevice(Device* pDevice, const MyRWBlockPropPropertyData& data, bool sendNow, MultiplexingContext* pContext)
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
}
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int8");
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
(data.isRW_int8Available()) ? pPLCDevice->getRegister("RW_int8")->setVal<int8_t>( data.RW_int8.get()) :
pPLCDevice->getRegister("RW_int8")->setVal<int8_t>( pDevice->RW_int8.get(pContext));
(data.isRW_uint8_fesaAvailable()) ? pPLCDevice->getRegister("RW_uint8")->setVal<uint8_t>( (uint8_t)data.RW_uint8_fesa.get()) :
pPLCDevice->getRegister("RW_uint8")->setVal<uint8_t>( (uint8_t)pDevice->RW_uint8_fesa.get(pContext));
(data.isRW_int16_fesaAvailable()) ? pPLCDevice->getRegister("RW_int16")->setVal<int16_t>( data.RW_int16_fesa.get()) :
pPLCDevice->getRegister("RW_int16")->setVal<int16_t>( pDevice->RW_int16_fesa.get(pContext));
(data.isRW_uint16_fesaAvailable()) ? pPLCDevice->getRegister("RW_uint16")->setVal<uint16_t>( (uint16_t)data.RW_uint16_fesa.get()) :
pPLCDevice->getRegister("RW_uint16")->setVal<uint16_t>( (uint16_t)pDevice->RW_uint16_fesa.get(pContext));
(data.isRW_int32_fesaAvailable()) ? pPLCDevice->getRegister("RW_int32")->setVal<int32_t>( data.RW_int32_fesa.get()) :
pPLCDevice->getRegister("RW_int32")->setVal<int32_t>( pDevice->RW_int32_fesa.get(pContext));
(data.isRW_uint32_fesaAvailable()) ? pPLCDevice->getRegister("RW_uint32")->setVal<uint32_t>( (uint32_t)data.RW_uint32_fesa.get()) :
pPLCDevice->getRegister("RW_uint32")->setVal<uint32_t>( (uint32_t)pDevice->RW_uint32_fesa.get(pContext));
(data.isRW_float32_fesaAvailable()) ? pPLCDevice->getRegister("RW_float32")->setVal<float>( data.RW_float32_fesa.get()) :
pPLCDevice->getRegister("RW_float32")->setVal<float>( pDevice->RW_float32_fesa.get(pContext));
(data.isRW_string_fesaAvailable()) ? pPLCDevice->getRegister("RW_string")->setVal<std::string>(data.RW_string_fesa.get()) :
pPLCDevice->getRegister("RW_string")->setVal<std::string>(pDevice->RW_string_fesa.get(pContext));
(data.isRW_date_fesaAvailable()) ? pPLCDevice->getRegister("RW_date")->setVal<double>( data.RW_date_fesa.get()) :
pPLCDevice->getRegister("RW_date")->setVal<double>( pDevice->RW_date_fesa.get(pContext));
(data.isRW_char_fesaAvailable()) ? pPLCDevice->getRegister("RW_char")->setVal<int8_t>( data.RW_char_fesa.get()) :
pPLCDevice->getRegister("RW_char")->setVal<int8_t>( pDevice->RW_char_fesa.get(pContext));
(data.isRW_byte_fesaAvailable()) ? pPLCDevice->getRegister("RW_byte")->setVal<uint8_t>( (uint8_t)data.RW_byte_fesa.get()) :
pPLCDevice->getRegister("RW_byte")->setVal<uint8_t>( (uint8_t)pDevice->RW_byte_fesa.get(pContext));
(data.isRW_word_fesaAvailable()) ? pPLCDevice->getRegister("RW_word")->setVal<uint16_t>( (uint16_t)data.RW_word_fesa.get()) :
pPLCDevice->getRegister("RW_word")->setVal<uint16_t>( (uint16_t)pDevice->RW_word_fesa.get(pContext));
(data.isRW_dword_fesaAvailable()) ? pPLCDevice->getRegister("RW_dword")->setVal<uint32_t>( (uint32_t)data.RW_dword_fesa.get()) :
pPLCDevice->getRegister("RW_dword")->setVal<uint32_t>( (uint32_t)pDevice->RW_dword_fesa.get(pContext));
(data.isRW_int_fesaAvailable()) ? pPLCDevice->getRegister("RW_int")->setVal<int16_t>( data.RW_int_fesa.get()) :
pPLCDevice->getRegister("RW_int")->setVal<int16_t>( pDevice->RW_int_fesa.get(pContext));
(data.isRW_dint_fesaAvailable()) ? pPLCDevice->getRegister("RW_dint")->setVal<int32_t>( data.RW_dint_fesa.get()) :
pPLCDevice->getRegister("RW_dint")->setVal<int32_t>( pDevice->RW_dint_fesa.get(pContext));
(data.isRW_real_fesaAvailable()) ? pPLCDevice->getRegister("RW_real")->setVal<float>( data.RW_real_fesa.get()) :
pPLCDevice->getRegister("RW_real")->setVal<float>( pDevice->RW_real_fesa.get(pContext));
(data.isRW_dt_fesaAvailable()) ? pPLCDevice->getRegister("RW_dt")->setVal<double>( data.RW_dt_fesa.get()) :
pPLCDevice->getRegister("RW_dt")->setVal<double>( pDevice->RW_dt_fesa.get(pContext));
{
auto& pRegister = pPLCDevice->getRegister("RW2_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_int8Available()) ? pRegister->setValInt8Array2D(data.RW_int8.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValInt8Array2D(pDevice->RW_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_int8Available()) ? pRegister->setValArray2D<int8_t>(data.RW2_int8.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int8_t>(pDevice->RW2_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint8");
auto& pRegister = pPLCDevice->getRegister("RW2_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_uint8_fesaAvailable()) ? pRegister->setValUInt8Array2D(data.RW_uint8_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValUInt8Array2D(pDevice->RW_uint8_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
const int16_t* RW2_uint8;
(data.isRW2_uint8_fesaAvailable()) ? RW2_uint8 = data.RW2_uint8_fesa.get(fesaDim1, fesaDim2) :
RW2_uint8 = pDevice->RW2_uint8_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint8_t> data(RW2_uint8, RW2_uint8 + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int16");
auto& pRegister = pPLCDevice->getRegister("RW2_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_int16_fesaAvailable()) ? pRegister->setValInt16Array2D(data.RW_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValInt16Array2D(pDevice->RW_int16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_int16_fesaAvailable()) ? pRegister->setValArray2D<int16_t>(data.RW2_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int16_t>(pDevice->RW2_int16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint16");
auto& pRegister = pPLCDevice->getRegister("RW2_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_uint16_fesaAvailable()) ? pRegister->setValUInt16Array2D(data.RW_uint16_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValUInt16Array2D(pDevice->RW_uint16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
const int32_t* RW2_uint16;
(data.isRW2_uint16_fesaAvailable()) ? RW2_uint16 = data.RW2_uint16_fesa.get(fesaDim1, fesaDim2) :
RW2_uint16 = pDevice->RW2_uint16_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint16_t> data(RW2_uint16, RW2_uint16 + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int32");
auto& pRegister = pPLCDevice->getRegister("RW2_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_int32_fesaAvailable()) ? pRegister->setValInt32Array2D(data.RW_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValInt32Array2D(pDevice->RW_int32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_int32_fesaAvailable()) ? pRegister->setValArray2D<int32_t>(data.RW2_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int32_t>(pDevice->RW2_int32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint32");
auto& pRegister = pPLCDevice->getRegister("RW2_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_uint32_fesaAvailable()) ? pRegister->setValUInt32Array2D(data.RW_uint32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValUInt32Array2D(pDevice->RW_uint32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
const int64_t* RW2_uint32;
(data.isRW2_uint32_fesaAvailable()) ? RW2_uint32 = data.RW2_uint32_fesa.get(fesaDim1, fesaDim2) :
RW2_uint32 = pDevice->RW2_uint32_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint32_t> data(RW2_uint32, RW2_uint32 + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_float32");
auto& pRegister = pPLCDevice->getRegister("RW2_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_float32_fesaAvailable()) ? pRegister->setValFloat32Array2D(data.RW_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValFloat32Array2D(pDevice->RW_float32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_float32_fesaAvailable()) ? pRegister->setValArray2D<float>(data.RW2_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<float>(pDevice->RW2_float32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_date");
auto& pRegister = pPLCDevice->getRegister("RW2_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_date_fesaAvailable()) ? pRegister->setValDateArray2D(data.RW_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValDateArray2D(pDevice->RW_date_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_date_fesaAvailable()) ? pRegister->setValArray2D<double>(data.RW2_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<double>(pDevice->RW2_date_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_char");
auto& pRegister = pPLCDevice->getRegister("RW2_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_char_fesaAvailable()) ? pRegister->setValInt8Array2D(data.RW_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValInt8Array2D(pDevice->RW_char_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_char_fesaAvailable()) ? pRegister->setValArray2D<int8_t>(data.RW2_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int8_t>(pDevice->RW2_char_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_byte");
auto& pRegister = pPLCDevice->getRegister("RW2_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_byte_fesaAvailable()) ? pRegister->setValUInt8Array2D(data.RW_byte_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValUInt8Array2D(pDevice->RW_byte_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
const int16_t* RW2_byte;
(data.isRW2_byte_fesaAvailable()) ? RW2_byte = data.RW2_byte_fesa.get(fesaDim1, fesaDim2) :
RW2_byte = pDevice->RW2_byte_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint8_t> data(RW2_byte, RW2_byte + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_word");
auto& pRegister = pPLCDevice->getRegister("RW2_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_word_fesaAvailable()) ? pRegister->setValUInt16Array2D(data.RW_word_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValUInt16Array2D(pDevice->RW_word_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
const int32_t* RW2_word;
(data.isRW2_word_fesaAvailable()) ? RW2_word = data.RW2_word_fesa.get(fesaDim1, fesaDim2) :
RW2_word = pDevice->RW2_word_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint16_t> data(RW2_word, RW2_word + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dword");
auto& pRegister = pPLCDevice->getRegister("RW2_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_dword_fesaAvailable()) ? pRegister->setValUInt32Array2D(data.RW_dword_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValUInt32Array2D(pDevice->RW_dword_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
const int64_t* RW2_dword;
(data.isRW2_dword_fesaAvailable()) ? RW2_dword = data.RW2_dword_fesa.get(fesaDim1, fesaDim2) :
RW2_dword = pDevice->RW2_dword_fesa.get(fesaDim1, fesaDim2, pContext);
std::vector<uint32_t> data(RW2_dword, RW2_dword + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int");
auto& pRegister = pPLCDevice->getRegister("RW2_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_int_fesaAvailable()) ? pRegister->setValInt16Array2D(data.RW_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValInt16Array2D(pDevice->RW_int_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_int_fesaAvailable()) ? pRegister->setValArray2D<int16_t>(data.RW2_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int16_t>(pDevice->RW2_int_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dint");
auto& pRegister = pPLCDevice->getRegister("RW2_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_dint_fesaAvailable()) ? pRegister->setValInt32Array2D(data.RW_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValInt32Array2D(pDevice->RW_dint_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_dint_fesaAvailable()) ? pRegister->setValArray2D<int32_t>(data.RW2_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int32_t>(pDevice->RW2_dint_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_real");
auto& pRegister = pPLCDevice->getRegister("RW2_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_real_fesaAvailable()) ? pRegister->setValFloat32Array2D(data.RW_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValFloat32Array2D(pDevice->RW_real_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_real_fesaAvailable()) ? pRegister->setValArray2D<float>(data.RW2_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<float>(pDevice->RW2_real_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dt");
auto& pRegister = pPLCDevice->getRegister("RW2_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isRW_dt_fesaAvailable()) ? pRegister->setValDateArray2D(data.RW_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValDateArray2D(pDevice->RW_dt_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
(data.isRW2_dt_fesaAvailable()) ? pRegister->setValArray2D<double>(data.RW2_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<double>(pDevice->RW2_dt_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
}
(data.isRW_enum_fesaAvailable()) ? pPLCDevice->getRegister("RW_enum")->setVal<int32_t>( data.RW_enum_fesa.get()) :
pPLCDevice->getRegister("RW_enum")->setVal<int32_t>( pDevice->RW_enum_fesa.get(pContext));
if (sendNow) pPLCDevice->send(blockName_);
}
void MyWOBlock_Type::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext)
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
}
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int8");
auto& pRegister = pPLCDevice->getRegister("WO_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValInt8Array(pDevice->WO_int8.get(fesaDim1, pContext), dim1);
pRegister->setValArray<int8_t>(pDevice->WO_int8.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint8");
auto& pRegister = pPLCDevice->getRegister("WO_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValUInt8Array(pDevice->WO_uint8_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type
const int16_t* WO_uint8 = pDevice->WO_uint8_fesa.get(fesaDim1, pContext);
std::vector<uint8_t> data(WO_uint8, WO_uint8 + dim1);
pRegister->setValArray<uint8_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int16");
auto& pRegister = pPLCDevice->getRegister("WO_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValInt16Array(pDevice->WO_int16_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<int16_t>(pDevice->WO_int16_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint16");
auto& pRegister = pPLCDevice->getRegister("WO_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValUInt16Array(pDevice->WO_uint16_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type
const int32_t* WO_uint16 = pDevice->WO_uint16_fesa.get(fesaDim1, pContext);
std::vector<uint16_t> data(WO_uint16, WO_uint16 + dim1);
pRegister->setValArray<uint16_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int32");
auto& pRegister = pPLCDevice->getRegister("WO_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValInt32Array(pDevice->WO_int32_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<int32_t>(pDevice->WO_int32_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint32");
auto& pRegister = pPLCDevice->getRegister("WO_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValUInt32Array(pDevice->WO_uint32_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type
const int64_t* WO_uint32 = pDevice->WO_uint32_fesa.get(fesaDim1, pContext);
std::vector<uint32_t> data(WO_uint32, WO_uint32 + dim1);
pRegister->setValArray<uint32_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_float32");
auto& pRegister = pPLCDevice->getRegister("WO_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValFloat32Array(pDevice->WO_float32_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<float>(pDevice->WO_float32_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_string");
auto& pRegister = pPLCDevice->getRegister("WO_string");
uint32_t dim1 = pRegister->getDimension1();
std::string stdStringArray[dim1];
uint32_t fesaDim1;
const char** cStringArray = pDevice->WO_string_fesa.get(fesaDim1, pContext);
std::string stdStringArray[dim1];
const char* const* cStringArray = pDevice->WO_string_fesa.get(fesaDim1, pContext);
for (unsigned int i=0; i<dim1; i++) stdStringArray[i] = (const char*)cStringArray[i];
pRegister->setValStringArray(stdStringArray, dim1);
pRegister->setValArray<std::string>(stdStringArray, dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_date");
auto& pRegister = pPLCDevice->getRegister("WO_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValDateArray(pDevice->WO_date_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<double>(pDevice->WO_date_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_char");
auto& pRegister = pPLCDevice->getRegister("WO_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValInt8Array(pDevice->WO_char_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<int8_t>(pDevice->WO_char_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_byte");
auto& pRegister = pPLCDevice->getRegister("WO_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValUInt8Array(pDevice->WO_byte_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type
const int16_t* WO_byte = pDevice->WO_byte_fesa.get(fesaDim1, pContext);
std::vector<uint8_t> data(WO_byte, WO_byte + dim1);
pRegister->setValArray<uint8_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_word");
auto& pRegister = pPLCDevice->getRegister("WO_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValUInt16Array(pDevice->WO_word_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type
const int32_t* WO_word = pDevice->WO_word_fesa.get(fesaDim1, pContext);
std::vector<uint16_t> data(WO_word, WO_word + dim1);
pRegister->setValArray<uint16_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dword");
auto& pRegister = pPLCDevice->getRegister("WO_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValUInt32Array(pDevice->WO_dword_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type
const int64_t* WO_dword = pDevice->WO_dword_fesa.get(fesaDim1, pContext);
std::vector<uint32_t> data(WO_dword, WO_dword + dim1);
pRegister->setValArray<uint32_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int");
auto& pRegister = pPLCDevice->getRegister("WO_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValInt16Array(pDevice->WO_int_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<int16_t>(pDevice->WO_int_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dint");
auto& pRegister = pPLCDevice->getRegister("WO_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValInt32Array(pDevice->WO_dint_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<int32_t>(pDevice->WO_dint_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_real");
auto& pRegister = pPLCDevice->getRegister("WO_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValFloat32Array(pDevice->WO_real_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<float>(pDevice->WO_real_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dt");
auto& pRegister = pPLCDevice->getRegister("WO_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
pRegister->setValDateArray(pDevice->WO_dt_fesa.get(fesaDim1, pContext), dim1);
pRegister->setValArray<double>(pDevice->WO_dt_fesa.get(fesaDim1, pContext), dim1);
}
{
auto& pRegister = pPLCDevice->getRegister("WO_enum");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
const TEST_ENUM::TEST_ENUM* WO_enum = pDevice->WO_enum_fesa.get(fesaDim1, pContext);
std::vector<int32_t> data(WO_enum, WO_enum + dim1);
pRegister->setValArray<int32_t>(data.data(), dim1);
}
if (sendNow) pPLCDevice->send(blockName_);
}
void MyWOBlock_Type::setOneDevice(Device* pDevice, MyWOBlockPropPropertyData& data, bool sendNow, MultiplexingContext* pContext)
void MyWOBlock_Type::setOneDevice(Device* pDevice, const MyWOBlockPropPropertyData& data, bool sendNow, MultiplexingContext* pContext)
{
if( !isInitialized_ )
{
throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
}
Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int8");
auto& pRegister = pPLCDevice->getRegister("WO_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_int8Available()) ? pRegister->setValInt8Array( data.WO_int8.get(fesaDim1), dim1) :
pRegister->setValInt8Array( pDevice->WO_int8.get(fesaDim1, pContext), dim1);
(data.isWO_int8Available()) ? pRegister->setValArray<int8_t>( data.WO_int8.get(fesaDim1), dim1) :
pRegister->setValArray<int8_t>( pDevice->WO_int8.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint8");
auto& pRegister = pPLCDevice->getRegister("WO_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_uint8_fesaAvailable()) ? pRegister->setValUInt8Array( data.WO_uint8_fesa.get(fesaDim1), dim1) :
pRegister->setValUInt8Array( pDevice->WO_uint8_fesa.get(fesaDim1, pContext), dim1);
const int16_t* WO_uint8;
(data.isWO_uint8_fesaAvailable()) ? WO_uint8 = data.WO_uint8_fesa.get(fesaDim1) :
WO_uint8 = pDevice->WO_uint8_fesa.get(fesaDim1, pContext);
std::vector<uint8_t> data(WO_uint8, WO_uint8 + dim1);
pRegister->setValArray<uint8_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int16");
auto& pRegister = pPLCDevice->getRegister("WO_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_int16_fesaAvailable()) ? pRegister->setValInt16Array( data.WO_int16_fesa.get(fesaDim1), dim1) :
pRegister->setValInt16Array( pDevice->WO_int16_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_int16_fesaAvailable()) ? pRegister->setValArray<int16_t>( data.WO_int16_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<int16_t>( pDevice->WO_int16_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint16");
auto& pRegister = pPLCDevice->getRegister("WO_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_uint16_fesaAvailable()) ? pRegister->setValUInt16Array( data.WO_uint16_fesa.get(fesaDim1), dim1) :
pRegister->setValUInt16Array( pDevice->WO_uint16_fesa.get(fesaDim1, pContext), dim1);
const int32_t* WO_uint16;
(data.isWO_uint16_fesaAvailable()) ? WO_uint16 = data.WO_uint16_fesa.get(fesaDim1) :
WO_uint16 = pDevice->WO_uint16_fesa.get(fesaDim1, pContext);
std::vector<uint16_t> data(WO_uint16, WO_uint16 + dim1);
pRegister->setValArray<uint16_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int32");
auto& pRegister = pPLCDevice->getRegister("WO_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_int32_fesaAvailable()) ? pRegister->setValInt32Array( data.WO_int32_fesa.get(fesaDim1), dim1) :
pRegister->setValInt32Array( pDevice->WO_int32_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_int32_fesaAvailable()) ? pRegister->setValArray<int32_t>( data.WO_int32_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<int32_t>( pDevice->WO_int32_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint32");
auto& pRegister = pPLCDevice->getRegister("WO_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_uint32_fesaAvailable()) ? pRegister->setValUInt32Array( data.WO_uint32_fesa.get(fesaDim1), dim1) :
pRegister->setValUInt32Array( pDevice->WO_uint32_fesa.get(fesaDim1, pContext), dim1);
const int64_t* WO_uint32;
(data.isWO_uint32_fesaAvailable()) ? WO_uint32 = data.WO_uint32_fesa.get(fesaDim1) :
WO_uint32 = pDevice->WO_uint32_fesa.get(fesaDim1, pContext);
std::vector<uint32_t> data(WO_uint32, WO_uint32 + dim1);
pRegister->setValArray<uint32_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_float32");
auto& pRegister = pPLCDevice->getRegister("WO_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_float32_fesaAvailable()) ? pRegister->setValFloat32Array( data.WO_float32_fesa.get(fesaDim1), dim1) :
pRegister->setValFloat32Array( pDevice->WO_float32_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_float32_fesaAvailable()) ? pRegister->setValArray<float>( data.WO_float32_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<float>( pDevice->WO_float32_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_string");
auto& pRegister = pPLCDevice->getRegister("WO_string");
uint32_t dim1 = pRegister->getDimension1();
std::string stdStringArray[dim1];
uint32_t fesaDim1;
const char** cStringArray = (data.isWO_string_fesaAvailable() ? data.WO_string_fesa.get(fesaDim1) : pDevice->WO_string_fesa.get(fesaDim1, pContext));
std::string stdStringArray[dim1];
const char* const* cStringArray = (data.isWO_string_fesaAvailable() ? data.WO_string_fesa.get(fesaDim1) : pDevice->WO_string_fesa.get(fesaDim1, pContext));
for (unsigned int i=0; i<dim1; i++) stdStringArray[i] = (const char*)cStringArray[i];
pRegister->setValStringArray(stdStringArray, dim1);
pRegister->setValArray<std::string>(stdStringArray, dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_date");
auto& pRegister = pPLCDevice->getRegister("WO_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_date_fesaAvailable()) ? pRegister->setValDateArray( data.WO_date_fesa.get(fesaDim1), dim1) :
pRegister->setValDateArray( pDevice->WO_date_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_date_fesaAvailable()) ? pRegister->setValArray<double>( data.WO_date_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<double>( pDevice->WO_date_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_char");
auto& pRegister = pPLCDevice->getRegister("WO_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_char_fesaAvailable()) ? pRegister->setValInt8Array( data.WO_char_fesa.get(fesaDim1), dim1) :
pRegister->setValInt8Array( pDevice->WO_char_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_char_fesaAvailable()) ? pRegister->setValArray<int8_t>( data.WO_char_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<int8_t>( pDevice->WO_char_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_byte");
auto& pRegister = pPLCDevice->getRegister("WO_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_byte_fesaAvailable()) ? pRegister->setValUInt8Array( data.WO_byte_fesa.get(fesaDim1), dim1) :
pRegister->setValUInt8Array( pDevice->WO_byte_fesa.get(fesaDim1, pContext), dim1);
const int16_t* WO_byte;
(data.isWO_byte_fesaAvailable()) ? WO_byte = data.WO_byte_fesa.get(fesaDim1) :
WO_byte = pDevice->WO_byte_fesa.get(fesaDim1, pContext);
std::vector<uint8_t> data(WO_byte, WO_byte + dim1);
pRegister->setValArray<uint8_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_word");
auto& pRegister = pPLCDevice->getRegister("WO_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_word_fesaAvailable()) ? pRegister->setValUInt16Array( data.WO_word_fesa.get(fesaDim1), dim1) :
pRegister->setValUInt16Array( pDevice->WO_word_fesa.get(fesaDim1, pContext), dim1);
const int32_t* WO_word;
(data.isWO_word_fesaAvailable()) ? WO_word = data.WO_word_fesa.get(fesaDim1) :
WO_word = pDevice->WO_word_fesa.get(fesaDim1, pContext);
std::vector<uint16_t> data(WO_word, WO_word + dim1);
pRegister->setValArray<uint16_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dword");
auto& pRegister = pPLCDevice->getRegister("WO_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_dword_fesaAvailable()) ? pRegister->setValUInt32Array( data.WO_dword_fesa.get(fesaDim1), dim1) :
pRegister->setValUInt32Array( pDevice->WO_dword_fesa.get(fesaDim1, pContext), dim1);
const int64_t* WO_dword;
(data.isWO_dword_fesaAvailable()) ? WO_dword = data.WO_dword_fesa.get(fesaDim1) :
WO_dword = pDevice->WO_dword_fesa.get(fesaDim1, pContext);
std::vector<uint32_t> data(WO_dword, WO_dword + dim1);
pRegister->setValArray<uint32_t>(data.data(), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int");
auto& pRegister = pPLCDevice->getRegister("WO_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_int_fesaAvailable()) ? pRegister->setValInt16Array( data.WO_int_fesa.get(fesaDim1), dim1) :
pRegister->setValInt16Array( pDevice->WO_int_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_int_fesaAvailable()) ? pRegister->setValArray<int16_t>( data.WO_int_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<int16_t>( pDevice->WO_int_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dint");
auto& pRegister = pPLCDevice->getRegister("WO_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_dint_fesaAvailable()) ? pRegister->setValInt32Array( data.WO_dint_fesa.get(fesaDim1), dim1) :
pRegister->setValInt32Array( pDevice->WO_dint_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_dint_fesaAvailable()) ? pRegister->setValArray<int32_t>( data.WO_dint_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<int32_t>( pDevice->WO_dint_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_real");
auto& pRegister = pPLCDevice->getRegister("WO_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_real_fesaAvailable()) ? pRegister->setValFloat32Array( data.WO_real_fesa.get(fesaDim1), dim1) :
pRegister->setValFloat32Array( pDevice->WO_real_fesa.get(fesaDim1, pContext), dim1);
(data.isWO_real_fesaAvailable()) ? pRegister->setValArray<float>( data.WO_real_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<float>( pDevice->WO_real_fesa.get(fesaDim1, pContext), dim1);
}
{
auto& pRegister = pPLCDevice->getRegister("WO_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_dt_fesaAvailable()) ? pRegister->setValArray<double>( data.WO_dt_fesa.get(fesaDim1), dim1) :
pRegister->setValArray<double>( pDevice->WO_dt_fesa.get(fesaDim1, pContext), dim1);
}
{
Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dt");
auto& pRegister = pPLCDevice->getRegister("WO_enum");
uint32_t dim1 = pRegister->getDimension1();
uint32_t fesaDim1;
(data.isWO_dt_fesaAvailable()) ? pRegister->setValDateArray( data.WO_dt_fesa.get(fesaDim1), dim1) :
pRegister->setValDateArray( pDevice->WO_dt_fesa.get(fesaDim1, pContext), dim1);
const TEST_ENUM::TEST_ENUM* WO_enum;
(data.isWO_enum_fesaAvailable()) ? WO_enum = data.WO_enum_fesa.get(fesaDim1) :
WO_enum = pDevice->WO_enum_fesa.get(fesaDim1, pContext);
std::vector<int32_t> data(WO_enum, WO_enum + dim1);
pRegister->setValArray<int32_t>(data.data(), dim1);
}
if (sendNow) pPLCDevice->send(blockName_);
}
void MyCBlock_Type::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext)
{
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
{
auto& pRegister = pPLCDevice->getRegister("C_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<int8_t>(pDevice->C_int8.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int16_t* C_uint8 = pDevice->C_uint8_fesa.get(fesaDim1, fesaDim2);
std::vector<uint8_t> data(C_uint8, C_uint8 + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<int16_t>(pDevice->C_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int32_t* C_uint16 = pDevice->C_uint16_fesa.get(fesaDim1, fesaDim2);
std::vector<uint16_t> data(C_uint16, C_uint16 + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<int32_t>(pDevice->C_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int64_t* C_uint32 = pDevice->C_uint32_fesa.get(fesaDim1, fesaDim2);
std::vector<uint32_t> data(C_uint32, C_uint32 + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<float>(pDevice->C_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<double>(pDevice->C_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<int8_t>(pDevice->C_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int16_t* C_byte = pDevice->C_byte_fesa.get(fesaDim1, fesaDim2);
std::vector<uint8_t> data(C_byte, C_byte + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int32_t* C_word = pDevice->C_word_fesa.get(fesaDim1, fesaDim2);
std::vector<uint16_t> data(C_word, C_word + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int64_t* C_dword = pDevice->C_dword_fesa.get(fesaDim1, fesaDim2);
std::vector<uint32_t> data(C_dword, C_dword + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<int16_t>(pDevice->C_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<int32_t>(pDevice->C_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<float>(pDevice->C_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
pRegister->setValArray2D<double>(pDevice->C_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
if (sendNow) pPLCDevice->send(blockName_);
}
void MyCBlock_Type::setOneDevice(Device* pDevice, const MyCBlockPropPropertyData& data, bool sendNow, MultiplexingContext* pContext)
{
checkInitialized();
Silecs::PLC* pPLC = &pPLCHandler_->getPLC(pDevice->plcHostName.get());
Silecs::Device* pPLCDevice = pPLC->getDeploy().getDesign("AllTypes").getDevice(pDevice->plcDeviceLabel.get());
{
auto& pRegister = pPLCDevice->getRegister("C_int8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_int8Available()) ? pRegister->setValArray2D<int8_t>(data.C_int8.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int8_t>(pDevice->C_int8.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_uint8");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int16_t* C_uint8;
(data.isC_uint8_fesaAvailable()) ? C_uint8 = data.C_uint8_fesa.get(fesaDim1, fesaDim2) :
C_uint8 = pDevice->C_uint8_fesa.get(fesaDim1, fesaDim2);
std::vector<uint8_t> data(C_uint8, C_uint8 + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_int16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_int16_fesaAvailable()) ? pRegister->setValArray2D<int16_t>(data.C_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int16_t>(pDevice->C_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_uint16");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int32_t* C_uint16;
(data.isC_uint16_fesaAvailable()) ? C_uint16 = data.C_uint16_fesa.get(fesaDim1, fesaDim2) :
C_uint16 = pDevice->C_uint16_fesa.get(fesaDim1, fesaDim2);
std::vector<uint16_t> data(C_uint16, C_uint16 + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_int32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_int32_fesaAvailable()) ? pRegister->setValArray2D<int32_t>(data.C_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int32_t>(pDevice->C_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_uint32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int64_t* C_uint32;
(data.isC_uint32_fesaAvailable()) ? C_uint32 = data.C_uint32_fesa.get(fesaDim1, fesaDim2) :
C_uint32 = pDevice->C_uint32_fesa.get(fesaDim1, fesaDim2);
std::vector<uint32_t> data(C_uint32, C_uint32 + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_float32");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_float32_fesaAvailable()) ? pRegister->setValArray2D<float>(data.C_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<float>(pDevice->C_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_date");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_date_fesaAvailable()) ? pRegister->setValArray2D<double>(data.C_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<double>(pDevice->C_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_char");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_char_fesaAvailable()) ? pRegister->setValArray2D<int8_t>(data.C_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int8_t>(pDevice->C_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_byte");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int16_t* C_byte;
(data.isC_byte_fesaAvailable()) ? C_byte = data.C_byte_fesa.get(fesaDim1, fesaDim2) :
C_byte = pDevice->C_byte_fesa.get(fesaDim1, fesaDim2);
std::vector<uint8_t> data(C_byte, C_byte + dim1 * dim2);
pRegister->setValArray2D<uint8_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_word");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int32_t* C_word;
(data.isC_word_fesaAvailable()) ? C_word = data.C_word_fesa.get(fesaDim1, fesaDim2) :
C_word = pDevice->C_word_fesa.get(fesaDim1, fesaDim2);
std::vector<uint16_t> data(C_word, C_word + dim1 * dim2);
pRegister->setValArray2D<uint16_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_dword");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
const int64_t* C_dword;
(data.isC_dword_fesaAvailable()) ? C_dword = data.C_dword_fesa.get(fesaDim1, fesaDim2) :
C_dword = pDevice->C_dword_fesa.get(fesaDim1, fesaDim2);
std::vector<uint32_t> data(C_dword, C_dword + dim1 * dim2);
pRegister->setValArray2D<uint32_t>(data.data(), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_int");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_int_fesaAvailable()) ? pRegister->setValArray2D<int16_t>(data.C_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int16_t>(pDevice->C_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_dint");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_dint_fesaAvailable()) ? pRegister->setValArray2D<int32_t>(data.C_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<int32_t>(pDevice->C_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_real");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_real_fesaAvailable()) ? pRegister->setValArray2D<float>(data.C_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<float>(pDevice->C_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
{
auto& pRegister = pPLCDevice->getRegister("C_dt");
uint32_t dim1 = pRegister->getDimension1();
uint32_t dim2 = pRegister->getDimension2();
uint32_t fesaDim1,fesaDim2;
(data.isC_dt_fesaAvailable()) ? pRegister->setValArray2D<double>(data.C_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2) :
pRegister->setValArray2D<double>(pDevice->C_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2);
}
if (sendNow) pPLCDevice->send(blockName_);
}
......
/*
* AllTypes.h
*
* Generated by SILECS framework tools
* Generated by SILECS framework tools. Will be overwritten on regeneration.
*/
#ifndef AllTypes_AllTypes_H_
#define AllTypes_AllTypes_H_
#include <SilecsService.h>
#include <silecs-communication/interface/core/SilecsService.h>
#include <silecs-communication/interface/equipment/SilecsPLC.h>
#include <fesa-core/Synchronization/MultiplexingContext.h>
#include <AllTypes/GeneratedCode/ServiceLocator.h>
#include <AllTypes/Server/SetMyRWBlockProp.h>
#include <AllTypes/Server/SetMyWOBlockProp.h>
namespace AllTypes
{
......@@ -51,14 +50,14 @@ namespace AllTypes
{
public:
static inline Silecs::Service* theService() { return pService_; }
static inline Silecs::Cluster* theCluster() { return pCluster_; }
static inline Silecs::PLCHandler* thePLCHandler() { return pPLCHandler_; }
inline std::string& getBlockName() { return blockName_; }
static void setup(const ServiceLocator* serviceLocator);
static void cleanup();
static bool isInitialized(){ return AbstractAllTypes::isInitialized_; }
static void setPLCSlaveRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator);
static void getPLCMasterRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator);
static void updatePLCRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator);
static void updateFesaFields(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator);
AbstractAllTypes(std::string blockName);
virtual ~AbstractAllTypes();
......@@ -74,9 +73,9 @@ namespace AllTypes
virtual void setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext);
protected:
static void checkInitialized();
static Silecs::Service* pService_;
static Silecs::Cluster* pCluster_;
static Silecs::PLCHandler* pPLCHandler_;
static bool isInitialized_;
// Name of the silecs-block which is addressed
......@@ -87,42 +86,43 @@ namespace AllTypes
AbstractAllTypes& operator=(const AbstractAllTypes&);
};
// -------------------------------------------------------------------------------------------------
#define BLOCK_RO( blockName, propName ) \
class blockName##_Type : public AbstractAllTypes \
{ \
public: \
blockName##_Type(std::string name); \
~blockName##_Type(); \
void getOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext); \
}
class MyROBlock_Type : public AbstractAllTypes
{
public:
MyROBlock_Type(std::string name);
~MyROBlock_Type();
void getOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);
};
class MyRWBlock_Type : public AbstractAllTypes
{
public:
MyRWBlock_Type(std::string name);
~MyRWBlock_Type();
void getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext);
void getOneDevice(Device* pDevice, MyRWBlockPropPropertyData& data, const bool recvNow);
void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);
void setOneDevice(Device* pDevice, const MyRWBlockPropPropertyData& data, const bool transmitNow, MultiplexingContext* pContext);
};
#define BLOCK_WO( blockName, propName ) \
class blockName##_Type : public AbstractAllTypes \
{ \
public: \
blockName##_Type(std::string name); \
~blockName##_Type(); \
void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext); \
void setOneDevice(Device* pDevice, propName##PropertyData& data, const bool transmitNow, MultiplexingContext* pContext); \
}
class MyWOBlock_Type : public AbstractAllTypes
{
public:
MyWOBlock_Type(std::string name);
~MyWOBlock_Type();
void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);
void setOneDevice(Device* pDevice, const MyWOBlockPropPropertyData& data, const bool transmitNow, MultiplexingContext* pContext);
};
class MyCBlock_Type : public AbstractAllTypes
{
public:
MyCBlock_Type(std::string name);
~MyCBlock_Type();
void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);
void setOneDevice(Device* pDevice, const MyCBlockPropPropertyData& data, const bool transmitNow, MultiplexingContext* pContext);
};
#define BLOCK_RW( blockName, propName ) \
class blockName##_Type : public AbstractAllTypes \
{ \
public: \
blockName##_Type(std::string name); \
~blockName##_Type(); \
void getOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext); \
void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext); \
void setOneDevice(Device* pDevice, propName##PropertyData& data, const bool transmitNow, MultiplexingContext* pContext); \
}
BLOCK_RO( MyROBlock, MyROBlockProp );
BLOCK_RW( MyRWBlock, MyRWBlockProp );
BLOCK_WO( MyWOBlock, MyWOBlockProp );
/*---------------------------------------------------------------------------------------------------------
* INTERFACE
*---------------------------------------------------------------------------------------------------------
......@@ -132,18 +132,19 @@ namespace AllTypes
{
public:
static inline Silecs::Service* theService() { return AbstractAllTypes::theService(); }
static inline Silecs::Cluster* theCluster() { return AbstractAllTypes::theCluster(); }
static inline Silecs::PLCHandler* thePLCHandler() { return AbstractAllTypes::thePLCHandler(); }
static void setup(const ServiceLocator* serviceLocator) { AbstractAllTypes::setup(serviceLocator); }
static void cleanup() { AbstractAllTypes::cleanup(); }
static bool isInitialized(){ return AbstractAllTypes::isInitialized(); }
static Silecs::PLC* getPLC(Device* pDevice)
{
return AbstractAllTypes::theCluster()->getPLC(pDevice->plcHostName.get());
return &AbstractAllTypes::thePLCHandler()->getPLC(pDevice->plcHostName.get());
}
static MyROBlock_Type MyROBlock;
static MyRWBlock_Type MyRWBlock;
static MyWOBlock_Type MyWOBlock;
static MyROBlock_Type MyROBlock;
static MyRWBlock_Type MyRWBlock;
static MyWOBlock_Type MyWOBlock;
static MyCBlock_Type MyCBlock;
};
}
......
<?xml version="1.0" encoding="UTF-8"?>
<equipment-model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../design-gsi.xsd">
<information>
<class-name>MyClass</class-name>
<class-major-version>0</class-major-version>
<class-minor-version>1</class-minor-version>
<class-tiny-version>0</class-tiny-version>
<type>Final</type>
<state>development</state>
<description>An Empty design with GSI-specific standard properties</description>
<fesa-version>3.1.0</fesa-version>
<repository-path>undefined</repository-path>
</information>
<ownership>
<responsible name="CSCO"/>
<creator login="schwinn"/>
</ownership>
<interface>
<device-interface>
<setting>
<GSI-Init-Property multiplexed="false" name="Init" visibility="operational">
<set-action partial-setting="true" transaction="true">
<server-action-ref server-action-name-ref="InitSetAction"/>
</set-action>
</GSI-Init-Property>
<GSI-Reset-Property multiplexed="false" name="Reset" visibility="operational">
<set-action partial-setting="true" transaction="true">
<server-action-ref server-action-name-ref="ResetSetAction"/>
</set-action>
</GSI-Reset-Property>
<GSI-Setting-Property multiplexed="false" name="Setting" visibility="operational">
<update-flag-item direction="OUT" name="updateFlags" optional="true">
<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
</update-flag-item>
<cycle-name-item direction="OUT" name="cycleName" optional="true">
<array type="char">
<dim>32</dim>
</array>
</cycle-name-item>
<set-action partial-setting="true" transaction="true">
<server-action-ref server-action-name-ref="SettingSetAction"/>
</set-action>
<get-action>
<server-action-ref server-action-name-ref="SettingGetAction"/>
</get-action>
</GSI-Setting-Property>
<GSI-Setting-Property name="MyRWBlockProp" multiplexed="false" visibility="development"><value-item name="RW_dt_fesa" direction="INOUT"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_dt_fesa"/></value-item><value-item name="RW_real_fesa" direction="INOUT"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_real_fesa"/></value-item><value-item name="RW_dint_fesa" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_dint_fesa"/></value-item><value-item name="RW_int_fesa" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int_fesa"/></value-item><value-item name="RW_dword_fesa" direction="INOUT"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_dword_fesa"/></value-item><value-item name="RW_word_fesa" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_word_fesa"/></value-item><value-item name="RW_byte_fesa" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_byte_fesa"/></value-item><value-item name="RW_char_fesa" direction="INOUT"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_char_fesa"/></value-item><value-item name="RW_date_fesa" direction="INOUT"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_date_fesa"/></value-item><value-item name="RW_float32_fesa" direction="INOUT"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_float32_fesa"/></value-item><value-item name="RW_uint32_fesa" direction="INOUT"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_uint32_fesa"/></value-item><value-item name="RW_int32_fesa" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int32_fesa"/></value-item><value-item name="RW_uint16_fesa" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_uint16_fesa"/></value-item><value-item name="RW_int16_fesa" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int16_fesa"/></value-item><value-item name="RW_uint8_fesa" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_uint8_fesa"/></value-item><value-item name="RW_int8" direction="INOUT"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int8"/></value-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><set-action><server-action-ref server-action-name-ref="SetMyRWBlockProp"/></set-action><get-action><server-action-ref server-action-name-ref="GetMyRWBlockProp"/></get-action></GSI-Setting-Property><GSI-Setting-Property name="MyWOBlockProp" multiplexed="false" visibility="development"><value-item name="WO_dt_fesa" direction="INOUT"><array type="double"><dim>10</dim></array><data-field-ref field-name-ref="WO_dt_fesa"/></value-item><value-item name="WO_real_fesa" direction="INOUT"><array type="float"><dim>10</dim></array><data-field-ref field-name-ref="WO_real_fesa"/></value-item><value-item name="WO_dint_fesa" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_dint_fesa"/></value-item><value-item name="WO_int_fesa" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int_fesa"/></value-item><value-item name="WO_dword_fesa" direction="INOUT"><array type="int64_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_dword_fesa"/></value-item><value-item name="WO_word_fesa" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_word_fesa"/></value-item><value-item name="WO_byte_fesa" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_byte_fesa"/></value-item><value-item name="WO_char_fesa" direction="INOUT"><array type="int8_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_char_fesa"/></value-item><value-item name="WO_date_fesa" direction="INOUT"><array type="double"><dim>10</dim></array><data-field-ref field-name-ref="WO_date_fesa"/></value-item><value-item name="WO_string_fesa" direction="INOUT"><array2D type="char"><dim1>10</dim1><dim2>64</dim2></array2D><data-field-ref field-name-ref="WO_string_fesa"/></value-item><value-item name="WO_float32_fesa" direction="INOUT"><array type="float"><dim>10</dim></array><data-field-ref field-name-ref="WO_float32_fesa"/></value-item><value-item name="WO_uint32_fesa" direction="INOUT"><array type="int64_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_uint32_fesa"/></value-item><value-item name="WO_int32_fesa" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int32_fesa"/></value-item><value-item name="WO_uint16_fesa" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_uint16_fesa"/></value-item><value-item name="WO_int16_fesa" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int16_fesa"/></value-item><value-item name="WO_uint8_fesa" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_uint8_fesa"/></value-item><value-item name="WO_int8" direction="INOUT"><array type="int8_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int8"/></value-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><set-action><server-action-ref server-action-name-ref="SetMyWOBlockProp"/></set-action><get-action><server-action-ref server-action-name-ref="GetMyWOBlockProp"/></get-action></GSI-Setting-Property><GSI-Power-Property multiplexed="false" name="Power" visibility="operational">
<update-flag-item direction="OUT" name="updateFlags" optional="true">
<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
</update-flag-item>
<cycle-name-item direction="OUT" name="cycleName" optional="true">
<array type="char">
<dim>32</dim>
</array>
</cycle-name-item>
<set-action partial-setting="true" transaction="true">
<server-action-ref server-action-name-ref="PowerSetAction"/>
</set-action>
<get-action>
<server-action-ref server-action-name-ref="PowerGetAction"/>
</get-action>
<power-item direction="INOUT" name="power">
<custom-type-scalar data-type-name-ref="DEVICE_POWER"/>
<data-field-ref field-name-ref="power"/>
</power-item>
</GSI-Power-Property>
</setting>
<acquisition>
<GSI-Status-Property multiplexed="false" name="Status" on-change="true" subscribable="true" visibility="operational">
<acq-stamp-item direction="OUT" name="acqStamp">
<scalar type="int64_t"/>
</acq-stamp-item>
<update-flag-item direction="OUT" name="updateFlags" optional="true">
<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
</update-flag-item>
<cycle-name-item direction="OUT" name="cycleName" optional="true">
<array type="char">
<dim>32</dim>
</array>
</cycle-name-item>
<cycle-stamp-item direction="OUT" name="cycleStamp" optional="true">
<scalar type="int64_t"/>
</cycle-stamp-item>
<get-action>
<server-action-ref server-action-name-ref="StatusGetAction"/>
</get-action>
<status-item direction="OUT" name="status">
<custom-type-scalar data-type-name-ref="DEVICE_STATUS"/>
<data-field-ref field-name-ref="status"/>
</status-item>
<detailed-status-item direction="OUT" name="detailedStatus">
<array type="bool">
<custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
</array>
<data-field-ref field-name-ref="detailedStatus"/>
</detailed-status-item>
<detailed-status-labels-item direction="OUT" name="detailedStatus_labels">
<array2D type="char">
<custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/>
<custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/>
</array2D>
<data-field-ref field-name-ref="detailedStatus_labels"/>
</detailed-status-labels-item>
<detailed-status-severity-item direction="OUT" name="detailedStatus_severity">
<custom-type-array data-type-name-ref="DETAILED_STATUS_SEVERITY">
<custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
</custom-type-array>
<data-field-ref field-name-ref="detailedStatus_severity"/>
</detailed-status-severity-item>
<powerState-item direction="OUT" name="powerState">
<custom-type-scalar data-type-name-ref="DEVICE_POWER_STATE"/>
<data-field-ref field-name-ref="powerState"/>
</powerState-item>
<control-item direction="OUT" name="control">
<custom-type-scalar data-type-name-ref="DEVICE_CONTROL"/>
<data-field-ref field-name-ref="control"/>
</control-item>
<interlock-item direction="OUT" name="interlock">
<scalar type="bool"/>
<data-field-ref field-name-ref="interlock"/>
</interlock-item>
<opReady-item direction="OUT" name="opReady">
<scalar type="bool"/>
<data-field-ref field-name-ref="opReady"/>
</opReady-item>
<modulesReady-item direction="OUT" name="modulesReady">
<scalar type="bool"/>
<data-field-ref field-name-ref="modulesReady"/>
</modulesReady-item>
<error_collection-item direction="OUT">
<error_codes direction="OUT" name="error_codes">
<array type="int32_t">
<custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
</array>
</error_codes>
<error_messages direction="OUT" name="error_messages">
<array2D type="char">
<custom-constant-dim1 constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
<custom-constant-dim2 constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/>
</array2D>
</error_messages>
<error_timestamps direction="OUT" name="error_timestamps">
<array type="int64_t">
<custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
</array>
</error_timestamps>
<error_cycle_names direction="OUT" name="error_cycle_names">
<array2D type="char">
<custom-constant-dim1 constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
<custom-constant-dim2 constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/>
</array2D>
</error_cycle_names>
<error_collection-field-ref field-name-ref="error_collection"/>
</error_collection-item>
</GSI-Status-Property>
<GSI-ModuleStatus-Property visibility="development" subscribable="true" name="ModuleStatus" multiplexed="false">
<acq-stamp-item name="acqStamp" direction="OUT">
<scalar type="int64_t"/>
</acq-stamp-item>
<update-flag-item optional="true" name="updateFlags" direction="OUT">
<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
</update-flag-item>
<cycle-name-item optional="true" name="cycleName" direction="OUT">
<array type="char">
<dim>32</dim>
</array>
</cycle-name-item>
<cycle-stamp-item optional="true" name="cycleStamp" direction="OUT">
<scalar type="int64_t"/>
</cycle-stamp-item>
<get-action>
<server-action-ref server-action-name-ref="ModuleStatusGetAction"/>
</get-action>
<module-status-item name="moduleStatus" direction="OUT">
<custom-type-array data-type-name-ref="MODULE_STATUS">
<custom-constant-dim constant-name-ref="MODULE_STATUS_SIZE"/>
</custom-type-array>
<data-field-ref field-name-ref="moduleStatus"/>
</module-status-item>
<module-status-labels-item name="moduleStatus_labels" direction="OUT">
<array2D type="char">
<custom-constant-dim1 constant-name-ref="MODULE_STATUS_SIZE"/>
<custom-constant-dim2 constant-name-ref="MAX_MODULE_STATUS_LABEL_LENGTH"/>
</array2D>
<data-field-ref field-name-ref="moduleStatus_labels"/>
</module-status-labels-item>
</GSI-ModuleStatus-Property>
<GSI-Acquisition-Property multiplexed="true" name="Acquisition" on-change="true" subscribable="true" visibility="operational">
<acq-stamp-item direction="OUT" name="acqStamp">
<scalar type="int64_t"/>
</acq-stamp-item>
<update-flag-item direction="OUT" name="updateFlags" optional="true">
<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
</update-flag-item>
<cycle-name-item direction="OUT" name="cycleName" optional="true">
<array type="char">
<dim>32</dim>
</array>
</cycle-name-item>
<cycle-stamp-item direction="OUT" name="cycleStamp" optional="true">
<scalar type="int64_t"/>
</cycle-stamp-item>
<get-action>
<server-action-ref server-action-name-ref="AcquisitionGetAction"/>
</get-action>
<acquisition-context-item direction="OUT">
<acqStamp direction="OUT" name="acqStampGSI">
<scalar type="int64_t"/>
</acqStamp>
<cycleStamp direction="OUT" name="cycleStampGSI">
<scalar type="int64_t"/>
</cycleStamp>
<cycleName direction="OUT" name="cycleNameGSI">
<array type="char">
<custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/>
</array>
</cycleName>
<beamProcessID direction="OUT" name="beamProcessID">
<scalar type="int32_t"/>
</beamProcessID>
<sequenceID direction="OUT" name="sequenceID">
<scalar type="int32_t"/>
</sequenceID>
<acquisition-context-field-ref field-name-ref="acquisitionContext"/>
</acquisition-context-item>
</GSI-Acquisition-Property>
<GSI-Acquisition-Property name="MyROBlockProp" subscribable="true" multiplexed="false" on-change="true" visibility="development"><value-item name="RO_dt_fesa" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_dt_fesa"/></value-item><value-item name="RO_real_fesa" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_real_fesa"/></value-item><value-item name="RO_dint_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_dint_fesa"/></value-item><value-item name="RO_int_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int_fesa"/></value-item><value-item name="RO_dword_fesa" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_dword_fesa"/></value-item><value-item name="RO_word_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_word_fesa"/></value-item><value-item name="RO_byte_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_byte_fesa"/></value-item><value-item name="RO_char_fesa" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_char_fesa"/></value-item><value-item name="RO_date_fesa" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_date_fesa"/></value-item><value-item name="RO_string_fesa" direction="OUT"><array type="char"><dim>64</dim></array><data-field-ref field-name-ref="RO_string_fesa"/></value-item><value-item name="RO_float32_fesa" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_float32_fesa"/></value-item><value-item name="RO_uint32_fesa" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_uint32_fesa"/></value-item><value-item name="RO_int32_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_int32_fesa"/></value-item><value-item name="RO_uint16_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_uint16_fesa"/></value-item><value-item name="RO_int16_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int16_fesa"/></value-item><value-item name="RO_uint8_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_uint8_fesa"/></value-item><value-item name="RO_int8" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_int8"/></value-item><acq-stamp-item direction="OUT" name="acqStamp"><scalar type="int64_t"/></acq-stamp-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><cycle-stamp-item direction="OUT" optional="true" name="cycleStamp"><scalar type="int64_t"/></cycle-stamp-item><get-action><server-action-ref server-action-name-ref="GetMyROBlockProp"/></get-action><acquisition-context-item direction="OUT"><processIndex direction="OUT" name="processIndex"><scalar type="int32_t"/></processIndex><sequenceIndex direction="OUT" name="sequenceIndex"><scalar type="int32_t"/></sequenceIndex><chainIndex direction="OUT" name="chainIndex"><scalar type="int32_t"/></chainIndex><eventNumber direction="OUT" name="eventNumber"><scalar type="int32_t"/></eventNumber><timingGroupID direction="OUT" name="timingGroupID"><scalar type="int32_t"/></timingGroupID><acquisitionStamp direction="OUT" name="acquisitionStamp"><scalar type="int64_t"/></acquisitionStamp><eventStamp direction="OUT" name="eventStamp"><scalar type="int64_t"/></eventStamp><processStartStamp direction="OUT" name="processStartStamp"><scalar type="int64_t"/></processStartStamp><sequenceStartStamp direction="OUT" name="sequenceStartStamp"><scalar type="int64_t"/></sequenceStartStamp><chainStartStamp direction="OUT" name="chainStartStamp"><scalar type="int64_t"/></chainStartStamp><acquisition-context-field-ref field-name-ref="acquisitionContext"/></acquisition-context-item></GSI-Acquisition-Property><GSI-Version-Property multiplexed="false" name="Version" on-change="false" subscribable="false" visibility="operational">
<acq-stamp-item direction="OUT" name="acqStamp">
<scalar type="int64_t"/>
</acq-stamp-item>
<update-flag-item direction="OUT" name="updateFlags" optional="true">
<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
</update-flag-item>
<cycle-name-item direction="OUT" name="cycleName" optional="true">
<array type="char">
<dim>32</dim>
</array>
</cycle-name-item>
<cycle-stamp-item direction="OUT" name="cycleStamp" optional="true">
<scalar type="int64_t"/>
</cycle-stamp-item>
<get-action>
<server-action-ref server-action-name-ref="VersionGetAction"/>
</get-action>
<version-item direction="OUT" name="classVersion">
<array type="char">
<custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/>
</array>
</version-item>
<version-item direction="OUT" name="deployUnitVersion">
<array type="char">
<custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/>
</array>
</version-item>
<version-item direction="OUT" name="fesaVersion">
<array type="char">
<custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/>
</array>
</version-item>
</GSI-Version-Property>
</acquisition>
</device-interface>
<global-interface>
<setting>
<diagnostic-property multiplexed="false" name="DiagnosticSetting" visibility="expert">
<description>Generic property which allows to diagnose any FESA classes</description>
<mode-item direction="INOUT" name="enableDiagMode">
<scalar type="bool"/>
</mode-item>
<host-item direction="INOUT" name="hostName">
<array type="char">
<dim>32</dim>
</array>
</host-item>
<port-item direction="INOUT" name="portNumber">
<scalar type="int32_t"/>
</port-item>
<config-item direction="IN" name="requestConfig">
<scalar type="bool"/>
</config-item>
<state-item direction="IN" name="requestState">
<scalar type="bool"/>
</state-item>
<fwk-topic-item direction="INOUT" name="fwkTopic">
<builtin-type-scalar data-type-name-ref="DIAG_FWK_TOPIC"/>
</fwk-topic-item>
<custom-topic-item direction="INOUT" name="customTopic">
<custom-type-scalar data-type-name-ref="DIAG_TOPIC"/>
</custom-topic-item>
<device-trace-item direction="INOUT" name="traceDevices">
<array type="char">
<dim>320</dim>
</array>
</device-trace-item>
<bypass-action-item direction="INOUT" name="bypassActions">
<array type="char">
<dim>320</dim>
</array>
</bypass-action-item>
</diagnostic-property>
</setting>
<acquisition>
<GSI-DeviceDescription-Property multiplexed="false" name="DeviceDescription" on-change="false" subscribable="false" visibility="operational">
<timing-info-item direction="OUT" name="deviceNameTimingReceiver">
<array type="char">
<variable-dim/>
</array>
<data-field-ref field-name-ref="deviceNameTimingReceiver"/>
</timing-info-item>
<property-info-item direction="OUT" name="propertyNames">
<array2D type="char">
<variable-dim1/>
<variable-dim2/>
</array2D>
</property-info-item>
<device-info-item direction="OUT" name="deviceNames">
<array2D type="char">
<variable-dim1/>
<variable-dim2/>
</array2D>
</device-info-item>
<global-device-info-item direction="OUT" name="globalDeviceName">
<array type="char">
<variable-dim/>
</array>
</global-device-info-item>
<host-info-item direction="OUT" name="host">
<array type="char">
<variable-dim/>
</array>
</host-info-item>
</GSI-DeviceDescription-Property>
</acquisition>
</global-interface>
</interface>
<builtin-types>
<notification-update-enum name="NOTIFICATION_UPDATE">
<IMMEDIATE access="RO" symbol="IMMEDIATE" value="1"/>
<SET access="RO" symbol="SET" value="2"/>
</notification-update-enum>
<diag-fwk-topic name="DIAG_FWK_TOPIC">
<b0 name="SRV_GET_ACTION_PROFIING"/>
<b1 name="SRV_SET_ACTION_PROFILING"/>
<b2 name="RT_ACTION_PROFILING"/>
<b3 name="EVENT_PROFILING"/>
<b4 name="NOTIFICATION_PROFILING"/>
<b5 name="SRV_GET_ACTION_TRACKING"/>
<b6 name="SRV_SET_ACTION_TRACKING"/>
<b7 name="RT_ACTION_TRACKING"/>
<b8 name="EVENT_TRACKING"/>
<b9 name="NOTIFICATION_TRACKING"/>
<b10 name="PERSISTENCY_TRACKING"/>
<b11 name="TRANSACTION_TRACKING"/>
<b12 name="SUBSCRIPTION_TRACKING"/>
<b13 name="SIGNAL_HANDLER_TRACKING"/>
<b14 name="LOCAL_CONNECTION_TRACKING"/>
</diag-fwk-topic>
<fault-severity name="FaultSeverity">
<description>Enumeration listing the available fault severities used by the fault fields</description>
<INFO access="RO" meaning="NONE" value="0" symbol="INFO"/>
<WARNING access="RO" meaning="WARNING" value="1" symbol="WARNING"/>
<ERROR access="RO" meaning="ERROR" value="2" symbol="ERROR"/>
<CRITICAL access="RO" meaning="ERROR" value="3" symbol="CRITICAL"/>
</fault-severity>
</builtin-types>
<custom-types>
<diag-custom-topic name="DIAG_TOPIC">
</diag-custom-topic>
<enum name="DEVICE_STATUS">
<!--Possible (mutually exclusive) values to describe the device status-->
<item access="RW" meaning="NONE" symbol="UNKNOWN" value="0"/>
<!--The device status is unknown-->
<item access="RW" meaning="NONE" symbol="OK" value="1"/>
<!--The device is in fully operational state-->
<item access="RW" meaning="NONE" symbol="WARNING" value="2"/>
<!--The device is not fully operational; A device in WARNING state can still be used operationally, -->
<!--but clients must be informed of a problem that might become worse. Details are explained in the errorMsg field.-->
<item access="RW" meaning="NONE" symbol="ERROR" value="3"/>
<!--The device is in a fault state. Details are explained in the errorMsg field-->
</enum>
<enum name="DEVICE_POWER_STATE">
<!--Possible (mutually exclusive) values to describe the power-state of the device.-->
<item access="RW" meaning="NONE" symbol="UNKNOWN" value="0"/>
<!--The device mode is unknown-->
<item access="RW" meaning="ON" symbol="ON" value="1"/>
<!--The device is in fully operational state-->
<item access="RW" meaning="NONE" symbol="OFF" value="2"/>
<!--The device is turned off-->
<item access="RW" meaning="NONE" symbol="STANDBY" value="3"/>
<!--The device is in a stand-by mode. This mode is a sort of “parking mode” in which the device can -->
<!--stay for hours or even days. It is defined by the following characteristics:-->
<!--It is safe, it does not wear out, it consumes little energy.-->
<!--Furthermore, it takes a short time to go from STANDBY to ON mode-->
<item access="RW" meaning="NONE" symbol="POWER_DOWN" value="4"/>
<!--The device is shutting down. Note that some properties may not be accessible during this time.-->
<!--After shutdown the device will be in the mode OFF-->
<item access="RW" meaning="NONE" symbol="POWER_UP" value="5"/>
<!--The device is starting up. Note that some properties may not be accessible during this time.-->
<!--After (re-)starting the device probably will be in the mode ON-->
</enum>
<enum name="DEVICE_POWER">
<!--An enumeration Type used to control the operational mode of the device.-->
<!--Its values are a subset of those in the DEVICE_POWER_STATE type-->
<item access="RW" meaning="ON" symbol="ON" value="1"/>
<!--The device is in fully operational state-->
<item access="RW" meaning="OFF" symbol="OFF" value="2"/>
<!--The device is turned off-->
</enum>
<enum name="DEVICE_CONTROL">
<!--Possible values to describe the control mode of a device-->
<!--Currently two control modes (LOCAL, REMOTE) are defined-->
<item access="RW" meaning="NONE" symbol="REMOTE" value="0"/>
<!--The device can be controlled normally through the control system-->
<item access="RW" meaning="NONE" symbol="LOCAL" value="1"/>
<!--The device can be controlled locally. But it can be accessed in read-only mode via the control system-->
</enum>
<enum name="TOL_CHECK_MODE">
<!--This constant defines possible modes to check whether a control value is inside the tolerance values.-->
<!--Used to give information on how the tolerance fields are used to calculate the xxx_status information.-->
<item access="RO" symbol="ABS" value="0"/>
<!--Use the absolute tolerance _tolAbs-->
<item access="RO" symbol="REL" value="1"/>
<!--Use the relative tolerance _tolRel-->
</enum>
<bit-enum-32bits name="AQN_STATUS">
<!--Possible values to describe the acquisition status of a field (in the _status suffix)-->
<!--If this suffix is missing, it means that no additional status information is provided for the corresponding field-->
<!--If all bits are 0, this means that the corresponding field is OK.-->
<!--Only the lower 16 bits are standardized, the upper 16 bits can be defined by the equipment specialist.-->
<!--The difference between the Status property and the _status suffix is described in the section on the Status property.-->
<b0 name="NOT_OK"/>
<!--Some problem occurred that is not represented by the other bits. This property is called-->
<!-- NOT_OK so that it is not mixed up with ERROR or WARNING in the Status property-->
<b1 name="BAD_QUALITY"/>
<!--The value was acquired with a degraded quality. This is typically used for measurements.-->
<b2 name="DIFFERENT_FROM_SETTING"/>
<!--Different from the requested control value (for discrete values)--><!--or out of tolerance (for continuous values).-->
<b3 name="OUT_OF_RANGE"/>
<!--The value is out of the normal range (e.g. a temperature is too high or too low).-->
<b4 name="BUSY"/>
<!--The property value is changing in response to receiving a new control value (e.g. moving to a-->
<!--new position, charging a capacitor, ...). If the value change does not reach the requested new-->
<!--value within the maximum timeout, the BUSY bit should remain=1 and the TIMEOUT bit must be turned on.-->
<b5 name="TIMEOUT"/>
<!--A timeout occurred, because the property did not reach the reqested new control value within the-->
<!--maximum allowable time. A timeout normally indicates a problem to be addressed by the-->
<!--equipment specialist. This is typically used for slow changing control values that are BUSY while they change.-->
<b6 name="bit6_is_reserved_for_later_usage"/>
<b7 name="bit7_is_reserved_for_later_usage"/>
<b8 name="bit8_is_reserved_for_later_usage"/>
<b9 name="bit9_is_reserved_for_later_usage"/>
<b10 name="bit10_is_reserved_for_later_usage"/>
<b11 name="bit11_is_reserved_for_later_usage"/>
<b12 name="bit12_is_reserved_for_later_usage"/>
<b13 name="bit13_is_reserved_for_later_usage"/>
<b14 name="bit14_is_reserved_for_later_usage"/>
<b15 name="bit15_is_reserved_for_later_usage"/>
<!--bit 6 to 15 are reserved ... dont use them!-->
<b16 name="bit_16_and_higher_can_be_used_by_the_class_developer"/>
<!--into bit 16..32 you can put in anything you want-->
</bit-enum-32bits>
<struct name="GSI_ERROR">
<!--This struct-item describes the structure of an GSI-error-->
<struct-item name="error_string">
<!--This string holds the error-message-->
<array type="char">
<custom-constant-dim constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/>
</array>
</struct-item>
<struct-item name="error_code">
<!--The error code according to the defined error-message-->
<scalar type="int32_t"/>
</struct-item>
<!--The timestamp when the error occured-->
<struct-item name="error_timestamp">
<scalar type="int64_t"/>
</struct-item>
<!--The cycle for which the error occured-->
<struct-item name="error_cycle_name">
<array type="char">
<custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/>
</array>
</struct-item>
</struct>
<struct name="GSI_ACQ_CONTEXT">
<!--This struct-item describes all AcquisitionContext items which are relevant for GSI-->
<struct-item name="acqStamp">
<!--The acquisition stamp is used to indicate when a measurement was done -->
<scalar type="int64_t"/>
</struct-item>
<struct-item name="cycleStamp">
<!--The cycle stamp is used to indicate when a specific cycle has started-->
<scalar type="int64_t"/>
</struct-item>
<struct-item name="cycleName">
<!--The cycle name indicates the cycle which started at time of the cycleStamp -->
<array type="char">
<custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/>
</array>
</struct-item>
<struct-item name="beamProcessID">
<scalar type="int32_t"/>
</struct-item>
<struct-item name="sequenceID">
<scalar type="int32_t"/>
</struct-item>
</struct>
<constant name="MAX_ERROR_MESSAGE_LENGTH" type="uint32_t" value="256"/>
<constant name="MAX_NUMBER_OF_ERROR_MESSAGES" type="uint32_t" value="16"/>
<constant name="MAX_CYCLE_NAME_LENGTH" type="uint32_t" value="256"/>
<constant name="MAX_VERSION_NAME_LENGTH" type="uint32_t" value="256"/>
<constant name="MAX_DETAILED_STATUS_LABEL_LENGTH" type="uint32_t" value="30"/>
<constant name="DETAILED_STATUS_SIZE" type="uint32_t" value="2"/>
<enum name="DETAILED_STATUS_SEVERITY">
<item access="RO" symbol="INFO" value="0"/>
<item access="RO" symbol="WARNING_ON_FALSE" value="1"/>
<item access="RO" symbol="ERROR_ON_FALSE" value="2"/>
</enum>
<enum name="MODULE_STATUS">
<!-- Mutually exclusive values to describe the status of a hardware / software module-->
<item access="RO" value="0" symbol="UNKNOWN"/>
<!--The status of the module is not known-->
<item access="RO" value="1" symbol="OK"/>
<!--The module is in fully operational state-->
<item access="RO" value="2" symbol="WARNING"/>
<!--The module is not fully operational; A module in WARNING state may still be used operationally, -->
<!--but clients must be informed of a problem that might become worse. -->
<item access="RO" value="3" symbol="ERROR"/>
<!--The module is in a fault state. The related device is not operational.-->
<item access="RO" value="4" symbol="NOT_AVAILABLE"/>
<!--The module is missing. The related device is not operational.-->
</enum>
<constant name="MAX_MODULE_STATUS_LABEL_LENGTH" type="uint32_t" value="30"/>
<constant name="MODULE_STATUS_SIZE" type="uint32_t" value="2"/>
</custom-types>
<data>
<device-data>
<configuration>
<field name="plcDeviceLabel"><description>Name of the related SILECS instance within the PLC mapping</description><array type="char"><dim>128</dim></array></field><field name="plcHostName"><description>Hostname of the PLC that contains the related SILECS class device</description><array type="char"><dim>128</dim></array></field><GSI-detailed-status-labels-field name="detailedStatus_labels">
<array2D type="char">
<custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/>
<custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/>
</array2D>
<default>{myStatusLabel1,myStatusLabel2}</default>
</GSI-detailed-status-labels-field>
<GSI-detailed-status-severity-field name="detailedStatus_severity">
<custom-type-array data-type-name-ref="DETAILED_STATUS_SEVERITY">
<custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
</custom-type-array>
<default>{INFO,INFO}</default>
</GSI-detailed-status-severity-field>
<GSI-module-status-labels-field name="moduleStatus_labels">
<array2D type="char">
<custom-constant-dim1 constant-name-ref="MODULE_STATUS_SIZE"/>
<custom-constant-dim2 constant-name-ref="MAX_MODULE_STATUS_LABEL_LENGTH"/>
</array2D>
<default>{myModule1,myModule2}</default>
</GSI-module-status-labels-field>
</configuration>
<setting>
<field name="WO_dt_fesa" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_real_fesa" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_dint_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_dword_fesa" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_word_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_byte_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_char_fesa" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="WO_date_fesa" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_string_fesa" multiplexed="false" persistent="true"><array2D type="char"><dim1>10</dim1><dim2>64</dim2></array2D></field><field name="WO_float32_fesa" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_uint32_fesa" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_int32_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_uint16_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int16_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_uint8_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_int8" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="RW_dt_fesa" multiplexed="false" persistent="false"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_real_fesa" multiplexed="false" persistent="false"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dint_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dword_fesa" multiplexed="false" persistent="false"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_word_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_byte_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_char_fesa" multiplexed="false" persistent="false"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_date_fesa" multiplexed="false" persistent="false"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_float32_fesa" multiplexed="false" persistent="false"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint32_fesa" multiplexed="false" persistent="false"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int32_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint16_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int16_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint8_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int8" multiplexed="false" persistent="false"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><GSI-power-field multiplexed="false" name="power" persistent="false">
<custom-type-scalar data-type-name-ref="DEVICE_POWER"/>
</GSI-power-field>
</setting>
<acquisition>
<field name="RO_dt_fesa" multiplexed="false" persistent="false"><scalar type="double"/></field><field name="RO_real_fesa" multiplexed="false" persistent="false"><scalar type="float"/></field><field name="RO_dint_fesa" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_int_fesa" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_dword_fesa" multiplexed="false" persistent="false"><scalar type="int64_t"/></field><field name="RO_word_fesa" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_byte_fesa" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_char_fesa" multiplexed="false" persistent="false"><scalar type="int8_t"/></field><field name="RO_date_fesa" multiplexed="false" persistent="false"><scalar type="double"/></field><field name="RO_string_fesa" multiplexed="false" persistent="false"><array type="char"><dim>64</dim></array></field><field name="RO_float32_fesa" multiplexed="false" persistent="false"><scalar type="float"/></field><field name="RO_uint32_fesa" multiplexed="false" persistent="false"><scalar type="int64_t"/></field><field name="RO_int32_fesa" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_uint16_fesa" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_int16_fesa" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_uint8_fesa" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_int8" multiplexed="false" persistent="false"><scalar type="int8_t"/></field><GSI-control-field multiplexed="false" name="control">
<custom-type-scalar data-type-name-ref="DEVICE_CONTROL"/>
</GSI-control-field>
<GSI-powerState-field multiplexed="false" name="powerState">
<custom-type-scalar data-type-name-ref="DEVICE_POWER_STATE"/>
</GSI-powerState-field>
<GSI-status-field multiplexed="false" name="status">
<custom-type-scalar data-type-name-ref="DEVICE_STATUS"/>
</GSI-status-field>
<GSI-interlock-field multiplexed="false" name="interlock">
<scalar type="bool"/>
</GSI-interlock-field>
<GSI-opReady-field multiplexed="false" name="opReady">
<scalar type="bool"/>
</GSI-opReady-field>
<GSI-modulesReady-field name="modulesReady" multiplexed="false">
<scalar type="bool"/>
</GSI-modulesReady-field>
<GSI-detailed-status-field multiplexed="false" name="detailedStatus">
<array type="bool">
<custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
</array>
</GSI-detailed-status-field>
<GSI-module-status-field name="moduleStatus" multiplexed="false">
<custom-type-array data-type-name-ref="MODULE_STATUS">
<custom-constant-dim constant-name-ref="MODULE_STATUS_SIZE"/>
</custom-type-array>
</GSI-module-status-field>
<GSI-acquisition-context-field multiplexed="true" name="acquisitionContext">
<custom-type-scalar data-type-name-ref="GSI_ACQ_CONTEXT"/>
</GSI-acquisition-context-field>
<GSI-error_collection-field multiplexed="false" name="error_collection">
<custom-type-array data-type-name-ref="GSI_ERROR">
<custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
</custom-type-array>
</GSI-error_collection-field>
</acquisition>
</device-data>
<global-data>
<configuration>
<!-- The name of the timing receiver -->
<field name="plcClassVersion"><description>Version of the SILECS class that needs to be deployed in the controller</description><array type="char"><dim>5</dim></array><default>0.1.0</default></field><GSI-timing-receiver-name-field name="deviceNameTimingReceiver">
<array type="char">
<!-- The number of the timing receiver -->
<variable-dim/>
</array>
</GSI-timing-receiver-name-field>
</configuration>
</global-data>
</data>
<actions>
<set-server-action implementation="default" name="InitSetAction"/>
<set-server-action implementation="default" name="ResetSetAction"/>
<set-server-action implementation="default" name="SettingSetAction"/>
<set-server-action implementation="default" name="PowerSetAction"/>
<get-server-action implementation="default" name="PowerGetAction"/>
<get-server-action implementation="default" name="SettingGetAction"/>
<get-server-action implementation="default" name="AcquisitionGetAction"/>
<get-server-action implementation="default" name="StatusGetAction"/>
<get-server-action implementation="default" name="VersionGetAction"/><get-server-action implementation="default" name="ModuleStatusGetAction"/>
<get-server-action name="GetMyROBlockProp" implementation="custom"/><set-server-action name="SetMyRWBlockProp" implementation="custom"/><get-server-action name="GetMyRWBlockProp" implementation="custom"/><set-server-action name="SetMyWOBlockProp" implementation="custom"/><get-server-action name="GetMyWOBlockProp" implementation="custom"/></actions>
</equipment-model>
../../../../../test/AllTypesFESA/src/AllTypesFESA.design
\ No newline at end of file
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.421145"/>
<Deployment checksum="1037751963"/>
<Generation date="2022-05-03 13:44:38.926747"/>
<Deployment checksum="569447025"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Beckhoff_BC9020" plc-brand="BECKHOFF" plc-system="TWINCat-2" plc-model="BC9020" protocol="BLOCK_MODE" address="32768" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="32768" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW23/24 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="32816" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW24..MW1783/1760 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="32816" mem-size="122">
<SILECS-Class name="AllTypes" version="0.1.0" address="32816" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW24..MW2161/2138 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="32816" mem-size="126">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="65">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="86" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="94" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="96" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="98" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="100" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="104" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="106" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="110" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="114" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="122" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="33060" mem-size="468">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="33068" mem-size="334">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="65">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="86" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="94" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="96" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="98" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="100" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="104" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="106" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="110" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="114" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="122" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="126" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="130" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="138" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="146" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="162" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="178" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="194" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="226" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="230" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="234" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="242" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="258" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="266" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="282" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="298" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="330" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="33996" mem-size="1170">
<Command-Block name="MyWOBlock" size="570" address="33736" mem-size="1210">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="650">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="830" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="910" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="920" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="930" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="950" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="990" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1010" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1050" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1090" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1170" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="36156" mem-size="468">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="260">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="372" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="380" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="396" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="404" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="420" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="436" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-28 12:11:45.390885"/>
<Deployment checksum="2754857673"/>
<Generation date="2022-05-03 13:44:38.956378"/>
<Deployment checksum="2418665096"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Beckhoff_CX9020_TC2" plc-brand="BECKHOFF" plc-system="TWINCat-2" plc-model="CX9020" protocol="BLOCK_MODE" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW51/52 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW52..MW3587/3536 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="24628" mem-size="128">
<SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW52..MW4355/4304 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="24628" mem-size="132">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="65">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="88" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="96" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="98" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="100" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="104" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="108" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="112" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="116" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="120" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="128" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="24884" mem-size="468">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="24892" mem-size="340">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="65">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="88" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="96" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="98" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="100" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="104" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="108" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="112" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="116" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="120" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="128" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="132" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="136" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="144" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="152" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="168" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="184" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="200" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="232" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="236" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="240" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="248" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="264" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="272" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="288" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="304" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="336" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="25820" mem-size="1172">
<Command-Block name="MyWOBlock" size="570" address="25572" mem-size="1212">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="650">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="832" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="912" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="922" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="932" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="952" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="992" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1012" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1052" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1092" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1172" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="27996" mem-size="468">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="260">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="372" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="380" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="396" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="404" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="420" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="436" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-28 12:11:45.427012"/>
<Deployment checksum="2754857673"/>
<Generation date="2022-05-03 13:44:38.982863"/>
<Deployment checksum="2418665096"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Beckhoff_CX9020_TC3" plc-brand="BECKHOFF" plc-system="TWINCat-3" plc-model="CX9020" protocol="BLOCK_MODE" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW25/26 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW26..MW1793/1768 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="24628" mem-size="128">
<SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW26..MW2177/2152 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="24628" mem-size="132">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="65">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="88" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="96" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="98" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="100" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="104" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="108" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="112" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="116" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="120" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="128" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="24884" mem-size="468">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="24892" mem-size="340">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="65">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="88" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="96" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="98" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="100" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="104" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="108" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="112" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="116" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="120" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="128" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="132" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="136" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="144" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="152" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="168" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="184" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="200" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="232" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="236" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="240" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="248" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="264" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="272" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="288" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="304" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="336" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="25820" mem-size="1172">
<Command-Block name="MyWOBlock" size="570" address="25572" mem-size="1212">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="650">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="832" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="912" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="922" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="932" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="952" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="992" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1012" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1052" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1092" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1172" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="27996" mem-size="468">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="260">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="372" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="380" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="396" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="404" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="420" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="436" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.611199"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:09.210682"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Rabbit_BlockMode" plc-brand="DIGI" plc-system="Standard-C" plc-model="Rabbit_RCM_4010" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1821/1800 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="44" mem-size="120">
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2213/2192 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="44" mem-size="124">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="2">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="94" mem-size="2">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="98" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="102" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="104" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="108" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="112" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="120" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="284" mem-size="480">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="24" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="32" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="48" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="64" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="80" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="384" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="392" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="408" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="416" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="432" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="448" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="292" mem-size="348">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="2">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="94" mem-size="2">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="98" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="102" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="104" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="108" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="112" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="120" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="128" mem-size="8">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="136" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="144" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="152" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="168" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="184" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="200" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="232" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="240" mem-size="8">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="248" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="256" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="272" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="280" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="296" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="312" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="344" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="1244" mem-size="1200">
<Command-Block name="MyWOBlock" size="570" address="988" mem-size="1240">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="20" mem-size="20">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="60" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="80" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="120" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="160" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="200" mem-size="640">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="20">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="940" mem-size="20">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="960" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="980" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1020" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1040" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1080" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1120" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1200" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="3468" mem-size="480">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="24" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="32" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="48" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="64" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="80" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="384" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="392" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="408" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="416" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="432" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="448" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.572989"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:09.167728"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Rabbit_DeviceMode" plc-brand="DIGI" plc-system="Standard-C" plc-model="Rabbit_RCM_4010" protocol="DEVICE_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1821/1800 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="120">
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2213/2192 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="0" mem-size="124">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="2">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="94" mem-size="2">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="98" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="102" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="104" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="108" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="112" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="120" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="120" mem-size="480">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="24" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="32" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="48" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="64" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="80" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="384" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="392" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="408" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="416" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="432" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="448" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="124" mem-size="348">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="2">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="94" mem-size="2">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="98" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="102" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="104" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="108" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="112" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="120" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="128" mem-size="8">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="136" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="144" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="152" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="168" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="184" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="200" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="232" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="240" mem-size="8">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="248" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="256" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="272" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="280" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="296" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="312" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="344" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="600" mem-size="1200">
<Command-Block name="MyWOBlock" size="570" address="472" mem-size="1240">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="20" mem-size="20">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="60" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="80" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="120" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="160" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="200" mem-size="640">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="20">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="940" mem-size="20">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="960" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="980" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1020" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1040" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1080" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1120" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1200" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1844" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="1712" mem-size="480">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="24" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="32" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="48" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="64" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="80" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="384" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="392" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="408" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="416" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="432" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="448" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="2236" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.534996"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:09.115829"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Schneider_M340" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="M340" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1801/1780 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="44" mem-size="124">
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2189/2168 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="44" mem-size="128">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="94" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="100" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="104" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="108" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="112" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="116" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="124" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="292" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="12" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="20" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="28" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="44" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="60" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="76" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="300" mem-size="344">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="94" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="100" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="104" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="108" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="112" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="116" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="124" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="132" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="136" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="144" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="152" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="168" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="184" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="200" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="232" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="240" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="244" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="252" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="268" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="276" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="292" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="308" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="340" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="1236" mem-size="1184">
<Command-Block name="MyWOBlock" size="570" address="988" mem-size="1224">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="20" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="30" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="50" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="72" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="112" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="152" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="192" mem-size="640">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="832" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="912" mem-size="20">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="932" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="942" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="964" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1004" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1024" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1064" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1104" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1184" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="3436" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="12" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="20" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="28" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="44" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="60" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="76" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.499570"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:09.065295"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Schneider_PremiumQuantum" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="Premium" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1793/1772 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<Acquisition-Block name="MyROBlock" size="53" address="44" mem-size="120">
<SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2177/2156 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="44" mem-size="124">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="94" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="98" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="102" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="104" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="108" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="112" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="120" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="284" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="12" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="20" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="28" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="44" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="60" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="76" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="292" mem-size="340">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="2" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="4" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="6" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="8" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="12" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="16" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="20" mem-size="64">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="2">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="94" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="96" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="98" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="102" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="104" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="108" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="112" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="120" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="128" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="132" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="140" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="148" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="164" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="180" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="196" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="228" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="236" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="240" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="248" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="264" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="272" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="288" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="304" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="336" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="1228" mem-size="1180">
<Command-Block name="MyWOBlock" size="570" address="972" mem-size="1220">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="20" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="30" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="50" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="70" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="110" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="150" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="190" mem-size="640">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="830" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="910" mem-size="20">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="930" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="940" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="960" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1000" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1020" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1060" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1100" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1180" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="3412" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="12" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="20" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="28" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="44" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="60" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="76" mem-size="256">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="8">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.268832"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:08.722245"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Siemens_Step7Block" plc-brand="SIEMENS" plc-system="STEP-7" plc-model="SIMATIC_S7-300" protocol="DEVICE_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="118">
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/4288 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="0" mem-size="122">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="118" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="118" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="122" mem-size="330">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="118" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="122" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="126" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="134" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="142" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="158" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="174" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="190" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="222" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="226" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="230" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="238" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="254" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="262" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="278" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="294" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="326" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="590" mem-size="1180">
<Command-Block name="MyWOBlock" size="570" address="452" mem-size="1220">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="660">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="930" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="940" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="960" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1000" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1020" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1060" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1100" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1180" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="1672" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.306171"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:08.779231"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Siemens_Step7Device" plc-brand="SIEMENS" plc-system="STEP-7" plc-model="SIMATIC_S7-300" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB3/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="MyROBlock" size="53" address="1" mem-size="118">
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB4/4288 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="1" mem-size="122">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="118" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="2" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="2" mem-size="330">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="118" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="122" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="126" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="134" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="142" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="158" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="174" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="190" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="222" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="226" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="230" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="238" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="254" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="262" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="278" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="294" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="326" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="3" mem-size="1180">
<Command-Block name="MyWOBlock" size="570" address="3" mem-size="1220">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="660">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="930" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="940" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="960" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1000" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1020" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1060" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1100" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1180" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="4" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.229930"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:08.664473"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Siemens_TiaBlock" plc-brand="SIEMENS" plc-system="TIA-PORTAL" plc-model="SIMATIC_S7-300" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB3/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="MyROBlock" size="53" address="1" mem-size="118">
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB4/4288 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="1" mem-size="122">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="118" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="2" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="2" mem-size="330">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="118" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="122" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="126" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="134" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="142" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="158" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="174" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="190" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="222" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="226" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="230" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="238" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="254" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="262" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="278" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="294" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="326" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="3" mem-size="1180">
<Command-Block name="MyWOBlock" size="570" address="3" mem-size="1220">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="660">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="930" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="940" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="960" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1000" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1020" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1060" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1100" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1180" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="4" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="FESA_NAME1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="FESA_NAME2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-27 16:14:06.192160"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:08.626917"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Siemens_TiaDevice" plc-brand="SIEMENS" plc-system="TIA-PORTAL" plc-model="SIMATIC_S7-300" protocol="DEVICE_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
......@@ -21,170 +22,288 @@
<scalar format="dt"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="118">
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/4288 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="0" mem-size="122">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="118" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="118" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="122" mem-size="330">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="118" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="122" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="126" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="134" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="142" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="158" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="174" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="190" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="222" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="226" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="230" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="238" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="254" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="262" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="278" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="294" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="326" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="590" mem-size="1180">
<Command-Block name="MyWOBlock" size="570" address="452" mem-size="1220">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="660">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="930" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="940" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="960" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1000" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1020" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1060" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1100" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1180" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="1672" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="FESA_NAME1" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="FESA_NAME2" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>
<?xml version="1.0"?>
<!--This file is auto generated by the SILECS framework tools. Code regeneration will overwrite it.-->
<SILECS-Param silecs-version="DEV">
<Mapping-Info>
<Owner user-login="schwinn"/>
<Generation date="2017-07-28 12:09:58.078995"/>
<Deployment checksum="308863231"/>
<Generation date="2018-01-31 17:06:08.881285"/>
<Deployment checksum="132780255"/>
</Mapping-Info>
<SILECS-Mapping plc-name="Virtual_SiemensBlock" plc-brand="SIEMENS" plc-system="SNAP7 linux32" plc-model="SIMATIC_S7-VIRTUAL" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="hdrBlk" size="14" address="0" mem-size="48">
<SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/52 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="hdrBlk" size="18" address="0" mem-size="52">
<Acquisition-Register name="_version" size="1" address="0" mem-size="18">
<string string-length="16" format="string"/>
</Acquisition-Register>
......@@ -17,174 +18,292 @@
<Acquisition-Register name="_user" size="1" address="22" mem-size="18">
<string string-length="16" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="_date" size="8" address="40" mem-size="8">
<scalar format="dt"/>
<Acquisition-Register name="_date" size="12" address="40" mem-size="12">
<scalar format="dtl"/>
</Acquisition-Register>
</Acquisition-Block>
<Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="SilecsHeader" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB3/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<Acquisition-Block name="MyROBlock" size="53" address="1" mem-size="118">
<SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB4/4288 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte">
<custom-types>
<enum name="TEST_ENUM">
<item access="RW" value="0" symbol="OK"/>
<item access="RW" value="1" symbol="WARNING"/>
<item access="RW" value="2" symbol="ERROR"/>
<item access="RW" value="3" symbol="UNKNOWN"/>
</enum>
</custom-types>
<Acquisition-Block name="MyROBlock" size="57" address="1" mem-size="122">
<Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Acquisition-Register>
<scalar format="int8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint8" generateFesaValueItem="true" fesaFieldName="RO_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Acquisition-Register>
<scalar format="uint8"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int16" generateFesaValueItem="true" fesaFieldName="RO_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Acquisition-Register>
<scalar format="int16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint16" generateFesaValueItem="true" fesaFieldName="RO_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Acquisition-Register>
<scalar format="uint16"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int32" generateFesaValueItem="true" fesaFieldName="RO_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Acquisition-Register>
<scalar format="int32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_uint32" generateFesaValueItem="true" fesaFieldName="RO_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Acquisition-Register>
<scalar format="uint32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_float32" generateFesaValueItem="true" fesaFieldName="RO_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Acquisition-Register>
<scalar format="float32"/>
</Acquisition-Register>
<Acquisition-Register name="RO_string" generateFesaValueItem="true" fesaFieldName="RO_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Acquisition-Register>
<string string-length="64" format="string"/>
</Acquisition-Register>
<Acquisition-Register name="RO_date" generateFesaValueItem="true" fesaFieldName="RO_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Acquisition-Register>
<scalar format="date"/>
</Acquisition-Register>
<Acquisition-Register name="RO_char" generateFesaValueItem="true" fesaFieldName="RO_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Acquisition-Register>
<scalar format="char"/>
</Acquisition-Register>
<Acquisition-Register name="RO_byte" generateFesaValueItem="true" fesaFieldName="RO_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Acquisition-Register>
<scalar format="byte"/>
</Acquisition-Register>
<Acquisition-Register name="RO_word" generateFesaValueItem="true" fesaFieldName="RO_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Acquisition-Register>
<scalar format="word"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dword" generateFesaValueItem="true" fesaFieldName="RO_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Acquisition-Register>
<scalar format="dword"/>
</Acquisition-Register>
<Acquisition-Register name="RO_int" generateFesaValueItem="true" fesaFieldName="RO_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Acquisition-Register>
<scalar format="int"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dint" generateFesaValueItem="true" fesaFieldName="RO_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Acquisition-Register>
<scalar format="dint"/>
</Acquisition-Register>
<Acquisition-Register name="RO_real" generateFesaValueItem="true" fesaFieldName="RO_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Acquisition-Register>
<scalar format="real"/>
</Acquisition-Register>
<Acquisition-Register name="RO_dt" generateFesaValueItem="true" fesaFieldName="RO_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Acquisition-Register>
<scalar format="dt"/>
</Acquisition-Register>
<Acquisition-Register name="RO_enum" generateFesaValueItem="true" fesaFieldName="RO_enum_fesa" size="4" address="118" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Acquisition-Register>
</Acquisition-Block>
<Setting-Block name="MyRWBlock" size="212" address="2" mem-size="472">
<Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Volatile-Register>
<Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Volatile-Register>
<Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Volatile-Register>
<Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Volatile-Register>
<Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Volatile-Register>
<Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Volatile-Register>
<Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Volatile-Register>
<Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Volatile-Register>
<Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Volatile-Register>
<Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Volatile-Register>
<Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Volatile-Register>
<Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Volatile-Register>
<Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Volatile-Register>
<Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Volatile-Register>
<Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Volatile-Register>
<Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Volatile-Register>
<Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Volatile-Register>
<Setting-Block name="MyRWBlock" size="265" address="2" mem-size="330">
<Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1">
<scalar format="int8"/>
</Setting-Register>
<Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="1" mem-size="1">
<scalar format="uint8"/>
</Setting-Register>
<Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="2" mem-size="2">
<scalar format="int16"/>
</Setting-Register>
<Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="4" mem-size="2">
<scalar format="uint16"/>
</Setting-Register>
<Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="6" mem-size="4">
<scalar format="int32"/>
</Setting-Register>
<Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="10" mem-size="4">
<scalar format="uint32"/>
</Setting-Register>
<Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="14" mem-size="4">
<scalar format="float32"/>
</Setting-Register>
<Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="18" mem-size="66">
<string string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="84" mem-size="8">
<scalar format="date"/>
</Setting-Register>
<Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="92" mem-size="1">
<scalar format="char"/>
</Setting-Register>
<Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="93" mem-size="1">
<scalar format="byte"/>
</Setting-Register>
<Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="94" mem-size="2">
<scalar format="word"/>
</Setting-Register>
<Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="96" mem-size="4">
<scalar format="dword"/>
</Setting-Register>
<Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="100" mem-size="2">
<scalar format="int"/>
</Setting-Register>
<Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="102" mem-size="4">
<scalar format="dint"/>
</Setting-Register>
<Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="106" mem-size="4">
<scalar format="real"/>
</Setting-Register>
<Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="110" mem-size="8">
<scalar format="dt"/>
</Setting-Register>
<Setting-Register name="RW2_int8" generateFesaValueItem="true" size="1" address="118" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Setting-Register>
<Setting-Register name="RW2_uint8" generateFesaValueItem="true" fesaFieldName="RW2_uint8_fesa" size="1" address="122" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Setting-Register>
<Setting-Register name="RW2_int16" generateFesaValueItem="true" fesaFieldName="RW2_int16_fesa" size="2" address="126" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Setting-Register>
<Setting-Register name="RW2_uint16" generateFesaValueItem="true" fesaFieldName="RW2_uint16_fesa" size="2" address="134" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Setting-Register>
<Setting-Register name="RW2_int32" generateFesaValueItem="true" fesaFieldName="RW2_int32_fesa" size="4" address="142" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Setting-Register>
<Setting-Register name="RW2_uint32" generateFesaValueItem="true" fesaFieldName="RW2_uint32_fesa" size="4" address="158" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Setting-Register>
<Setting-Register name="RW2_float32" generateFesaValueItem="true" fesaFieldName="RW2_float32_fesa" size="4" address="174" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Setting-Register>
<Setting-Register name="RW2_date" generateFesaValueItem="true" fesaFieldName="RW2_date_fesa" size="8" address="190" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Setting-Register>
<Setting-Register name="RW2_char" generateFesaValueItem="true" fesaFieldName="RW2_char_fesa" size="1" address="222" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Setting-Register>
<Setting-Register name="RW2_byte" generateFesaValueItem="true" fesaFieldName="RW2_byte_fesa" size="1" address="226" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Setting-Register>
<Setting-Register name="RW2_word" generateFesaValueItem="true" fesaFieldName="RW2_word_fesa" size="2" address="230" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Setting-Register>
<Setting-Register name="RW2_dword" generateFesaValueItem="true" fesaFieldName="RW2_dword_fesa" size="4" address="238" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Setting-Register>
<Setting-Register name="RW2_int" generateFesaValueItem="true" fesaFieldName="RW2_int_fesa" size="2" address="254" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Setting-Register>
<Setting-Register name="RW2_dint" generateFesaValueItem="true" fesaFieldName="RW2_dint_fesa" size="4" address="262" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Setting-Register>
<Setting-Register name="RW2_real" generateFesaValueItem="true" fesaFieldName="RW2_real_fesa" size="4" address="278" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Setting-Register>
<Setting-Register name="RW2_dt" generateFesaValueItem="true" fesaFieldName="RW2_dt_fesa" size="8" address="294" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Setting-Register>
<Setting-Register name="RW_enum" generateFesaValueItem="true" fesaFieldName="RW_enum_fesa" size="4" address="326" mem-size="4">
<custom-type-scalar custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Setting-Block>
<Command-Block name="MyWOBlock" size="530" address="3" mem-size="1180">
<Command-Block name="MyWOBlock" size="570" address="3" mem-size="1220">
<Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10">
<array dim="10" format="int8"/>
</Setting-Register>
<array dim="10" format="int8"/>
</Setting-Register>
<Setting-Register name="WO_uint8" generateFesaValueItem="true" fesaFieldName="WO_uint8_fesa" size="1" address="10" mem-size="10">
<array dim="10" format="uint8"/>
</Setting-Register>
<array dim="10" format="uint8"/>
</Setting-Register>
<Setting-Register name="WO_int16" generateFesaValueItem="true" fesaFieldName="WO_int16_fesa" size="2" address="20" mem-size="20">
<array dim="10" format="int16"/>
</Setting-Register>
<array dim="10" format="int16"/>
</Setting-Register>
<Setting-Register name="WO_uint16" generateFesaValueItem="true" fesaFieldName="WO_uint16_fesa" size="2" address="40" mem-size="20">
<array dim="10" format="uint16"/>
</Setting-Register>
<array dim="10" format="uint16"/>
</Setting-Register>
<Setting-Register name="WO_int32" generateFesaValueItem="true" fesaFieldName="WO_int32_fesa" size="4" address="60" mem-size="40">
<array dim="10" format="int32"/>
</Setting-Register>
<array dim="10" format="int32"/>
</Setting-Register>
<Setting-Register name="WO_uint32" generateFesaValueItem="true" fesaFieldName="WO_uint32_fesa" size="4" address="100" mem-size="40">
<array dim="10" format="uint32"/>
</Setting-Register>
<array dim="10" format="uint32"/>
</Setting-Register>
<Setting-Register name="WO_float32" generateFesaValueItem="true" fesaFieldName="WO_float32_fesa" size="4" address="140" mem-size="40">
<array dim="10" format="float32"/>
</Setting-Register>
<array dim="10" format="float32"/>
</Setting-Register>
<Setting-Register name="WO_string" generateFesaValueItem="true" fesaFieldName="WO_string_fesa" size="1" address="180" mem-size="660">
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<stringArray dim="10" string-length="64" format="string"/>
</Setting-Register>
<Setting-Register name="WO_date" generateFesaValueItem="true" fesaFieldName="WO_date_fesa" size="8" address="840" mem-size="80">
<array dim="10" format="date"/>
</Setting-Register>
<array dim="10" format="date"/>
</Setting-Register>
<Setting-Register name="WO_char" generateFesaValueItem="true" fesaFieldName="WO_char_fesa" size="1" address="920" mem-size="10">
<array dim="10" format="char"/>
</Setting-Register>
<array dim="10" format="char"/>
</Setting-Register>
<Setting-Register name="WO_byte" generateFesaValueItem="true" fesaFieldName="WO_byte_fesa" size="1" address="930" mem-size="10">
<array dim="10" format="byte"/>
</Setting-Register>
<array dim="10" format="byte"/>
</Setting-Register>
<Setting-Register name="WO_word" generateFesaValueItem="true" fesaFieldName="WO_word_fesa" size="2" address="940" mem-size="20">
<array dim="10" format="word"/>
</Setting-Register>
<array dim="10" format="word"/>
</Setting-Register>
<Setting-Register name="WO_dword" generateFesaValueItem="true" fesaFieldName="WO_dword_fesa" size="4" address="960" mem-size="40">
<array dim="10" format="dword"/>
</Setting-Register>
<array dim="10" format="dword"/>
</Setting-Register>
<Setting-Register name="WO_int" generateFesaValueItem="true" fesaFieldName="WO_int_fesa" size="2" address="1000" mem-size="20">
<array dim="10" format="int"/>
</Setting-Register>
<array dim="10" format="int"/>
</Setting-Register>
<Setting-Register name="WO_dint" generateFesaValueItem="true" fesaFieldName="WO_dint_fesa" size="4" address="1020" mem-size="40">
<array dim="10" format="dint"/>
</Setting-Register>
<array dim="10" format="dint"/>
</Setting-Register>
<Setting-Register name="WO_real" generateFesaValueItem="true" fesaFieldName="WO_real_fesa" size="4" address="1060" mem-size="40">
<array dim="10" format="real"/>
</Setting-Register>
<array dim="10" format="real"/>
</Setting-Register>
<Setting-Register name="WO_dt" generateFesaValueItem="true" fesaFieldName="WO_dt_fesa" size="8" address="1100" mem-size="80">
<array dim="10" format="dt"/>
</Setting-Register>
<array dim="10" format="dt"/>
</Setting-Register>
<Setting-Register name="WO_enum" generateFesaValueItem="true" fesaFieldName="WO_enum_fesa" size="4" address="1180" mem-size="40">
<custom-type-array dim="10" custom-type-name-ref="TEST_ENUM" type="enum"/>
</Setting-Register>
</Command-Block>
<Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Configuration-Block name="MyCBlock" size="212" address="4" mem-size="472">
<Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4">
<array2D dim1="2" dim2="2" format="int8"/>
</Configuration-Register>
<Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4">
<array2D dim1="2" dim2="2" format="uint8"/>
</Configuration-Register>
<Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8">
<array2D dim1="2" dim2="2" format="int16"/>
</Configuration-Register>
<Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8">
<array2D dim1="2" dim2="2" format="uint16"/>
</Configuration-Register>
<Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16">
<array2D dim1="2" dim2="2" format="int32"/>
</Configuration-Register>
<Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16">
<array2D dim1="2" dim2="2" format="uint32"/>
</Configuration-Register>
<Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16">
<array2D dim1="2" dim2="2" format="float32"/>
</Configuration-Register>
<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264">
<stringArray2D dim1="2" dim2="2" string-length="64" format="string"/>
</Configuration-Register>
<Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32">
<array2D dim1="2" dim2="2" format="date"/>
</Configuration-Register>
<Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4">
<array2D dim1="2" dim2="2" format="char"/>
</Configuration-Register>
<Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4">
<array2D dim1="2" dim2="2" format="byte"/>
</Configuration-Register>
<Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8">
<array2D dim1="2" dim2="2" format="word"/>
</Configuration-Register>
<Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16">
<array2D dim1="2" dim2="2" format="dword"/>
</Configuration-Register>
<Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8">
<array2D dim1="2" dim2="2" format="int"/>
</Configuration-Register>
<Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16">
<array2D dim1="2" dim2="2" format="dint"/>
</Configuration-Register>
<Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16">
<array2D dim1="2" dim2="2" format="real"/>
</Configuration-Register>
<Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32">
<array2D dim1="2" dim2="2" format="dt"/>
</Configuration-Register>
</Configuration-Block>
<Instance label="testDevice1" fesa-label="" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
<Instance label="testDevice2" fesa-label="" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/>
</SILECS-Class>
</SILECS-Mapping>
</SILECS-Param>