コード例 #1
0
#!/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")
コード例 #2
0
ファイル: Contador.py プロジェクト: jeison10/IOT
 def lerModbus(self):
     zera = DataBank.get_words(1)
     if int(zera[0]) == 1:
         self.eggCount = 0
         zera[0] = 0
         DataBank.set_words(1, [0])
コード例 #3
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")
コード例 #4
0
"""
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')
コード例 #5
0
        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")
コード例 #6
0
ファイル: write_bit.py プロジェクト: mucahiddogan/modbus-py
#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)