Weintek и Arduino

Имеем панельку Weintek MT8071iE , Arduino Nano и Arduino Uno. Задача: с помощью панельки собирать и визуализировать данные с обеих дуин. Для связи будем использовать ModbuRTU через шилды на основе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


0

Автор публикации

не в сети 2 недели

Анатолий

77
Комментарии: 26Публикации: 77Регистрация: 21-12-2017

2 комментария к “Weintek и Arduino”

  1. Здравствуйте, вопрос по некоторым моментам настройки. Повторил самый простой проект битовая кнопка-битовый индикатор, всё работает, но если сделать например регистр 2 для coil, что передаёт сигнал в панель на битовый индикатор, то битовый индикатор перестаёт работатью. Проверил он работает только с о значениями регистра 0 и 1 (в панели в результате смещения 1и2). Битовый переключатель работает на всёх регистрах. Объясните пожалуйста в чём проблема?

    0

Оставьте комментарий

Войти с помощью: