Início / Descargas / Siemens / Automatas / S7-1200 / Comunicación MODBUS-RTU entre dos autómatas S7-1200

Comunicación MODBUS-RTU entre dos autómatas S7-1200

  • Publicado: 20 Agosto 2014
  • Automatas
  • Leído Visto: 10793 veces

El ejemplo muestra como realizar la comunicación MODBUS-RTU entre dos autómatas SiemensS7-1200 utilizando los módulos de comunicación CM 1241 RS485 y CM 1241 RS232. Existe la posibilidad de añadir hasta tres módulos de comunicación por cada  S7-1200.

Para la comunicación se utiliza la librería de MODBUS existente en TIA PORTAL que permite definir cada uno de los módulos de comunicación como un maestro o esclavo de MODBUS. La opción de maestro MODBUS, permite comunicar:

- Con sólo un esclavo usando el CM 1241 RS232 (limitación física).

- Con hasta 32 esclavos, uno detrás de otro, usando el CM 1241 RS485.

En el ejemplo se muestra una comunicación MODBUS entre un maestro y un esclavo. Se produce una escritura alternativa en el registro de participación del esclavo (código de función 16) y una lectura desde el registro de participación del esclavo (código de función 03). Puesto que el RS485 dispone de una interfaz de dos hilos (half-duplex), la escritura y la lectura se han de producir de forma consecutiva. Por el mismo principio, la dirección del esclavo a direccionar se puede modificar entre dos acciones (en este caso escritura y lectura), en consecuencia, haciendo posible el intercambio de datos con múltiples esclavos.

Los módulos de comunicación CM 1241 RS485 se pueden conectan entre sí usando un cable PROFIBUS pudiendo dar continuidad al cable de PROFIBUS para conectar el maestro con hasta 31 esclavos de MODBUS adicionales. La configuración se realiza en TIPA PORTAL y el código de programa se transfiere a los controladores con el switch CSM 1277.

MB_COMM_LOAD

El bloque de configuración MB_COMM_LOAD se llama en ambos lados (maestro y esclavo) para la comunicación MODBUS.

 

El bloque MB_COMM_LOAD se usa para seleccionar el módulo de comunicación, ajustar los parámetros de la comunicación y parametrizar el enlace con los parámetros del maestro o el esclavo. El bloque MB_COMM_LOAD se debe llamar en el primer ciclo de programa (mediante la activación de la marca de sistema M1.0 en los ajustes de hardware o mediante una llamada en el OB 100 de arranque). Después de insertar el módulo de comunicación en la configuración de hardware se puede seleccionar el nombre simbólico del módulo de comunicación en el parámetro PORT. Los parámetros de comunicación BAUD (velocidad de transmisión) y PARITY (paridad) deben ser idénticos para todos los nodos. La configuración del puerto de la interfaz RS485 en la vista de equipo del STEP 7 (TIA Portal) es irrelevante en este caso. El bloque de datos de instancia del bloque maestro o del bloque esclavo se transfiere en el parámetro MB_DB y, por consiguiente, define el módulo de comunicación (parámetro PORT) como maestro o esclavo MODBUS.

 

MB_MASTER

Se usa el bloque MB_MASTER para definir el módulo de comunicación seleccionado con el bloque de configuración MB_COMM_LOAD como maestro MODBUS.

El bloque MB_MASTER se usa para seleccionar el esclavo MODBUS a direccionar, seleccionar el código de función y definir la zona de almacenamiento de datos local. La tabla dada más abajo explica los parámetros.

Parámetro Descripción
REQ Habilita la comunicación.
MB_ADDR Dirección estación MODBUS-RTU.
MODE Seleccionar la dirección de la transmisión ("0" = lectura, "1" = escritura o funciones de diagnóstico adicionales).
DATA_ADDR Especifica la dirección de inicio MODBUS.
DATA_LEN Especifica la longitud de datos MODBUS.
DATA_PTR Define las zonas de datos de envío y recepción locales del maestro. El parámetro DATA_PTR debe hacer referencia a un bloque de datos global creado con la opción "Sólo acceso simbólico" deshabilitada.

 

El "MB_MASTER" se tiene que llamar en el primer ciclo de programa

- mediante la activación de la marca de sistema M1.0 en los ajustes de hardware

- o mediante una llamada en el OB 100 de aranque.

MB_SLAVE
Se usa el bloque MB_SLAVE para definir el módulo de comunicación seleccionado con el bloque de configuración MB_COMM_LOAD como esclavo MODBUS.

El bloque MB_SLAVE se usa para definir la dirección de estación MODBUS-RTU y especificar la zona de almacenamiento de datos local para la transferencia de datos con el registro de participación.
 

Parámetro Descripción
MB_ADDR Transfiere la dirección estación MODBUS-RTU.
MB_HOLD_REG Registro de participación del esclavo. El parámetro MB_HOLD_REG debe hacer referencia a un bloque de datos global creado con la opción "Sólo acceso simbólico" deshabilitada.

 

Cuando se tienen que transferir múltiples registros (palabras), con el parámetro "MB_HOLD_REG" se tiene que transferir el nombre simbólico de un array o estructura que cubra el volumen de datos especificado del maestro (DATA_ADDR y DATA_PTR). La primera palabra de este array o estructura se corresponde con la dirección de inicio 40001 del registro de participación de MODBUS.

Los parámetros se pueden conmutar con las entradas y salidas de los bloques o mediante el acceso al correspondiente bloque de datos de instancia.

Proyecto ejemplo

En el proyecto del maestro, la escritura / lectura alternativas del registro de participación del esclavo se realiza usando un secuenciador.

El bloque de configuración MB_COMM_LOAD se llama en el paso de inicialización 0.

En el paso 1 se llama al MB_Master con los parámetros de comunicación para la escritura en el esclavo (MODE = 1) y se ejecuta (REQ = 1).

La transición al paso 2 se realiza con la confirmación positiva (DONE) o negativa (ERROR) del MB_MASTER.

La transición pone a cero la ejecución del MB_MASTER (REQ = 0).

En el paso 2 se escriben los parámetros de comunicación para la lectura del esclavo (MODE = 0) usando el MB_MASTER en el mismo bloque de datos de instancia que en el paso 1 (parámetro MB_DB del bloque MB_COMM_LOAD).

La ejecución y la transición son las mismas que en el paso 1.

La siguiente figura muestra un paso (segmentos 6 y 7) con transición (segmento 8).

 

El parámetro MB_ADDR (véase el segmento 6) también se puede usar, en consecuencia, para cambiar el esclavo a direccionar en cada paso, lo que permite que se puedan intercambiar datos con hasta 32 esclavos.

 

 DESCARGA PROYECTO EJEMPLO

Fuente: http://support.automation.siemens.com/