Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
Modbus_Master: comunicarse como maestro Modbus
Nota
Uso con CM1241 El
uso de esta instrucción con un CM1241 solo es posible a partir de la versión de firmware V2.1 del módulo.
Descripción La
instrucción Modbus_Master se comunica como maestro Modbus a través de un puerto configurado por la
instrucción Modbus_Comm_Load. Un bloque de datos de instancia se asigna automáticamente cuando agrega la
instrucción Modbus_Master en su programa. El parámetro MB_DB de la instrucción Modbus_Comm_Load debe
conectarse al parámetro MB_DB (estático) de la instrucción Modbus_Master.
Nota
No puede activar la remanencia (Retain) para un DB de instancia de la instrucción Modbus_Master.
Parámetros
FALSO = sin solicitud
ENTRADA SOLICITADA bool FALSO VERDADERO = solicitud de envío de datos al esclavo
del bus Mod
Dirección de la estación Modbus RTU:
Rango de direccionamiento estándar (1 a 247 y
0 para transmisión)
Rango de direccionamiento extendido (1 a 65535
MB_AD EN Palabra única
DR y 0 para transmisión)
El valor 0 está reservado para la transmisión de
una trama a todos los esclavos Modbus. Solo los
códigos de función Modbus 05, 06, 15 y 16 son
compatibles con la transmisión.
Selección de modo: especifica el tipo de solicitud
EN MODO (lectura, escritura o diagnóstico). Hay información
USInt Byte 0 adicional disponible en la tabla de funciones de
Modbus a continuación.
Dirección de inicio en el esclavo: especifica la
Y dirección de inicio de los datos a los que se accede
OF_AD EN UDint DPalabra 0 en el esclavo Modbus. Las direcciones válidas se
DR enumeran en la tabla de funciones Modbus a
continuación.
Y
EN UInt Palabra 0 Longitud de datos: especifica el número de bits o
CUENTO palabras a las que debe acceder esta instrucción. El
norte
1
Machine Translated by Google
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
las longitudes válidas se enumeran en la tabla de funciones
de bus Mod a continuación.
Inicialización de la instrucción Modbus_Master
La instrucción se inicializa con TRUE.
CON_ EN FUERA booleano FALSO Luego, la instrucción restablece COM_RST en
PRIMERA FALSO.
Nota:
El parámetro solo está disponible para
instrucciones S7300/400.
Puntero de datos: apunta a la bandera o dirección de
base de datos para que se escriban o lean los datos.
A partir de la versión de instrucción V3.0:
Y El parámetro puede apuntar a un área de memoria
TA_PT Variante IN/OUT Cualquiera optimizada. En el área de memoria optimizada,
R se permite un solo elemento o una matriz con los
siguientes tipos de datos: Bool, Byte, Char, Word,
Int, DWord, DInt, Real, USInt, UInt, UDInt, SInt,
WChar. Todos los demás tipos de datos dan como
resultado el mensaje de error 16#818C.
El bit HECHO es VERDADERO durante un ciclo
HECHO bool FALSO después de que la última solicitud se haya
completado sin errores. • FALSO: ningún comando
activo para Mod.
bus_Master •
OCUPADO bool
TRUE: comando para Modbus_Master en curso
El bit ERROR es TRUE durante un ciclo
después de que la última solicitud se haya
ES completado con errores. El código de error en el
AFUERA bool FALSO parámetro STATUS solo es válido en el ciclo en el
TDR
que ERROR = TRUE.
ESTA
AFUERA Palabra 0 Código de error (ver Mensajes de error)
TÚ
Variables en el bloque de datos del maestro Modbus La siguiente
tabla muestra las variables estáticas públicas en el DB de instancia de Modbus_Master que puede utilizar en
su programa.
Etiquetas estáticas en la base de datos de instancia
Duración (en segundos) de espera de una instancia
maestra de Modbus bloqueada antes de que esta
Blocked_Proc_Tim Real 3.0 instancia se elimine como ACTIVA. Esto puede suceder,
eout por ejemplo, si se emitió una solicitud maestra y el
programa se detiene para llamar a la función maestra antes
de que haya terminado por completo la reposición.
2
Machine Translated by Google
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
búsqueda. El valor del tiempo debe ser mayor que 0 y
menor que 55 segundos para evitar un error al
ocurrir.
Consulte también "Reglas para la comunicación por parte del
ModbusMaster" y "Llamada de la instrucción Modbus_Master
con diferentes ajustes de parámetros".
Configura la dirección de la estación esclava como byte simple
o doble. • FALSO = dirección de un byte; 0 a 247 • VERDADERO
Aderezo de booleano FALSO = Dirección de dos bytes (corresponde a
Extended_Ad
direccionamiento extendido);
0 a 65535
Modo de compatibilidad con CP 341 y CP 4412 y ET 200S
1SI con driver para Modbus RTU y con ET 200S 1SI para
Modbus.
El valor predeterminado es 0.
• FALSO = según la especificación Modbus, no compatible
• VERDADERO = compatible o Para FC1 y FC2: Los
datos leídos de la trama recibida se escriben palabra por
palabra en la memoria de la CPU direccionada y se
intercambian byte por byte.
Compatible
booleano FALSO
Si el número de bits a transmitir no es un múltiplo
ty_Mode 1)
de 16, los bits que no son relevantes se establecen en
nulo en la última palabra. o Para FC15: Las palabras a
transmitir se leen palabra por palabra desde la memoria
direccionada y se escriben byte por byte en la trama
de envío.
Si el número de bits a transmitir no es un múltiplo
de 8, los bits en el último byte que no son relevantes
se leen sin cambios desde la memoria direccionada y
se ingresan en la trama de envío.
El parámetro MB_DB de la instrucción
MB_B Modbus_Comm_Load debe estar conectado a este parámetro
MB_DB Plaza bursátil norteamericana
MB_DB de la instrucción Modbus_Master.
1) Los módulos de comunicación PtP responden según lo definido en la especificación Modbus. Para mantener
una respuesta como con CP 341, CP 441 2 y ET 200SP 1SI para Modbus, utilice el parámetro "Compatibility_Mode".
El programa puede escribir valores en las etiquetas Blocked_Proc_Timeout y Extended_Addressing para controlar las
operaciones del maestro Modbus.
Reglas para la comunicación por ModbusMaster
• Se debe ejecutar Modbus_Comm_Load para configurar un puerto de modo que la instrucción Modbus_Master pueda
comunicarse con este puerto. • Un puerto que se utilizará como maestro Modbus no debe ser utilizado por
Modbus_Slave. Puede utilizar una o varias instancias de Modbus_Master 1) con este puerto. Pero todas las versiones
de Modbus_Master deben usar la misma base de datos de instancia para el puerto.
3
Machine Translated by Google
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
• Las instrucciones de Modbus no utilizan eventos de alarma de comunicación para controlar el proceso de
comunicación. Su programa debe consultar la instrucción Modbus_Master para los comandos completados
(DONE, ERROR).
• Recomendamos llamar todas las ejecuciones de Modbus_Master para un puerto específico desde un OB
de ciclo de programa. Las instrucciones del maestro Modbus solo se pueden ejecutar en un ciclo de
programa o en un nivel de procesamiento cíclico/controlado por tiempo. No se pueden procesar en
diferentes niveles de procesamiento. La interrupción de prioridad de una instrucción maestra Modbus por
otra instrucción maestra Modbus en un nivel de procesamiento con mayor prioridad da como resultado una
operación incorrecta. Las instrucciones del maestro Modbus no se pueden procesar en los niveles de error
de tiempo, diagnóstico o arranque.
1) "Instancia de maestro Modbus" aquí significa una llamada de la instrucción Modbus_Master con la
misma interconexión a una instrucción Modbus_Comm_Load y la misma configuración para los
parámetros MB_ADDR, MODE, DATA_ADDR y DATA_LEN.
Ejemplo
Modbus_Master se llama con MODE=0 y DATA_ADDR=10
Este trabajo ahora está activo hasta que se complete con DONE=1 o ERROR=1 o hasta que expire el
tiempo de monitoreo configurado en el parámetro Blocked_Proc_Timeout. Si se inicia un nuevo
comando después de que expire el tiempo de vigilancia y antes de que se haya completado el comando
anterior, el comando anterior se cancela sin un mensaje de error.
Si, mientras se ejecuta este comando, la instrucción se llama por segunda vez con los mismos datos
de instancia pero con diferentes configuraciones de parámetros MODE y DATA_ADDR, esta segunda
llamada finaliza con ERROR=1 y STATUS=8200.
Llamar a la instrucción Modbus_Master con diferentes configuraciones de parámetros Si en su
programa se realizan varias llamadas a la instrucción Modbus_Master con diferentes configuraciones
para MB_ADDR, MODE, DATA_ADDR o DATA_LEN, debe asegurarse de que solo una de estas
llamadas esté activa en un momento dado. De lo contrario, se emite el mensaje de error 16#8200 (la
interfaz está ocupada con una solicitud en curso).
Si una llamada no se puede procesar en su totalidad, el perro guardián se activa mediante el parámetro
Blocked_Proc_Time out y finaliza el comando en curso.
Parámetro REQ
FALSO = sin solicitud; TRUE = solicitud de envío de datos al esclavo Modbus
Habilitar la transmisión solicitada. Este transmite el contenido del búfer a la interfaz de comunicación
punto a punto.
Utilice los parámetros DATA_ADDR y MODE para seleccionar el código de función
Modbus.
DATA_ADDR (Dirección de inicio Modbus en el esclavo): Especifica la dirección de inicio de los datos
a los que se accede en el esclavo Modbus.
La instrucción Modbus_Master utiliza la entrada MODE en lugar de una entrada de código de función.
La combinación de MODE y DATA_ADDR especifica el código de función que se utiliza en la trama
Modbus real. La siguiente tabla muestra cómo se relacionan el parámetro MODE, el código de función
Modbus y el rango de direcciones Modbus en DATA_ADDR.
Funciones modbus
4
Machine Translated by Google
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
Bits por solicitud Leer bits de salida:
0 2000/199 01
1 a 9999 1 a 0 a 9998
2 1
Bits por solicitud Leer bits de entrada:
0 1000 2000/199 02
a 19999 1 a 0 a 9998
1 2 1
Palabras por pedido Leer registro de espera:
4000
a 49999 1 a 125/124 1 0 a 9998
0 1 03
4000
a 465535 1 a 125/124 1 0 a 65534
01
Palabras por solicitud Leer palabras de entrada:
0 3000 04
a 39999 1 a 125/124 1 0 a 9998
1
Bits por solicitud Escribe un bit de salida:
1 05
1 a 9999 1 0 a 9998
1 palabra por solicitud Escriba un registro de retención:
4000
a 49999 1 0 a 9998
1 1 06
4000
al 465535 1 0 a 65524
01
Bits por solicitud Escribir múltiples bits de salida:
1 1968/196 15
1 a 9999 2 a 0 a 9998
0 1
Escriba varios registros de
Palabras por solicitud retención:
4000
1 a 49999 2 a 123/122 0 a 9998
1
dieciséis
4000
0 a 65534
01 a 465534 2 a 123/122 1
Escriba uno o varios bits
Bits por solicitud
de salida:
2 2 15
1968/196
1 a 9999 1 a 0 a 9998
0 1
Escriba uno o varios registros
Palabras por solicitud
de espera:
4000
2 2 a 49999 1 a 123 0 a 9998
1
dieciséis
4000
a 465535 1 a 122 1 0 a 65534
01
Tanto los operadores DATA_ADDR como Lea la palabra de estado y
11 DATA_LEN de Modbus_Master se ignoran 11 el contador de eventos de la
con esta función. comunicación esclava. El STA
5
Machine Translated by Google
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
Tu palabra indica ocupado (0
no ocupado, 0xFFFF
ocupado). El contador de
eventos se incrementa por cada
procesamiento exitoso de un
marco.
Verifique el estado del esclavo
con el código de diagnóstico de
1 palabra por solicitud datos 0x0000 (prueba de bucle
80 08 invertido: el esclavo devuelve un
eco de la solicitud)
1
Reinicie el contador de eventos del
1 palabra por solicitud esclavo usando el código de
81 08 diagnóstico de datos 0x000A
1
3 a
10,
12 a
79,
82 a Reservado
103,
105
a
255
1 En el direccionamiento ampliado, consulte el parámetro Extended_Adressing, la longitud máxima de datos
es 1 byte o 1 palabra más corta, según el tipo de datos de la función.
2 MODE 2 le permite escribir uno o más bits de salida y uno o más registros de retención utilizando las funciones
Modbus 15 y 16.
El MODO 1 utiliza las funciones Modbus 5 y 6 para escribir 1 bit de salida y 1 registro de retención, y las
funciones Modbus 15 y 16 para escribir múltiples bits de salida y múltiples registros de retención.
3 Lo siguiente se aplica a S7300/400/WinAC: No es compatible.
Parámetro DATA_PTR El
parámetro DATA_PTR apunta a la dirección de la DB o de la memoria de bits en la que se realiza la lectura o la
escritura. Si utiliza un bloque de datos, debe crear un bloque de datos global que proporcione la memoria de datos
para los procesos de lectura y escritura en los esclavos Modbus.
Nota
S71200/1500 El bloque de datos direccionado mediante DATA_PTR debe soportar el direccionamiento directo
El bloque de datos debe permitir el direccionamiento directo (absoluto) y simbólico.
Nota
Usando el código de función 5
6
Machine Translated by Google
Modbus_Master: comunicarse como maestro Modbus (S71200, S71500)
El código de función 5 se utiliza para establecer o eliminar bits individuales.
Cuando se establece un bit, se debe especificar el valor "16#FF00" en la primera palabra del DB
direccionado o área de memoria de bits a través de DATA_PTR. • Con S71200, el valor "16#0100"
también se puede especificar para establecer un bit. • Para restablecer un bit, se debe especificar el
valor "16#0000" en la primera palabra del DB o área de memoria de bits direccionada a través de DATA_PTR.
Todos los demás valores se rechazan con ERROR = TRUE y STATUS = 16#8384.
Estructuras de bloques de datos para el parámetro DATA_PTR • Estos
tipos de datos son válidos para leer palabras del rango de direcciones Modbus (DATA_PTR) 30001 a 39999,
40001 a 49999 y 400001 a 465535, así como para escribir palabras en el rango de direcciones Modbus
(parámetro DATA_PTR) 40001 a 49999 y 400001 a 465535.
o Array estándar de tipos de datos WORD, UINT o INT o
Estructura nombrada del tipo WORD, UINT o INT en la que cada elemento tiene un nombre único y un tipo
de datos de 16 bits. o Estructura compleja con nombre en la que cada elemento tiene un nombre único
y un nombre de 16 bits o
tipo de datos de 32
bits. • Para leer y escribir bits para el rango de direcciones Modbus (parámetro DATA_PTR) 00001 a 09999 y
para leer bits de 10001 a 19999. o Campo estándar de tipos de datos booleanos. o Estructura booleana
nombrada a partir de etiquetas booleanas claramente nombradas. • No es imprescindible, pero sí
aconsejable, asignar a cada instrucción Modbus_Master su propia área de memoria separada. La razón de
esto es que la destrucción de datos es mucho más probable si varias instrucciones Modbus_Master están leyendo
y escribiendo en la misma área de memoria.
• No es necesario que las áreas de datos para DATA_PTR estén ubicadas en el mismo bloque de datos global.
Puede crear un bloque de datos con varias áreas para procesos de lectura Modbus, un bloque de datos para
procesos de escritura Modbus o un bloque de datos para cada estación esclava.
Versiones de instrucciones
La versión 3.0 es funcionalmente idéntica a la versión 2.4 y su número de versión solo se incrementó debido a
medidas internas.
7