Nothing Special   »   [go: up one dir, main page]

Modbus Flowcode Sergio

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Componente: Modbus Master (Comunicaciones: Sistema)

Componente Modbus Master

Componente Modbus para hablar con hardware compatible con Modbus a través de RS232 o
RS485.

Ejemplos

CT-2EA Modbus Electronic kWh Meter

Ejemplo para hablar con un CT-2EA Modbus Electronic kWh Meter

 ModbusDemo

Configuración para comunicarse a través de UART1 incorporado o COM3 simulado

Datos de consola generados por el ejemplo de trabajo que se ejecuta en la simulación y se


comunica a través del puerto COM.

Ejemplo de maestro y esclavo usando vNet


Ejemplo de comunicación usando Modbus Master y Slave usando dos instancias de Flowcode y
el componente del inyector vNet.

 ModbusMasterDemo

 ModBusSlaveDemo

Direccionamiento

En Modbus, el protocolo de direccionamiento se ve así.

Dirección de Dirección
Tipo de Nombre Dirección Dirección inicio del final de
datos común inicial final código de código de
flujo flujo

Bits, valores
Bobinas
binarios, 00001 10000 00 9999
Modbus
banderas

Entradas Entradas
10001 30000 00 19999
digitales binarias

Entradas Entradas
30001 40000 00 9999
analógicas binarias

Valores
Registros
análogos, 40001 60000 00 19999
Modbus
variables

En Flowcode, cada sección comienza desde 0, por lo que el rango de direcciones es el que se
muestra.

Referencia de macro descargable

ReadHoldingRegister

Este comando solicita los valores de registro de retención analógico comenzando desde el
inicio RegAddress y pasando a RegAddress más RegCount.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

UINT RegAddress

Dirección: 0 = 40001, 1 = 40002, ...

UINT RegCount
Número de registros consecutivos para leer, comenzando desde RegAddress

Valor de retorno

BYTE

Fuerza Múltiple Bobinas

Este comando escribe el contenido de una serie de bobinas discretas en la ubicación que
comienza en CoilAddress hasta CoilAddress + CoilCount.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

Dirección de bobina UINT

Dirección de la bobina: 0 = Bobina1, 1 = Bobina2, 2 = Bobina3, ...

UINT CoilCount

Número de bobinas consecutivas para intentar leer

BYTE CoilData

Una matriz de bytes que contiene cada uno 8 valores de bobina de 1 bit

Valor de retorno

BYTE

ForceSingleCoil

Este comando escribe el contenido de una bobina discreta en la ubicación CoilAddress.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

Dirección de bobina UINT

Dirección de la bobina: 0 = Bobina1, 1 = Bobina2, 2 = Bobina3, ...

BYTE CoilState

0 = apagado, 1 = encendido
Valor de retorno

BYTE

Obtener una respuesta

Recopila tantos datos entrantes como sea posible y se almacena en el búfer de respuesta. El
número de bytes recibidos se almacenará en la ubicación 0 del búfer de respuesta.

El valor de retorno indica la validez del CRC entrante. 0 = OK, 1 = falla de CRC, 255 = Sin datos

Parámetros

Esta macro no tiene parámetros.

Valor de retorno

BYTE

ReadCoilStatus

Este comando solicita el estado de ENCENDIDO / APAGADO de bobinas discretas comenzando


desde el inicio CoilAddress y pasando a CoilAddress más CoilCount.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

Dirección de bobina UINT

Dirección de la bobina: 0 = Bobina1, 1 = Bobina2, 2 = Bobina3, ...

UINT CoilCount

Número de bobinas consecutivas para intentar leer

Valor de retorno

BYTE

GetResponseByte

Lee un byte de la última respuesta recibida. Los parámetros del índice especifican qué byte
leer de nuevo.

Parámetros
Índice  BYTE

0 = NumBytes, 1 = SlaveAddress, 2 = FunctionCode / ExceptionCode, .....

Valor de retorno

BYTE

ReadInputStatus

Este comando solicita el estado de ENCENDIDO / APAGADO de entradas discretas que


comienzan desde el DataAddress de inicio y pasan a DataAddress más DataCount.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

Dirección de datos UINT

Dirección de entrada: 0 = 10001, 1 = 10002, 2 = 10003, ...

UINT DataCount

Número de entradas consecutivas para leer, comenzando desde RegAddress

Valor de retorno

BYTE

ChangeFrameType

El tipo de marco predeterminado es el tipo establecido en las propiedades del componente.

Parámetros

Tipo de  BYTE

0 = Modbus RTU / 1 = Modbus ASCII

Valor de retorno

Esta llamada no devuelve un valor.

PresetSingleRegister

Este comando escribe el contenido de una salida analógica que contiene el registro en la
ubicación RegAddress.
Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

UINT RegAddress

Dirección: 0 = 40001, 1 = 40002, ...

UINT RegValue

Valor para enviar al registro seleccionado

Valor de retorno

BYTE

ReadInputRegister

Este comando solicita los valores de registro de entrada analógica comenzando desde el inicio
RegAddress y pasando a RegAddress más RegCount.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros

UINT SlaveID

La identificación del esclavo MODBUS

UINT RegAddress

Dirección de entrada: 0 = 10001, 1 = 10002, 2 = 10003, ...

UINT RegCount

Número de entradas consecutivas para leer, comenzando desde RegAddress

Valor de retorno

BYTE

PresetMultipleRegisters

Este comando escribe el contenido de varios registros de retención de salida analógica que
comienzan en la ubicación RegAddress hasta la ubicación RegAddress + RegCount.

Devuelve 0 para éxito, 1 para falla de CRC y 255 para ninguna respuesta.

Parámetros
UINT SlaveID

La identificación del esclavo MODBUS

UINT RegAddress

Dirección: 0 = 40001, 1 = 40002, ...

UINT RegCount

Número de registros consecutivos para escribir, comenzando desde RegAddress

UINT RegValue

Matriz de valores para enviar a los registros

Valor de retorno

BYTE

ChangeBaud

Cambia la velocidad de transmisión UART.

1 = 1200/2 = 2400/3 = 4800/4 = 9600/5 = 19200/6 = 31250

7 = 38400/8 = 57600/9 = 115200

Parámetros

BYTE Baudios

La nueva velocidad de transmisión (0 = 1200, 9 = 115200)

Valor de retorno

Esta llamada no devuelve un valor.

Inicializar

Inicia el UART para permitir las comunicaciones.

Parámetros

Esta macro no tiene parámetros.

Valor de retorno

Esta llamada no devuelve un valor.

Referencia de macro de simulación


Este componente no contiene macros de simulación.

Referencia de propiedad

Canal

Esta propiedad es de tipo Lista fija de entradas y puede referenciarse con el nombre de


variable cal_uart :: CHANNEL .

Selector de canales UART

Los canales de software se golpean un poco con pines de E / S genéricos, pero no son tan
confiables como los canales de hardware.

Los canales de hardware utilizan el periférico seleccionado a bordo del microcontrolador de


destino.

TX

Esta propiedad es de tipo Pin digital único y puede referenciarse con el nombre de


variable cal_uart :: TX .

Pin que se utilizará para transmitir datos

RX

Esta propiedad es de tipo Pin digital único y puede referenciarse con el nombre de


variable cal_uart :: RX .

Pin que se utilizará para recibir datos

Opciones de baudios

Esta propiedad es de tipo Lista fija de entradas y puede referenciarse con el nombre de


variable cal_uart :: BAUD_LIST .

Selector de opciones de velocidad de transmisión

Velocidad de transmisión

Esta propiedad es de tipo Entero firmado y puede referenciarse con el nombre de


variable cal_uart :: BAUD .

Sin información adicional

Autobús

Esta propiedad es de tipo Lista fija de entradas y se puede hacer referencia con el nombre de
variable BusType .

Especifica el modo de bus que se utiliza,

RS232 le permite conectar un solo nodo maestro a un solo nodo esclavo.

RS485 le permite conectar un solo nodo maestro a múltiples nodos esclavos.


Tipo de marco

Esta propiedad es de tipo Lista fija de entradas y puede referenciarse con el nombre de


variable FrameType .

Cambia entre las formas RTU y ASCII de Modbus

Reciba el tamaño del almacenador intermediario

Esta propiedad es de tipo Entero sin signo y se puede hacer referencia a ella con el nombre de
variable ReceiveBufferSize .

Número máximo de bytes que puede contener el búfer de recepción

Bytes de ID de esclavo

Esta propiedad es de tipo Entero sin signo y puede referenciarse con el nombre de


variable AddressBytes .

Número de bytes utilizados al pasar una ID de esclavo, generalmente 1 pero a veces 2

Intervalo silencioso

Esta propiedad es de tipo Entero sin signo y se puede hacer referencia a ella con el nombre de
variable SilentInterval .

Configura cuánto tiempo esperar después de cada comando maestro modbus antes de que se
pueda enviar otro comando.

Se requiere un intervalo silencioso de 60 ms como mínimo para garantizar la recepción exitosa


de la próxima transmisión.

0 = sin retraso

60 = 60 ms - Predeterminado

Rango: 0-65535

Tiempo de espera de recepción UART

Esta propiedad es de tipo Entero sin signo y puede referenciarse con el nombre de


variable RXTOUT .

Cantidad de tiempo de espera antes de que se agote el tiempo de espera al escuchar la


respuesta de un esclavo.

Rango: 0-255.

0 = no esperes

1 - 254 = X ms

255 = espera para siempre

Recibir recuento de tiempo de espera

Esta propiedad es de tipo Entero sin signo y puede referenciarse con el nombre de


variable TOUTCNT .
Número de tiempos de espera seguidos para esperar hasta que decidamos que el esclavo no
está respondiendo o ha terminado de responder

a un mensaje

Rango: 0-255

0 = Solo primer tiempo de espera

1 = primer tiempo de espera + 1

2 = primer tiempo de espera + 2

Etiqueta

Esta propiedad es de tipo Línea de texto y puede referenciarse con la etiqueta de nombre de


variable .

Una etiqueta de texto que aparecerá en el objeto del panel Modbus.

Alcance de rastros

Esta propiedad es de tipo Verdadero o falso y puede referenciarse con el nombre de


variable cal_uart :: ScopeTraces .

Selecciona si las trazas del alcance se agregan automáticamente a la ventana del registrador de
datos o no.

Simulación: dibuja una aproximación de los datos de UART en la traza del alcance.

ICT: configura el seguimiento de alcance para los datos entrantes y agrega la decodificación
de paquetes UART en la BAUD correcta.

Datos de consola

Esta propiedad es de tipo Verdadero o falso y se puede hacer referencia con el nombre de


variable cal_uart :: ConsoleData .

Selecciona si los datos de la consola se generan automáticamente o no

Columnas de consola

Esta propiedad es de tipo Entero sin signo y se puede hacer referencia a ella con el nombre de
variable cal_uart :: ConsoleColumns .

Número de caracteres que se pueden mostrar en una sola línea de la consola.

Fuente de datos

Esta propiedad es de tipo Lista fija de entradas y se puede hacer referencia con el nombre de
variable cal_uart :: DataSource .

Fuente de datos de simulación utilizada para permitir que el componente se conecte a varios
dispositivos remotos

Nada: los datos de simulación se ignoran

Puerto COM: enruta los datos de comunicación hacia y desde un puerto COM físico o virtual
Inyector: enruta los datos de comunicación a través de un componente de inyector de datos
en el Panel.

También podría gustarte