Tengo un documento colgado en este enlace que indica cómo conectar Vijeo Citect con iPhone.
www.aquiro.weebly.com
Archive for the ‘ Comunicación ’ Category
Nota nueva referida a una pregunta de un compañero en relación con el tiempo de refresco de las variables en Vijeo Citect. He ordenado un poco los comentarios e indagado algo acerca del tema.
La cuestión era cómo cambiar el tiempo de refresco de las variables.
Por defecto, las variables de la tabla VARIABLE.DBF, no comunican. La comunicación dependerá del lugar donde se halle la llamada a esta variable.
Alarmas
En el caso de las alarmas, el tiempo de refresco del sistema de alarmas afectará a la CPU. Debe ajustarse a las necesidades del proceso para no perder alarmas y no sobrecargar la CPU innecesariamente.
Páginas
Dentro de una página, dependiendo del tiempo de refresco de ésta. Se puede definir un tiempo general para todas las páginas en la última ventana del Asistente de configuración del Computador.
Por defecto se refresca cada 250 milisegundos y afecta a todas las páginas. Se trata del parámetro: Tiempo de búsqueda de página (traducido: ciclo de scan de la página)
Es posible configurar tiempos de refresco diferentes para cada página. Con el botón derecho del ratón en una página, se abren sus propiedades. El parámetro: Tiempo de búsqueda permitirá cambiar el tiempo de refresco de esa página en particular.
Tendencias
Dependerá del tiempo de muestreo definido para la variable de tendencia.
En la figura aparece una gráfica con una señal muestreada cada 0.2s y una visualización directa en página cada 3s. El valor de la variable se actualizará en la página cada 3s, pero su valor real será el de la tendencia (ésta “irá por delante”)
Controlador
Se pueden tocar más cosas para el tema de refresco, como el controlador. En este caso la pregunta iba con MODNET (Modbus sobre Ethernet) y se refería a cambiar el tiempo de polling al dispositivo. Se puede hacer peeeeeeeero…..
MODNET.Delay es un parámetro que aplica un tiempo de espera entre la contestación del dispositivo y la siguiente petición que se le envía al mismo. Todos los dispositivos que utilicen este controlador tendrán el mismo retardo.
Esto quiere decir que si estamos trasteando con históricos, nos podemos encontrar con algo como lo siguiente (Retardo de 5s):
Y a lo mejor no interesa…
Creo que no está de más señalar algunas que otras cosillas que, aunque bastante sencillas, puede ahorrar bastante trabajo. Por ejemplo la conexión al simulador de Unity si estamos trabajando con estos PLC.
La configuración es muy simple, tenemos que partir de que si trabajamos con el simulador de PLC, estaremos trabajando en modo local y, por tanto, nos conectaremos al autómata simulado y no al del proyecto que se simula (Mandeeee! qué cosas dice abuela!).
Por ejemplo, si tenemos un proyecto Unity con un autómata (cualquiera), con comunicación ethernet, el autómata físico tendrá una IP física (por ejemplo: 100.100.100.100). Peeeero, si lo simulamos, el autómata simulado tendrá la IP del simulador, que no es otra que la del nodo local, que siempre será: 127.0.0.1.
Resumiendo, tengo Unity y Vijeo Citect en el mismo PC y me pongo a simular mi fastuoso proyecto de autómata, la IP del simulador será siempre la misma: 127.0.0.1
Ahora nos vamos al Vijeo Citect…
Crearemos un dispositivo con el asistente de comunicaciones.
El dispositivo tendrá su etiqueta…
El protocolo será TCP/IP, la dirección será la del nodo local y el puerto el 502.
Terminada la configuración, las variables que defina para este dispositivo (IODev1) se dirigirán al programa de autómata que estaremos simulando.
Ale, yastá…
Para sacar un resumen de datos del tipo informe,reporte,resumen….
Lo primero es tener un formulario que se rellena con los valores de turno (Report), y esos valores aparecen después en forma de informe en un archivo:
El formulario es una plantilla de texto limpio (por ejemplo, Wordpad) que se guardará en el directorio del proyecto en formato rtf.
Necesitamos un dispositivo de salida (device)
El dispositivo de salida recibirá datos del generador de informes y éste hará servir la plantilla para sustituir valores (Report format file):
Solo queda ejecutar el informe, por ejemplo con un botón que ejecute: Report(“Control_informes”)
No olvidemos que debe existir un servidor de informes!!!
Al igual que en el caso de los dispositivos internos, aquí se seguirán los mismos pasos, pero seleccionaremos el protocolo del plc con el que queramos comunicar.
Dentro de una “carpeta” servidor, crearemos otro dispositivo E/S para configurar el enlace con el plc.
Ese dispositivo tendrá un nombre (NO puede ser el mismo que el servidor o ya os podéis ir a tomar algo…), será de tipo Externo (eeeevidentemente) y luego se le asignará el protocolo.
Con Ethernet y Schneider (Telemecanique) tiraremos por Modbus/TCP a una IP determinada (la del PLC) y SIEMPRE por el puerto 502 (es el de fabricante)
Esta nota indica cómo se configura un acceso a una variable de tipo array con VCitect
Si en un Plc queremos leer-escribir un paquete de variables (Array), por ejemplo, de %MW100 a %MW104. Desde Vijeo Citect, la variable de acceso sería:
Para llamar a cada elemento:
CONSIGNAS[x] x=1…4 corresponderá %mw100….%mw104
NOTA:
Gracias a la indicación de un compañero he corregido un detalle del array que estaba mal.
CONSIGNAS[5] sería para MW100 a MW104. Lo probé con la utilidad del Tag Debug y no me fijé en el detalle de que esta utilidad coge la base del array (MW100) y el offset que le pongamos, por ejemplo CONSIGNAS[8], y no da problemas. No es así cuando trabajamos desde la página de la aplicación, que daría un error.











