Imprimir archivos desde Wincc Flexible  PC Runtime

El principio de esta práctica esta basado en la pregunta de un compañero en el foro Infoplc.net, donde el objetivo es imprimir unas etiquetas cuando se active una entrada. Para redactar esta guia he utilizado el programa Paint e imprimir una imagen de un Código de Barras, pero esta probado con otras aplicaciones, para reutilizarlo habrá que adaptar el código del Script

La solución pasa por utilizar los recursos de Visual Basic Script, y el procedimiento que he seguido ha sido el siguiente:

1.- Configuración de la impresora predeterminada,para ello vamos a panel de control ->Impresoras y faxes y seleccionamos la que vamos a utilizar, en mi caso, para las pruebas he utilizado una impresora virtual PDFCreator

2.- El siguiente paso será abrir un nuevo proyecto o el proyecto en el que estemos trabajando en WinccFlexible

3.- Nos vamos a la sección de Scripts y creamos uno nuevo,el código seria el siguiente, con este Script se abriria una aplicación, se abriria el archivo indicado, este se imprimiria y se cerraria la aplicación

4.- El problema surge en que no es posible utilizar el metodo Sleep en Wincc Flexible, la solución pasa por hacer un Script externo a WinCC Flexible y despues llamar a este desde el Runtime

5.- Para poder ejecutar un programa externo podemos utilizar obj_Shell.Exec o obj_Shell.Run, (el nombre obj_Shell es simbolico ) aunque surge otro inconveniente, no es posible utilizar la extension .bat o .vbs, con lo cual el Scrip que creemos fuera de Wincc Flexible lo convertiremos a un archivo .exe para poder llamarlo desde el Runtime

6.- Una vez tenemos creado nuestro archivo .exe ya estamos listos para realizar el Script que llamara a este cuando la entrada este a 1

7.- El Script en WinCC Flexible será el siguente

8.- Ahora solo falta configurar la ejecución del Script que lo haremos en el Tag correspodiente y se ejecutará cada vez que cambie de valor, pero si queremos imprimir un documento word, excel desde el Runtime, la estructura del Script seria algo como lo siguiente:

Julio del 2012