Mittwoch, 4. Mai 2022

Neue Version vom DCC Translation Editor liest und schreibt TIA V17 Textexporte

Die neue Version V5.0 des DCC Translation Editor liest und schreibt jetzt zusätzlich auch die TIA V17 Textexportdateien.

Ab Version 5 setzt der DCC Translation Editor auf das Dotnet-Framework 4.8 auf und ist ebenso für Windows 11 freigegeben. 


Der DCC Translation Editor bietet Funktionen zur Bearbeitung von csv-, xls-, xlsx- und txt-Dateien aus WinCC, WinCC flexible und SIMATIC TIA.

Features:

  • Einfache Identifikation von Übersetzungsfehlern, falschen Zahlen und fehlenden Satzzeichen durch sieben Qualitätssicherungsfilter
  • Einfaches Einpassen in die Prozessvisualisierung durch die Markierung zu langer Übersetzungen
  • Formatsicherheit durch vollständiges Dateiformat-Handling bei der Übersetzung außerhalb der Projektierung
  • Bessere Verständlichkeit durch übersichtliche Tabellenform
  • Einfaches Suchen/Ersetzen mit Platzhaltern, regulären Ausdrücken oder beliebigen Texten
  • Einfache Filterung der Übersetzungstexte nach leeren Texten, nicht leeren Texten oder beliebigen Texten
  • Automatische Übersetzung durch Integration von DeepL, Microsoft Bing & Google Translate

Donnerstag, 25. Juli 2019

Projekttexte aus TIA V15.1 exportieren: Jetzt mehrere Sprachen gleichzeitig möglich

Mit TIA V15.1 können die Projekttexte in allen angelegten Sprachen gleichzeitig exportiert werden. Damit fällt die Beschränkung auf zwei Sprachen weg. Dies ist nichts Neues für Nutzer von SIMATIC WinCC V7, wohl aber beim Export der Texte aus dem TIA Portal.

Bei der gleichzeitigen Erstellung von Sprachumschaltungen für verschiedene Sprachen, reduziert dies die Export- und Importzeit. Auch ist der Vergleich von Texten in verschiedenen Sprachen einfacher zu realisieren.

Der Dialog im TIA Portal wurde für die Mehrfachauswahl der Sprachen erweitert und standardmäßig sind alle im Projekt aktivierten Projektsprachen für den Export markiert.
Exportdialog für Projekttexte in TIA 15.1

In der exportieren xlsx-Datei wird jede Sprache in einer Spalte gespeichert. Die Quellsprache wird immer mit einem * gekennzeichnet. Wenn die Quellsprache im Exportdialog gleichzeitig als Zielsprache markiert ist, wird sie zusätzlich auch ohne * in einer weiteren Spalte gespeichert.
Spalten in der xlsx-Datei

Dienstag, 16. Oktober 2018

Simatic WinCC 7.5 - Was ist Neu?

Simatic WinCC 7.5 ist Anfang Oktober 2018 erschienen. Bei der behutsamen Weiterentwicklung bekam WinCC jetzt einige Funktionen, die das Arbeiten einfacher und übersichtlicher machen und auch im TIA Portal vorhanden sind.

DCC Translation Editor

Der DCC Translation Editor kann die Änderungen im Exportformat des Text-Distributors weiterhin bearbeiten. Texte können problemlos gelesen, bearbeitet und geschrieben werden.

Registerkarte Texte

Im Graphics Designer wurde im Fenster Objekteigenschaften eine Registerkarte ergänzt, mit der die Text-Attribute der jeweiligen Runtime-Sprachen bearbeitet werden können. In der Registerkarte lassen sich die Texte und Fonteinstellungen übersichtlich für die Texte eines Bildes oder eines Textobjektes bearbeiten.
Text-Attribute bearbeiten


Ordnung der Bilder in Ordnern

Die Projektierungsbilder lassen sich jetzt in Ordnern strukturieren. Dazu können die Bilder per Drag und Drop in Ordner verschoben werden. Die Ordner sind auch in der Exportdatei vom Text-Distributor zu finden.

Sprache in MessageBoxen bei MultiLanguage-Installation

In der Hilfe von WinCC wird darauf hingewiesen, dass in MultiLanguage-Installationen die Buttons für Ja/Nein, OK/Abbrechen immer in Englisch beschriftet bleiben. Das muss nicht so sein, in einem vorherigem Post haben wir aufgezeigt, wie dies mit wenigen Zeilen C-Code zu ändern ist. Damit zeigen auch die Buttons die richtige Sprache an.
Chinesischer Text in Messagebox mit chinesischen Buttons auf deutschem Betriebssystem


Dienstag, 24. Juli 2018

WinCC MessageBox durch Windows MessageBoxExW ersetzen

Im WinCC ODK gibt es eine Funktion zum Aufruf der Windows MessageBox. Diese WinCC Funktion ruft die Windows API Funktion MessageBoxA (der letzte Buchstabe ist wichtig) auf. Solange die Texte in der aktuellen System Codepage ausgegeben werden sollen, funktioniert alles korrekt. Wenn aber die Texte mit der aktuelle System Codepage nicht dargestellt werden können, ist die Anzeige falsch.


Chinesische Mehrbytekodierung auf einem deutschen Windows System


Was tun?


WinCC ist ab Version 7.2 weitgehend auf Unicode umgestellt, nur die C Scripte können kein Unicode. Idee: Wenn die Windows API Funktion MessageBox für Unicode aufgerufen wird und vorher die Texte nach Unicode konvertiert wurden, sollte die Anzeige gelingen.

Gesagt, getan!


Alle Texte, die in den C Scripten ankommen, werden von WinCC in die Mehrbytekodierung der eingestellten Codepage konvertiert, also müssen diese wieder nach Unicode konvertiert werden. Die Windows API Funktion MultiByteToWideChar erledigt dies, wenn die richtigen Parameter verwendet werden. Die Codepage für das C Script sollte auf "Dynamisch" stehen. Es muss weiterhin daran gedacht werden, beide Texte, also Caption und Text zu konvertieren. Anschließend zeigt die MessageBoxExW den Text korrekt an.

Chinesischer Text in Messagebox, nur auf den Buttons stehen noch deutsche Beschriftungen

Die Texte der Kopfzeile und der Anzeigetext sind jetzt Chinesisch, aber die Buttons zeigen noch die deutsche Beschriftung. Die Texte der Buttons stammen vom Windows Betriebssystem. Wenn in Windows auch die Chinesische Sprache als Anzeigesprache (Display language) installiert ist, werden auch die korrekten Beschriftungen der Buttons angezeigt. Dies wird gesteuert über den letzten Parameter der API Funktion MessageBoxExW.  Diese lässt als letzten Parameter die LocalID als Sprache für die Buttons zu. Chinesisch muss nicht als Display language ausgewählt sein.

Chinesischer Text in Messagebox mit chinesischen Buttons

Chinesisch als Display language installiert


Deutscher Text in Messagebox

Code Beispiel


Der folgende Code kann als Global C Script in WinCC hinzugefügt werden. Dann kann an allen Stellen, an denen MessageBox auf gerufen wird, der Aufruf durch MessageBoxLocale ersetzt werden. Wichtig ist, dass die Codepage der C Scripte auf "Dynamisch" gestellt ist.

int MessageBoxLocale(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
{

#pragma code ("kernel32.dll")
#define CP_ACP 0
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR
lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int
cchWideChar);
#pragma code()


#pragma code ("User32.dll")
int MessageBoxExW(
  HWND    hWnd,
  LPCWSTR lpText,
  LPCWSTR lpCaption,
  UINT    uType,
  WORD    wLanguageId
);
#pragma code()


static short int lpWideCharStrHeader[300];
static short int lpWideCharStrText[300];
int sizeInChars;
int ret;
int result = 0;

UINT LocalID = GetLanguage();
// Western Europe
UINT uCodepage = 1252;

// Japanese
if (LocalID == 0x411) {
      uCodepage = 932; 
      }
// Chinese
if (LocalID == 0x0804) {
      uCodepage = 936;
      }

ret = MultiByteToWideChar(uCodepage,(DWORD)0, lpCaption,-1, (LPWSTR)lpWideCharStrHeader,300);

ret = MultiByteToWideChar(uCodepage,(DWORD)0, lpText,-1, (LPWSTR)lpWideCharStrText,300);

result = MessageBoxExW(hWnd,(LPWSTR)lpWideCharStrText,(LPWSTR)lpWideCharStrHeader, uType, (WORD)LocalID);

return result;
}

Donnerstag, 19. Juli 2018

Fallstricke mit Nicht-Unicode-Kodierungen in WinCC C Scripte

Die Zeichenkodierung in WinCC C Scripte wurde im vorhergehenden Post beschreiben.

Was ist der Unterschied zu einer durchgehenden Unicode Zeichenkodierung?

Bei einer sprachspezifischen Zeichenkodierung können keine Texte mit anderen Zeichenkodierungen durch C Scripte verarbeitet werden. Wenn z.B. aus einer Datei mit kyrillischen Texten bei deutscher Zeichenkodierung Texte geladen werden sollen, so geht dies nicht.


Warum nicht immer alle C Scripte auf Dynamic einstellen?

Das ist häufig für die Mehrzahl der Bilder korrekt. Wenn aber Teile der Visualisierung, bspw. die Bilder für den Inbetriebnehmer auf Deutsch bleiben sollen, so ist bei diesen bilderspezifischen C Scripten die Sprache direkt auf Deutsch einzustellen, falls C Scripte vorhanden sind und Texte verarbeiten.


Warum zeigt die WinCC MessageBox kein Chinesisch?

Aufruf von Windows eigenen Dialogen wie MessageBox und Anzeigen von Texte mit Codepage Kodierung (Chinesisch) ist fehlerhaft, da die Windowsdialoge keine Zeichen aus der Mehrbytekodierung korrekt anzeigen können. Ein folgender Post zeigt eine mögliche Lösung.


Wie funktioniert die Zeichenkodierung bei VB Scripten?

In Visual Basic Script (VBS) werden die Zeichen mit Unicode kodiert, hier können die Texte ohne Konvertierung verarbeitet werden.

Dienstag, 17. Juli 2018

WinCC 7.4, C-Scripte und Mehrbytezeichenkodierung

WinCC unterstützt ab Version 7.2 Unicode für die Zeichenkodierung, eine Ausnahme bilden allerdings die C Scripte. Der Compiler/Interpreter für C Scripte verarbeitet nur sprachspezifische Zeichenkodierungen und konvertiert die Unicode-Zeichen vor der Verarbeitung in diese. Die konkrete sprachspezifische Zeichenkodierung kann für jedes C Script eingestellt werden.


Umfang von Zeichenkodierungen

Unicode speichert für jedes Zeichen eine eigene Nummer, den so genannten Codepoint. So können mit der Unicode Zeichenkodierung gleichzeitig chinesische und japanische Zeichen, wie auch russische und deutsche Zeichen gespeichert werden. Alle Zeichen werden durch eine eindeutige Zahl repräsentiert.


Sprachspezifische Zeichenkodierung

Bei den sprachspezifischen Zeichenkodierungen werden im Gegensatz zu Unicode immer nur die Zeichen einer Codepage kodiert. So enthält die russische Zeichenkodierung neben den kyrillischen Zeichen nur die ASCII Zeichen, ansonsten keine weiteren Zeichen. Mit der russischen Zeichenkodierung können damit keine deutschen Umlaute kodiert werden. Die sprachspezifischen Zeichenkodierungen enthalten damit immer nur eine Untermenge der Zeichen.

Wichtig: Da in einer sprachspezifischen Zeichenkodierung nicht alle Zeichen der Unicode Zeichenkodierung kodiert werden können, werden Zeichen ggfs. bei der Konvertierung durch ähnliche Zeichen oder Fragezeichen ersetzt.


Mit welchen Mechanismen versucht WinCC jetzt dem Informationsverlust entgegen zuwirken?

Die sprachspezifische Zeichenkodierung kann für jedes Script explizit auf eine Sprache oder die Einstellung "Dynamic: Project setting" gesetzt werden. Und bei den WinCC Project Properties kann die Einstellung "C script with language setting 'Dynamic' in Runtime" auf eine konkrete Sprache oder eine der Einstellungen "Operating system language for non-Unicode programs" und "Respective set WinCC Runtime language" gesetzt werden.

Einstellung der Codepage für das C script

WinCC Projekteinstellung


Im Fall, dass die gesamte WinCC Visualisierung auf eine Sprache umgeschaltet wird, ist die Einstellung "Respective set WinCC Runtime language" korrekt. Jetzt richtet sich die Sprache der C Scripte nach der Runtime language.

Donnerstag, 3. Mai 2018

Der DCC Translation Editor bietet eine Schnittstelle zu DeepL, dem neuen Stern am Himmel der maschinellen Übersetzung

Der DCC Translation Editor bietet seit langer Zeit eine Schnittstelle zur Einbindung von webbasierten maschinellen Übersetzungsdiensten. Über diese Schnittstelle kann jetzt auch DeepL eingebunden werden. In der Vergangenheit wurden als Übersetzungsdienste bereits Google Translate und der Microsoft Translator berücksichtigt.

DeepL wurde von einem deutschen Unternehmen entwickelt und steht im Ruf besonders gute Übersetzungen zu liefern. Bei allen maschinellen Übersetzungen sollte berücksichtigt werden, dass die Dienste für Fliesstext entwickelt wurden und bei nicht vollständigen Sätzen bzw. Fragmenten ihre Probleme haben, siehe auch https://de.wikipedia.org/wiki/Maschinelle_%C3%9Cbersetzung.

Die neue Funktion befindet sich bei DCC aktuell im Betatest und wird mit dem nächsten Release des DCC Translation Editors für alle Nutzer verfügbar sein.

Im unteren Fenster AutoTranslation sind die drei Übersetzungen der verschiedenen Dienste zu sehen.
Für die Nutzung von Google Translate und DeepL sind Registierungen auf Seite der Dienstanbieter notwendig, beide Dienste sind kostenpflichtig.

Die Registrierung bei DeepL bzw Google Translate kann unter den folgenden Urls gestartet werden.

Weitere Links zu DeepL bzw maschinelle Übersetzung:

Mittwoch, 14. März 2018

DCC Translation Editor kann die Projekttexte von TIA V15 lesen und schreiben.

Der DCC Translation Editor in der Version 4.3 kann die Exporte der Projekttexte von TIA V15 lesen und schreiben. Eine aktuelle Version von DCC Translation Editor können Sie unter der folgenden Url herunterladen: http://download.translation-editor.com/download/SetupTE_4.3.17215.4389.zip

DCC Translation Editor verarbeitet TIA V15 Projekttexte


Weitere Infos zum DCC Translation Editor: https://www.dcc-global.com/produkte.html

Weiteres zum DCC Translation Editor in diesem Blog: https://sw-i18n.blogspot.de/search/label/DCC%20Translation%20Editor

Freitag, 17. März 2017

Noto - ein guter Font für die Welt!

Internationale Unternehmen stehen vor der Herausforderung ihre Produkte für alle Weltsprachen zu übersetzen. Andererseits soll das Produkt in allen Sprachen möglichst "gleich" aussehen, d.h. die Schriftzeichen sollen gleich groß sein und auf der gleichen Line stehen.

Google ließ dafür mit großen Aufwand in den vergangenen Jahren den Font Noto entwickeln. Noto ist laut Eigenwerbung von Google "Beautiful and free fonts for all languages", https://www.google.com/get/noto/ Noto wird von Google in den neuen Versionen von Android verwendet, gleichzeitig stellt Google den Zeichensatz für alle zur freien Verwendung bereit.

Noto - was für ein Name ...

Der Name Noto entstammt von "no more tofu", mit tofu sind die kleinen Rechtecke bei nicht vorhandenen Zeichen gemeint.

In der Vergangenheit gab es nur wenige "umfangreiche" Fonts, die viele Zeichen aus verschiedenen Kulturen enthalten, einer davon war Arial Unicode MS von Microsoft. Mit Noto gibt es jetzt einen umfangreicheren und besser angepassten Zeichensatz für eine einheitliche Schrift.

Da der nicht asiatische Teil des Zeichensatzes Noto unter der "Apache License" veröffentlicht wird, kann er frei in allen Projekten verwendet werden und der Sourcecode steht auch zur freien Verfügung. https://github.com/googlei18n/noto-source

Weiterführende Links:
http://www.monotype.com/de/materialien/fallstudien/eine-schrift-spricht-mehr-als-800-sprachen-so-entstand-noto-fuer-google/
https://www.heise.de/ct/ausgabe/2017-5-Google-Noto-Eine-Schriftfamilie-fuer-alle-Sprachen-3622219.html
https://de.wikipedia.org/wiki/Noto_Fonts

Montag, 2. Mai 2016

DCC Translation Editor unterstützt WinCC v7.4 vollständig

WinCC in der Version 7.4 überstützt jetzt auch Windows 10 und hat dafür eine Freigabe erhalten. Auch sind alle bisherigen Updates von WinCC 7.3 in WinCC 7.4 eingeflossen. Siemens hat die Änderungen auf dieser Seite zusammengefasst: https://support.industry.siemens.com/cs/document/109483726/lieferfreigabe-simatic-wincc-v7-4?dti=0&lc=de-WW
WinCC v7.4

Das Exportformat des Text Distributors ist unverändert, so dass der Translation Editor auch WinCC v7.4 vollständig unterstützt.

Mittwoch, 8. Juli 2015

Warum es keine gute Idee ist, sprachabhängige Texte im WinCC User Archive zu speichern

Das WinCC User Archive ist ein Datenbanksystem, das vom Benutzer projektiert werden kann. Der Benutzer kann also die Spalten und die Eigenschaften (Typ, Größe, …) der Spalten selbst definieren.

Der Inhalt des User Archive kann dann als csv-Datei ex- und importiert werden, Texte stehen dabei immer in Anführungsstrichen.

Weiteres zum User Archive ist bei Siemens beschrieben.

Für eine Sprachumschaltung ist seitens des User Archive kein Mechanismus vorgesehen. Eine Möglichkeit ist eine LanguageID als Spalte hinzufügen und in dieser die Sprache des Textes abzulegen. Eine ID und die LanguageID bilden dann den eindeutigen Primärschlüssel einer Zeile, um einen Text aus dem User Archive durch ID, LanguageID und den Spaltennamen auslesen zu können. Ein Überblick, ob die Texte in allen relevanten Sprachen vorliegen, ist ohne geeignete Tools schwierig bis unmöglich.

Alternativ können die verschiedenen Sprachen im User Archive in unterschiedlichen Spalten mit einer gemeinsamen ID abgelegt werden. Die Struktur ist dann sehr ähnlich der Text Library.

Die Freiheit bei der Definition des User Archive ist gleichzeitig die große Schwäche, wenn es um Sprachumschaltungen geht. Da es keine vorgegebenen Mechanismen im User Archive für die Realisierung einer Sprachumschaltung gibt, ist bei jedem Projekt eine individuelle Analyse notwendig, was den Aufwand nach oben treibt.

Wesentlich besser geeignet für sprachabhängige Texte ist die Text Library. Hier stehen die Texte aus verschiedenen Sprachen nebeneinander, für den Ex- und Import gibt es wohl definierte Schnittstellen und die Struktur ist für alle Projekte identisch.

Donnerstag, 28. Mai 2015

Eine Schaltfläche (Button) für die Sprachumschaltung

Visualisierungen, die nur mit einer Sprache projektiert sind, benötigen für die Sprachumschaltung häufig ein Interaktionselement, um die Sprache umschalten. Bei Touch Bedienkonzepten können dies eine oder mehrere Schaltflächen im Bereich der Systemverwaltung sein.

Mit einer Schaltfläche wird zwischen den Sprachen gewechselt, d.h. jeder Tastendruck wechselt zur nächsten Sprache.

Alternativ kann für jede Sprache eine eigene Schaltfläche angelegt werden. Damit kann jede Sprache direkt ausgewählt werden. Wenn viele Sprache vorhanden sind, steigt der Platzbedarf und es wird schnell unübersichtlich.

Ich möchte mich im folgenden nur mit einer Schaltfläche für die Sprachumschaltung beschäftigen, die jeweils zur nächsten Sprache umschaltet. Wenn alle Sprachen durchgeschaltet wurden, wird wieder von vorne begonnen. Auf der Schaltfläche soll dabei immer eine Flagge für das Land der folgenden Sprache angezeigt werden.

Obwohl das Konzept der Darstellung von Sprachen durch Flaggen immer problematisch ist (bspw. Englisch: Flagge USA und/oder Großbritannien?) und Flaggen bei monochromen Bildschirmen oft nicht unterscheidbar sind, haben sich Flaggen als pragmatisches Konzept zur Sprachunterscheidung etabliert.

Also weiter, es soll eine Schaltfläche für die Umschaltung zwischen den Sprachen „Deutsch“,„Englisch“,„Italienisch“ und „Russisch“ projektiert werden. Wenn die aktuelle Sprache „Deutsch“ ist, soll auf der Schaltfläche die englische (Großbritannien) Flagge gezeigt werden. Damit ergibt sich die folgenden Auflistung:

  • Deutsch: Englische (Großbritannien) Flagge
  • Englisch: Italienische Flagge
  • Italienisch: Russische Flagge
  • Russisch: Deutsche Flagge


Für eine Demo nehme ich TIA V13, es funktioniert in anderen Versionen aber ähnlich.

Ich gehe davon aus, dass in der Projektierung bereits die Sprachen angelegt sind, ansonsten können diese unter Sprachen & Ressourcen, Projektsprachen angelegt werden.

In einem beliebigem Bild, hier „Systemverwaltung“ lege ich eine neue Schaltfläche an. Das Verhältnis der Breite zur Höhe der Schaltfläche sollte zu dem vorhandenen Layout passen. Wenn das Verhältnis frei gewählt werden kann, ist 3:2 optimal, die Flaggen sind in diesem Verhältnis angelegt.
Schaltfläche hinzugefügt


Bei den Eigenschaften der Schaltfläche wird als Modus Grafik und für die Eigenschaft Grafik wird Grafik ausgewählt, siehe auch folgendes Bild.
Eigenschaften Modus: Grafik und Grafik: Grafik


