Просмотр полной версии : Помощь в программе.
Нужна идея или способ реализовать индикацию движения тележки. 6 положений. например движение с 1 в 6 моргают поочередно лампочки 1-2-3-4-5-6, при проезде датчика 2 моргают 2-3-4-5-6 (не прерывая цикл. т.е домаргивают до 6 , потом начинают с 2). должно работать и в обратном направлении с 4 в 2 - моргают 4 потом 3 потом 2.
Сам пробовал Реализовывать тучей блоков-таймеров с задержками (кол-во блоков = колву возможных комбинаций) при переходе через датчик (включается другой блок таймер) сбивается очередность ну и громадная схема
Пробовал через универсальный счетчик CTN нагородил кучу костылей (например - действия с отрицательными числами в счетчике, добавление тактов при первом цикле, подсчет циклов итд) опять же громоздкая схема и первый цикл идет с ошибкой.
На ST не пробовал. не разобрался еще.
Хотелось бы идеи как реализовать проще и надежнее.
для примера скрин размер пробной схемы.
Нужна идея или способ реализовать индикацию движения тележки. 6 положений. например движение с 1 в 6 моргают поочередно лампочки 1-2-3-4-5-6, при проезде датчика 2 моргают 2-3-4-5-6 (не прерывая цикл. т.е домаргивают до 6 , потом начинают с 2). должно работать и в обратном направлении с 4 в 2 - моргают 4 потом 3 потом 2.
Сам пробовал Реализовывать тучей блоков-таймеров с задержками (кол-во блоков = колву возможных комбинаций) при переходе через датчик (включается другой блок таймер) сбивается очередность ну и громадная схема
Пробовал через универсальный счетчик CTN нагородил кучу костылей (например - действия с отрицательными числами в счетчике, добавление тактов при первом цикле, подсчет циклов итд) опять же громоздкая схема и первый цикл идет с ошибкой.
На ST не пробовал. не разобрался еще.
Хотелось бы идеи как реализовать проще и надежнее.
для примера скрин размер пробной схемы.
Что значит "6 положений"?
Что значит "с 4 в 2"?
Кто определяет конечное положение?
положения определяются датчиками НЗ контакт. вызов тележки на нужное положение кнопками. из 4 в 2 - это тележка находится в 4 положении, кнопкой отправляю ее во 2-е . моргают 4-3-2
положения определяются датчиками НЗ контакт. вызов тележки на нужное положение кнопками. из 4 в 2 - это тележка находится в 4 положении, кнопкой отправляю ее во 2-е . моргают 4-3-2
По нажатию кнопки фиксируйте начальное и конечное положение, направление движения.
Делайте генератор "бегущей волны" как на ёлке, на 6 выходов - направление бега и количество шагов определяется после нажатия кнопки.
Каждый выход светите по: (генератор & состояние датчика & выбран датчик по пути следования)
Сергей0308
04.06.2024, 18:27
Нужна идея или способ реализовать индикацию движения тележки. 6 положений. например движение с 1 в 6 моргают поочередно лампочки 1-2-3-4-5-6, при проезде датчика 2 моргают 2-3-4-5-6 (не прерывая цикл. т.е домаргивают до 6 , потом начинают с 2). должно работать и в обратном направлении с 4 в 2 - моргают 4 потом 3 потом 2.
Сам пробовал Реализовывать тучей блоков-таймеров с задержками (кол-во блоков = колву возможных комбинаций) при переходе через датчик (включается другой блок таймер) сбивается очередность ну и громадная схема
Пробовал через универсальный счетчик CTN нагородил кучу костылей (например - действия с отрицательными числами в счетчике, добавление тактов при первом цикле, подсчет циклов итд) опять же громоздкая схема и первый цикл идет с ошибкой.
На ST не пробовал. не разобрался еще.
Хотелось бы идеи как реализовать проще и надежнее.
для примера скрин размер пробной схемы.
А движение тележки у вас уже сделано? Вы пишите только про индикацию, может и движение тележки надо реализовать?
Пробуем так:
76241
Фиксация кнопок и датчиков:
function_block fix
var_input
i0 : bool;
i1 : bool;
i2 : bool;
i3 : bool;
i4 : bool;
i5 : bool;
end_var
var_output
Q : udint;
end_var
if i0 then Q := 0; end_if
if i1 then Q := 1; end_if
if i2 then Q := 2; end_if
if i3 then Q := 3; end_if
if i4 then Q := 4; end_if
if i5 then Q := 5; end_if
end_function_block
Движение тележки:
function_block telega
var_input
BTN : udint; // Позиция кнопки
CART : udint; // Позиция тележки
end_var
var_output
Q : udint; // Текузая позиция
end_var
var
t : SYS.TON; // Таймер смены позиции
end_var
t(I:=true, T:=T#100ms);
if t.Q then // Пришло время сменить позицию
t(I:=false);
if Q = BTN then // Текущая позиция в конце пути
Q := CART; // Переносим в позицию тележки
else // Инаяе ..
if Q < BTN then Q := Q + 1; end_if // Движемся вправо
if Q > BTN then Q := Q - 1; end_if // Движемся влево
end_if
end_if
end_function_block
Тоже самое без ФБ:
76243
Василий Кашуба
04.06.2024, 18:39
положения определяются датчиками НЗ контакт. вызов тележки на нужное положение кнопками. из 4 в 2 - это тележка находится в 4 положении, кнопкой отправляю ее во 2-е . моргают 4-3-2
Попробуйте по аналогии с моей программой Лифт 4 этажа. Добавьте ещё 2 этажа.
Сергей0308
04.06.2024, 21:24
Вот здесь ступеньками мигали и можно даже одновременно в разные стороны, но вам одновременно в разные стороны мигать не надо, а только по очереди, то в одну сторону, то в другую, короче, посмотрите, вероятно что-то может пригодится: https://owen.ru/forum/showthread.php?t=37017&page=4
Движение тележки у меня уже реализовано. Весьма похоже на вашу программу. У вас при нажатии разных кнопок (и во время движения тоже) все они регистрируются и лифт по прибытии будет ездить по всем этажам поочередно. так же при первом включении кн вызова сравнивает с 0 и всегда отправляет кабину вверх (это бывает недопустимо).
Тоже самое без ФБ:
76243
Превосходно! просто, понятно и работает как часы! Добавлю команду запуска генератора при движении и без аварии и гашение индикации при аварии или экстренной остановке. Большое спасибо!
SEL я пробовал и с add и sub. но до ton-ftrig-step не додумался. при простом добавлении числа через ADD прибавляло значения все время, а не шагами. Самое интересное что команду sel использовал для тучи костылей что бы CTN нормально работал, и вроде работало, но не нравилось.
Василий Кашуба
05.06.2024, 13:45
Движение тележки у меня уже реализовано. Весьма похоже на вашу программу. У вас при нажатии разных кнопок (и во время движения тоже) все они регистрируются и лифт по прибытии будет ездить по всем этажам поочередно. так же при первом включении кн вызова сравнивает с 0 и всегда отправляет кабину вверх (это бывает недопустимо).
Не может программа при первом включении кнопки вызова сравнивать с 0, так как тележка стоит на одном из концевиков, а он своё значение, не равное нулю, подаёт в систему сравнения.
Логично, но при аварийной остановке, при первом монтаже тележки, либо отключении питания , думаю, это возможно.
Сергей0308
06.06.2024, 21:00
Нужна идея или способ реализовать индикацию движения тележки. 6 положений. например движение с 1 в 6 моргают поочередно лампочки 1-2-3-4-5-6, при проезде датчика 2 моргают 2-3-4-5-6 (не прерывая цикл. т.е домаргивают до 6 , потом начинают с 2). должно работать и в обратном направлении с 4 в 2 - моргают 4 потом 3 потом 2.
Сам пробовал Реализовывать тучей блоков-таймеров с задержками (кол-во блоков = колву возможных комбинаций) при переходе через датчик (включается другой блок таймер) сбивается очередность ну и громадная схема
Пробовал через универсальный счетчик CTN нагородил кучу костылей (например - действия с отрицательными числами в счетчике, добавление тактов при первом цикле, подсчет циклов итд) опять же громоздкая схема и первый цикл идет с ошибкой.
На ST не пробовал. не разобрался еще.
Хотелось бы идеи как реализовать проще и надежнее.
для примера скрин размер пробной схемы.
Ещё здесь посмотрите, делали вывод аварий по очереди на экран: https://owen.ru/forum/showthread.php?t=31076&page=2&highlight=%EA%F2%EE+%EF%E5%F0%E2%FB%E9+%E2%F1%F2%E 0%EB%2C+%F2%EE%E3%EE+%F2%E0%EF%EA%E8
в смысле, может пригодится для формирования состава(списка) мигающих лампочек.
Я так понимаю, у вас всё это в одной программе должно совмещаться, в смысле и телега ездить и лампочки моргать в разные стороны, в зависимости куда тележка едет? В смысле, пока всё вместе не срастается?
И наверно надо вызов ремонтника приделать, в смысле, сформировать сигнал аварии, если тележка куда не доехала, в смысле, мало ли что, например сработала защита электропривода или концевик какой не сработал, в смысле проскочил, тележка должна остановиться по следующему концевику или по максимальному времени движения без срабатывания промежуточных концевиков, короче, мне кажется система мониторинга неисправностей не помешает и конечно всё должно быть продумано для нештатных ситуаций, таких как останов в промежуточных положениях, например иметь энергонезависимую память и контроль концевиков, например проехал его и он не сработал и т. д. и т. п.
76348
76349
Ещё здесь посмотрите, делали вывод аварий по очереди на экран: https://owen.ru/forum/showthread.php?t=31076&page=2&highlight=%EA%F2%EE+%EF%E5%F0%E2%FB%E9+%E2%F1%F2%E 0%EB%2C+%F2%EE%E3%EE+%F2%E0%EF%EA%E8
в смысле, может пригодится для формирования состава(списка) мигающих лампочек.
Я так понимаю, у вас всё это в одной программе должно совмещаться, в смысле и телега ездить и лампочки моргать в разные стороны, в зависимости куда тележка едет? В смысле, пока всё вместе не срастается?
И наверно надо вызов ремонтника приделать, в смысле, сформировать сигнал аварии, если тележка куда не доехала, в смысле, мало ли что, например сработала защита электропривода или концевик какой не сработал, в смысле проскочил, тележка должна остановиться по следующему концевику или по максимальному времени движения без срабатывания промежуточных концевиков, короче, мне кажется система мониторинга неисправностей не помешает и конечно всё должно быть продумано для нештатных ситуаций, таких как останов в промежуточных положениях, например иметь энергонезависимую память и отказ концевиков, например проехал его и он не сработал и т. д. и т. п.
76348
76349
Все получилось благодаря EFrol. Да, все в одной программе. На форум написал только о не решенном куске программы. В конечном итоге есть и большая и разная цепь безопасности с несколькими видами сигнализаций аварии, переезды, аварийные остановки и блокировка при непоследовательном нажатии датчиков, условная память о нахождении тележки, проверка при первом запуске и запреты движения при неопределенных положениях итд. Да И кусок программы EFrol существенно вырос под мои задачи.
скрин для масштаба
Сергей0308
10.06.2024, 09:00
Все получилось благодаря EFrol. Да, все в одной программе. На форум написал только о не решенном куске программы. В конечном итоге есть и большая и разная цепь безопасности с несколькими видами сигнализаций аварии, переезды, аварийные остановки и блокировка при непоследовательном нажатии датчиков, условная память о нахождении тележки, проверка при первом запуске и запреты движения при неопределенных положениях итд. Да И кусок программы EFrol существенно вырос под мои задачи.
скрин для масштаба
Очень рад за вас, в смысле, что всё получилось как хотели!
Но, мне кажется, нет предела совершенства!
АРТ.Кар 64
10.06.2024, 15:12
Но, мне кажется, нет предела совершенства!
Это не кажется,а истинная правда.
Если дело дошло до благодарностей-то огромная благодарность Василию. За Проект лифта на 4 этажа.
А именно.....Рестарт продуман просто гениально.
Слова Сергея тут можно тоже применить...Ибо при срабатывании ПС лифт должен опуститься на 1-й этаж.
Не зависимо от того ,что он либо поднимается с 1-го на 4-й этаж,либо опускается с 4-го на 2-ой.этаж.
Сергей0308
08.07.2024, 20:42
Нужна идея или способ реализовать индикацию движения тележки. 6 положений. например движение с 1 в 6 моргают поочередно лампочки 1-2-3-4-5-6, при проезде датчика 2 моргают 2-3-4-5-6 (не прерывая цикл. т.е домаргивают до 6 , потом начинают с 2). должно работать и в обратном направлении с 4 в 2 - моргают 4 потом 3 потом 2.
Сам пробовал Реализовывать тучей блоков-таймеров с задержками (кол-во блоков = колву возможных комбинаций) при переходе через датчик (включается другой блок таймер) сбивается очередность ну и громадная схема
Пробовал через универсальный счетчик CTN нагородил кучу костылей (например - действия с отрицательными числами в счетчике, добавление тактов при первом цикле, подсчет циклов итд) опять же громоздкая схема и первый цикл идет с ошибкой.
На ST не пробовал. не разобрался еще.
Хотелось бы идеи как реализовать проще и надежнее.
для примера скрин размер пробной схемы.
Очень интересная задача, вот на досуге решил свой вариант сделать:
77142
77143
С перспективами дальнейшего развития.
В смысле, ничего не стоит добавить и управление, наверно потребуется только два дискретных выхода и реверсивный пускатель!
Можно легко расширить до 32, практически без усложнения программы.
Можно легко сформировать сигнал аварии в случае не срабатывания промежуточного концевика места остановки тележки и т.д. и т.п.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot