8 FUNCIONES DEL REGISTRO
Recuento de Pulsos: El recuento de pulsos se almacena como un número entero de 32 bits sin signo.
Esto permite que sean contados 2^32 pulsos (4.2 mil millones) antes de dar la vuelta. En sistemas del
Modbus que no le permitan leer valores de 32 bits, usted puede calcular el recuento de pulsos de la
siguiente forma:
recuento = (MSW * 65536) + LSW
o
recuento = (MSW << 16) | LSW
Los registros de recuento de pulsos acumulan un número total de pulsos recibidos en cada entrada
de pulsos. Los totales del recuento de pulsos siempre se incrementan y no pueden ser borrados ni
programados en un valor arbitrario para evitar alteraciones. Todos los totales del recuento de pulsos se
almacenan en una memoria no volátil para conservar los recuentos durante una interrupción de la energía
eléctrica. Los valores del contador de 32 bits sin signo pueden acumularse hasta 4.29 mil millones (2^32)
pulsos antes de dar la vuelta.
Todos los valores del punto de datos de 32 bits se codifican en 2 registros del Modbus (16 bits cada uno).
Los sistemas maestros del Modbus siempre deben consultar al A8911-23 utilizando una consulta única con
el fin de leer un bloque completo de registros. Nunca utilice dos consultas para leer un registro y después
combinar los dos resultados en un solo valor de 32 bits. Hacer esto provocará que el recuento de pulsos
se incremente a la mitad de las dos consultas del Modbus y ocasionará lecturas de datos intermitentes que
son incorrectos.
EJEMPLO:
Una entrada de pulsos tiene un recuento de 65534. Esto se representa como un número hexadecimal de
32 bits: 0x0000FFFE. Los primeros 4 dígitos son el registro MSW, los segundos 4 dígitos son el registro
LSW. El sistema Maestro del Modbus lee el primer registro (MSW) y obtiene 0x0000. Entre las dos
lecturas, la entrada de pulsos cuenta 2 pulsos más, obteniendo el total de 65536 ó 0x00010000 en número
hexadecimal. A continuación, el sistema Maestro lee el segundo registro (LSW) y obtiene 0x0000. Cuando
se combinan los os registros, el resultado es 0x00000000. La manera adecuada de manejar esta situación
es sencillamente leer ambos registros en una sola consulta del Modbus.
[cambio de bit palabra de alto orden por 16 bits y/o contra
palabra de bajo orden]
44