KUKA.RSI.NET (KUKA Robot Sensor Interface) — это проект, разработанный для интеграции и управления роботами KUKA с использованием интерфейса RSI и .NET C#. Проект дает возможность создать сенсор для взаимодействия с роботом, обеспечивая более высокую степень автоматизации и гибкости в производственных процессах.
Поддерживает .NET 6.0 и .NET 8.0.
Класс RSIClient предоставляет функциональность для работы и общения с роботами KUKA по протоколу RSI. Он позволяет создавать экземпляры сенсоров и обмениваться с роботами XML-документами по UDP, реализуя базовые методы чтения и записи тегов робота. Класс поддерживает асинхронные операции для получения данных от робота, что позволяет улучшить производительность и отзывчивость системы.
Основные функции класса: Получение данных: Метод GetData() позволяет получать данные от робота и интерпретировать их в формате XML, добавляя их в список полученных данных Data.
Асинхронное получение данных: Метод GetDataAsync() предоставляет возможность асинхронного получения данных, что позволяет избежать блокировки основного потока выполнения.
Отправка данных: Методы SendTags() и SendStringData() позволяют отправлять таблицы ключ-значение и XML-документы на робот.
Очистка данных: Метод ClearData() позволяет управлять объемом хранимых данных, удаляя старые записи при превышении заданного лимита.
Проект необходим для:
-
Интеграции сенсоров: Позволяет подключать различные сенсоры, такие как камеры, лазеры и другие устройства, для улучшения восприятия окружающей среды.
-
Управления движением: Обеспечивает более точное и адаптивное управление движением робота в зависимости от данных, получаемых от сенсоров.
-
Автоматизации процессов: Упрощает автоматизацию сложных производственных процессов, где требуется взаимодействие с внешними системами.
-
Сборка изделий: Использование KUKA_RSI для управления роботами на конвейере, где они могут адаптироваться к изменениям в процессе сборки на основе данных от сенсоров.
-
Качество и контроль: Интеграция с камерами для проверки качества продукции в реальном времени, позволяя роботам автоматически корректировать свои действия.
-
Логистика: Применение в системах автоматизированного хранения и извлечения, где роботы могут взаимодействовать с сенсорами для оптимизации маршрутов перемещения.
using KUKA.RSI;
//...
public RSIClient client = new RSIClient(49150);
public async Task ExchangeAsync() {
bool getdataresult = await client.GetDataAsync();
var valueTable = new Dictionary<string, string>
{
{ "Out.01", "1" },
{ "Out.02", "0" },
};
RSIData LastData = client.Data.LastOrDefault(RSIData.Empty);
string ipocvalue = LastData.GetIPOC(); // Если в принятом пакете LastData нет IPOC, то -1
client.SendStringData(DATA.ConvertDictToXmlDoc(valueTable, ipocvalue));
}
Вы можете посмотреть полноценный клиент и реализацию класса RSI клиента с поддержкой очереди отправки, периодического чтения документов ниже:
...
Проект в текущем состоянии не поддерживает данную версию, вы можете запросить поддержку или создайть форк репозитория, внести изменения и отправить пулл-реквест.