|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
16.01.2014, 14:20 | #1 |
Senior Member
Регистрация: Dec 2013
Адрес: Краснодар
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Не понимаю, как работает схема
При включении питания на первом ^D-триггере появляется логическая единица почему ???
|
16.01.2014, 14:55 | #2 |
Новичок
Регистрация: Oct 2013
Сообщения: 14
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ошибка ^D-триггера
Осмелюсь предположить, что у вас проскакивает сигнал на вход ^. Значение температуры (наверняка проходит через ПИД-регулятор), дергается резко вверх, в связи с чем запоминается триггером, а потом выравнивается. Не судите строго, я новенький, могу глупость сказать.
|
16.01.2014, 15:45 | #3 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Ошибка ^D-триггера
Триггрер защёлкивается по событию Уставка больше или равна Температуре.
В представленной вами схеме на обоих входах нули. Ноль равен нулю, триггер защёлкивается. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
16.01.2014, 21:25 | #4 | |
Senior Member
Регистрация: Dec 2013
Адрес: Краснодар
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Ошибка ^D-триггера
Цитата:
Выкладываю полную схему... правда не оптимизированную... Уже есть планы, но нет времени. Ну не в этом суть, главное работает, но есть эта проблемка. Этот проблемный макрос находится в макросе "пастеризация"=>"контроль нагрева" Температура пастеризации 64 градуса, на момент включения темп 30-35 гр резких скачков нет... Может только с внутреннего источника контролера |
|
17.01.2014, 10:41 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Ошибка ^D-триггера
Я лишь повторю то, что написал: в момент включения контроллера выполняется уравнение "Температура">="Уставка".
В вашем случае всё банально. Вы не ждёте готовности памяти выдать уставку. Поэтому сразу после включения контроллера уставка равна нулю. 35 >= 0, всё работает правильно. Это описано в справке: Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
17.01.2014, 11:18 | #6 |
Senior Member
Регистрация: Dec 2013
Адрес: Краснодар
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Не понимаю, как работает схема
Семен-Семеныч!!!!!
Необходимо банально подождать какоето время и усё?!?! Или зашить макрос готовности |
17.01.2014, 12:14 | #7 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Не понимаю, как работает схема
Угумс.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
21.03.2014, 19:02 | #8 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
|
21.03.2014, 19:40 | #9 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили:
21 раз(а) в 21 сообщениях
|
Ответ: Не понимаю, как работает схема
|
22.03.2014, 17:59 | #10 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
|
22.03.2014, 15:24 | #11 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Не понимаю, как работает схема
Убрать NOT и триггер покажет факт окончания инициализации именно этой ячейки.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
22.03.2014, 18:00 | #12 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
|
23.03.2014, 14:05 | #13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Не понимаю, как работает схема
Конструкторские программы ведь как-то работают. А там именно задержка от объёма используемой памяти.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
14.10.2014, 19:57 | #14 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
|
15.10.2014, 10:02 | #15 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Не понимаю, как работает схема
Первая фраза вашего сообщения немного противоречит второй, а вторая, если понять её буквально, вообще не касается блоков памяти. Поэтому отвечу раздельно на первую и на вторую в двух частях. Всего три ответа.
Нет. Если вы таким прозрачным образом намекаете, что ваш алгоритм не успевает дождаться инициализации, то введите в программу сигнал готовности по примеру программ Конструктора. Можно даже банально отсчитать нужное время счётчиком CTU(16) и снять с него сигнал разрешения работы алгоритма. Переменным никогда ничего самостоятельно не присваивается, это может сделать только Modbus-мастер У блоков памяти есть выход готовности значения. Когда этот выход становится равен единице, вы можете использовать это значение в программе. Для простоты можете проверять этот флаг у самого последнего блока памяти, он все равно инициализируется в самом конце. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
15.10.2014, 19:15 | #16 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
|
17.11.2014, 19:11 | #17 | |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
Цитата:
Ещё вопрос, см. картинку 2, как поймать 1.#QNAN? |
|
18.11.2014, 10:38 | #18 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили:
655 раз(а) в 599 сообщениях
|
Ответ: Не понимаю, как работает схема
Цитата:
2) Ловить нужно ноль в делителе, а не qnan Ну и последнее - обе картинки, извините, пример неграмотного подхода. Сигнал готовности должен влиять на определяющий алгоритм, на его выходные данные. Например, в макросе расписания всё построено так, что нули на выходах ни к чему не приведут. В проекте Конструктора всё построено так, что аварии не фиксируются, а сами макросы вполне себе пробегают в первые пару секунд все 8 кругов ада. Ну и пусть пробегают. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.11.2014, 20:23 | #19 | |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Не понимаю, как работает схема
Цитата:
2)А кто написал вот это (см. картинку Деление)? Здесь инструкция по поиску qnan. Или уже исправили? Тогда откуда скачать обновлённую справку? 3)Приведите, пожалуйста, пример грамотного проекта, состоящего из одной ячейки памяти и задержки. Критерий грамотности - первое же (а равно и последующее) чтение из ячейки памяти должно возвращать не нуль, а то, что в ячейке этой записано. Почему я вцепился в задержку? Потому, что сейчас я вынужден каждую ячейку памяти обвязывать дополнительными блоками для предотвращения деления на нуль. Надеюсь обойтись одной задержкой на всю используемую память, но не представляю, куда засунуть эту задержку. |
|
24.03.2014, 19:07 | #20 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили:
21 раз(а) в 21 сообщениях
|
Ответ: Не понимаю, как работает схема
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SM CONNECT (Подробная инструкция в картинках как настроить) | alekseyeve | SMConnect & SMConfig | 230 | 27.03.2024 10:57 |
Как работает блок вычисления производной | Адский_Электрик | SMLogix | 2 | 31.07.2020 11:56 |
Как построить отказоустойчивую сеть SMconnect? | Bayk | SMConnect & SMConfig | 19 | 16.05.2020 14:31 |
Как работает дистанционный Пуск-стоп? | AlexSku | SMConstructor (теплопункты) | 8 | 02.04.2020 16:54 |
Контроллер работает при отключенном питании??? (решено) | Max2114 | Вопросы о Pixel | 9 | 13.05.2015 12:20 |