Comenzando con SCADA!!!
- Jebus
- 2 sept 2015
- 3 Min. de lectura
Hola a todos, para esta segunda entrada del blog, comenzaré por publicar el primer trabajo de SCADA, el cual será implementado en Visual Studio 2010 (adjunto encontrarán el codigo utilizado) y en Python 3.X.
Describamos el trabajo:
Como apenas estamos comenzando a programar en Visual el programa no es complicado, lo que debe hacer es mostrar 10 imágenes diferentes, tendrá adicional a esto 6 botones de control los cuales deben hacer lo siguiente:
- Avanzar una imagen
- Avanzar hasta la última imagen
- Retroceder una imágen
- Retroceder hasta la primera imágen
- Un boton que muestre secuencialmente las imágenes
- Uno que detenga la acción anterior
Adicional a esto, debe tener la imagen de un led que encienda y apague cada 2 segundos.
Describamos como se hizo en términos generales (VB2010):
Para implementar este trabajo se comenzó adjuntando todas las imágenes en el formulario al igual que todos los botones de acción y el led que debe encender y apagar cada 2 segundos.
Se agregó un temporizador (Timer1) para el led, este inicia cuando se abre el formulario y apaga cada 2 segundo, nada del otro mundo.
El temporizador 2 (Timer 2) se encargará de mostrar de forma cíclica las imágenes cada 0.8 Segundos, adicional a esto cuando ejecute, desabilitará los botones de adelantar, retroceder primera y última imágen, los cuales se habilitaran cuando se detenga el temporizador dos con el botón de acción detener.
Para la parte de los botones primera y última imágen la lógica utilizada fue desabilitar los botones de acción contrarios y modificar la propiedad "Visible" de cada imágen previamente insertada.
Por último en los botones de adelantar y retroceder imágen por imágen se usaron condicionales "IF" anidados en donde se evaluava si la la propiedad de imagen no. X era Verdadera simplemente la modificaba a Falso y modificaba a Verdadero la anterior o la siguiente dependiendo de la acción que se elija, sé que el uso de tantas condicionales IF anidadas no es la mejor desición pero como dije al principio se poco de programación en VS2010 y por eso no serán los códigos más optimizados, asi que espero sepan disculparme.
No es mas por el momento, adjunto el archivo para descarga:
Enlade de Descarga (VS2010):

Las imágenes de este trabajo no son mias y pertenecen a cada uno de sus autores intelectuales.
Describamos como se hizo en términos generales (Python 3.4 y Tkinter):
Para hacer el mismo programa pero en Python he usado la libreria que viene por defecto en PYTHON 3.4, la cual es Tkinter, cuando comencé a estructurar la forma de la ventana me encontré con varias limitaciones las cuales voy a ir nombrando paso a paso.
- El tamaño de las imágenes: me ha quedado claro que en tkinter no es tan fácil como en visual studio el redimensionar una imagen para que quede dentro de un tamaño fijo en la ventana de presentación, asi que usando la libreria PIL la cual se descarga e instala aparte de python, se requirió redimensionar las imagenes a un tamaño de 480X400 pixeles para que la ventana en tkinter no quedara tan grande o se perdiera la imagen debido a su tamaño, recordemos que son imagenes destinadas a fondo de escritorio por lo cual el tamaño de ellas variaba entre 1920X1080 ó 1600X1200 asi que con el script que generé con PIL las pude re-acomodar a un tamaño menor.
- Los timers en tkinter: esta parte fue una de las más dificiles, si observan entre el programa hecho en VS2010 y Python a este último solo pude activar el timer del "led" que enciende y apaga cada 2 segundos aproximadamente, para poder hacer una presentación de las imágenes con el botón de inicio de presentación creo que tkinter no es una buena opción para esto ya que se complica bastante el poder generar el código que a su vez funcione con los botones de adelantar y retroceder.
Creo que es todo por el momento, revisaré otras librerías GUI para python a ver cual se acomoda más a lo que se desea realizar de aqui en adelante, he pensado en pyQT pero me detiene el problema de licenciamiento, tendré que esperar a ver como evoluciono en la programación en estos lenguajes.
Enlade de Descarga (Python):

Las imágenes de este trabajo no son mias y pertenecen a cada uno de sus autores intelectuales.
Creo que se podria optimizar aún más los códigos de los programas pero esta bien para comenzar.
Actualización 23/9/15
Despues de trabajar y de investigar un poco sobre timers en Tk, he podido al fin implementar una función que tenga un timer y pueda comenzar y detener el mismo cuando yo quiera, el link de descarga ya ha sido actualizado, invito a que le den una revisada y si se puede optimizar el código gracias por avisarme y orientarme si saben como.
Comments