Modbus TCP client for robot control
Project description
AIM-tcp
Modbus TCP клиент для управления роботами CHAIFU и АИМ. Библиотека предоставляет простой интерфейс для чтения и записи регистров по протоколу Modbus TCP.
Установка
Установка через пакетный менеджер pip.
pip install aim-tcp
Подключение
from aim_tcp import ModbusRobot
# Создаем объект робота
robot = ModbusRobot()
Основные методы
Запись в один регистр (16 бит) (FC06)
Стандартный регистр Modbus вмещает только 16 бит (максимум 65 535)
robot.send_modbus_tcp(register=0x08, value=1) #записываем 1 в 8й регистр
Запись 32-битного значения (FC10)
Запись значения в два регистра
Для управления роботом необходимо задать регистры в ячейки Reg ID
robot.send_modbus_tcp_32bit(start_register=0x02, value=150000)
# Для числа 150000 (в шестнадцатеричном виде это 0x000249F0):
# High Word (Старшее слово): (150000 >> 16) = 2 (0x0002)
# Low Word (Младшее слово): 150000 & 0xFFFF = 18928 (0x49F0)
Чтение регистров (FC04)
robot.read_modbus_tcp_registers(register=0x01, count=12)
Функция run_circle_motion
Математика использует векторы для перемещения по окружности в 3D пространстве. Векторы vector_u и vector_v должны быть ортогональны (их скалярное произведение равно нулю)
Плоскость XY (горизонтальная вдоль оси Z):
vector_u = (1, 0, 0), vector_v = (0, 1, 0)
Плоскость XZ (вертикальная вдоль оси X):
vector_u = (1, 0, 0), vector_v = (0, 0, 1)
Плоскость YZ (вертикальная вдоль оси Y):
vector_u = (0, 1, 0), vector_v = (0, 0, 1)
Наклонная плоскость: задайте два вектора, которые лежат в нужной плоскости и перпендикулярны друг другу.
robot.run_circle_motion(X0=300, Y0=500, Z0=1200, R=100, delay_ms=2, vector_u=(1, 0, 0), vector_v=(0, 0, 1), repeat_count=2)
Визуализация позиции робота
robot.visualize_robot_model() #вывод кинематической модели робота со слайдерами
robot.visualize_robot_model(5, 60.0, -45.0, 0.0, 90.0, 0.0) # вывод позиции с заданными углами
# ! подсчет XYZ может быть не точным
Примечание:
Библиотека разработана для работы с промышленными роботами, поддерживающими протокол Modbus TCP. Протестирована на оборудовании АМИ М25-Д1830.
Пример
Для управления позицией робота необходимо запустить следующий скрипт
1 Condition: IF(R8==0),JudgeWhen(+:Block/-:msec)=0
2 DynPos:World Coor, Speed4200, Soft=1, XR=2, YR=3, ZR=4, AR=5, BR=6, CR=7
3 Set R:R8=1 RunWhen(+:Block/-:msec)=0
4 Condition: END_IF
*
И запустить его в бесконечно цикле
Подключаем компьютер к контроллеру ethernet кабелем, в сетевых настройках компьютера задаем статический ipv4 192.168.18.*** <- любой ip отличный от робота, маска сети 255.255.255.0
python скрипт
Приводим робота в точку с заданной ориентаций, проходим 2 круга в плоскости XY, возвращаемся в точку центра круга
from aim_tcp import ModbusRobot
import time
robot = ModbusRobot() # по умолчанию подключение ip 192.168.18.201 port 502
robot.point_XYZ_ABC(300, 700, 1200, 0, 180, 0)
robot.run_circle_motion(X0=300, Y0=700, Z0=1200, R=100, delay_ms=50, vector_u=(1, 0, 0), vector_v=(0, 0, 1), repeat_count=2)
robot.point_XYZ_ABC(300, 700, 1200, 0, 180, 0)
Лицензия
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aim_tcp-0.0.7.tar.gz.
File metadata
- Download URL: aim_tcp-0.0.7.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04f65f4e58e8d6c7bdc6ba83a6c6a4d6e6ac24d2b57816553b5db3e9f9144728
|
|
| MD5 |
3ddaa67b05ea5661bbc1ad3afde32fcd
|
|
| BLAKE2b-256 |
5be0d093533213e6740dfc73e711dae8aced69d92c6834226c0c978d2e41f715
|
File details
Details for the file aim_tcp-0.0.7-py3-none-any.whl.
File metadata
- Download URL: aim_tcp-0.0.7-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e9b33921abd4a16ec530fb66391b09d296dcaf7fdc4ec113232fbd1a0188079
|
|
| MD5 |
35e885f739cba7d2b2856047976c2f2c
|
|
| BLAKE2b-256 |
215091f38827ae0013d492ccd0bc83e77e4c535a1117209fcf28cb63014159dc
|