Comunicación con software catman a través de FTP Comunicación con software catman a través de FTP | HBM

Aplicación CODESYS: comunicación catman-PMX

Estas instrucciones describen cómo crear una aplicación CODESYS para PMX. Se da por supuesto que el usuario tiene conocimientos básicos de CODESYS. Los usuarios avanzados pueden adoptar otros planteamientos. Para más información se pueden consultar los ejemplos incluidos de forma predeterminada en la instalación del paquete de PMX, o utilizar la ayuda en línea del paquete.

Los archivos necesarios se encuentran en el CD “PMX CODESYS” que se suministra con los equipos PMX que contienen CODESYS; también pueden descargarse de la página de soporte de hbm.com.

En este ejemplo concreto, PMX se utiliza como servidor TCP/IP, y se crea una comunicación con catman AP, de HBM.

catman AP permite asignar canales de CPU mediante comandos personalizados; por ejemplo, para modificar puntos de consigna en PID o similares. De este modo, se pueden crear sistemas de control automatizado sencillos mediante PMX.

La funcionalidad básica del servidor TCP/IP de PMX se explica en los consejos de utilización correspondientes de HBM. Las manipulaciones en los strings de este ejemplo se han llevado a cabo utilizando las librerías OSCAT suministradas (www.oscat.de). En lo que respecta a PMX, el ejemplo afecta fundamentalmente al servidor TCP/IP y a la interfaz con la CPU. Las funciones de comunicación en el PC se implementan por medio de los scripts de catman Easy.

Extracción del paquete CODESYS

Abrir el entorno de desarrollo.
Ejecute el software CODESYS como administrador.

Extracción del paquete

Conexión a PMX

Añadir gateway

Haga doble clic en “Device (CODESYS Control HBM PMX V3)” y después pulse “Add gateway…” en el margen derecho. Mantenga los ajustes por defecto y confirme pulsando “OK”.

Integrar PMX

La función “Scan network” debe detectar automáticamente el PMX. Para activar el equipo, haga doble clic en él.

Cómo interpreta PMX comandos procedentes de CODESYS

El servidor TCP/IP se utiliza como una caja negra. Una vez que catman AP establece con éxito conexión con PMX, el servidor transmite los strings que recibe a la interfaz CPU, que interpreta los comandos y los ejecuta.

Como introducción al ejemplo, en primer lugar se muestran las interfaces del servidor. A continuación, se analiza en mayor detalle la interpretación de los comandos y se explica cómo es la conexión con los canales de CPU que pueden utilizarse para continuar con el procesamiento. En este ejemplo se asignan dos canales con estos fines.

Interfaces del servidor

  • Entradas:
    • sSend (String:string que se envía)
    • port (Word: puerto al que se puede direccionar el PMX)
    • sIpAddress (String: dirección IP que debe ajustarse a la dirección IP que aparece en el navegador web)
    • bStart (Boolean: inicia el servidor)
    • bShutDownServer (Boolean: detiene el servidor)
  • Salidas:
    • sReceived (String: string recibido)
    • bClientOnline (Boolean: identificación de señales de un cliente)

Funcionalidad de la interfaz CPU

La interfaz CPU suministrada soporta tres comandos para cada canal: “set”, “get” y “reset”. Los comandos se combinan en la estructura “instructionSet” (serie de instrucciones) para proporcionar al usuario una descripción rápida de las funciones. Nota: Los comandos “set…” terminan en un espacio, para ayudar a distinguir entre el comando en sí y el siguiente parámetro que se define.

Cuando el servidor TCP detecta una conexión con un cliente —en este caso catman AP—, la interfaz CPU empieza a comprobar los mensajes que llegan a sReceived, quedando a la espera de comandos. En cuanto detecta un comando, lo ejecuta.

El comportamiento que se activa por efecto del comando debe ser determinado por la interfaz CPU.

Los valores que se devuelven a catman AP deben finalizar con la cadena “$R$N”. Para conseguirlo, el valor de retorno se concatena con la cadena “$R$N”, formando un único string con el contenido del comando “Concat()”.

Asignación de los canales de CPU

