square
This commit is contained in:
parent
71e87c7034
commit
48b237ccb4
|
@ -139,7 +139,7 @@
|
|||
"kind": 2,
|
||||
"importPath": "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",
|
||||
"documentation": {}
|
||||
},
|
||||
|
@ -202,7 +202,7 @@
|
|||
"kind": 5,
|
||||
"importPath": "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",
|
||||
"documentation": {}
|
||||
},
|
||||
|
|
91
client.py
91
client.py
|
@ -95,49 +95,78 @@ client = ModbusTcpClient(
|
|||
client.connect()
|
||||
# максимальное количество coils = 286
|
||||
|
||||
# bulb(2)
|
||||
# bulb(0)
|
||||
# get_coordinates()
|
||||
# get_or_set_speed(10)
|
||||
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
|
||||
client.write_register(20002, 1, MODBUS_SLAVE_ID)
|
||||
|
||||
|
||||
total = 0
|
||||
state = None
|
||||
step = 0
|
||||
counter = 0
|
||||
while True:
|
||||
time.sleep(1)
|
||||
total += 1
|
||||
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:
|
||||
continue
|
||||
|
||||
if green_light == False:
|
||||
continue
|
||||
|
||||
|
||||
state = green_light
|
||||
counter += 1
|
||||
|
||||
if state == True:
|
||||
continue
|
||||
|
||||
step += 1
|
||||
# собираем предварительные данные
|
||||
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))
|
||||
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))
|
||||
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))
|
||||
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}"
|
||||
)
|
||||
if counter == 1:
|
||||
x -= 100 * 1000
|
||||
elif counter == 2:
|
||||
y -= 100 * 1000
|
||||
elif counter == 3:
|
||||
x += 100 * 1000
|
||||
elif counter == 4:
|
||||
y += 100 * 1000
|
||||
# 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))
|
||||
# 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))
|
||||
# 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))
|
||||
# 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}"
|
||||
# )
|
||||
|
||||
# работаем с REL относительными координатами
|
||||
x = 0
|
||||
y = 0
|
||||
z = 0
|
||||
|
||||
w = 100
|
||||
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:
|
||||
counter = 0
|
||||
|
||||
counter += 1
|
||||
step = 0
|
||||
state = None
|
||||
|
||||
data = [
|
||||
(0, to_double(x)),
|
||||
(1, to_double(y)),
|
||||
|
@ -149,12 +178,14 @@ try:
|
|||
for item in data:
|
||||
d, values = item
|
||||
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)
|
||||
|
||||
client.write_coil(0, !green_light, MODBUS_SLAVE_ID)
|
||||
|
||||
|
||||
bulb(0)
|
||||
|
||||
|
||||
except Exception as e:
|
||||
print("error", e)
|
||||
|
||||
|
|
Loading…
Reference in New Issue