FAQs Técnicas

Realizar una pregunta

Gestión de bloques de mensajería READ_VAR y WRITE_VAR en un proyecto Unity.

Aparte de la información que se puede encontrar en los manuales de Unity Pro, en el documento adjunto [Anotaciones sobre mensajería Ethernet con M340.pdf] se puede encontrar un sencillo ejemplo comentado de un bloque de función de mensajería programado en un proyecto Unity y para una plataforma M340 (en éste caso, el ejemplo está realizado para mensajería Ethernet).

Básicamente, los puntos a tener en cuenta para realizar una correcta gestión inicial de la mensajería son:

- Programar correctamente el bit de actividad de cada bloque de función. Recordar que el bit de actividad es el primer bit (bit 0) del primer registro de la tabla de gestión configurada en el mismo bloque. La activación de éste bit indica que la función de comunicación asignada está ocupada, por lo que se debe configurar como una condición normalmente negada del mismo bloque (para que mientras el bloque esté en ejecución no se pueda lanzar otra vez). El bit de actividad ha de ser único para cada bloque de función (no se puede compartir un mismo bit para varios bloques de mensajería).

- Configurar un tiempo de 'timeout' en el tercer registro de la tabla de gestión de cada bloque de mensajería. Este 'timeout' es el tiempo que el bloque de mensajería ha de esperar la respuesta a una petición lanzada antes de descartarla. De no configurar ningún valor, el registro valdrá cero (0), cosa que quiere decir que el 'timeout' por defecto es infinito. Es decir, que si después de lanzar una petición, está no obtiene respuesta del dispositivo remoto, el bloque se quedará activado indefinidamente esperando dicha respuesta (y por tanto, su funcionamiento estará bloqueado). Hay que tener en cuenta que este parámetro se configura en centésimas de milisegundos; es decir, configurar en éste parámetro un 2 quiere decir establecer el 'timeout' en 200 milisegundos.

- En el cuarto registro de la tabla de gestión de cada bloque de comunicación se ha de incluir el número de registros a enviar o recibir por cada bloque, pero en el caso de las funciones READ_VAR y WRITE_VAR, este valor lo completa automáticamente la propia función, con lo que se ha de dejar a cero (sin configurar).

- Cada función de comunicación ha de tener sus propios registros de tabla de gestión. No se debe compartir la misma tabla de gestión para varios bloques de comunicaciones.

- Finalmente, hay que tener en cuenta los límites del hardware del equipo a través del cual se quiere realizar la comunicación via serie. Por ejemplo, en el caso de un M340 es posible configurar mensajería vía protocolo serie (Modbus) o vía protocolo Ethernet (Modbus/TCP). Dependiendo de esta elección, la plataforma de PLC tiene unas limitaciones de hardware que no de deben sobrepasar (por ejemplo, vía Ethernet se definen un número máximo de conexiones o sockets simultáneos que se pueden establecer). Para más datos acerca de estas limitaciones, consultar la documentación de la plataforma de PLC seleccionada.
¿Ha sido útil?
¿Qué podemos hacer para mejorar la información?