Micro800 Comunicaciones ASCII (Luismi Ronco)

logo_dominios_apaisados1


A continuación vamos a ver, como enviar tramas ASCII con programación en ladder en un Micro800.

En este ejemplo de comunicación enviaremos la trama $02FNOS0001$0D,
De forma resumida, vamos a programar 3 bloques de funciones:
  • ABL: La función de este FB es contar los caracteres que hay en el buffer.
  • ACL: Este bloque limpia el buffer tanto de escritura como de lectura. (Se puede seleccionar uno de los dos Rx o Tx si se quiere).
  • AWA: Es el encargado de enviar la trama que le configuremos.
1. Añadimos el Function Block “ABL“ , este bloque cuenta los caracteres en el buffer.
2. Haciendo doble click en el bloque ABLInput (el bloque pequeño que contiene un triángulo Amarillo en el lado izquierdo del FB ABL_1) nos abre la pantalla de Configuración de Variables.
3. Creamos una nueva variable llamada ABL_Input y como tipo de dato ABLACB.
1
4. Expandimos la nueva variable (ABL_Input) para mostrar las sub-variables configurables.
5. En este caso vamos a utilizar el puerto embebido del que dispone el Micro 850, aunque existen más posibilidades.
2
Para ello hay que seleccionar el puerto escribiendo el número 2 en la sub-variable ABL_Input.Channel.
3

6. Ahora pasamos a configurar el puerto embebido del que dispone, en este caso, el Micro 850. Deberemos seleccionar como Driver: ASCII, el Baud Rate: 9600 (Este debe coincidir, y si no es así configurarlo, con el establecido en el dispositivo al que le enviaremos la trama), y Parity: None4

7. Pasamos a configurar las opciones avanzadas, para ello debemos dejar la configuración como la siguiente pantalla, a excepción de los siguientes parámetros:

  • Append Char: 0xFF; 0xFF
  • Term Char:          0xFF; 0xFF
5

8. Después usaremos el bloque de funciones ACL, el cual se encarga de borrar el buffer tanto de datos de lectura como de escritura.

9. Añadimos el Instruction Block ACL en una nueva línea.

Creamos una nueva variable llamada ACL_Input, como tipo de dato le configuramos ACLI. Esta variable se la asignaremos a la entrada ACLInput del FB ACL_1.

En la configuración de esta variable también deberemos indicar el canal por el cuál nos estamos comunicando, al igual que antes en la sub-Variable ACL_Input.Channel deberemos escribir el número 2. La otras dos sub-variables se utilizan para borrar el RXBuffer y/o TXBuffer, por defecto están con el valor TRUE.

6

10. Ahora usaremos el FB AWA, el cuál ordena escribir la cadena de caracteres que le configuremos. La instrucción AWA envía un número específico de caracteres indicados los cuales los definiremos en la entrada CHAR_SOURCE de este bloque.

11. Añadimos una tercera línea en nuestro programa y añadimos la instrucción AWA. Para este bloque, crearemos dos variables que definiremos, una del tipo AWAAWT y la otra tipo ASCIILOCADDR. Para este ejemplo crearemos las variables:

  • AWA_Input          Type: AWAAWT
  • CHAR_SOURCE Type: ASCIILOCADDR

12. Después de crear las variables pasamos a configurar las sub-variables. En primer lugar atacaremos a las su-variables de AWA_Input.

Expandimos la variable AWA_Input y nos encontramos con las siguientes sub-variables:

  • Channel: Indicamos con un 2, el puerto embebido de comunicación.
  • Lenght: Deberemos indicar la longitud de la trama que vamos a enviar. En nuestro caso se trata de 10 caracteres $02FNOS0001$0D, aunque parece que hay 14 caracteres, los marcados en azul están escritos en Hexadecimal. Posteriormente explicaremos que significa y como configurarlo.

8

13. Expandimos la variable CHAR_SOURCE, aquí podemos observar que se abren 82 posiciones, esto significa que podemos escribir hasta una trama con 82 caracteres.

14. En columna Initial Value vamos escribiendo en Decimal los caracteres que corresponden a la trama que queremos enviar.

En nuestro caso sería la siguiente:

9
Los valores en la columna Initial Value corresponden en Decimal a los caracteres que vamos a enviar en la trama.
El valor $02 en Hexadecimal corresponde a la orden “Nueva línea de texto (STX)”
El valor $0D en Hexadecimal corresponde a la orden “Retorno de carro (CR)”.

15. Nuestro programa debería quedar de la siguiente manera (Los contactos añadidos son contactos “NO” para controlar cuando queremos activar los FB.):

10

16. Una vez hecha la programación descargamos el programa en el controlador Micro800, lo ponemos en RUN y nos mantenemos Online para visualizar el comportamiento del programa.

17. Estando online veremos la siguiente pantalla:

1118. Activamos el bloque ABL_1, éste paso puede evitarse pero puede ser conveniente en algunos casos saber si tenemos caracteres en el buffer antes de borrarlo.
1219. Procedemos a activar los bloques. Activamos el bloque ACL_1 para borrar el buffer.
13

20. Por último activamos el bloque AWA_1 para enviar la trama que hemos configurado.

14

21. Una vez que el Micro800 ha enviado la trama podemos observar cómo cambia el display del marcador, indicando el programa que el Micro850 le ha ordenado que cargue para marcar.

Saludos.

luismi

Luis Miguel Ronco Sánchez
Ingeniero Técnico Industrial
lmroncosanchez@gmail.com
https://es.linkedin.com/in/luis-miguel-ronco-sánchez-70955b82

6 thoughts on “Micro800 Comunicaciones ASCII (Luismi Ronco)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *