CAx-Daten ohne logische Adresse importieren - TIAPortal

TIA Portal Openness: API für die Automatisierung von Engineering-Workflows

ft:publication_title
TIA Portal Openness: API für die Automatisierung von Engineering-Workflows
Product
TIAPortal
Version
V20
Publication date
01/2025
Language
de-DE
CAx-Daten ohne logische Adresse importieren

Voraussetzung

Anwendung

Beim CAx-Import in TIA Portal können Sie die Verbindung zwischen Kanal und Variable konfigurieren, ohne dass Sie die Anfangsadresse eines E/A-Moduls und/oder die logische Adresse der Variablen in der AML-Datei angegeben haben.

Das folgende AML-Beispiel zeigt die XML-Datei, die ohne Attribute für Anfangsadresse und logische Adresse erzeugt werden soll.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

<?xml version="1.0" encoding="utf-8"?><CAEXFile FileName="TagsExport.aml" SchemaVersion="2.15" xsi:noNamespaceSchemaLocation="CAEX_ClassModel_V2.15.xsd">

...

<InstanceHierarchy Name="APC Sample Instance Hierarchy">

<InternalElement ID="fff25423-fe9e-4334-9331-4cec118e06f7" Name="Project1">

...

<InternalElement ID="59c0b48b-aa6c-45c3-8dc8-bba5367bd4fb" Name="S7300/ET200M station_1">

...

<InternalElement ID="1b7b2b24-243b-4348-831e-bc46bc35957f" Name="Rail_0">

...

<InternalElement ID="974ca791-ad8d-482b-be80-2cf4e8dcedaf" Name="PLC_1">

...

<InternalElement ID="9564bcc2-8ea0-4be7-a950-5c55b34e474a" Name="Default tag table">

<ExternalInterface ID="7fd969e6-c2c9-45a8-b573-68833df327f5" Name="Tag_1" RefBaseClassPath="AutomationProjectConfigurationInterfaceClassLib/Tag">

<Attribute Name="DataType" AttributeDataType="xs:string">

<Value>Bool</Value>

</Attribute>

</ExternalInterface>

<ExternalInterface ID="33899862-86c1-4171-832a-1136b6e59b9d" Name="Tag_2" RefBaseClassPath="AutomationProjectConfigurationInterfaceClassLib/Tag">

<Attribute Name="DataType" AttributeDataType="xs:string">

<Value>Byte</Value>

</Attribute>

</ExternalInterface>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/TagTable" />

</InternalElement>

...

<Attribute Name="PositionNumber" AttributeDataType="xs:int">

<Value>8</Value>

</Attribute>

<Attribute Name="BuiltIn" AttributeDataType="xs:boolean">

<Value>true</Value>

</Attribute>

<Attribute Name="Address">

<RefSemantic CorrespondingAttributePath="OrderedListType" />

<Attribute Name="1">

<Attribute Name="StartAddress" AttributeDataType="xs:int">

<Value>832</Value>

</Attribute>

<Attribute Name="Length" AttributeDataType="xs:int">

<Value>128</Value>

</Attribute>

<Attribute Name="IoType" AttributeDataType="xs:string">

<Value>Input</Value>

</Attribute>

</Attribute>

<Attribute Name="2">

<Attribute Name="StartAddress" AttributeDataType="xs:int">

<Value>832</Value>

</Attribute>

<Attribute Name="Length" AttributeDataType="xs:int">

<Value>128</Value>

</Attribute>

<Attribute Name="IoType" AttributeDataType="xs:string">

<Value>Output</Value>

</Attribute>

</Attribute>

</Attribute>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/DeviceItem" />

</InternalElement>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/DeviceItem" />

</InternalElement>

<InternalElement ID="29e0bb63-0050-46e3-968a-fcecf4eb050a" Name="DI 16x24VDC_1">

<Attribute Name="TypeName" AttributeDataType="xs:string">

<Value>DI16 x 24VDC</Value>

</Attribute>

<Attribute Name="PositionNumber" AttributeDataType="xs:int">

<Value>4</Value>

</Attribute>

<Attribute Name="BuiltIn" AttributeDataType="xs:boolean">

<Value>false</Value>

</Attribute>

<Attribute Name="TypeIdentifier" AttributeDataType="xs:string">

<Value>OrderNumber:6ES7 321-1BH02-0AA0</Value>

</Attribute>

<Attribute Name="Address">

<RefSemantic CorrespondingAttributePath="OrderedListType" />

<Attribute Name="1">

<Attribute Name="Length" AttributeDataType="xs:int">

<Value>16</Value>

</Attribute>

<Attribute Name="IoType" AttributeDataType="xs:string">

<Value>Input</Value>

</Attribute>

</Attribute>

</Attribute>

<ExternalInterface ID="175dc9c9-f9a3-4b10-b43e-68dfc14811fc" Name="Channel_DI_0" RefBaseClassPath="AutomationProjectConfigurationInterfaceClassLib/Channel">

<Attribute Name="Type" AttributeDataType="xs:string">

<Value>Digital</Value>

</Attribute>

<Attribute Name="IoType" AttributeDataType="xs:string">

<Value>Input</Value>

</Attribute>

<Attribute Name="Number" AttributeDataType="xs:int">

<Value>0</Value>

</Attribute>

<Attribute Name="Length" AttributeDataType="xs:int">

<Value>1</Value>

</Attribute>

</ExternalInterface>

<ExternalInterface ID="23e99053-906c-4548-9bd2-e975cacf01b2" Name="Channel_DI_1" RefBaseClassPath="AutomationProjectConfigurationInterfaceClassLib/Channel">

<Attribute Name="Type" AttributeDataType="xs:string">

<Value>Digital</Value>

</Attribute>

<Attribute Name="IoType" AttributeDataType="xs:string">

<Value>Input</Value>

</Attribute>

<Attribute Name="Number" AttributeDataType="xs:int">

<Value>1</Value>

</Attribute>

<Attribute Name="Length" AttributeDataType="xs:int">

<Value>1</Value>

</Attribute>

</ExternalInterface>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/DeviceItem" />

</InternalElement>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/DeviceItem" />

<InternalLink Name="Link To Tag_1" RefPartnerSideA="29e0bb63-0050-46e3-968a-fcecf4eb050a:Channel_DI_0" RefPartnerSideB="9564bcc2-8ea0-4be7-a950-5c55b34e474a:Tag_1" />

<InternalLink Name="Link To Tag_2" RefPartnerSideA="29e0bb63-0050-46e3-968a-fcecf4eb050a:Channel_DI_0" RefPartnerSideB="9564bcc2-8ea0-4be7-a950-5c55b34e474a:Tag_2" />

<InternalLink Name="Link To Tag_3" RefPartnerSideA="29e0bb63-0050-46e3-968a-fcecf4eb050a:Channel_DI_1" RefPartnerSideB="9564bcc2-8ea0-4be7-a950-5c55b34e474a:Tag_2" />

<InternalLink Name="Link To Tag_4" RefPartnerSideA="29e0bb63-0050-46e3-968a-fcecf4eb050a:Channel_DI_2" RefPartnerSideB="9564bcc2-8ea0-4be7-a950-5c55b34e474a:Tag_2" />

</InternalElement>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/Device" />

</InternalElement>

<SupportedRoleClass RefRoleClassPath="AutomationProjectConfigurationRoleClassLib/AutomationProject" />

</InternalElement>

</InstanceHierarchy>

</CAEXFile>

Variable vom Datentyp Bool (%I0.0)

Im obigen Beispiel einer AML-Datei wird beim Import die logische Adresse für die Variable mit Hilfe des folgenden Algorithmus berechnet:

Logische Adresse = ChannelIoType + ByteAddress + BitAddress

Name

Beschreibung

ChannelIoType

Eingang (E) oder Ausgang (A)

ByteAddress

ByteAddress wird wie folgt berechnet:

StartAddress des E/A-Moduls * 8 + BitOffsetAddress des E/A-Moduls + (ChannelNumber * ChannelLength) / 8

BitAddress

BitAddress wird wie folgt berechnet:

(BitOffsetAddress des E/A-Moduls + (ChannelNumber * ChannelLength)) % 8

