Esclavo Modbus Interno
El equipo cuenta con una zona de memoria de 1000 palabras que pueden ser leidas o escritas desde el script.
Esto permite principalmente hacer cálculos con los valores de las entradas y ponerlos a disposición en el registro Modbus interno.
Los registros van desde el Holding Register 1001 al 2000 (41001 al 42000)
Las fuentes/destinos 403 y 404 usados para acceder al buffer pueden ser compartidos por otra funciones.
Despues de elegir el buffer y la posición con el destino 402, la dirección se autoincrementa a medida que se cargan datos.
Fuente / Destino |
Indice |
Valor |
R/W |
Descripción |
Función |
402 |
3 |
1 a 1000 |
write_io | Buffer Modbus - Selecciona y posiciona (Auto incremento para escritura) |
Esclavo Modbus |
403 |
1 |
10^N -2 -> 0.01 -1 -> 0.1 0 -> 1 1 -> 10 2 -> 100 |
write_io | Buffers - Configura exponente para flotantes | |
2 |
0-> MSB / 1 ->LSB 0-> MSW / 1 ->LSW |
write_io | Buffers - Configura orden bytes/words | ||
404 |
3 |
Numero según formato, exponente y orden. | read/write_io | Buffers - Entero 16 bits sin signo | |
4 |
read/write_io | Buffers - Entero 16 bits con signo | |||
6 |
read/write_io | Buffers - Entero 32 bits con signo | |||
7 |
read/write_io | Buffers - Flotante 32 bits |
Ejemplo de escritura: Carga los siguientes valores en registros Modbus desde el 41001
Registro Modbus |
Valor (orden byte/word) |
Valor hexadecimal |
41001 |
-3000 (MSB) |
F448 |
41002 |
1000 (MSB) |
03E8 |
41003:4 |
-70000 (MSW) |
FFFEEE90 |
41005:6 |
70000 (MSW) |
00011170 |
41007:8 |
-70000 (LSB) |
EE90FFFE |
41009:10 |
70000 (LSB) |
11700001 |
41011 |
1000 (LSB) |
E803 |
write_io 402,3,1; #Elige buffer Modbus y posiciona en direccion 1 (41001);
write_io 403,2,0;#MSB;
write_io 404,4,-3000; #41001;
write_io 404,4,1000; #41002;
write_io 403,2,0;#MSW;
write_io 404,6,-70000; #41003:4;
write_io 404,6,70000; #41005:6;
write_io 403,2,1;#LSW;
write_io 404,6,-70000; #41007:8;
write_io 404,6,70000; #41009:10;
write_io 403,2,1;#LSB;
write_io 404,4,1000; #41011;
end;
Ejemplo de lectura:Lee los valores de los registros Modbus 41001 a 41011 y los carga en variables con distintos formatos.
Registro Modbus |
Valor hexadecimal |
Valor variable |
41001 |
F448 |
a=-3000 |
41002 |
03E8 |
b=1000 |
41003:4 |
FFFEEE90 |
c=-70000 |
41005:6 |
00011170 |
d=70000 |
41007:8 |
EE90FFFE |
e=-70000 |
41009:10 |
11700001 |
f=70000 |
41011 |
E803 |
g=1000 |
write_io 403,2,0;#MSB;
write_io 402,3,1; read_io 404,a,4; #41001;
write_io 402,3,2; read_io 404,b,4; #41002;
write_io 403,2,0;#MSW;
write_io 402,3,3; read_io 404,c,6; #41003:4;
write_io 402,3,5; read_io 404,d,6; #41005:6;
write_io 403,2,1;#LSW;
write_io 402,3,7; read_io 404,e,6; #41007:8;
write_io 402,3,9; read_io 404,f,6; #41009:10;
write_io 403,2,1;#LSB;
write_io 402,3,11; read_io 404,g,4; #41011;
end;
2024-04-23