Z031+HMI

Автор Nikolai, 13 апреля 2020, 11:32:55

« назад - далее »

Artem

Цитата: Tyumentsev от 22 июня 2020, 13:10:34
Вопрос возник из за 036 панели. Когда я в нее пишу одновременно несколько аварий, в массив. То контроллер зависает наглухо, только пересброс питания помогает. Поэтому я для 036 делаю как бы небольшой стек и из него поочереди с интервалом 500мс записываю все аварии и проблема ушла.
А вот про это поподробнее напишите, как работаете с массивом аварий, чем и куда пишете?

Tyumentsev

обновил ядро вроде бы все устаканилось, интерфейс держится, но потом перестало вообще подключаться с телефона. Потом выясню причину отпишусь, но сейчас вопрос -  что значит ошибка 2(6)    2(5)  вверху экрана, при попытке с телефона отправить данные?

Tyumentsev

#47

А вот про это поподробнее напишите, как работаете с массивом аварий, чем и куда пишете?
[/quote]



Создаю массив в ПЗУ и пишу туда аварии по мере поступления, каждую в свою ячейку памяти. Когда аварии валятся одновременно все, то вот здесь происходит зависание панели намертво.
На 036 панели еще RTC часы идут только сами часы, а дата после отключения питания остается не изменой, на момент отключения питания.
Делаю недельный таймер во всех задачах, но если заказчик отключает питание, то после подачи питания через несколько дней там стоит день недели тот который был во время отключения.

Artem

Цитата: Tyumentsev от 24 июня 2020, 09:28:17
обновил ядро вроде бы все устаканилось, интерфейс держится, но потом перестало вообще подключаться с телефона. Потом выясню причину отпишусь, но сейчас вопрос -  что значит ошибка 2(6)    2(5)  вверху экрана, при попытке с телефона отправить данные?
Ошибка 2 - это неверный адрес запрашиваемой переменной. Такое бывает, если визуализация запрашивает переменные, которых в проекте нет. Проект у все все тот же, что выкладывали на форуме? Именно его зашиваете?

Artem

Цитата: Tyumentsev от 24 июня 2020, 09:34:12

Создаю массив в ПЗУ и пишу туда аварии по мере поступления, каждую в свою ячейку памяти. Когда аварии валятся одновременно все, то вот здесь происходит зависание панели намертво.
На 036 панели еще RTC часы идут только сами часы, а дата после отключения питания остается не изменой, на момент отключения питания.
Делаю недельный таймер во всех задачах, но если заказчик отключает питание, то после подачи питания через несколько дней там стоит день недели тот который был во время отключения.

Проект можете скинуть в личку? Хочу посмотреть  и попробовать повторить проблему у себя..

Tyumentsev

По поводу панельки 031:
Да проект тот же, я там добавил немного еще для теста. Пока не могу прочитать по модбасу данные на другой контроллер. Тот, другой контроллер, работает как мастер. Вот он данные передает идеально, а прочитать пока не получается. Там были переменные типа coil, не пошло, изменил на int сегодня попробую или завтра. С телефона нажимаю пуск на панельки зажигается значок, нажимаю стоп значок не гаснет. Не знаю, что реально записывается в переменную. А наоборот тоже не работает, на панельки нажимаю пуск, в телефоне пиктограмма не меняется, пока не выяснил почему.

По 036 проект прикладываю. Там и запись в журнал и недельный таймер.
В личку не знаю как добавить файл, там только письмо написать можно. Поэтому выкладываю сюда.

Tyumentsev

#51
 В проекте панелька. Происходит вот что:
Если я пытаюсь менять настройки с телефона, температуры или скорости вентилятора, то выходит ошибка 2(6). Хотя все переменные существующие.
При подачи сигнала пуск с телефона, на панельке появляется индикатор пуска, если я после этого на панельке нажимаю стоп, то на телефоне пиктограмма меняется с пуска на стоп. Во всех остальных случаях ничего не происходит. Например если я с телефона нажимаю пуск, на панельке видно команда прошла, затем нажимаю в телефоне стоп, на панельке команда не снимается. И на оборот - на панельке нажимаю пуск, на телефоне ничего не отображается, команда не проходит.
Прочитать данные так и не могу на контроллер. Записать с контроллера в панельку могу, а вот чтение никак. Пробовал разными вариантами, никак не могу получить данные. Даже адреса разнес подальше друг от друга (автонумерация нумерует адреса подряд, не учитывая размер переменной, думал в этом дело, оказалось нет не в этом.)

Nikolai

Цитата: Tyumentsev от 24 июня 2020, 21:58:20
В проекте панелька. Происходит вот что:
Если я пытаюсь менять настройки с телефона, температуры или скорости вентилятора, то выходит ошибка 2(6). Хотя все переменные существующие.
При подачи сигнала пуск с телефона, на панельке появляется индикатор пуска, если я после этого на панельке нажимаю стоп, то на телефоне пиктограмма меняется с пуска на стоп. Во всех остальных случаях ничего не происходит. Например если я с телефона нажимаю пуск, на панельке видно команда прошла, затем нажимаю в телефоне стоп, на панельке команда не снимается. И на оборот - на панельке нажимаю пуск, на телефоне ничего не отображается, команда не проходит.
Прочитать данные так и не могу на контроллер. Записать с контроллера в панельку могу, а вот чтение никак. Пробовал разными вариантами, никак не могу получить данные. Даже адреса разнес подальше друг от друга (автонумерация нумерует адреса подряд, не учитывая размер переменной, думал в этом дело, оказалось нет не в этом.)
Переменная modbus в которую Вы пытаетесь записать "Вент_уст" имеет свойство "Чтение". При попытки записи у Вас будет ошибка. Температура настраивается нормально.

Artem

Цитата: Tyumentsev от 24 июня 2020, 21:58:20
.... Даже адреса разнес подальше друг от друга (автонумерация нумерует адреса подряд, не учитывая размер переменной, думал в этом дело, оказалось нет не в этом.)

Не правда, автонумерация учитывает размер переменной. Для 4-х байтовых выделяется два регистра

Artem

#54
Цитата: Tyumentsev от 24 июня 2020, 21:58:20
В проекте панелька. Происходит вот что:
Если я пытаюсь менять настройки с телефона, температуры или скорости вентилятора, то выходит ошибка 2(6). Хотя все переменные существующие.
При подачи сигнала пуск с телефона, на панельке появляется индикатор пуска, если я после этого на панельке нажимаю стоп, то на телефоне пиктограмма меняется с пуска на стоп. Во всех остальных случаях ничего не происходит. Например если я с телефона нажимаю пуск, на панельке видно команда прошла, затем нажимаю в телефоне стоп, на панельке команда не снимается. И на оборот - на панельке нажимаю пуск, на телефоне ничего не отображается, команда не проходит.
Прочитать данные так и не могу на контроллер. Записать с контроллера в панельку могу, а вот чтение никак. Пробовал разными вариантами, никак не могу получить данные. Даже адреса разнес подальше друг от друга (автонумерация нумерует адреса подряд, не учитывая размер переменной, думал в этом дело, оказалось нет не в этом.)
По поводу работы кнопки включения пока не совсем понял, у вас достаточно сложная схема управления этой переменной. Запись в нее производится по многим условиям в нескольких блоках. Может где-то в логике ошибка?
Для проверки можно запустить программу в 31 панели в отладке и посмотреть, соответствует ли значение переменной тому, что отображается в визуализации


Tyumentsev

#55
Хорошо, спасибо. Сегодня-завтра проверю. Хотя я в режиме отладки и пробовал тестить все это. Может че не так делал, проверю еще раз.

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

Вопрос с чтением данных по модбасу сейчас очень интересует. Без чтения данных с пульта, сами понимаете ни куда не могу двигаться дальше.

Artem

Цитата: Tyumentsev от 24 июня 2020, 21:58:20
Прочитать данные так и не могу на контроллер. Записать с контроллера в панельку могу, а вот чтение никак. Пробовал разными вариантами, никак не могу получить данные. Даже адреса разнес подальше друг от друга (автонумерация нумерует адреса подряд, не учитывая размер переменной, думал в этом дело, оказалось нет не в этом.)
Как я понял не можете прочитать регистры контроллером, который подключен к панели через порт 485? Каким контроллером читаете? Какие регистры? Если есть проект, выкладывайте, посмотрим в чем дело. Если запись проходит, то уж чтение должно по идее работать нормально

Tyumentsev

#57
Да меня это и смущает. Запись идет четко без сбоев, почему не читает, не пойму. У меня контроллер Pixel 2511 как стенд собран уже давно. На нем обкатываю. Если он у вас есть попробуйте.
Или если есть возможность можете сделать пример для 036_4 он у меня тоже есть, и 245 есть (я его пока берегу). С моим приложением для панельки.

Artem

Цитата: Tyumentsev от 25 июня 2020, 11:16:09
Да меня это и смущает. Запись идет четко без сбоев, почему не читает, не пойму. У меня контроллер Pixel 2511 как стенд собран уже давно. На нем обкатываю. Если он у вас есть попробуйте.
Или если есть возможность можете сделать пример для 036_4 он у меня тоже есть, и 245 есть (я его пока берегу). С моим приложением для панельки.
Пиксела в наличии нет. Проверить не смогу. А сможете собрать лог порта между пикселом и панелью? Подключить паралельно к порту компьютера и запустить сниффер. Можно было бы увидеть все запросы и понять в чем проблема.

Tyumentsev

#59
   Уехал в командировку, поэтому задержка. Взял все с собой. В общем разобрался.
   Получается надо в панельке все переменные делать ЧТЕНИЕ\ЗАПИСЬ. А я делал так, те данные которые я передаю от пикселя их я сделал чтение\запись, те которые я читаю делал просто ЧТЕНИЕ. Теперь все нормально и читает и пишет четко, без сбоев.
    Панелька обновила ядро и теперь, чтобы загрузить программу нужно делать выгрузку в файл, а затем загружать из файла.
   Можете вернуть как было сразу прошивать без выгрузки? Так удобно было. Еще плюс никаких шнуров не надо вооще класс.