PDA

Просмотр полной версии : Умный тумблер Прошу помощи!



NikitaR
16.11.2018, 16:37
Доброго времени суток.
Меня зовут Никита, я новенький. программирую на ПР200.
У меня есть задача:
С помощью встроенного дисплея ПР200, выбирать номер программы от 1 до 100.

Есть 5 исполнительных механизма, которые должны включаться/выключаться с определенной логикой и временной задержкой(это и есть те 100 макросов(программ) которые уже есть).
Но теперь мне нужно выбрать 1 из 100, при условии, что 1 из 100 работает, а остальные нет.

Как писать сами программы я разобрался, они похожи друг на друга и типовые, но их 100 штук.

Но теперь, встает проблема, как активировать ту или иную программу из числа этих 100 штук?

Я подумал, что это должен быть модуль макрос типа тумблера, которому можно задать номер программы, на который нужно переключиться.
Снизу представлена иллюстрация, как оно мне кажется должно быть.
39857

Aviator_VZh
16.11.2018, 16:59
Если в лоб, то используйте функциональные блоки EQ из функций сравнения, но старшие товарищи могут подсказать более элегантное решение. Мне кажется Вам стоит подумать над алгоритмом выбора режима работы. Заставить человека выбирать число от 1 до 100 для запуска нужной программы не айс.

NikitaR
16.11.2018, 17:11
Заставить человека выбирать число от 1 до 100 для запуска нужной программы не айс.
К сожалению, в моей ситуации это обязательно условие, даже если придется нажать 99 раз на одну и ту же стрелочку на панели ПР200.

Если в лоб, то используйте функциональные блоки EQ из функций сравнения, но старшие товарищи могут подсказать более элегантное решение. Мне кажется Вам стоит подумать над алгоритмом выбора режима работы.
Не могли бы вы поподробнее описать или нарисовать схему, я бы вам был очень благодарен.:)

Aviator_VZh
16.11.2018, 17:22
Как-то так.

39858

NikitaR
16.11.2018, 17:52
Как-то так.

39858

Получается выходы с EQ на каждую из программ (макросов) ?

Переменная "Уставка с экрана" целочисленная?

Я попробовал, у меня она всегда 1 или 0 ...

NikitaR
16.11.2018, 18:01
Теперь другая проблема, переменные к первой программе связались, а к второй не связываются
39859

Aviator_VZh
16.11.2018, 18:27
Переменная может иметь только один блок записи. Если у Вас на выходе макроса все нули при нуле на входе, то суммируйте результат по каждому выходу и получите свои X, Y..... Но повторяю, это решение в лоб
Проверьте настройки при вводе переменной с экрана.

39861

Василий Кашуба
16.11.2018, 20:23
Теперь другая проблема, переменные к первой программе связались, а к второй не связываются
39859
А не проще, выложить вашу программу, чтобы не ванговать что у вас не так?

Сергей0308
16.11.2018, 20:54
Судя по картинке ТС хотел демультиплексор, но его вроде и дешифратор устроил, короче вот эту тему можете посмотреть, может чем поможет: http://www.owen.ru/forum/showthread.php?t=29445&page=6

melky
17.11.2018, 22:32
Вот именно, нельзя выход даже двух блоков подключить на вход другого блока (он же выход реле ПР), а у вас 100.

Подумайте над этим для начала.

Василий Кашуба
17.11.2018, 22:38
Так что, такая секретная программа, что нельзя выложить на форуме?

melky
18.11.2018, 15:55
Если я правильно понял автора, то у него есть (будет) 100 алгоритмов. В каждом из алгоритмов один выход имеет различные диаграммы включения и выключения.
Замечу, что выход не включается в алгоритме 5,7,8,10 и т.д. а именно может как включаться так и выключаться в алгоритме и алгоритмов 100.

