Анатолий, не могли бы вы описать последовательность действий, чтобы мы могли повторить?
Анатолий, не могли бы вы описать последовательность действий, чтобы мы могли повторить?
во 2 примере нужно скачать пример умная теплица http://owen.ru/forum/misc.php?do=showattachments&t=7023 и вкл.симулятор.
Ура нашел ошибку в проекте и помог симулятор (косвенно) просто не было связи .Это нужно подчеркнуть если нет связи выхода то все что перед ним не будет иметь окошек входа выхода значений.Спасибо ,Максим мы пришли к этому не зависимо .Не знал свойств симулятора.Это одно из его возможностей -проверка всех связей -надо подчеркнуть в описании на будушее.
Последний раз редактировалось rovki; 23.02.2011 в 00:19.
Да, точнее не "перед ним", а "за ним". Ведь компилятор анализирует схемы от выходов к входам. И всё, что "висит в воздухе", считает лишним. И ни только не симулирует, но и не записывает в прибор.
Как еще один пример из этой области - если на схеме отобразить "миллион" элементов без привязки к какому-либо выходу, то затраты памяти не будут увеличены. Как только всю эту "гирлянду" подсоединить к выходу произойдет анализ затраченной памяти, стека и т.п.
Добрый день!
Благодаря симулятору - начал осваивать ПР ))
и сразу (в первые 12 часов) нашел ошибку.... или даже две))
конечно возможно это "фича", а не "глюк", тогда прошу разъяснить...
1) суть первой проблемы, при переходе в симулятор, до старта,
не устанавливается из константы нижний контакт левого верхнего SEL-екта
(пришлось RеSеT делать не RTRIGом, а TPшкой)
2) не умножает 65536 и выше на 1
(если поменять соответствующую, большую константу, у меня оно долно быть 1М (2в 20ой степени))
поразмышляю вслух над вышесказанным мной же....
1) при циклических связях не совсем очевидно "место стыка" итераций
похоже у меня оно попадает куда то в "логическую середину цикла"
2) ща проверил - 65535 умножет на 1, а вот 65536 нет - похоже что всётаки глюк
(не нашел в доке ограничение в 16 бит на операнд умножения, только предупреждено что результат не может быть 32 бита, а если бы операнды были не больше 16 бит, то результат никогда не превысит 32 бита)
Как "великий оптимизатор"
(точнее просто вспомнив опыт программирования на ассемблере i8086 и прямо в НЕХ кодах i8080)
"забил" на умножение и деление, и представил умножение на 3/4, как вычитание из оригинала одну-четвёртую, а последнюю, в свою очередь получив сдвигом оригинала на 2 бита вправо....
а ещё.... "переписал" "цикл" соблюдая строгую очерёдность (слева на право) всех компонентов получил нижеследующий результат))
(но это уже почти оффтоп.... так что простите уж, если что....)
Последний раз редактировалось AI!; 23.02.2011 в 02:21.
балУюсь дальше....
в последней схеме пытаюсь назначить константе значение 2147483648 - не даёт...
значит тип DoubleInteger, а не DoubleWord (т.е. со знаком, т.к. 2147483647 даёт)
немного подумав присваиваю константе значение "-2147483648"
идем дальше....
после сдвига SHR число остаётся быть отрицательным,
значить на самом деле мы имеем дело не с SHR, а с SAR ("сдивиг со знаком")
PS пишу всё это, т.к. на мой взгляд, поведение эмулятора отличается от того что описано в мануале...
и ещё - соответственно, возможно, поведение эмулятора отличается от реального поведения ПР110.
(прошу разработчиков уточнить сей вопрос, для большей ясности)
Последний раз редактировалось AI!; 23.02.2011 в 08:46. Причина: добавил "PS"
вот еще более простой пример при переходе в режим симуляции ,до запуска отладки элемент Sel неправильно отображает информацию на входе ,если эти элементы имеют общий вход и связаны по выходу.После старта все отображается правильно