Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Протокол CAN, его варианты и переход в Modbus
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
DIMZAY
Сам в CAN ни бум бум, столкнулся в первый раз.
Год назад выдали задание на сборку и программирование шкафа управления. В процессе работы надо забирать из стороннего оборудования сигнал по шине CAN и заводить в свой ПЛК М221.. Год назад не было никакой другой информации, поэтому купили конвертер I-7530A-MR из CAN в Modbus. Этот конвертер необходимо настраивать как со стороны CAN, так и со стороны Modbus. Причём настройка возможна только при наличии конвертора, а он уехал в собранному шкафу и доступ появился только сейчас.
Сейчас, находясь на объекте, узнаю, что внутри стороннего оборудования используется J1939, а для внешних подключений протокол Canopen. Судя по каталогу производителя конвертеров - для каждого варианта протокола свой отдельный конвертер, а не один для всех.

В итоге вопрос: CAN, Canopen, J1939 - это действительно разные протоколы и для работы с ними нужны разные устройства? Или как?
Вот фото протокола стороннего устройства:
Нажмите для просмотра прикрепленного файла
Протокол - понятен. Скорость - понятно. Размер 11 бит - понятно. CAN ID - не понятно. Точнее я не могу вбить такой адрес при настройке своего конвертора I-7530A-MR. 1Е1 могу, а 0х1Е1 нет. 0х важная составляющая или нет? Или проблема в неправильной модели конвертора?
И как потом этот адрес преобразуется в регистр Модбас?
yozik
Цитата
0х важная составляющая или нет

smile.gif
0х это обозначение 16ричного числа, всего лишь.
Странно что вы этого не знаете и беретесь что-то там настраивать.
10=0хА
16=0х10
Слева десятичные, справа соответствующие им 16тиричные.
kosmos440o
Воможно, просто 1Е1 пойдёт. При необходимости преобразовать в десятичное можно использовать калькулятор windows в режиме программиста. По остальному надо спецам смотреть структурку, но я лично в CAN ни бум-бум, о чём нисколько не жалею)))
DIMZAY
Цитата(yozik @ 30.6.2020, 23:33) *
smile.gif
0х это обозначение 16ричного числа, всего лишь.
Странно что вы этого не знаете и беретесь что-то там настраивать.
10=0хА
16=0х10
Слева десятичные, справа соответствующие им 16тиричные.

Двоичные, десятичные, 16-ричные - знаю, проходил, переводить умею.
Раньше 16-ричным кодом пользоваться не приходилось. Спасибо за пояснение.

А с разными названиями протокола что? Названные три протокола сильно различаются ?
manjey73
по идее отличаются. CAN многообразен. Canopen и J1939 точно разные, последние часто в авто используются (использовались)
Se_Sib
Вместо М221 можно было взять М241/251 с Can портом, они и CANopen и J1939 поддерживают, но среда программирования другая.
DIMZAY
Цитата(Se_Sib @ 4.7.2020, 8:55) *
Вместо М221 можно было взять М241/251 с Can портом, они и CANopen и J1939 поддерживают, но среда программирования другая.

ПЛК дороже, софт платный. Инженер с менеджером посчитали и пошли по дешёвому пути.
Se_Sib
Цитата(DIMZAY @ 4.7.2020, 14:30) *
ПЛК дороже, софт платный. Инженер с менеджером посчитали и пошли по дешёвому пути.

TM221CE24T - 17.5т, TM241CEC24T - 23.5т
SoMachine достаточно зарегистрировать,
Machine Expert - 10т за лицензию на 1ПК, 20т - за лицензию на 10ПК. (цены тарифные без НДС)
Шлюз не бесплатный + головников с ним, сомнительная экономия.
Abysmo
Цитата(DIMZAY @ 4.7.2020, 10:30) *
ПЛК дороже, софт платный. Инженер с менеджером посчитали и пошли по дешёвому пути.


Классические идиоты считающие исключительно стоимость оборудования (так как инженер "бесплатный"), так что пусть теперь тратятся на твое сидение на обьекте. А сидеть тебе придется ОЧЕНЬ долго, так как перечисленные тобой протоколы на шине CAN не особо дружат с Modbus. Совершенно разная философия коммуникационного канала. Я работаю с CANOpen и J1939 каждый день, спрашивай какие есть вопросы.

Насколько я понимаю у тебя задача подключить дизель-генератор?

Из двух протоколов J1939 самый простой. Это просто телеграммы в шине посылаемые различным оборудованием грузовика с определенной задержкой. У каждого устройства есть source address. В случае двигателя это SA0, коробка передач SA3, контроллер (который тебе выдает даннные по CANOpen) скорее всего имеет SA33 (body controller), хотя может прикидываться коробкой передач SA3 (для управления оборотами двигателя). Берешь стандарт в руки, мануал на двигатель, настраиваешь шлюз, слушаешь шину, ловишь сообщения и декодируешь.

В случае CANOpen тебе надо получить от ребят EDS файл с описанием переменных. На стороне шлюза тебе надо организоват CANOpen Master который запустит CANOpen Slave, настроит его при помощи SDO сообщений и даст NMT команду START. Скажу сразу что на обычном шлюзе ты это не сделаешь, слишком сложная задача.

Но есть один трюк - некоторые Slave умеют стартовать сами и после этого начинают передавать PDO переменные. Вот их ты можешь отловить так же как и J1939 и декодировать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.