M-Bus (Meter-Bus) es una norma europea (EN 13757-2 capa física y de enlace, EN 13757-3 capa de aplicación) para la lectura remota de contadores de gas o electricidad. M-Bus es también utilizable para otros tipos de contadores de consumo.
El M-Bus fue desarrollado para satisfacer la necesidad de un sistema para la creación de redes y lectura remota de contadores de servicios públicos, por ejemplo, para medir el consumo de gas o de agua en el hogar.
M-Bus lectura de datos con un S7 1200
No nos es posible leer directamente des del S7 1200 con alguna tarjeta especial, la mayoría de autómatas del mercado no disponen de una tarjeta de comunicación M-bus, por lo que tendremos que utilizar algún adaptador o Gateway para poder leer los datos de un esclavo M-Bus.
En este ejemplo vamos a utilizar un conversor M-bus / Modbus TCP IP, ya que el S7 1200 lleva el Modbus TCP IP integrado en toda su gama, el Gateway que utilizaremos es el HD67044-B2-20 de ADFWEB, este conversor nos permitirá enlazar desde 20 esclavos M-Bus en el modelo más pequeño hasta 250 esclavos el modelo superior:
En primer lugar debemos programar el conversor para que nos lea los valores que queramos del esclavo M-bus, estos valores los debemos mapear a direcciones Modbus TCP IP para luego leerlas del PLC, para programar este mapeado necesitaremos un software especial del fabricante del conversor, el SW67044, que se puede descargar de la web http://www.adfweb.com/ , en el mismo manual del conversor viene muy bien especificado como programar el conversor por lo que no entraremos en detalle de como programarlo, el concepto básico es que debemos de mapear los valores que luego leeremos en el PLC.
Lectura de datos desde el S7 1200
Para leer los datos que nos entrega el Gateway de M-Bus a Modbus, utilizaremos la función de lectura de Modbus TCP-IP que nos proporciona Siemens para el autómata S7 1200, esta función se llama MB_CLIENT:
En este ejemplo podemos observar los siguientes parámetros importantes:
REQ: Cada cuando queremos leer los datos Modbus.
CONNECT_ID: Número de la conexión establecida
IP_OCTET_1: la dirección IP del Gateway Modbus – M-Bus
IP_PORT: Puerto Modbus, por defecto es el 502
MB_MODE: Lectura o escritura.
MB_DATA_ADDR: Dirección Modbus inicial de lectura, en este ejemplo es la 40002
MB_DATA_LEN: Longitud de datos a leer.
MB_DATA_PTR: Array donde escribirá los datos leídos.
Por tanto ejecutando cíclicamente este FB podemos leer los datos del bus M-BUS y los podremos consultar en el array de salida, la longitud de los cuales deberá ser definida en MB_DATA_LEN.