|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
25.01.2016, 15:11 | #241 |
Новичок
Регистрация: Jan 2016
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Добрый день, господа!
Очень стыдно задавать такой вопрос, но я уже всю голову сломал. Почему у пикселя на неподключенных цифровых входах логическая единица, а при подаче +24В получается логический ноль? Джампик гальванической развязки снят, питание от постоянки 24 вольта, на EXT подключен минус. |
25.01.2016, 15:21 | #242 |
Senior Member
Регистрация: Dec 2011
Сообщения: 765
Благодарил(а): 1 раз(а)
Поблагодарили:
11 раз(а) в 11 сообщениях
|
Ответ: FBD чайникам
Это невозможно понять. Это надо запомнить. Воспринимайте это как аксиому. Менять все равно не будут.
__________________ Нет абсолютно бездарных людей. Каждый бездарен в своей области. |
25.01.2016, 15:29 | #243 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
У 2G/2Gi, кстати, входы аппаратно работают аналогично SMH2010. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
25.01.2016, 15:31 | #244 |
Senior Member
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: FBD чайникам
__________________ RTFM |
25.01.2016, 15:46 | #245 |
Новичок
Регистрация: Jan 2016
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Получается, это слово есть даже в моем исходном вопросе. Но выше объяснили. Всем большое спасибо за оперативность!
Еще вопрос: почему нельзя использовать Spdelay на задержку включения/отключения? Чем грозит применение этого блока, к примеру, на задержку сброса RS-триггера? |
25.01.2016, 15:56 | #246 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Ответ есть в справке на этот блок.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
03.02.2016, 16:05 | #247 |
Senior Member
Регистрация: Jun 2015
Сообщения: 567
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: FBD чайникам
дайте пожалуйста пример простейшего энергонезависимого счетчика импульсов.
надо чтобы данные со входа примерно раз в минуту сохранялись в энергонезависимой памяти, с выводом на экран и возможностью сброса. примерно то же, что счетчик моточасов, но считать не время, а число импульсов. |
03.02.2016, 16:32 | #248 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
Память только не убейте энергонезависимую. На два месяца её хватит всего. Подробности в справке для блоков ARRAY/EEPROM. ----------------- Полностью алгоритм чуть сложнее. Сброс - это мультиплексором отключаете от блока памяти счётчик и подаёте ноль, дёргая при этом запись. "Вспоминать" результат счёта не нужно, достаточно добавлять значение, которое насчитал счётчик, к значению с выхода блока памяти. Ну и при каждой записи обнулять счётчик. ----------------- Но это всё "лобовые" решения. Чтобы сделать всё правильно, нужно вычислить обоснованный интервал сохранения и исходя из этого уже выбирать правильный алгоритм решения вашей задачи. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.02.2016, 16:47 | #249 |
Senior Member
Регистрация: Jun 2015
Сообщения: 567
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: FBD чайникам
Арсений, это оно?
|
03.02.2016, 17:19 | #250 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
04.02.2016, 09:57 | #251 |
Senior Member
Регистрация: Jun 2015
Сообщения: 567
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: FBD чайникам
спасибо. еще вопросик, по входам МС - CNTR и CRNT - так подключаются? общий вид схемы правильный?
Последний раз редактировалось Arsie, 25.03.2022 в 15:58 |
04.02.2016, 12:07 | #252 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
Ну и писать не раз в минуту, а раз в минут 10 хотя бы. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
04.02.2016, 14:17 | #253 |
Senior Member
Регистрация: Jun 2015
Сообщения: 567
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: FBD чайникам
большое человеческое спасибо
|
03.04.2016, 10:12 | #254 |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Здравствуйте! Имеется контроллер 2Gi и задача раз в сутки распознавать наступление периода регенерации фильтров. Время начала и конца процесса регенерации задается из меню. Желательно отслеживать процесс с точностью до секунды.
Я не придумал ничего лучше, чем переводить реальное время в кол-во секунд, прошедших с начала суток и сравнивать это число со временем начала и окончания процесса, переведя их в секунды тем же образом. В принципе, в таком варианте макрос работает, но меня не покидает мысль что есть решение элегантнее. Еще переживаю по поводу того, как контроллер переварит все эти операции с long на каждом тике. Вот хочу спросить, зря я беспокоюсь или все же стоит облегчить ему задачу, например, сохраняя кол-во секунд начала и конца процесса в EEPROM и сравнивая их с реальным временем, а не вычисляя их каждые 100мс? Или можно как-то иначе производить вычисления конкретно в этом макросе хотя бы каждый 10-й тик? Вложение 3237 Последний раз редактировалось Arsie, 25.03.2022 в 15:59 |
03.04.2016, 21:01 | #255 | |
Senior Member
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 279
Благодарил(а): 4 раз(а)
Поблагодарили:
16 раз(а) в 15 сообщениях
|
Ответ: FBD чайникам
Цитата:
|
|
04.04.2016, 09:02 | #256 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
Что же касается сравнения секунд - это самое алгоритмически элегантное решение. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
04.04.2016, 10:24 | #257 |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Интересный вариант! Уж точно проще моего. Я пока что побаиваюсь использовать EEPROM (кроме как из SMArt'а), вдруг ненароком память замучаю. Вот если бы была какая-то индикация того, что "программист" слишком часто пишет что-то в ячейку, это все бы упростило.
Понятно, спасибо! |
04.04.2016, 16:34 | #258 |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Не отходя от кассы спрошу еще вопросик. Делаю в SMArt'е экран с настройками, но не стандартный, в котором есть опция записывать значения по выходу из экрана, а свой, в котором редактируются уставки (время) в формате ЧЧ:ММ:СС. Так вот, если пользователь начнет вводить время на этом экране, то оно сразу будет передаваться в программу, что очень нежелательно. Теперь вот думаю, как передавать уставки из экрана только по выходу из него. Придумал пока что вот так, как на скриншоте. Сомневаюсь в работоспособности такой схемы, будет ли импульс FirstTime приходить одновременно с готовностью памяти? Мб я вообще все не так делаю. Что можете посоветовать для решения проблемы? При этом нужно еще не забывать чтобы уставки передавались и при первом старте программы, когда юзер еще ничего не настроил.
Вложение 3242 Последний раз редактировалось Arsie, 25.03.2022 в 15:59 |
04.04.2016, 16:38 | #259 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Используйте сигнал "Экран активен" и через инвертор запрещайте регистру передавать данные на выход.
Ваша схема работоспособна только после первой загрузки программы. Далее уставка будет равна нулю до входа в этот экран. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
04.04.2016, 16:45 | #260 | |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Цитата:
Ответ.png P.S. Это был сверхбыстрый ответ. Я только успел обновить страницу! |
|
04.04.2016, 16:49 | #261 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
PS. Потому как вопрос задан вами корректно) В нём содержалось и что нужно сделать (задача) и как вы это делали (возможное решение) и что нужно получить (цель задачи). Т.е. за вас ничего додумывать не пришлось, что вы там имели или не имели ввиду. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
04.04.2016, 16:51 | #262 |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
|
15.04.2016, 15:32 | #263 |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Снова здравствуйте! Опять SMH2Gi и задача сохранения информации об общем расходе в ПЗУ вместе с отображением среднего расхода за некоторый период. Подойдет ли прикрепленный проект для решения данной задачи? За основу взял схему ув. andre и добавил сброс по окончанию счета. Особенно интересует будет ли корректно рисовать график. График задумывался для отображения средних расходов за период записи.
Вложение 3266 Вложение 3267 Последний раз редактировалось Arsie, 25.03.2022 в 16:00 |
15.04.2016, 15:53 | #264 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
По поводу рисованию - этот тот случай, когда надо ставить натурный эксперимент. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.04.2016, 16:07 | #265 |
Новичок
Регистрация: Apr 2016
Сообщения: 27
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Спасибо, понял!
Чтоб два раза не вставать задам еще вопрос. Сразу скажу что он может показаться слишком размытым. Хотелось бы реализовать доступ к списку средних расходов (позиций на 100) прямо с экрана контроллера. Т.е. сохраняем значения с CNTR в тот же блок EEPROM(long), например и затем считываем их и отображаем на экране в виде списка [дата--ср. расход за этот день]. В SMArt'e готового элемента, позволяющего организовать прокрутку стрелками подобного списка я не нашел. Придется делать это ручками, ровно как и перебор адресов в массиве? Есть ли какие-нибудь примеры где можно посмотреть как правильно организовать считывание из блоков сохранения? |
18.04.2016, 09:09 | #266 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: FBD чайникам
Цитата:
Либо проще - листайте экранами, если контроллер 2Gi. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
05.07.2016, 01:14 | #267 |
Новичок
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: FBD чайникам
Подскажите пожалуйста, как сделать проверку, что значение rb изменилось?
Управляю переключением экранов одновременно из scada и c контроллера. RIASE к сожалению работает только на появление переменной. Или как записать в переменную rb1 значением из FBD? Вложение 3393 Последний раз редактировалось Arsie, 25.03.2022 в 16:00 |
05.07.2016, 01:27 | #268 |
Member
Регистрация: Mar 2007
Сообщения: 39
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: FBD чайникам
Можно таким вот образом
Последний раз редактировалось Arsie, 25.03.2022 в 16:01 |
05.07.2016, 08:14 | #269 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 174
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: FBD чайникам
Последний раз редактировалось Arsie, 25.03.2022 в 16:01 |
05.07.2016, 11:40 | #270 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: FBD чайникам
осталось определить, который из способов быстрее обрабатывается
|