Третий человеко-час.Точно сформированный детальный запрос.
Запрос для GPT:
настройки ПЛК ПР205
ModBUS Master, адрес 100, тайм-аут 100мс, Старшим байтом вперёд, Старшим регистром вперёд, регистры с номерами 12,16,20,2056,24,28,32,36,40,44,48,52,56,84,88,92, 96 с плавающей запятой, регистры 520 и 524 целочисленные, у всег регистров период чтения 50мс.
ПЛК связан с ПК по сети LAN, IP 192.168.1.249, Маска подсети 255.255.254.0, IP адрес шлюза 192.168.1.105,
DNS сервер 1 194.158.196.137, DNS сервер 2 194.158.196.141
ModBUS Slaver, регистры целочисленные
16384,16385,16386,16389,16390,16391,16392,16393,16 402,16403,16405,16406,16408,16413,16416,16417,1642 2
регистры с плавающей запятой 16394,16396,16398,16409,16414,16418,16420
IP-адрес "192.168.1.249" доступен в сети. Команда `ping 192.168.1.249`, порт 502.
из командной строки компьютера - хост отвечает на ICMP-запросы.
Python в среде Visual Studio Win10 x64.
Напиши программу: вывести значения Slaver всех регистров.
Ответ GPT:
Результат:Код:# -- coding: cp1251 -- from pymodbus.client import ModbusTcpClient # Установка соединения с ПЛК по протоколу Modbus TCP client = ModbusTcpClient('192.168.1.249', port=502) # Чтение целочисленных регистров (Slaver) int_registers = [16384, 16385, 16386, 16389, 16390, 16391, 16392, 16393, 16402, 16403, 16405, 16406, 16408, 16413, 16416, 16417, 16422] for reg_address in int_registers: response = client.read_input_registers(reg_address, count=1, unit=0x01) if response.isError(): print(f'Error reading Register {reg_address}: {response.function_code}') elif len(response.registers) > 0: print(f'Slaver, Register {reg_address}: {response.registers[0]}') else: print(f'No data returned for Register {reg_address}') client.close()
В нужных регистрах время тикает.Код:Slaver, Register 16384: 0 Error reading Register 16385: 132 Slaver, Register 16386: 16 Slaver, Register 16389: 0 Slaver, Register 16390: 0 Slaver, Register 16391: 3 Slaver, Register 16392: 0 Slaver, Register 16393: 0 Slaver, Register 16402: 0 Slaver, Register 16403: 0 Slaver, Register 16405: 0 Error reading Register 16406: 132 Error reading Register 16408: 132 Slaver, Register 16413: 0 Slaver, Register 16416: 23 Slaver, Register 16417: 1 Slaver, Register 16422: 0




Точно сформированный детальный запрос.
Ответить с цитированием