E/S Por pulsos (SOLO IS2000)
Requisitos de software
Para poder realizar cambios de trabajo en cámaras IS2000, se debe disponer de las siguientes características:
1.- Versión de Insight 5.2.3 (39) o superior.
2.- Firmware cámara 5.02.03 PR1 (042) o superior.
Actualización de firmware
En caso de no tener la versión 5.02.03 PR1 o superior, se habrá que seguir el siguiente procedimiento:
Entrar con usuario Administrador.
Se necessitan los ficheros is2000.pkg y is2000.upd descargables desde: http://www.cognex.com/support/downloads/File.aspx?d=3163 o desde medio extraíble.
Salir de todas las instancias abiertas de In-Sight Explorer (ISE).
Localizar el directorio de tu firmware 5.2.3. La localización por defecto es: C:\ProgramData\Cognex\Firmware\In-Sight\5.2.3
Hacer un backup de los ficheros is2000.pkg y is2000.upd del directorio firmware 5.2.3.
Copiar los nuevos ficheros is2000.pkg y is2000.upd en el directorio firmware 5.2.3.
Verificar que la copia se ha realizado correctamente. Se puede comprobar verificando el tamaño de fichero y fecha.
Iniciar el In-Sight Explorer y seleccionar “System” y “Firmware Update”.
Encontrar la lista de modelos IS2000 y verificar que en la columna “New Version” aparezca “5.2.3 PR1 (xxx)”.
Realizar un Upgrade de los sensores deseados normalmente.
Verificar que se haya realizado correctamente el Upgrade haciendo click-derecho en los sensores que aparecen en la red “In-Sight Network” y seleccionar “Properties”. La versión debe coincidir con la que aparece en el paso 9.
Configuración de la cámara
Para realizar el cambio de JOB, se debe de configurar la única entrada discreta de la cámara (IN0), como “Cambio de Tarea (mediante pulso)” y “margen de aumento” (flanco ascendente).
Poner la salida HS0 a “Carga de tarea satisfactoria”.
Cambio de tarea
Para que el cambio de tarea sea posible, el nombre de esta debe comenzar por un número. Ejemplo:
Job 1 → 1-PrimeraTarea.job
Job 2 → 2-SegundaTarea.job
El cambio de tarea se realiza enviando un tren de pulsos por la entrada digital de la cámara de la siguiente manera:
20ms a 24V
10ms a 0V
Tren de N pulsos de 10ms (10ms a 24V y luego 10ms a 0V) donde N es el número de tarea.
20ms a 24V.
Fija a 0V.
Es posible cambiar todos los parámetros del tren de pulsos si algún PLC no es capaz de cumplir estos tiempos.
Cambiar timings del cambio de job mediante tren de pulsos
En la ayuda del In-Sight 5.2.3, buscando “PulseJobChangeTiming” se obtiene la siguiente información:
Para hacer el cambio hay que conectarse por telnet a la cámara y enviar el comando con los parámetros requeridos.
Realizar connexión mediante Telnet para modificar timings
Primero dentro del IS explorer se debe conectar a la cámara y en Sensor->Ajustes de red verificar que el puerto para comunicar por telnet es el 23 (por defecto).
Se desconecta de la cámara en IS explorer.
Abrir el programa Hércules y dirigirse a la pestaña TCP client, allí se indica la dirección IP de la cámara y el puerto 23.
A continuación hacer clic en Connect, aparecerá un mensaje de bienvenida y requerirá usuario ( por defecto admin). Cada secuencia enviada deberá terminar con los caracteres <CR><LF>.
Escribir la secuencia abajo y hacer clic en SEND.
Por defecto no hay contraseña por lo que enviamos simplemente <CR><LF>.
A continuación enviamos la sentencia que se indica en apartados anteriores para el cambio de timings.
Para comprobar que el cambio se ha realizado, consultar los timings actuales.
Enviar el comando: EV (“PulseJobChangeTiming”) <CR><LF>
Se puede ver que se han cargado los cambios satisfactoriamente a la cámara.
Actualmente el pulso de comienzo de carga es de 15000ms.
El de final de carga de 15000ms.
El que determina el número de tarea de 10000 ms.
El espacio de tiempo entre los pulsos de número de tarea es de 1000ms.
La tolerancia aceptada para los anchos de pulso mencionados es de 100ms.
Los pulsos de start/stop deben ser diferentes de los que definen el número de tarea para evitar confusión.
Ejemplo de programa para PLC Schneider M241
CASE iStepPulseTrain OF
0:
iAuxProgram:= 0;
IF i_xExecute THEN
iStepPulseTrain:=10;
END_IF
10:
IF TON_20ms.Q THEN
iStepPulseTrain:=20;
END_IF
20:
IF TON_10ms_Off.Q THEN
iStepPulseTrain:=30;
END_IF
30:
IF TON_10ms.Q THEN
iAuxProgram:=iAuxProgram + 1;
IF iAuxProgram >= i_iNumProgram THEN
iStepPulseTrain:=50;
i_xExecute:=FALSE;
ELSE
iStepPulseTrain:=40;
END_IF
END_IF
40:
IF TON_10ms_Off.Q THEN
iStepPulseTrain:=30;
END_IF
50:
IF TON_10ms_Off.Q THEN
iStepPulseTrain:=51;
END_IF
51:
IF TON_20ms.Q THEN
iStepPulseTrain:=100;
END_IF
100:
IF NOT i_xExecute THEN
iStepPulseTrain:=0;
END_IF
END_CASE
o_xPulseTrain:=iStepPulseTrain=10 OR iStepPulseTrain=30 OR iStepPulseTrain=51;
TON_20ms(IN:=(iStepPulseTrain=10 OR iStepPulseTrain=51),PT:=T#19MS);
TON_10ms(IN:=(iStepPulseTrain=30),PT:=T#09MS);
TON_10ms_Off(IN:=(iStepPulseTrain=40 OR iStepPulseTrain=50 OR iStepPulseTrain=20),PT:=T#09MS);