Рассмотрим функцию симулятора мастера CANopen в конвертере USB-CAN.
Мы можем нажать на левую кнопку "Найти ведомую станцию", чтобы просканировать все ведомые узлы CANopen на шине CAN. Вы также можете добавить ведомую станцию CANopen вручную. Станция, которая уже добавлена, будет показана ниже. Пользователь может дважды щелкнуть по указанному номеру узла, чтобы активировать интерфейс для связи с ведомой станцией.
Функция мастер-станции CANopen превращает устройство USBCAN в мастер-карту CANopen и обеспечивает доступ к сети CANopen. В ECANTools есть множество часто используемых функций мастер-станции CANopen. Например, NMT (управление сетью), SYNC (синхронный протокол), EMERGENCY (срочное сообщение), PDO (объект данных процесса), SDO (объект служебных данных), NODE GUARDING (защита узла).
В следующей таблице перечислены функциональные коды и диапазоны идентификаторов кадров, которые соответствуют общим типам кадров CANopen.
Тип сообщения | Код функции | Диапазон COB-ID (Hex) |
NMT | 0000 | 000h |
SYNC | 0001 | 080h |
МЧС | 0001 | 081h-0FFh |
ВРЕМЯ | 0010 | 100h |
PDO1 (передача) | 0011 | 181h-1FFh |
PDO1 (прием) | 0100 | 201h-27Fh |
PDO2 (передача) | 0101 | 281h-2FFh |
PDO2 (прием) | 0110 | 301h-37Fh |
PDO3 (передача) | 0111 | 381h-3FFh |
PDO3 (прием) | 1000 | 401h-47Fh |
PDO4 (передача) | 1001 | 481h-4FFh |
PDO4 (прием) | 1010 | 501h-57Fh |
SDO (передача) | 1011 | 581h-5FFh |
SDO (прием) | 1100 | 601h-67Fh |
Контроль ошибок NMT | 1110 | 701h-77Fh |
1 команда NMT
Команда NMT обеспечивает управление сетью (например, инициализацию, запуск и остановку узлов, обнаружение отказавших узлов).
Пользователь может использовать команду NMT для изменения состояния работы ведомого узла.
Запуск удаленного узла - переводит узел в рабочее состояние
Остановить удаленный узел - переводит узел в состояние остановки.
Войти в предоперационное состояние - переводит узел в предоперационное состояние.
Сброс узла - устанавливает сброс узла
Сброс связи - устанавливает связь сброса узла
2 Сообщение SYNC
SYNC - это синхронное сообщение, отправляемое ведущей станцией. Все станции, имеющие синхронизированные PDO, обмениваются данными с ведущей станцией на основе сообщения SYNC.
Пользователь может циклически отправлять сообщения SYNC через ECANTools.
3 Аварийное сообщение
ECANTools может получать сообщения EMERGENCY от узла ведомой станции. Это сообщение отправляется ведомым узлом, находящимся в аварийном состоянии. Ведущая функция CANopen в ECANTools может принимать и обрабатывать это сообщение EMERGENCY.
4 PDO (объект данных процесса)
Узлы CANopen используют PDO для передачи данных, который в основном применяется для передачи данных в режиме реального времени.
PDO, полное название - объект данных процесса, относится к данным процесса с односторонней передачей. Для принимающего узла нет необходимости отвечать на подтвержденное сообщение CAN.
В ECANTools существует 4 пары передающих и принимающих PDO - TPDO/RPDO.
5 SDO (объект служебных данных)
Функция SDO ведущего модуля CANopen делится на передачу и прием SDO. Функция SDO в ECANTools позволяет пользователям общаться с ведомой станцией путем редактирования индексов и суб-индексов.
6 ОХРАНА УЗЛОВ
В ECANTools существует два способа реализации функции охраны узла. Ведущая станция автоматически посылает команду, чтобы узнать о состоянии ведомого узла (Node Guarding), а ведомый узел периодически передает свой статус в сердцебиении (Heartbeat).
ECANTools также может вручную моделировать данные CANopen, редактируя пользовательские сообщения.
Пользователь может отправлять данные непосредственно на ведомую станцию CANopen, записав функцию
коды, идентификаторы узлов ведомых станций и данные.
Код функции, соответствующий функции, приведен в следующей таблице:
-Для настройки PDO 0x1800+n
--COB-ID равен 0x387
--PDO всегда запускает передачу
--Он должен содержать данные: данные X (2 байта), данные Y (4 байта)
В следующем порядке
-данные X определены в индексе 0x6000, субиндекс 03
-данные Y определены в индексе 0x2010, субиндекс 21
1- индекс 1800+n, субиндекс 01: запись COBID(4 байта)
2- индекс 1800+n, подиндекс 02: запись транспортного байта "t"(1байт)
t=1 - 0xF0: PDO будет передан, если он получит "t" раз SYNC.
t=FD : передача после получения запроса PDO(rtr=1)
t=FF: узел автоматически передает PDO в соответствии с событием
3- индекс 1A00+n: отображение, определяющее первые n данных
субиндекс 0: количество данных, записанных в PDO (1байт). В данном случае запишите "2"
субиндекс 1: определяет, где искать первые данные и размер для записи (8 байт)
Формат: индекс (2 байта) - суб-индекс (1 байт) - размер в битах (1 байт)
В этом случае напишите "60000310".
субиндекс 2: определяет, где искать вторые данные и размер записи (8 байт)
В этом случае напишите "20102120″.
Конфигурационный узел 5 PDO 1802 в каждой из 3 передач SYNC, отправляющий SDO (s) должен быть
605 23 02 18 01 00 00 8703
605 2F 02 18 02 03 00 00 00
605 2F 02 1A 00 02 00 00 00
605 23 02 1A 01 10 03 00 60
605 23 02 1A 02 20 21 10 20