En el entorno de desarrollo de CODESYS, la asignación de variables a los canales de CPU se lleva a cabo del modo siguiente:

  • Haga doble clic en “Device” en el árbol de directorios situado a la izquierda del entorno de desarrollo, para abrir la ventana de configuración correspondiente.
  • Pulse en la pestaña “Internal I/O Mapping“. (2)
  • Desplácese hasta “Codesys Output x” y haga doble clic en el campo vacío de la columna “Variable”. (3)
  • En la ventana que se abre, seleccione la variable que le interese (Nota: la variable debe ser de tipo REAL).
  • Por último, marque la casilla “Always update variables” en la esquina inferior derecha. (4)

catman AP

En catman AP, debe crearse un script catman Easy que sea capaz de crear un cliente TCP/IP mediante la librería objeto “EA_Comm” y de procesar los comandos definidos en CODESYS. Por supuesto, cualquier otro cliente TCP/IP también podrá establecer conexión con el PMX y comunicarse a través de comandos.

El ejemplo ofrece una visualización con varios botones que permiten establecer una conexión paso a paso. Los botones deben pulsarse en la secuencia siguiente: conexión al PMX, definición u obtención de valores según se requiera, desconexión de PMX. Si se produce algún problema, suele ser útil desconectarse de PMX y volver a conectarse.

Un valor distinto de cero en el campo (5) indica al usuario que existe algún problema.

Utilice el botón “Connect to PMX” (1) para iniciar una conexión. Si el PMX se conecta correctamente, aparece el mensaje “Ready” en el campo (3). A partir de ese momento, los canales de CPU conectados 1 y 2 pueden definirse (set) (2) y obtenerse (get) (4) en el campo (3). El usuario debe asegurarse de que los valores definidos estén dentro del rango específico de valores soportado por el PMX. De lo contrario, se definirá un canal de CPU, pero el equipo físico que esté conectado recibirá valores no válidos, que será incapaz de procesar. Adicionalmente, en el campo (3) debe haber un valor; de lo contrario se asignará automáticamente al canal el valor cero.

Los valores de retorno también se presentan en el campo (3). El campo (5) solo proporciona indicaciones de error dentro del script. Si ese campo muestra un valor distinto de cero, desconecte y vuelva a conectar. Después de la configuración de los canales, la conexión debe quedar siempre desconectada (6).

El código del script permite entender cómo se utiliza la librería “EA_Comm” para instalar un cliente TCP/IP. Los botones de la visualización activan las rutinas o subrutinas correspondientes. El extracto siguiente solo hace referencia a la definición del canal de CPU 1. El submétodo puede transferirse al canal de CPU 2.

La variable “Timeout” determina el tiempo de espera de una respuesta del servidor. Ese tiempo siempre debe ser mayor que los ciclos del PLC. “Id” proporciona un handle o descriptor para gestionar las tomas subyacentes. “Terminator” define el carácter ASCII hasta el cual se leen los mensajes del buffer; el carácter 10 equivale al salto de línea (“Linefeed”), que es equivalente a “$R$N” en CODESYS. El tamaño del buffer se define en “MaxBytes” y debe concordar con el tamaño de buffer de PMX. También deben concordar el número de puerto y la dirección IP, por supuesto.

Conviene tener en cuenta que la librería no vacía automáticamente el buffer de recepción. Dicho de otro modo, después de leer con éxito un mensaje, al hacer una nueva lectura se leen todos los bytes restantes del mensaje anterior, que no contienen información relevante. Este problema se soluciona leyendo el buffer byte a byte, hasta que está vacío. La parte correspondiente se marca en la subrutina “getCPU1”.

SUGERENCIA

Si desea más información y ayuda para crear programas con Codesys, consulte la ayuda en línea de Codesys, consulte https://www.codesys.com/ o el chat room de Codesys https://forum.codesys.com/
También puede beneficiarse de la base de conocimientos y la información disponible en la tienda virtual de Codesys. En https://store.codesys.com/ encontrará numerosos ejemplos de programas y soluciones para una gran variedad de tareas

Descargo de responsabilidad

Los ejemplos se facilitan a efectos meramente indicativos, por lo que no constituyen garantía alguna ni pueden servir como base para reclamación de ningún tipo.