1

Тема: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Доброго времени суток, вопрос в следующем, недавно разобрался с показаниями цифровых терма датчиков и отображением их на дисплее, сейчас же возникла необходимость в передаче данных с 6 аналоговых датчиков давления и соответственно вывод показаний на дисплей, в данном случае интересно построение самой диаграммы, данные аналогового датчика таковы (сигнальное напряжение от 0...4,5 вольт), пока не получается корректно составить диаграмму, не совсем понятно к какому регистру обращаться с полученными данными и отправкой в LCD, ниже диаграмма... спасибо...

Вложений в сообщении

Иконка вложения датчики давления.cfd 12.14 кб, скачивался 59 раз, последний раз 2019-04-10 

2

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Тут ситуация такая же, как и с именами переменных - нужно использовать коммутатор. Пример во вложении.

Вложений в сообщении

Иконка вложения датчики давления_1.cfd 12.41 кб, скачивался 55 раз, последний раз 2019-04-10 

3

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Доброго времени суток, в диаграмме на мапах отредактировал отображение на выходе до 15 бар, отображения на дисплее нет, в диаграмме идёт опрос но нет отображения на LCD, возможно ли несоответствие прошивки дисплея с диаграммой, и как это исправить?

Вложений в сообщении

Иконка вложения датчики давления_1.cfd 12.32 кб, скачивался 64 раз, последний раз 2019-04-15 

4

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Какая прошивка дисплея используется?
Может было бы лучше использовать подход как в теме https://forum.canny.ru/viewtopic.php?pid=7725#p7725?
Если значащих цифр в значении давления всего 2 (до 15 бар) и отрицательных давлений не бывает, то можно выводить всего по 2 символа на 1 значение, что позволит упаковать в 1 сообщение значения всех датчиков давления.
По диаграмме. Есть ли смысл использовать по 2 блока MAP на 1 датчик давления? Может проще обойтись одним блоком "Отображение" и преобразовывать данные АЦП сразу в давление в Бар?

5 (15-04-2019 13:50:43 отредактировано Sapphire)

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

прошивка без включателя, ниже прикрепил, а на счёт датчиков в одну строку поочерёдно не подходит для моей задачи, мне нужно отображение 6 датчиков в 6 независимых друг от друга строках

Вложений в сообщении

Иконка вложения test.HMI 224.32 кб, скачивался 52 раз, последний раз 2019-04-15 

6

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Sapphire пишет:

...а на счёт датчиков в одну строку поочерёдно не подходит для моей задачи, сне нужно отображение 6 датчиков в 6 независимых друг от друга строках...

Речь шла совершенно не об этом. Ознакомьтесь с решением по ссылке из моего предыдущего сообщения.
На стороне дисплея происходит обработка значений. Над полученными переменными выполняются математические операции. Передаваемое значение давления по своей структуре отличается от того, как передавалась температура, соответственно алгоритм обработки и отображения данных на дисплее требуется адаптировать для новых данных.

7

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

 Есть ли смысл использовать по 2 блока MAP на 1 датчик давления? Может проще обойтись одним блоком "Отображение" и преобразовывать данные АЦП сразу в давление в Бар?

если использовать 1 блок MAP и учитывать то что датчик давления отправляет данные в виде напряжения от 500 mV до 4500 mV (4,5 V) то я не могу рассчитать без второго блока корректное отображение на выходе, если вас не затруднит пример приведите пожалуйста, спасибо

8

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Во вложении пример использования блоков "Отображение (MAP)". Результат работы блоков №№1 и 2 ничем не отличаются от результата работы блока №3.
Но обратите внимание, что при такой обработке данных сильно страдает точность: там где получается почти 3 бар (26 децибар = 2,6 бар), отображаться будет только 2 бар. Возможно следует поднять разрядность значения, т.е. оперировать децибарами (бар/10) или миллибарами (бар/1000).

Вложений в сообщении

Иконка вложения map.cfd 1.19 кб, скачивался 61 раз, последний раз 2019-04-15 

Иконка вложения map.png 32.05 кб, скачивался 4 раз, последний раз 2019-04-15 

9 (15-04-2019 15:03:59 отредактировано Sapphire)

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Возможно ли адаптирование прошивки самого LCD под диаграмму что я прикрепил в 1 посте, чтоб выводилось на дисплей в точности как с мапа?

вот убрал 2й блок

Вложений в сообщении

Иконка вложения датчики давления_1.cfd 10.55 кб, скачивался 70 раз, последний раз 2019-04-15 

10

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Sapphire пишет:

Возможно ли адаптирование прошивки самого LCD под диаграмму что я прикрепил в 1 посте, чтоб выводилось на дисплей в точности как с мапа?

Возможно. Нужно учесть, что при предлагаемом подходе обновление значений давления каждого из датчиков будет происходить 1 раз в 3 секунды. Используя подход, который я предлагал ранее (как в https://forum.canny.ru/viewtopic.php?pid=7725#p7725) можно увеличить частоту обновления до 2 раз в секунду. В зависимости от подхода, нужно формировать сообщение для дисплея и далее его обрабатывать и выводить в том или ином виде (зависит от принятого подхода).

11 (15-04-2019 15:54:47 отредактировано Sapphire)

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

без редактирования вот что показывает LCD(при подаче на канал 3,15 вольт), при этом опрос идёт 2 раза в секунду

Вложений в сообщении

Иконка вложения IMG_1262.JPG 1.57 мб, скачивался 5 раз, последний раз 2019-04-15 

Иконка вложения test.HMI 224.32 кб, скачивался 66 раз, последний раз 2019-04-15 

Иконка вложения датчики давления_1.cfd 10.55 кб, скачивался 70 раз, последний раз 2019-04-15 

12

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

какая строчка отвечает за формирование символов для LCD?

va6.val=va0.val
va7.val=va6.val/1000
va10.val=va7.val*10/18
cov va7.val,va8.txt,0
va7.val=va7.val*1000
va6.val=va6.val-va7.val
va7.val=va6.val/100

13

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Не удивительно. Математическая обработка данных дисплеем совершенно не подходит для отображения данных давления.
Код обработки значения давления, на примере датчика №0, должен выглядеть так:

va6.val=va0.val/100
cov va6.val,t0.txt,0
va6.val=va6.val*100/15
j0.val=va6.val

И это все. Больше ничего не нужно. Потребуется всего 6 дополнительных переменных: va6...va11.

14

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

И это все. Больше ничего не нужно

спасибо сейчас попробую

15

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

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

Вложений в сообщении

Иконка вложения IMG_1263.JPG 941.84 кб, скачивался 6 раз, последний раз 2019-04-16 

16

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

В пояснении к этому коду я указал, что это для датчика №0, который на Вашей диаграмме, почему-то, не подключен (именованная сеть с его данными не подключена на коммутатор). Я полагал, что дальнейшие действия очевидны - этот код нужно применить и для остальных датчиков: скопировать нужное количество раз и заменить переменные на соответствующие тому или иному датчику.
Попробуйте так:

va6.val=va0.val/100
cov va6.val,t0.txt,0
va6.val=va6.val*100/15
j0.val=va6.val
va7.val=va1.val/100
cov va7.val,t2.txt,0
va7.val=va7.val*100/15
j1.val=va7.val
va8.val=va2.val/100
cov va8.val,t4.txt,0
va8.val=va8.val*100/15
j2.val=va8.val
va9.val=va3.val/100
cov va9.val,t6.txt,0
va9.val=va9.val*100/15
j3.val=va9.val
va10.val=va4.val/100
cov va10.val,t8.txt,0
va10.val=va10.val*100/15
j4.val=va10.val
va11.val=va5.val/100
cov va11.val,t10.txt,0
va11.val=va11.val*100/15
j5.val=va11.val

Все переменные должны быть числовыми (Number), а не строковыми (String).

17 (16-04-2019 11:56:49 отредактировано Sapphire)

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Я полагал, что дальнейшие действия очевидны - этот код нужно применить и для остальных датчиков

Да я именно так и сделал, если 0 датчик это va6 то остальные логично по возрастанию, то что на дисплее датчик по счёту 3 то есть va8, однако при подаче напряжения на канал не происходит ни каких изменений, потому я и спросил про продолжение кода, так как подумал что тут такая же ситуация с порядком прописи типа

if(va7.val>0)
{
  t0.txt="-"
  j0.val=10-va10.val
}else
{
  t0.txt=""
  j0.val=10+va10.val
}  и т.д.

я понял, всё спасибо вам за ответы

18

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

В общем я залил код, при подаче напряжения на канал 4,5 V на LCD отображается 13 бар, как сделать 15 как в диаграмме? Как рассчитывать показания диаграммы и LCD в смысле вывод корректной инфы на дисплей

19

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Вот как выглядит в отладке работа алгоритма обработки данных от контроллера и отображение на дисплее (см. вложение). В нижнем левом углу окна эмуляция полученных данных. Проверьте типы переменных.
Т.е. Обработка и отображение корректные при получении корректных посылок.

Вложений в сообщении

Иконка вложения qqq.HMI 209.61 кб, скачивался 54 раз, последний раз 2019-04-16 

Иконка вложения test.png 24.48 кб, скачивался 5 раз, последний раз 2019-04-16 

20

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Sapphire пишет:

В общем я залил код, при подаче напряжения на канал 4,5 V на LCD отображается 13 бар, как сделать 15 как в диаграмме? Как рассчитывать показания диаграммы и LCD в смысле вывод корректной инфы на дисплей

На дисплее отображается то, что передал контроллер. Я уже говорил неизбежных погрешностях при работе с целыми Бар. Видимо, накладывается друг на друга точность измерения и ошибка (округление) преобразования. Кроме того, в соответствии с диаграммой, при 15 бар на дисплей будет выводиться 0.

21

Re: 6 аналоговых датчиков давления в цифровом отображении на дисплее

Не заметил сразу... В диаграмме не правильно делается преобразование значений АЦП.
12-битный АЦП позволяет измерять  напряжения 0...5В. Максимальное значение АЦП равно 4095.
Т.е. сначала требуется перевести единицы АЦП в вольты, а потом перевести в давление.
Т.о. все же нужно использовать 2 блока "Отображение (MAP)" (для простоты).

Вложений в сообщении

Иконка вложения ADC.png 20.82 кб, скачивался 5 раз, последний раз 2019-04-16