PDA

Просмотр полной версии : OwenLogic 1.3



Страницы : [1] 2

Евгений Сергеевич
21.02.2011, 12:05
Вышла новая версия ПО OWEN Logic 1.3
Ссылка для скачивания. (http://77.105.136.35/index.html/Soft/pr110/setup%20owen%20logic_beta.zip)
Основные изменения:
Добавлен режим "Симулятор"

Приятного использования))
Ждем предложений и замечаний

rovki
22.02.2011, 09:30
Хорошая программа (эмулятор) ,Еще бы связи подсвечивались единичные ,а не только входа и выхода ПР для наглядности .

wal79
22.02.2011, 10:42
Такое предложение было рассмотрено, но после некоторых соображений - отклонено. Так как у нас в схеме сигналы как булевские так и целочисленные, то при больших схемах получается слишком большая ляпистость. Прям всеми цветами радуги. )))) Поэтому решил не делать.

rovki
22.02.2011, 11:11
Наоборот ,при больших схемах не видно в маленьком окне входа -выхода изменение с 0 на 1 или наоборот ,особенно в динамике ,в случае с подсветкой связей (я уж не говорю с подсветкой элементов) видна "волна" распространения сигнала .Поверьте уж мне ,старому ПР- шнику это не ляпистность -это взгляд с высоты птичьего полета на работу проекта.При 50 элементов искать ,где там изменился выход с 0 на 1 ,особенно если схема чужая и ее надо отладить ,изменить -тяжко ,связь укажет на элемент.Ну а цвет подсветки можно и подобрать ,что б не сливалась с целочисленными связями ,лучше изменить цвет целочисленных связей (на синий ,например или зеленый ) ,а подсветку булевых связей(входов,выходов) сделать красной .

rovki
22.02.2011, 16:31
игрался с комментарием ,но случилось ,что не мог его удалить или удалил ,а он остался .Такое уже было в ранних версиях ,когда оставался удаленный элемент .При сохранении проекта и вновь загрузки элемента удаленного уже небыло.

rovki
22.02.2011, 19:04
Почему то у части элементов и ФБ нет окошек для вывода значений входов ,выходов в режиме симулятор .

Евстигнеев Максим
22.02.2011, 23:47
Анатолий, не могли бы вы описать последовательность действий, чтобы мы могли повторить?

rovki
22.02.2011, 23:52
во 2 примере нужно скачать пример умная теплица http://owen.ru/forum/misc.php?do=showattachments&t=7023 и вкл.симулятор.

Евстигнеев Максим
23.02.2011, 00:12
во 2 примере нужно скачать пример умная теплица http://owen.ru/forum/misc.php?do=showattachments&t=7023 и вкл.симулятор.

В правом-верхнем углу схемы находится элемент "OR" с "пустым" выходом. Обратите на это внимание.

rovki
23.02.2011, 00:15
Ура нашел ошибку в проекте и помог симулятор (косвенно) просто не было связи .Это нужно подчеркнуть если нет связи выхода то все что перед ним не будет иметь окошек входа выхода значений.:eek: Спасибо ,Максим мы пришли к этому не зависимо .Не знал свойств симулятора.Это одно из его возможностей -проверка всех связей -надо подчеркнуть в описании на будушее.

Евстигнеев Максим
23.02.2011, 00:43
если нет связи выхода то все что перед ним не будет иметь окошек входа выхода значений...Не знал свойств симулятора.

Да, точнее не "перед ним", а "за ним". Ведь компилятор анализирует схемы от выходов к входам. И всё, что "висит в воздухе", считает лишним. И ни только не симулирует, но и не записывает в прибор.

Как еще один пример из этой области - если на схеме отобразить "миллион" элементов без привязки к какому-либо выходу, то затраты памяти не будут увеличены. Как только всю эту "гирлянду" подсоединить к выходу произойдет анализ затраченной памяти, стека и т.п.

AI!
23.02.2011, 01:10
Добрый день!
Благодаря симулятору - начал осваивать ПР ))

и сразу (в первые 12 часов) нашел ошибку.... или даже две))
конечно возможно это "фича", а не "глюк", тогда прошу разъяснить...

1) суть первой проблемы, при переходе в симулятор, до старта,
не устанавливается из константы нижний контакт левого верхнего SEL-екта
(пришлось RеSеT делать не RTRIGом, а TPшкой)

2) не умножает 65536 и выше на 1
(если поменять соответствующую, большую константу, у меня оно долно быть 1М (2в 20ой степени))

AI!
23.02.2011, 01:34
поразмышляю вслух над вышесказанным мной же....

1) при циклических связях не совсем очевидно "место стыка" итераций
похоже у меня оно попадает куда то в "логическую середину цикла"

2) ща проверил - 65535 умножет на 1, а вот 65536 нет - похоже что всётаки глюк
(не нашел в доке ограничение в 16 бит на операнд умножения, только предупреждено что результат не может быть 32 бита, а если бы операнды были не больше 16 бит, то результат никогда не превысит 32 бита)

AI!
23.02.2011, 02:14
Как "великий оптимизатор"
(точнее просто вспомнив опыт программирования на ассемблере i8086 и прямо в НЕХ кодах i8080)
"забил" на умножение и деление, и представил умножение на 3/4, как вычитание из оригинала одну-четвёртую, а последнюю, в свою очередь получив сдвигом оригинала на 2 бита вправо....

а ещё.... "переписал" "цикл" соблюдая строгую очерёдность (слева на право) всех компонентов получил нижеследующий результат))

(но это уже почти оффтоп.... так что простите уж, если что....)

AI!
23.02.2011, 08:17
балУюсь дальше....

в последней схеме пытаюсь назначить константе значение 2147483648 - не даёт...
значит тип DoubleInteger, а не DoubleWord (т.е. со знаком, т.к. 2147483647 даёт)
немного подумав присваиваю константе значение "-2147483648"

идем дальше....
после сдвига SHR число остаётся быть отрицательным,
значить на самом деле мы имеем дело не с SHR, а с SAR ("сдивиг со знаком")

PS пишу всё это, т.к. на мой взгляд, поведение эмулятора отличается от того что описано в мануале...
и ещё - соответственно, возможно, поведение эмулятора отличается от реального поведения ПР110.
(прошу разработчиков уточнить сей вопрос, для большей ясности)

rovki
23.02.2011, 09:45
вот еще более простой пример при переходе в режим симуляции ,до запуска отладки элемент Sel неправильно отображает информацию на входе ,если эти элементы имеют общий вход и связаны по выходу.После старта все отображается правильно

AI!
23.02.2011, 10:20
В приведённом примере, как мне кажется, "проблема" в том, что у SEL на входе выбора "ноль", т.е. по идее, считать верхнее значение не обязательно, т.к. всё равно возмётся нижнее....

rovki
23.02.2011, 10:27
В приведённом примере, как мне кажется, "проблема" в том, что у SEL на входе выбора "ноль", т.е. по идее, считать верхнее значение не обязательно, т.к. всё равно возмётся нижнее....

Почему ?,при управлении "0" выбирается верхний вход ,а при "1" выбирается нижний.Но дело не в этом ,можно подать и на нижний вход ,все равно до момента старта отладки на входе будет "0" при таком соединении (общей константе на входах ,при взаимозависимых выходах) или по другому сказать ,когда выход одного сел идет на вход другого сел при общей переменной на входе.

AI!
23.02.2011, 10:35
Почему ?,при управлении "0" выбирается верхний вход ,а при "1" выбирается нижний.Но дело не в этом ,можно подать и на нижний вход ,все равно до момента старта отладки на входе будет "0" при таком соединении (общей константе на входах ,при взаимозависимых выходах)1) ща в гостях, и нет возможности смотреть доку - пишу по памяти ))

2) думал что ВСЕГДА можно инициализировать значения с помощью RTRIG, а т.к. во время выполнения первого цикла не все константы переданы, то приходится применять TP, с циклом в несколько сот милисекунд.

Евстигнеев Максим
23.02.2011, 12:03
Спасибо большое за Ваши замечания.
Работу ФБ "SEL" и "MUL" в режиме "Симулятор" рассмотрим обязательно.

AI!
23.02.2011, 12:53
Спасибо большое за Ваши замечания.
Работу ФБ "SEL" и "MUL" в режиме "Симулятор" рассмотрим обязательно.ещё обращаю внимание на "циклические" схемы.
для меня самое важное, что бы схема в симуляторе вела себя так же как в Реле

rovki
23.02.2011, 13:15
ещё обращаю внимание на "циклические" схемы.
для меня самое важное, что бы схема в симуляторе вела себя так же как в Реле
Такое к сожалению быть не может во всех случаях .Да и зачем ,когда проще иногда загрузить проект в ПР и проверить на столе :) .

Евстигнеев Максим
23.02.2011, 13:26
ещё обращаю внимание на "циклические" схемы.

Мы стараемся обращать внимание на все аспекты работы симулятора.
У Вас есть конкретное замечание по работе "циклических схем"? Хотелось бы понять, что Вас смутило. Вы ожидали какой-то один результат моделирования, а получили другой?

rovki
23.02.2011, 14:53
Спасибо большое за Ваши замечания.
Работу ФБ "SEL" и "MUL" в режиме "Симулятор" рассмотрим обязательно.

Это касается и других целочисленных элементов до и после старта симулятора

AI!
23.02.2011, 15:46
Мы стараемся обращать внимание на все аспекты работы симулятора.
У Вас есть конкретное замечание по работе "циклических схем"? Хотелось бы понять, что Вас смутило. Вы ожидали какой-то один результат моделирования, а получили другой?
при построении циклических схем, одна связь является "связью поколений", т.е. передаёт информацию блокам но уже в следующей итерации

1) хотелось бы заранее понимать какая именно связь ей окажется
2) и что бы то как оно получиться на симуляторе было и "в жизни".

Напр.
в первом примере (с умножением) поведение схемы зависит от того откуда "снимать" результат
если сигнал на вход "WriteToFB" брать не на выходе DIV, а на выходе левого верхнего ("странного") SEL, то во первых его поведение исправляется, во вторых "связью поколений" становиться связь не между этими DIV-SEL, а между SEL-MUL.

PS в документации таких особенностей я не встретил, только "методом тыка"

wal79
23.02.2011, 21:29
Симулятор работает максимально приближенно к прибору. На данный момент различие в работе может только наблюдаться у элементов DIV и MOD. Если Вами будут замечены какие-либо другие отличия в работе симулятора и прибора, просьба сообщать об этом.

wal79
23.02.2011, 23:53
Это касается и других целочисленных элементов до и после старта симулятора

Данное поведение считается абсолютно правильным как с точки зрения рассмотрения линейных программ, так и с точки зрения прибора. Прибор поведет себя абсолютно аналогичным образом. Надо не забывать о том, что мы имеем дело с линейной программой, и такие вещи как гонка сигналов здесь неуместна. Если Вас интересуют подробности, то в местах со множественными связями создаются временные переменные для хранения промежуточных значений. И чтение значений в данном случае происходит при следующем цикле. Но так как реальный цикл в приборе ничтожно мал, то данные события остаются естественно незамеченными. Но симулятор их показывает, дабы показать в полной мере работу внутри прибора. Вы наверное уже наблюдали подобный эффект в схемах с обратными связями. Так вот там без этого вообще невозможно организовать правильную работу обратных связей.
Возможно в будущем, такое поведение будет заново рассмотрено и изменено.

wal79
24.02.2011, 00:26
Такое к сожалению быть не может во всех случаях .Да и зачем ,когда проще иногда загрузить проект в ПР и проверить на столе :) .

Работа циклических схем в симуляторе абсолютно идентична с прибором. Как я уже говорил, работа симулятора максимально возможно приближена к прибору. Но как rovki уже сказал, во всех случаях такое просто невозможно реализовать. Например, это касается циклических схем, зависящих от цикла прибора. Здесь надо понимать, что в данном случае мы имеем некое подобие генератора случайных чисел, и результат на выходе данной схемы может быть не предсказуем.

rovki
24.02.2011, 07:44
Данное поведение считается абсолютно правильным как с точки зрения рассмотрения линейных программ, так и с точки зрения прибора. Прибор поведет себя абсолютно аналогичным образом. Надо не забывать о том, что мы имеем дело с линейной программой, и такие вещи как гонка сигналов здесь неуместна. Если Вас интересуют подробности, то в местах со множественными связями создаются временные переменные для хранения промежуточных значений. И чтение значений в данном случае происходит при следующем цикле. Но так как реальный цикл в приборе ничтожно мал, то данные события остаются естественно незамеченными. Но симулятор их показывает, дабы показать в полной мере работу внутри прибора. Вы наверное уже наблюдали подобный эффект в схемах с обратными связями. Так вот там без этого вообще невозможно организовать правильную работу обратных связей.
Возможно в будущем, такое поведение будет заново рассмотрено и изменено.

Понятно ,что это лишь визуальный эффект ,просто не приятно видеть связь на одном конце которой 12345 ,а на другом 0.Главное ,что симулятор работает.Лично по мне так он не нужен для булевых функций ,а вот для целочисленных уж больно хорош.Еще бы связи подсвечивали ,причем через меню,кому нужно вкл.,кому не нужно выкл.на любой вкус потребителя .:) :rolleyes: :rolleyes:

wal79
24.02.2011, 10:05
Понятно ,что это лишь визуальный эффект ,просто не приятно видеть связь на одном конце которой 12345 ,а на другом 0.Главное ,что симулятор работает.Лично по мне так он не нужен для булевых функций ,а вот для целочисленных уж больно хорош.Еще бы связи подсвечивали ,причем через меню,кому нужно вкл.,кому не нужно выкл.на любой вкус потребителя .:) :rolleyes: :rolleyes:

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

rovki
24.02.2011, 10:36
Отлично,спасибо,приятно работать с адекватными людьми ,старающихся для пользователей в первую очередь.

AI!
24.02.2011, 10:43
Поразмыслив на досуге, я все-таки решил немного пересмотреть алгоритм анализатора схем, дабы устранить эту "аномалию". )))эта "аномалия" будет устранена только в симуляторе или в устр-ве тоже?
Теперь Вы сможетеэто надо заного скачать программу, или это будет в следующем релизе?

wal79
24.02.2011, 11:23
Когда будет выложена новая сборка программы с "бонусом" здесь будет сказано отдельно. )))
Аномалия автоматически будет устранена и в симуляторе, и в приборе. Спасибо за помощь в выявлении подобных "аномалий"! )))

wal79
24.02.2011, 11:26
К сожалению (а может и к счастью! )))) без симулятора подобную аномалию практически невозможно было выявить.

AI!
24.02.2011, 12:06
ещё заметил особенность - если создать и/или изменить макрос, а после его сохранить, то дата файла не меняется!

более того, пока не внесёшь каких-нить изменений в основном проекте
(да хоть просто сдвинуть блок или связь)
то программа вообще не даёт сохранить изменения!

актуально, когда отлаживаешь (с помощью симулятора) отдельные блоки схемы вынесенные в макрос, сохраняя промежуточные работоспособные варианты.
(точнее только создаётся ИЛЛЮЗИЯ, что сохранилось!)
и если сделав какие то изменения, (много изменений) захочется откатиться в последний сохранённый вариант - то пользователя ждут огромны разочарования ))
---------------------------------------------------------------
PS надеюсь я не надоел своими претензиями))
как говорит один банкир - "первое впечатление нельзя создать дважды" (с) В.Н.Фролов
а зачастую именно оно выявляет все шероховатости.
и пока оно у меня не "замылилось" - спешу им поделиться ))

wal79
24.02.2011, 13:48
[QUOTE=AI!;55292]
актуально, когда отлаживаешь (с помощью симулятора) отдельные блоки схемы вынесенные в макрос, сохраняя промежуточные работоспособные варианты.
(точнее только создаётся ИЛЛЮЗИЯ, что сохранилось!)
и если сделав какие то изменения, (много изменений) захочется откатиться в последний сохранённый вариант - то пользователя ждут огромны разочарования ))

О каких разочарованиях идет речь? Подробнее опишите проблему и действия, осуществляемые Вами.

wal79
24.02.2011, 13:55
и если сделав какие то изменения, (много изменений) захочется откатиться в последний сохранённый вариант - то пользователя ждут огромны разочарования ))
---------------------------------------------------------------


Что значит откатиться в последний сохраненный вариант? Если Вы сохранили в файл какой-нибудь вариант схемы, то вы всегда сможете заново его открыть. Если Вы имеете ввиду технологию Undo/Redo, то просьба подробнее сообщать о замеченных багах.

AI!
24.02.2011, 14:11
из опыта - нажимаю 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

wal79
24.02.2011, 15:03
из опыта - нажимаю 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

Да, Вы правы, есть такой косяк. Исправлено.

AI!
24.02.2011, 15:32
По-надоедаю ещё немного ))

FBD загружает мощный пень на 50 % и че это такое....косяк с прогой... "ProgramRelayFBD.exe" действительно часто грузит одно ядро до 100% без видимых на то причин....
-------------------
ещё одно неудобство вспомнил... макрос 1вх-1вых, при создании, занимает всего 10 пикселей в высоту, приходится каждый раз его "расширять"
сделайте хотя бы 100px

wal79
24.02.2011, 15:47
По-надоедаю ещё немного ))
"ProgramRelayFBD.exe" действительно часто грузит одно ядро до 100% без видимых на то причин....

Данный баг был исправлен в самом начале выпуска данной версии.

rovki
24.02.2011, 18:00
если открыть два раза(два проекта) овен лоджик в разных окнах то появляемся надпись доступ к порту закрыт ,хотя по очереди порт переключается между двух проектов.После того как закрыть один проект ,порт в распоряжении оставшегося проекта ,но надпись о доступе к порту не убирается крестиком ,хотя проект пишется в ПР

AI!
24.02.2011, 19:37
а что такое "Заданное приведение является недопустимым"?

в 18ой версии запрещено "WriteToFB"?
(все мои примеры в этой теме и последняя в теме Умный отопитель (http://www.owen.ru/forum/showthread.php?p=55302#post55302) не работают в эмуляторе 18ой версии ОвенЛоджика)

AI!
24.02.2011, 21:28
а что такое "Заданное приведение является недопустимым"?

в 18ой версии запрещено "WriteToFB"?
(все мои примеры в этой теме и последняя в теме Умный отопитель (http://www.owen.ru/forum/showthread.php?p=55302#post55302) не работают в эмуляторе 18ой версии ОвенЛоджика)нашел проблему - видимо в новой версии поправили SHR, и теперь его выход нельзя напрямую цеплять к "WriteToFB"
(как я писал выше - он в 17 версии работает как SAR (арифметический сдвиг), а в 18ой, как SHR, но тип у него на выходе странный....)

а если между ними воткнуть OR или ADD - всё работает ))

PS причём даже SEL не помогает ("пустой", т.е. на входе только средний контакт)

wal79
25.02.2011, 10:00
если открыть два раза(два проекта) овен лоджик в разных окнах то появляемся надпись доступ к порту закрыт ,хотя по очереди порт переключается между двух проектов.После того как закрыть один проект ,порт в распоряжении оставшегося проекта ,но надпись о доступе к порту не убирается крестиком ,хотя проект пишется в ПР

В программе создана очередь сообщений. При закрытии текущего окна сообщений, сразу появляется следующее за ним. Нужно закрыть все окна и все. Была мысль через некоторое время скрывать сообщение автоматически... Может быть и реализую это..

wal79
25.02.2011, 10:22
нашел проблему - видимо в новой версии поправили SHR, и теперь его выход нельзя напрямую цеплять к "WriteToFB"
(как я писал выше - он в 17 версии работает как SAR (арифметический сдвиг), а в 18ой, как SHR, но тип у него на выходе странный....)

а если между ними воткнуть OR или ADD - всё работает ))

PS причём даже SEL не помогает ("пустой", т.е. на входе только средний контакт)

Да, действительно, существовала ошибка с данным элементом. Ошибка устранена.
SHR действительно был изменен, согласно Вашему же наблюдению. Как и в приборе теперь данный компонент выполняет не арифметический, а именно логический сдвиг вправо.

AI!
25.02.2011, 14:07
открыл проекты сделанные в старых программах, из темы "примеры реализации", а там наименование блоков не "AND", "OR" или "NOT", а "&" и "1" - это так и надо?

я понимаю что они так "по правильному" называются, но всё равно странно....
и для начинающих удобнее "новое" обозначение...

rovki
25.02.2011, 15:04
Если б не сказали ,то и не заметил бы ,наверно потому ,что не начинающий ,по ГОСТ 2.743-91 обозначения "&","1"... являются правильными .Но следуя рекомендациям МЭК по языкам программирования , "AND".... .Вот и получается кто занимался схемотехникой ему привычней гост , а кто программированием тому МЭК.:) ;)

AI!
25.02.2011, 15:26
может сделать галочку, в настройках интерфейса - "показывать блоки по ГОСТ" ))

AI!
26.02.2011, 00:00
вот ещё какой у меня вопрос...
судя по доке ПР110 оперирует целыми беззаковыми числам (тип DWord)

Сложение (ADD)
Результатом выполнения операции на выходе является сумма входных значений.
Если при выполнении операции значение числа получается больше 4294967295 (32 бита),
выходящие за разрядность 32 бита биты отсекаются.
Вычитание (SUB)
Результатом выполнения операции на выходе является разность входных значений.
Если при выполнении операции на первом входе (V1) значение числа меньше второго (V2),
результатом будет число, полученное сложением младшего числа плюс 0x100000000 минус значение числа большего:
V1 + 0x100000000 – V2 = Q
Умножение (MUL)
Результатом выполнения операции на выходе является перемножение входных значений.
Если при выполнении операции значение числа получается больше 4294967295 (32 бита),
выходящие за разрядность 32 бита биты отсекаются.а судя по эмулятору, мы имеем дело с целыми числами со знаком (тип DoubleInteger)

так как же оно на самом деле?
в частности, что будет если на реальном реле сравнить "not(0)" и "0"?
(см. примеры на картинке)

kolyan
27.02.2011, 18:33
Скачал новую версию с симулятором.
Странная вещь - дома на компе с Windows 7 всё работает нормально.
А на работе на 2 компа поставил с Windows XP - режим эмуляции включается, но, почему-то не меняется состояние входов при нажатии на них... Соответственно и выходов.
Нажимаю кнопку > режим симулятора, затем "запуск симулятора в режиме реального времени". Щёлкаю по входу - появляется обрамляющая красная рамка,но вход не меняет состояние на лог "1"...

AI!
27.02.2011, 22:18
а время тикает? (внизу, ближе к правому краю)

wal79
28.02.2011, 08:54
Скачал новую версию с симулятором.
Странная вещь - дома на компе с Windows 7 всё работает нормально.
А на работе на 2 компа поставил с Windows XP - режим эмуляции включается, но, почему-то не меняется состояние входов при нажатии на них... Соответственно и выходов.
Нажимаю кнопку > режим симулятора, затем "запуск симулятора в режиме реального времени". Щёлкаю по входу - появляется обрамляющая красная рамка,но вход не меняет состояние на лог "1"...

А режим реального времени вообще запущен при этом? Или пошагово пробовали отлаживаться? Если да, то просьба написать какая винда стоит (32-х или 64-х), а также какие пакеты установлены на винде (SP1, SP2, SP3).

kolyan
28.02.2011, 09:04
Всё получилось после повторного скачивания Owen Logic.
Спасибо всем за отзывы на вопрос.

wal79
28.02.2011, 09:48
вот ещё какой у меня вопрос...
судя по доке ПР110 оперирует целыми беззаковыми числам (тип DWord)
а судя по эмулятору, мы имеем дело с целыми числами со знаком (тип DoubleInteger)

так как же оно на самом деле?
в частности, что будет если на реальном реле сравнить "not(0)" и "0"?
(см. примеры на картинке)

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

AI!
28.02.2011, 10:40
формат отображения числаВы видимо не совсем поняли вопрос.... интересует не формат отображения, а как оно на самом деле!
уточню что я имею ввиду...

из опыта программирования на ассемблере, есть не оч. много команд для которых важно знаковый операнд или нет
1) в примере выше (на картинке) я показал пример - что будет если сравнить 0xFFFFFFFF и 0х00000000?
если операнд знаковый, то ноль больше, а если без знака - то ноль меньше...
если судить по доке (там упоминаются числа 4 миллиарда) - ноль будет меньше, а симулятор ведёт сябя наоборот!!!.
2) так же не понятно как поведёт себя "универсальный счётчик" если его попросит вычесть единицу из нуля? (вопрос именно поведения реального реле)
в доке есть ограничение 0..65535 - а эмуляторе это отследили?
PS хотя тут, если прямо указанно в доке, то значит что поведение при выходе за рамки диапазона "не документировано и может меняться от версии к версии прибора" (опять же из опыта)
3) третий момент - это умножение и деление - результат его оч. сильно зависит от знака!
(и тут опять, то что описано в документации не совпадает с поведением симулятора!!!)

---------------------------------
PS цель моего поста - обратить внимание разработчика эмулятора на моменты, на которые с первого раза не обращаешь...
(тот же SHR, например, который поправили...)

НО я обратил.... т.к. я стал использовать элемент "GT" ("в умном отопителе")
и задался вопросом - что будет если где-то, случайно, у меня будет -1?
решил "проблему" следующим образом - просто прибавил ко всем значениям 16

и соответственно сдвинул диапазон значений с 0..15 на 16..31, и в случае выхода из диапазона значений, все элементы схемы остаются штатных, предсказуемых режимах
(хотел вставить слово "документированных", но на данный момент получается, что дока и практика (симулятор) разнятся :( )

wal79
28.02.2011, 11:57
Вы видимо не совсем поняли вопрос.... интересует не формат отображения, а как оно на самом деле!
уточню что я имею ввиду...

из опыта программирования на ассемблере, есть не оч. много команд для которых важно знаковый операнд или нет
1) в примере выше (на картинке) я показал пример - что будет если сравнить 0xFFFFFFFF и 0х00000000?
если операнд знаковый, то ноль больше, а если без знака - то ноль меньше...
если судить по доке (там упоминаются числа 4 миллиарда) - ноль будет меньше, а симулятор ведёт сябя наоборот!!!.
2) так же не понятно как поведёт себя "универсальный счётчик" если его попросит вычесть единицу из нуля? (вопрос именно поведения реального реле)
в доке есть ограничение 0..65535 - а эмуляторе это отследили?
PS хотя тут, если прямо указанно в доке, то значит что поведение при выходе за рамки диапазона "не документировано и может меняться от версии к версии прибора" (опять же из опыта)
3) третий момент - это умножение и деление - результат его оч. сильно зависит от знака!
(и тут опять, то что описано в документации не совпадает с поведением симулятора!!!)

---------------------------------
PS цель моего поста - обратить внимание разработчика эмулятора на моменты, на которые с первого раза не обращаешь...
(тот же SHR, например, который поправили...)

НО я обратил.... т.к. я стал использовать элемент "GT" ("в умном отопителе")
и задался вопросом - что будет если где-то, случайно, у меня будет -1?
решил "проблему" следующим образом - просто прибавил ко всем значениям 16

и соответственно сдвинул диапазон значений с 0..15 на 16..31, и в случае выхода из диапазона значений, все элементы схемы остаются штатных, предсказуемых режимах
(хотел вставить слово "документированных", но на данный момент получается, что дока и практика (симулятор) разнятся :( )

Да, Вы правы, этот момент был упущен из виду. Подправлю и сообщу Вам о результатах...

Евгений Сергеевич
28.02.2011, 12:49
булевые значения
логический "0" (False) = [00] [00] [00] [00];
логическая "1" (True) = [00] [00] [00] [01];

Целочисленные значения

0 = [00] [00] [00] [00];
1 = [00] [00] [00] [01];

-1= [FF] [FF] [FF] [FF];
-2,1Е9(самое большое отрицательное значение)
(далее "M-")= [80] [00] [00] [00];
+2,1Е9(самое большое положительное значение)
(далее "М+")= [7F] [FF] [FF] [FF];

соответственно (М-)-1=(М+)
(М+)+1=(М-)

сравнение(в приборе) (М-)>(М+)=Истина (идет сравнение беззнаковых переменных)

-1 (сдвиг вправо логический) = (М+)
[FF] [FF] [FF] [F]>>1=[7F] [FF] [FF] [FF];

AI!
28.02.2011, 13:53
Евгений, всё что Вы описали (кроме процитированного ниже), мне понятно, т.к я кодил на ассемблере и эти моменты во всех доках подробно разбираются.

сравнение(в приборе) (М-)>(М+)=Истина (идет сравнение беззнаковых переменных)
а вот из этого следует, что все отрицательные числа в симуляторе - фикция (обман)!

PS вы не уточнили про умножение и деление, если и они делаются без знака - то тем более, получается что в реле нет никаких отрицательных чисел в принципе!!!!!

Евгений Сергеевич
28.02.2011, 14:01
Сообщение не полное, согласен. Эти блоки я обязательно проверю и напишу, что там происходит.

P.S.
Посетители форума имеют разную степень подготовки, поэтому я старался написать наиболее понятно и просто.

wal79
28.02.2011, 14:29
Евгений, всё что Вы описали (кроме процитированного ниже), мне понятно, т.к я кодил на ассемблере и эти моменты во всех доках подробно разбираются.

а вот из этого следует, что все отрицательные числа в симуляторе - фикция (обман)!

PS вы не уточнили про умножение и деление, если и они делаются без знака - то тем более, получается что в реле нет никаких отрицательных чисел в принципе!!!!!

Я Вам уже сказал, что Вы правы насчет GT и в принципе всех остальных ФБ. Суть проблемы в том, что симулятор в некоторых симулятор работает с знаковыми числами. Я понимаю, что Вы кодили на ассемблере и не раз с этим сталкивались. В симуляторе я упустил момент разницы таких операций как сравнение со знаковыми и беззнакомыми числами. И уже сообщил что работы над этим ведутся. Насчет фикции или как вы сказали ОБМАНа в симуляторе, то это просто формат представления данных, о которых я уже упоминал на форуме.

AI!
28.02.2011, 14:45
я никого не хотел обидеть, или как-то задеть... :)
главное что меня услышали, поняли и работы по данному казусу ведутся... :cool:

всем большое спасибо! пошёл дальше изучать азы схемотехники ;)

wal79
28.02.2011, 14:48
а вот из этого следует, что все отрицательные числа в симуляторе - фикция (обман)!

PS вы не уточнили про умножение и деление, если и они делаются без знака - то тем более, получается что в реле нет никаких отрицательных чисел в принципе!!!!!

В приборе и нет отрицательных чисел. В симуляторе был введен формат отображения через знаковые числа для удобства... Чтобы к примеру вместо большущего значения выводилось меньшее по количеству отрицательное число. Например взять число -1, в случае беззнакового формата это будет длиннющее число 4294967295. Как я уже говорил выше в будущем возможно будет функционал для выбора пользователем формата отображения значений.

wal79
01.03.2011, 12:35
Реализовал в программе 3 формата отображения значений в симуляторе: знаковое, беззнаковое и шестнадцатиричный формат числа. Исправил реализацию таких элементов как MUL, DIV, MOD и других, в которых наблюдались отличия от прибора.

Дмитрий
02.03.2011, 13:33
Такое предложение было рассмотрено, но после некоторых соображений - отклонено. Так как у нас в схеме сигналы как булевские так и целочисленные, то при больших схемах получается слишком большая ляпистость. Прям всеми цветами радуги. )))) Поэтому решил не делать.

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

wal79
02.03.2011, 15:01
Зря, я бывалочи в процессе творчества такого навояю, что сам черт ногу сломит, подсвечивание связей (активные красные, неактивные синие) очень даже помогает в поиске ошибок в режиме отладки схемы, например вот такую.....

А что значит активные/неактивные? Для отслеживания сигналов был вставлен в симулятор некий "бонус", в котором отображается измененное значение на данный момент.

Pointer
02.03.2011, 16:18
А что значит активные/неактивные?
Активные те, которые имеют высокий логический уровень и наоборот... только для дискретных сигналов... очень удобно при отладке.

rovki
04.03.2011, 10:19
Активные те, которые имеют высокий логический уровень и наоборот... только для дискретных сигналов... очень удобно при отладке.

может голосованием_?:rolleyes: :confused: ;) нужен не нужен__?

AI!
08.03.2011, 11:19
Напишу про ещё одну "неудобность"

1) если открыть проект
2) сделать изменения в нескольких макросах.... (для "проведения опытов" в эмуляторе)
3) а потом захотеть закрыть без сохранения....
4) то программа будет спрашивать "вы точно не хотите ничего сохранить?" столько раз сколько было отредактировано макросов, +1 в основном окне....

------------------
ещё вспомнил....
в доке есть инфа, что если сделать незначительные изменения в макросе, то его менять в основной программе не надо
у меня не получилось этого добиться....
всегда элемент макроса "краснел", с требованием пересоздать его...

мож я что-то не до понимаю?

----------------
ну и на последок.....

после удаления макроса в библиотеке макросов, он (макрос) ещё долго маячит в "списке вкладок"
(маячит вкладка с макросом)

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

PS спасибо разработчикам за интересную "игрушку" ;)

rovki
08.03.2011, 15:04
PS спасибо разработчикам за интересную "игрушку" ;)

.....И серьезную :rolleyes:

kolyan
08.03.2011, 18:37
.....И серьезную :rolleyes:

Опять странности с OWEN LOGIC.
На 2х компьютерах симулятор заработал. На 1м из них установлена максимальная Windows7, на втором Windows XP SP3.
На 2х других - не запускается. На этих компах также установлена Windows XP SP3. При запуске симулятора, часы работы симулятора внизу экрана не ходят.
CoDeSys и другие программы работают без проблем.
Не пойму, в чём дело....

AI!
08.03.2011, 20:02
Чует моё сердце - вы любитель "сборок"....



спасибо разработчикам за интересную "игрушку" ;).....И серьезную :rolleyes:шоб было понятно о чём я - я ща перечитываю форум и ща в месте где идёт рассуждение что "человек никогда не перестают играть, меняется только цена игрушек..."

wal79
09.03.2011, 10:35
Опять странности с OWEN LOGIC.
На 2х компьютерах симулятор заработал. На 1м из них установлена максимальная Windows7, на втором Windows XP SP3.
На 2х других - не запускается. На этих компах также установлена Windows XP SP3. При запуске симулятора, часы работы симулятора внизу экрана не ходят.
CoDeSys и другие программы работают без проблем.
Не пойму, в чём дело....

На всякий случай уточняю, а разницы в ОС нет? Я имею в виду 32-х и 64-х битная...

kolyan
09.03.2011, 10:51
На всякий случай уточняю, а разницы в ОС нет? Я имею в виду 32-х и 64-х битная...

Нет. Разницы никакой. Обе винды 32х битные...

wal79
09.03.2011, 11:21
Нет. Разницы никакой. Обе винды 32х битные...

Спасибо. Действительно была проблемка... Проблему нашел и устранил. )))
В данный момент не могу выложить последнюю версию программы, пока не будет выпущена новая прошивка для прибора.

kolyan
09.03.2011, 11:35
Спасибо. Действительно была проблемка... Проблему нашел и устранил. )))
В данный момент не могу выложить последнюю версию программы, пока не будет выпущена новая прошивка для прибора.

Спасибо за ответ!
Будем с нетерпением ждать новую версию овен лоджик и прошивки!

rovki
11.03.2011, 19:39
Вопрос к разработчикам .Есть макросы внутри которых используются константы .хорошо бы иметь возможность использовать в одном проекте несколько одинаковых макросов но с разными константами внутри.Можно ли такое сделать в перспективе .
Речь идем о макросах -дешифратор уставок ,ПЗУ,и.т.д.Ведь порядковый номер у них разный .То есть в библиотеке макрос хранится с одними константами ,а в проекте используются несколько и с разными константами ,как ФБ .

rovki
11.03.2011, 20:23
В схеме от AI! кодовый замок интересный эффект- нет связи (сдвинул элемент для наглядности)

AI!
11.03.2011, 20:43
видел сей глюк ))
просто удалил повисший в воздухе "обрубок" и пересоздал соединение :)

rovki
11.03.2011, 20:45
видел сей глюк ))
просто удалил повисший в воздухе "обрубок" и пересоздал соединение :)

Видел и промолчал :confused: :) ;) а й я я й

AI!
11.03.2011, 20:55
хорошо бы иметь возможность использовать в одном проекте несколько одинаковых макросов но с разными константами внутри.Можно ли такое сделать в перспективе.так вроде уже есть такое!

у меня в проекте "терморегулятор2", начальный параметр счётчика "объявлен глобальным" (простите за мой программисткий жаргон)
и оба макроса имеют разные значения при подаче сигнала "Reset"

вроде такое же можно делать и с константами...

на худой конец, их можно вывести как ещё один вход и задавать константу уже в основном проекте....
(шоб было понятно о чём я - в том же проекте, так задаются максимальное или минимальное значения счётчика)

AI!
11.03.2011, 20:57
Видел и промолчал :confused: :) ;) а й я я йпросто мне тут показалось, что я немного надоел со своими претензиями и разборками....
вот я и набрал в рот воды.... на время...

а так... "плотно" программируя, проверяя и перепроверяя схему и/или поведение блоков натыкаешься на много странностей....
ну или просто вопросы возникают - "а так ли на самом деле"?

rovki
11.03.2011, 21:01
просто мне тут показалось, что я немного надоел со своими претензиями и разборками....
вот я и набрал в рот воды.... на время...

а так... "плотно" программируя, проверяя и перепроверяя схему и/или поведение блоков натыкаешься на много странностей....
ну или просто вопросы возникают - "а так ли на самом деле"?

Показалось .....:)
Про макросы ,я же говорил о константах которые внутри

AI!
11.03.2011, 21:13
Про макросы ,я же говорил о константах которые внутридля теста взял "терморегулятор номер раз" (там есть константы внутри макроса MyCNT)

1) зашел в редактор макроса, у обоих констант сделал параметр "Использование в макросе" в знчение "да"
2) сохранил макрос
3) и вставил НОВЫЙ элемент MyCNT в основной проект - у этого макроса появилось ещё 2 параметра "значение константы"

осталось понять как им дать имя... если их много....

AI!
11.03.2011, 21:48
Кстати, у меня макрос ПЗУ16 открывается так

rovki
11.03.2011, 21:51
Ну да , так и сделал -потраха в кучу ,поленился ,нужно было константы с переменной использовать ,тогда можно свернуть в квадратик.Кстати константы зашил как в вашем терморегуляторе
Вот например макрос дешифратор уставок

AI!
11.03.2011, 22:05
а почему не показать схему ПЗУ?
зачем всё в квадратик свёртывать?

ну и - как это делается?

rovki
11.03.2011, 22:33
Схема стандартная ,чисто комбинационная ,цели можно 2 реализовать
1-упростить (свернуть) стандартные узлы
2-"защита" -запутать противника.:D
делается перетаскиванием элементов ,просто когда схема сложная прога не может связи перетаскивать ,приходится делать это вручную.

AI!
12.03.2011, 13:19
Про макросы ,я же говорил о константах которые внутри
вот картинки, показывающая что можно менять константы внутри макроса ПЗУ
и в моём терморегуляторе2 параметр одного блока внутри макроса

единственное неудобство - в ПЗУ все параметры идут в разброс...
для этого я в своём макросе значения по умолчанию им дал 0..15 по порядку...

rovki
12.03.2011, 13:35
вот картинки, показывающая что можно менять константы внутри макроса ПЗУ
и в моём терморегуляторе2 параметр одного блока внутри макроса

единственное неудобство - в ПЗУ все параметры идут в разброс...
для этого я в своём макросе значения по умолчанию им дал 0..15 по порядку...

Я ж не про то что можно менять или нет ,конечно можно,я бы хотел иметь в проекте 2.,3...макроса ,например ПЗУ ,но с разными уставками внутри одновременно :rolleyes:
Анатолий и сам макрос выложите на форум (не картинку) ,будьте добры.

AI!
12.03.2011, 13:45
только после того как покажите свою ПЗУ в читабельном виде (можно в личку) :D
------------------------------
по теме - а разве я не ЭТО показываю вам?!

делаем макрос, запихиваем его в основную программу 2-3-10-20 раз..
и делаем у КАЖДОЙ копии макроса СВОИ параметры

или я что-то не понимаю?

rovki
12.03.2011, 14:17
Все разобрался

AI!
12.03.2011, 14:27
вот картинка поясняющая, что у каждого экземпляра макроса СВОИ параметры

rovki
12.03.2011, 15:03
а вот макрос ПЗУ на 64 слова(дешифратор уставок) ,как же его можно использовать не сжимая схему,поэтому и рад показать но не возможно ,когда элементов за 100,рисовал по частям ,сжимая, итерациями.

