DWIN DGUS дисплеи HMI

bortnik27
Offline
Зарегистрирован: 23.06.2019

То ли лыжи не едут, то ли я чего то не понял, там открывается Serial Assistant, на левой вкладке он же.

VKryz
Offline
Зарегистрирован: 02.04.2020

VKryz
Offline
Зарегистрирован: 02.04.2020

Или проще

bortnik27
Offline
Зарегистрирован: 23.06.2019

VKryz пишет:

Или проще

Так в том то и дело, именно так и в инструкции, а у меня нет..

Вы не могли бы свой архив с DGUS выложить?

bortnik27
Offline
Зарегистрирован: 23.06.2019

del

bortnik27
Offline
Зарегистрирован: 23.06.2019

del

bortnik27
Offline
Зарегистрирован: 23.06.2019

У ТС в шапке DGUS v7.30 - там нет ICL генератора. Каким то чудом нашел и 7.597 и даже 8ку. Спасибо за помощь!

DGUS Tool v8 https://yadi.sk/d/wyYiWhuMyux2bQ

DGUS Tool v7.597 https://yadi.sk/d/M7USzLTkhAEHDw

VKryz
Offline
Зарегистрирован: 02.04.2020

bortnik27 пишет:

У ТС в шапке DGUS v7.30 - там нет ICL генератора. Каким то чудом нашел и 7.597 и даже 8ку. Спасибо за помощь!

DGUS Tool v8 https://yadi.sk/d/wyYiWhuMyux2bQ

DGUS Tool v7.597 https://yadi.sk/d/M7USzLTkhAEHDw

Не за что. 

 На сайте производителя это чудо в свободном доступе.

 http://dwin.com.cn/service/en/file/id/29

Рад, что разобрались.

bortnik27
Offline
Зарегистрирован: 23.06.2019

Теперь новая проблема, при прошивке демо все работает, при прошивке своим проектом черный экран, ни у кого такого не было?

VKryz
Offline
Зарегистрирован: 02.04.2020

bortnik27 пишет:

Теперь новая проблема, при прошивке демо все работает, при прошивке своим проектом черный экран, ни у кого такого не было?

Было. 

Проект должен начинаться с со страницы с номером 000.

bortnik27
Offline
Зарегистрирован: 23.06.2019

Огромное спасибо! Заработало!

VKryz
Offline
Зарегистрирован: 02.04.2020

Может кто-нибудь поможет разобраться со следующим бредом: Адрес ячейки в DGUS является десятичным. Например 1802. Но в долбаном массиве отправки он записывается как 0х18, 0х02. sendData[8]={0x5A, 0xA5, 0x05, 0x83, 0x18, 0x02, 0x00, 0xAB}; где всё элементы кроме адреса в HEX формате, а адрес в хрен знает каком! В каком формате мне представить переменную адреса и как её передать в массив? То есть хотелось бы переменную что-то типа int address = 1802; а вот что с ней делать потом? Заранее спасибо!

PS. 

Хм, получается пока так:


int addressWrite;
int dataWrite;
void loop()
{
dataSend(0x1802, 250);
}
void dataSend(int addressWrite, int dataWrite)
{
byte aH = highByte(addressWrite);
byte aL = lowByte(addressWrite);
byte dH = highByte(dataWrite);
byte dL = lowByte(dataWrite);
byte dW[8] = {0x5A, 0xA5, 0x05, 0x82, 0x00, 0x00, 0x00, 0x00};  //массив на запись
  dW[4] = aH;
  dW[5] = aL;
  dW[6] = dH;
  dW[7] = dL;
  Serial1.write(dW,8);
  delay(2); 
}
 
Nik_an
Nik_an аватар
Offline
Зарегистрирован: 20.11.2019

а адрес в хрен знает каком

можете записать как 0x5A, 0xA5, 0x05, 0x82, 18, 2, 0x00...

либо   0x5A, 0xA5, 0x05, 0x82, 0x12, 0x02, 0x00,0x00....

Nik_an
Nik_an аватар
Offline
Зарегистрирован: 20.11.2019

brokly, как библиотека поживает? хотелось бы посмотреть как правильно парсить ответы от дисплея

VKryz
Offline
Зарегистрирован: 02.04.2020

Nik_an пишет:

а адрес в хрен знает каком

можете записать как 0x5A, 0xA5, 0x05, 0x82, 18, 2, 0x00...

либо   0x5A, 0xA5, 0x05, 0x82, 0x12, 0x02, 0x00,0x00....

Не работает ни один из предложенных вами вариантов. В первом случае DGUS не понимает . Во втором - обратится по адресу 1202.

Так что, пока только 0х1802. Как это ни дико, увы.

Nik_an
Nik_an аватар
Offline
Зарегистрирован: 20.11.2019

тогда  - 0x5A, 0xA5, 0x05, 0x82, 0x18, 0x02, 0x00,0x00....

VKryz
Offline
Зарегистрирован: 02.04.2020

Nik_an пишет:

тогда  - 0x5A, 0xA5, 0x05, 0x82, 0x18, 0x02, 0x00,0x00....

Спасибо, конечно, но именно так я и делаю. :)

 

VKryz
Offline
Зарегистрирован: 02.04.2020


Тут теперь вот какая петрушка. Следующий вопрос:

Как мне вернуть прочитанное значение в нужное место.

То бишь записать переменную с названием адреса своё значение dRead?

 

int addressWrite; 
int dRead; 
int dataRead_1602; 
int dataRead_1702; 
int dataRead_1802; 

void loop() 
{ 
dataReceived(0x1602); 
dataRead_1602 = ??? (dRead); 
dataReceived(0x1702); 
dataRead_1702 = ??? (dRead); 
dataReceived(0x1802); 
dataRead_1802 = ??? (dRead); 
} 
void dataReceived(int addressWrite) 
{ 
byte aH = highByte(addressWrite); 
byte aL = lowByte(addressWrite); 
byte Read[7] = {0x5A, 0xA5, 0x04, 0x83, 0x20, 0x00, 0x01}; //массив на чтение 
Read[4] = aH; 
Read[5] = aL; 
delay(2); 
while (Serial1.available()>9) 
{ 
Serial1.write(Read, 7); 
{
 int a = 0; 
while (a != 9) 
{ 
data[a] = Serial1.read(); 
a++; 
int H = data[7]; 
int L = data[8]; 
dRead = H << 8 | L; 
} 
} 
} 
}

 

Всё дело в том, что dRead  записывается в эти переменные не в том порядке в каком считывается. Сдвигается. Первым выводится последняя, второй первая и т.д. И delay() не помогает.

 

VKryz
Offline
Зарегистрирован: 02.04.2020

Походу, либо форум никто не читает, либо действующих проектов ни у кого нет, либо программисты тут ещё хуже, чем я. :))

Держите рабочй код на чтение любой ячейки в любом количестве, вдруг кому-нибудь как мне для практических решений понадобится.

int dRead; 
int dataRead_1708; 

void loop() 
{ 
data_1708 = dataReceived(0x1708);
} 
int dataReceived(int addressWrite)
{
  byte aH = highByte(addressWrite);
  byte aL = lowByte(addressWrite);
  byte Read[7] = {0x5A, 0xA5, 0x04, 0x83, 0x20, 0x00, 0x01}; //массив на чтение
  Read[4] = aH;
  Read[5] = aL;
  delay(2);
  while (Serial1.available() > 9)
  { Serial1.write(Read, 7);
    {
      byte a = 0;
      byte data[9];
      while (a != 9)
      {
        data[a] = Serial1.read();
        a++;
        byte H = data[7];
        byte L = data[8];
        dRead = H << 8 | L;
        Serial1.flush();
      }
    }
  }
  delay(2);
  return (dRead);
}

Код на запись я выкладывал в посте 262.

 

bortnik27
Offline
Зарегистрирован: 23.06.2019

А не расскажете что за дисплей и для каких целей используете? 

У меня DMG10600C070_03WTC, хочу на ардуино делать умный дом, со своими задачами, учет израсходованной бутилированной воды с отправкой заказа по e-mail, учет всякой бытовой мелочи, в текущих реалях можно и заказ продуктов сделать ну и так по мелочи, свет, подогрев полов, показания счетчиков ну и погода само собой, пока только осваиваю дисплей как понимаете.

VKryz
Offline
Зарегистрирован: 02.04.2020

bortnik27 пишет:

А не расскажете что за дисплей и для каких целей используете? 

Расскажу, конечно!

У меня DMG85480C050_03W 5' . Использую для проекта серьёзного намоточного станка, для намотки трансформаторов. Моё хобби - создание ламповых усилителей высокого класса, которые практически и состоят из одних трансформаторов. Так, например в одном усилителе 16 моточных изделий - это не предел. Устав мотать на примитивной крутилке, решил скомстролить сеьёзную машину на шаговых двигателях с шагом укладчика 0,001 мм. Плата управления Teensy 3.5 с использованием великолепной библиотеки TeensyStep. Вводные данные( длинна катушки, диаметр провода, количество витков, скорость, смещение и т.д.) вводятся с экрана DGUS, обсчитываются и выдаются на экран для дальнейших итераций(максимальное количество витков, инкремент и т.д.). Когда все данные установлены, начинаем мотать. В процессе намотки на экран выдаются данные(текущая скорость, и данные по прогрессу.) Обмоток может быть несколько, с разными диаметрами проводов. В добавок намотка влево в плане кода существенно отличается от намотки вправо.

В общем не просто всё это. :) Только для полей DGUS у меня используется около 100 переменных.

Видео тестового проекта экрана можно посмотреть тут: https://www.youtube.com/watch?v=TWYNntvhSio

https://vk.com/video2193153_456239154

 

bortnik27
Offline
Зарегистрирован: 23.06.2019

Интересный проект, желаю успехов! А механику станка сами будете собирать? Или какое то готовое или полу готовое решение есть?

VKryz
Offline
Зарегистрирован: 02.04.2020

bortnik27 пишет:

Интересный проект, желаю успехов! А механику станка сами будете собирать? Или какое то готовое или полу готовое решение есть?

Спасибо! 

Использование шаговых двигателей значительно упрощает механическую часть. От цепей передачи шпинделя после нескольких экспериментов я отказался, а привод укладчика выбрал в Китае готовый. Благо подобных заготовок для CNC там достаточно. Самое сложное теперь реализовать механизм регулирования натяжения провода. Буду пытаться что-то изобрести с применением магнитных муфт. В общем, что-то готовое, что-то сам. Так, как вещь незнакомая пришлось перепробовать и купить несколько вариантов двигателей, драйверов, механики, экранов и даже ардуино. Изначально пытался на Меге собрать, но ничего из существующих библиотек не обеспечивало необходимую точность и скорость. Даже сам пытался написать библиотеку степперов под прерываниями. Получилось, но "не эстетично". :) В результате остановился на уникальной TeensyStep  и пришлось под неё купить Teensy 3.5. https://www.youtube.com/watch?v=o9pRKvfJtoU

Они обеспечивают необходимую мне точность и скорость и почти полностью позволяют реализовать задуманное. Дело в том, что у меня особые требования к управлению, а всё уже написанное не позволяет вмешиваться в процесс. То есть задал параметры, нажал старт и дальше от тебя ничего не зависит. Реальный же процесс намотки реального трансформатора сильно отличается от идеального. Так как приходится мотать разными диаметрами проводов и прокладывать между слоями прокладки, велика вероятность неравномерности поверхности и необходимости отмотать уже намотанные витки, что-то подправить и намотать заново. 

Одним словом, изготовить по-настоящему качественный HI-END трансформатор очень непросто. Но по скольку это в усилителе главное, приходится принимать эти условия.

Directplay
Offline
Зарегистрирован: 13.04.2020

Добрый день, кто нибудь разобрался как с таймером работать на этих дисплеях? У меня проблема, не получается реализовать обратный отсчет времени. Нужно час отсчитывать поминутно назад.

Casper17
Offline
Зарегистрирован: 21.06.2013

Кто-то работал с временем? Есть примеры? Необходимо выводить время в углу экрана на всех страницах и на некоторых страницах надо выводить время последнего обновления! Как можно посылать строку вида хх:хх:хх для времени?

Casper17
Offline
Зарегистрирован: 21.06.2013

Или с RTC можно работает, если часы встроены в дисплей, и я так понимаю не во всех они есть. У меня DMG85480C050_03WTC и эта модель без часов, да?

UT5
Offline
Зарегистрирован: 12.04.2015

Господа, кто-то освоил тему "рисования" на этих дисплеях? 
Если да - есть работа - отображение на таком дисплее нескольких градусников + сенсорных кнопок. Пожалуйста, за подробностами в личку. 

alex_arduin
Offline
Зарегистрирован: 22.06.2020

Привет, кто-нибудь пробовал делать простое окошко с РУССКИМ текстом? Создаю в приложении Dgus Tool 8.0.0.8, воздаю контрол типа DwinText, указываю текст для примера "123qwertyйцукен", длину строки ставлю 30(пример же). С помощью проги ttfFont создаю файл шрифта 0_DWIN_ASC.dzk, 8кБ. В результате на экране нормально отображаются йифры и английские символы, а с русскими беда. Делал как в инструкции

1. выбираете 1251 кириллицу
2. тип виндовского шрифта (нью роман,ариал,... ; Начертание; Размер ) Размер
3. если надо выбираете все ли символы с адресов  00 до FF  использовать
4. увеличение по вертикали, горизонтали
5. сдвиг в выделяемом окне(знакоместо) под символ
6. размер окна(знакоместа)
7. кнопка создать шрифт

результат 123qwertyР№<C| и другие кракозябры. Вариации 8859-5Кирилик или 866ОЕМРашн не помогают, меняются кракозябры не более. В DwinText указано Ascii.

Пробовал менять CodeType на GBK, BIG5, UNICODE, также менял в ttfFont на UNICODE результат теже кракозябры, плюс цифры и английские символы тоже превращаются в не похожее на буквы

alex_arduin
Offline
Зарегистрирован: 22.06.2020

Со шрифтом всё также непонятно, но точно известно что объект DwinText, точно хранит текст в той форме, в которой он был написан в свойстве TextInit, проверил через привязку его к QR коду и адльнейшим считаванием QR кода через камеру телефона. По кодировке кракозябр понятно, что контроллер хранит данные в UTF-8, по крайней мере это сходится с сайтом https://2cyr.com/decode/?lang=ru если установить преобразование WIN1251 => UTF-8.

Также произошло временное окирпичивание, что-то не так было  в файлах 13 14 врезультате чего дисплей не запускался (не было подсветки), в уарт отдавал 0 через каждую секунду, ни на что не реагировал. Пришлось скинуть всё на микросд (папку DWIN_SET) причём китайские названия сократил до 13.bin 14.bin после перезагрузки в синем экране было написаны колво загруженных файлов с микросд, файл конфига имел название T5LCFG.CFG

В конфиге можно настроить и  другие звуки нажатия, вместо стандарного пикания, выбрав свойство Music в поле Buzeer/MusicPlay. Но понадобится создать бибилиотеку из файлов mp3 или wav и сохранить её в контроллер под именем 16.wae. А затем в свойствах DwinBasicTouch установить галочку IsPlayVoice, WavLibID 16, VoiceID - указать номер файла (id) начиная с 1, не знаю почему но файл с ид=0 не проигрывается.

rob_grig
Offline
Зарегистрирован: 29.07.2020
Привет Alex!
Как ты используешь .DZK file?
Можешь пожалуйста выложить пошаговую инструкцию?
Никак не могу прикрутить мой фонт который мне нужен.
 
Заранее спасибо.
alex_arduin
Offline
Зарегистрирован: 22.06.2020

1 скачать прогу ttffont http://www.ampdisplay.com/documents/pdf/ttfFont.zip

2 распаковать, запустить exe, нажать кнопку "Font Selection" и выбрать шрифт, установленный в системе (win)

3 Появится название выбранного шрифта красным, выбрать рядом размер шрифта

4 Font Coding - 1251 Cyrillic

5 Scale и Shift устанавливал в 0

6 Dot matrix Size , галочку ставил, размер такой же как по пункту 3

7 Затем необходимо настроить Scale и Shift, чтобы символы из Character умещались в черный квадратик

например символ Д 00С4, Ж 00С6 Й 00С9 Щ 00D9 эти смиволы имеют хвостики которые желательно уместить, чтоб шрифт норм выглядел

8 Нажать Create и назвать его к примеру 1_Impact_16x16.dzk, следующий 2_Impact_32x32.dzk

Я делал несколько рус шрифтов 16x16 32x32 64x64 плюс делал шрифт для английских символов через стандартный софт  DGUS_TOOL_V8.0.0.8  -> 0#word bank где выбирал такой же шрифт как для русских, scale=shift=0 имя 0_Impact16.HZK

9 Потом заливал шрифт 0, 1, 2 т .д.

Важно то что стандартный объект DwinText с русским текстом, указанным в редакторе (DGUS_TOOL_V8.0.0.8) будет отображен некорректно, даже при том что шрифт будет указан правильно, а именно Codetype-Ascii Font0Id=Font1Id = айди того шрифта что нужен (если нуже 2_Impact_32x32, то айди=2)

Поэтому такие строки придётся модифицировать через usart2, а именно посылкой валидных данных по адресу VP

rob_grig
Offline
Зарегистрирован: 29.07.2020

Я делаю примерно так же. Кодировку использую UNICODE. Мне нужны английские буквы. 

Имя фонта: 0_orb_16x16.dzk. Font0_ID = Font1_ID = 0.

Как показано на рисунке. Все равно фонт не тот что нужен. Может потому что я тестирую программу в Debug Window? 

 

 

 

alex_arduin
Offline
Зарегистрирован: 22.06.2020

надо на живом экране тестить, в Debug, вроде внутренний фиксированный шрифт, у которого меняется только размер XY Width. CodeType  я у себя ставил в Ascii

monstr07
Offline
Зарегистрирован: 23.07.2020

Прошу прощения если не в тему, принесли в ремонт аппарат с  дисплеем DMT80480M070_01WTZ6,  не работал тачскрин, его поменяли, но нажимается неправильно, и  меню калибровки нет.  Как его можно откалибровать?

rob_grig
Offline
Зарегистрирован: 29.07.2020

Насколько я помню в новых дисплеях отсуствует инструмент калибровки. Эта функция заложена в процессоре и автоматически срабатывает при запуске экрана.

У Вас скорее всего проблема в настройках Rotation. По умолчанию 90 градусов.

Для точной настройки советую обратиться в тех. поддержку производителя.

dwinhmi@dwin.com.cn

rob_grig
Offline
Зарегистрирован: 29.07.2020

На живом экране тоже самое. 

Можете скинуть Ваши рабочие HZK и DZK файлы?

Попробую их протестировать.

rob_grig
Offline
Зарегистрирован: 29.07.2020

Советую использовать RTC объект и посылать на сериал порт следующую цепочку

5A A5 0B 82 0010 13 0A 01 00 0B 0C 0D 00

меняя 3 байта каждую секунду

0B - часы

0C - минуты

0D - секунды

monstr07
Offline
Зарегистрирован: 23.07.2020

Спасибо, в ремонт редко такое приносят и впервые что нет меню калибровки. Как можно скопировать и откорректировать программу с этого дисплея?

SerjPr
Offline
Зарегистрирован: 04.08.2020

Не подскажете как очистить память монитора. Появились остаточные глюки от прежней прошивки. 

 

rob_grig
Offline
Зарегистрирован: 29.07.2020

monstr07 пишет:

Спасибо, в ремонт редко такое приносят и впервые что нет меню калибровки. Как можно скопировать и откорректировать программу с этого дисплея?

Как ответили китайские товарищи, нет возможности скачать конфигурацию из дисплея. Нужно брать конфиг файл, модефицировать и заливать его в дисплей а потом проверять как оно работает.

rob_grig
Offline
Зарегистрирован: 29.07.2020

SerjPr пишет:

Не подскажете как очистить память монитора. Появились остаточные глюки от прежней прошивки. 

 

Какая модель? Можно поподробнее про глюки? В чем они проявляются?

SerjPr
Offline
Зарегистрирован: 04.08.2020

dmt48270c043_06wt

Остались фантомы от прежней прошивки. Тыкаю на пустое место на экране и выскакивает меню которая была в прежней прошивке.

 

SerjPr
Offline
Зарегистрирован: 04.08.2020

Этот экран используется на 3D принтере. Загрузил модифицированную прошивку. Затем откатился на заводскую прошивку. Но остались фантомы прежней прошивки. кое где цыфры высвечиваются. И если ткнуть на пустое место где в прошлой прошивке было меню. Выскакивает меню от прошлой прошивки. То есть после прошивки остался мусор. Его по ходу надо залить нулями перед новой прошивкой. 

MiracleMind
Offline
Зарегистрирован: 05.08.2020