у меня получилось 3 элемента на алгоритм на каждый из выходов. то есть выход 1 имеет 3*100=300 элементов FBD, если выходов 8 и каждый имеет по 100 алгоритмов то 300*8=2400 FBD элементов.

И это только выбор алгоритма и блокировка всех кроме одного рабочего алгоритма, не считая количества FDB самих алгоритмов.
ПР200 такое выдержит ? :)

Василий Кашуба
18.11.2018, 20:20
Потому и прошу программу, возможно есть другой вариант решения этой задачи.

игорь68
18.11.2018, 20:44
Я так переключаю 8 экранов. Остальное по аналогии.

matandr
18.11.2018, 21:50
вот файл переслал тут

melky
18.11.2018, 22:22
Василий Кашуба в ПР200 другого варианта нет, у него нет возможности делать переходы, пропуская часть кода.

игорь68 не 8, СТО а это большая разница. И не выбор одного входа на один из нескольких выходов, а СТО входов (выход алгоритма) на ОДИН выход. Это тоже большая разница

Василий Кашуба
18.11.2018, 22:32
Василий Кашуба в ПР200 другого варианта нет, у него нет возможности делать переходы, пропуская часть кода.

игорь68 не 8, СТО а это большая разница
Вы видели схему? Или это ваши предположения о том, что эту задачу по другому не решить?

Василий Кашуба
18.11.2018, 22:37
вот файл переслал тут
Нет, мой макрос БУСП при большом рассогласовании даёт длинные импульсы и короткие паузы, при малом рассогласовании короткие импульсы и длинные паузы, а при равенстве не выдаёт ни каких импульсов.

melky
18.11.2018, 22:38
схема была в варианте ОППА! а две переменных нельзя задать на нескольких выходах макросов и эта же переменная задана как входящая на физический выход. Скриншот приложен у автора.
При этом он говорит о сотне алгоритмов, которые надо переключать.

Так что не трудно догадаться, что автор хотел. Только выбрал не ту железку.

Василий Кашуба
18.11.2018, 22:41
схема была в варианте ОППА! а две переменных нельзя задать на нескольких выходах макросов и эта же переменная задана как входящая на физический выход. Скриншот приложен у автора.
При этом он говорит о сотне алгоритмов, которые надо переключать.

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

melky
18.11.2018, 22:50
да при чем тут внутренности макросов ? один макрос - один алгоритм. Автор предполагает что алгоритмов будет 100. Посмотрите куда он выходы макросов хочет сводить ?

Василий Кашуба
18.11.2018, 23:26
да при чем тут внутренности макросов ? один макрос - один алгоритм. Автор предполагает что алгоритмов будет 100. Посмотрите куда он выходы макросов хочет сводить ?
Как раз от внутренностей макросов может многое зависеть, может если изменить макросы, то их столько и не понадобится.

melky
19.11.2018, 09:59
Василий Кашуба от перемены мест сумма не изменится, хоть вы блокировку выходов в макрос запихнете, хоть снаружи она будет.

Все ведь просто, выбор алгоритма + блокировка выхода это минимум 2 блока, сведение выхода каждого макроса на один физический выход это + 1 блок * количество алгоритмов.

Сами алгоритмы тоже состоят из блоков. Кстати не нашел для ПР200 сколько вообще он способен потянуть блоков ?

NikitaR
19.11.2018, 12:22
Всем доброго дня, и спасибо всем кто не равнодушен к моей проблеме!

Как а и писал ранее меня бы устроил вот такой алгоритм решения моей проблемы:
39883
НО переменные выделенные красным цветом не хотят назначаться!
Может быть я что то не так делаю?

Прочитал, все что вы тут выше написал, и понял только одно, что я очень сильно плаваю в некоторых терминах, хотя интуитивно я думаю, что донес основную мысль.
Так же понял, что возможно тот способ который я изначально предложил, и который мне помог реализовать Aviator_VZh, возможно не верный из-за того, что переменные (XYZDN) на выходе не могут нести "универсальную функцию использования".
Но как иначе мне управлять ими? Ведь это 5 основных исполнительных механизма станка, которые должны работать с правильной логикой и последовательностью, и ими можно управлять только по принципу 0,1...

