modbus slave

В данный форум Вы можете заносить найденные Вами ошибки.При добавления ошибки пожалуйста приложите файлик error.log который находится в папке с установленной программой
Ответить
Аватара пользователя
amkuznecov
Рядовой
Сообщения: 20
Зарегистрирован: 16.02.2016{, 18:51}
Репутация: 0
Откуда: Москва
Имя: Андрей

modbus slave

#1

Сообщение amkuznecov » 03.05.2017{, 16:15}

не работает 1 слейв, второй в норме

Arduino: 1.8.1 (Windows 10), Плата:"Arduino Nano, ATmega328"

pr94:245: error: redefinition of 'bool _modbuseSetSlEnable1_SlId'

exit status 1
redefinition of 'bool _modbuseSetSlEnable1_SlId'

Добавлено (03.05.2017, 16:15)
---------------------------------------------
Два раза объявляет

modbuseSetSlEnable1_SlId

modbuseSetSlEnable1_SlId

Я так понимаю должно быть

modbuseSetSlEnable1_SlId

modbuseSetSlEnable2_SlId

????
Последний раз редактировалось amkuznecov 03.05.2017{, 16:16}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

modbus slave

#2

Сообщение ecoins » 26.05.2017{, 20:05}

MODBUS
Начали пробовать подключение оборудования ОВЕН и выявились серьезные проблемы с драйвером MODBUS.
Приложена тестовая программа:
Опрашивает один канал только при двух условиях:
1. Не включен еще один канал - (плата №2  отключена, если включить её - перестаёт считывать температуру).
2. Если включается дисплей  - в программе пин 6 соединить с GND - перестаёт считывать температуру.
-------
ОТДЕЛЬНО №1.
Сделан опрос каждого действия:
1. Задача 1 - переписывание регистров 4 мкс (фактчиески меньше);
2. Задача 2 - формирование сообщений 920 мкс;
3. Задача 3 - вывод в UART (примерно 25 символов) - 16 мкс;
4. Задача 4 - вывод на дисплей (8 символов) - 13150 мкс (13 мс).

Дисплей LCD 4x20, подключен через i2c. Ну очень много - в некоторых реальных программах лучше не использовать, так как задержка уже 5 мс (200Гц) заметно на глаз и слух.

ОТДЕЛЬНО №2.
Очень полезно оказывается измерение времени задач - избавляет от многих заблуждений при отладке и настройки программ с кнопками, светодиодами, зуммером и т.п.
Но приходиться использовать два собственных пользовательских блоков (в программе присутствуют) и вводить дополнительную плата - иначе без вмешательства автора Сергея не получается.

Сергей, ПРОСЬБА! Сделай пожалуйста блок на выходе которого будет только один параметр - время исполнения текущей платы.

Добавлено (26.05.2017, 20:05)
---------------------------------------------
По двум Slave.
Неожиданно поняли, что Slave для внешнего МАСТЕРА может быть только один.
ОЧЕНЬ ЖАЛЬ.
А было бы здорово иметь несколько.

У МАСТЕРА устройств может быть несколько - это понятно.
Вложения
modbus-test_wor.flp
(366.72 КБ) 53 скачивания
Последний раз редактировалось ecoins 26.05.2017{, 20:06}, всего редактировалось 1 раз.

Аватара пользователя
Rovki
Полковник
Сообщения: 4874
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

modbus slave

#3

Сообщение Rovki » 26.05.2017{, 20:20}

ecoins писал(а):Неожиданно поняли, что Slave для внешнего МАСТЕРА может быть только один.
ПР200 может быть 2 слейвами ,но это наверное определяется возможностью МК.
Электронщик до мозга костей и не только

ecoins1982
Рядовой
Сообщения: 1
Зарегистрирован: 24.12.2016{, 20:56}
Репутация: 0
Откуда: Шатура

modbus slave

#4

Сообщение ecoins1982 » 28.05.2017{, 00:02}

При работе на FLProg с KaSkada реально круто складывается - всё отображение и управление на планшете, а программирование через визуальные средства FLProg. Но при этом очень нужен хотя бы еще один Slave.
Через один планшет подключается например через BlueTooth, а через другой еще один пульт управления (может тоже на KaScada или на компьютере в другой Scada-среде, например через Wi-Fi).
Управление с нескольких пультов с выбором нужного вектора управления по приоритету подключенных пультов, реализовано в опубликованной на сайте - раздел статьи под названием  "Открытая роботозированная лаборатории".
Последний раз редактировалось ecoins1982 28.05.2017{, 07:56}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

modbus slave

#5

Сообщение ecoins » 28.05.2017{, 07:27}

Mega2560 (или что поновее Due) c пятью Serial (один программный, остальные аппаратные) + SPI мог бы дополнительно к основной программе выполнять роль коммуникатора. На одном порте могли бы сидеть и модули Овена.
Технические вроде ничего не мешает сделать несколько Slave в FLProg, но обмен надо делать по прерываниям.
Разработчик в своих реализациях прерывания не использует (или избегает этого по каким-то соображениям, например для простоты переноса программ на разные контроллеры).
В нынешней реализации ModBus я обнаружил программные задержки - а это засада... Есть и Serial.flush и delay(5).
------
Мог бы попробовать предложить улучшенное решение - но без автора его не перенести в систему (если только как пользовательский блок, но там много своих ограничений) и как критически отнесётся к этому автор?
Да и С++ далеко не на профессиональном уровне, но что-то писать удается.
_______
Пока экспериментируем и изучаем углубленно существующие для Arduino драйверы Modbus - там тоже не все здорово...

Ответить

Вернуться в «Новые»