|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
12.08.2015, 22:24 | #1 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
C в FBD
Здравствуйте. Подскажите новичку в FBD как записать код?
unsigned int n=5; int main(void){if(n>0){n--;}} Если я правильно понимаю то блок представляет собой функцию вида: int f(unsigned int i){if(i>0){i--;}} или unsigned int n=5; int f(){if(n>0){n--;}} |
13.08.2015, 08:20 | #2 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: C в FBD
т.е. Вам надо выполнить какие-то действия в течении 5 циклов? Вы лучше опишите что хотите сделать...
|
13.08.2015, 10:40 | #3 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Мне нужно чтобы n раз выполнилось действие с интервалом dt.
|
13.08.2015, 13:57 | #4 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ответ: C в FBD
Два счетчика. Один на dt, второй на n.
|
13.08.2015, 17:53 | #5 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Так? |
13.08.2015, 18:34 | #6 |
Senior Member
Регистрация: Nov 2013
Адрес: Санкт-Петербург
Сообщения: 213
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Нет. У вас первый счётчик выдаст 1 на QU только один раз, после того как отсчитает n тиков. И после этого 2ой счётчик отсчитает ещё dt секунд и будет 1 на выходе Выход.
|
13.08.2015, 18:48 | #7 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Вот я и не пойму как сделать
|
13.08.2015, 19:00 | #8 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
А если так?
|
13.08.2015, 19:15 | #9 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Так? |
13.08.2015, 19:40 | #10 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Не так.
И вообще, условия задачи не расписаны. Какое мин и макс dt? Сколько мин и макс n? Пред загрузка и сброс при старте? Подробнее ! |
13.08.2015, 19:48 | #11 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Допустим 1<=dt<=60сек, 1=<n<=10. Я не пойму как измененную переменную в макросе снова загнать в макрос.
Могу на си написать. |
13.08.2015, 19:52 | #12 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
|
13.08.2015, 19:58 | #13 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
FBD блоки каждый цикл выполняются по порядку? Пусть при первом проходе на входе блока n=6. При его выполнении с n производятся математические операции и на выходе блока измененная n. При следующем цикле нужно измененную n подать на вход того же блока.
|
13.08.2015, 20:03 | #14 |
Senior Member
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Так подай с выхода на вход - и всё делов. В первом цикле вычисление - в следующем - вычисление с предыдущим итогом.
На жёлтую линию не обращать внимания. |
13.08.2015, 20:05 | #15 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Напишу, что нужно сделать. Нужно запустить насос, через 1 сек опросить датчик протока, если 0 запустить таймер на dt времени. Через dt времени повторить попытку сначала и так n раз пока на датчике протока 0.
|
13.08.2015, 20:16 | #16 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
Так можно делать, а то я думал нельзя |
13.08.2015, 20:53 | #17 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 791
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: C в FBD
Кто сказал нельзя? Просто значение на входе появится только на следующем тике. Об этом желтый цвет и говорит.
Странная задача однако. Защита от сухого хода с контрольными выстрелами? Одной секунды не маловато будет? |
13.08.2015, 21:05 | #18 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
А первый раз там будет 0?
|
13.08.2015, 21:44 | #19 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
ATS, 1 сек - это условно, хотя в моем случае 1 сек достаточно. Будет переменная.
|
13.08.2015, 22:09 | #20 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 791
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: C в FBD
|
14.08.2015, 08:35 | #21 |
Новичок
Регистрация: Aug 2015
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: C в FBD
ATS, если на реле протока 0 насос выключится.
|
14.08.2015, 23:33 | #22 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: C в FBD
Цитата:
Один счётчик, один блок AND и, может быть, один блок NOT. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|