AI!
12.03.2011, 15:08
А зачем так много то?
для ПЗУ64 достаточно 63 элемента SEL

rovki
12.03.2011, 15:20
А зачем так много то?
для ПЗУ64 достаточно 63 элемента SEL

еще элементы для дешифратора 3-8 ,64 переменных входных ,ну и 64 константы и 64 выходных переменных.Потому и делал макросы универсальные ,что бы было все равно что у него внутри ,лишь бы работал как надо.Ведь мы же не лезем внутрь ФБ .:rolleyes:

rovki
12.03.2011, 18:04
Вот и памяти уже не хватает у ПР ,хотя симулятор работает;) :D

AI!
12.03.2011, 19:24
Анатолий, вы случайно разрабатываете не мою задачку? ;)

а то я блоки ПЗУ/ОЗУ разрабатываю параллельно с вами ))

rovki
12.03.2011, 19:36
не, я сам по себе .ПЗУ и ОЗУ использую давно.:p :) в качестве целочисленной ячейки памяти Озу использую ФБ CTN .:) ВЫ и сам -АС, сделаете

AI!
12.03.2011, 21:43
а вот так выглядит моя простейшая ячейка памяти

rovki
12.03.2011, 23:31
а вот так выглядит моя простейшая ячейка памяти

Очень миленько,гениально:)

AI!
13.03.2011, 00:58
ох, до чего приятно слышать :)
спасибо, за добрые слова....
вот... :rolleyes:

AI!
13.03.2011, 01:05
было все равно что у него внутри ,лишь бы работал как надо.Ведь мы же не лезем внутрь ФБ .:rolleyes:Ну не знаю.... мне всегда интересно что-как устроено...

оч. сожалею, что не успеваю за прогрессом и не знаю тонкостей устр-ва NTFS или ext3/4 (файловые системы в линуксе)
--------------------------
а если по теме... понимая что в ПРке булевые переменные - на самом деле это гоняются 32х разрядные данные
(как и в большинстве реализаций языков высокого уровня на компах)

я стал смещать своё мышление в сторону целочисленных связей...

но у тут у ПР не всё гладко...
----------------------------------
напр.

нужно узнать номер нажатой кнопки,
по идее, в схемотехние для этого есть "шифратор"
но в ПР для того что бы им воспользоваться нужно сделать не меньше манипуляций,
чем если им вообще не пользоваться...

ну и наоборот - зажечь лампочку, зная её номер - для этого Сам Бог велел использовать "дешифратор"
а в ПР - это не так...

а Extract?! мы оба делали макрос что бы сделать то что он должен делать!
(распаковывали 4 младших бита в 4 "буля")

а ещё - мне не понятно почему в существующей реализации Extract не сделать параметр как в таймерах, шоб не захламлять проект....

вообще вместо Extract можно сделать AND с константой 1/2/4/8 и далее просто int2bool
в проекте, по площади займёт примерно столько же места....

rovki
13.03.2011, 07:43
Использование Extract в ПЗу и ОЗу не позволяет их наращивать если нужно ОЗУ на 32,64 слова.Поэтому лучше использовать EQ внутри макроса ,тогда каждое озу(ПЗУ) будет иметь свой оригинальный адрес(диапазон).Вот пример, адреса 0т 0-32

AI!
13.03.2011, 10:54
Вот тот мой вариант решения данной задачи... по моему попроще ;)
--------------------------
кстати, в настоящих ПЗУ/ОЗУ
есть вход "Select"- выбор микросхемы, и дешифратором старших бит выбираем из какой микросхемы читать/писать...
(ещё один момент, когда встроенный дешифратор не подходит к той задаче к которой он предназначен)

AI!
13.03.2011, 11:42
Решил сделать ПЗУ каскадом - на 6ом не стало хватать стека :)

теперь я стал больше понимать что это такое ))
(точнее как он используется)

rovki
13.03.2011, 12:08
Я такое делал на 16 элементах "И" и стек переполнялся .Ваш вариант ПЗУ-проще.+1;)

rovki
13.03.2011, 12:22
Вопрос на засыпку -как реализовать функцию факториал числа ?

AI!
13.03.2011, 20:03
ну вот... на скорую руку...

rovki
13.03.2011, 20:30
ну вот... на скорую руку...

Ну все пора на пенсию ,есть смена :) Слава Богу!
Одно условие -делать для других ,как для себя :rolleyes:

AI!
13.03.2011, 22:10
опять наткнулся на глюк умножения...
попытался посчитать 10!

(понимаю, что может уже исправили - а вдруг нет...)

rovki
13.03.2011, 22:34
опять наткнулся на глюк умножения...
попытался посчитать 10!

(понимаю, что может уже исправили - а вдруг нет...)

Получается что множимое может быть не более 65535 (16 бит) :(,но это наверное правильно если умножать два 16 разрядных числа ,получим 32 разряда.
Поэтому считать будем только до 9!.

AI!
13.03.2011, 22:50
ИМХО неправильно это....
------------------------
а вот ещё на тему стека ))

в одном случае есть переполнение, в другом нет!

это я как бывший программер, в т.ч. на языке "Форт" (там все операции делаются со стеком)
понял "заочно", что скорее всего есть такая "фича"
(думал, пока ехал в транспорте, а ща проэкспериментировал, и убедился в своей правоте :cool: )

rovki
13.03.2011, 23:27
http://www.owen.ru/forum/showpost.php?p=46594&postcount=20

AI!
14.03.2011, 00:12
Анатолий, вы видимо меня не так поняли....

я привёл свои примеры не для того, чтобы поругать разработчиков ПР и/или само ПР....
а чтобы (НА)толкнуть на способы решения проблемы с глубиной стека!

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

понимаю, что текущая реализация многих элементов скорее всего не допускает изменение порядка вычислений параметров,
НО есть же коммутативные операции (!!!), и если компилятор поменяет местами операнды этой операции, то ВОЗМОЖНО уменьшится глубина потребляемого стека!!!

т.е. есть способ частичного решения проблемы со стеком "малой кровью" ))
не перекладывая эту проблему на НАЧИНАЮЩЕГО пользователя ))

PS надеюсь после столь развёрнутого "размышления вслух", разработчики меня поймут правильно, и согласятся со мной ;)

rovki
14.03.2011, 00:32
А ни кто и не ругает .Просто дважды пришлось обрушивать стек (6,15) при решении конкретных задач .Просто разработчики не предполагали вначале ,что мы будем такие задачи возлагать на ПР ,поэтому и поскромнечали .Просьбу мою сделать стек глубиной 32, зарубили, на все случаи .Да ладно ,вот и вы вовремя подошли с целочисленной логикой ,прорвемся.

Евстигнеев Максим
14.03.2011, 01:23
опять наткнулся на глюк умножения...
попытался посчитать 10!

(понимаю, что может уже исправили - а вдруг нет...)

Да, это поправили. Было три ФБ таких - MUL, DIV и MOD.
Поэтому и выпустим новую прошивку для ПР скоро.

Евстигнеев Максим
14.03.2011, 01:29
А ни кто и не ругает .Просто дважды пришлось обрушивать стек (6,15) при решении конкретных задач .Просто разработчики не предполагали вначале ,что мы будем такие задачи возлагать на ПР ,поэтому и поскромнечали .Просьбу мою сделать стек глубиной 32, зарубили, на все случаи .Да ладно ,вот и вы вовремя подошли с целочисленной логикой ,прорвемся.

Да, Анатолий, всё Вы правильно говорите. Только просто увеличивая значение стека, его надолго всё равно не хватит.
Есть одна идея на будущее - сделать глубину стека динамическим параметром. Как вернемся к этой теме - осуществим.

AI!
14.03.2011, 01:32
Поэтому и выпустим новую прошивку для ПР скоро.ух ты как всё серьёзно...
я думал проблема только в симуляторе....

но в любом случае, рад быть полезным для общего дела ))

AI!
14.03.2011, 13:19
ещё пожелания по модернизации программы

1) сделать у ФБ SHL/SHR/Extract/PutBit параметр N такой же как у CT/CTN/CTU
т.е. задаваемый с помощью окна "сва-ва",а не с помощью константы
(связь всегда можно будет сделать с помощью "wr2fb")
2) сделать блок write2fb визуально понятным, таким каким он становится при переходе в режим симулятора
(т.е. с чем он связан было понятно без тыканья на него)

rovki
14.03.2011, 13:34
Навряд ли сделают(1) ,потому так сделано в кодесис ,а овен приверженец МЭК.

wal79
14.03.2011, 13:58
ещё пожелания по модернизации программы

1) сделать у ФБ SHL/SHR/Extract/PutBit параметр N такой же как у CT/CTN/CTU
т.е. задаваемый с помощью окна "сва-ва",а не с помощью константы
(связь всегда можно будет сделать с помощью "wr2fb")
2) сделать блок write2fb визуально понятным, таким каким он становится при переходе в режим симулятора
(т.е. с чем он связан было понятно без тыканья на него)

Насчет 1 пункта действительно под вопросом... Но как заметил rovki не только из-за того приверженцем кого является компания ОВЕН. )))) Дело в том, что целесообразность данного действия под вопросом, а реально это затронет как программу OWEN Logic, так и саму прошивку, причем правкой "не одной строки кода" если можно так выразиться. )))) Если в этом действительно будет большая необходимость, то тогда будет другой разговор. Но за высказывание ПОЖЕЛАНИЙ большое спасибо!!! :)
Насчет 2 пункта, то я подумаю над увеличением информативности данного блока.

AI!
14.03.2011, 14:16
так и саму прошивкунасколько я понимаю, изменится только способ отображение ФБ, а не его суть!

ИМХО имеет смысл переносить параметры в поле "св-ва", если этот параметр чаще задаётся как константа...
а у меня пока это именно так...
(статистику могу судить пока только по себе)

вот где действительно возникнет проблема - так это совместимость версий при открытии старых проектов...
но вроде и тут есть опыт (напр. старый & перерос в новый AND, но в старых проектах открывается по старому)

PS ответ принят, всё выше сказанное просто мысли вслух...

Евгений Сергеевич
15.03.2011, 16:14
На сайте на странице прибора в разделе "Программное обеспечение beta" доступна для скачивания новая версия OwenLogic. В ней исправлены ошибки с целочисленными операциями и добавлена возможность выбора формата отображения чисел.
Требует смены прошивки. Её можете скачать там же.
http://www.owen.ru/catalog/72837766

rovki
25.03.2011, 11:57
Планируется ли расширение элементов (функций ) на предмет чтения (сравнения ) текущего значения времени?в моделях с часами.

Рак
25.03.2011, 18:40
Добрый день. Начал пользоваться программой OWEN Logic и у меня появилось пару идей по доработке.
1. Разрешить использовать в макросах ранее созданные макросы. Для себя я сделал несколько часто используемых макросов всего из пары логических элементов, а независимые части программы выделил тоже в макросы, но большего размера (например, макрос управления насосом, макрос управления обогревателем и т.п.) и маленькие макросы не могу использовать в больших.
2. При попытке соединения между собой входов логических элементов использовать принцип как в электрических схемах, соединение в виде точки в любом месте проводника. Мне кажется, что тянуть линию от одного выхода к нескольким входам осложняет понимание схемы и уменьшает её наглядность.
3. Сложно редактировать линии, которые подошли к выводу вертикально, для смещения такой линии необходимо зажать клавишу Shift и тянуть маленький участок вертикальной линии в сторону, затем "ровнять углы".
И от себя добавлю, что памяти в контроллере прилично, но начинаются проблемы при работе с объёмными схемами - затрудняется их понимание.

rovki
25.03.2011, 18:48
Добрый день. .
И от себя добавлю, что памяти в контроллере прилично, но начинаются проблемы при работе с объёмными схемами - затрудняется их понимание.

А схемы то свои или с форума?Для обьемных схем используйте чаще макросы ,только старайтесь их делать более универсальными и понятными.:)
Про все остальное уже писалось не раз :) ,почитайте .Приветствую Вас на форуме ,как пользователя ПР.;)

Рак
25.03.2011, 18:57
А схемы то свои или с форума?Для обьемных схем используйте чаще макросы ,только старайтесь их делать более универсальными и понятными.:)
Про все остальное уже писалось не раз :) ,почитайте .Приветствую Вас на форуме ,как пользователя ПР.;)
Схемы свои, я как программист микроконтроллеров, стараюсь использовать макросы по аналогии с подпрограммами в С. На главном листе размещаю несколько "больших" макросов, так не загромождается лист кучей логических элементов, но в "больших" макросах нет возможности добавить ранее созданные, пока выкручиваюсь копированием повторяющихся блоков.
Про остальное, перечитав эту ветку, ничего подобного не нашел. Спасибо за приветствие.

rovki
25.03.2011, 19:04
Тяжело наверно писать на ФБ ,как программисту ?А предложения в других версиях овен лоджик(темах) .Выложили бы большой пример ,интересно ,без описания можно.

Евстигнеев Максим
25.03.2011, 19:30
2. При попытке соединения между собой входов логических элементов использовать принцип как в электрических схемах, соединение в виде точки в любом месте проводника. Мне кажется, что тянуть линию от одного выхода к нескольким входам осложняет понимание схемы и уменьшает её наглядность.


Технически возможно при нашей идеологии вести линию от точке к точке. Тем самым пользователь сам прокладывает путь соединения.
Но проблема с установкой соединения "выход/вход элемента-проводник".

Рак
25.03.2011, 19:43
Тяжело наверно писать на ФБ ,как программисту ?А предложения в других версиях овен лоджик(темах) .Выложили бы большой пример ,интересно ,без описания можно.
Не тяжело, только пока не приловчился работать в этой "среде программирования". Проект выложу, только закончить его нужно.

