From aa7f4b5e4f7713d3702d300a279ecf02832e2d77 Mon Sep 17 00:00:00 2001 From: aarizona Date: Thu, 8 Aug 2024 12:36:39 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/PythonImportHelper-v2-Completion.json | 15 +++++++-- client.py | 32 ++++++++++--------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/.vscode/PythonImportHelper-v2-Completion.json b/.vscode/PythonImportHelper-v2-Completion.json index 6770ccf..b5a52e7 100644 --- a/.vscode/PythonImportHelper-v2-Completion.json +++ b/.vscode/PythonImportHelper-v2-Completion.json @@ -71,12 +71,21 @@ "detail": "client", "documentation": {} }, + { + "label": "bulb", + "kind": 2, + "importPath": "client", + "description": "client", + "peekOfCode": "def bulb(addr):\n try:\n coils = client.read_coils(addr, 1, MODBUS_SLAVE_ID)\n print(\"читаем начальное состояние\", coils.bits)\n new_bits = coils.bits\n new_bits[0] = not new_bits[0]\n print(\"пытаемся записать\", new_bits, coils.slave_id)\n result = client.write_coil(addr, new_bits[0], coils.slave_id)\n print(result)\n print(\"читаем после попытки\", client.read_coils(0, len(coils.bits), coils.slave_id).bits)", + "detail": "client", + "documentation": {} + }, { "label": "MODBUS_SERVER_HOST", "kind": 5, "importPath": "client", "description": "client", - "peekOfCode": "MODBUS_SERVER_HOST = \"192.168.70.55\" # IP-адрес Modbus-сервера\nMODBUS_SERVER_PORT = 502\nfrom pymodbus.client import ModbusTcpClient\nfrom pymodbus.constants import Endian\nfrom pymodbus.payload import BinaryPayloadDecoder\nclient = ModbusTcpClient(\n MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()", + "peekOfCode": "MODBUS_SERVER_HOST = \"192.168.70.55\" # IP-адрес Modbus-сервера\nMODBUS_SERVER_PORT = 502\nMODBUS_SLAVE_ID=11\nfrom pymodbus.client import ModbusTcpClient\nfrom pymodbus.constants import Endian\nfrom pymodbus.payload import BinaryPayloadDecoder\ndef bulb(addr):\n try:\n coils = client.read_coils(addr, 1, MODBUS_SLAVE_ID)\n print(\"читаем начальное состояние\", coils.bits)", "detail": "client", "documentation": {} }, @@ -85,7 +94,7 @@ "kind": 5, "importPath": "client", "description": "client", - "peekOfCode": "MODBUS_SERVER_PORT = 502\nfrom pymodbus.client import ModbusTcpClient\nfrom pymodbus.constants import Endian\nfrom pymodbus.payload import BinaryPayloadDecoder\nclient = ModbusTcpClient(\n MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\ntry:", + "peekOfCode": "MODBUS_SERVER_PORT = 502\nMODBUS_SLAVE_ID=11\nfrom pymodbus.client import ModbusTcpClient\nfrom pymodbus.constants import Endian\nfrom pymodbus.payload import BinaryPayloadDecoder\ndef bulb(addr):\n try:\n coils = client.read_coils(addr, 1, MODBUS_SLAVE_ID)\n print(\"читаем начальное состояние\", coils.bits)\n new_bits = coils.bits", "detail": "client", "documentation": {} }, @@ -94,7 +103,7 @@ "kind": 5, "importPath": "client", "description": "client", - "peekOfCode": "client = ModbusTcpClient(\n MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\ntry:\n # читаем Y\n # 0 - зеленый свет\n # 1 - желтый свет\n addr = 2", + "peekOfCode": "client = ModbusTcpClient(\n MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\ntry:\n bulb(1)\nexcept Exception as e:\n print(\"error\", e)\nclient.close()", "detail": "client", "documentation": {} }, diff --git a/client.py b/client.py index 9bbc17a..6ab83df 100644 --- a/client.py +++ b/client.py @@ -3,32 +3,34 @@ print("modbus test") # Настройки клиента Modbus MODBUS_SERVER_HOST = "192.168.70.55" # IP-адрес Modbus-сервера MODBUS_SERVER_PORT = 502 - +MODBUS_SLAVE_ID=11 from pymodbus.client import ModbusTcpClient from pymodbus.constants import Endian from pymodbus.payload import BinaryPayloadDecoder +def bulb(addr): + try: + coils = client.read_coils(addr, 1, MODBUS_SLAVE_ID) + print("читаем начальное состояние", coils.bits) + + new_bits = coils.bits + new_bits[0] = not new_bits[0] + print("пытаемся записать", new_bits, coils.slave_id) + result = client.write_coil(addr, new_bits[0], coils.slave_id) + print(result) + + print("читаем после попытки", client.read_coils(0, len(coils.bits), coils.slave_id).bits) + except Exception as e: + raise e + client = ModbusTcpClient( MODBUS_SERVER_HOST, port=MODBUS_SERVER_PORT, ) client.connect() try: - # читаем Y - # 0 - зеленый свет - # 1 - желтый свет - addr = 2 - coils = client.read_coils(addr, 1, 11) - print("читаем начальное состояние", coils.bits) - - new_bits = coils.bits - new_bits[0] = not new_bits[0] - print("пытаемся записать", new_bits, coils.slave_id) - result = client.write_coil(addr, new_bits[0], coils.slave_id) - print(result) - - print("читаем после попытки", client.read_coils(0, len(coils.bits), coils.slave_id).bits) + bulb(1) except Exception as e: print("error", e)