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

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

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

Сообщение RW9UU »

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

Отправлено спустя 3 минуты :
я повторюсь. всё работает за исключением см мессагу #14
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

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

Отправлено спустя 29 минут :
Блочок "Calc_time_mc" имеет встроенный тригер - при подаче 1 выход сначала обнуляется, потом время в мс от начала 1.
При 0 счёт останавливается.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01 авг 2017, 17:21
Откуда: Белово
Имя: Виталий

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

Сообщение RW9UU »

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

Отправлено спустя 31 секунду:
понял сейчас попробую
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

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

Отправлено спустя 11 минут 34 секунды:
Лишнее потом из своего проекта сами уберёте, Вам виднее...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01 авг 2017, 17:21
Откуда: Белово
Имя: Виталий

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

Сообщение RW9UU »

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

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

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

Отправлено спустя 4 минуты 19 секунд:
Нормально только на коротких интервалах. Ничего не пойму......., пойду еще покопаюсь
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

[ref]RW9UU[/ref],
плата № 6.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

И слегка прибрался, но не всё...
[ref=#ff8000]rw6cm[/ref], Володя, мне кажется в данном проекте это излишне.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

Sancho писал(а): 14 мар 2018, 15:00Володя, мне кажется в данном проекте это излишне.
У него во время замера данные с точность до десятых постоянно передаются в терминал.
uart жрет проц по полной. при таком раскладе точность даже в секунды не уложится.
Win10-64, FLProg (portable)
RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01 авг 2017, 17:21
Откуда: Белово
Имя: Виталий

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

Сообщение RW9UU »

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

Отправлено спустя 2 минуты 31 секунду:
rw6cm писал(а): 14 мар 2018, 15:29uart жрет проц по полной. при таком раскладе точность даже в секунды не уложится
завтра посмотрю загрузку проца
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

rw6cm писал(а): 14 мар 2018, 15:29У него во время замера данные с точность до десятых постоянно передаются в терминал.
uart жрет проц по полной. при таком раскладе точность даже в секунды не уложится.
Возражу - он отправляет данные один раз в цикле, поэтому полюбасу в следующем цикле отработает измерение времени, и останов счётчика с выводом тоже. Учитывая скорость uart, как минимум в одну десятую уложится.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

Sancho писал(а): 14 мар 2018, 16:37 Возражу - он отправляет данные один раз в цикле, поэтому полюбасу в следующем цикле отработает измерение времени, и останов счётчика с выводом тоже. Учитывая скорость uart, как минимум в одну десятую уложится.
Соглашусь здесь действительно разницы не будет, (после ночной голова не варит))).
здесь ТС нужно учесть, что сам внутренний таймер точностью не блещет. У меня из 4 разных ардуин только одна отстает за 10мин на 4сек.
остальные больше, а это на каждую секунду погрешность ~7мс. и это еще зависит от окружающей температуры.
Win10-64, FLProg (portable)
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

Володя - это уже вопросы к кварцу, и к обвязке его.
При нормальном кварце в большОм корпусе, как на некоторых про-мини, у меня получалось делать частотомер на PCF8583 до 3,6 мГц с точностью +-50Гц на максимуме, при 1 мГц - 10Гц. По I2C....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01 авг 2017, 17:21
Откуда: Белово
Имя: Виталий

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

Сообщение RW9UU »

Приветствую! Попробовал 2 варианта. Что сказать. [ref=#ff8000]Sancho[/ref], не работает следующие. Формирование строки которая отдаётся в UART- не работает (плата №7). Если честно идет формирование вроде правильно, но в терминальной программе " выборки" нет. Возможно это из-за переменной Est_izmerenie.
[ref=#ff8000]rw6cm[/ref], Вставил плату в свой проект. Работает. Разбрался с пересчетом о котором писал выше. Ничего он не пересчитывать. Просто медленно считает. За 1 минуту измерения отставание примерно 5 сек, но результат выдается точный.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

RW9UU писал(а): 15 мар 2018, 06:21Что сказать. Sancho, не работает следующие. Формирование строки которая отдаётся в UART- не работает (плата №7). Если честно идет формирование вроде правильно, но в терминальной программе " выборки" нет. Возможно это из-за переменной Est_izmerenie.
Теперь у Вас посылки идут 10 раз в секунду при измерении однозначно, т.к. "ненужный код" не обрабатывается.
Включите отправлять каждые...
Посмотрите через терминал.
Est_izmerenie - такого сигнала нет, "возможно" анализируйте работу схемы.
Пробуйте, и приводите проект к компактному, не размазанному, упорядоченному виду.
Удачи!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01 авг 2017, 17:21
Откуда: Белово
Имя: Виталий

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

Сообщение RW9UU »

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

Отправлено спустя 32 минуты 1 секунду:
За был написать то в чем дело. Все измерения болтаются только в строке Q=...mS. переключения нет на другие режимы
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

RW9UU писал(а): 15 мар 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.., прое лись при переносе... Зелёные линии, одел вторые глаза - заметил...Сори...
Дорисуйте, будет ок.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

RW9UU писал(а): 15 мар 2018, 10:08проблемы с платой №7 вызваны с отсутствием формирования переменной "номер длительности".
Мне не понятно почему триггер SR а не RS
Старт-стоп замудрен как то...
И зачем в порт гнать данные каждую мс, может достаточно секунды?
на_форум_73.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
RW9UU
Рядовой
Сообщения: 50
Зарегистрирован: 01 авг 2017, 17:21
Откуда: Белово
Имя: Виталий

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

Сообщение RW9UU »

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

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

Отправлено спустя 1 час 51 минуту 16 секунд:
посмотрел вариант от [ref=#ff8000]rw6cm[/ref], да весьма поучительно. Завтра попробую его зашить в контроллер. Правда время будет мало, по работе завтра уезжаю. По поводу платы №2 в вашем варианте. Физически я просто разбил на две платы, потому, что каждая группа реле работает на свою шину. Хотя моё решение плохое наверное для скомпилированного проекта. Завтра отпишусь.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

rw6cm писал(а): 15 мар 2018, 12:40Мне не понятно почему триггер SR а не RS
Володя, а если на выходе блок реле с оптронами с общим анодом?
Мне вообще не понятно, что и как там коммутируется, ну да ладно.
Но формат управления я бы переделал. Даже без С++. например так...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость