Se trata del llamado Mando Bimanual, el cual
consta obligatoriamente de 2 botones, los cuales
tienen que ser presionados por el operario para
que un proceso se realice.
Para que el mando bimanual cumpla con su tarea
de ser un mecanismo de seguridad, el operador
tiene que presionar los 2 botones al mismo tiempo,
ó con una diferencia entre botón
y botón de máximo 1 segundo.
Una vez presionados ambos botones se contará
con la validación del proceso, el aspecto
de la seguridad para el operador está en
la acción de presionar ambos botones, ya
que tiene que utilizar sus 2 manos para tal efecto,
obligándolo a tener sus brazos fuera del
área que puede resultar peligrosa.
Idealmente los botones deben ser presionados
al mismo tiempo, pero por razones físicas
de las personas, no tenemos los brazos exactamente
iguales, motivo por el cual debemos de tomar en
cuenta que puede existir una pequeña diferencia
de tiempo en que los 2 botones sean presionados
en el mismo instante, este tiempo no debe ser
mayor a 1 segundo, porque en caso contrario ya
no sería un mecanismo seguro para el operador,
ya que puede ingresar una de sus manos al área
de peligro.
Mientras los 2 botones estén presionados
el proceso estará activado, y cuando el
operador suelte 1 ó los 2 botones el proceso
se detendrá, para que en todo momento se
cumpla con la condición de seguridad y
los 2 brazos del operador se encuentren resguardados.
En la figura 2 vemos un ejemplo de aplicación
del mando bimanual.
Este modo de operar lo podemos programar en nuestro
PLC-PICAXE18A, por lo que tenemos que emplear
aparte de las terminales de entrada para los botones,
un temporizador que es el encargado de fijar el
tiempo de 1 segundo. En esta ocasión el
programa que desarrollaremos no tendrá
ningún reflejo hacia las terminales de
salida de nuestro PLC, pero el resultado lo dejaremos
en un registro interno, para que dependiendo de
la aplicación de ahí se recupere
el estado del mando bimanual, y pueda emplearse
en cualquier aplicación.
De acuerdo a la descripción de la función
que realiza el mando bimanual, éste puede
emplearse para activar por ejemplo un troquel,
una estampadora, una cortadora, un taladro de
banco, etc. Cualquier proceso industrial en el
que un operador tiene que alimentar manualmente
la materia prima que tendrá que procesarse,
y por lo tanto es donde se requiere del elemento
de seguridad. Ya que tenemos conocimiento de que
es un mando bimanual, procedamos a explicar cómo
programar nuestro PLC-PICAXE18A.
Recordando que nos basaremos en el diagrama en
escalera correspondiente, el cual nuevamente indicamos
no explicamos cómo obtenerlo, y para ello
pueden buscar el material correspondiente a la
programación de PLC que también
han sido publicados en Saber Electrónica,
por lo que los invitamos a que visiten nuestra
página de internet www.webelectronica.com.ar
y en la sección de password con la clave
“progplc” podrán acceder a
un curso de programación de PLC y a un
programa con simulador para el PLC que empleamos
en Saber Electrónica.
Una vez realizada la aclaración anterior
vamos a ir mostrando el diagrama en escalera escalón
por escalón y su conversión a la
forma de programar el microcontrolador PICAXE
de nuestro PLC-PICAXE18A. Esto lo tenemos que
realizar así porque nuevamente volvemos
a explicar que por el momento nuestro PLC no cuenta
con la programación con el lenguaje escalera,
pero sí lo podemos programar tal como se
hace con los microcontroladores PICAXE, por lo
que emplearemos el programa “Programming
Editor” del PICAXE.
En la figura 3 se muestra el primer escalón
del lenguaje en escalera del programa para implementar
el mando bimanual, en esta parte se activa un
temporizador mediante la acción del botón
1 (E0) ó el botón 2 (E1). En esta
parte es en donde se contabiliza el tiempo que
transcurre entre el accionamiento de los botones,
y una vez transcurrido el tiempo fijado en el
temporizador (1 segundo), se detiene éste
enviando una indicación a través
de un registro interno, y así se mantendrá
hasta que se suelten los 2 botones.
En la figura 4 se muestra el diagrama de flujo
para programar al microcontrolador PICAXE, en
el se ilustran las dos condiciones que toman la
lectura correspondiente a las entradas 0 y 1 del
PLC, ambas condiciones preguntan por el estado
lógico de las entradas involucradas, que
de acuerdo al escalón 1 de lenguaje en
escalera con cualquiera de las 2 entradas ó
inclusive las 2 entradas (0 y 1) es motivo de
activar al temporizador, que en el microcontrolador
PICAXE, se habilitará por medio de una
subrutina “sub0”, en caso de que ninguna
de las entradas sea activada, se procederá
a restablecer al temporizador a su valor inicial
y guardar un “0 lógico” en
la localidad correspondiente al registro del temporizador
en cuestión, que en este caso se trata
del temporizador 0 (temp0) de acuerdo a lo que
se observa en la tabla 1.
En el registro del microcontrolador PICAXE b5
guardamos el estado en que se encuentren los temporizadores
que podemos implementar en nuestro PLC-PICAXE18A,
y dependiendo de qué bit queremos manipular,
se tratará del temporizador que estemos
habilitando, que en este ejemplo se trata del
Temp0; por lo tanto tenemos que guardar un “1
lógico” si el temporizador llegó
a su conteo máximo, o un “0 lógico”
si el temporizador no ha terminado de contar o
se encuentra inactivo.
Para los microcontroladores PICAXE existen 2
rutinas de tiempo que bien podrían utilizarse,
pero el microcontrolador se estaciona sobre estas
rutinas y hasta que se consuma el tiempo es cuando
el microcontrolador se ocuparía de otras
actividades, y ése no es el asunto, ya
que mientras se consume el tiempo el microcontrolador
debe revisar si el segundo botón es accionado,
razón por la cual se emplea la subrutina
“sub0”, que se ilustra en la figura
5.
Dentro de la subrutina sub0 se tiene el comando
“pause 1”, que genera un retardo de
1 mseg, el cual se tiene que repetir 1000 veces
para generar una temporización de 1 segundo,
que es el tiempo que le vamos a fijar a la aplicación
del mando bimanual. Para realizar el conteo de
las 1000 veces tenemos que emplear 2 registros
del microcontrolador PICAXE porque como son de
8 bits, se tiene un conteo máximo de 256
eventos por cada registro, por ello es que fijamos
el conteo del registro b3 hasta 250, y el del
registro b4 hasta 4, porque así se repetirá
4 veces el conteo de 250, lo que equivale a multiplicar
250 por 4 dando un total de 1000 eventos. Lo que
es importante es que durante el proceso del conteo
el registro b3 no vuelva a comenzar de 0, sino
de 1, ya que el 0 contaría como un evento,
y equivaldría a multiplicar 251 por 4 dando
un total de 1004 eventos. Cuando se alcanza el
conteo de los 1000 eventos, se activa la bandera
que indica que el contador Temp0 ha llegado a
su valor máximo de conteo, por lo tanto
colocamos un “1 lógico” en
el bit 0 del registro b5 del microcontrolador,
para ello realizamos la operación lógica
“let b5 = b5 | 1, para sólo manipular
el bit 0.
Cuando se llega al conteo máximo y a pesar
de que en cada barrido que de las instrucciones
se realiza, ya no se pasará por la rutina
de retardo por lo que no se consumirá más
tiempo que el que tarden en ejecutarse las instrucciones.
Esta subrutina se implementó de esta manera
para que mientras se lleva a cabo el conteo, se
tenga la posibilidad de realizar más tareas
de manera paralela. Para finalizar con la explicación
de esta rutina de tiempo, en la figura 4 se observa
que cuando no se activa ninguna de las entradas
ya sea la 0 ó 1, el registro b3 se inicializa
en 0 mientras que el registro b4 se inicializa
en 1, la razón de esto es por el hecho
de no incluir el 0 en el conteo.
En la figura 6 se muestra el fragmento correspondiente
al escalón del programa en lenguaje escalera,
en esta parte se validan las condiciones que activan
al mando bimanual, por lo que deben de estar presionados
los 2 botones, además de que el tiempo
fijado en el temporizador no se haya consumado
aun. Si alguna condición no se cumple no
será posible que se active el mando bimanual.
Las condiciones del escalón 2 se representan
mediante los comandos para microcontroladores
PICAXE tal como se ilustra en la figura 7, en
la cual por medio de bloques “if”
se pregunta por el estado que guardan las entradas
0 y 1. Si alguna de las entradas se encuentra
en “0 lógico” (botón
no oprimido), no será activado el mando
bimanual, y por lo tanto la tarea o función
que se tiene programada no se desarrollará.
Si las 2 entradas se encuentran en “1 lógico”
(ambos botones oprimidos), se pasará a
revisar el estado que guarda el temporizador,
recordando que si aún no ha terminado su
conteo de tiempo o no se encuentra activado, se
guardará un “0 lógico”
en el bit correspondiente del registro b5 del
microcontrolador PICAXE, pero en caso contrario,
si el tiempo se ha cumplido, entonces se guardará
un “1 lógico” en el bit correspondiente
del registro b5 del microcontrolador PICAXE.
Aquí es importante identificar que si
se presiona sólo un botón, el temporizador
comienza su conteo, y si después de 1 segundo
se presiona el botón faltante, no se validará
la activación del mando bimanual, ya que
se requiere que los dos botones sean presionados
dentro del intervalo de tiempo de 1 segundo para
que se valide la activación del mando bimanual.
En el escalón 2 del lenguaje escalera se
tiene un contacto normalmente cerrado para verificar
que el temporizador aún esta realizando
el conteo de tiempo, y por lo tanto debe mostrar
un “0 lógico” que junto con
los botones oprimidos darán como resultado
la activación del mando bimanual. Nuevamente
de regreso a la figura 7, una vez que se ha verificado
que los botones fueron oprimidos, se tiene que
revisar el estado del temporizador por lo que
del registro b5 del PICAXE tenemos que recuperar
la información del bit correspondiente
al temporizador. Para ello empleamos el comando
“let b0 = b5 & 1”, por medio del
cual se lee todo el registro b5 y se le aplica
una máscara para sólo leer en este
caso el bit 0, y para no modificar el valor del
registro b5, guardamos el resultado en el registro
de trabajo b0 del microcontrolador PICAXE. La
operación queda de acuerdo a como se ilustra
en el ejemplo siguiente: