Имеем панельку Weintek MT8071iE , Arduino Nano и Arduino Uno. Задача: с помощью панельки собирать и визуализировать данные с обеих дуин. Для связи будем использовать Modbus RTU через шилды на основеMax485.
Распаиваем кабель согласно рекомендации производителя панельки :
Для других панелек может отличаться !!!! читаем мануалы внимательно!!!
Для программирования панели используем бесплатное ПО EasyBuilder Pro, Качаем с оф. сайта, ПО полностью русифицировано.
Настройки соединения панели из проекта
Рекомендую первые запуски делать на скорости 9600 для отладки проекта, а затем, при необходимости повышать.
Создаем проект в FLProg для первой платы UNO. Обращаем внимание на адресацию и скорость, они должны совпадать с настройками панельки.
Собираем тестовую схемку
Пишем простенький скетч для проверки связи
И вот здесь надо быть внимательным! Адресация в FLProg начинается с 0 адреса, а в панельки с 1. Вотадресация панели из оф. мануала .
Modbus RTU function code:
0x 0x01 Read coil 0x05 write single coil
0x_multi_coils 0x01 Read coil 0x0f write multiple coils
1x 0x02 Read discrete input N/A for write operation
3x 0x04 Read input register N/A for write operation
4x 0x03 Read holding register 0x10 write multiple registers
5x 0x03 Read holding register 0x10 write multiple registers
(Note: reverse word order in double word format)
3xbit is equivalent to 3x
4xbit is equivalent to 4x
6x 0x03 Read holding register 0x06 write single register
(Note: 6x is limited to device of one word only)
Поэтому если в контролере вы пишите чтение 0 адреса, то в панели он будет под номером 1 !!!!!
В панельке рисуем простенькую анимацию
Где TS_1 и BL _0 битовые индикаторы, SB_3 битовая кнопка. Заливаем проекты в панельку и дуньку. При первом нажатии на кнопку SB_3 оба индикатора должны поменять цвет, при втором нажатии TS_1 должен принять исходный вид, при третьем, BL_0 должен вернуться в исходное, а TS_1 поменять цвет и т.д.
Если все получилось продолжаем, если нет то проверьте все соединения и настройки связи. Проверьте проект панели, чтобы на экране не было ничего лишнего.
Далее будем разбираться с передачей чисел, добавляем два датчика DTH 11 и DS18B, также добавим дисплейчик 16×2 i2c, для контроля значений.
Дописываем необходимые тэги и рисуем программку, где умножение необходимо для корректного отображения данных в панельке.
Добавляем в панельку числовые индикаторы с ответствующими адресами, не забываем про смещения адреса на 1 !!!
Заливаем и радуемся. Проверяем соответствия показаний на панельке и на LCD индикаторе.
Далее возникает вопрос : как подключить несколько Slave устройств к нашей панельке.
Тут все еще проще, собираем финальную схемку.
Настройки второй дуньки
Пишем простой скетчик генератор + счетчик, и подсчет выводим на панельку. Чтобы задать адрес Slave устройства, для связи в строке перед указанием регистра вводим адрес и #. В нашем случае 1#.
Возникавшие и решенные ошибки:
На панели сообщение Plc no response
1 В проект панели добавлены не существующие тэги или адреса
2 Скорость обмена выставлена очень высокая
3 Проверить соединения
Добавил: adolf81
посмотрите тут https://forum.flprog.ru/viewtopic.php?f=237&t=8200
Здравствуйте, вопрос по некоторым моментам настройки. Повторил самый простой проект битовая кнопка-битовый индикатор, всё работает, но если сделать например регистр 2 для coil, что передаёт сигнал в панель на битовый индикатор, то битовый индикатор перестаёт работатью. Проверил он работает только с о значениями регистра 0 и 1 (в панели в результате смещения 1и2). Битовый переключатель работает на всёх регистрах. Объясните пожалуйста в чём проблема?