ModBus Constructor

Anuncio
ModBus Constructor
Guía de incio rápido
© 2006 by KurySoft. Todos los derechos reservados
Web: www.kurysoft.com
Fecha: 28-Nov-2006
ModBus Constructor
ÍNDICE
1.
INTRODUCCIÓN............................................................................................ 3
2.
DESCRIPCIÓN DE DISPOSITIVOS MODBUS.............................................. 4
2.1. Coriolis Mass Flow Meter. .......................................................................... 4
2.1.1.
2.1.2.
2.1.3.
2.1.4.
T1. Mass Flow Meter Holding Registers. .................................................................. 4
T2. Mass Flow Meter Coils........................................................................................ 6
T3. Mass Flow Meter Command. .............................................................................. 6
T4. Mass Flow Metter Exception Responses. ........................................................... 6
2.2. Descripción de los parámetros principales................................................. 6
2.3. Distribución de los campos de datos en la forma..................................... 12
2.4. Añadir peticiones. ..................................................................................... 13
2.5. Parámetros del simulador......................................................................... 18
2.5.1. T5. Discrete value simulation. ................................................................................. 18
2.5.2. T6. Analogous value simulation. ............................................................................. 18
3.
UTILIZAR EL DISPOSITIVO MODBUS........................................................ 20
4.
TÉRMINOS Y DEFINICIONES..................................................................... 22
4.1. Objetos. .................................................................................................... 22
4.2. Tipos de datos de Modbus Constructor.................................................... 22
4.2.1. Numeric types ......................................................................................................... 22
4.2.2. Discrete types ......................................................................................................... 22
4.3. Data encoding. ......................................................................................... 22
4.3.1. Long. .......................................................................................................................23
4.3.2. Float. ....................................................................................................................... 23
4.3.3. Double..................................................................................................................... 23
4.4. Reglas de aplicación de las funciones de Modbus................................... 23
4.5. Format examples...................................................................................... 24
4.5.1.
4.5.2.
4.5.3.
4.5.4.
Numeric types ......................................................................................................... 24
Discrete types ......................................................................................................... 24
Default for numeric types ........................................................................................ 25
Default for discrete types ........................................................................................ 25
Guía de inicio rápido
-2-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
1. INTRODUCCIÓN.
¡Gracias por utilizar Modbus Constructor!
Modbus Constructor fue creado para ayudar a los elaboradores, programadores y
usuarios a probar y ajustar los dispositivos Modbus.
Modbus Constructor permite rápidamente crear modelos para administrar datos en
dispositivos MODBUS. En el mercado existen muchos programas similares, pero en ellos los
datos se visualizan como columnas de números abstractos de un mismo tipo, que resultan
difíciles de percibir y analizar, más aun si el dispositivo utiliza en sus registros datos de distintos
tipos aleatorios.
En Modbus Constructor podrá trabajar con los principales tipos de datos: “integer”, “long”
(integer), “float”, “double” (float) y “byte”, para registros individuales o grupos de registros. Los
tipos enteros podrán ser representados como “signed”, “unsigned”, “HEX” o “binary”. Modbus
Constructor permite la representación de un mismo registro de distintas formas. Por ejemplo, si
dos registros adyacentes contienen números “long”, se les podrá dar campos de datos
adicionales que contengan registros de “HEX” o “unsigned integer”.
Los campos de datos correspondientes a los elementos de datos (registros o elementos
discretos) podrán ser ordenados en el proyecto a su gusto. Puede especificar el color, tamaño,
tipo de letra o anotación para cada campo. Los elementos discretos que ocupan áreas de
dirección continuas pueden compartir un campo, así son más fáciles de percibir y ahorran
espacio.
Modbus Constructor permite crear para cada campo de datos del registro transformación
linear, lo que, a su vez, permite convertir las unidades internas en unidades convencionales o
de cualquier otro sistema. Por ejemplo, si el registro contiene valores de presión en
miliamperios, en otras palabras, el equipo recibe la señal de salida del sensor de presión en
valores de corriente, se puede representar este valor en kgf/cm2 o lb/pulg2.
Modbus Constructor permite realizar peticiones automáticas para todas las funciones
compatibles (01, 02, 03, 04, 05, 06, 15, 16, 22, 23), Que serán realizadas en concordancia con
el período individual dado para cada petición.
Es posible determinar las peticiones que se realizarán por voluntad del usuario con ayuda
del menú o diálogos. Es cómodo para establecer los comandos de control, cambiar los
parámetros y para realizar peticiones de prueba.
El proyecto se puede utilizar para cuestionar el dispositivo en el modo “Master”, y para
simular el dispositivo en el modo “Slave”. Además, en el modo “Slave” es posible establecer
cambios de datos según cualquier regla determinada.
Modbus Constructor permite añadir al proyecto inscripciones, marcos o ilustraciones.
Modbus Constructor incluye el programa utilitario Modbus Reader, que utiliza el modelo
creado con ayuda de Modbus Constructor para trabajar con el dispositivo. Modbus Reader es
un freeware. Si usted ha creado un proyecto para algún dispositivo, sus clientes no tendrán que
comprar Modbus Constructor – será suficiente descargar el freeware Modbus Reader.
Modbus Reader permite trabajar con varios proyectos al mismo tiempo, es decir,
cuestionar o simular varios dispositivos utilizando uno o varios puertos de comunicación.
Además de las peticiones determinadas en el proyecto, es posible modificar elementos de
datos del dispositivo, con solo hacer clic en el campo de datos asociado, tanto en el modo
“Master” (mandando la petición adecuada), como en el modo “Slave”.
Guía de inicio rápido
-3-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
2. DESCRIPCIÓN DE DISPOSITIVOS MODBUS.
En este capítulo, paso por paso, aprenderá ha crear proyectos con el dispositivo “Coriolis
Mass Flow Meter” (Contador de flujo másico “Coriolis”) como ejemplo.
ƒ describir registros “Holding” y “Coils” de este dispositivos
ƒ transformar datos en unidades estándares
ƒ utilizar formateo de datos
ƒ colocar campos de datos
ƒ definir las peticiones (comandos) automáticas y controladas desde el menú
ƒ especifica los parámetros para el simulador en el modo “Slave”
2.1. Coriolis Mass Flow Meter.
Veamos la descripción del dispositivo. Este equipo mide la masa de líquidos o gases
pasada por él. Funciona tanto en una como en otra dirección. Si el flujo pasa en dirección
correcta, el conteo incrementa, si pasa en dirección inversa el conteo se realiza hacia atrás, y
puede llegar a valores negativos.
Además, puede funcionar como dosímetro. Está equipado con dos salidas discretas
(colectores abiertos) para controlar la válvula o el motor en ambos sentidos de flujo. La porción
la indica el usuario. Si el valor de la porción indicada es positivo, se activa el flujo en dirección
correcta, si el valor es negativo – en dirección inversa.
El dispositivo utiliza la interfaz RS-485, protocolo Modbus RTU.
Inicie Modbus Constructor:
Start ⇒Programs ⇒ModbusConstructor⇒MBConstructor.exe
Cree un nuevo proyecto: File⇒New
Guarde el proyecto en un archivo nombrado “Coriolis.mbc”: File⇒Save as…
Analicemos el mecanismo del protocolo de intercambio Modbus para este contador de
flujo. La tabla Т1 representa la descripción de los registros del contador de flujo.
2.1.1. T1. Mass Flow Meter Holding Registers.
Función
Dirección (decimal)
Tipos de datos
Tipo de dispositivo
0000
unsigned integer
Read-only
Versión de memoria fija
0001
unsigned integer
Read-only
Dirección Modbus
0002
unsigned integer
Instalación de fábrica 1
unsigned integer
4800, 9600 o 19200 baudios
Instalación de fábrica 9600
Al escribir cualquier valor distinto a
4800, 9600 o 19200 obtiene el valor
9600
Velocidad de transmisión
0003
Notas
Paridad
0004
byte (MSB)
0-sin paridad
1-paridad impar
2-paridad par
Instalación de fábrica 2 (par)
Bit de parada
0004
byte (LSB)
0 – 1 bit de parada
2 – dos bits de parada
Guía de inicio rápido
-4-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Función
Porción
Contador másico
Dirección (decimal)
0005
0007
Tipos de datos
Notas
long (1)
(3) Una unidad equivale a 0.1 kg.
long (1)
Una unidad equivale a 0.1 kg.,
puede ser negativo
Al leer visualiza la masa acumulada
después de borrar el contador
Flujo másico
0009
integer
Una unidad equivale a 0.1 kg/min.
Positivo con flujo en dirección
correcta
Negativo con flujo en dirección
inversa
Densidad
0010
unsigned integer
Una unidad equivale a 1000/32768
kg/m3
Temperatura
0011
integer
Una unidad equivale a 250/511 ºC
Presión
0012
unsigned integer
Señal del sensor de presión
excesiva 4-20 mА
1023 corresponde a 20 mA (40
kgf/cm2)
205 corresponde 4 mA (0 kgf/cm2)
Tiempo de medida
0013
unsigned long (1)
segundos
Registro de control
0015
unsigned integer
(2)
Masa por pulsación
0016
unsigned integer
Una unidad equivale a 0.1 kg.
Coeficientes de
calibración
0017-0024
Permite la grabación con el jumper
J7 instalado
Reserva
0025-0031
no se utiliza en esta versión
(1) Los “long integres” se instalan en los registros de la siguiente manera:
la palabra superior en el primer registro, la inferior en el segundo.
Por ejemplo, el número 01020304h (16909060 en decimal) será instalado así:
registro A+0: 0102h
registro A+1: 0304h
transmitido: 01 02 03 04
(2) Al leer visualiza el régimen de trabajo:
0 – modo de medida (por defecto)
1 – modo de dosímetro inactivo. Las dos válvulas cerradas.
2 – modo de dosímetro activo. Una de las válvulas abierta, la porción se mide.
Al grabar realiza las siguientes operaciones:
0 – pasa al modo de medida del modo de dosímetro inactivo. Se ignora si el dosímetro está en modo
activo.
1 – si está en modo de medida, pasa al modo de dosímetro inactivo, borra los contadores de masa y
tiempo, cierra las dos válvulas.
Si está modo de dosímetro activo, pasa al modo dosímetro inactivo.
2 – empieza a medir la porción de acuerdo con el valor del registro 5 (tamaño de la porción)
4 – borra los contadores de masa y tiempo (solo en los modos 0 y 1)
8 – ajusta el valor cero de flujo (solo en los modos 0 y 1)
(3) se utiliza para guardar el tamaño de las porciones, cuando funciona en modo de dosímetro.
Una unidad equivale a 0.1 kg.
Guía de inicio rápido
-5-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
La tabla Т2 representa la descripción de los “Coils”.
2.1.2. T2. Mass Flow Meter Coils.
Dirección
(decimal)
Función
Tipos de datos
Notas
Salida de control del flujo en
dirección correcta
0000
Read-Only en el modo de dosificador
1-válvula abierta
0- válvula cerrada
Salida de control del flujo en
dirección inversa
0001
Read-Only en el modo de dosificador
1- válvula abierta
0- válvula cerrada
Reserva
00020031
no se utiliza en esta versión
El contador de flujo másico es compatible con los siguientes comandos y excepciones:
2.1.3. T3. Mass Flow Meter Command.
Código de
función
Tipo de comando
01
Read
Read coil status
03
Read
Read holding registers
05
Write
Write single coil
06
Write
Write single register
15
Write
Write multiple coils
16
Write
Write multiple registers
Nombre
2.1.4. T4. Mass Flow Metter Exception Responses.
Code
Name
Description
01
Illegal function
Function code not supported.
02
Illegal data address
The data address in the query is not an allowable address
for the device.
03
Illegal data value
A value contained in the query data field is not an
allowable value for the device.
2.2. Descripción de los parámetros principales.
Describa los registros y los “Coils” del contador de flujo. En el menú Settings elija
Objects:
Settings⇒ Objects
Guía de inicio rápido
-6-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Aparecerá una forma parecida a una hoja de cálculo electrónica. En la columna Object,
destaque quince celdas (la cantidad de registros del contador de flujo). Haga clic con el botón
derecho en el área selccionada y aparecerá un menú desplegable con los tipos de objetos.
Haga clic en Holding register.
Ahora debe dar a cada registro dirección y nombre de acuerdo con la descripción.
haga doble clic con el botón izquierdo en la primera celda vacía de la columna
Label
escriba el nombre del registro “Device type”
haga doble clic con el botón izquierdo en la celda adyacente a la columna
Address, escriba “0”
escriba los nombres y las direcciones de los demás elementos.
Guía de inicio rápido
-7-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Para representar los números (long, float y double) se utilizan varios registros, y por eso
pueden representarse de distintas formas. En la mayoría de los casos los fabricantes hacen
indicaciones explícitas sobre como deberán representarse estos números. Para determinar el
modo de almacenamiento de los números en los registros, utilice la sección Data Encoding.
En la descripción vemos que el dispositivo utiliza datos de distintos tipos. Especifique los
tipos necesarios.
haga clic con el botón derecho en la columna Data y elija en el menú
desplegable el punto necesario.
si es necesario, ponga Unsigned en la columna Show.
Habíamos especificado como unidad de masa el kilogramo (kg), pero en el contador de
flujo se utiliza como unidad 0.1 kg. Modbus Constructor tiene un mecanismo especial para esta
clase de problemas. Introduzca la expresión Ax+B en la columna Scale y el número del
registro, o grupo de registros (si el número es complejo de tipo long, float o double)
correspondiente sufrirá una transformación linear. Esto resulta cómodo al utilizar unidades de
medida diferentes a las que usa el dispositivo.
Escriba en la columna Scale para los registros 5, 7, 9 y 15 la expresión “0.1x+0”. De este
modo cambiará la unidad interna del contador a kilogramos.
Guía de inicio rápido
-8-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Del mismo modo puede cambiar la densidad:
D = x * 1000 / 32768 = 0.03052x
Y la temperatura:
T = x * 250 / 511 = 0.489x
Con la presión resulta un poco más complicado, hay que resolver una ecuación:
Presión P = Ax + B
x1 = 205,
P1 = 0
⇒
B = - 205 * A
x2 = 1023,
P2 = 40
⇒
40 = A*1023 + 205*B
A = 40/(1023 - 205) = 0.049
B = -205*A=-205*0.049 = -10.045
Como podemos ver no es tan difícil transformar los valores en unidades corrientes. Bueno
y ¿que hay con el tiempo? Para pequeños intervalos de tiempo los segundos son
convenientes, pero cuando se trata de cientos y miles de segundos, resultan incómodos. Para
resolver esto formateamos.
El formateo de datos se utiliza:
en primer lugar, para hacer los números más claros
en segundo lugar, para evitar que las cifras sobrellenen el campo de salida.
Guía de inicio rápido
-9-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Para cada tipo de datos el formato está asignado por defecto. No hay necesidad de elegir
el formato por defecto, si el existente le conviene deje el campo vacío. Utilice el formato por
defecto para crear un formato propio. Más detallado sobre las reglas de formateo en la sección
Format examples.
Haga clic con el botón derecho en la fila “Portion, kg” columna Format.
Elija el punto Default. En el campo aparecerá la siguiente cadena de
caracteres “## ###”.
El contador másico mide la masa y el flujo de masa con una exactitud de 0.1 kg y 0.1
kg/min respectivamente. Si dejar el formato por defecto, no se verá la parte fraccionaria. Para
mostrarla debemos añadir a la cadena de caracteres “.0”. Obtendremos:
“# ### ### ##0.0” para la masa y la porción
“## ##0.0” para el flujo
Así como el conversor analógico-digital de la señal del sensor de presión presenta una
resolución de 0.05 kg/cm2, tiene sentido mostrar dos dígitos después de la coma decimal:
“## ##0.00”
Escriba en el campo Default value del registro “Presión, kgs/cm2” el número
“10”.
Apriete “Enter”. El valor será mostrado como “10.00”.
La temperatura y la densidad déjelos enteros.
Hagamos que el tiempo se visualice de dos modos. El primer modo lo dejamos en
segundos, el segundo modo será formateado en “hh:mm:ss”, para mostrar el tiempo en el
formato “horas: minutos: segundos”.
haga doble clic en el campo vacío de la columna Object
elija Holding register
haga doble clic en la misma fila de la columna Data
elija el tipo Long
elija el atributo Unsigned en la columna Show
en el campo Label escriba “Time, hh:mm:ss”
escriba en el campo la dirección “13”
Guía de inicio rápido
- 10 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
escriba en el campo Format “hh:mm:ss”
escriba en el campo Default value “1000” (tiempo en segundos)
haga clic sobre el nombre de la columna Address, para poner los registros en
orden ascendente
1000 serán mostrados como “00:16:40”
Y finalmente describa los “Coils” del medidor de flujo:
destaque con el ratón dos campos vacíos en la columna Object
haga clic sobre ellos con el botón derecho
en el menú desplegable elija “Coils”
nombre un Coil “flujo correcto”, asígnele la dirección “0”
nombre el otro Coil “flujo inverso”, asígnele la dirección “1”
Ha descrito las características principales del medidor de flujo. Apriete el botón “OK”.
Guarde el proyecto: File⇒Save.
Guía de inicio rápido
- 11 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
2.3. Distribución de los campos de datos en la forma.
En la esquina superior derecha de la forma verá los campos de datos y las etiquetas de
los objetos hechos por nosotros. Haga clic con el botón izquierdo en cualquier campo en
blanco. Se resaltará con el color azul oscuro. Apriete el botón izquierdo en el campo
selccionado y; sin soltar el botón, muévalo al lado. Para selecciones múltiples apriete el botón
Ctrl, y, sin soltarlo, destaque los objetos necesarios.
Haga lo mismo con los demás campos, hasta que las etiquetas estén en su sitio. Tenga
en cuenta, que cuando mueve un campo junto con el se mueve la etiqueta, pero no al contrario
– cuando usted mueve la etiqueta el campo se queda en su sitio.
Destaque la etiqueta ”Mass counter, kg”. Estírela hacia la izquierda hasta que ocupe una
fila. Haga lo mismo con las demás etiquetas.
Para mejor legibilidad separe los campos de los parámetros en prueba de los demás
campos. Empiece por la esquina superior derecha.
Para separar visualmente los grupos de campos utilice marcos. Haga clic en la forma con
el botón derecho. En el menú desplegable elija Add ⇒ Frame. Cambie la posición y el tamaño
del marco para colocarlo alrededor del grupo.
Haga lo mismo con los campos pertenecientes a control y los parámetros de
comunicación.
Guía de inicio rápido
- 12 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Apriete Ctrl+S para guardar el proyecto.
2.4. Añadir peticiones.
Para que el dispositivo remoto transmita los datos y cumpla las acciones necesarias, en el
protocolo de Modbus las peticiones se pueden procesar de tres modos:
automáticamente
mediante el menú
mediante el diálogo
Abra la ventana de configuración de las peticiones: Settings⇒Requests.
En la parte inferior de la ventana verá una tabla que contiene los elementos de la
estructura de los datos. En la parte superior de la ventana verá una tabla que contiene los
parámetros de las peticiones.
Primero crearemos las peticiones automáticas que leen el contenido de los registros y los
Coils del contador de flujo.
haga doble clic en una celda vacía en la columna Function
en el menú desplegable elija 03.Read holding registers. En la tabla aparecerá
una fila con los parámetros de petición por defecto
haga clic otra vez sobre la fila
en la tabla inferior destaque las celdas correspondientes a los registros en la columna
Address
haga clic con el botón derecho
en el menú desplegable elija Apply
haga lo mismo con los Coils. Utilice la función 01.Read coils
Guía de inicio rápido
- 13 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Usted puede cambiar el período mínimo de la petición. Haga doble clic en la celda
necesaria de la columna Min.period, ms. Escriba 300 milisegundos para ambas peticiones.
Tenga en cuenta que este parámetro define el período mínimo posible con el que se
procesan los datos. Este tiempo puede ser mayor debido al tiempo que se necesita para
realizar otras peticiones. Si se establece el valor “0” para este parámetro, la petición se
realizará en el período de tiempo más corto posible.
Para controlar efectivamente el contador de flujo deberá introducir comandos. El comando
se especifica introduciendo ciertos valores en el registro de control con dirección 15.
cree la petición ”06.Write single register”
en la tabla inferior en la columna Write address destaque la celda con la
dirección 15 (registro de control)
haga clic con el botón derecho
en el menú desplegable apriete Apply
haga doble clic en la celda de la columna Write
escriba “0” – este valor será inscrito en el registro de control al realizar este
comando
en la tabla superior en la columna Label escriba el nombre del comando “Modo
de medida”. Este nombre aparecerá como un punto del menú.
haga doble clic en la celda de la columna Control
en le menú desplegable elija Menu 1
Haga lo mismo para crear los comandos:
“Modo dosificador” (valor 1)
“Medir la porción” (valor 2)
“Poner a cero” (valor 4)
Guía de inicio rápido
- 14 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
“Ajuste del cero” (valor 8)
Cree los comandos para controlar las válvulas:
cree la petición “15.Write multiple coils”
en la tabla inferior en la columna Write address destaque las celdas con las
direcciones de los Coils 0 y 1
haga clic con el botón derecho
en el menú desplegable apriete Apply
haga doble clic en la celda de la columna Write con dirección 0, escriba “1”
haga doble clic en la celda de la columna Write con dirección 1, escriba “0”
al realizar este comando se abrirá la válvula en dirección correcta, y se cerrará
en dirección inversa
nombre el comando “Abrir en dirección correcta”
cree el comando “Abrir en dirección inversa”:
para el Coil con dirección 0 escriba “0”
para el Coil con dirección 1 escriba “1”
Y finalmente cree el comando “Cerrar el flujo”, que cierra las dos válvulas:
escriba en los dos Coils el valor “0”
Guía de inicio rápido
- 15 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Una parte de los comandos se utilizan para controlar en el modo dosificador, la otra en el
modo de medida, ya que en el modo de medida no se pueden controlar las válvulas. Hay dos
comandos comunes para los dos modos: “Poner a cero” y “Ajuste del cero”. En el menú
colóquelos aparte uno de otro. Para eso:
Cree dos peticiones, por ejemplo, “01.Read coils”
elija en Control “Menu 1”
en lugar del nombre escriba el símbolo “-“ (guión)
Estas peticiones no serán accesibles desde el menú pero servirán como divisores entre
los puntos.
apriete el botón izquierdo en la celda en la columna Function.
sin soltar el botón arrastre y coloque la celda entre “Medir la porción” y “Poner a
cero”
actuando de manera similar sitúe los puntos como en la ilustración debajo
Guía de inicio rápido
- 16 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
En la etiqueta del menú caption cambie el nombre “Menu 1” por “Control”. Apriete OK.
Guarde el proyecto: Ctrl+S.
En el menú aparecerá un nuevo punto - Control:
Un menú igual aparecerá en Modbus Reader cuando abra su proyecto en él, y podrá
utilizarlo para realizar los comandos que haya creado. En Modbus Constructor este menú es
inactivo.
Ahora especifique los diálogos para cambiar la configuración del dispositivo remoto.
Abra de nuevo la forma Requests.
cree la petición “16.Write multiple register”
nombre la petición “Tamaño de la porción”
póngale dirección “5”
cree la petición “16. Write multiple register”
nombre la petición “Parámetros de comunicación”
póngale direcciones de 2 a 4
cree la petición “06.Write single register”
nombre la petición “Masa por una pulsación, kg”
póngale dirección “16”
instale los parámetros de control para los tres comandos “Dialog (menu 2)”
cambie el nombre “Menu 1” por “MFM Settings”
apriete “OK”
guarde el proyecto: Ctrl+S
En el menú aparecerá otro punto - “MFM Settings”. Abra el menú y elija “Parámetros de
comunicación”. Aparecerá un diálogo que permite cambiar los parámetros de comunicación del
contador de masa. Al trabajar con Modbus Reader los campos de datos de estos diálogos
Guía de inicio rápido
- 17 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
contendrán: o valores actuales recibidos directamente del dispositivo por medio de los
comandos de lectura, o valores por defecto. Los valores por defecto se utilizan si los datos
correspondientes no habían sido leídos nunca antes del momento de abrir el diálogo, por
ejemplo, si estaban desconectadas las peticiones automáticas.
2.5. Parámetros del simulador.
Cualquier proyecto creado con Modbus Constructor, puede ser utilizado por Modbus
Reader tanto para hacer peticiones al dispositivo en modo “Master”, como para simular el
dispositivo en modo “Slave”. Usted puede cambiar el valor de los registros y los datos discretos
a mano en el modo “Slave”, o automáticamente de acuerdo con la función especificada. La
función se instala con ayuda de los siguientes parámetros: Default value, Value1, Value2,
Period.
Para los elementos discretos y los registros en Hex y Binary se aplica la siguiente regla:
2.5.1. T5. Discrete value simulation.
Tiempo
0 < t < 1/3 Period
Valor del elemento de datos
Default value
1/3 Period < t < 2/3 Period
Value1
2/3 Period < t < Period
Value2
Period < t < 4/3 Period
4/3 Period < t < 5/3 Period
Default value
Value1
…
…
Para los registros que contienen datos de tipo Float, Double, así como números enteros
(ya sean Signed o Unsigned), los valores se cambian de la siguiente manera:
2.5.2. T6. Analogous value simulation.
Tiempo
0 < t < 1/3 Period
Valor del elemento de datos
linear function from Default value to Value1
1/3 Period < t < 2/3 Period
linear function from Value1 to Value2
2/3 Period < t < Period
linear function from Value2 to Default value
Period < t < 4/3 Period
4/3 Period < t < 5/3 Period
…
linear function from Default value to Value1
linear function from Value1 to Value2
…
Si “Period” es igual a cero, se utiliza Default value.
Abra la ventana Objects: Settings⇒ Objects y ponga los parámetros como en la
ilustración debajo.
Tenga en cuenta que el valor Value1 para el elemento “Time” es igual a un tercio del valor
del período, y el valor Value2 es igual a dos tercios. En este caso el valor “Time” será
precisamente igual al tiempo pasado desde el momento de la conexión.
apriete “OK”
Guía de inicio rápido
- 18 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
guarde el proyecto: Ctrl+S
Guía de inicio rápido
- 19 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
3. UTILIZAR EL DISPOSITIVO MODBUS.
En este capitulo usted aprenderá a interactuar con dispositivos descritos con ayuda de
Modbus Constructor.
En lugar de un dispositivo real usará un simulador. Si su PC tiene dos puertos de
comunicación únalos por medio de cables sin modem. Un puerto se utilizará como “master”, el
otro como “slave”. Si su PC tiene solo un puerto de comunicación, instale Modbus Reader en
otro ordenador con, al menos, un puerto de comunicación y conéctelos por medio de cables sin
modem. Usted puede descargar el archivo de instalación individual de Modbus Reader aquí:
http://www.kurysoft.com/products.shtml.
Inicie Modbus Reader: Start ⇒Programs ⇒ModbusConstructor⇒MBReader.exe
Abra el archivo Coriolos.mbc.
en el menú Mode ponga el indicador “Master”
en el menú Connection elija el primer puerto de comunicación (por ejemplo
СОМ1)
abra otro archivo Coriolos.mbc.
en el menú Mode ponga el indicador “Slave”
en el menú Connection elija el otro puerto de comunicación (por ejemplo
СОМ2)
ponga las dos formas juntas de manera que se vean todos los campos. Si es
necesario cambie las dimensiones
asegúrese que los parámetros de comunicación de los dos puertos coinciden.
Para abrir el diálogo que cambia estos parámetros apriete Ctrl+P
asegúrese que “Master” y “Slave” tienen el mismo ID. Para abrir el diálogo que
cambia el ID apriete Ctrl+I
asegúrese que en el menú Mode para la forma “Master” esté puesto el
indicador en Auto request enable, y para la forma “Slave” esté puesto el
indicador en Simulation enable
Tenga en cuenta que los campos en la forma “Master” están vacíos y en la forma “Slave”
tienen valores por defecto.
Apriete F3 para conectarse. Verá que los datos en la forma “Master” se cambian
sincrónico con los datos de la forma “Slave”.
Guía de inicio rápido
- 20 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Cuando la forma master está activa se hacen disponibles dos menús adicionales Control
y MFM Settings, creados por usted en el capítulo “Añadir peticiones”. Haga clic en la forma
master para hacerla activa. Utilice los puntos de estos menús para ver como se cambian los
datos al realizar los comandos.
Usted puede directamente editar los datos de los elementos en la forma “Slave” si el
modo de simulador está desconectado:
haga clic en la forma “Slave”
quite el indicador del punto Simulation Enable del menú Mode
Los datos dejarán de cambiar.
doble clic en el campo “Density” de la forma “Slave”
escriba algún número
apriete Enter
En el campo correspondiente de la forma “Master” aparecerá el mismo número en cuanto
“Master” realice la siguiente petición de lectura de registros.
De la misma manera se pueden escribir valores individuales en los registros y los
elementos discretos del dispositivo.
doble clic en el campo “Density” de la forma “Master”
escriba algún número
apriete Enter
No se olvide guardar la configuración corriente al terminar el trabajo, si cree que le será
necesaria. Para esto en el menú File elija Save session. Guarde el archivo con el nombre
Coriolis.mbs.
Ahora, cuando ya usted sabe los principios básicos para operar con Modbus Constructor y
Modbus Reader, podrá crear proyectos para trabajar con dispositivos Modbus reales más
rápido que cuanto ha tardado en realizar este ejemplo.
Guía de inicio rápido
- 21 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
4. TÉRMINOS Y DEFINICIONES.
4.1. Objetos.
En la especificación de Modbus el objeto es un elemento de datos que se puede leer o
escribir independiente de otros datos. Hay cuatro tipos de objetos:
1. Coil
single bit
Read-Write
2. Discrete input
single bit
Read-Only
3. Holding register
16-bits word
Read-Write
4. Input register
16-bits word
Read-Only
4.2. Tipos de datos de Modbus Constructor.
Modbus Constructor soporta los siguientes tipos de datos:
4.2.1. Numeric types
Type
Quantity of bits
Quantity of registers
integer (signed or unsigned)
16
1
long
32
2
32
2
(signed or unsigned)
float
double
64
4
MSByte (signed or unsigned)
*
8
½ (most significant byte - MSB)
LSByte (signed or unsigned)
*
8
½ (least significant byte - LSB)
*Byte (MSB o LSB) no puede ser leído o escrito independiente de otro byte del registro.
4.2.2. Discrete types
Type
single
multiple
Quantity of bits
1
2-16
4.3. Data encoding.
Para representar los tipos long, float y double se utilizan varios registros consecutivos.
Se utilizan dos métodos de inscripción de estos números en los registros: directo y
“swapped (inverse)”.
Guía de inicio rápido
- 22 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
4.3.1. Long.
B3
B2
B1
B0
MSB
LSB
Register A
Register A+1
Transmitted
first
Default
B1
B0 (LSB)
B3 (MSB)
B2
B3 (MSB)
B2
B1
B0 (LSB)
Swapped
last
4.3.2. Float.
B3
B2
B1
B0
SEEEEEEE
EMMMMMMM
MMMMMMMM
MMMMMMMM
Donde el valor de “floating point” (punto flotante) = S1.M * 2E-127
Register A
Register A+1
Transmitted
first
Default
B1
B0 (LSB)
B3 (MSB)
B2
B3 (MSB)
B2
B1
B0 (LSB)
Swapped
last
4.3.3. Double.
B7
B6
B5-B1
B0
SEEEEEEE
EEEEMMMMM
MMMMMMMM
MMMMMMMM
Donde el valor de “double precision floating point” (punto flotante de doble precisión) = S1.M *
2E-1023
Register A
Register A+1
Register A+2
Register A+3
Transmitted
first
last
Default
B1
B0
B3
B2
B5
B4
B7
B6
Swapped
B7
B6
B5
B4
B3
B2
B1
B0
4.4. Reglas de aplicación de las funciones de Modbus.
Usted puede crear una petición para leer o escribir cualquier elemento de datos del
dispositivo, solo en caso de que este elemento esté especificado en el proyecto.
Por ejemplo, si está especificado aunque sea un Holding register, siempre podrá utilizar
las funciones 03, 06.
Guía de inicio rápido
- 23 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
En el diálogo Options (menú Settings) usted puede permitir o suprimir las funciones
adicionales para Holding register 16, 22, 23.
Si alguna de estas funciones está suprimida, cuando trabaje en el modo de simulador
Modbus Reader responderá “Exeption 1 (Illegal Function)” a cualquier petición que utilice esta
función.
Funciones principales*
Elemento
Funciones adicionales
Coil
01 – Read coils
15– Read multiple coils
Discrete input
02 – Read discrete inputs
-
Holding register
03 – Read holding registers
06 – Write single register
16 – Write multiple registers
22 – Write mask register
23 – Read/write registers
Input register
04 – Read input registers
-
*Al menos un elemento deberá estar especificado.
4.5. Format examples.
Para visualizar los números en forma más cómoda utilice formateo.
El formateo permite evitar que después de la coma decimal aparezcan números con
demasiados dígitos.
4.5.1. Numeric types
Números
Formato
Visualiza
12345
### ##0
12 345
12345
0 000 000
0 012 345
123.45678
# ##0.000
123.457
123.45678
0.00 E+00
1.23 E+02
12
+## 000
+ 012
0.45678
.000 000 000
.456 780 000
12345
hh:mm:ss
03:25:45
Si el campo de datos contiene varios elementos discretos, el formateo le ayudará a
visualizarlos por separado.
4.5.2. Discrete types
Bits
Formato
Visualiza
11110000
0000 0000
1111 0000
11110000
0000 0 0 0 0
0000 0 0 0 0
11110000
0
11110000
11110000
00
1111000 0
11110000
000 00 000
111 10 000
Guía de inicio rápido
- 24 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
4.5.3. Default for numeric types
Tipo
Formato
integer
## ##0
long
# ### ### ##0
byte
##0
float
0.00
double
0.000 E+00
4.5.4. Default for discrete types
Tipo
Formato
single (1)
0
multiple 2
00
multiple 3
000
multiple 4
0000
multiple 5
0 0000
multiple 9
0 0000 0000
multiple 16
0000 0000 0000
0000
Guía de inicio rápido
- 25 -
©2006 KurySoft. www.kurysoft.com
Descargar