Управление через UART

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Управление через UART

#21

Сообщение RW9UU » 14.03.2018{, 10:09}

rw6cm писал(а):
14.03.2018{, 09:15}
Что это вообще такое, стенд для поверок реле времени?
точно в точечку :crazy:
первые две платы образуют 2 шины , фактически этими шинами задаются временные режимы, в которых будет работать это реле времени. Всего режимов шесть. от нескольких секунд, до более чем 300 секунд..
третья плата формирователь сигнала начала измерения;
четвертая плата включает -выключает +12в или 24 В. Просто питание такое может питаться так и сяк, проверять надо и так и так, начало измерения начинается с подачи переменной "начало_измерения", при этом срабатывает либо +12 либо +24В;
пятая плата это формирователь номера измеряемой длительности , необходимо для седьмой платы;
шестая плата сам измеритель длительности на основе скоростного счетчика;
седьмая плата это формирователь строки которая поступает в UART. Причем в зависимости выбранного номера длительности выдается своя строка. Это необходимо для терминальной программы.
И последняя плата. Формирует короткое замыкание выходных контактов реле после измерения. Необходимо для разрядки внутренней RC -цепи
терминальная программа тоже написана, но на форум я выкладывать не буду, по запросу пожалуйста .Если надо. Написана в HIASM. Я тоже там учусь . всё собрано в железе и работает, за редким исключением. Просьба помочь "допилить" :wizard:

Отправлено спустя 3 минуты :
я повторюсь. всё работает за исключением см мессагу #14

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#22

Сообщение Sancho » 14.03.2018{, 10:49}

RW9UU, А так должно! У вас ведь переменная "Начало измерения" не только начало, она в 1 пока идёт процесс.
Немного переделал плату 6, и добавил переменную от входа окончание, что-бы вход опрашивался только один раз в цикле.
Отображение будет работать до начала нового отсчёта. Расчёт по милисекундам, потом / 1000.0

Отправлено спустя 29 минут :
Блочок "Calc_time_mc" имеет встроенный тригер - при подаче 1 выход сначала обнуляется, потом время в мс от начала 1.
При 0 счёт останавливается.
Вложения
На форум V7.flp
Обновил, был не тот....
(1.08 МБ) 72 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Не получается закинуть строку

#23

Сообщение RW9UU » 14.03.2018{, 11:29}

Sancho, в скоростном счетчике был задействован порт D2 . Этот порт физически должен был соединен с DA3 ( см. плату 1) На плате 1 формирователь измеряемого импульса. Таким образом мне непонятно как будет сформировано окончание измерения. Или это все есть в новом блоке???? :crazy:

Отправлено спустя 31 секунду:
понял сейчас попробую

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#24

Сообщение Sancho » 14.03.2018{, 11:33}

RW9UU, Сори не тот проект выложил, сейчас обновлю!

Отправлено спустя 11 минут 34 секунды:
Лишнее потом из своего проекта сами уберёте, Вам виднее...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Не получается закинуть строку

#25

Сообщение RW9UU » 14.03.2018{, 12:02}

Прикольный блочок :crazy: но проблема указанная в мессаге #14 решена частично. А именно я произвел первое измерение. потом выбираю следующий режим. число все равно остается в переменной, но новое ( от этого блока переменная стирается и заново начинает считать). В принципе это устраивает!!!! Большое спасибоSancho, :nyam:

Отправлено спустя 20 минут 11 секунд:
К сожалению блок пересчитывает несколько секунд. Это заметно на длинных интервалах. т.е. проходит команда на окончание измерения напряжение питания снимается, а циферки еще кое какое время еще бегут :nono: , что-то не так :devil:

Отправлено спустя 30 минут 10 секунд:
поставил перед блоком RS триггер. все нормально стало. Видать если команду кидать в переменную UART происходит задержка. Еще раз спасибоSancho,

Отправлено спустя 4 минуты 19 секунд:
Нормально только на коротких интервалах. Ничего не пойму......., пойду еще покопаюсь

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается закинуть строку

#26

Сообщение rw6cm » 14.03.2018{, 13:13}

RW9UU,
плата № 6.flp
(234.5 КБ) 66 скачиваний
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#27

Сообщение Sancho » 14.03.2018{, 15:00}

И слегка прибрался, но не всё...
rw6cm, Володя, мне кажется в данном проекте это излишне.
Вложения
форум V7_1_sancho.flp
Подписываю иначе,
что-бы опять не попутать :)
(1.23 МБ) 67 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается закинуть строку

#28

Сообщение rw6cm » 14.03.2018{, 15:29}

Sancho писал(а):
14.03.2018{, 15:00}
Володя, мне кажется в данном проекте это излишне.
У него во время замера данные с точность до десятых постоянно передаются в терминал.
uart жрет проц по полной. при таком раскладе точность даже в секунды не уложится.
Win10-64, FLProg (portable)

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Не получается закинуть строку

#29

Сообщение RW9UU » 14.03.2018{, 16:06}

СпасибоSancho, rw6cm, завтра ваши два варианта попробую. Обязательно отпишусь. Sancho, вообще мой проект переделал :yahoo: Кстати весьма поучительно.. в первой плате написали "возможно лишнее" - я пока оставлю это для контроля длительности . выход на частотомер..Пока оставлю.

Отправлено спустя 2 минуты 31 секунду:
rw6cm писал(а):
14.03.2018{, 15:29}
uart жрет проц по полной. при таком раскладе точность даже в секунды не уложится
завтра посмотрю загрузку проца

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#30

Сообщение Sancho » 14.03.2018{, 16:37}

rw6cm писал(а):
14.03.2018{, 15:29}
У него во время замера данные с точность до десятых постоянно передаются в терминал.
uart жрет проц по полной. при таком раскладе точность даже в секунды не уложится.
Возражу - он отправляет данные один раз в цикле, поэтому полюбасу в следующем цикле отработает измерение времени, и останов счётчика с выводом тоже. Учитывая скорость uart, как минимум в одну десятую уложится.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается закинуть строку

#31

Сообщение rw6cm » 14.03.2018{, 19:08}

Sancho писал(а):
14.03.2018{, 16:37}
Возражу - он отправляет данные один раз в цикле, поэтому полюбасу в следующем цикле отработает измерение времени, и останов счётчика с выводом тоже. Учитывая скорость uart, как минимум в одну десятую уложится.
Соглашусь здесь действительно разницы не будет, (после ночной голова не варит))).
здесь ТС нужно учесть, что сам внутренний таймер точностью не блещет. У меня из 4 разных ардуин только одна отстает за 10мин на 4сек.
остальные больше, а это на каждую секунду погрешность ~7мс. и это еще зависит от окружающей температуры.
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#32

Сообщение Sancho » 14.03.2018{, 19:22}

Володя - это уже вопросы к кварцу, и к обвязке его.
При нормальном кварце в большОм корпусе, как на некоторых про-мини, у меня получалось делать частотомер на PCF8583 до 3,6 мГц с точностью +-50Гц на максимуме, при 1 мГц - 10Гц. По I2C....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Не получается закинуть строку

#33

Сообщение RW9UU » 15.03.2018{, 06:21}

Приветствую! Попробовал 2 варианта. Что сказать. Sancho, не работает следующие. Формирование строки которая отдаётся в UART- не работает (плата №7). Если честно идет формирование вроде правильно, но в терминальной программе " выборки" нет. Возможно это из-за переменной Est_izmerenie.
rw6cm, Вставил плату в свой проект. Работает. Разбрался с пересчетом о котором писал выше. Ничего он не пересчитывать. Просто медленно считает. За 1 минуту измерения отставание примерно 5 сек, но результат выдается точный.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#34

Сообщение Sancho » 15.03.2018{, 08:44}

RW9UU писал(а):
15.03.2018{, 06:21}
Что сказать. Sancho, не работает следующие. Формирование строки которая отдаётся в UART- не работает (плата №7). Если честно идет формирование вроде правильно, но в терминальной программе " выборки" нет. Возможно это из-за переменной Est_izmerenie.
Теперь у Вас посылки идут 10 раз в секунду при измерении однозначно, т.к. "ненужный код" не обрабатывается.
Включите отправлять каждые...
Посмотрите через терминал.
Est_izmerenie - такого сигнала нет, "возможно" анализируйте работу схемы.
Пробуйте, и приводите проект к компактному, не размазанному, упорядоченному виду.
Удачи!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Не получается закинуть строку

#35

Сообщение RW9UU » 15.03.2018{, 09:36}

Да я ошибся в имени переменной. Как я понял проблемы с платой №7 вызваны с отсутствием формирования переменной "номер длительности". Она формируется в плате №5, там стоит блок Freelog ( содержимое проверил, всё нормально). На входа которого поступают переменные D4-D12. Похоже они не формируется. А они формируются в плате №2, которая в свою очередь (плата) задействована по переменной Est signal, если TRUE. Который формируется в плате №1. Козява именно как мне кажется с этой переменной, может блок String Change не работает??? я просто с таким , блоком не работал еще.... :bb2:

Отправлено спустя 32 минуты 1 секунду:
За был написать то в чем дело. Все измерения болтаются только в строке Q=...mS. переключения нет на другие режимы

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#36

Сообщение Sancho » 15.03.2018{, 11:31}

RW9UU писал(а):
15.03.2018{, 10:08}
Как я понял проблемы с платой №7 вызваны с отсутствием формирования переменной "номер длительности". Она формируется в плате №5, там стоит блок Freelog ( содержимое проверил, всё нормально). На входа которого поступают переменные D4-D12. Похоже они не формируется. А они формируются в плате №2, которая в свою очередь (плата) задействована по переменной Est signal, если TRUE. Который формируется в плате №1. Козява именно как мне кажется с этой переменной, может блок String Change не работает??? я просто с таким , блоком не работал еще....
Блок детектор изменения строки выдаёт 1, если строка в текущем цикле не равна строке из предыдущего цикла.
Соответственно, если значение переменной UART изменилось, получаем 1 и плата 2 начинает исполняться.
Все переменные, полученные при работе пл.2 остаются доступны и не меняются при Est signal=0, посему блок пл.5 имеет все данные для корректной работы.
Плате 7 вообще фиолетово, она должна выплёвывать значения в uart при меняющихся данных "измерение".
Удалите условие с платы 2.

Отправлено спустя 2 минуты 10 секунд:
Или измените в условии на переменную ole1

Отправлено спустя 7 минут 28 секунд:
Ещё момент - я честно не понял, как у Вас формируется "номер длительности" из упрвл. софта в мк.
Задействовано 9 пинов и команд, а "номеров" всего шесть?
Не проще-ли отправлять номер из софта, а в мк уже декодировать на нужные выходы - по моему однозначно проще - команда буде содержать перефикс "номера" и сам номер, цифру.
Такие мысли...

Отправлено спустя 3 минуты 36 секунд:
Твою дивизию!!!
На плате 2 нет связей к uart от GetChar.., прое лись при переносе... Зелёные линии, одел вторые глаза - заметил...Сори...
Дорисуйте, будет ок.
Вложения
форум V7_2_sancho.flp
Сори, здесь связи есть.
(1.24 МБ) 72 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается закинуть строку

#37

Сообщение rw6cm » 15.03.2018{, 12:40}

RW9UU писал(а):
15.03.2018{, 10:08}
проблемы с платой №7 вызваны с отсутствием формирования переменной "номер длительности".
Мне не понятно почему триггер SR а не RS
Старт-стоп замудрен как то...
И зачем в порт гнать данные каждую мс, может достаточно секунды?
на_форум_73.flp
(1.31 МБ) 73 скачивания
Win10-64, FLProg (portable)

RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01.08.2017{, 17:21}
Репутация: 0
Откуда: Белово
Имя: Виталий

Не получается закинуть строку

#38

Сообщение RW9UU » 15.03.2018{, 12:52}

Ну я тоже хорош :taunt: Я же тоже окуляры одел и увидел :tommy: Сейчас проверил ваши 2блока примерно считают одинаково. Так что особой разницы нет. Все хорошо. TRUE убрал со второй платы. Формирование сигнала с софта, пока оставлю в "уме", но идея хорошая. Большое спасибо

Отправлено спустя 35 секунд:
rw6cm, у меня рабочий день закончился прийду домой посмотрю файл

Отправлено спустя 1 час 51 минуту 16 секунд:
посмотрел вариант от rw6cm, да весьма поучительно. Завтра попробую его зашить в контроллер. Правда время будет мало, по работе завтра уезжаю. По поводу платы №2 в вашем варианте. Физически я просто разбил на две платы, потому, что каждая группа реле работает на свою шину. Хотя моё решение плохое наверное для скомпилированного проекта. Завтра отпишусь.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Не получается закинуть строку

#39

Сообщение Sancho » 15.03.2018{, 15:22}

rw6cm писал(а):
15.03.2018{, 12:40}
Мне не понятно почему триггер SR а не RS
Володя, а если на выходе блок реле с оптронами с общим анодом?
Мне вообще не понятно, что и как там коммутируется, ну да ладно.
Но формат управления я бы переделал. Даже без С++. например так...
Вложения
форум V8_sancho.flp
(560.16 КБ) 65 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Не получается закинуть строку

#40

Сообщение rw6cm » 15.03.2018{, 16:53}

Sancho писал(а):
15.03.2018{, 15:22}
Володя, а если на выходе блок реле с оптронами с общим анодом?
да вот если бы знать )))
но я бы строил логику на приоритете сброса (т.е RS) привязал бы еще например к da4.
хотя во многие моменты тоже въехать не могу ))
Win10-64, FLProg (portable)

Ответить

Вернуться в «UART»