1Используем ПЛК Delta DVP15MC11T. Энкодер ИПА-5812. Подключение по интерфейсу CANopen.
Delta рекомендует два резистора-терминатора по 120 Ом на концах шины. Из этого можно сделать вывод, что в самом контроллере резистора нет.
1. Создаем проект в ISPSoft, настраиваем CAN. Для этого вызываем HWCONFIG
2. Задаем скорость шины CAN на вкладке Settings.
На этой скорости будут работать все устройства на шине. Скорость зависит от длины провода шины. Чем провод длиннее - тем скорость на шине должна быть меньше. Это связано во первых с арбитражем коллизий, а во вторую очередь с помехоустойчивостью.
Рекомендуемая максимальная длина провода шины CAN при различной скорости на шине
3. Вызываем CANopen builder
В открывшемся CANopen Builder устанавливаем EDS файл энкодера.
4. После добавления EDS файла в CANopen Builder, в дереве устройств появится энкодер.
Его можно найти как по вендору ORANGEL, так и по профилю CANopen устройства - у энкодеров профиль 406.
5. Далее мышкой устройство переносится на шину справа.
Устройство появилось на шине CAN, показано имя устройство и его шинный адрес CAN ID. Адрес должен соответствовать адресу устройства, который задается либо физическими переключателями на самом устройстве, либо внутренними настройками, которые задаются при специальной процедуре настройки устройства. Здесь номер задается минимальный начиная с 1, далее в свойствах устройства его можно изменить.
6. Правой кнопкой по иконке контроллера вызываем свойства Мастера.
Здесь настраиваем период выдачи синхрометки SYNC, по которой происходит опрос устройств на шине.
На осциллограмме ниже показано как выглядит обмен на шине со скоростью 500 кбит/с и периодом опроса 5 мс, На шине только одно устройство, длина PDO - 8 байт.
На осциллограмме ниже показано как выглядит на шине одна транзакция SYNC - PDO. Скорость на шине 500 кбит/сек, одно устройство
7. Во вкладке Network выбираем пункт Node List.
В открывшимся окне переносим устройство из левого списка в правый. В результате произойдет связывание PDO регистров устройства с внутренними регистрами ПЛК. В правой нижней табличке видно к какому регистру привязаны байты PDO.
8. Двойным кликом по устройству на шине вызываем окно свойств устройства.
Проверяем и уточняем CAN ID устройства
При необходимости снимаем галочки проверки Vendor ID, Product Code, Revision. Если они будут стоять и данные не будут совпадать с тем что указано в EDS файле устройства - контроллер не будет с устройством работать.
Здесь же можно настроить параметры передачи PDO устройства - выбираем в нижней таблице нужный PDO и жмем кнопку Properties, либо PDO Mapping.
В свойствах можно настроить тип передачи - асинхронный или по синхрометке, в Mapping - какие данные будут передаваться в PDO.
9. Закрываем окно свойств, сохраняем проект CANopen Builder, закрываем его окно.
10. Сохраняем изменения в HWCONFIG. Закрываем.
11. Для проверки получения данных от энкодера, в ISPSoft добавляем переменную размера WORD. В программу добавляем блок MOVE. На вход блока назначаем внутренний регистр из шага 7, на выход - созданную переменную размера WORD
12. Компилируем проект, загружаем в ПЛК, на забываем проверить, что стоит флажок загрузки параметров CANopen.
13. Стартуем ПЛК, переводим в режим Online, и видим «в онлайне» значения получаемые с энкодера. Если покрутить вал энкодера, то значения синхронно меняются.
14. После долгого перерыва
Запускаем ISPSoft. Проект называется CANOpen_Test.
Запускаем COMMGR. Возможно нужно удалить текущий драйвер, т.к. из-за какого то глюка контроллер не всегда подключается.
Заходим в драйвер Эзернет, удаляем то соединение которое есть, делаем поиск и выбираем что найдет.
Либо удаляем этот драйвер и кнопкой «Add...» делаем поиск контроллера заново.
Обратить внимание на адаптер - выбрать актуальную сетевую карту к которой подключен контроллер.
В ISPSoft в «Инструменты->Параметры связи» выбираем драйвер, который включили в COMMGR
После настройки связи контроллер пожелал быть заново зашитым перекомпилированным проектом.
После чего «Старт» и режим «Онлайн»
И тогда уже появились изменяющиеся в реальном времени показания с энкодеров