WRITE4X | Top

WRITE4X

Escribe variables de la zona 4x (protocolo Modbus). El formato de la instrucción es:

WRITE4X id, Cant, Dst, Org, Port, Turno

id = número de identificación del equipo esclavo.

Cant = cantidad de variables a enviar al equipo esclavo.

Dst = variable del equipo esclavo (Modbus) a partir de la cual se almacenan las variables enviadas.

Org = dirección de memoria local (nombre variable) a partir de la cual se empieza a leer para enviar.

Port = número de puerto de comunicación local (1 o 2).
Turno = orden asignado para usar el puerto.

Cuando se ejecuta la instrucción ésta ocupa el puerto de comunicación hasta que es concluida. Mientras el puerto esté en uso la ejecución de cualquier instrucción de comunicación que intente usar el mismo puerto pondrá el acumulador con estado de ocupado (valor 0).

Cuando la comunicación halla terminado la ejecución de la instrucción pondrá el acumulador con el resultado de la misma: concluido (valor 1) o error (valor 3), al mismo tiempo que incrementa la variable TurnoCom, que sirve para ordenar (por turnos) las instrucciones de comunicación.

Solo la instrucción que inició la comunicación puede liberar el puerto. Esto significa que si se ejecuta una sola vez la ejecución de otras indicará siempre como ocupado (valor 0) aunque la comunicación halla concluido.

En caso de error ya cuenta con dos reintentos de comunicación que es transparente para el usuario. Cuando el resultado es error (valor 3) es porque ha fallado en la comunicación y sus dos reintentos.

Programa ejemplo. Dato y Dato2 son variables locales. Alterna entre lectura y escritura.

La instrucción opuesta es READ4X

La ejecución de la instrucción hace una rotación de acumuladores.

Programa ejemplo. Se comunica con 3 dispositivos (escribe en el primero y lee de los otros dos). La última línea vuelve el turno a cero (cuando READ3X responde con 1 por haber terminado), permitiendo que se ejecute nuevamente WRITE4X (que tiene le primer turno).

WRITE4X 2, 1, 1, var0, 2, 0
READ4X 3, 1, var1, 1, 2, 1
READ3X 4, 1, var2, 2, 2, 2
CMOV 0, TurnoCom

Esta instrucción está disponible a partir de la ROM 2.53 del CP121 y ROM 2.01 del CP122.

READ4X

RD4X

WR4X

Lista de instrucciones

Indice