Laboratorio Protocolo ModBus
Requisitos de finalización
Comprender la utilización del protocolo ModBus, poder entender la conexion de los dispositivos y las tramas que se envian/reciben en la comunicación.
8. Script Servidor
Para ejecutar el script si utilizamos el puerto por defecto (502) debemos ejecutarlo como superusuario debido a que los puertos menores a 1024 son de sistema.
_____________________________________________________________________________________________________
#SCRIPT REDES I. Servidor MODBUS TCP
#es necesario ejecutar como root para utilizar puerto 502,
#no obstante qmodmaster puede ser ejecutado como usuario normal.
from pyModbusTCP.server import ModbusServer, DataBank
import time
import random
#Modificar por IP de la interface a la que estamos conectados para tener salida.
server = ModbusServer('localhost', 502, no_block=True)
try:
print("Inicia servidor")
server.start()
#rellenamos los holding reg 0, 1 ,2 ,3
server.data_bank.set_holding_registers(0, [100, 200 ,300, 400], None)
#rellenamos los input 0, 1 ,2 ,3
server.data_bank.set_input_registers(0, [1, 2 ,3, 4])
print("Servidor Online")
while True:
hreg=random.randint(0,100)
#holding reg 0: cada 1 segundo cambia.
server.data_bank.set_holding_registers(0, [hreg], None)
time.sleep(1)
except:
print("Desconectando servidor")
server.stop()
print("Servidor Offline")
_____________________________________________________________________________________________________
Si ejecutamos el comando netstat -an | grep 502 podemos observar que el puerto se encuentra escuchando: