Skip to main content

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)

Лицензия

MIT

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

aim_tcp-0.0.7.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aim_tcp-0.0.7-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

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

Hashes for aim_tcp-0.0.7.tar.gz
Algorithm Hash digest
SHA256 04f65f4e58e8d6c7bdc6ba83a6c6a4d6e6ac24d2b57816553b5db3e9f9144728
MD5 3ddaa67b05ea5661bbc1ad3afde32fcd
BLAKE2b-256 5be0d093533213e6740dfc73e711dae8aced69d92c6834226c0c978d2e41f715

See more details on using hashes here.

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

Hashes for aim_tcp-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6e9b33921abd4a16ec530fb66391b09d296dcaf7fdc4ec113232fbd1a0188079
MD5 35e885f739cba7d2b2856047976c2f2c
BLAKE2b-256 215091f38827ae0013d492ccd0bc83e77e4c535a1117209fcf28cb63014159dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page