rovki
25.03.2011, 19:48
Когда приловчитесь ,тогда и схемы будут проще и наглядней .Удачи Вам,ждем схем в областях применения ПР.

AI!
25.03.2011, 19:59
2. При попытке соединения между собой входов логических элементов использовать принцип как в электрических схемах, соединение в виде точки в любом месте проводника. Мне кажется, что тянуть линию от одного выхода к нескольким входам осложняет понимание схемы и уменьшает её наглядность.посмотрите мои схемы, они зачастую именно так и выглядят...

(один выход - много входов, по максимальной длине тянутся в одной линии, потом расходятся)

Рак
25.03.2011, 20:05
посмотрите мои схемы, они зачастую именно так и выглядят...

(один выход - много входов, по максимальной длине тянутся в одной линии, потом расходятся)
Спасибо, пока так и спасаюсь.

AI!
25.03.2011, 20:16
Спасибо, пока так и спасаюсь.по моему это логично...
мы ведь программируем! что-то считаем, эти ответы где-то используем....

а что значит соединить 2 входа?

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

Рак
25.03.2011, 21:49
а что значит соединить 2 входа?
а если решили соеденить один из входов в другое место? а про остальные не отследили...
(а они должны остаться там же, где были)
Я говорил по аналогии со схемными редакторами, такими как Proteus, OrCad, PCAD. Там таких проблем не возникает. При удалении одной связи, вторая остаётся.

rovki
25.03.2011, 23:05
Обнаружилось некоторое различие работы симулятора и реального ПР ,имеется ввиду отработка нулевых значений формирователей(ТР) .В симуляторе ноль не отрабатывается в реальной жизни -ноль отрабатывается как цикл ПР .

rovki
27.03.2011, 10:17
Хорошо бы иметь возможность экспортировать проекты написанные для ПР 8\4 в ПР12\8.(в одну сторону).

Рак
27.03.2011, 14:04
Не плохо было бы менять в макросах количество входов-выходом и после создания самого макроса. Вчера 4 раза менял алгоритм работы своего макроса и каждый раз приходилось создавать новый с другим количеством входов-выходов. Ещё непонятно с пунктом "Фильтрация дискретных входов", он все время неактивен (подсвечен серым). Это я обошел поставив задержку включения на каждом входе на 50мс.
Ещё одна неприятность с макросами, после редактирования макроса его нужно удалить с главного листа и вставить снова, подключив все связи. Я тут время задержки включения подбирал, так оказалось очень утомительным каждый раз подключать 8 входов и 3 выхода :((

rovki
27.03.2011, 14:27
Не плохо было бы менять в макросах количество входов-выходом и после создания самого макроса. Вчера 4 раза менял алгоритм работы своего макроса и каждый раз приходилось создавать новый с другим количеством входов-выходов. Ещё непонятно с пунктом "Фильтрация дискретных входов", он все время неактивен (подсвечен серым). Это я обошел поставив задержку включения на каждом входе на 50мс.

Для этого сначала макрос создавайте в основной схеме ,если заранее не уверены в работоспособности или количестве входов выходов ,потом отладив копируйте в буфер ,создаете новый макрос и вставляете из буфера схему,подключайте входа ,выхода и сохраняйте макрос.

AI!
28.03.2011, 02:19
понимаю, что баловства... но вдруг покажется важным

PS из-за ограничений на png-файл в форуме, позволил себе немного отредактировать окно, уменьшив его ширину почти вдвое.

Евгений Сергеевич
28.03.2011, 22:27
если вам во всем макросе надо подобрать время задержки (или любой другой параметр ФБ, который задается в свойствах) поставьте галочку "отображать в макросе" и тогда это свойство будет доступно в основной программе в свойствах макроса.

Рак
29.03.2011, 01:33
если вам во всем макросе надо подобрать время задержки (или любой другой параметр ФБ, который задается в свойствах) поставьте галочку "отображать в макросе" и тогда это свойство будет доступно в основной программе в свойствах макроса.
Большое спасибо, только, что попробовал - очень удобно, особо порадовало изменение имени . Но с макросами мне так и не удалось разобраться. Вчера создавал макрос и при каждом его редактирования приходилось удалять старый с листа и вставлять новый, снова подключая все связи. Сейчас создал маленький макрос, редактирую его, но программа не просит его обновить, и работает в соответствии с заложенной в нее логикой. И ещё одно, есть ли способ менять уставку таймера задержки включения на фиксированное значение в зависимость от состояния одного из входов или только с помощью коммутатора и 2 таймеров задержки включения?

AI!
29.03.2011, 02:50
И ещё одно, есть ли способ менять уставку таймера задержки включения на фиксированное значение в зависимость от состояния одного из входов или только с помощью коммутатора и 2 таймеров задержки включения? вот так выглядит то, что вы просите...

wal79
29.03.2011, 12:20
Большое спасибо, только, что попробовал - очень удобно, особо порадовало изменение имени . Но с макросами мне так и не удалось разобраться. Вчера создавал макрос и при каждом его редактирования приходилось удалять старый с листа и вставлять новый, снова подключая все связи. Сейчас создал маленький макрос, редактирую его, но программа не просит его обновить, и работает в соответствии с заложенной в нее логикой. И ещё одно, есть ли способ менять уставку таймера задержки включения на фиксированное значение в зависимость от состояния одного из входов или только с помощью коммутатора и 2 таймеров задержки включения?

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

wal79
29.03.2011, 12:39
Обнаружилось некоторое различие работы симулятора и реального ПР ,имеется ввиду отработка нулевых значений формирователей(ТР) .В симуляторе ноль не отрабатывается в реальной жизни -ноль отрабатывается как цикл ПР .

Можно подробности?.. Не совсем Вас понял...

rovki
29.03.2011, 13:58
Можно подробности?.. Не совсем Вас понял...

в режиме симулятор ФБ ТР при нуле устаке не формирует на выходе импульс .Но если такой проект записать В ПР ,то на выходе формируется короткий импульс .:confused:

wal79
29.03.2011, 17:44
в режиме симулятор ФБ ТР при нуле устаке не формирует на выходе импульс .Но если такой проект записать В ПР ,то на выходе формируется короткий импульс .:confused:

Ага, хорошо, понял Вас... посмотрю в этом направлении.

Рак
31.03.2011, 12:09
Если в проекте есть макрос, и Вы его редактируете, то в данном случае изменения подразделяются на 2 вида: критические и некритические. В случае критических изменений, макрос в основной схеме проекта потребуется заменить новым из библиотеки компонентов. И что является логичным, так как изменилась сама логика работы макроса. Об этом программа и сообщает Вам, подсвечивая прямо в схеме красным фоном. Если изменения были не критичны, т.е. на логику работы изменения не повлияли, то заменять ничего не требуется. Да, соглашусь, что на данный момент данная логика не совершенна, и есть что там дописать мне... Но в первом приближении думаю данного функционала достаточно. ))) Конечно, продукт будет развиваться и дальше, тем более видя что есть интерес к данному продукту. )))
У меня же получаться чуть иначе, если я меняю время задержек в макросе, то макрос нужно обновлять, если ставлю где-то инверсию, то не требует. Ещё проблема в том, что если я что-то изменил, а потом передумал и вернул назад, то макрос подсвечивается красным. При редактировании макроса (нажимая правой кнопкой и выбираю "Редактировать макрос"), то редактирую библиотечный компонент, хотя логичней было бы редактировать текущий макрос, а потом, если он меня устроит можно сохранить в библиотеку. Посоветуйтесь со схемотехниками, они часто работают с разными редактора, задача то аналогичная.

AI!
31.03.2011, 13:15
ещё косяк в программе...
в Undo/Rendo не входит изменение констант и параметров модулей.

т.е. делая изменения в схеме - добавляя/удаляя связи и элементы и редактируя параметры существующих элементов,
потом иногда хочется откатиться назад, нажав соответствующее кол-во раз кнопку "Undo"

НО при этом если были изменены параметры элементов (время в TOF, напр) и/или константы, то эти параметры не будут возвращены в исходное положение.

Евстигнеев Максим
31.03.2011, 13:28
ещё косяк в программе...
в Undo/Rendo не входит изменение констант и параметров модулей.

т.е. делая изменения в схеме - добавляя/удаляя связи и элементы и редактируя параметры существующих элементов,
потом иногда хочется откатиться назад, нажав соответствующее кол-во раз кнопку "Undo"

НО при этом если были изменены параметры элементов (время в TOF, напр) и/или константы, то эти параметры не будут возвращены в исходное положение.

Это не "косяк".
В текущей версии ПО такая функция не заложена. И сделано это умышленно, исходя из того, что можно просто упустить такой откат в свойствах.

AI!
31.03.2011, 13:56
вот я и "упускаю"... и не сразу могу сообразить почему "откатанная назад" версия вдруг перестала работать...

PS в лбом случае Вам виднее как лучше ))
а мы уж как-нибудь приспособимся ))
(иронии - только "доля")

rovki
31.03.2011, 14:15
И как мы только жили без откатов ,копирования ,макросов:) :D :) раньше ,целый год :rolleyes: .Да к хорошему быстро привыкаешь.

wal79
31.03.2011, 16:41
вот я и "упускаю"... и не сразу могу сообразить почему "откатанная назад" версия вдруг перестала работать...

PS в лбом случае Вам виднее как лучше ))
а мы уж как-нибудь приспособимся ))
(иронии - только "доля")

Возможно, Вы и правы... Но как сказал Максим, это было сделано умышленно. Может быть это и не логично кажется сейчас, но на тот момент казалось, что лучше не откатывать свойства компонентов. Посмотрим, может и пересмотрим это...

wal79
31.03.2011, 16:57
У меня же получаться чуть иначе, если я меняю время задержек в макросе, то макрос нужно обновлять, если ставлю где-то инверсию, то не требует. Ещё проблема в том, что если я что-то изменил, а потом передумал и вернул назад, то макрос подсвечивается красным. При редактировании макроса (нажимая правой кнопкой и выбираю "Редактировать макрос"), то редактирую библиотечный компонент, хотя логичней было бы редактировать текущий макрос, а потом, если он меня устроит можно сохранить в библиотеку. Посоветуйтесь со схемотехниками, они часто работают с разными редактора, задача то аналогичная.

Хотел бы насчет инверсии поподробнее... если вы ставите на схеме новый элемент, например NOT, то макрос должен быть считаться как критически измененный. Но этот элемент конечно должен участвовать в схеме! Если Вы наблюдаете иной эффект, то прошу Вас расписать подробнее изменение, на которое схема не подсвечивает красным, так как возможно там кроется баг.
На данный момент, да, редактируется только шаблон макроса, который находится в библиотеке компонентов. Было много идей для повышения удобства редактирования макроса, но из-за ограниченности во времени разработки проекта, пришлось реализовать на данный момент наиболее универсальный вариант. Но может быть будет еще время сделать редактирование более комфортным. А насчет задержек, то возможно, как уже тут было сказано, для удобства смены задержек компонентов посмотреть в сторону элемента "Write to FB". :)
Также я здесь уже писал, что на данный момент логика принятия решения критичности изменения макроса не совершенна, к сожалению, по причине ограниченности во времени написания проги. :)

wal79
31.03.2011, 16:58
И как мы только жили без откатов ,копирования ,макросов:) :D :) раньше ,целый год :rolleyes: .Да к хорошему быстро привыкаешь.

Спасибо, очень приятно слышать, что работа идет не впустую, как говорится не в "корзину"!!! :)

Рак
31.03.2011, 17:19
И как мы только жили без откатов ,копирования ,макросов:) :D :) раньше ,целый год :rolleyes: .Да к хорошему быстро привыкаешь.
Составить схему любой сложности можно и без макросов. Только потом разобраться в ней...
По своему опыту знаю, что окончательная проверка работоспособности схемы и её отладка производится в полевых условиях, где нибудь под щитом на табуретке, когда каждый начальник приходит и дышит в спину, спрашивая "Ну как?". Поэтому практикую ключевые моменты, которые предполагаю, что могут быть изменены на месте выношу в редакторе в удобном для себя виде. И причина на это не только начальники, но и занятость оборудования, где каждая минута простоя и моих экспериментов стоит денег. Поэтому сами понимаете, эти удобства не для рисования "с чистого листа", а для возможности быстро модернизировать проект, достав его хоть через 10 лет:o

Рак
31.03.2011, 17:32
Спасибо, очень приятно слышать, что работа идет не впустую, как говорится не в "корзину"!!! :)
Ещё как не в пустую:o

rovki
31.03.2011, 20:30
еще бы добавили графический функционал -много канальный (4-8) "осциллограф" ,для наглядности и интегральной оценки работоспособности схемы ,как разновидность режима симулятора ,где входа осциллографа подключаются к выходам ПР или другим точкам схемы через блоки переменных-цены бы не было и конкуренты слюной подавились бы.:)

Евстигнеев Максим
31.03.2011, 21:09
еще бы добавили графический функционал -много канальный (4-8) "осциллограф" ,для наглядности и интегральной оценки работоспособности схемы ,как разновидность режима симулятора ,где входа осциллографа подключаются к выходам ПР или другим точкам схемы через блоки переменных-цены бы не было и конкуренты слюной подавились бы.:)

Была такая идея... может когда-нибудь и реализуем.

