Пример #1
0
def display_remote_io(ip_address):
    '''
    display remote I/O information at the given IP address
    '''
    try:
        client = ModbusTcpClient(ip_address)
        client.write_coil(HW_CY_006, False)

        ip_holding_regs = client.read_holding_registers(HR_CI_006_CV, 6)

        client.write_registers(HW_CI_006_PV, ip_holding_regs.registers)
        cur_ip = format_modbus_ip_address(ip_holding_regs.registers[0],
                                          ip_holding_regs.registers[1])
        cur_gateway = format_modbus_ip_address(ip_holding_regs.registers[2],
                                               ip_holding_regs.registers[3])
        cur_subnet = format_modbus_ip_address(ip_holding_regs.registers[4],
                                              ip_holding_regs.registers[5])

        ip_holding_regs = client.read_holding_registers(HR_CI_009_CV, 4)
        cur_mac = format_mac(ip_holding_regs.registers)
        ip_holding_regs = client.read_holding_registers(HR_KI_003, 2)
        cur_version = format_version(ip_holding_regs.registers[0])

        print("{0} - {1}, version:{2}.{3}.{4} ".format(
            ip_address, device_type_name(ip_holding_regs.registers[1]),
            cur_version[1], cur_version[2], cur_version[3]),
              end='')
        print("gateway:{0}, subnet:{1} mac:{2}".format(cur_gateway, cur_subnet,
                                                       cur_mac))
        client.close()
    except ConnectionException:
        print("{0} - unavailable".format(ip_address))
Пример #2
0
    def setRelayState(interlock: Interlock_model,
                      state: {0, 1}) -> Interlock_model.State:

        client = ModbusTcpClient(interlock.card.server)
        client.connect()
        client.write_coil(interlock.channel, state, unit=1)
        sleep(0.3)
        reply = client.read_coils(interlock.channel, 1, unit=1)
        state = reply.bits[0]
        client.close()
        if state == ModbusInterlock.MODBUS_OFF:
            return Interlock_model.State.LOCKED
        elif state == ModbusInterlock.MODBUS_ON:
            return Interlock_model.State.UNLOCKED
Пример #3
0
def write_network_config(cuip, aip, agw, asn, amac):
    try:
        client = ModbusTcpClient(cuip)
        client.write_register(HW_CI_006_PV, aip >> 16)
        client.write_register(HW_CI_006_PV + 1, aip & 0xffff)
        client.write_register(HW_CI_007_PV, agw >> 16)
        client.write_register(HW_CI_007_PV + 1, agw & 0xffff)
        client.write_register(HW_CI_008_PV, asn >> 16)
        client.write_register(HW_CI_008_PV + 1, asn & 0xffff)

        client.write_register(HW_CI_009_PV, 0)
        client.write_register(HW_CI_009_PV + 1, amac >> 32)

        client.write_register(HW_CI_009_PV + 2, (amac & 0xFFFFFFFF) >> 16)
        client.write_register(HW_CI_009_PV + 3, (amac & 0xFFFFFFFF) & 0xffff)
        client.write_coil(HW_CY_006, True)
        client.close()
    except ConnectionException:
        print("{0} - unavailable".format(cuip))
Пример #4
0
import time  
from pymodbus3.client.sync import ModbusTcpClient



client = ModbusTcpClient('127.0.0.1')


while True:
	client.write_coil(0, True)
	time.sleep(1.0)
	client.write_coil(0, False)
	time.sleep(1.0)
Пример #5
0
from pymodbus3.client.sync import ModbusTcpClient

inp = input(
    u"Press any key and enter to send a packet... (Just enter to quit)")
client = ModbusTcpClient('100.100.100.2')
while (inp):
    client.write_coil(1, True)
    result = client.read_coils(1, 1)
    print(result.bits[0])
    client.close()
    inp = input(
        u"Press any key and enter to send a packet... (Just enter to quit)")
Пример #6
0
print("config set")

# save configuration to flash (doesn't work... see Opto doc 1465, page 104)
#client.write_register(0, 0x00000003, unit=30)
#print("saved to flash")

# save configuration to flash (also doesn't work... see Opto doc 1678, page 35)
#client.write_register(61496, True)
#print("saved to flash")

# save configuration to flash (also doesn't work... see Opto doc 1678, page 35)
#client.write_coil(257, True)
#print("saved to flash")

# set module2 ch1 output high
client.write_coil(4, True)
print("done")

# scan module4 ch1 for input, send output to module3 ch1
while [True]:
    result = client.read_coils(12)
    print(result.bits[0])

    if (result.bits[0] == 1):
        for r in range(5):
            client.write_coil(8, True)
            sleep(.2)
            client.write_coil(8, False)
            sleep(.2)
    else:
        client.write_coil(8, False)
Пример #7
0
from pymodbus3.client.sync import ModbusTcpClient  #.client.sync
import time as t
from twisted.internet import reactor, protocol
from pymodbus3.constants import Defaults

import logging
logging.basicConfig()
a = 1
client = ModbusTcpClient('10.181.5.35', port=502)

rq = client.write_coil(1, True)
rr = client.read_coils(1, 1)
assert (rq.function_code < 0x80)  # test that we are not an error
assert (rr.bits[0] == True)  # test the expected value
#result = client.read_coils(0,1)
"""arguments = {
    'read_address':    1,
    'read_count':      8,
    'write_address':   1,
    'write_registers': [20]*8,"""

while a < 4:
    rq = client.write_registers(0, [0] * 15)
    rq2 = client.write_registers(
        1000, [241] * 100)  #Startadresse, skrevet verdi, antall registre
    log = logging.getLogger()
    log.setLevel(logging.DEBUG)
    client.write_coil(0, True)
    client.write_coil(1, True)
    client.write_coil(2, False)
    client.write_coil(3, True)