Manual Progrmacion Opto
Manual Progrmacion Opto
Manual Progrmacion Opto
(PROGRAMACION).
Introducción
A continuación usted leerá una guía de cómo trabajar con el SNAP-PAC-R2. Aquí encontrara
información de cómo configurar los módulos de entradas y salidas, comunicación y configuración
del SNAP-PAC. Recuerde leer detalladamente la guía ya que esta cuenta con información precisa e
imágenes para que su trabajo sea exitoso, así como cumplir con los requerimientos mínimos para
realizar el proceso. En cada página se expondrán los pasos así como los problemas que surgieron y
su solución. Recuerde que si tiene un problema a la hora de realizar la guía y esta no cuenta con la
solución puede dirigirse a los manuales oficiales en este enlace
http://www.opto22.com/site/pr_details.aspx?cid=4&item=SNAP-PAC-R2 o en los manuales
incluidos en el software instalado del Pac Control Basic
PROGRAMACIÓN.
La programación del Snap-Pac-R2 se hace por medio de diagrama de flujo o flujograma. Primero
comencemos manejando bits en el programa. Abra el programa Pac Control Basic siguiendo la
ruta: inicio/todos los programas/opto 22/Pac Project 9.4 /Pac control Basic 9.4
Una vez se nos abra la ventana del programa Pac Control Basic damos clic en file y localicemos el
archivo con el icono del pac control basic lo seleccionamos y damos clic en abrir. Posiblemente
aparezca un error dele aceptar y continue ya que este error es porque faltan archivos que el
programa no sabe dónde está o no los carga automáticamente. Cuando abra la estrategia usted
vera una ventana asi.
Vamos a concentrarnos en los cuadros rojos
A. control engines: aquí se agregaran los controladores, al darle clic derecho sobre el y luego clic
en add nos pedirá un nombre que puede ser cualquiera y la dirección ip que debe ser la misma
a la del controlador a la que desea conectarse teniendo en cuenta si es el puerto Ethernet 1 o 2
ya que estos manejan dominios diferentes.
B. subroutines included: en este van las subrutinas que llevara la estrategia, son aquellas que se
ejecutan en segundo plano de manera paralela. ¿Recuerda el error que aparece al abrir el
archivo descargado desde el pac control? Es por que al abrir la estrategia tiene subrutinas
configuradas pero no las carga por sí mismo. Di observa solo dos tiene el signo más (+) que
fueron las que yo le di doble clic para que las activara y encontrara en la carpeta
descomprimida, Lo que usted debe hacer es dar doble clic sobre todas ella y de esta manera ya
todas quedaran activas.
C. charts: son las cartas de programación las cuales se cran para generar la estrategia de manera
individual o todo en una misma. Esta comienza con la carta powerup. Que puede ser utilizada
para crear toda la estrategia o para dar condiciones iniciales a la programación y que después
de que se cumplan esta llame la o las cartas que desea que se ejecuten a continuación.
D: Numeric variables: para agregar las variables numéricas ya sean de 32 o 64 bits integer o float.
E. Numeric table: agregar tablas para mover conjunto de datos completos por ejemplo todas las
entradas y salidas del controlador.
F. I/O Units: aquí se agregan todo lo que son entradas y salidas análogas y digitales así como
agregar controles PID. En este al dar clic derecho y luego en add pedirá tipo de controlador y
dirección ip de este.
Prueba de Programación.
Para hacer una prueba en programación vamos usar entradas de Opto para activar una salida.
Entonces con el Pac Control abierto nos dirigimos a control engines para agregar los controladores
con su respectiva ip para ello damos clic derecho y seleccionamos add, luego en la ventana
siguiente aparecerán los controladores que ya tengamos previamente agregados. En su caso
aparecerán dos que son los que tiene el archivo descargados ya añadidos. Damos clic en add y en
la ventana que nos abre se deben de colocar un nombre para el controlador que desee y su
dirección ip. Los demás parámetros lo puede dejar como están no hace falta
modificarlo a no ser de que usted quiera asignar otro puerto al controlador.
Después de agregar el nombre y la ip de clic en aceptar luego clic en ok a la ventana set control
engines y en la primer ventana seleccionen el nombre que crearon y de clic en set active y luego
en ok.
Ahora hay que agregar la estrategia hay dos opciones. Una es creándola en la carta powerup o
creando una carta nueva. En este ejemplo vamos a crear una carta nueva y utilizaremos la
powerup para llamarla para que usted aprenda como llamar una estrategia desde otra.
Vamos a chats y damos clic derecho y seleccionamos New y en la ventana nueva colocaremos un
nombre cualquiera, nosotros usaremos prueba. Si quiere puede agregar una descripción
Ahora valla a la carta powerup y de doble clic, cuando abra aparece un rectángulo azul que es el
bloque cero (0) en este se colocan las condiciones iniciales que usted desee colocar en la
estrategia. En la barra de herramientas seleccione el bloque opto script que es el símbolo amarillo
y arrástrelo abajo del bloque inicial y únalos con la herramienta de conexión, abra el opto script y
agrege la línea nChartStatus = StartChart(prueba);quedando como lo muestra la imagen.
Nota: Si usted descargo el archivo rar de la página no tiene que añadir el bloque opto script ya que
este lo tiene, solo debería agregar la línea y este llamara la carta. Pero lo importante es que usted
sepa como agregar los bloque y añadir instrucciones en caso de que desee crear su propia
estrategia.
El opto script tiene en su barra de herramientas una opción test compile. Esta le sirve para revisar
si su comando fue digitado correctamente ya que en caso de que tenga un error este le va mostrar
el error en el cuadro inferior mostrándole la línea y el tipo de error que tenga.
Listo ya configuramos la carta powerup para que inicie la carta prueba, Ahora hay que crear la
estrategia en la carta prueba que utilice entradas y salidas del Opto 22. Primero dar doble clic
sobre la carta prueba y aparecerá con el bloque cero (0) en este ejemplo no agregaremos
condición inicial, Vamos a la barra de herramientas y seleccionamos el bloque de condición
(rombo) que es de color verde y lo arrastramos hasta abajo del bloque cero en este bloque se
agregaran qué condiciones se deben de cumplir para que la acción sea ejecutada en el bloque de
acción (rectángulo) así que aquí agregaremos la entrada(s) que se utilizaran como condición.
Ejemplo: se tienen ocho (8) entradas digitales de las cuales se utilizaran tres (3) para activar la
salida digital cero (0) del controlador. Pero estas deberán de cumplir la siguiente condición: la
salida digital cero (0) podrá ser activada si las entradas digitales cero (0) y uno (1) están activadas
con un uno (1) lógico de manera simultánea o bien puede ser activada si en la entrada dos (2) hay
un uno (1) lógico.
De este ejemplo se puede analizar que tenemos dos operaciones lógicas una AND entre la entrada
0 - 1 y una OR entre la AND y la entrada 2. Ahora Vamos a resolverlo.
Pasamos a dar clic derecho en I/O Units y seleccionamos add y nos mostrara un cuadro en el que
nos pide agragar un nombre el tipo de controlador y la dirección ip que fue assignada a este
después de llenar esos tres campos de clic en OK.
Ya agragado el controlador damos clic derecho en el modulo que creamos y damos clic en
configurar, seleccionamos el controlador y damos clic en I/O Points. La ventana que se abre es
configure I/O points y puede ver que en ella se agregaran todos los modulos de entradas y salidas
análogas y digitales que posea el controlador. Seleccionamos la línea cero damos clic en add y
buscaremos nuestro modulo de entrada digital que es el SNAP-IDC-16 lo seleccionamos y damos
clic en OK y ahora vemos como el símbolo mas (+) esta al lado izquierdo de la línea de entrada, la
desplegamos y procederemos a agregar las entradas que necesitamos o si desea hacerlo de una
vez puede agregar todas las entradas y salidas del Snap Pac. para hacerlo solo de doble clic en la
entrada cero agrege un nombre y asi con cada entrada que necesite
Ahora demos clic en la carta prueba y ya con el bloque de condicion agregado procedemos a
agregar las instrucciones. Damos doble clic en el bloque de condicion y en la ventana que abre
damos clic en Add y en esta ventana colocaremos las instrcciones para que la condición sea
verdadera o falsa. Comencemos con lo que es la operación AND en el cuadro instruction:
seleccionamos la instrucción AND? Y en la parte inferior se habilatara dos cuadros los cuales son
para agregar los puntos de referencia que usted desea usar como dato para la AND que para este
ejemplo es la entrada digital 0 y 1. Para terminar de clic en OK y ahora vera como instrucción
quedara agregada en el bloque, ahora queda por agregar la OR que su procedimiento es igual al
anterior. De clic en Add y escriba la instrucción ON? Y en la parte inferior seleccione la entrada
digital 2 y de OK Cuando de clic volverá a la ventana principal del bloque y ya vera las dos
instrucciones agregadas antes de dar Closse verifique que en la parte derecha este seleccionada la
lógica OR ya que si la deja en AND la salida se activara solo se cumplen las dos instrucciones.
Ahora debemos agregar dos bloques de acción uno para cuando la condición es verdadera y otra
para cuando la condición sea falsa. El que escojamos como verdadero colocamos la instrucción
Turn on? Y seleccionamos la salida digital 0 que es la que se desea activar, y en el bloque que va a
ser falsa seleccionamos la instrucción Turn off? Y seleccionamos la salida digital 0. esto se hace ya
que si solo colocamos el bloque de acción para la condición verdadera en caso de que la estrategia
sea de ciclo infinito o vuelva a llamarse la carta en el primer ciclo si la condición es verdadera el
activara la salida 0 pero si en el segundo ciclo no se cumple y solo lo ponemos a retornar la salida
igual seguirá activa por que no se da la acción de que desactive la salida, en cambio si colocamos la
acción turn off en el bloque cuando la condición sea falsa este desactivara la salida y esperara a
que la condición sea verdadera de nuevo.
Nota: La línea que une los bloques no puede ser unidas entre ellas cada línea debe de ir conectada
directamente desde un bloque a otro y en orden de acción. En la siguiente imagen vera los
cuadros del bloque para la condición verdadera y el bloque para la condición falsa abiertos al
mismo tiempo, Esto el software Pac Control Basic no lo permite esto es una imagen editada para
fines de guiarlo en un proceso más fácil para usted.
Una vez terminado procedemos a cargar el programa dando clic en Debug y damos aceptar a los
cuandros que nos aparezcan. una vez termine de cargar el proceso la estrategia quedara en stop
debemos dar clic en Run para que esta inicie y comience a ejecutar las condiciones para que esta
funcione.
Nota: Si no carga la estrategia esto puede ocurrir si tiene un error en cuanto a programación o la
dirección ip en los modulos o en control engines. Revise el cable de comunicación entre el opto y
su equipo, pruebe haciendo un test de ping abriendo el simbolo del sistema oprimiendo la teclas
Windows + R al mismo tiempo escriba cmd presione enter y en la cosola escriba ‘’ ping
xxx.xxx.xxx.xxx ’’ (las x representan la dirección ip que decidio colocarle al controlador).
Mover Datos de un Controlador a Otro
Para mover datos de un controlador a otro se utilizan los comandos Get I/O Unit Scratch Pad Bits
y Set I/O Unit Scratch Pad Bits From MOMO Mask. es usado para leer o escribir la memoria
mapeada scratch pad de un controlador a otro, la instrccion Set es para escribir datos en la
memoria scratch del mismo controlador y pueda ser leida y la instrucción get es para traerse los
datos de la memoria scratch pad de otro controlador. En conclusión si tenemos el Snap_A y
queremos mover datos al Snap_B al A le colocaremos la instruccion Set y al B la instrucción Get.
Ejemplo: vamos a crear una estrategia que al activar la entrada DI0 del controlador A mande un 1
al controlador B.
Primero verificamos que los dos controladores estén bien configurados la dirección ip mirando
que pertenezcan al mismo dominio pero diferente dirección. Como cada uno tiene dos puertos
Ethernet el puerto Ethernet 2 se utilizara para comunicarlos entre si y el puerto Ethernet 1 de
cualquiera de los dos lo utilizaremos para conectarlo al equipo con el software Control Pac Basic.
Entonces como guia usted puede configurar el equipo asi:
Controlador 1: Ethernet 1: 192.168.0.xxx
Ethernet 2: 192.168.1.xxx
Controlador 2: Ethernet 1: 192.168.0.xxx
Ethernet 2: 192.168.1.xxx
Equipo : Ethernet : 192.168.0.xxx
Nota: En las xxx puede asignar cualquier numero pero no puede ser usado en dos equipos a la vez.
Ahora debemos seleccionar cual va a enviar y cuál va a recibir en este caso el controlador 1
enviara y el 2 recibirá. Abrimos dos veces el programa al controlador 1 lo llamaremos Snap_A y el
2 Snap_B. Agregaremos el nombre y la dirección ip que asignaremos a los controladores en
control engines,
Priemro en el Snap_A Para mover datos crearemos una variable ya sea entero o flotante dando clic
derecho sobre numeric variables seleccionamos add y colocamos un nombre y seleccionamos el
tipo de dato que se va a manejar en este caso integer 32. Ahora creamos una carta que en este
ejemplo se llamara Mov_Data pero usted puede colocar el que desee y la llamaremos desde
powerup , volvemos a la carta Mov_Data y agregamos un bloque de condición y uno de acción, en
el bloque cero no colocamos ninguna instrucción, en el bloque de condición colocamos la
instrucción ON? con la entrada digital 0 y en el bloque de acción colocamos la instrccion Set I/O
Unit Scratch Pad Bits From MOMO Mask y nos habilitara unos campos como se muestra en la
siguiente imagen.
I/O Unit: la memoria scratch es donde se escriben los datos para que otro controlador los tome,
como la unidad A es la que enviara los datos seleccionamos el Snap_A
Must On Mask: nos permite determinar que bits van a ser activados es decir si colocamos un dato
decimal 3 que en binario seria 11 el bit 0 y 1 seran activados
Must Off Mask: nos permite determinar que bits van a ser desactivados es decir si colocamos un
dato decimal 4 que en binario seria 100 estariamos diciendo que el bit 2 sera desactivado
Put Status In: variable
creada para mirar el
código de error en el
comando
Después de llenar los
campos debe de quedar
algo asi como lo muestra la
siguiente imagen.
Como puede ver en el bloque 2 se coloca la acción cuando la condición es verdadera la cual
permite que en la memoria scratch se escriba un 1 y cuando la condición es falsa en el bloque 6 se
retorna a 0. Unimos con la herramienta de conexión y cargamos la estrategia en el controlador A.
Lo que vamos a hacer es que por medio del comando Move todos los datos de entradas y salidas
iran a una tabla que crearemos y con un comando set enviaremos los datos de la tabal a la
memoria scratch pad del mismo Snap_A para que el controlador 2 (Snap_B) pueda traerse los
datos por medio del comando Get y usar los datos de llegada deacuerdo a la necesidad en la
estrategia y viceversa.
En From I/O Unit seleccionamos el controlador 1 (Snap_A) ya que necesitamos que los datos de
entradas y salidas de este mismo pasen a una tabla. En To Table seleccionamos la tabla a donde
iran los datos en este caso será FLOAT_TABLE_SNAP_A pero usted puede usar cualquier nombre
que lo ayude a identificarla fácilmente y en Points per Module se seleccionara el numero de
puntos que pueda poseer cada modulo del controlador. Damos clic en ok.
Ahora agregamos el comando Set I/O Unit Scratch Pad Float Table y llenamos los campos como se
ven acontinuacion. Recuerde que el comando Set I/O Unit Scratch Pad Float Table es el que
escribe en la propia memoria del controlador
Y por ultimo el Get I/O Unit Scratch Pad Fload Table que va a ser el comando que se encargue de
traer los datos desde el controlador 2 (Snap_B).
Después de agregar los comandos debe de quedar como se muestra en la siguiente imagen.
Nota: Recuerde que las variables y las tablas pueden ser creadas desde numeric variables y
numeric tables dando clic derecho y luego en add, el largo de la tabla se refiere al numero de
datos que manejara, o bien cuando este agregando el comando al no tener la tabla o la variable
creadas este le indicara y le permitirá crearla desde el comando.
Ahora con el controlador 2 hacemos lo mismo pero además agregaremos un bloque opto script
para crear una estrategia usando los datos que llegaran desde el otro controlador. Para ello
daremos doble clic en el opto script y usaremos las instrucciónes If, Then y Endif agregándoles el
direccionamiento de la tabla y hacia el bit que quiero ir como se muestra en el siguiente ejemplo
Como puede ver en la imagen la salida del controlador 1 es activado por una entrada en el
controlador 2.