Рак
31.03.2011, 23:22
Хотел бы насчет инверсии поподробнее... если вы ставите на схеме новый элемент, например NOT, то макрос должен быть считаться как критически измененный. Но этот элемент конечно должен участвовать в схеме! Если Вы наблюдаете иной эффект, то прошу Вас расписать подробнее изменение, на которое схема не подсвечивает красным, так как возможно там кроется баг.
На данный момент, да, редактируется только шаблон макроса, который находится в библиотеке компонентов. Было много идей для повышения удобства редактирования макроса, но из-за ограниченности во времени разработки проекта, пришлось реализовать на данный момент наиболее универсальный вариант. Но может быть будет еще время сделать редактирование более комфортным. А насчет задержек, то возможно, как уже тут было сказано, для удобства смены задержек компонентов посмотреть в сторону элемента "Write to FB". :)
Я только что перепроверил, проект выкладывать нет смысла, попробуйте на своём компьютере. Создаю макрос, 2 входа и 1 выход, вставляю в него элемент ИЛИ, подключаю 2 входы к входам выход к выходу. Сохраняю, вставляю на главный лист и симулирую работу макроса - работает. Жму правой кнопкой -> Редактировать макрос, между одним входом и элементом ставлю элемент НЕ, сохраняю макрос, перехожу на главный лист, макрос красным не подсвечивается, симулирую его работу - работает верно. Снова редактирую макрос, убираю НЕ, вставляю "Задержка включения" на тоже место, сохраняю макрос, перехожу на главный лист. Мой макрос подсвечивается красным, удаляю его вставляю новый из библиотеки. Симулирую его работу - все верно. Снова редактирую макрос, меняю время с 10 секунд на 8, сохраняю и перехожу на главный лист и макрос подсвечивается красным.

Также я здесь уже писал, что на данный момент логика принятия решения критичности изменения макроса не совершенна, к сожалению, по причине ограниченности во времени написания проги. :)
Передайте вашему начальству, что бы вас не ограничивали во времени:)

wal79
01.04.2011, 19:26
Я только что перепроверил, проект выкладывать нет смысла, попробуйте на своём компьютере. Создаю макрос, 2 входа и 1 выход, вставляю в него элемент ИЛИ, подключаю 2 входы к входам выход к выходу. Сохраняю, вставляю на главный лист и симулирую работу макроса - работает. Жму правой кнопкой -> Редактировать макрос, между одним входом и элементом ставлю элемент НЕ, сохраняю макрос, перехожу на главный лист, макрос красным не подсвечивается, симулирую его работу - работает верно. Снова редактирую макрос, убираю НЕ, вставляю "Задержка включения" на тоже место, сохраняю макрос, перехожу на главный лист. Мой макрос подсвечивается красным, удаляю его вставляю новый из библиотеки. Симулирую его работу - все верно. Снова редактирую макрос, меняю время с 10 секунд на 8, сохраняю и перехожу на главный лист и макрос подсвечивается красным.

Передайте вашему начальству, что бы вас не ограничивали во времени:)

Я на данный момент в отпуске, но скоро выйду уже... Но посмотрел вновь исходники и действительно есть небольшая путаница в алгоритме принятия решения о критичности изменения. Более того увидел как с меньшими затратами для себя еще больше увеличить интеллектуальность данного функционала. Так что думаю в следующей версии уже сможете порадоваться более улучшенному алгоритму. :)

Рак
01.04.2011, 19:50
Я на данный момент в отпуске, но скоро выйду уже... Но посмотрел вновь исходники и действительно есть небольшая путаница в алгоритме принятия решения о критичности изменения. Более того увидел как с меньшими затратами для себя еще больше увеличить интеллектуальность данного функционала. Так что думаю в следующей версии уже сможете порадоваться более улучшенному алгоритму. :) Это не может не радовать))))

rovki
01.04.2011, 20:10
Это не может не радовать))))

Да ,а теперь попробуйте что нибудь изменить(предложить) для других программируемых реле.И я бы не сказал ,что у других все супер-пупер удобно и функционально богато.Главное -разработчики адекватные пошли ,шустрые и умные,пытаются встать на сторону потребителя ,а не гнут их в свою сторону(в пределах возможного).

Рак
01.04.2011, 21:30
Да ,а теперь попробуйте что нибудь изменить(предложить) для других программируемых реле.И я бы не сказал ,что у других все супер-пупер удобно и функционально богато.Главное -разработчики адекватные пошли ,шустрые и умные,пытаются встать на сторону потребителя ,а не гнут их в свою сторону(в пределах возможного).
Что далеко ходить, у меня сотрудник, решил написать графический интерфейс для конфигурирования своей программы. Когда он её показал - все схватились за голову. На всякие уговоры переделать её для удобства операторов не увенчались успехом, он остался при своем мнении и у него своё видение работы операторов. Так и пользуются... 3 недели разработок прошли впустую. Читал в журнале "Юный техник", что на заводе АЗЛК была разработана новая модель, выкатили на испытательный полигон, запустили двигатель и машина поехала назад. И такое бывает.

av-ignatov
05.04.2011, 23:48
Всем доброй ночи.
Кто подскажет в чем может быть проблема.Раньше стояла Setup OWEN Logic_v13017b.Решил обновить.Взял старую рабочую программу и решил запустить симулятор.Не получилось.Во первых пишет "заданное приведение является недопустимым" , а во-вторых при нажатии входа он загорается красным , но ноль на еденицу не изменяется, отображение целых чисел менял.Поставил обратно 17 версию все в порядке.Вроде бы никаких серьезных изменений в мануале не описано.Что я мог упустить или чего я не знаю?Скрины прилагаю.

rovki
06.04.2011, 07:11
Лучше не скрины ,а проект ,а то мелко

AI!
06.04.2011, 09:15
Раньше стояла Setup OWEN Logic_v13017b.Решил обновить.
Взял старую рабочую программу и решил запустить симулятор.Не получилось.Во первых пишет "заданное приведение является недопустимым"версия какая? (в окне "о программе")
такое поведение у меня было в 18b версии... ща 20b стоит...

PS оно ругается на какой-то элемент, надо определить на какой - постепеным удалением элементов по одному ))
и рассказать об этом разработчикам...
если я правильно помню, у меня были проблемы с SHR...

wal79
06.04.2011, 09:41
Всем доброй ночи.
Кто подскажет в чем может быть проблема.Раньше стояла Setup OWEN Logic_v13017b.Решил обновить.Взял старую рабочую программу и решил запустить симулятор.Не получилось.Во первых пишет "заданное приведение является недопустимым" , а во-вторых при нажатии входа он загорается красным , но ноль на еденицу не изменяется, отображение целых чисел менял.Поставил обратно 17 версию все в порядке.Вроде бы никаких серьезных изменений в мануале не описано.Что я мог упустить или чего я не знаю?Скрины прилагаю.

Выложите проект, пожалуйста... И как тут уже было сказано, уточните на какую версию Вы обновились?

av-ignatov
06.04.2011, 12:55
Спасибо всем откликнувшимся.
To Rovki.
Вчера и сегодня не получалось прилепить проект.Вышло только в архиве.
To Wal79
Обновился до версии Setup OWEN Logic 1.3 build 20 beta.
To AI!
Надпись "заданное приведение является недопустимым"появляется как только я загружаю проект , независимо от эмуляции.Оригинальный проект лежит дома , но это его предыдущий вариант , ошибка та же.

AI!
06.04.2011, 13:09
Надпись "заданное приведение является недопустимым"появляется как только я загружаю проект , независимо от эмуляции.Оригинальный проект лежит дома , но это его предыдущий вариант , ошибка та же.как я и говорил, "методом поочерёдного удаления", понял проблемный блок(и)
им(и) оказался(-лись) блок(и) реального времени, недельный(-ые)
причём все... т.е. если оставить хотя бы один - ругается...

теперь разработчики могут копать, или не копать))

PS если пересоздать, то "проблема возвращается".

av-ignatov
06.04.2011, 13:16
To AI!
Спасибо за помощь.Методом тыка просто неуспел, т.к. сейчас занимаюсь проектом на ПЛК , а ПРку проверил параллельно(надо было кой чего вспомнить).На тот момент проще было откатиться.И так лег в 5 утра.

wal79
06.04.2011, 14:30
Спасибо всем откликнувшимся.
To Rovki.
Вчера и сегодня не получалось прилепить проект.Вышло только в архиве.
To Wal79
Обновился до версии Setup OWEN Logic 1.3 build 20 beta.
To AI!
Надпись "заданное приведение является недопустимым"появляется как только я загружаю проект , независимо от эмуляции.Оригинальный проект лежит дома , но это его предыдущий вариант , ошибка та же.

Да, есть ошибочка в элементе CLOCK. Спасибо за сообщение об ошибке! :) Исправил. Если нужна срочно исправленная версия, то пишите в личку - вышлю.

av-ignatov
06.04.2011, 15:55
Спасибо за оперативность.
Срочности в исправленной версии нет , т.к. занят проектом на ПЛК.
Рад что внес посильную лепту в правку программы:)

rovki
08.04.2011, 19:39
Похоже еще глюк -две единицы на выходе при инверторе на входах "И" с использованием D-триггера.В первом такте устанавливается "1" на выходе триггера,а во втором "1" на входе инвертора .из-за этого на время одного цикла Пр на выходах две единицы.Причем это дело не в симуляторе ,так работает и ПР.

AI!
08.04.2011, 21:08
это не глюк, это фича :D

я эту ситуацию уж поднимал.... вскользь...
суть фичи - есть зацикленная схема, и соответственно встаёт вопрос - где будет "линия перемены дат"?
точнее - какое соединение будет передаваться не сразу, а в следующем такте?
---------------------
для примера, привожу свой вариант схемы (100% копия, изменения только визуальные),
в которой эта "линия" уже выглядит более логичной...

rovki
08.04.2011, 21:42
это можно избежать ,вставив ФБ FTRIG .Это из-за D-триггера .похоже он за 2 такта отрабатывается .

AI!
08.04.2011, 21:50
это не триггер виноват, это логика составления схемы такая...

тож натыкался на не синхронность отрабатывания того, что должно (по моей логике) было работать одновременно, за один такт...

PS попробуйте поперебирать входы элементов AND - поменять их местами, сначала в одном, потом в другом, ну и оба одновременно....
может поможет
(отпишитесь тут помогло ли, т.е. совой вариант я не сохранил. а стряпать его заново не охота...)

rovki
08.04.2011, 22:03
да нет же 100% это д-триггер и инвертор работают в разных циклах

AI!
08.04.2011, 22:14
это НЕ триггер сам по себе виноват, это ЛОГИКА составления схемы шалит!

кстати, помнится wal (или кто другой, не помню) обещал пересмотреть оную (логику) в новой версии программы,для чего и прошивку обновляли...

попробуйте предыдущие версии - мож там логика более логичная в данном примере?

rovki
08.04.2011, 22:29
Причем здесь схема ,если 1 ФБ в ней .Кстати фича в последнем примере проявляется только в симуляторе ,а в ПР нет.А с д-триггером -это старая песня ,почитайте форум .На нем невозможно реализовать регистр сдвига классический и т-триггер работает видите как.

AI!
08.04.2011, 22:33
ну ладно...
придут разработчики и разберут что и где....
главное мы сделали - дали им пищу для ума :)

rovki
08.04.2011, 22:43
:) ;) ......:)

wal79
11.04.2011, 10:12
Похоже еще глюк -две единицы на выходе при инверторе на входах "И" с использованием D-триггера.В первом такте устанавливается "1" на выходе триггера,а во втором "1" на входе инвертора .из-за этого на время одного цикла Пр на выходах две единицы.Причем это дело не в симуляторе ,так работает и ПР.

Это не глюк. Это особенность работы обратных связей...

wal79
11.04.2011, 10:25
это НЕ триггер сам по себе виноват, это ЛОГИКА составления схемы шалит!

кстати, помнится wal (или кто другой, не помню) обещал пересмотреть оную (логику) в новой версии программы,для чего и прошивку обновляли...

попробуйте предыдущие версии - мож там логика более логичная в данном примере?

Никакая ЛОГИКА схемы не шалит... Повторяю, что данный эффект происходит из-за обратной связи и это нормально. Прошу еще раз не забывать, что это линейная программа!
И то что я обещал - я оптимизировал. Логика была изменена совершенно в другом месте, и это изменение как раз и было более логичным. И причины этого изменения также были в этой ветке форума рассмотрены.

wal79
11.04.2011, 10:29
Причем здесь схема ,если 1 ФБ в ней .Кстати фича в последнем примере проявляется только в симуляторе ,а в ПР нет.А с д-триггером -это старая песня ,почитайте форум .На нем невозможно реализовать регистр сдвига классический и т-триггер работает видите как.

Не понял, какие Вы заметили разногласия между OWEN Logic и ПР? Вроде как что в проге что в ПР отрабатывается за 2 цикла... Или Вы что-то интересное заметили?

AI!
11.04.2011, 11:14
Никакая ЛОГИКА схемы не шалит... Повторяю, что данный эффект происходит из-за обратной связи и это нормально. Прошу еще раз не забывать, что это линейная программа!Примерно это я и хотел сказать, только другими словами.
Возможно жаргонные и/или "острые" словечки сбивают с понимания излагаемой мысли - прошу прощения, если это так...
И то что я обещал - я оптимизировал. Логика была изменена совершенно в другом месте, и это изменение как раз и было более логичным. И причины этого изменения также были в этой ветке форума рассмотрены.с этого места можно подробнее? что было и что стало...
ну или ссылку, где однозначно понятно что поменялось....

(Вроде слежу за форумом, но объяснения изменений, кроме констатации самого факта оных не заметил)

rovki
11.04.2011, 12:32
Не понял, какие Вы заметили разногласия между OWEN Logic и ПР? Вроде как что в проге что в ПР отрабатывается за 2 цикла... Или Вы что-то интересное заметили?

Да действительно ПР работает как симулятор ,но от этого не легче.если такой схемой управлять твердотельным реле для реверсирования асинхронным двигателем,то ТТР выгорят ,так как есть момент времени когда на выходах одновременно две "1".:(

Евстигнеев Максим
11.04.2011, 13:07
Анатолий, так неужели нельзя введением дополнительных элементов избежать этой ситуации? :)

wal79
11.04.2011, 13:18
Да действительно ПР работает как симулятор ,но от этого не легче.если такой схемой управлять твердотельным реле для реверсирования асинхронным двигателем,то ТТР выгорят ,так как есть момент времени когда на выходах одновременно две "1".:(

Я не спорю, что от этого не легче... В данном случае требуется усложнять программу, чтобы избежать одновременной подачи "1". Тут вся ответственность возлагается на пользователя. :)

rovki
11.04.2011, 13:21
Анатолий, так неужели нельзя введением дополнительных элементов избежать этой ситуации? :)

Можно ,я так делаю ,но не все же могут заметить такую специфику программной реализации в отличии от аппаратной реализации,которая ни где не отражена ,а последствия могут быть плачевные .Для того и предлагал в свое время в свойствах отражать взаимо исключение выходов и для этой цели сделал макрос XAND ,который позволяет исключить на выходах появление двух единиц при любых ситуациях (ошибки ,фичи):rolleyes: .
А какие еще ФБ отрабатываются за 2 такта?

AI!
11.04.2011, 13:32
А какие еще ФБ отрабатываются за 2 такта?ща Вам объяснят - что никакие! :p
и что это не в блоках дело, а в СХЕМЕ, точнее в её интерпретации в ЛИНЕЙНОЙ программе в ПР.... :rolleyes:

rovki
11.04.2011, 13:32
Кстати ,очень интересно (для меня) если поставить второй инвертор(не заводить выход триггера на выход ПР) ,то триггер отрабатывает за 1 цикл и двух единиц на выходе нет:confused:
Так может ввести в библиотеку Т-триггер ,тогда на 1 проблему будет меньше.Учитывая что отработка идет с выхода к входам

rovki
11.04.2011, 13:43
ща Вам объяснят - что никакие! :p
и что это не в блоках дело, а в СХЕМЕ, точнее в её интерпретации в ЛИНЕЙНОЙ программе в ПР.... :rolleyes:

Точнее в обратной связи:)

AI!
11.04.2011, 13:51
Точнее в обратной связи:)
опять вы оказались лучше меня :(
в том как владеете великим и могучим....

wal79
11.04.2011, 13:56
Кстати ,очень интересно (для меня) если поставить второй инвертор(не заводить выход триггера на выход ПР) ,то триггер отрабатывает за 1 цикл и двух единиц на выходе нет:confused:
Так может ввести в библиотеку Т-триггер ,тогда на 1 проблему будет меньше.Учитывая что отработка идет с выхода к входам

Я Вас только что и хотел спросить, а почему бы просто инвертор не добавить? :) Зачем какой-то еще F-TRIG... Просто с выхода D-TRIG выводите как прямой сигнал, так и через еще один элемент NOT - обратный сигнал. И как Вам уже тут сказали никакие ФБ не выполняются за 2 такта. :) Вообще я немного удивлен, что только сейчас специфика обратных связей выплыла. Как AI уже сказал, действительно, в любой линейной программе обратные связи обработаются на следующем такте - и ЭТО ПРАВИЛЬНО!!! :) Иначе вся логика работы линейных программ летит к черту. Нужно всегда понимать что в отличие от реальной схемотехники, в которой к примеру допустимо понятие одновременного прихода сигнала, например на два входа, в ЛЮБОЙ линейной программе такое просто недопустимо - НЕРЕАЛЬНО! :) Поэтому что касается "гонки сигналов", что касается и обратных связей в линейной программе всегда сигналы обрабатываться будут последовательно, и НИКАК иначе! :) И это очень важно понимать при создании схем! Но в схемах, например которую Вы привели, в большинстве случаев можно этого избежать, зная эти 2 ньюанса. Да, пускай с некоторой избыточностью, в 1, 2 элемента или более... Но таковы уж линейные программы. :)

AI!
11.04.2011, 13:58
Кстати ,очень интересно (для меня) если поставить второй инвертор(не заводить выход триггера на выход ПР) ,то триггер отрабатывает за 1 цикл и двух единиц на выходе нет:confused:по пытаюсь объяснить как я вижу эту картину...
её особенности, и на что я сам натыкался.....

если есть "цикл" (в терминологии этого форума - "обратная связь")
и если заводить/выводить данные в этот цикл более чем через ОДНУ точку - возможна рассинхронизация работы блоков (схемы)

PS я "заводил" данные в цикл с помощью 2х SEL и синхроимпульса от одного источника... и получал рассинхронизацию...
в вашем же примере, происходит ВЫВОД данных из цикла из 2х точек, которые отрабатывают не синхронно...

во втором же примере, ВЫВОД данных происходит в одной точке "цикла", и рассинхронизации не происходит...

wal79
11.04.2011, 14:00
Просто с выхода D-TRIG выводите как прямой сигнал, так и через еще один элемент NOT - обратный сигнал.

rovki
11.04.2011, 14:00
Аналогичный эффект наблюдал и с RS триггерами .Может добавить внутр всех триггеров инвертор и сделать дополнительный инверсный выход ,как в настоящих микросхемах и таким образом убрать этот эффект.Кстати как подметил AI! .такой эффект проявляется не всегда и зависит от того на какой выход ПР выведен выход ФБ.тоесть если на 1 -эффект есть ,если на 4 то нет (выход инвертора на 2,3 выхода) .как будто обработка идет с выхода на вход и с младшего разряда к старшему.

rovki
11.04.2011, 14:04
Просто с выхода D-TRIG выводите как прямой сигнал, так и через еще один элемент NOT - обратный сигнал.

Так это надо писать на каждом столбе ,потому как особенность .Лучше сделать инверсный выход в ФБ (триггеров) и забыть про это.
А Т-триггер (счетный) широко распространенный элемент в цифровых схемах,Который делают из д-триггера соединением инверсного выхода со входом Д.

wal79
11.04.2011, 14:06
по пытаюсь объяснить как я вижу эту картину...
её особенности, и на что я сам натыкался.....

если есть "цикл" (в терминологии этого форума - "обратная связь")
и если заводить/выводить данные в этот цикл более чем через ОДНУ точку - возможна рассинхронизация работы блоков (схемы)

PS я "заводил" данные в цикл с помощью 2х SEL и синхроимпульса от одного источника... и получал рассинхронизацию...
в вашем же примере, происходит ВЫВОД данных из цикла из 2х точек, которые отрабатывают не синхронно...

во втором же примере, ВЫВОД данных происходит в одной точке "цикла", и рассинхронизации не происходит...

В принципе все правильно объяснили, пускай и другими словами... Но термин обратная связь - не ВЫДУМКА этого форума... Вообще-то именно так и называется связь в схемотехнике. :)

wal79
11.04.2011, 14:10
Так это надо писать на каждом столбе ,потому как особенность .Лучше сделать инверсный выход в ФБ (триггеров) и забыть про это.
А Т-триггер (счетный) широко распространенный элемент в цифровых схемах.

НЕТ, КАТЕГОРИЧЕСКИ НЕТ! :) Это не особенность!!! Вы опять же забываете, что такое линейная программа! :) Хорошо, как Вы представляете обработку сигналов в данном случае, чтобы схема корректно работала? Я же выше все подробно расписал особенности ЛЮБОЙ ЛИНЕЙНОЙ программы. я не только про OWEN Logic!

AI!
11.04.2011, 14:15
позволю себе предложить свой пример Т-триггера
(если я правильно понимаю, о чём речь)

rovki
11.04.2011, 14:24
НЕТ, КАТЕГОРИЧЕСКИ НЕТ! :) Это не особенность!!! Вы опять же забываете, что такое линейная программа! :) Хорошо, как Вы представляете обработку сигналов в данном случае, чтобы схема корректно работала? Я же выше все подробно расписал особенности ЛЮБОЙ ЛИНЕЙНОЙ программы. я не только про OWEN Logic!

Я не забываю ,так как я не программист ,а электронщик и воспринимаю овен лоджик как симулятор электронных цифровых схем ,как и большенство потребителей ПР ,а те кто "программирует" работаю на ПЛК.
Вот вам схема которая работает по разному в зависимости от того куда вы подключите выход ФБ (на какой выход ПР) это то же скажите " не особенность?:confused:
Речь идет только об овен лоджик ,а не вообще линейных программах,точнее о пользователях ПР.Жаль ,не то что началось не понимание ,а то что нет желания услышать другого (из другой области ).Если это не понятно ,неудобно ,не привычно мне (бог со мной),то значит ,что еще кому нибудь из электронщиков.
Не много найдется пользователей ПР которые будут разбираться в особенностях линейного программирования ,о которых ни слова в инструкциях.Да и кому это надо менять профессию.

wal79
11.04.2011, 14:28
Примерно это я и хотел сказать, только другими словами.
Возможно жаргонные и/или "острые" словечки сбивают с понимания излагаемой мысли - прошу прощения, если это так...с этого места можно подробнее? что было и что стало...
ну или ссылку, где однозначно понятно что поменялось....

(Вроде слежу за форумом, но объяснения изменений, кроме констатации самого факта оных не заметил)

Это что касается изменения анализа схемы...
http://www.owen.ru/forum/showpost.php?p=55246&postcount=24
http://www.owen.ru/forum/showpost.php?p=55284&postcount=33

Посмотрите те ветки подробнее... :)

wal79
11.04.2011, 14:39
Я не забываю ,так как я не программист ,а электронщик и воспринимаю овен лоджик как симулятор электронных цифровых схем ,как и большенство потребителей ПР ,а те кто "программирует" работаю на ПЛК.
Вот вам схема которая работает по разному в зависимости от того куда вы подключите выход ФБ (на какой выход ПР) это то же скажите " не особенность?:confused:
Речь идет только об овен лоджик ,а не вообще линейных программах,точнее о пользователях ПР.Жаль ,не то что началось не понимание ,а то что нет желания услышать другого (из другой области ).Если это не понятно ,неудобно ,не привычно мне (бог со мной),то значит ,что еще кому нибудь из электронщиков.
Не много найдется пользователей ПР которые будут разбираться в особенностях линейного программирования ,о которых ни слова в инструкциях.Да и кому это надо.

Выложите сам проект, пож-ста... Может мы друг друга не понимаем и Вы говорите об одном, а я о другом?

AI!
11.04.2011, 14:41
Это что касается изменения анализа схемы...
http://www.owen.ru/forum/showpost.php?p=55246&postcount=24
http://www.owen.ru/forum/showpost.php?p=55284&postcount=33
Посмотрите те ветки подробнее... :)это я видел...
я думал что речь про "обратные связи", что в них логика поменяется...

PS и ещё.... я как - то приводил пример, что цепочка из блоков AND, если цеплять их к верхнему контакту - может быть бесконечно большой, а если к нижнему, то стек переполняется на 15ом элементе...

wal79
11.04.2011, 14:44
это я видел...
я думал что речь про "обратные связи", что в них логика поменяется...

PS и ещё.... я как - то приводил пример, что цепочка из блоков AND, если цеплять их к верхнему контакту - может быть бесконечно большой, а если к нижнему, то стек переполняется на 15ом элементе...

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

rovki
11.04.2011, 14:44
не особенная схема

rovki
11.04.2011, 14:47
это я видел...
я думал что речь про "обратные связи", что в них логика поменяется...

PS и ещё.... я как - то приводил пример, что цепочка из блоков AND, если цеплять их к верхнему контакту - может быть бесконечно большой, а если к нижнему, то стек переполняется на 15ом элементе...

И не только переполнение стека :D -вот такие не особенности:D см. пример выше

wal79
11.04.2011, 14:48
Не много найдется пользователей ПР которые будут разбираться в особенностях линейного программирования ,о которых ни слова в инструкциях.Да и кому это надо менять профессию.

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

rovki
11.04.2011, 15:00
А менять кому-либо профессию я и не предлагаю... :) Насчет всего того, что я сказал выше - это так есть и будет независимо от наших с Вами желаний... :)

Как же не менять профессию ,если прежде чем использовать (правильно,безопасно,надежно) ПР вы предлагаете пройти курс по линейному программированию:) .не понял что есть и что будет и почему независимо от наших желаний (начальники запрещают вам или не возможно сделать).Для меня лично есть одна особенность реализации схем в программной среде -отсутствие временных задержек в используемых элементах,но с этим можно жить и даже где то облегчает проектирование электронных схем

wal79
11.04.2011, 15:04
И не только переполнение стека :D -вот такие не особенности:D

Ну вообще-то до издевок можно было бы и не опускаться...
Ваш проект я посмотрел, и мы действительно говорим немного о разных вещах. Согласен, поведение схемы не адекватное. Будет время разберусь с этим... Тут дело не в обратных связях, но проблема близко с ними связана.

wal79
11.04.2011, 15:06
Как же не менять профессию ,если прежде чем использовать (правильно,безопасно,надежно) ПР вы предлагаете пройти курс по линейному программированию:) .не понял что есть и что будет и почему независимо от наших желаний (начальники запрещают вам или не возможно сделать).Для меня лично есть одна особенность реализации схем в программной среде -отсутствие временных задержек в используемых элементах,но с этим можно жить и даже где то облегчает проектирование электронных схем

Я никому ничего не предлагаю проходить... Я попытался разъяснить 2 прописные истины... Если у меня это плохо получилось - что ж, педагогом я никогда не рвался быть. Как мог так и объяснил.

rovki
11.04.2011, 15:14
Я попытался разъяснить 2 прописные истины... Как мог так и объяснил.
Да нормально обьяснили ,только не все что очевидно для программиста,очевидно для пользователей ПР (электронщикам, киповцам,автоматчикам ....,тем кому знакомы основы цифровой схемотехнике).Поэтому ,что было меньше непоняток потом для пользователей-лучше пободаться сейчас.:rolleyes:

