TIA DMC Code ueber SPS generieren und Druck beauftragen

mschoena

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe eine kurze Frage zu einem E-Technik Projekt bei uns an der Hochschule.

Über die Suchfunktion konnte ich kein passendes Thema finden.

Es geht darum, ob es möglich ist durch die SPS (TIA Portal) einen DMC Code drucken zu lassen. Die Daten, die für den DMC Code benötigt werden, sind folgende:

Hntergrund zum Informationsgehalt des DMC Codes:

Er besteht aus 36 Stellen
1: Kennzahl 0,1,2 je nach Bauteiltyp (wird immer gleich sein)
2-11: Sachnummer
12,13: YY (Produktionsjahr zweistellig)
14,15,16: DDD (Produktionstag dreistellig)
17-21: CCCCC (Fortlaufende Tages-Produktionszahl. Wird täglich um 0.00 Uhr auf 00000 zurückgesetzt)
22: Nr. der Produktionslinie (wird auch immer gleich sein)
23-36: können frei bleiben

Diese Daten kann ich ja theoretisch komplett aus der SPS auslesen. Systemzeit, Zähler für Bauteil und Sachnummer.

Frage:

Kann ich über TIA/SPS einen DMC Code generieren lassen und einen Druckauftrag direkt über die SPS an einen Label Drucker schicken?

Oder wird ggf. ein Zwischenrechner mit einer Software benötigt, die die Daten der SPS bekommt und einen Druck auslöst, z.B. SPS befüllt Excel VBA-Formular automatisiert und das Makro löst einen Druck aus?

Vielen Dank schon mal im Voraus

Frohes Neues Jahr 2021

Grüße

Marvin
 
Zuletzt bearbeitet:
Nur zur Vollständigkeit halber: Wenn man einen normalen Drucker hat und keinen Labelprinter der einen DMC Code aus einer Zeichenkette generieren kann, dann geht immer noch der Umweg über WinCC. Dort lassen sich DMC Codes generieren und z.B. per normalem Druckauftrag "grafisch" an einen herkömmlichen Drucker schicken.
 
Vielen Dank für die Antworten. Wie kann ich die Zeichenkette an den Labeldrucker senden? Gibts da eine Art Baustein speziell für Drucke oder brauche ich einen DB? Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
kommt sicher auf den Labeldrucker an.
Habe neulich mit ZEBRA-Druckern zu tun gehabt, da ist es möglich über eine Software das Layout mit Variablen zusammenzu"basteln" und einen Code als Zeichenkette ausgeben zulassen, den man dann auch von der SPS per TCP string an den Drucker schicken kann.
Wir haben Barcodes gedruckt, ich bin ziemlich sicher, dass auch DMC machbar ist.
RTF(printer)M
 
kommt sicher auf den Labeldrucker an.
Habe neulich mit ZEBRA-Druckern zu tun gehabt, da ist es möglich über eine Software das Layout mit Variablen zusammenzu"basteln" und einen Code als Zeichenkette ausgeben zulassen, den man dann auch von der SPS per TCP string an den Drucker schicken kann.
Wir haben Barcodes gedruckt, ich bin ziemlich sicher, dass auch DMC machbar ist.
RTF(printer)M
Vielen Dank für Deine super schnelle Antwort. Ja, wir haben auch Zebra Drucker. Wir drucken gerade aus einer alten NC Steuerung einen DMC auf Label. Das läuft über ein Applikation, die den Code erstellt und fertig an den Drucker schickt. Das läuft.

Wir brauchen jetzt noch einen weiteren Drucker, der an einer weiteren Anlage einen DMC druckt. Hier müssen wir direkt aus der SPS drucken. Wir benutzen auch einen Zebra. Erfahrung hat bisher keiner damit hinsichtlich der Machbarkeit mit der SPS. Ich bin überzeugt, dass es möglich ist. Mir fehlt aber etwas noch das knowhow und die Ideen.

Aber Deiner Argumentation zufolge, sollte es grundlegend möglich sein, dass ich einen String an den Drucker schicke, der daraus einen DMC macht.
 
Normalerweise wird ein Zebra Drucker über eine TCP/IP Verbindung angesteuert, Infos über Ports usw findet man auf der Zebra Seite. Aber ich denke, dass ist eher nicht das Problem oder?

Wenn es darum geht das Label zu gestalten und einige Inhalte dynamisch zu gestallten kannst du dir entweder mit der Software von Zebra Helfen

Link -> Zebra Developer

oder auf der folgenden Homepage ein Label erstellen:

http://labelary.com/viewer.html

Bei der ganzen Sache hilft Trail and Error, es werden bei der Zebra Software viele Informationen in den ZPL Code eingearbeitet die man nicht zwingend braucht.

Ich habe mir den so erstellen Code einfach als Elemente in einer UDT als String angelegt und für den variablen Anteil gegen die echten Daten ausgetauscht.

1632330643430.png

Zb gesucht im String "strPkNumber" nach ?PK-Number? suchen und durch die echte PK Nummer austauschen.
Anschließend in Array of Char Wandeln und an den Drucker senden.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur zur Vollständigkeit halber: Wenn man einen normalen Drucker hat und keinen Labelprinter der einen DMC Code aus einer Zeichenkette generieren kann, dann geht immer noch der Umweg über WinCC. Dort lassen sich DMC Codes generieren und z.B. per normalem Druckauftrag "grafisch" an einen herkömmlichen Drucker schicken.

Hallo,

und Sorry das ich diesen Thread noch Mal ausgrabe, aber ich habe ein ähnliches Problem.
Ich habe einen Laserdrucker auf dem ich ein Protokoll ausdrucke.
Die Daten liegen als String vor. Der Ausdruck wird über ein C-Script angetriggert.
Soweit ist alles gut, aber nun soll ein DMC mit auf das Protokoll.
Ich hab ein kleines Tool das mir aus dem String ein Bild des DMC erzeugt aber nun Suche ich eine Möglichkeit dieses Bild vor dem Ausdruck des Protokolls auszutauschen.
Bin auch für andere Lösungen offen.

Ach ja TIA V17 mit WinCC Professional


Grüße
Christian
 
Hallo,

und Sorry das ich diesen Thread noch Mal ausgrabe, aber ich habe ein ähnliches Problem.
Ich habe einen Laserdrucker auf dem ich ein Protokoll ausdrucke.
Die Daten liegen als String vor. Der Ausdruck wird über ein C-Script angetriggert.
Soweit ist alles gut, aber nun soll ein DMC mit auf das Protokoll.
Ich hab ein kleines Tool das mir aus dem String ein Bild des DMC erzeugt aber nun Suche ich eine Möglichkeit dieses Bild vor dem Ausdruck des Protokolls auszutauschen.
Bin auch für andere Lösungen offen.

Ach ja TIA V17 mit WinCC Professional


Grüße
Christian
LaTeX wäre eine Möglichkeit. Jedes mal PDF neu generieren und drucken.
 
Danke für deinen Hinweis DMC einzeln zu schreiben ;) dadurch sind die Suchergebnisse definitiv sinnvoller geworden, ohne Latexbekleidung und Handschuhe.

Trotzdem befürchte ich, das ich es noch nicht ganz verstanden habe.
In meinem C-Script das bis jetzt den Ausdruck des Protokolls antriggert, würde ich eine Datei erstellen, die das Protokoll in LaTeX beschreibt.
Daraus ein pdf generieren und dieses dann an den Drucker senden.

Mein Ansatz wäre gewesen im C-Script die im Protokoll hinterlegte Grafik auszutauschen

Protokoll.jpg
 
Du wirst mittels C-Script die Datei im Protokoll nicht zur Laufzeit austauschen können, da diese in die Runtime-Projektdatei mitgepackt (mitkompiliert) wird.

Bei LaTeX kommt es auf die Schreibweise an um nichts mit Latex zu tun zu haben. Man spricht das auch anders aus.

Im Prinzip funktioniert das so:
Das Dokument wird als LaTeX-Quelltext gesetzt und daraus kann man diverse Dokumentformate generieren. Es ist weit verbreitet im Universitären und wissenschaftlichen Umfeld, aber ich benutze es auch für verschiedene Zwecke zuhause wie z.B. primitive Grundrisse Zeichnen, Türschilder machen usw.

Der Vorteil ist, dass man die Quelldatei in Form einer oder mehrerer Textdateien ausspuckt und Sub-Dateien einbinden oder referenzieren kann. Jedes mal wenn man das Dokument "kompiliert" wird ein passendes PDF erzeugt. Das Grundprinzip ist über 40 Jahre alt, Open Source und lebt laufend weiter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die beiden angehängten Dokumente sind z.B. in LaTeX gesetzt, der Source-Code sieht so aus:

Code:
\documentclass[10pt,letterpaper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}           
\usepackage[naustrian]{babel}
\usepackage{lmodern}
\usepackage[paper=letterpaper,left=1.25in,right=1.375in,bottom=0.135in,top=1in,includehead,includefoot]{geometry}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{lipsum}

% Titelseite
\author{Maximilian~Penninger\\k0855775}
\title{Praktisches Arbeiten mit \LaTeX\\Hausübung}
\date{\today}

% Seitenstil
\pagestyle{fancy}

% Kommando fuer Warnung
\newcommand{\warnung}[1]{
\hspace{3.3em}
\begin{minipage}[c][15ex][t]{5.15em}
    \vspace{2.4ex}
    \includegraphics[width=4.8em]{150px-Simple_Alert.png}
\end{minipage}
#1
}
\setlength{\parindent}{0pt}

% -----------------------------------------------------------
\begin{document}
\maketitle

\section{Bla bla}

\lipsum[1]

\warnung{Nicht nur Bla Bla schreiben.}

\lipsum[1]


\section{Hinweis}

Die Verwendung sollte wie in folgendem Beispiel möglich sein.

\vspace{2.25ex}
\texttt{\textbackslash warnung\{Nicht nur Bla Bla schreiben.\}}


\end{document}


Code:
\documentclass[10pt,letterpaper]{article}

\usepackage[utf8]{inputenc}
\usepackage[OT2, T1]{fontenc}            % Quelle: www.tn-home.de/TUGDD/Stuff/pmcyr.pdf 'Kyrillisch für arme Leute'
\usepackage[russian, ngerman]{babel}
\usepackage{lmodern}
\usepackage{color}
\usepackage[paper=letterpaper,left=1.25in,right=1.375in,bottom=0.135in,top=1in,includehead,includefoot]{geometry}
\usepackage{fancyhdr}
\usepackage{graphics}
\usepackage{overpic}

\usepackage{CJKutf8}                            % Quelle: http://tex.stackexchange.com/questions/17611/how-does-one-type-chinese-in-latex
\AtBeginDvi{\input{zhwinfonts}}        % --"--, Zeichenquelle: http://de.wikipedia.org/wiki/Renminbi

% Titelseite
\author{Maximilian~Penninger\\k0855775}
\title{Praktisches Arbeiten mit \LaTeX\\Hausübung}
\date{32.\ Mai 2015}

% Seitenstil
\pagestyle{fancy}

% -----------------------------------------------------------
\begin{document}
\maketitle

\section{Geld aus aller Welt}

\begin{figure}[ht]
    \centering
    \begin{overpic}[width=0.71\columnwidth]{DSCN5950}
        % Original-Text nachgesetzt
        %\put(19,68){\color{red}\Large\bfseries Schilling}
        %\put(58,48){\color{red}\Large\bfseries Dollar}
        %\put(9,15){\color{red}\LARGE\textit{Euro}}
        \put(19,68){\color{red}\Large \foreignlanguage{russian}{Rubel} \bfseries = Rubel}            % Rubel = russische Währung
        \put(38,48){\color{red}\Large \foreignlanguage{russian}{Tegreg} \bfseries = Tögrög}        % Tögrög = Währung in der Mongolei. In der (äußeren) Mongolei wird die Mongolische Sprache ebenfalls mit kyrillisches Buchstaben geschrieben, der Satz mit Serifenschrift ist zwar nicht gern gesehen aber möglich (http://de.wikipedia.org/wiki/Mongolische_Sprache); in der inneren Mongolei (eine Provinz Chinas) hingegen ist die traditionelle Schrift üblich. Da es sich um die Währung der (äußeren) Mongolei handelt, wird hier kyrillisch gesetzt.
        \put(9,15){\color{red}\LARGE \begin{CJK*}{UTF8}{zhsong}人民幣\end{CJK*} \textit{= Renminbi}}
    \end{overpic}
    \caption{Ein paar Geldscheine}
    \label{fig:kohlePutinDschingisKhanMaoZedong}%
\end{figure}



\end{document}
 

Anhänge

Soweit hab ich das jetzt verstanden, mir stellt sich noch die Frage, wie starte ich das "kompilieren" in WinCC Pro?
Im Prinzip ist das eine Konsolenanwendung, die du im Hintergrund ausführen musst.

z.B.
pdflatex -output-directory C:/Users/KEY0000G/Documents/TeXfiles TEST.tex

Im Detail ist es natürlich komplizierter:
Du brauchst eine LaTeX-Distribution, welche du am PC installierst. Das kann z.B. MiKTeX sein. Diese Distribution stellt dir die ganzen LaTeX-Funktionen zur Verfügung und lädt bei Bedarf die nötigen Packages aus dem Internet nach.
D.h. du musst das mal mit einem initialen Dokument, das alle Packages einbindet, manuell ausführen, dann sollte es reibungslos klappen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sowas in der Art hab ich mir fast gedacht.
Die IT unseres Kunden lässt mir auf dem PC keine zusätzliche Software die nicht von ihnen freigegeben wurde installieren.
An eine Internetverbindung ist schon gar nicht zu denken.

Danke trotzdem für deine Hilfe, werde ich auf alle Fälle im Hinterkopf behalten.
 
Zurück
Oben