Hinweis

  • Wenn eine Variable modulübergreifend ist: Der Algorithmus oben liefert mehrere Byte-Adressen basierend auf der Anfangsadresse der Module sowie ein Array aus Bitadressen pro Byte-Adresse entsprechend den einzelnen Kanalnummern. Dann wählt der Algorithmus die niedrigste Byte-Adresse und die niedrigste Bitadresse im Array entsprechend diesem Byte aus, um die logische Adresse der Variablen zu berechnen. Sobald die logische Adresse der Variablen zugeordnet ist, wird die übergreifende Eigenschaft beim Import automatisch vom TIA Portal berücksichtigt.

  • Im TIA Portal unterstützen nur wenige Gerätekonfigurationen (zum Beispiel ASI-Module) das BitOffset-Adressattribut. Für Module, die das BitOffset-Adressattribut nicht unterstützen, wird für obige Berechnung der Standardwert "0" angenommen.

Die folgende Liste enthält die Variablen-Datentypen, die die Bit-Adresse im TIA Portal unterstützen:

Variablen-Datentypen

Wert der Bitadresse

Bool

0 bis 7

LReal

Die höchsten und niedrigsten Werte für Bitnummern im TIA Portal sind 0.

LWord

LInt

ULInt

LTime

LDT

LTime_Of_Day

Wenn beim CAx-Import für einen Kanaltyp eine Boolesche Variable konfiguriert ist, umfasst die Berechnung der logischen Adresse die Bit-Offset-Adresse. Die logische Adresse zusammen mit dem Bit-Offset wird als logische Adresse der Variablen in der Oberfläche des TIA Portals aktualisiert.

Variablen mit anderen Datentypen, die die BitOffset-Adresse unterstützen

Wenn zwischen zwei verschiedenen Datentypen ein Variablenkanal konfiguriert ist, wobei ein Kanal des Typs Bool einer mehrere Kanäle überspannenden Variablen des Typs LDT zugeordnet ist, umfasst die Berechnung der logischen Adresse die Bit-Offset-Adresse für die Berechnung der logischen Adresse der Variablen des Datentyps "LDT". Die logische Adresse der Variablen wird in der Oberfläche im TIA Portal mit einem Fehler aktualisiert, wenn der Wert der Bitadresse ein anderer als "0" ist; die Kanalkonfiguration der Variablen ist dann nicht möglich.

Es muss sichergestellt werden, dass die Variablen-Kanal-Konfiguration zwischen gleichen Datentypen ausgeführt wird.

Variable mit anderem Datentyp (%IB0)

Logische Adresse = ChannelIoType + TagDataType + ByteAddress

Name

Beschreibung

ChannelIoType

Eingang (E) oder Ausgang (A)

TagDataType

TagDataType ist eine Abkürzung des Variablentyps.

Beispiel: W für Wort und B für Byte

ByteAddress

ByteAddress wird wie folgt berechnet:

StartAddress des E/A-Moduls + (ChannelNumber * ChannelLength) / 8

Der oben beschriebene Algorithmus wird für die genaue Berechnung der logischen Adresse einer Variablen in folgenden Fällen verwendet:

  • Die Länge des in der Variablen angegebenen Datentyps sollte gleich der Länge des Kanals sein, dem er zugewiesen ist.

  • Wird beispielsweise eine Variable vom Datentyp "Byte" einem analogen Kanal mit einer Länge von 2 Bytes zugewiesen, muss beim Import einer AML-Datei ohne logische Adresse der Variablen die Variable im TIA Portal immer dem ersten Byte des Kanals zugewiesen werden, unabhängig davon, welchem Byte sie ursprünglich zugewiesen war.

Hinweis

  • Wenn eine Variable modulübergreifend ist: Der Algorithmus oben liefert mehrere Byte-Adressen basierend auf der Anfangsadresse der Module. Dann wählt der Algorithmus die niedrigste Byte-Adresse aus, um die logische Adresse der Variablen zu berechnen. Sobald die logische Adresse mit der niedrigsten Byte-Adresse der Variablen zugeordnet ist, wird die übergreifende Eigenschaft beim Import automatisch vom Portal gehandhabt. Wenn das Attribut StartAddress für das E/A-Modul in der AML-Datei nicht angegeben ist, wird vom TIA Portal der Standardwert zugeordnet, der dann für obige Berechnung verwendet wird.

  • Wenn das Attribut StartAddress für das E/A-Modul in der AML-Datei nicht angegeben ist, wird vom TIA Portal der Standardwert zugeordnet, der dann für obige Berechnung verwendet wird.

Nach erfolgreichem Import wurde im TIA Portal die folgende Variablenkonfiguration für das oben beschriebene Beispiel erstellt.

Die Kanäle sind mit den Variablen wie unten dargestellt zu konfigurieren.