-
Notifications
You must be signed in to change notification settings - Fork 669
Description
Hi devs,
have a saved file with e.g. (date, nodeid, dtype):
2021-12-13 13:01:32.047000,ns=3;s=Station20_AOIPruefung.St20 SoftSPS.WP321DR_DB.internal.s_DR,"[34, 26, 201, 1, 4112, 16928, 8224, 8224, 12334, 12342, 12320, 27495, 8224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",UInt16
now i startup the server and import the xml:
<?xml version='1.0' encoding='UTF-8'?>
<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
<NamespaceUris>
<Uri>urn:Siemens.Automation.SimaticNET.S7OPT:(23F5EE98-D057-4046-BF37-3451D8069DE0)</Uri>
<Uri>SYM:</Uri>
</NamespaceUris>
<Aliases>
<Alias Alias="Boolean">i=1</Alias>
<Alias Alias="SByte">i=2</Alias>
<Alias Alias="Byte">i=3</Alias>
<Alias Alias="Int16">i=4</Alias>
<Alias Alias="UInt16">i=5</Alias>
<Alias Alias="Int32">i=6</Alias>
<Alias Alias="UInt32">i=7</Alias>
<Alias Alias="Int64">i=8</Alias>
<Alias Alias="UInt64">i=9</Alias>
<Alias Alias="Float">i=10</Alias>
<Alias Alias="Double">i=11</Alias>
<Alias Alias="String">i=12</Alias>
<Alias Alias="DateTime">i=13</Alias>
<Alias Alias="ByteString">i=15</Alias>
<Alias Alias="Organizes">i=35</Alias>
<Alias Alias="HasTypeDefinition">i=40</Alias>
</Aliases>
<UAVariable NodeId="ns=2;s=Station20_AOIPruefung.St20 SoftSPS.WP321DR_DB.internal.s_DR" BrowseName="2:s_DR" ValueRank="1" ArrayDimensions="128" DataType="UInt16" AccessLevel="3" UserAccessLevel="3" >
<DisplayName>s_DR</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
</References>
<Value>
<uax:ListOfUInt16>
<uax:UInt16>34</uax:UInt16>
<uax:UInt16>26</uax:UInt16>
<uax:UInt16>201</uax:UInt16>
<uax:UInt16>1</uax:UInt16>
<uax:UInt16>4112</uax:UInt16>
<uax:UInt16>16928</uax:UInt16>
<uax:UInt16>8224</uax:UInt16>
<uax:UInt16>8224</uax:UInt16>
<uax:UInt16>13358</uax:UInt16>
<uax:UInt16>12336</uax:UInt16>
<uax:UInt16>12576</uax:UInt16>
<uax:UInt16>27495</uax:UInt16>
<uax:UInt16>8224</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
<uax:UInt16>0</uax:UInt16>
</uax:ListOfUInt16>
</Value>
</UAVariable>
</UANodeSet>
if i try something like that:
variant_name_to_type_dict = {variant.name: variant for variant in VariantType}
variant_type = ua.VariantType(variant_name_to_type_dict[row['dtype']])
node = server.get_node(ua.NodeId.from_string(row['nodeid']))
var = string_to_val(row['value'], variant_type) #ua utils helper function
await node.write_value(string_to_val(row['value'], variant_type))
I receive the following:
asyncua.ua.uaerrors._auto.BadTypeMismatch: The value supplied for the attribute is not of the same type as the attribute"s value.(BadTypeMismatch)
So my question, is there a standard way to reverse method to read and write data values from file to the server? I do not receive any data changed events either because the data variant types have a mismatch with the server or the data type completely differs. Any advice to implement a correct data loader?