|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
|
Опции темы | Поиск в этой теме |
04.11.2015, 02:03 | #1 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ограничения TimeToTick
Во всяких описаниях уставок, связанных со временам, для программ, создаваемых конструктором, встречается диапазон задания времени от 0 до 9999. Обычно в программе в этом месте стоит TimeToTick. Сегодня заметил, что максимальное значение, которое он нормально переваривает на входе - 3276, дальше выдает на выходе отрицательное число. Случайно выяснил, разбираясь почему ПИД шимовский не работает. У меня там изначально 3600 было задано.
|
04.11.2015, 21:30 | #2 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
Т.к. этот блок (и остальные в SMLogix) использует signed int, то при превышении 32767 число становится отрицательным. Т.е. больше 32767 и меньше -32768 на входе в блоки использующие int не задать.
И вообще, в связи с этим при расчетах int лучше не использовать, а использовать long или real. А насчет внутренней структуры TimeToTick - это к Арсению. Но мне кажется именно в этом дело. __________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
04.11.2015, 23:40 | #3 | ||
Senior Member
Регистрация: Aug 2013
Сообщения: 3 784
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
Цитата:
Независимо от внутренней структуры блока выходная величина равна входной умноженной на количество тиков в секунду. А раз она INT, то диапазон входных значений будет сужаться с уменьшением времени тика и за этим стоит следить. А то ведь можно и на неоднократные переполнения попасть. Для случая ViS на входе 9100 - выход ошибочный 25464 Последний раз редактировалось ATS, 04.11.2015 в 23:56 |
||
05.11.2015, 00:48 | #4 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
Так может уважаемый Арсений Евдокимович пнёт программистов что-бы ввели TimeToTick long ?
__________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
05.11.2015, 08:16 | #5 | |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ответ: Ограничения TimeToTick
Все всё правильно сказали про Int и иже с ним
Основной посыл сообщения был в другом. Видимо, надо было конкретизировать сразу. В документации к конструкторским программам, в описании уставок, указаывается диапазон 0-9999. Это не корректно. Что б 9999 "пролезло" без ошибок, тик должен быть более 300мс. Программы, создаваемые конструктором, имеют меньший существенно. Соответственно, люди, знакомые с программированием очень поверхностно и пользующиеся конструктором без влезания в "дебри", легко получат неработающую программу просто задав уставку выше порога, определяемого тиком. Я вот, например, маленько глубже, чем поверхносто с этим знаком, но как-то вообще не обращал на это внимания, ибо всегда до этого хвватало, а тут понадобилось задать час - вот и заметил. Итого - в документации о зависимости допустимого диапазона от тика - ни слова в конструкторских программах диапазон допустимого вводимого значения подобной уставки не корректируется под тик обработки этой ошибки в программе нет Цитата:
|
|
05.11.2015, 09:11 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
06.11.2015, 10:31 | #8 | |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
И будет всем счастье __________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
|
06.11.2015, 17:34 | #9 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ответ: Ограничения TimeToTick
|
09.11.2015, 12:57 | #10 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Один только вопрос: зачем?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
09.11.2015, 14:00 | #11 | |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
__________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
|
09.11.2015, 15:53 | #12 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Вы написали про убирание блоков. Дважды.
Я дважды спросил "зачем?". Когда я смогу получить ответ на поставленный мною вопрос? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
13.11.2015, 19:00 | #13 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
"Соответственно, люди, знакомые с программированием очень поверхностно и пользующиеся конструктором без влезания в "дебри", легко получат неработающую программу просто задав уставку выше порога, определяемого тиком."
Интересно, сколько можно повторять одно и тоже? Пока рука бойца колоть не устанет? __________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
16.11.2015, 09:28 | #14 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
Моя рука колоть не устанет: почему вы решили, что замена блока расчёта с интовым выходом на макрос с лонговым выходом решит проблему? А что касается ограничения - только ненормальный человек может задать время контроля перепада вентилятора большим, чем 3000 секунд. Собственно, за почти 10 лет существования Конструктора этого ни разу не случалось. Даже у топикстартера время ШИМ превысило 3000 лишь случайно - это значение лежит далеко за гранью разумного для ШИМ-генераторов. Так стоит ли рвать меха и глотку на очередную несуществующую проблему? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
16.11.2015, 12:20 | #15 | |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
Бумажки (хоть и электронные) ведь проще изменить ? __________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
|
16.11.2015, 13:15 | #16 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Как только вы ответите на трижды заданный мною вопрос.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
18.11.2015, 02:19 | #17 | ||
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
Время реакции объекта на воздействие исчисляется в часах. Теплоноситель подается соленоидом, которым не стоит щелкать каждую минуту. Период ШИМ около часа и минимальный импульс в 10-15 минут не имеют под собой никаких случайностей. "Случайно выяснил, разбираясь почему..." NOT EQUAL "превысило 3000 лишь случайно" В любом случае - [дубль 4, кажется ?] Цитата:
Давайте в аннотации к лекарству напишем, что допустимая дозировка раз в 50 больше реально допустимой? Вы наглотаесь, загнетесь, и будете свято верить, что это - нормально? А ведь те же, вид сбоку. Последний раз редактировалось ViS, 18.11.2015 в 02:29 |
||
18.11.2015, 03:11 | #18 | |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
И однозначно такой же ненормальный разработал часть программы, создаваемой конструктором, отвечающую за управление дренажным насосом, и, судя по всему, он же написал в документации соответствующий раздел. Tick.JPG Так что у нас произойдет с этим насосом, если все сделаем по вашей документации, не отходя от нее ни на йоту? Последний раз редактировалось ViS, 18.11.2015 в 03:24 |
|
18.11.2015, 09:21 | #19 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
Первая причина - он не сломается в любом случае. Что бы не случилось, какой бы баг не произошёл. Вторая причина - ничего страшного, что на выходе таймтутика будет -20536, оно же 32767+(32768-20536)+1 = 45000 в представлении десятичного беззнакового целого. Счётчик досчитает до этого значения ровно через 3600 секунд, оно же 45000 тиков при времени тика, равным 80 мсек. Цитата из справки по счётчикам: В SMLogix десятичные числа отображаются со знаком (в так называемом "дополнительном коде"). Т.е. числа отображаются в диапазоне от -32768 до 32767. Если ввести на вход DI число "64000", то в SMLogix будет отображено число "-1536". Тем не менее, счётчик всё равно будет считать от 0 до 64000, т.к. он не учитывает выводимый на экран знак. Если вам некомфортно наблюдать счёт отрицательных чисел, можно переключить отображение входа DI и выхода DO в режим отображения шеснадцатиричных чисел. ------------- Если честно, то я расстроен обсуждением в этой ветке. Самые активные и технические прозорливые пользователи и те ни пальцем не пошевелили провести двухминутный опыт, которой бы показал, что всё работает как нужно. Только многодневные броски грудью на ветряные мельницы в лучших традициях славного дона Кихота И ладно бы только в этой ветке... __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.11.2015, 12:47 | #20 | |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
Либо я плохо ищу? __________________ Всё, что нельзя выразить в цифрах — это не наука, это — мнение. |
|
18.11.2015, 12:51 | #21 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ограничения TimeToTick
Цитата:
http://dl.segnetics.com/WebHelp/SMLo...eg_shl_ctu.htm __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|