Dann müssen die Flaggen hinzugefügt werden. Die Grafiken für die Flaggen sind im TIA Portal enthalten, müssen nach der Installation aber noch aus einer zip-Datei entpackt werden. Das Flaggenverzeichnis lautet:
C:\Program Files (x86)\Siemens\Automation\Portal V13\lib\Graphics\Basic symbols\Flags\

Für die Flaggen wird unter Sprachen & Ressourcen in die Grafiksammlung gewechselt und auf Hinzufügen geklickt. Im Explorer wird in das Flaggenverzeichnis ausgewählt und die Flagge von Großbritannien hinzugefügt. Da die erste Flagge gleichzeitig die Standardflagge ist, erscheint sie für alle Sprachen. Für die weiteren Sprachen kann mit dem Kontextmenü Ersetze mit Grafik die richtige Flagge ausgewählt werden. Da in einer Sprache die Flagge der nächsten Sprache angezeigt werden soll, ist bei Deutsch die Flagge von Großbritannien, bei Englisch die Flagge von Italien, usw… auszuwählen. Der Eintrag in der Grafiksammlung bekommt noch einen sprechenden Namen, bspw. FlagForLanguage.
"Ersetze Grafik"

So sollte die Grafik für die Sprachen aussehen!


Jetzt geht es wieder zurück zur Schaltfläche, um die Grafik zu verbinden. Im Eigenschaftenfenster wird für Grafik, wenn Schaltfläche nicht gedrückt die gerade angelegte Grafik FlagForLanguage ausgewählt. Unter Ereignisse, Klicken kann unter Funktion hinzufügen die Funktion SetzeSprache mit der Eigenschaft Umschalten ausgewählt werden.
Grafik mit Schaltfläche verbinden
Funktion für Schaltfläche hinzufügen


Das war es schon, in der Simulation kann das Ergebnis gleich begutachtet werden. Falls nicht alle Sprachen verfügbar sind, müssen unter den Runtime-Einstellungen des Panels die Sprachen aktiviert werden. Auch kann hier die Reihenfolge der Sprachen festgelegt werden.
Sprachen für Panel aktivieren und Reihenfolge festlegen


Montag, 2. März 2015

WinCC: Liste mit Bildnamen erstellen

Bei der Bearbeitung von Projektierungen ist manchmal die Liste der vorhandenen Bilder interessant. Anhand der Liste können dann Bilder markiert werden, die z.B. weiter bearbeitet werden sollen.

Für Simatic WinCC kann eine Liste mit vorhandenen Bildern am schnellsten mit dem DOS-Befehl dir erstellt werden. Die Textdatei kann dann mit jeder Tabellenkakulation, wie Excel oder OpenCalc weiter bearbeitet werden.

Vorgehen:
  1. In Windows eine Commandshell (Befehlszeile) öffnen 
  2. Mit cd in das Bildverzeichnis (GraCS) des Projektes wechseln 
  3. Mit dir /B *.pdl > c:\temp\pdl-list.txt eine Textdatei mit den Namen der pdl-Dateien erzeugen. Der Schalter /B erzeugt eine einfache Liste, Kopf, Fuß und Dateigrößen werden nicht aufgelistet. 
  4. Die Datei pdl-list.txt mit einer Tabellenkalkulation öffnen und weiterbearbeiten. 
Mit diesem Vorgehen müssen die Dateinamen nicht mühsam abgeschrieben werden, sondern stehen im Handumdrehen in einer List, die mit jeder Textbearbeitung oder Tabellenkalkulation weiterbearbeitet werden kann.

Die folgenden Bilder zeigen den Ablauf:

Commandshell öffnen


In das Bildverzeichnis der Projektierung wechseln

Alle *.pdl-Dateien in eine Datei schreiben


Inhalt der pdl-list.txt-Datei in Excel

Mittwoch, 7. Mai 2014

Texte in WinCC C-Scripten

In Simatic WinCC werden in den C-Scripten oft Texte zur Anzeige verwendet. Wenn diese Texte auch sprachumgeschaltet werden sollen, sind längliche If-Abfragen das Ergebnis. Viel eleganter ist das Schreiben der Texte in die Text Library und die Verwendung einer Funktion zum Auslesen der Texte aus der Text Library mittels der TextID. Da die Text Library die Texte entsprechend der eingestellten Sprache zurückliefert, ist damit auch die Sprachumschaltung berücksichtigt.

Anwendung:

Das ursprüngliche C-Script mit einem festen Text lautete:
if(GetTagByte(TAG) & 0x1)
return "Fehler bei Schliessen";

Dies wird geändert in:
if(GetTagByte(TAG) & 0x1)
return GetTextTL(91940786);

(91940786 ist die ID in der Text Library) und der Text "Fehler bei Schliessen" wird für die verschiedenen Sprachen in die Text Library geschrieben. Ab jetzt wird der korrekte Text bei einer Sprachumschaltung angezeigt.

Die folgenden Bilder zeigen die Schritte nochmals.
Ursprüngliches C-Script

C-Funktion zum Lesen von Text aus der WinCC Text Library

Texteintrag in Win CC Text Library mit ID, Englisch und Deutsch

C-Script mit Aufruf der obigen C-Function zum Lesen des Textes aus der Text Library


Mittwoch, 29. Januar 2014

Terminologie und Translation Memory – Was ist das noch mal?

Terminologe und Translation Memory werden beide häufig verwechselt, die Begriffe klingen ähnlich und beide haben häufig mit Übersetzungen zu tun. Im Folgenden versuche ich ein wenig Klarheit in die Begriffe zu bringen.

Die Terminologie wird bei Wikipedia als die Menge aller Fachausdrücke (Termini) eines Fachgebiets beschrieben. Die Speicherung erfolgt in Terminologiedatenbanken. Für Übersetzungen bestehen die Einträge der Terminologiedatenbanken häufig aus einer Beschreibung oder Erläuterungen eines Begriffes und der Übersetzungen in die Zielsprache. Die Terminologiedatenbank dient der Einhaltung bei Terminologie bei der Texterstellung. Beispielsweise können damit auch ‚verbotene’ Begriffe der Konkurrenz vermieden werden.

Im Translation Memory werden die übersetzten Texte für die weitere Verwendung gespeichert, sei es beim gleichen Text oder bei späteren Übersetzungen. Bei der Erstellung der Übersetzung werden die Texte dann im Translation Memory gesucht und vorgeschlagen.

Das Bild zeigt wann Terminologie und Translation Memory verwendet werden


Bei der Suche im Translation Memory werden auch ähnliche Texte gefunden, wie das folgende Beispiel zeigt. Zum Text „Oberstempelanschlag unten“ werden im Translation Memory die folgenden ähnlichen Texte gefunden: „Sollwert Oberstempelanschlag unten“, „Oberstempelanschlag“, „Oberstempel unten“, „Sollposition des Oberstempelanschlages unten“, „Anschlagverstellung unten“, „Oberstempelanschlag unten motorisch weiter nach oben fahren“ und „Oberstempelanschlag oben motorisch weiter nach unten fahren“. Die Ähnlichkeit der Texte kann mit verschiedenen Verfahren ermittelt werden, eines ist die Levenshtein-Distanz. Die Levenshtein-Distanz zwischen zwei Zeichenketten ist die minimale Anzahl von Einfüge-, Lösch- und Ersetz-Operationen, um die erste Zeichenkette in die zweite umzuwandeln
Translation Memory zum Text "Oberstempelanschlag unten", die linke Spalte zeigt die Ähnlichkeit zum Ausgangstext als Prozentwert und mit hinterlegter Farbe (identische Texte sind grün, dann geht es von gelb nach rot absteigend)

Freitag, 15. November 2013

Fehler beim Textexport mit dem Text Distributor von WinCC 7 und WinCC 7.2

Für den Textexport aus WinCC 7 haben wir bei DCC global eigene VB-Scripte geschrieben, damit der Text in beliebigen Sprachen exportiert werden kann. WinCC 7.0 hat beim Im- und Export eine signifikante Einschränkung. Es können nur Sprachen aus dem gleichen Sprachraum und Englisch exportiert werden. Mit den DCC-eigenen Skripten existiert diese Beschränkung nicht. So exportieren wir mit unseren eigenen Skripten bei WinCC 7 beliebige Sprachkombinationen. Jetzt haben wir in WinCC 7.2 den Textexport mit dem Text Distributor wieder einmal verwendet und sind auf einen Fehler im Exportformat gestoßen, der auch in WinCC 7.0 enthalten ist.

Der Fehler tritt durch die fehlende Verdoppelung von Anführungszeichen beim Export auf. Texte werden in Anführungszeichen gestellt, wenn das Spaltentrennzeichen in dem Text vorhanden ist. Das Spaltentrennzeichen ist bei csv-Dateien das Semikolon ";" und bei txt-Dateien das Tabulatorzeichen (0x09). Mit diesem Wissen kann ein Text zusammengebaut werden, der beim Ex- und folgenden Import in WinCC zu Fehlern führt.


Beispiel für den Export in csv-Dateien

In einem Static Text-Objekt wird der folgende Text geschrieben:
Text1";"Text2
Es beginnt mit einem beliebigem Text, dann folgt die Kombination Anführungszeichen, Semikolon, Anführungszeichen und dann wieder ein beliebiger Text.

Beim Export mittels des Text Distributors wird aus dem obigen Text dann
"Test1";"Text2"
Die äußeren Anführungszeichen sind durch den Export ergänzt worden. In einer csv-Datei sind aus dem einen Text damit zwei Spalten, getrennt durch das Semikolon geworden.


Beispiel für den Export in txt-Dateien

Für eine txt-Datei wird ein ganz ähnlicher Text, wie bei einer csv-Datei zusammengebaut. Als Spaltentrennzeichen fungiert bei txt-Dateien das Tabulatorzeichen. Das Tabulatorzeichen (→) kann über die Tastatur mit <STRG><TAB> eingegeben werden. Der Text lautet:
Text1"→"Text2
Im WinCC Graphics Designer wird das Zeichen "→" nicht angezeigt, sondern nur ein Leerraum. Beim Export wird aus dem obigen Text
"Text1""Text2"
Wieder sind die äußeren Anführungszeichen durch den Export ergänzt worden. In der txt-Datei sind damit wieder zwei Spalten entstanden.


Welche WinCC Versionen sind betroffen?

Der Fehler tritt in allen WinCC 7.0 WinCC 7.2 Versionen auf.


Warum ist der Fehler kritisch?

Die exportierten csv- und txt-Dateien lassen sich mit WinCC 7.2 mittels Text Distributor nicht mehr importieren, es tritt ein Fehler auf. Die folgende Hardcopy zeigt den Fehler beim Import aus txt-Dateien.



Lösung

Für eine Lösung bei den txt-Dateien sind zwei unterschiedliche Vorgehensweisen denkbar:
a) Das Spaltentrennzeichen (<Tab>) wird wie ein Zeilenumbruch kodiert, z.B. mit {TAB} und Texte mit <Tab>-Zeichen werden nicht mehr mit Anführungsstrichen umgeben
Bsp.: Text1"{TAB}"Text2
oder b) die Anführungszeichen innerhalb von Texten werden verdoppelt, einfache Anführungszeichen sind dann Feldbegrenzer, wenn ein Spaltentrennzeichen oder Feldbegrenzer im Text vorkommt.
Bsp.: "Text1""→""Text2"