rovki
11.04.2011, 15:36
А вот примерно та же схема ,но по проще и то же не работает как надо

rovki
11.04.2011, 18:40
позволю себе предложить свой пример Т-триггера
(если я правильно понимаю, о чём речь)
Отличный вариант :)Такое мог придумать только хороший программист,электронщик бы не допер.Наверно потому ,что в железе не существует R,F-триггеров.

AI!
11.04.2011, 20:08
Такое мог придумать только хороший программист,электронщик бы не допер.
Наверно потому ,что в железе не существует R,F-триггеров.скорее причина в другом...
у электронщиков нет "тактов", "циклов" и "итераций"

а идея этого триггера у меня появилась, после того как я подумал где можно применить идеи с SEL (помните, "простейшую ячейку памяти") в булевом варианте - и у меня получился Т-триггер...

rovki
11.04.2011, 20:31
Это точно такты, циклы,итерации -это все последовательные действия . будем использовать ,давайте еще ,что там у вас:) в заначке.

AI!
11.04.2011, 21:10
Знаете, давно хотел спросить - почему вы на входе часто используете TON?
я понимаю, что это фильтрация дребезга, но ПР110 вроде сам это делает!?
и передаёт в программу уже отфильтрованный "сигнал"?

или я что-то не понимаю?

rovki
11.04.2011, 22:29
Знаете, давно хотел спросить - почему вы на входе часто используете TON?
я понимаю, что это фильтрация дребезга, но ПР110 вроде сам это делает!?
и передаёт в программу уже отфильтрованный "сигнал"?

или я что-то не понимаю?

Думаю не часто ,а там где по смыслу(заданию) нужна задержка на включение ,лучше скажите в какой схеме ,а я скажу зачем поставил.А фильтровать можно и в меню.Может когда и ставил ,когда фильтрации не было (или не знал о ней)

Дмитрий Егоренков
12.04.2011, 07:48
меня не покидает ощущение, что вы нас обманываете. никакие обратные связи, и никакая трижды линейная программа не могут давать A = !A.

по крайней мере, в нашей вселенной.

wal79
12.04.2011, 10:13
меня не покидает ощущение, что вы нас обманываете. никакие обратные связи, и никакая трижды линейная программа не могут давать A = !A.

по крайней мере, в нашей вселенной.

В любом случае, при схеме с обратной связью где-то (будь то на входе или на выходе) значение будет обновлено только на следующем такте. Но я считаю что в любой момент времени (под любым моментом понимается в конец любого цикла программы) выполнение функций элементов должны быть верны. Но с точки зрения отображения значений допустимо, что на одном конце связи одно значение, на другом будет другое... :) Может не понятно написал... Например, рассмотрев простейший случай, когда с выхода элемента идет связь на его же вход. Тогда значение на этом входе будет равно выходу на следующем такте. Надеюсь понятно объяснил. :)
То, что на данный момент схема ведет себя не адекватно в разных ситуациях было уже сказано мной http://www.owen.ru/forum/showpost.php?p=59028&postcount=213.

Евстигнеев Максим
12.04.2011, 11:32
меня не покидает ощущение, что вы нас обманываете. никакие обратные связи, и никакая трижды линейная программа не могут давать A = !A.

по крайней мере, в нашей вселенной.

И тебе, Дим, привет :)

AI!
13.04.2011, 03:45
никакие обратные связи, и никакая трижды линейная программа не могут давать A = !A.ну не скажите.... вот типичный пример, который легко реализуется и на языке функциональных блоков

while True do
a:=a+1
endтут а<>а, НО а=а+1
Это точно такты, циклы,итерации -это все последовательные действия . будем использовать ,давайте еще ,что там у вас:) в заначке.так же как и пример Т-триггер мне казался не важным, следующие два триггера тож мне кажутся просто баловством...
но по "просьбам трудящихся" всё же опубликую...
верхняя часть - это D-триггер, а нижняя - просто детектор фронтов, причём обоих...

rovki
13.04.2011, 20:49
пример Т-триггер мне казался не важным, следующие два триггера тож мне кажутся просто баловством...
но по "просьбам трудящихся" всё же опубликую...
верхняя часть - это D-триггер, а нижняя - просто детектор фронтов, причём обоих...

Хорошие примеры их надо (и подобные) размещать в маленьких хитростях.
Только в вашем д-триггере нужно на вход С поставить р-триггер,ну чтоб вход был динамическим.;)

AI!
13.04.2011, 21:43
не понял про р-триггер

rovki
13.04.2011, 22:28
не понял про р-триггер
Д-триггер у вас статический ,то есть зашелка ,когда на "с" =0 ,а когда 1 ,то на выходе информация меняется как на входе "Д";) ,а нужен триггер с динамическим управлением по входу "С"(по фронту).

AI!
13.04.2011, 22:50
так по фронту есть встроенный...
или я не прав?

rovki
14.04.2011, 08:15
Нужен еще кольцевой целочисленный регистр сдвига ,с параллельной записью и сдвигом информации по синхроимпульсу ,с переменной(задаваемой) разрядностью:rolleyes:(количество бит).На булевой логике я это делал ,хорощо бы иметь и целочисленный вариант ,которые у вас хорошо получаются

AI!
14.04.2011, 09:28
ну тогда сразу давайте ссылку и на ваш вариант... (булевый)

rovki
14.04.2011, 10:08
Мне проше снова нарисовать ,чем искать .Вот регистр сдвига с параллельной записью и сдвигом .Цикличность обеспечивается обратной связью с нужного выхода на вход Di.
В целочисленном варианте количество разрядов лучше задавать по входу или константой внутри макроса
входной код числа=целочисленный
выходной код числа-целочисленный
входной код количество разрядов-целочисленный
входа стробов записи и сдвига -булевы

rovki
14.04.2011, 20:33
еще бы вход реверс

AI!
15.04.2011, 00:08
"проба пера"
ИМХО я бы SEL вынес за блок, т.е. не пихал бы в одну кучу память и сдвиг...
----------------
завтра предложу на обозрение два апгрейта этого варианта
1) сделаю булевый выход того бита, который переносится...
2) сделаю циклический сдвиг на любое число битов (но без п.1)

PS про тож реверс подумаю... но как я писал выше - не люблю загромождать схему..
в UNIX изначально была оч. мудрая концепция инструментов - программ, которые должны выполнять одно конкретное действие и делать это хорошо
т.е. если есть архиватор, то он только архивирует и делает это хорошо(!), а склеивает перед этим в один кусок папку со вложениями другая программа и тоже делает это хорошо(!)...
и наоборот, сначала архиватор разархивирует, а потом склейщик разрезает на файлы и раскладывает по папкам....
так и тут - если сдвигаем, то только сдвигаем.... если регистр памяти, то только регистр... а не всё в одну кучу....
поэтом программы на компах и разбухают - что в них заложено много того чего они в принципе реально не делают

т.е. если мне надо будет ТОЛЬКО сдвигать вправо, у меня эта функция несёт с собой ещё килограмм жира в виде регистра и реверса...

а потом разработчики ПР будут думать как увеличить память и стек, что бы схемы "с жирком" влазили в "узкие врата"...

rovki
08.05.2011, 18:52
При использовании логических элементов они автоматически становятся булевыми или целочисленными (хорошо) ,но если сделать макрос многовходового логического элемента,например 3ИЛИ,то они уже не работают с целочисленными автоматически (плохо),может можно что нибудь сделать в будущих версиях.?Или придется создавать аналогичные макросы ,но только целочисленные.

anowice
09.05.2011, 01:14
Что-то SEL не работает так как описано в документации

rovki
09.05.2011, 07:53
В документации ошибка ,при управлении о -на выходе V2,при управлении1,на выходе V3.

Евгений Сергеевич
10.05.2011, 15:50
исправили в руководстве версия 5

rovki
10.05.2011, 18:26
Предложение - О всех принципиальных) изменениях в РЭ извещать пользователей(через сайт или форум) в момент внесения очередного изменения ,не важно кто ошибку нашел,разработчики или пользователи ,потому как версии появляются не часто и зачем ,например мне новая версия если там только запятые исправлены .Можно очень коротко информировать ,что внесены такие то изменения туда то,тогда то и всем будет хорошо
,тем более их немного.

rovki
12.05.2011, 15:16
Вопрос-можно ли теоретически реализовать в овен лоджик(или специальной программе) при работающем ПР считывание текущего состояние входов\выходов ПР?Как дополнительная опция ,при подключенном кабеле связи к ПК и отображение их в окне проекта или отдельном окне(без симуляции проекта).

МаратММ
12.05.2011, 20:41
Здравствуйте!
Добавили кнопки отменить, восстановить - это хорошо.
Добавить бы еще контекст - удалить линию связи.

rovki
12.05.2011, 21:26
Здравствуйте!
Добавили кнопки отменить, восстановить - это хорошо.
Добавить бы еще контекст - удалить линию связи.

Не понятно ,выделил линию или кучу их и удалил ,все это было всегда.Или я чета не понял?:confused:?зачем какой то контекст?все что выделили то и удаляйте (отменяйте,восстанавливайте)

Евстигнеев Максим
12.05.2011, 21:30
Здравствуйте!
Добавили кнопки отменить, восстановить - это хорошо.
Добавить бы еще контекст - удалить линию связи.

Удаление связи - при выделенной связи (группы связей) нажимаем кнопку "Del" на клавиатуре.

Евстигнеев Максим
12.05.2011, 21:33
Вопрос-можно ли теоретически реализовать в овен лоджик(или специальной программе) при работающем ПР считывание текущего состояние входов\выходов ПР?Как дополнительная опция ,при подключенном кабеле связи к ПК и отображение их в окне проекта или отдельном окне(без симуляции проекта).

Можно.
А с какой целью интересуетесь?

rovki
12.05.2011, 21:47
так нужна такая прога
1.для дистанционного контроля состояния входов \выходов ПР на ПК
2.тестирования входов выходов в работе через Пк (не по индикаторам),то есть очень хочется знать как программа ПР воспринимает входной сигнал и какие формирует выходные в режиме онлайн.
3.Некоторые хотят иметь устройство ввода\вывода дискретной информации в ПК(с интеллектом),Чем Пр не устройство ввода\вывода для ПК ?РАзвяска с датчиками есть,необходимый интеллект и сервис есть,а остальное на ПК -сбор,обработка информации ....(режим осциллографирования на ПК в реальном времени,с памятью) и многое другое.....
Хотябы маленький драйверочик
Дополнительный сервис и расширение областей применения ПР
Хоть какой то внешний(штатный) канал связи (на сом порт,USB) ,а там можно и несколько ПР на ПК ,если кому надо (через разные порта ПК) ....

Евстигнеев Максим
12.05.2011, 22:25
Выйдет ПР-МИ10, через него по протоколу ModBus будут доступны все эти функции.

rovki
12.05.2011, 22:44
Выйдет ПР-МИ10, через него по протоколу ModBus будут доступны все эти функции.

Максим ,ПР-МИ10 это дополнительное устройство ,которого ждут многие пользователи ,но это для других задач ,там где есть ПЛК или панели,ну не буду же я покупать Плк для контроля состояния входов выходов Пр ,или если я хочу реализовать задачу верхнего уровня на ПК.Это не противопоставление ,это дополнение ,расширение областей применения,расширение функциональных возможностей ПР с минимумом затрат ,а программу (драйвер- готов покупать да же).Я за альтернативные варианты ,пользователь будет рублем голосовать за разные варианты .Всегда лучше иметь несколько вариантов ,чем один ,да же кажущийся лучшим(но не для всех).Вот например http://www.owen.ru/forum/showpost.php?p=61114&postcount=1
Может кто нибудь еще выскажется по данному вопросу?

Рак
13.05.2011, 09:57
так нужна такая прога
1.для дистанционного контроля состояния входов \выходов ПР на ПК
2.тестирования входов выходов в работе через Пк (не по индикаторам),то есть очень хочется знать как программа ПР воспринимает входной сигнал и какие формирует выходные в режиме онлайн.
3.Некоторые хотят иметь устройство ввода\вывода дискретной информации в ПК(с интеллектом),Чем Пр не устройство ввода\вывода для ПК ?РАзвяска с датчиками есть,необходимый интеллект и сервис есть,а остальное на ПК -сбор,обработка информации ....(режим осциллографирования на ПК в реальном времени,с памятью) и многое другое.....
Хотябы маленький драйверочик
Дополнительный сервис и расширение областей применения ПР
Хоть какой то внешний(штатный) канал связи (на сом порт,USB) ,а там можно и несколько ПР на ПК ,если кому надо (через разные порта ПК) ....
Поддерживаю, можно сделать отдельную программу, где можно было бы подписать имена входов и выходов для оператора, ему, то весь проект видеть не обязательно.

rovki
13.05.2011, 21:06
Аналоги ПР110 конечно хороши ,но упускать случай сделать лучше ,чем у них не стоит,чего бы это не касалось .Пример-овен лоджик .И если будет реализован еще выше описанный сервис ,то они могут отдыхать (какое то время).

rovki
14.05.2011, 12:01
Поддерживаю, можно сделать отдельную программу, где можно было бы подписать имена входов и выходов для оператора, ему, то весь проект видеть не обязательно.

Типа этого,но в среде овен лоджик.можно даже ввести блок комментарии входа\выхода с условием ,если 0 ,то цвет такой то ,если единица ,то цвет такой то.Сколько нужно входов выходов ,столько и условных блоков комментариев ставишь и на ПК видишь реальную картинку состояния входов \выходов ПР .Чем не микро скада:)