mikrocontroller.net

Forum: Offtopic XML Datei in AWL konvertieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Lukas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe mehrere XML Dateien in den Parameter abgespeichert werden.
Diese müssen als AWL Datei konvertiert werden um sie später in Siemens 
Simatic einzubinden.

Grüße

: Verschoben durch Moderator
von Cyblord -. (cyblord)


Bewertung
-1 lesenswert
nicht lesenswert
Hört sich für mich so an wie ein Drehstrom auf Gardena Adapter.

Also XML mit Daten -> AWL (also praktisch Siemens Assembler).

Wie soll das gehen?
Daten werden bei Simatic doch in Daten(bank) Bausteinen vorgehalten, 
oder nicht?

von Md M. (Firma: Potilatormanufaktur) (mdma)


Bewertung
0 lesenswert
nicht lesenswert
Kannst du Python? Vielleicht kannst du dir hieraus was basteln:

https://github.com/fschimpf/graf2il

von Lukas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Programmiertechnisch hab ich nur C drauf.

von Lukas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Cyblord -. schrieb:
> Hört sich für mich so an wie ein Drehstrom auf Gardena Adapter.
>
> Also XML mit Daten -> AWL (also praktisch Siemens Assembler).
>
> Wie soll das gehen?
> Daten werden bei Simatic doch in Daten(bank) Bausteinen vorgehalten,
> oder nicht?


Ich habe verschiedene XML Dateien, in denen Parameter abgespeichert 
sind. Diese Parameter werden in Simatic benötigt. Damit man das nicht 
von Hand alles eintragen muss soll ich eine Konvertierung ermöglichen, 
bzw ein Tool mit dem man aus dieser Datei sich eine Tabelle bastelt in 
denen die ganzen Informationen drinne stehen. Diese Tabelle kann dann 
als Quelle in einen Baustein eingefügt werden.

von mh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Lukas schrieb:
> Ich habe verschiedene XML Dateien, in denen Parameter abgespeichert
> sind.

Das ist aber schön. Die Dateien könnten genausogut ein binäres Format 
oder sonstwas sein...
Mit XML ist es zwar einfacher, die Datei zu interpretieren, aber 
interpretieren muss man sie dennoch.

> Diese Parameter werden in Simatic benötigt. Damit man das nicht
> von Hand alles eintragen muss soll ich eine Konvertierung ermöglichen,
> bzw ein Tool mit dem man aus dieser Datei sich eine Tabelle bastelt in
> denen die ganzen Informationen drinne stehen.

Nach diesem Tool wirst Du Dir wahrscheinlich die Finger wund suchen. Ich 
wage es stark zu bezweifeln, dass es da was "von der Stange" gibt. Und 
wenn was in die Nähe der Anforderungen kommt, dürfte da noch eine ganze 
Menge an Konfiguration/Anpassung anstehen.

Den Tip mit Python solltest Du nicht ganz ignorieren. Python zu lernen 
geht wahrscheinlich schneller, als das gewünschte Tool zu finden und zu 
konfigurieren.
Wenn Du Python halbwegs kannst (so ca. übermorgen) musst Du nur noch das 
oben verlinkte Tool anpassen...

Das mit übermorgen ist übrigens kein Scherz. Wenn man sich zwei Tage ein 
paar Stunden mit Python befasst, kann man wirklich schon sehr viel damit 
machen.

von HP (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ohne zu wissen wie die XML-Daten aussehen ist es immer schwer zu sagen 
wie und ob man das konvertieren kann. XML kann halt vom absoluten Chaos 
bis super strukturiert alles sein.
Vielleicht hilft dir das Stichwort XSLT bzw xsl-Transformation weiter. 
Das ist erst mal etwas schwer zu verstehen aber sehr mächtig wenn es 
darum geht Daten von einem Format in ein anderes zu überführen.
Ansonsten musst du dir halt einen Speziellen XML-Parser mit der 
Programmiersprache deiner Wahl bauen. Mit C wird das aber heftig. Das 
kann ich dir jetzt schon sagen

von Lukas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gut vielen Dank.

Dann werde ich mich morgen nochmal mit meinem Kollegen kurzschließen.

Grüße

von Peter II (Gast)


Bewertung
0 lesenswert
nicht lesenswert
weist du schon wie die AWL aussehen soll?

Könntest du einfach mal ein Bespiel aus der XML posten und dann das 
passende Gegenstück im AWL?

von MikeH (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die eleganteste Lösung ist es mit XSLT ein Stylesheet zu bauen, welches 
dir eine AWL Datei generiert.
Sich in XSLT eizuarbeiten ist allerdings nicht so ganz einfach, da es 
sich im Gegensatz zu den gängigen Programmiersprachen wie C, C++, Python 
um funktionale Programmierung handelt. Vereinfacht gesagt, schreibt man 
ineinander verschachtelte Templates, die auf die XML Struktur angewendet 
werden. Solltest mal nach XSLT googeln.

von c-hater (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Lukas schrieb:

> Ich habe verschiedene XML Dateien, in denen Parameter abgespeichert
> sind. Diese Parameter werden in Simatic benötigt. Damit man das nicht
> von Hand alles eintragen muss soll ich eine Konvertierung ermöglichen,
> bzw ein Tool mit dem man aus dieser Datei sich eine Tabelle bastelt in
> denen die ganzen Informationen drinne stehen. Diese Tabelle kann dann
> als Quelle in einen Baustein eingefügt werden.

Na super. Du kannst nach eigener Aussage C, hast eine XML-Datei als 
Datenquelle und sollst aus deren Inhalt eine Tabelle basteln...

Dann benutze, verdammt nochmal, einfach deine C-Kenntnisse, um genau das 
zu tun...

Eine XML-Datei enthält eine Hierarchie von Daten, die man einfachst zu 
einer flachen Tabelle "abwickeln" kann. Und für das Aufdröseln der 
aufwendig klartext-verschlüsselten XML-Seuche gibt es genauso reichlich 
Libs, die du nur raubzukopieren brauchst, wie dafür, den Kram in 
irgendeiner Form in eine Tabelle zu packen, sei es als simple CSV-Datei 
oder auch Excel oder irgendeine richtige Datenbank.

Du willst nur einfach GARNIX mehr SELBER tun, das ist dein einziges 
Problem. Das übliche Problem aller Dummen und Faulen...

Ja klar, jetzt kommt bestimmt gleich die Sache mit dem Rad...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.