Здравствуйте, я делаю приборку в машину, пытаюсь расставить картинки, не могу понять, как это делать. (нужно фоновое изображение, поверх него нужны другие картинки (значки : дальний, ближний свет, поворотники и тп.)) Застрял на том, что не могу в DWIN_DGUS v5.10 расставить картинки поверх фонового изображения. Можете подсказать, как это делается.
И еще такой вопрос, есть ли в "property" такое свойство, как "видимость" (делать видимой и невидимой картинку).

rob_grig
Offline
Зарегистрирован: 29.07.2020

SerjPr пишет:

Этот экран используется на 3D принтере. Загрузил модифицированную прошивку. Затем откатился на заводскую прошивку. Но остались фантомы прежней прошивки. кое где цыфры высвечиваются. И если ткнуть на пустое место где в прошлой прошивке было меню. Выскакивает меню от прошлой прошивки. То есть после прошивки остался мусор. Его по ходу надо залить нулями перед новой прошивкой. 

Когда Вы говорите про прошивку, что Вы имеете ввиду? Собственно программу или firmware файлы (T5L_UI_DGUS2_V34.BIN и T5L_OS_DGUS2_V10.BIN)? Как я понял проблема в залиавемом коде. Просто попробуйте создать простую програмку в которой только одна картинка.  Залейте ее в дисплей и посмотрите присуствие фантомов.

rob_grig
Offline
Зарегистрирован: 29.07.2020

MiracleMind пишет:

Здравствуйте, я делаю приборку в машину, пытаюсь расставить картинки, не могу понять, как это делать. (нужно фоновое изображение, поверх него нужны другие картинки (значки : дальний, ближний свет, поворотники и тп.)) Застрял на том, что не могу в DWIN_DGUS v5.10 расставить картинки поверх фонового изображения. Можете подсказать, как это делается.
И еще такой вопрос, есть ли в "property" такое свойство, как "видимость" (делать видимой и невидимой картинку).

DWIN_DGUS v5.10 старая версия. DGUS_V7618 и DGUS_TOOL_V8.0.1.1 более новые версии. В дисплеях DWIN Вы не можете просто взять картинку и положить на фоновую картинку. Вся идея в том, что когда Вы делаете скажем клик, то Вы просто подмениваете одну картинку другой. Другой метод, это создание .ICL файла в которой находятся Ваши икони (дальний, ближний свет, поворотники и тп.). С помощью Variable Icon и Incremental adjustment можно включать/выключать ту или иную иконку.

SerjPr
Offline
Зарегистрирован: 04.08.2020

Одной картинкой не получиться увидеть. Глюк есть в в вызываемом меню настроек. В модифицированном варианте были дополнительные варианты в меню настроек. В оригинальной версии их нету. После того как я залил оригинальную версию обратно. В меню настроек дополнительные варианты исчезли. Но если ткнуть на пустое место то открывается меню предыдущей версии. Получается там остался мусор и он не затирается  еще и выполняется. 

rob_grig
Offline
Зарегистрирован: 29.07.2020

SerjPr пишет:

Одной картинкой не получиться увидеть. Глюк есть в в вызываемом меню настроек. В модифицированном варианте были дополнительные варианты в меню настроек. В оригинальной версии их нету. После того как я залил оригинальную версию обратно. В меню настроек дополнительные варианты исчезли. Но если ткнуть на пустое место то открывается меню предыдущей версии. Получается там остался мусор и он не затирается  еще и выполняется. 

Когда Вы заливайте код то вся память автоматом обнуляется. Эту програму создали Вы? Еще раз проверте именно эту картинку с глюками в DGUS_TOOL. Может там остались не нужные функции.

SerjPr
Offline
Зарегистрирован: 04.08.2020

Нет программа заводская и есть еще модифицированная.

Сравнил содержимое двух папок. Помимо графических файлов там остаются еще три бинарных. Попробую добавить в программу такие же но пустые bin файлы. 

rob_grig
Offline
Зарегистрирован: 29.07.2020

SerjPr пишет:

Нет программа заводская и есть еще модифицированная.

Сравнил содержимое двух папок. Помимо графических файлов там остаются еще три бинарных. Попробую добавить в программу такие же но пустые bin файлы. 

Какие папки и файлы находятся в Вашей папке? Есть ли там такие?