Василий Кашуба, спрашивал по поводу "внутренностей" макросов/программ, Василий там ничего особенного нету, просто логическая последовательность с задержками по времени (скорее даже там нету никакой логики(логических блоков), а просто задержки). Просто для каждой из 100 программ есть своя индивидуальная задержка.

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

Я думал даже может просто уж если на то пошло написать просто 100 *.owl программ, и написать скрипт с помощью которого автоматически подключенный по USB нетбук будет каждый раз загружать в ПР200 новую программу, но это уже какая то муть получается.

UPD.
Условно говоря что внутри макросов/программ:
39884

petera
19.11.2018, 12:43
НО переменные выделенные красным цветом не хотят назначаться!
Может быть я что то не так делаю?
Конечно не так
Нужно выходы макросов по ИЛИ объединять
в простейшем случае
39885

Sel
19.11.2018, 12:44
Лоджик не позволяет дважды писать в переменную, поэтому Вы и не можете запустить описанный алгоритм и поэтому Вам проще изменить алгоритм.
Учитывая, что Вы пользуетесь задержками, то Вам проще вообще уйти от переменных на выходе, а использовать изменение задержек.
Т.е. блинк и прочее отправляете сразу на выход пр, а при помощи выбора значения алгоритма, задаете задежки тоф и тон.

petera
19.11.2018, 12:52
Конечно не так
Нужно выходы макросов по ИЛИ объединять
в простейшем случае
39885

В более расширенном варианте
39886

melky
19.11.2018, 12:58
NikitaR
1. выбираете по номеру свой алгоритм, как вам предложили выше, но с блокировкой, дабы другой макрос, кроме выбранного не работал, то есть blink с 0 на входе.
2. Как предложил petera объединяете одноименные выходы через OR

Другой подход - Возьмите за основу макрос ПЗУ и сделайте на выходе ОДИН макрос. А все временные задержки пропишите в ПЗУ, и выбирая номер программы у вас все будет меняться и работать через ОДИН макрос. Сильно сэкономите по количеству FBD. при чем ОЧЕНЬ сильно.
Если есть некоторые отличия в программах, можно сделать 2,3 или нужное количество требуемых макросов + ПЗУ и уже только их менять как в первом варианте.

NikitaR
19.11.2018, 13:54
но с блокировкой, дабы другой макрос, кроме выбранного не работал, то есть blink с 0 на входе.

Не очень понял, это как? Если не сложно изобразите пожалуйста.

Возьмите за основу макрос ПЗУ
А как его полное название? Не выходит найти.

petera Спасибо большое! Это однозначно решение! Единственное, я прикинул, и вышло какое-то космическое кол-во блоков OR :D

melky
19.11.2018, 13:58
NikitaR я вам сразу сказал, что при таком решении будет космическое количество блоков.
a petera вам уже нарисовал расширенный вариант, только он там выходы блокировал.
И еще один момент, посмотрите по документации ОЛ как начинает работать его blink, кажется с паузы, в принципе если так устраивает то и ладно.

Макрос ПЗУ посмотрите в темах о макросах или даже в онлайн базе
EPROM или EEPROM еще может называться.

capzap
19.11.2018, 14:14
Всем доброго дня, и спасибо всем кто не равнодушен к моей проблеме!

Как а и писал ранее меня бы устроил вот такой алгоритм решения моей проблемы:
39883
возможно я пропустил суть, но на скрине показаны копии одного и того же макроса, вход дискретный. Чем будет отличаться выполнение первой программы от сотой? В ручную будете задавать свойства макроса для всех ста вариантов

NikitaR
19.11.2018, 14:21
возможно я пропустил суть, но на скрине показаны копии одного и того же макроса, вход дискретный. Чем будет отличаться выполнение первой программы от сотой? В ручную будете задавать свойства макроса для всех ста вариантов
Меня бы устроило, но работать за станком будет человек, который скорее всего не сможет понять всей сути... Хотя научить можно и обезьяну, спорить не стану.

NikitaR
19.11.2018, 14:32
И еще один момент, посмотрите по документации ОЛ как начинает работать его blink, кажется с паузы, в принципе если так устраивает то и ладно.

Да видимо с паузы.

В идеале в программу нужно ввести такое значение как базовое состояние(исходное положение) каждого исполнительного механизма (к примеру 0).
Т.К. Если менять программы с одной на другую, то получается, что одна программа не успевает завершиться, и сразу перескакивает на другую, и получается некий конфликт.
Т.Е. нужно что бы либо каждая программа завершалась до конца, и лишь потом перескакивала, либо перед переходом на другую программу, значение(номер программы) переключать на 0.
К примеру: работает программа №55, а мне нужна №66, перед переходом на №66, я сперва перехожу на программу №0, в программе №0 все исп. механизмы приходят в исходное положение 0, и лишь потом я уже перехожу на программу №66,
№55 => №0 => №66 => №0 => №35 => №0 => №99 => №0..... и т.д.

melky
19.11.2018, 14:42
Ну, состояние выходов, защиты это уже другая история.

Aviator_VZh
19.11.2018, 17:15
Если идти таким путем, то можно все 100 ИЛИ заменить на три макроса BOOL_INT, просуммировать их выходные значения и перевести в булевую переменную.

melky
19.11.2018, 17:54
Aviator_VZh это уменьшит количество FBD ?, так то и SEL можно использовать. понту то ?

Василий Кашуба
19.11.2018, 17:55
...
Василий Кашуба, спрашивал по поводу "внутренностей" макросов/программ, Василий там ничего особенного нету, просто логическая последовательность с задержками по времени (скорее даже там нету никакой логики(логических блоков), а просто задержки). Просто для каждой из 100 программ есть своя индивидуальная задержка.

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

Я думал даже может просто уж если на то пошло написать просто 100 *.owl программ, и написать скрипт с помощью которого автоматически подключенный по USB нетбук будет каждый раз загружать в ПР200 новую программу, но это уже какая то муть получается.

UPD.
Условно говоря что внутри макросов/программ:
39884
Напишите временные параметры каждого макроса (можно в ЛС) и как долго работает выбранная программа, а также кто или что определяет, что программа закончила выполнятся???

matandr
19.11.2018, 18:13
Здравствуйте Василий!
а как сочленить тогда Ваш Бусп с программулиной, что я "кинул" сюда?
Спасибо

matandr
19.11.2018, 18:15
или сбросьте мне пожалуйста если это не "секрет полишинеля")))если можно с комментариями:mad:

Aviator_VZh
19.11.2018, 18:18
Aviator_VZh это уменьшит количество FBD ?, так то и SEL можно использовать. понту то ?

Это значительно упростит создание программы. И какой SEL Вы предлагаете использовать для замены 100 ИЛИ на 3 макроса?

Василий Кашуба
19.11.2018, 18:22
или сбросьте мне пожалуйста если это не "секрет полишинеля")))если можно с комментариями:mad:
Вот один из последних вариантов.

Aviator_VZh
19.11.2018, 19:31
Да видимо с паузы.

В идеале в программу нужно ввести такое значение как базовое состояние(исходное положение) каждого исполнительного механизма (к примеру 0).
Т.К. Если менять программы с одной на другую, то получается, что одна программа не успевает завершиться, и сразу перескакивает на другую, и получается некий конфликт.
Т.Е. нужно что бы либо каждая программа завершалась до конца, и лишь потом перескакивала, либо перед переходом на другую программу, значение(номер программы) переключать на 0.
К примеру: работает программа №55, а мне нужна №66, перед переходом на №66, я сперва перехожу на программу №0, в программе №0 все исп. механизмы приходят в исходное положение 0, и лишь потом я уже перехожу на программу №66,
№55 => №0 => №66 => №0 => №35 => №0 => №99 => №0..... и т.д.

А вот это просто. Работайте через Старт/Стоп.
1. Заведите булевую переменную (например, СтартСтоп);
2. Отключайте ей через И управляющий сигнал, подаваемый на выход;
3. Синхронизируйте ей через И все сигналы включения макросов режима;
4. На экране с выбором программы сделайте в другой строчке выбор режима Старт/Стоп;
5. Переключите управление координатой Х поля выбора программы работы с константы на переменную (например, координата). Через SEL управляйте значением этой переменной. Пусть, например, при СтартСтоп=0 координата=0, а при СтартСтоп=1 координата =20.

Тогда последовательность действий оператора будет следующей:
Выбор программы в режиме Стоп. Все выходы отключены.
Включение режима Старт. Выходы работают в соответствии с программой. Поле выбора программы исчезает и оператор не может ничего изменить.
Включение режима Стоп после выполнения программы или в процессе её выполнения. Поле выбора программы появляется. Все выходы отключены.
Выбор новой программы.

melky
19.11.2018, 22:16
Aviator_VZh еще раз, о каких 3-х макросах вы толкуете ? в них будет все та же сотня FBD внутри или до сих пор не поняли задачу ?

Сергей0308
19.11.2018, 22:30
Чем мой вариант не устроил, что я ссылку давал, там в ПЗУ можно и время задавать и количество циклов повторения, много раз писал в нескольких темах и примеры(проекты) приводил, больше писать не хочу, уже надоело повторять одно и тоже и там нет элементов "И", хотя можно как угодно сделать!

39903

melky
19.11.2018, 22:50
Сергей0308 умножьте на 100, влезет в ПР ?
И еще добавлю, у вас каждый выход имеет собственную диаграмму работы, не зависимую от других выходов ?

Сергей0308
19.11.2018, 23:21
Сергей0308 умножьте на 100, влезет в ПР ?
И еще добавлю, у вас каждый выход имеет собственную диаграмму работы, не зависимую от других выходов ?

Наверно это плюс, если можно отдельно каждый выход настроить на нужный алгоритм работы, у Вас другое мнение?
Мне кажется по такому макросу на каждый выход(5 штук) будет достаточно! Для совместной работы ничто не мешает например один счётчик(единое управление) на весь колхоз поставить!

melky
19.11.2018, 23:32
Вы лучше на своем примере, который устали выкладывать повторите этот алгоритм работа от автора темы http://www.owen.ru/forum/attachment.php?attachmentid=39884&d=1542619586
Чтобы все временные диаграммы совпали :). Автор не знает как сделать проще, а настроить ваше ПЗУ под один только алгоритм, придется застрелиться.

Сергей0308
19.11.2018, 23:58
Вы лучше на своем примере, который устали выкладывать повторите этот алгоритм работа от автора темы http://www.owen.ru/forum/attachment.php?attachmentid=39884&d=1542619586
Чтобы все временные диаграммы совпали :). Автор не знает как сделать проще, а настроить ваше ПЗУ под один только алгоритм, придется застрелиться.

Вот ещё проект, описание в нескольких темах делал! Одна из тем: http://www.owen.ru/forum/showthread.php?t=27739&page=3 и эту посмотрите: http://www.owen.ru/forum/showthread.php?t=23201&page=13

39909

Aviator_VZh
20.11.2018, 01:03
Aviator_VZh еще раз, о каких 3-х макросах вы толкуете ? в них будет все та же сотня FBD внутри или до сих пор не поняли задачу ?

Да, в них будет та же сотня ФБ, но они упакованы в макрос и остается сделать только сотню связей. И если Вам нравится мазохизм с обвязыванием сотни одинаковых ФБ (даже пяти сотен), то не навязывайте это топикстартеру.
Или Вы до сих пор не поняли задачу?

matandr
20.11.2018, 08:13
Василий, а не могли бы Вы еще раз БУСП свой скинуть......найти не могу на форуме.....или ссылку где его искать....
Заранее благодарен!

melky
20.11.2018, 09:58
Aviator_VZh вы чудо, у автора 100 алгоритмов на 5 выходов каждый, каждый выход потребует в макросе 100 FBD только для выбора от какого алгоритма управляется и как минимум по 2 FBD на каждый алгоритм для его выбора и блокировки, еще 200 FBD на выход.

Хоть вы их в макрос запакуйте, хоть не пакуйте разницы нет, FBD будет овердофига даже без условий количества FBD самих алгоритмов...

ЗАЧЕМ ?????

Ведь вариант самого алгоритма, который показал автор, решается при помощи ОДНОГО макроса на выходе и правильно настроенных ПЗУ с временными уставками для алгоритма и собственно выбора варианта.
Сергей0308 в 44 кстати предложил вариант, который БУДЕТ работать, только тому, кто настраивать сами алгоритмы придется ой как не весело.
Например если сделать дискретность времени равной 0,1 сек, то на показанный алгоритм автора потребуется 12 ячеек памяти на один алгоритм. Возьмем с запасом 16 ячеек. ПЗУ там на 256 ячеек / 16 = 16 алгоритмов. так что 7 таких ПЗУ и всего один макрос на выходе решают проблему автора.
з.ы. еще раз скажу, настраивать временные диаграммы придется очень туго, но можно. Например воспользовавшись экселем...

petera
20.11.2018, 10:50
Хоть вы их в макрос запакуйте, хоть не пакуйте разницы нет
А вот интересно, ОЛ делает из макроса подпрограмму(функцию) или нет?
В зависимости от ответа должна быть разница если на холст поместить десять одинаковых макросов по десять элементов в каждом или просто 100 этих элементов.

melky
20.11.2018, 10:53
petera ну разработчики уверяли, что FBD внутри макроса для программы полностью прозрачны. Это всего лишь удобство.

petera
20.11.2018, 11:14
petera ну разработчики уверяли, что FBD внутри макроса для программы полностью прозрачны. Это всего лишь удобство.

К стати задавали вопрос - сколько влезет ФБ
16384
39921

melky
20.11.2018, 11:38
Ого, раньше было намного меньше... тогда и в лоб можно 100 алгоритмов наверное загнать :)

Aviator_VZh
20.11.2018, 13:46
... тогда и в лоб можно 100 алгоритмов наверное загнать :)

Я и говорю с первого поста, что задачу можно решить в лоб. И в этом случае встает вопрос как уменьшить количество ФБ на холсте для упрощения работы.
А для этого нужно:
1. Ввести внутрь макроса программы первый SEL выбора. пост №4 (http://www.owen.ru/forum/showthread.php?t=29803&p=292824&viewfull=1#post292824)
2. Ввести внутрь макроса программы И для управления выходом. пост №27 (http://www.owen.ru/forum/showthread.php?t=29803&p=293004&viewfull=1#post293004)
3. Ввести внутрь макроса программы вход Старт/Стоп. пост №42 (http://www.owen.ru/forum/showthread.php?t=29803&p=293066&viewfull=1#post293066)
4. Просуммировать выходы Х, Y, ...макросов программы с помощью макросов BOOL_INT. пост №35 (http://www.owen.ru/forum/showthread.php?t=29803&p=293050&viewfull=1#post293050)
5. Результат подать на выход ПР
При этом получаем на холсте только 100 макросов программы управления, 15 макросов BOOL_INT и 9 ADD. Если программ больше 96, то недостающие входы макросов BOOL_INT можно добить ИЛИ.
Кроме того, все временные настройки и номера программ можно вытащить в свойства макроса и настраивать с холста основной программы.

PS Прикинул расход ПЗУ. Должно хватить с запасом.

Aviator_VZh
20.11.2018, 13:57
К стати задавали вопрос - сколько влезет ФБ
16384
39921

На практике ПЗУ кончается ЗНАЧИТЕЛЬНО быстрее

melky
20.11.2018, 14:18
Можно 100 программ впихнуть в гораздо меньшее количество макросов, и тем более FBD, если делать не в лоб.

Aviator_VZh
20.11.2018, 14:46
Не сомневаюсь. пост №2 (http://www.owen.ru/forum/showthread.php?t=29803&p=292822&viewfull=1#post292822)

Сергей0308
20.11.2018, 22:05
Всем доброго дня, и спасибо всем кто не равнодушен к моей проблеме!

Как а и писал ранее меня бы устроил вот такой алгоритм решения моей проблемы:
39883
НО переменные выделенные красным цветом не хотят назначаться!
Может быть я что то не так делаю?

Прочитал, все что вы тут выше написал, и понял только одно, что я очень сильно плаваю в некоторых терминах, хотя интуитивно я думаю, что донес основную мысль.
Так же понял, что возможно тот способ который я изначально предложил, и который мне помог реализовать Aviator_VZh, возможно не верный из-за того, что переменные (XYZDN) на выходе не могут нести "универсальную функцию использования".
Но как иначе мне управлять ими? Ведь это 5 основных исполнительных механизма станка, которые должны работать с правильной логикой и последовательностью, и ими можно управлять только по принципу 0,1...

Василий Кашуба, спрашивал по поводу "внутренностей" макросов/программ, Василий там ничего особенного нету, просто логическая последовательность с задержками по времени (скорее даже там нету никакой логики(логических блоков), а просто задержки). Просто для каждой из 100 программ есть своя индивидуальная задержка.

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

Я думал даже может просто уж если на то пошло написать просто 100 *.owl программ, и написать скрипт с помощью которого автоматически подключенный по USB нетбук будет каждый раз загружать в ПР200 новую программу, но это уже какая то муть получается.

UPD.
Условно говоря что внутри макросов/программ:
39884

Я вот нашёл здесь логику и попробовал сделать на регистре сдвига:

39950

Как минимум в 3 раза сократилось количество временных уставок!

И если коммутировать целочисленный выход, можно свести 6 выходов макросов в одну целочисленную переменную(через сдвиг), каждый макрос занимает 5 бит, всего в переменной 32 бита, останется мультиплексор целочисленный придумать на 17 входов, типа такого:

39951

Всё!

Как один из вариантов коммутации для моего преведущего таймера на регистре сдвига:

39954

Наверно проще, 6 мультиплексоров поставить?!

И, если все макросы похожие, отличаются только значением уставки, может проще уставку изменить?

Василий Кашуба
21.11.2018, 07:37
Василий, а не могли бы Вы еще раз БУСП свой скинуть......найти не могу на форуме.....или ссылку где его искать....
Заранее благодарен!
В #41 уже дал вам целую программу с макросом.

melky
21.11.2018, 10:24
Сергей0308 интересно, как вы нашли логику ста алгоритмов по одному примеру ? :)

Сергей0308
21.11.2018, 13:55
Сергей0308 интересно, как вы нашли логику ста алгоритмов по одному примеру ? :)

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

melky
21.11.2018, 14:19
Не знаю, что там у автора за примеры других программ, но временные уставки могут быть очень разными для каждой программы в отдельности без всякой логики, если не знать конечного результата. При чем настолько разными, что логики может не быть.
В примере дискретность 0,2 сек для каждого отдельного элемента, но ведь дискретность может быть и 0,3 и 0,1 как для всех выходов, так и отличаться для каждого выхода быть своя.

з.ы. вообще нужен автор, чтобы привел хотя бы 10-ок примеров программ, которые он хотел применять.

Ваш алгоритм легко перенастроить на такой вариант программы например ? Логика, найденная по первому примеру потянет второй ?

Сергей0308
21.11.2018, 15:58
Не знаю, что там у автора за примеры других программ, но временные уставки могут быть очень разными для каждой программы в отдельности без всякой логики, если не знать конечного результата. При чем настолько разными, что логики может не быть.
В примере дискретность 0,2 сек для каждого отдельного элемента, но ведь дискретность может быть и 0,3 и 0,1 как для всех выходов, так и отличаться для каждого выхода быть своя.

з.ы. вообще нужен автор, чтобы привел хотя бы 10-ок примеров программ, которые он хотел применять.

Ваш алгоритм легко перенастроить на такой вариант программы например ? Логика, найденная по первому примеру потянет второй ?

Тогда уж диаграммы состояний нужно иметь, несколько раз пытался этого добиться, так и не смог, говорят не знаем, что это такое, а словами объяснять, тем паче с ихними талантами красноречия, можно не одну неделю!

melky
21.11.2018, 17:15
Нужно нарисовать, а не объяснять, ну или ссылкой на пример. Вот https://kipservis.ru/finder/tajmery_80.01.htm к примеру - смотреть Функции и диаграммы работы

Сергей0308
21.11.2018, 18:16
Нужно нарисовать, а не объяснять, ну или ссылкой на пример. Вот https://kipservis.ru/finder/tajmery_80.01.htm к примеру - смотреть Функции и диаграммы работы

Конечно нужно нарисовать, а не объяснять словами, я об этом и сказал, нечто такое:

39984

Василий Кашуба
21.11.2018, 19:08
Конечно нужно нарисовать, а не объяснять словами, я об этом и сказал, нечто такое:

39984
И я об этом же в 37 посту писал. http://www.owen.ru/forum/showthread.php?t=29803&p=293053&viewfull=1#post293053

matandr
21.11.2018, 19:39
ага.не видел просто!ну программа у меня иная.она для соотношения.а вот макрос БУСП нужен с меняющейся скважностью и частотой импульсов.буду пробовать коэфф. баловаться там.спасибо

Сергей0308
22.11.2018, 01:37
ага.не видел просто!ну программа у меня иная.она для соотношения.а вот макрос БУСП нужен с меняющейся скважностью и частотой импульсов.буду пробовать коэфф. баловаться там.спасибо

Может можно датчик положения поставить(использовать), тогда и эти все примочки станут не нужны! Примерно как-то так:

39996

Sel
25.11.2018, 02:36
Всем доброго дня, и спасибо всем кто не равнодушен к моей проблеме!

Василий Кашуба, спрашивал по поводу "внутренностей" макросов/программ, Василий там ничего особенного нету, просто логическая последовательность с задержками по времени (скорее даже там нету никакой логики(логических блоков), а просто задержки). Просто для каждой из 100 программ есть своя индивидуальная задержка.



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

Василий Кашуба
25.11.2018, 09:48
Напишите временные параметры каждого макроса (можно в ЛС) и как долго работает выбранная программа, а также кто или что определяет, что программа закончила выполнятся???
Ответа на поставленные вопросы я так и не получил.

Сергей0308
25.11.2018, 14:45
Меня больше интересует минимальный шаг(ступенька) в каждом из макросов, а коэффициент умножения после макроса можно любой поставить, тогда в одной переменной можно было хранить не одну уставку, а несколько(например 4 уставки диапазона 0-255) и возможно удастся обойтись энергонезависимой памятью для 100 макросов, тогда программа станет более универсальная, уставки можно будет менять с экрана, мало ли что, я нечто подобное делал в проекте "Термостат":http://www.owen.ru/forum/showthread.php?t=29803&page=5 и других проектах!