Für eine Lösung bei den csv-Dateien bietet sich das folgende Verfahren an: Die Anführungszeichen werden innerhalb von Texten verdoppelt. Der obige Text würde dann in der csv-Datei wie folgt geschrieben:
"Text1"";""Text2"

Für beide Lösungsansätze muss der Softwarehersteller, also Siemens aktiv werden.

Dienstag, 3. September 2013

WinCC 7.2 und Mehrsprachigkeit

Die neue Version 7.2 von WinCC bietet jetzt auch Unicode-Unterstützung an. Vorteil der Unicode-Unterstützung ist, dass damit an vielen Stellen auch nicht-lateinische Zeichen verwendet werden können. Siemens selbst sagt dazu:

Unicode für weltweiten Einsatz

Der weltweite Einsatz von SIMATIC WinCC wird durch die UNICODE Unterstützung erheblich vereinfacht. Mit UNICODE ist die Umschaltung auf eine individuelle Sprache jederzeit möglich, sowohl beim Engineering als auch zur Laufzeit. Unabhängig von der Sprache des WinCC Servers und von der im Betriebssystem aktivierten Sprache.
http://www.automation.siemens.com/mcms/human-machine-interface/de/visualisierungssoftware/scada-wincc/simatic-wincc/wincc-news/seiten/produktankuendigung-wincc-v7-2.aspx#

Und in der Tat, vereinfacht die Unicode-Unterstützung die Sprachumschaltung an einigen Stellen, die in der Vergangenheit immer geschmerzt haben.

Textexport mit dem Textdistributor

Mit dem Textdistributor in WinCC 7.2 können beliebige Sprachkombinationen exportiert werden. So kann jetzt Deutsch wieder zusammen mit Chinesisch und Russisch exportiert werden. Das ist ein großer Fortschritt gegenüber Version 7.0. In Version 7.0 war immer nur Englisch zusammen mit Sprachen aus einer Codepage möglich.

WinCC 7.2: Chinesisch, Deutsch, Englisch, Französisch und Russisch gemeinsam ex-/ und importieren

Mehrsprachigkeit in einem Bild

Durch die Unicode Kodierung der Texte können in den Bildern jetzt alle Zeichen gleichzeitig dargestellt werden. In älteren Versionen von WinCC waren jeweils nur die Zeichen einer Sprachregion (Codepage) möglich. Jetzt können so z.B. die Texte für Deutsch, Chinesisch, Russisch und Tschechisch gleichzeitg angezeigt werden.
Deutsch, Chinesisch, Russisch und Tschechisch
können gleichzeitig angezeigt werden

Nach besser wird es bei den Alarmmeldungen. Mit dem AxAlarmControl können jetzt verschiedene Sprachen zur gleichen Zeit angezeigt werden. Bei der Inbetriebnahme einer Anlage im Ausland ist dies ein tolles Feature. Kunde und Inbetriebnehmer verstehen die Meldung dann jeweils in der eigenen Sprache.
Alarmmeldung in Russisch, Deutsch und Englisch

Bild- und Tagnamen in beliebiger Sprache

Die Bezeichnung der Bildnamen kann in jeder Sprache erfolgen. Dies ist auf den ersten Blick nett, übertreiben sollte man es damit aber nicht, da chinesische Namen für die Meisten von uns zur schlecht les- und merkbar sind.
WinCC 7.2: Bildbezeichnungen mit lateinischen, russischen und chinesischen Zeichen
Die jetzt in Unicode kodierten Bildnamen sind an vielen Stellen nutzbar. So kann ein Bild mit chinesischem Bildnamen durch eine Direktverbindung oder VBS (Visual Basic Script) geöffnet werden.

Kein Unicode in C-Scripten

Das Verwenden von Unicode-Zeichen in C-Scripten funktioniert leider nicht. Die Unicode-Zeichen können in den C-Scripten zwar eingegeben und gespeichert werden, aber im C-Compiler werden die Zeichen in der einzustellenden Codepage kodiert. Es erfolgt bei der Kompilierung der C-Scripte eine Konvertierung der Unicode-Zeichen in die eingestellte Codepage. Die Einstellung der Sprache erfolgt im C-Editor, siehe gelbe Markierung im folgenden Screenshot.
Sprache des C-Scriptes muss im C-Editor eingestellt werden

Test: Auf einem deutschen Windows mit WinCC 7.2 Update 2 können Bilder mit russischen oder chinesischen Bildnamen durch ein C-Script nicht geöffnet werden, wenn die Sprache des C-Scriptes auf Deutsch steht. Eigentlich sollte der folgende Befehl OpenPicture("загрузки.pdl");  das Bild "загрузки.pdl" öffnen. Das funktioniert aber nicht. Versuche zeigen, wenn der Bildname einen Codepoint größer als 127 enthält, kommt das C-Script damit nicht zurecht. Auch wenn das Windowssystem auf Russisch eingestellt wird, lässt sich das Fenster auf die Art nicht öffnen. Es ist notwendig die Sprache des C-Scriptes auf die Sprache der Bildnamen oder Variablennamen einzustellen. Damit sind die C-Scripte sprachabhänging.
Siemens sagt in der Hilfe dazu: "Verwenden Sie in sprachunabhängigen WinCC-Elementen keine nationalen Sonderzeichen oder asiatische Schriftzeichen. Diese Zeichen sind nach einer Sprachumschaltung nicht mehr lesbar bzw. verhindern den korrekten Ablauf von WinCC."

In der Hilfe findet sich auch der folgende Abschnitt:
Sobald also der C-Compiler ins Spiel kommt, ist die Zeichenkodierung mit Unicode nicht mehr gegeben. Insbesondere bei Projektierungen, die Chinesisch und Russisch enthalten, wäre der Ablauf der Programme von der Sprache abhängig. Daraus folgt, dass entweder die Variablen und Bildnamen kein Unicode enthalten dürfen oder aber keine C-Scripte verwendet werden dürfen.

Empfehlung: In den Bild- und Tagnamen nur Zeichen bis zum Codepoint 127 benutzen, also kein  Russisch oder Chinesisch.


Donnerstag, 29. August 2013

Neue Version des DCC Translation Editor 4.2

Wir bei DCC global haben eine neue Version des DCC Translation Editor veröffentlicht. Der DCC Translation Editor ist ein Tool, welches spezialisiert ist auf das komfortable und effiziente Ändern und Pflegen von mehrsprachigen SIMATIC Projektierungen.

In der Version 4.2 sind neu:


  • Unterstützung des Dateiformates von TIA Portal V11SP2 und V12
  • Unterstützung des Dateiformates von WinCC 7.2
  • Vollständig neuer Import-/Exportfilter für xlsx-Dateien 
  • Kopieren von Text im rtf-Format vom DCC Translation Editor nach Word, OpenOffice Writer oder LibreOffice
  • Bugfixing 


Unterstützung neuer Dateiformate

In den neuen Versionen des TIA Portals wurde in den xlsx-Formaten intern einiges geändert. Dies erforderte Anpassungen in unserem xlsx-Reader/Writer. Wir haben uns nach interner Diskussion entschieden, den eigenen xlsx-Treiber zu entfernen und auf EPPlus http://www.codeplex.com/EPPlus zu setzen. Diese Bibliothek (LGPL) bietet tolle Funktionen und erfüllt ihre Aufgaben exzellent. Bei den Tests haben wir in der aktuellen Version 3.1.3 von EPPlus auch einen klitzekleinen Bug (https://epplus.codeplex.com/workitem/14849) gefunden, den wir korrigiert und an den Entwickler gemeldet haben. 

Bei TIA V12 ist jetzt auch das Office Open XML-Format (xlsx) näher an der Formatdefinition von Microsoft herangerückt. Der in den vorherigen Versionen fehlende Tag <fill><patternFill patternType=\"gray125\" /></fill> wurde von Siemens im Bereich \xl\styles.xml ergänzt.

In TIA V12 sind die Variablen jetzt mit Anführungsstrichen umgeben. In der xlsx-Datei steht die Variable in der folgenden Notation: "Konfiguration_DB_Ofen.Konf_X_min_Netzausfallzeit". In den vorherigen Versionen wurden die Variablen nicht mit Anführungsstrichen umschlossen. Die Version 4.2 des Translation Editors kann mit den Variablen in Anführungsstrichen umgehen.

Kopieren von Text im RTF-Format

Beim Kopieren von Text aus dem DCC Translation Editor in eine Textverarbeitung wird jetzt das rtf-Format für die Zwischenablage genutzt. Damit werden die Texte in Word, LibreOffice oder OpenOffice optisch wie im Translation Editor eingefügt.
Kopieren von Text nach Word, LibreOffice oder OpenOffice

Download 

Die neue Version kann unter der folgenden Url heruntergeladen werden: http://download.translation-editor.com/download/SetupTE_4.2.13241.3964.exe

Updates werden auch über den automatischen Updatemechanismus verteilt. Der Lizenzschlüssel bleibt weiterhin gültig.

Freitag, 16. August 2013

Ex- und Import ausgewählter Texte aus dem TIA-Portal

Im Simatic TIA Portal können die Projektierungen für verschiedene Geräte gemeinsam verwaltet werden. Damit werden auch die Texte für alle Geräte gemeinsam verwaltet. Wenn jetzt aber nur die Texte einiger Geräte übersetzt werden sollen, so geht dies auch, wenn auch das Vorgehen nicht ganz intuitiv ist.

Das Vorgehen ist wie folgt: Im Project tree wird der Knoten Languages & resources geöffnet. Dann mit Doppelklick den Editor für die Projekttexte Project texts öffnen (Bild 1). Im Project texts-Editor dann im Device filter die Geräte auswählen, deren Texte exportiert werden sollen (Bild 2). Anschließend müssen die Texte in der Liste markiert werden, am schnellsten mit STRG-A (Bild 3). Im folgenden Schritt neben dem Device filter auf der Icon für Export project texts klicken (Bild 4) und im Exportdialog die Zielsprache und das Exportverzeichnis auswählen (Bild 5). Mit dem Klick auf Export wird der Export gestartet.

Die Schritte sind in den folgenden Bildern dokumentiert.
Bild 1: Project texts öffen


Bild 2: Geräte auswählen

Bild 3: Texte markieren, STRG-A für alle Texte
Bild 4: Auf das Icon Export project texts klicken
Bild 5: Zielsprache und Exportverzeichnis auswählen und auf Export klicken

Mittwoch, 31. Juli 2013

Panel-PC ersetzt Bedienterminal und wird um Sprachumschaltung ergänzt

Über eine, wie ich finde, interessante Idee berichten die VDMA-Nachrichten in ihrer aktuellen Ausgabe (Juli 2013, S. 73). Ein Panel-PC ersetzt ein Bedienterminal, wobei der Panel-PC die an Hard- und Softwareschnittstellen der Maschine angepasst wird. Bei einem solchem Retrofit kann dann auch eine Sprachumschaltung ergänzt werden, die mit dem alten Bedienterminal nicht möglich war.


Den gesamten Artikel als pdf-Datei können Sie hier herunterladen.