#!/bin/python from pyModbusTCP.server import ModbusServer, DataBank from time import sleep from random import uniform # Create an instance of ModbusServer server = ModbusServer("127.0.0.1", 502, no_block=True) try: print("Start server...") server.start() print("Server is online") state = [0] while True: DataBank.set_words(0, [int(uniform(0, 100))]) if state != DataBank.get_words(1): state = DataBank.get_words(1) print("Value of Register 1 has changed to " + str(state)) sleep(0.5) except: print("Shutdown server ...") server.stop() print("Server is offline")
def lerModbus(self): zera = DataBank.get_words(1) if int(zera[0]) == 1: self.eggCount = 0 zera[0] = 0 DataBank.set_words(1, [0])
import time from pyModbusTCP.server import ModbusServer, DataBank from time import sleep server = ModbusServer("172.17.115.225", 502, no_block=True) try: while True: print("Iniciando servidor...") server.start() print("Servidor iniciado") while True: DataBank.get_words(0) DataBank.get_words(1) DataBank.get_words(2) sleep(1) except: print("Desligando servidor...") server.stop() print("Servidor desligado")
""" Example Modbus Server: run 60 seconds Reference: https://youtu.be/FYPQgnQE9fk Author: Zihan Date: 2021-07-10 """ from pyModbusTCP.server import ModbusServer, DataBank import time try: server = ModbusServer(host='localhost', port=1234, no_block=True) server.start() state = 10 t0 = time.time() while True: DataBank.set_words(0, [1, 2, 3]) if state != DataBank.get_words(10, 1)[0]: state = DataBank.get_words(10, 1)[0] print('state changed to {}'.format(state)) time.sleep(0.05) if time.time() - t0 > 60: break server.stop() except: print('Failed to create a server')
print("Starting server...") server.start() print("Server online") # Server enable DataBank.set_bits(9901, [1]) # Sample Rate (Hz) DataBank.set_words(39901, [2]) # Fake sensor configuration (LANE 00) # Lane_Enable DataBank.set_bits(0, [1]) # Sensor value DataBank.set_words(30001, [0]) # Raw voltage value (0.1 mV) DataBank.set_words(30002, [0]) # Sensor type DataBank.set_words(40001, [0]) # Generate random data while True: DataBank.set_words( 30002, [DataBank.get_words(30002)[0] + random.randint(-6, 8)]) DataBank.set_words(30001, [DataBank.get_words(30002)[0] * 1000]) sleep(1 / DataBank.get_words(39901)[0]) except: print("Server Shutting down") server.stop() print("Server offline")
#c.debug(True) c.host(SERVER_HOST) c.port(SERVER_PORT) timea = [] tempb = [] while True: if not c.is_open(): if not c.open(): print("unable to connect to " + SERVER_HOST + ":" + str(SERVER_PORT)) if c.is_open(): for addr in range(1): words = DataBank.get_words(0, 1) print(words) def toggle(tog=[0]): tog[0] = not tog[0] if tog[0]: t_btn.config(text='False') is_ok = c.write_single_coil(addr, tog[0]) #print("bit #" + str(addr) + ": write to " + str(tog[0])) print(tog[0]) else: t_btn.config(text='True') is_ok = c.write_single_coil(addr, tog[0]) #print("bit #" + str(addr) + ": write to " + str(tog[0])) print(tog[0]) print(words)