Вопрос новичка

Модератор: SaniOK

Re: Вопрос новичка

Сообщение M340 » 13 авг 2015, 07:13

san писал(а):...такую функцию плёвое дело на програмном уровне реализовать.

Да реализовал конечно, но не приятно. Почти сотня входов, разбросанных по всем модулям (всего 512 входов) требующих обработки "дребезга". Каждому два таймера пропиши... И два IF-а... А так поставил бы в настройках входа - "время перехода в 1" - 2 сек., "время перехода в 0" - 2 сек. и все, "дребезг" датчиков уровня и подпора побежден.
M340
 
Сообщений: 23
Зарегистрирован: 29 янв 2015, 11:11
Откуда: Кировоград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Вопрос новичка

Сообщение san » 13 авг 2015, 07:56

M340 писал(а):Да реализовал конечно, но не приятно. Почти сотня входов, разбросанных по всем модулям (всего 512 входов) требующих обработки "дребезга". Каждому два таймера пропиши... И два IF-а... А так поставил бы в настройках входа - "время перехода в 1" - 2 сек., "время перехода в 0" - 2 сек. и все, "дребезг" датчиков уровня и подпора побежден.

Я практикую подход, при котором есть отдельные секции для обработки входов и выходов ПЛК. То есть вся программа далее работает только с обработанными данными процесса. При этом создаю универсальные функциональные блоки как для обработки дискретных входов так и аналоговых входов, а также выходов. Функциональный блок разрабатывается один раз а далее используется во всех проектах. Он инкапсулирует все внутренности и не засоряет глобальне данные. Для дискретки всегда, независимо от типа канала, ФБ обеспечивает фильтрацию сигнала (защиту от дребезга контакта) а также может содержать доп функции, например диагностику канала. По большому счету сюда нужно еще много чего добавить, но это уже для расширенного управления (например управление+конфигурирования аларма, функция форсировния и т.д).
Если говорить о аналоговом канале, там вобще тьма-тьмущая обработок и настроек. Масштабирование и фильтрация - это минимум.
Я это к тому, что пользуясь функциональными блоками, все эти "количество таймеров" инкапсулируются внутри экзмепляра, и Вы просто о них забываете. Кроме того, можно обойтись без таймеров, используя переменную int и системные тики. Но это в том случае, если будете "экономить на спичках". А если учесть, что заказчик иногда хочет еще и канал настроить (например время фильтрации поменять), то аппаратная настройка модуля тут ни-ни :D .
Аватар пользователя
san
 
Сообщений: 883
Зарегистрирован: 05 мар 2012, 11:59
Откуда: Киев, Национальный университет пищевых технологий, каф.ИАСУ
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 21

Re: Вопрос новичка

Сообщение M340 » 13 авг 2015, 15:59

san, естественно я разбиваю на секции. Если пишешь SCADу по управлению элеватором на 200-300 приводов, в котором 100-150 маршрутов, то тут получается 20-30 секций. А для большого цеха и поболее. Тоже унифицирую по максимуму. А для PLC пишу только на ST, давняя привычка... Старые наработки - наше всё. Из них состоит 80% новой программы ))) И на новый контроллер переходим когда уже припекло. 300-е Siemens-ы уже лет 20 юзаем, а тот же Micro уже можно забыть, да и остальные шнайдеровские "старички" уже просто очень дороги.
M340
 
Сообщений: 23
Зарегистрирован: 29 янв 2015, 11:11
Откуда: Кировоград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Вопрос новичка

Сообщение san » 13 авг 2015, 16:04

Функциональные блоки пользователя (DFB) в ST используются так же как и в FBD или LD.
Аватар пользователя
san
 
Сообщений: 883
Зарегистрирован: 05 мар 2012, 11:59
Откуда: Киев, Национальный университет пищевых технологий, каф.ИАСУ
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 21

Re: Вопрос новичка

Сообщение МногоВопросов » 18 авг 2015, 10:19

Здравствуйте!Хотел спросить.Можно ли как нибудь разбить переменные по группам во вкладке Variables? И вообще как создавать группы переменных?
МногоВопросов
 
Сообщений: 102
Зарегистрирован: 21 апр 2015, 18:28
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Вопрос новичка

Сообщение МногоВопросов » 18 авг 2015, 15:46

И еще один вопрос.Как можно получить адрес переменной?
МногоВопросов
 
Сообщений: 102
Зарегистрирован: 21 апр 2015, 18:28
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Вопрос новичка

Сообщение san » 18 авг 2015, 21:09

МногоВопросов писал(а):Здравствуйте!Хотел спросить.Можно ли как нибудь разбить переменные по группам во вкладке Variables? И вообще как создавать группы переменных?

нет, группировать только с помощью фильтров
Аватар пользователя
san
 
Сообщений: 883
Зарегистрирован: 05 мар 2012, 11:59
Откуда: Киев, Национальный университет пищевых технологий, каф.ИАСУ
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 21

Re: Вопрос новичка

Сообщение san » 18 авг 2015, 21:10

МногоВопросов писал(а):И еще один вопрос.Как можно получить адрес переменной?

никак, адрес можно только назначить, например из диапазона %MW
Аватар пользователя
san
 
Сообщений: 883
Зарегистрирован: 05 мар 2012, 11:59
Откуда: Киев, Национальный университет пищевых технологий, каф.ИАСУ
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 21

Re: Вопрос новичка

Сообщение Fessar » 25 сен 2015, 09:45

Здравствуйте. Может знает кто, как можно сохранить значения переменных с адресами %MW не останавливая контроллер и не выставляя бит %SW96.0 в единичку, чтобы после холодного перезапуска эти значения сохранялись? Например, с верхнего уровня изменили уставку по адресу %MW100 с 10 на 30, далее, после нажатия Reset на блоке питания в %MW100 должно остаться число 30. Modicon М340. Галочка "Initialize %MWi on cold start" снята.
Fessar
 
Сообщений: 5
Зарегистрирован: 25 сен 2015, 09:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 1

Re: Вопрос новичка

Сообщение PLC support » 25 сен 2015, 10:33

Fessar писал(а):Здравствуйте. Может знает кто, как можно сохранить значения переменных с адресами %MW не останавливая контроллер и не выставляя бит %SW96.0 в единичку, чтобы после холодного перезапуска эти значения сохранялись? Например, с верхнего уровня изменили уставку по адресу %MW100 с 10 на 30, далее, после нажатия Reset на блоке питания в %MW100 должно остаться число 30. Modicon М340. Галочка "Initialize %MWi on cold start" снята.

Вы изменяете начальные значения (initial values), и хотите сохранить их, но при этом не включаете сохранение %SW96..странно.
Вы уж решитесь - хотите ли вы сохранить, или нет. Сохрание происходит по SW96 или через UnitPro в online режиме - другого способа не дано.
PLC support
 
Сообщений: 87
Зарегистрирован: 29 авг 2013, 16:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 1

Пред.След.

Вернуться в Высокоуровневые системы автоматизации - M340, M580, Premium, Quantum и Unity

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron