Вышла новая версия ПО OWEN Logic 1.3
Ссылка для скачивания.
Основные изменения:
Добавлен режим "Симулятор"
Приятного использования))
Ждем предложений и замечаний
Вид для печати
Вышла новая версия ПО OWEN Logic 1.3
Ссылка для скачивания.
Основные изменения:
Добавлен режим "Симулятор"
Приятного использования))
Ждем предложений и замечаний
Хорошая программа (эмулятор) ,Еще бы связи подсвечивались единичные ,а не только входа и выхода ПР для наглядности .
Такое предложение было рассмотрено, но после некоторых соображений - отклонено. Так как у нас в схеме сигналы как булевские так и целочисленные, то при больших схемах получается слишком большая ляпистость. Прям всеми цветами радуги. )))) Поэтому решил не делать.
Наоборот ,при больших схемах не видно в маленьком окне входа -выхода изменение с 0 на 1 или наоборот ,особенно в динамике ,в случае с подсветкой связей (я уж не говорю с подсветкой элементов) видна "волна" распространения сигнала .Поверьте уж мне ,старому ПР- шнику это не ляпистность -это взгляд с высоты птичьего полета на работу проекта.При 50 элементов искать ,где там изменился выход с 0 на 1 ,особенно если схема чужая и ее надо отладить ,изменить -тяжко ,связь укажет на элемент.Ну а цвет подсветки можно и подобрать ,что б не сливалась с целочисленными связями ,лучше изменить цвет целочисленных связей (на синий ,например или зеленый ) ,а подсветку булевых связей(входов,выходов) сделать красной .
игрался с комментарием ,но случилось ,что не мог его удалить или удалил ,а он остался .Такое уже было в ранних версиях ,когда оставался удаленный элемент .При сохранении проекта и вновь загрузки элемента удаленного уже небыло.
Почему то у части элементов и ФБ нет окошек для вывода значений входов ,выходов в режиме симулятор .
Анатолий, не могли бы вы описать последовательность действий, чтобы мы могли повторить?
во 2 примере нужно скачать пример умная теплица http://owen.ru/forum/misc.php?do=showattachments&t=7023 и вкл.симулятор.
Ура нашел ошибку в проекте и помог симулятор (косвенно) просто не было связи .Это нужно подчеркнуть если нет связи выхода то все что перед ним не будет иметь окошек входа выхода значений.:eek: Спасибо ,Максим мы пришли к этому не зависимо .Не знал свойств симулятора.Это одно из его возможностей -проверка всех связей -надо подчеркнуть в описании на будушее.
Да, точнее не "перед ним", а "за ним". Ведь компилятор анализирует схемы от выходов к входам. И всё, что "висит в воздухе", считает лишним. И ни только не симулирует, но и не записывает в прибор.
Как еще один пример из этой области - если на схеме отобразить "миллион" элементов без привязки к какому-либо выходу, то затраты памяти не будут увеличены. Как только всю эту "гирлянду" подсоединить к выходу произойдет анализ затраченной памяти, стека и т.п.
Добрый день!
Благодаря симулятору - начал осваивать ПР ))
и сразу (в первые 12 часов) нашел ошибку.... или даже две))
конечно возможно это "фича", а не "глюк", тогда прошу разъяснить...
1) суть первой проблемы, при переходе в симулятор, до старта,
не устанавливается из константы нижний контакт левого верхнего SEL-екта
(пришлось RеSеT делать не RTRIGом, а TPшкой)
2) не умножает 65536 и выше на 1
(если поменять соответствующую, большую константу, у меня оно долно быть 1М (2в 20ой степени))
поразмышляю вслух над вышесказанным мной же....
1) при циклических связях не совсем очевидно "место стыка" итераций
похоже у меня оно попадает куда то в "логическую середину цикла"
2) ща проверил - 65535 умножет на 1, а вот 65536 нет - похоже что всётаки глюк
(не нашел в доке ограничение в 16 бит на операнд умножения, только предупреждено что результат не может быть 32 бита, а если бы операнды были не больше 16 бит, то результат никогда не превысит 32 бита)
Как "великий оптимизатор"
(точнее просто вспомнив опыт программирования на ассемблере i8086 и прямо в НЕХ кодах i8080)
"забил" на умножение и деление, и представил умножение на 3/4, как вычитание из оригинала одну-четвёртую, а последнюю, в свою очередь получив сдвигом оригинала на 2 бита вправо....
а ещё.... "переписал" "цикл" соблюдая строгую очерёдность (слева на право) всех компонентов получил нижеследующий результат))
(но это уже почти оффтоп.... так что простите уж, если что....)
балУюсь дальше....
в последней схеме пытаюсь назначить константе значение 2147483648 - не даёт...
значит тип DoubleInteger, а не DoubleWord (т.е. со знаком, т.к. 2147483647 даёт)
немного подумав присваиваю константе значение "-2147483648"
идем дальше....
после сдвига SHR число остаётся быть отрицательным,
значить на самом деле мы имеем дело не с SHR, а с SAR ("сдивиг со знаком")
PS пишу всё это, т.к. на мой взгляд, поведение эмулятора отличается от того что описано в мануале...
и ещё - соответственно, возможно, поведение эмулятора отличается от реального поведения ПР110.
(прошу разработчиков уточнить сей вопрос, для большей ясности)
вот еще более простой пример при переходе в режим симуляции ,до запуска отладки элемент Sel неправильно отображает информацию на входе ,если эти элементы имеют общий вход и связаны по выходу.После старта все отображается правильно
В приведённом примере, как мне кажется, "проблема" в том, что у SEL на входе выбора "ноль", т.е. по идее, считать верхнее значение не обязательно, т.к. всё равно возмётся нижнее....
Почему ?,при управлении "0" выбирается верхний вход ,а при "1" выбирается нижний.Но дело не в этом ,можно подать и на нижний вход ,все равно до момента старта отладки на входе будет "0" при таком соединении (общей константе на входах ,при взаимозависимых выходах) или по другому сказать ,когда выход одного сел идет на вход другого сел при общей переменной на входе.
Спасибо большое за Ваши замечания.
Работу ФБ "SEL" и "MUL" в режиме "Симулятор" рассмотрим обязательно.
при построении циклических схем, одна связь является "связью поколений", т.е. передаёт информацию блокам но уже в следующей итерации
1) хотелось бы заранее понимать какая именно связь ей окажется
2) и что бы то как оно получиться на симуляторе было и "в жизни".
Напр.
в первом примере (с умножением) поведение схемы зависит от того откуда "снимать" результат
если сигнал на вход "WriteToFB" брать не на выходе DIV, а на выходе левого верхнего ("странного") SEL, то во первых его поведение исправляется, во вторых "связью поколений" становиться связь не между этими DIV-SEL, а между SEL-MUL.
PS в документации таких особенностей я не встретил, только "методом тыка"
Симулятор работает максимально приближенно к прибору. На данный момент различие в работе может только наблюдаться у элементов DIV и MOD. Если Вами будут замечены какие-либо другие отличия в работе симулятора и прибора, просьба сообщать об этом.
Данное поведение считается абсолютно правильным как с точки зрения рассмотрения линейных программ, так и с точки зрения прибора. Прибор поведет себя абсолютно аналогичным образом. Надо не забывать о том, что мы имеем дело с линейной программой, и такие вещи как гонка сигналов здесь неуместна. Если Вас интересуют подробности, то в местах со множественными связями создаются временные переменные для хранения промежуточных значений. И чтение значений в данном случае происходит при следующем цикле. Но так как реальный цикл в приборе ничтожно мал, то данные события остаются естественно незамеченными. Но симулятор их показывает, дабы показать в полной мере работу внутри прибора. Вы наверное уже наблюдали подобный эффект в схемах с обратными связями. Так вот там без этого вообще невозможно организовать правильную работу обратных связей.
Возможно в будущем, такое поведение будет заново рассмотрено и изменено.
Работа циклических схем в симуляторе абсолютно идентична с прибором. Как я уже говорил, работа симулятора максимально возможно приближена к прибору. Но как rovki уже сказал, во всех случаях такое просто невозможно реализовать. Например, это касается циклических схем, зависящих от цикла прибора. Здесь надо понимать, что в данном случае мы имеем некое подобие генератора случайных чисел, и результат на выходе данной схемы может быть не предсказуем.
Понятно ,что это лишь визуальный эффект ,просто не приятно видеть связь на одном конце которой 12345 ,а на другом 0.Главное ,что симулятор работает.Лично по мне так он не нужен для булевых функций ,а вот для целочисленных уж больно хорош.Еще бы связи подсвечивали ,причем через меню,кому нужно вкл.,кому не нужно выкл.на любой вкус потребителя .:) :rolleyes: :rolleyes:
Поразмыслив на досуге, я все-таки решил немного пересмотреть алгоритм анализатора схем, дабы устранить эту "аномалию". )))
Насчет подсветки связей, то в недалеком будущем думаю данная опция будет реализована. Но на данный момент вставил некий "бонус" как раз на эту тематику. ))) Теперь Вы сможете видеть прохождение так сказать "волны" сигнала на схеме. Устанавливается данный функционал через настройки (свойства) симулятора.
Отлично,спасибо,приятно работать с адекватными людьми ,старающихся для пользователей в первую очередь.
Когда будет выложена новая сборка программы с "бонусом" здесь будет сказано отдельно. )))
Аномалия автоматически будет устранена и в симуляторе, и в приборе. Спасибо за помощь в выявлении подобных "аномалий"! )))
К сожалению (а может и к счастью! )))) без симулятора подобную аномалию практически невозможно было выявить.
ещё заметил особенность - если создать и/или изменить макрос, а после его сохранить, то дата файла не меняется!
более того, пока не внесёшь каких-нить изменений в основном проекте
(да хоть просто сдвинуть блок или связь)
то программа вообще не даёт сохранить изменения!
актуально, когда отлаживаешь (с помощью симулятора) отдельные блоки схемы вынесенные в макрос, сохраняя промежуточные работоспособные варианты.
(точнее только создаётся ИЛЛЮЗИЯ, что сохранилось!)
и если сделав какие то изменения, (много изменений) захочется откатиться в последний сохранённый вариант - то пользователя ждут огромны разочарования ))
---------------------------------------------------------------
PS надеюсь я не надоел своими претензиями))
как говорит один банкир - "первое впечатление нельзя создать дважды" (с) В.Н.Фролов
а зачастую именно оно выявляет все шероховатости.
и пока оно у меня не "замылилось" - спешу им поделиться ))
[QUOTE=AI!;55292]
актуально, когда отлаживаешь (с помощью симулятора) отдельные блоки схемы вынесенные в макрос, сохраняя промежуточные работоспособные варианты.
(точнее только создаётся ИЛЛЮЗИЯ, что сохранилось!)
и если сделав какие то изменения, (много изменений) захочется откатиться в последний сохранённый вариант - то пользователя ждут огромны разочарования ))
О каких разочарованиях идет речь? Подробнее опишите проблему и действия, осуществляемые Вами.
из опыта - нажимаю SAVE только когда получается работоспособная схема,
что бы можно было откатиться назад
(закрыть без сохранения и открыть ранее сохранённую версию)
ща сделал ТЕСТ по следующим шагам:
1) открыл Овен Logic, создал там новый проект
2) в этом проекте создал макрос, запихал туда один FTRIG
(соединив вход-выход с входом выходом макроса)
ну и изменил имя макроса на "ААА"
3) нажал кнопку SAVE - программа спросила куда и как сохранить....
4) перешел в окно основного проекта, запихал туда "ОR"
(тож соединив вход-выход элемента с входом-выходом устр-ва)
5) снова нажал SAVE
6) перешёл во вкладку макроса, удалил FTRIG и воткнул туда RTRIG
(опять же соединив вход-выход с входом выходом макроса)
7) снова давлю кнопку SAVE (в окне макроса!)
закрываю ВСЁ окно Овен Logic
8) открываю проводником сохранённый проект, а там версия из п.5 (!!!)
т.е. "SAVE" из п.7 не сработало!!!
9) (или PS) не нашел как по простому открыть на редактирование макрос, поэтому я сначала вставил макрос "ааа" в окне основного проекта,
а потом нажал на нём правой кнопкой и "изменить" - а там "FTRIG" (!!!) вместо RTRIG который я вставил туда в п.6
По-надоедаю ещё немного ))
"ProgramRelayFBD.exe" действительно часто грузит одно ядро до 100% без видимых на то причин....
-------------------
ещё одно неудобство вспомнил... макрос 1вх-1вых, при создании, занимает всего 10 пикселей в высоту, приходится каждый раз его "расширять"
сделайте хотя бы 100px