Рассмотрим функцию симулятора мастера CANopen в конвертере USB-CAN.
Мы можем нажать на левую кнопку "Найти ведомую станцию", чтобы просканировать все ведомые узлы CANopen на шине CAN. Вы также можете добавить ведомую станцию CANopen вручную. Станция, которая уже добавлена, будет показана ниже. Пользователь может дважды щелкнуть по указанному номеру узла, чтобы активировать интерфейс для связи с ведомой станцией.

Нажмите здесь, чтобы перейти на страницу GCAN, посвященную USB-CAN, и узнать больше.

Функция мастер-станции 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