1. Conexión de hardware
1 puerto serie
Principio de comunicación Modbus: La comunicación Modbus es una comunicación maestro-esclavo, es decir, un método de preguntas y respuestas. La estación maestra envía datos de respuesta a una estación esclava, y la estación esclava responde; cuando la estación maestra no tiene datos para enviar, la estación esclava no responde.
Este mecanismo de comunicación se implementa en la idea de programación, que se analizará en el capítulo de programación más adelante.
El protocolo Modbus se ejecuta en la interfaz serial, y las interfaces seriales comunes incluyen RS-232, RS-485 y RS-422. Interfaz RS-485 de uso común Modbus.
Generalmente, tres líneas de comunicación RS-232 pueden completar el enlace de comunicación. Como se muestra en la Figura 1, el txd del dispositivo RS232 1 está conectado al rxd del dispositivo 2, y el rxd está conectado al txd, que se pueden recibir o enviar al mismo tiempo, lo cual es el modo dúplex completo. Debido a la limitación de las características de RS-232, solo se puede conectar uno a uno, es decir, una estación maestra está conectada a una estación esclava. Por lo tanto, la interfaz RS-232 es poco común en la comunicación Modbus.
Dos líneas de comunicación RS-485 pueden completar el enlace de comunicación. Como se muestra en la Figura 2, A de varios dispositivos está en cortocircuito para formar una línea, y B está en cortocircuito con otra línea. Solo enviar o recibir al mismo tiempo, esto es half duplex. Se pueden montar varios dispositivos en el mismo enlace, lo que permite la comunicación entre una estación maestra y varias estaciones esclavas. Este escenario de aplicación es el más común.
La interfaz serial del S7 200 SMART es RS-485, y el diagrama esquemático de pines se muestra en la Tabla 3.
Nota: La línea de señal A\B de RS-485 se denomina comúnmente A\B;485+\485-. El pin n.° 3 del S7 200 SMART DB9, es decir, la señal B de RS-485, se denomina comúnmente A o 485+; el pin n.° 8, es decir, la señal A de RS-485, se denomina comúnmente B o 485 -.
2. Conector de bus
En el caso de sitios industriales complejos o comunicaciones de larga distancia, se recomienda elegir conectores y cables de bus de alta calidad. El conector de bus tiene su propia resistencia terminal y resistencia de polarización. En este caso, se puede mejorar la estabilidad y la capacidad antiinterferencias de la comunicación.
Conectores y cables de bus, los números de pedido se muestran en la Tabla 4.
3. ¿Por qué elegir conectores y cables de bus?
Como todos sabemos, el cable de red se divide en categoría 5 y categoría 6. El ancho de banda de transmisión de la categoría 5 puede ser de hasta 1000 Mb/s, pero generalmente solo se utiliza en redes de 100 Mb/s; la categoría 6 se utiliza principalmente en redes Gigabit. El rendimiento es mucho mayor que el estándar de cable de red Super Five. La diferencia intuitiva entre los cables de categoría 5 y categoría 6 es que el diámetro del núcleo de cobre del cable es diferente, y el núcleo de cobre de la categoría 6 es obviamente más grueso que el de la categoría 5.
De la misma manera, se especula que el cable de bus, la impedancia de bucle: <150R/KM, es mejor que el cable de comunicación general. La resistencia de la línea es pequeña, la distancia de comunicación es larga y la capacidad antiinterferencia es fuerte.
El conector de bus, con su propia resistencia terminal y resistencia de polarización, también puede mejorar la calidad de la comunicación.
El método de red recomendado se muestra en la Figura 5:
Las resistencias de terminación y polarización se muestran en la Figura 6:
4. Distancia de comunicación
Cuanto mayor sea la velocidad en baudios de comunicación, más corta será la distancia de comunicación. En la comunicación a larga distancia, reduzca adecuadamente la velocidad de comunicación. Se recomienda que la distancia máxima de la velocidad en baudios de 9600 sea de 1200 metros.
2. Dirección Modbus
El propósito de la comunicación es leer y escribir registros, por lo que es necesario comprender la representación de direcciones Modbus.
Hay muchas formas de representación de direcciones Modbus, como 40001, 4x0001, 0000H, estas tres direcciones son en realidad la misma dirección. Si hay 4 marcas en la dirección, está en notación decimal y la dirección inicial es 1, es decir, la dirección inicial real es 40001; En SMART PLC, la dirección se representa como 40001;
En UniMAT HMI o en el software de configuración común, la dirección se expresa como 4x1; en el inversor o instrumento, la dirección a menudo se expresa como 0000H.
S7 200 SMART se utiliza como estación esclava y las direcciones correspondientes son las siguientes:
Una dirección Modbus generalmente se escribe como un valor numérico de 5 caracteres que contiene el tipo de datos y el desplazamiento. El primer carácter determina el tipo de datos y los últimos cuatro caracteres seleccionan el valor apropiado en el tipo de datos. A continuación, el maestro Modbus asigna la dirección a la función correcta.
Los comandos esclavos Modbus admiten las siguientes direcciones:
00001 a 00128 son salidas discretas asignadas a Q0.0 - Q15.7
10001 a 10128 son entradas discretas asignadas a I0.0 - I15.7
30001 a 30032 son registros de entrada analógica asignados a AIW0 a AIW62
40001 a 4xxxx son registros de retención asignados a la memoria V.
Todas las direcciones Modbus están basadas en 1. La siguiente tabla muestra las direcciones Modbus asignadas a las direcciones S7-200.
Dirección Modbus Dirección S7-200
00001 Q0.0
00002 T0.1
00003 T0.2
…
00127 T15.6
00128 T15.7
10001 0,0
10002 10.1
10003 10,2
…
10127 I15.6
10128 I15.7
30001 AIW0
30002 AIW2
30003 AIW4
…
30032 AIW62
40001 Mantener pulsado el botón de inicio
40002 Mantener pulsado Inicio+2
40003 Mantener pulsado Inicio+4
…
4xxxx Mantener pulsado Inicio+2 x (xxxx-1)
Para UniMAT HMI, la correspondencia de direcciones se muestra en la Tabla 7:
3. Mensaje
Para leer o escribir diferentes direcciones Modbus, se requieren diferentes códigos de función, como se muestra en la Tabla 7 anterior.
Los códigos de función que se utilizan habitualmente son FC03 y FC06. En este caso, se utiliza el código de función 03 para describir el mensaje.
Código de función 03, lee los tres registros comenzando desde el registro 006BH, el ejemplo de mensaje de la estación maestra es el siguiente:
Tabla 8 Mensaje de la estación maestra 03
El mensaje de respuesta de la estación esclava es el siguiente:
Ya no se especifican otros formatos de mensajes, y aquellos que estén interesados pueden consultarlos en el sitio web oficial https://modbus.org/
4. S7 200 SMART Modbus
Programación de esclavos RTU
La función implementada por el programa anterior: establece el puerto 0 de la CPU como un esclavo Modbus con una dirección de esclavo de 1, una velocidad en baudios de 9600 y una paridad par.
La cantidad de IO que permiten que la estación maestra funcione es 128, la cantidad analógica es 32 y los 1000 registros comienzan con VW0. La VW0 de la CPU es la dirección Modbus 40001, la VW2 es 40002, y así sucesivamente.
Descripción del parámetro:
El valor de entrada "Modo" se utiliza para seleccionar el protocolo de comunicación: cuando el valor de entrada es 1, se asigna y habilita el protocolo Modbus; cuando el valor de entrada es 0, se asigna el protocolo PPI y se deshabilita el protocolo Modbus.
El parámetro "Addr" establece la dirección en un valor entre 1 y 247 inclusive.
El parámetro "Baud" establece la velocidad en baudios a 1200, 2400, 4800, 9600, 19200, 38400, 57600 o 115200.
El parámetro "Paridad" debe configurarse para que coincida con la paridad del maestro Modbus. Todas las configuraciones utilizan un bit de parada. Los valores aceptados son: 0 (sin paridad), 1 (paridad impar) y 2 (paridad par).
El parámetro "Puerto" establece el puerto de comunicación físico (0 = RS-485 integrado en la CPU, 1 = RS-485 o RS-232 en la placa de señal opcional).
El parámetro "Retraso" retrasa la condición de tiempo de espera de finalización del mensaje Modbus estándar aumentando el tiempo de espera del mensaje Modbus estándar en la cantidad de milisegundos asignada. Un valor típico para este parámetro debería ser 0 cuando se ejecuta en una red cableada. Si utiliza un módem con corrección de errores, configure el retraso en un valor entre 50 y 100 ms. Si utiliza comunicación inalámbrica de espectro amplio, configure el retraso en un valor entre 10 y 100 ms. El valor de retardo puede ser de 0 a 32767 ms.
El parámetro MaxIQ se utiliza para establecer la cantidad de puntos I y Q disponibles para las direcciones Modbus 0xxxx y 1xxxx, y el rango de valores es de 0 a 256. Un valor de 0 deshabilita todas las lecturas y escrituras en la entrada y salida. Se recomienda establecer el valor MaxIQ en 256.
El parámetro MaxAI se utiliza para establecer la cantidad de registros de entrada de palabra (AI) disponibles para la dirección Modbus 3xxxx, el rango de valores es de 0 a 56. Un valor de 0 deshabilita la lectura de la entrada analógica.
El parámetro MaxHold se utiliza para establecer la cantidad de registros de retención de palabras en la memoria V a los que se puede acceder mediante la dirección Modbus 4xxxx o 4yyyyy. Por ejemplo, si desea permitir que un maestro Modbus acceda a 2000 bytes de memoria V, configure el valor de MaxHold en 1000 palabras (registros de retención).
El parámetro HoldStart es la dirección inicial de los registros de retención en la memoria V. Este valor normalmente se establece en VB0, por lo que el parámetro HoldStart se establece en &VB0 (dirección VB0). También se pueden especificar otras direcciones de memoria V como direcciones de inicio para almacenar registros para usar VB0 en otras partes del proyecto. El maestro Modbus puede acceder a la memoria V cuya dirección de inicio es HoldStart y el número de palabras es MaxHold.
Cuando se completa la instrucción MBUS_INIT, se activa la salida "Done".
El byte de salida de error contiene el resultado de la ejecución de la instrucción. Esta salida solo está activa cuando la opción Listo está activada. Si la opción Done está desactivada, el parámetro de error no cambia.
Cinco, S7 200 SMART Modbus Programación maestra de RTU
Como se mencionó anteriormente, el mecanismo de comunicación Modbus se menciona anteriormente. El dispositivo maestro solo puede enviar o recibir al mismo tiempo o en el momento actual. Para múltiples estaciones esclavas o múltiples operaciones en los registros, se recomienda utilizar el mecanismo de sondeo, es decir, solo se permite activar una instrucción MSG al mismo tiempo. De acuerdo con esta idea de programación, se recomiendan dos operaciones de sondeo. .
1. Inicialización maestra
Establezca la velocidad en baudios de comunicación Modbus en 9600, paridad par, tiempo de espera de 1000 ms y utilice la comunicación DB9 del cuerpo principal.
2. Modo de sondeo uno
Idea: utilizar el cambio de valor del registro C0 para activar la instrucción MSG y garantizar que solo se ejecute un MSG al mismo tiempo.
Función del programa: C0 se borra después del encendido; después de la finalización inicial de la estación maestra, C0 es 1; después de que se completa cada instrucción MSG, C0 se incrementa en 1; después de la tercera finalización, ejecuta la primera instrucción MSG
votación:
Función del programa de red 3 : leer los 5 registros a partir de 412345 con la dirección de la estación esclava de 1 y almacenarlos en las 5 palabras a partir de la CPU VW100 de la estación maestra.
Función del programa de red 4: leer los 5 registros a partir de 40001 con la dirección de la estación esclava 2 y almacenarlos en las 5 palabras a partir de la CPU VW110 de la estación maestra.
3. Modo de sondeo 2
Función del programa: leer los 5 registros comenzando desde 40001 con la dirección de la estación esclava de 1 y almacenarlos en las 5 palabras comenzando desde la CPU VW100 de la estación maestra.
Escriba 5 palabras a partir de la CPU VW110 en 5 registros a partir de 40001 con dirección esclava 2.
También existe la costumbre de utilizar la posición de finalización de la instrucción MSG para configurar un relé interno Mx.x, Mx.x activa la siguiente instrucción MSG, y así sucesivamente; o el método de activación de tiempo fijo y otras ideas de programación diferentes. Independientemente de la idea de programación, asegúrese de que solo se active una instrucción MSG a la vez.
6. Precauciones
A. Después de inicializar el comando de inicialización maestro o esclavo Modbus, el protocolo PPI no está disponible.
B. El mismo puerto serie solo se puede utilizar como estación maestra Modbus, estación esclava, PPI, etc. (excepto la inicialización del control del programa).
C. Cuando la CPU es la estación maestra, sólo se puede disparar una instrucción MSG a la vez (lo importante es que se diga N veces).
A y B del DB9 RS485 del D.S7 200 SMART son diferentes de A y B en el dicho popular.
E. Reconocer la representación de la dirección del registro esclavo, ya sea decimal o hexadecimal.
F. Si la comunicación va bien, puedes saltarte los primeros cuatro capítulos.
7. Solución de problemas
Cuando la comunicación es anormal, se recomienda verificar los siguientes aspectos:
A. Asegúrese de que el cable de comunicación esté conectado correctamente. Consulte el Capítulo 1, centrándose en el Capítulo 1.1.
B. Asegúrese de que los parámetros de comunicación maestro-esclavo sean consistentes.
C. Confirme que la estación maestra pueda leer y escribir los registros de la estación esclava. Los registros de algunos inversores o instrumentos son de solo lectura o de solo escritura, o bien de lectura y escritura. Algunas unidades tienen una longitud limitada de datos que se pueden leer o escribir a la vez.
D. Lo anterior es normal, monitoree el programa PLC para detectar si se ha activado una determinada instrucción MSG sin acción de salto.
E. Utilice el software del asistente del puerto serial de la computadora para monitorear los mensajes de comunicación y localizar si la estación maestra no envía datos, si la estación esclava no responde a los datos o si el mensaje que responde la estación esclava es incorrecto. Consulte el Capítulo 3.
Monitorizar mensajes de comunicación: conectar A y B del ordenador 485 en paralelo en el enlace de comunicación.
8. Límite de tiempo de comunicación
Cuanto mayor sea el número de estaciones esclavas, más veces se operará el registro y más largo será el ciclo de comunicación. Para una comunicación rápida, lea o escriba registros por lotes o aumente la velocidad en baudios de comunicación. Si alguna estación esclava está fuera de línea o funciona de manera anormal, el ciclo de comunicación es incontrolable.
Tomemos una conferencia remota como ejemplo para ilustrar el mecanismo de comunicación Modbus:
Hay 5 personas en una conferencia remota y 5 personas hablan al mismo tiempo. No todos pueden escuchar con claridad y no se puede intercambiar información.
Introduzca el mecanismo del moderador, el moderador es la estación maestra y el moderador clasifica a las otras 4 personas con números de serie, 1, 2, 3, 4, es decir, 4 estaciones esclavas.
Cuando el anfitrión habla, la estación maestra envía un mensaje. El mensaje tiene un formato fijo. El primer byte es la dirección de la estación esclava, es decir, el número de personal.
El anfitrión no habla, y a los otros cuatro no se les permite hablar, e incluso si hablan, serán bloqueados por el anfitrión. Es decir, la estación esclava envía cualquier mensaje y la estación maestra lo acepta como información no válida.
Sólo puede hablar quien el moderador indique, y hacerlo en el formato que especifique el moderador, es decir, el formato del mensaje es fijo.
El anfitrión dijo: No. 1 xxxx. 4 personas pueden escuchar, pero sólo 1 puede responder y responder de la manera correcta. En respuesta a un error, el moderador también tratará la información como inválida.
Cuando el anfitrión llamó al número 1, este desertó, no respondió a tiempo y excedió el tiempo de espera predeterminado, el anfitrión llamó nuevamente, y así sucesivamente tres veces.
Después de tres intentos, el número 1 sigue sin responder. El anfitrión abandona el número 1 y continúa llamando al número 2, al número 3 y al número 4. Este es el mecanismo de sondeo.
En circunstancias normales, una pregunta y una respuesta, la respuesta es muy rápida. Si una persona deserta, el ciclo de comunicación se extiende tres veces el tiempo de espera.
Por lo tanto, cuando todo el personal está en línea, el ciclo de comunicación está relacionado con la velocidad de voz, es decir, la velocidad en baudios, y la cantidad de personas, es decir, la cantidad de estaciones esclavas; cuando no está en línea, el ciclo de comunicación es incontrolable.
De esta manera, es necesario garantizar que exista un enlace de comunicación de alta calidad y una estación esclava en línea normal para garantizar la estabilidad del ciclo de comunicación.