square
This commit is contained in:
parent
71e87c7034
commit
48b237ccb4
|
@ -139,7 +139,7 @@
|
||||||
"kind": 2,
|
"kind": 2,
|
||||||
"importPath": "client",
|
"importPath": "client",
|
||||||
"description": "client",
|
"description": "client",
|
||||||
"peekOfCode": "def to_double(integr):\n return [(integr >> 16) & 0xFFFF, integr & 0xFFFF]\nclient = ModbusTcpClient(\n host=MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\n# максимальное количество coils = 286\n# bulb(2)\n# get_coordinates()",
|
"peekOfCode": "def to_double(integr):\n return [(integr >> 16) & 0xFFFF, integr & 0xFFFF]\nclient = ModbusTcpClient(\n host=MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\n# максимальное количество coils = 286\n# bulb(0)\n# get_coordinates()",
|
||||||
"detail": "client",
|
"detail": "client",
|
||||||
"documentation": {}
|
"documentation": {}
|
||||||
},
|
},
|
||||||
|
@ -202,7 +202,7 @@
|
||||||
"kind": 5,
|
"kind": 5,
|
||||||
"importPath": "client",
|
"importPath": "client",
|
||||||
"description": "client",
|
"description": "client",
|
||||||
"peekOfCode": "client = ModbusTcpClient(\n host=MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\n# максимальное количество coils = 286\n# bulb(2)\n# get_coordinates()\n# get_or_set_speed(10)\ntry:",
|
"peekOfCode": "client = ModbusTcpClient(\n host=MODBUS_SERVER_HOST,\n port=MODBUS_SERVER_PORT,\n)\nclient.connect()\n# максимальное количество coils = 286\n# bulb(0)\n# get_coordinates()\n# get_or_set_speed(10)\ntry:",
|
||||||
"detail": "client",
|
"detail": "client",
|
||||||
"documentation": {}
|
"documentation": {}
|
||||||
},
|
},
|
||||||
|
|
91
client.py
91
client.py
|
@ -95,49 +95,78 @@ client = ModbusTcpClient(
|
||||||
client.connect()
|
client.connect()
|
||||||
# максимальное количество coils = 286
|
# максимальное количество coils = 286
|
||||||
|
|
||||||
# bulb(2)
|
# bulb(0)
|
||||||
# get_coordinates()
|
# get_coordinates()
|
||||||
# get_or_set_speed(10)
|
# get_or_set_speed(10)
|
||||||
try:
|
try:
|
||||||
|
data = [
|
||||||
|
(0, to_double(0)),
|
||||||
|
(1, to_double(0)),
|
||||||
|
(2, to_double(0)),
|
||||||
|
(3, [0, 0]),
|
||||||
|
(4, [0, 0]),
|
||||||
|
(5, [0, 0]),
|
||||||
|
]
|
||||||
|
for item in data:
|
||||||
|
d, values = item
|
||||||
|
set_user_register(d, values)
|
||||||
# старт в авторежиме single loop
|
# старт в авторежиме single loop
|
||||||
client.write_register(20002, 1, MODBUS_SLAVE_ID)
|
client.write_register(20002, 1, MODBUS_SLAVE_ID)
|
||||||
|
|
||||||
total = 0
|
total = 0
|
||||||
state = None
|
state = None
|
||||||
|
step = 0
|
||||||
counter = 0
|
counter = 0
|
||||||
while True:
|
while True:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
total += 1
|
total += 1
|
||||||
green_light = client.read_coils(0, 1, MODBUS_SLAVE_ID).bits[0]
|
green_light = client.read_coils(0, 1, MODBUS_SLAVE_ID).bits[0]
|
||||||
|
print(f"total {total}, state {state}, green light {green_light}")
|
||||||
|
|
||||||
if state == green_light:
|
if state == green_light:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if green_light == False:
|
|
||||||
continue
|
|
||||||
|
|
||||||
state = green_light
|
state = green_light
|
||||||
counter += 1
|
|
||||||
|
if state == True:
|
||||||
|
continue
|
||||||
|
|
||||||
|
step += 1
|
||||||
# собираем предварительные данные
|
# собираем предварительные данные
|
||||||
x = two_byte_convert(client.read_holding_registers(2332, 2, MODBUS_SLAVE_ID))
|
# x = two_byte_convert(client.read_holding_registers(2332, 2, MODBUS_SLAVE_ID))
|
||||||
y = two_byte_convert(client.read_holding_registers(2334, 2, MODBUS_SLAVE_ID))
|
# y = two_byte_convert(client.read_holding_registers(2334, 2, MODBUS_SLAVE_ID))
|
||||||
z = two_byte_convert(client.read_holding_registers(2336, 2, MODBUS_SLAVE_ID))
|
# z = two_byte_convert(client.read_holding_registers(2336, 2, MODBUS_SLAVE_ID))
|
||||||
u = two_byte_convert(client.read_holding_registers(2338, 2, MODBUS_SLAVE_ID))
|
# u = two_byte_convert(client.read_holding_registers(2338, 2, MODBUS_SLAVE_ID))
|
||||||
v = two_byte_convert(client.read_holding_registers(2340, 2, MODBUS_SLAVE_ID))
|
# v = two_byte_convert(client.read_holding_registers(2340, 2, MODBUS_SLAVE_ID))
|
||||||
w = two_byte_convert(client.read_holding_registers(2342, 2, MODBUS_SLAVE_ID))
|
# w = two_byte_convert(client.read_holding_registers(2342, 2, MODBUS_SLAVE_ID))
|
||||||
print(
|
# print(
|
||||||
f"Предварительные данные X {x * 0.001}, Y {y * 0.001}, Z {z*0.001}, U {u*0.001}, V {v*0.001}, W {w*0.001}"
|
# f"Предварительные данные X {x * 0.001}, Y {y * 0.001}, Z {z*0.001}, U {u*0.001}, V {v*0.001}, W {w*0.001}"
|
||||||
)
|
# )
|
||||||
if counter == 1:
|
|
||||||
x -= 100 * 1000
|
# работаем с REL относительными координатами
|
||||||
elif counter == 2:
|
x = 0
|
||||||
y -= 100 * 1000
|
y = 0
|
||||||
elif counter == 3:
|
z = 0
|
||||||
x += 100 * 1000
|
|
||||||
elif counter == 4:
|
w = 100
|
||||||
y += 100 * 1000
|
h = 100
|
||||||
|
if step == 1:
|
||||||
|
x -= w * 1000
|
||||||
|
elif step == 2:
|
||||||
|
y -= h * 1000
|
||||||
|
elif step == 3:
|
||||||
|
x += w * 1000
|
||||||
|
elif step == 4:
|
||||||
|
y += h * 1000
|
||||||
|
elif step == 5:
|
||||||
|
z += h * 1000
|
||||||
|
elif step == 6:
|
||||||
|
z -= h * 1000
|
||||||
else:
|
else:
|
||||||
counter = 0
|
counter += 1
|
||||||
|
step = 0
|
||||||
|
state = None
|
||||||
|
|
||||||
data = [
|
data = [
|
||||||
(0, to_double(x)),
|
(0, to_double(x)),
|
||||||
(1, to_double(y)),
|
(1, to_double(y)),
|
||||||
|
@ -149,12 +178,14 @@ try:
|
||||||
for item in data:
|
for item in data:
|
||||||
d, values = item
|
d, values = item
|
||||||
set_user_register(d, values)
|
set_user_register(d, values)
|
||||||
result = client.read_holding_registers(indent + s + k * d, k, MODBUS_SLAVE_ID)
|
result = client.read_holding_registers(
|
||||||
|
indent + s + k * d, k, MODBUS_SLAVE_ID
|
||||||
|
)
|
||||||
print(s + d, "===", two_byte_convert(result) * 0.001)
|
print(s + d, "===", two_byte_convert(result) * 0.001)
|
||||||
|
|
||||||
client.write_coil(0, !green_light, MODBUS_SLAVE_ID)
|
|
||||||
|
|
||||||
|
bulb(0)
|
||||||
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("error", e)
|
print("error", e)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue