А почему разработчики молчат ??????????????????????Деление на ноль невозможно.png
А почему разработчики молчат ??????????????????????Деление на ноль невозможно.png
Последний раз редактировалось Алексеев; 14.02.2019 в 13:32.
А теперь внимательно смотрим, что на вход таймера мы записывали 100 секунд задержку .
Простите за иронию, да, действительно, запамятовал, что (видимо в силу специфики создания среды ОЛ и совместимости ее внутренних переменных)
если я использую для записи в секундный таймер запись в функциональный блок - то это пишу не секунды, а миллисекунды. Делал это не раз в предыдущих проектах , поняв методом "научного тыка" поборов данный парадокс. А чтобы такие как я не забывали, стоит данный факт как-то отметить в документации .
Стоит также отметить в документации, что даже если выбрать в качестве масштаба времени минуты, то все равно посредством записи в функциональный блок время задержки следует указывать в миллисекундах.
Проблема для стороннего персонала решается умножением на 1000 переменной, значение которой мы изменяем на экране ПР200 в случае секунд, ну и так далее.
вовсе не круто предъявлять претензию деля константу на константу, даже в сименсовских средах разработки такое есть, но только стоит делитель поменять на переменную, состояние которой не определено то компилятор и там пропускает такое действие, даже зная что при объявлениях по умолчанию присваивается ноль
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Это не претензия , а пожелание . Предупреждать разработчика в процессе симуляции о недопустимой операции .
Как например предупреждение о замедлении симуляции .Было бы не плохо.png
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Вот у Серёги Букашкина возник вопрос . Как себя будит вести программа в железе . Бесконечность . Или деление целочисленной переменной на ноль дает ноль хотя
должна дать бесконечность . А останавливать зачем . Только всплывающая подсказка . В таком то макросе произошла недопустимая операция .
Как подсказка .
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Думаю самый простой вариант перестраховаться, поставить ограничение, потому как, если в логике будет участвовать переменная вводимая с экрана, ни одна всплывающая подсказка не поможет, т.е. контролируем ввод с экрана, и(или) в логике. При этом больше стоит опасаться переполнения, как это было на макросах ДТС, введение ограничения, позволило решить проблему.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
если это для меня, то про всплывающие окна был сарказм. Что же касается ограничений, то во первых должны быть глобальные переменные границ диапазонов всех типов данных, чтоб можно было их использовать а не лезть в документацию вспоминаю какая там верхняя граница, например. Во вторых как с целочисленными быть, если деление на ноль это ноль, как его ограничивать. В третьих, в ОЛ нет условных переходов, поэтому если проверять делитель на равенство нулю, то что дальше, надо в DIV подставлять делитель, либо число его заменяющее, от этого логика может еще больше нарушиться чем есть сейчас без всяких надстроек
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран