Die gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software- Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über die dokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss der Beckhoff Automation GmbH & Co. KG. Qualifikation des Personals Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs-, Automatisierungs- und Antriebstechnik, das mit den geltenden Normen vertraut ist.
Vorwort Hinweise zur Informationssicherheit Die Produkte der Beckhoff Automation GmbH & Co. KG (Beckhoff) sind, sofern sie online zu erreichen sind, mit Security-Funktionen ausgestattet, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen. Trotz der Security-Funktionen sind die Erstellung, Implementierung und ständige Aktualisierung eines ganzheitlichen Security-Konzepts für den Betrieb notwendig, um die jeweilige Anlage,...
SPS. So ist es möglich, auch direkt auf einzelne Unterelemente einer Variablen zuzugreifen. Dabei werden nur die Unterelemente (Elemente einer Struktur oder Elemente eines Arrays) übertragen, die auch in der XML-Datei definiert sind. Beim Schreiben der SPS-Variablen gibt es jedoch auch die Möglichkeit, fehlende Elemente hinzuzufügen. Version: 1.1 TS6421...
Systemvoraussetzungen Systemvoraussetzungen Technische Daten TS6421 XML Data Server Zielsystem Windows NT/2000/XP/Vista/7 PC (x86-kompatibel) Min. TwinCAT-Version 2.10.0 Min. TwinCAT-Level TwinCAT PLC TS6421 Version: 1.1...
Sie die Setup-Datei mit der rechten Maustaste anklicken und die entsprechende Option im Kontextmenü auswählen. • Wählen Sie eine Sprache aus, in der Sie die Software installieren möchten. • Klicken Sie auf "Next" und akzeptieren Sie dann die Endbenutzervereinbarung. Version: 1.1 TS6421...
Seite 11
Installation • Geben Sie Ihre Benutzerdaten ein: • Klicken Sie auf "Next" um die Installation zu starten. TS6421 Version: 1.1...
Seite 12
TwinCAT System Service zu stoppen. • Bestätigen Sie die folgende Meldung, sobald der TwinCAT Service gestoppt ist. • Wählen Sie "Finish" um das Setup zu beenden. Nach der Installation Das Supplement-Produkt "TwinCAT XML Data Server" wird automatisch durch das Setup konfiguriert. Version: 1.1 TS6421...
Mit dem Funktionsbaustein FB_XmlSrvWrite kann der Wert einer SPS-Variablen in eine XML-Datei geschrieben werden. Die Eingangsvariable sXPath muss dabei auf einen gültigen Knoten in der mit sFilePath angegebenen XML-Datei zeigen. Das Symbol, das geschrieben werden soll, wird anhand der übergebenen Symbol-Adresse und Symbol-Größe eindeutig identifiziert. Version: 1.1 TS6421...
Seite 15
Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen. nErrId: Liefert bei einem gesetzten bError-Ausgang die TwinCAT Xml Data Server Fehlernummer [} 29]. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS Bibliotheken TwinCAT v2.10.0 ab Build 1235 PC oder CX (x86) TcXmlDataSrv.Lib TS6421 Version: 1.1...
Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf. VAR_OUTPUT VAR_OUTPUT bBusy : BOOL; bError : BOOL; nErrId : UDINT; END_VAR bBusy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt solange gesetzt, bis eine Rückmeldung erfolgt. Version: 1.1 TS6421...
Enthält die Adresse des Tags im XML-Dokument, aus der die Daten geschrieben werden soll. Die Adresse muss eine gültige XPath-Anweisung sein. Der Name des Tags muss dabei nicht dem Namen des Symbols entsprechen. TS6421 Version: 1.1...
Beispiele Beispiele Auf den folgenden Seiten finden Sie Beispiele (Samples), die den Umgang mit dem TwinCAT XML Data Server zeigen. Die Beispiele sind fortlaufend nummeriert und lassen sich als https://infosys.beckhoff.com/ content/1031/tcxmldatasrv/Resources/11416819467.zip. Getting Started [} 20] Hier wird der generelle Umgang mit dem TwinCAT XML Data Server sowie das Arbeiten mit Strukturen und Arrays und der Zugriff auf einzelne Knotenpunkte behandelt.
Seite 21
<Var2> <!-- sXPath := '\variables\Var2' --!> <a>100</a> <b>-10</b> <c>1.2</c> <d>Hallo</d> </Var2> </variables> In diesem Fall sind alle Unterelemente vollständig und korrekt definiert, so dass die Variable vollständig initialisiert wird. Im folgenden Beispiel hingegen wird nur das Unterelement c serialisiert: <variables> <Var1>10</Var1> <Variable2> <!-- sXPath := '\variables\Variable2' --!> TS6421 Version: 1.1...
TcXmlDataSrv.Lib Die Funktionsbausteine Die folgenden Beispiele zeigen den Umgang mit den Funktionsbausteinen der tcXmlDataSrv-Bibliothek. Das SPS-Projekt, das die Beispiele enthält, können Sie https://infosys.beckhoff.com/content/1031/tcxmldatasrv/ Resources/11416819467.zip Alle Beispiele arbeiten mit der Struktur ST_MYSTRUCT, die wiederum die Struktur ST_INNTERSTRUCT enthält. Die beiden Strukturen sind im Folgenden dargestellt: Die Strukturen TYPE ST_MYSTRUCT:...
Seite 23
Sample 3: Lesevorgang mit FB_XmlSrvRead Im Folgenden soll die Struktur aus der in Sample 1 bzw. Sample 2 erstellten XML-Datei wieder eingelesen werden. Sample 3 nutzt hierzu den FB_XmlSrvRead-Baustein. (* Sample3 reads an XML-file (C:\Test.xml) FUNCTIONBLOCK: FB_XmlSrvRead *) PROGRAM Sample3 value1 : ST_MyStruct; fbXmlSrvRead : FB_XmlSrvRead; bExecute : BOOL; sFilePath : T_MaxString := 'C:\Test.xml'; (* CE: '\Hard Disk\Test.xml' *) sXPath : T_MaxString := '/dataentry/MAIN.value1'; END_VAR TS6421 Version: 1.1...
TcXmlDataSrv.Lib Weiterführende Beispiele Die folgenden Beispiele zeigen verschiedene Anwendungsarten des TwinCAT XML Data Servers. Das SPS- Projekt, das die Beispiele enthält, können Sie https://infosys.beckhoff.com/content/1031/tcxmldatasrv/ Resources/11416819467.zip Beispiel 5 zeigt eine einmalige Initialisierung bei Programmstart, Beispiel 6 zyklische und ereignisgesteuerte Schreibvorgänge. Beide Beispiele arbeiten mit der schon aus den Beispielen 1-4 bekannten Struktur ST_MYSTRUCT, die wiederum die Struktur ST_INNTERSTRUCT enthält.
Seite 25
Schaltervariable bButton) gestartet werden. Sollte der Schreibprozess in einer Sekunde mehrfach ausgelöst werden, wird die aktuelle Datei überschrieben. (* Sample6: Every 20s value1 will be written into a new XML-File named after the current date and time. Furthermore you can activate the printing procedure by pressing a button (or setting the corresponding variable *) PROGRAM Sample6 value1 : ST_MyStruct; fbXmlSrvWrite : FB_XmlSrvWrite; sFileFolder : T_MaxString :='C:\'; (* CE: '\Hard Disk\' *) sFileName : T_MaxString:= '_test.xml'; sFilePathWrite : T_MaxString (*sFilePathWrite = sFileFolder + time + sFileName*) sXPathWrite : T_MaxString :='/dataentry/MAIN.value1'; ntGetTime : NT_GetTime; stMyTimestruct : TIMESTRUCT; iState : INT := 1; bTwentySec : BOOL:= FALSE; bButton : BOOL:= FALSE; bTwentySecOver : BOOL; triggerWrite : R_TRIG; triggerButton : R_TRIG; END_VAR TS6421 Version: 1.1...
Stückzahl durchgeführt und der Produktionsauftrag mit einem Eintrag in der XML Datei (Write) beendet. Um das Programm zu starten, muss zuvor das XML File an die dem Datei-Pfad entsprechende Stelle gespeichert werden und im SPS-Programm die Variable bStart auf TRUE gesetzt werden. Version: 1.1 TS6421...
Seite 27
Beispiele Das SPS-Projekt, das die Beispiele enthält, können Sie https://infosys.beckhoff.com/content/1031/ tcxmldatasrv/Resources/11416819467.zip Variablendeklaration PROGRAM Sample7 fbXmlSrvReadByName : FB_XmlSrvReadByName; fbXmlSrvWriteByName : FB_XmlSrvWriteByName; value : ST_MyProductionStruct; state : INT := 0; R_Edge : R_TRIG; bStart : BOOL; bError : BOOL; nErrId : UDINT; END_VAR Struktur ST_MyProductionStruct TYPE ST_MyProductionStruct : STRUCT rLength : REAL; rWidth : REAL; rHeight : REAL; iQuantity : INT; iCounter : INT; bReady : BOOL; stInfo : STRING; END_STRUCT END_TYPE SPS Programm (* The production data are read, the production is carried out and, according to the quantity and the production order, completed with an entry in the XML file.
Seite 28
fbXmlSrvWriteByName(bExecute := FALSE); IF NOT fbXmlSrvWriteByName.bBusy AND NOT fbXmlSrvWriteByName.bError THEN state := 0; ELSIF fbXmlSrvWriteByName.bError THEN state := 100; END_IF 100:(* error state *) ; END_CASE XML Datei <dataentry> <MAIN.value> <rLength>65.85</rLength> <rWidth>30</rWidth> <rHeight>2.5</rHeight> <iQuantity>500</iQuantity> <iCounter>0</iCounter> <bReady>false</bReady> <stInfo></stInfo> </MAIN.value> </dataentry> Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS Bibliotheken TwinCAT v2.10.0 PC oder CX (x86) TcXmlDataSrv.Lib Version: 1.1 TS6421...