|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
|
Опции темы | Поиск в этой теме |
20.12.2006, 13:02 | #1 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Обмениваемся своими макросами
Складывайте сюда макросы, которыми решили поделиться
Не забываем о существовании "заводской" библиотеки макросов! PS. Уважаемые клиенты. Все представленные макросы никакого отношения к фирме Segnetics не имеют и никак не тестировались нашими специалистами. Не нужно нам задавать вопросы по их работе. Задавайте эти вопросы авторам макросов. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 17.07.2018 в 18:10 |
25.07.2007, 12:55 | #2 |
Новичок
Регистрация: Jun 2007
Адрес: Рязань
Сообщения: 29
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Библиотека макросов
Макрос показывает строки с состояниями устройств. (меняет по кругу)
Есть возможность внеочередного показа строки устройства, состояние которого изменилось. Но работает криво. Уже всю голову сломал. Может какие идеи появятся? |
31.10.2008, 11:27 | #3 |
Новичок
Регистрация: May 2008
Адрес: Санкт-Петербург
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Генерация псевдо-случайных величин
Макрос генерирует последовательность псевдо-случчайных нормальнораспределенных величин.
Имеет три входа: u0 - числовой вход, нулевой член последовательности [0,65535], ^Next - по фронту сигнала осуществляется расчет значения очередного члена последовательности от предыдущего значения, ^Reset - по фронту сигнала генератор расчитывает значение очередного члена последовательности от значения u0. Имеет один числовой выход Out со значением очередного члена последовательности. Практически потребность в макросе может возникать при тестировании некоторых решений. |
05.11.2008, 11:37 | #4 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Переключатель на N положений
Комментарии внутри макроса.
Переключатель энергонезависимый, НО ресурс EEPROM бережет. Запоминает текущее положение переключателя после истечения тайм-аута, который индицируется на экране прогресс-баром. |
06.04.2009, 17:29 | #5 |
Новичок
Регистрация: Jan 2008
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Макрос аварий и сообщений
Макрос для работы с журналом
Можно вводить 6 различных сообщений и 30 разных аварий + звонок Сообщение или авария всегда запишутся в память, даже если появились одновлеменно. Возможно расширение количества аварий N_av - номер аварии (к макросу журнал) Готов (от макроса журнал) |
03.11.2009, 11:59 | #6 |
Новичок
Регистрация: Sep 2009
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: МАКРОС АВР НАСОСОВ
Макрос управления спаркой насосов. Смотрит за перепадом давления и минимальным давлением на входе.
|
03.11.2009, 12:04 | #7 |
Новичок
Регистрация: Sep 2009
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Упраление одним насосом
Следит за давлением на входе и за перепадом давления. авария перепад давления запоминается.
http://shrelec.narod.ru/RMK/pump.msl |
03.11.2009, 12:07 | #8 |
Новичок
Регистрация: Sep 2009
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Постраничный вывод значений
Постраничный вывод значения. У меня организован для вывода значений датчиков. Листание - клавиша вниз.
|
11.11.2009, 17:29 | #9 |
Новичок
Регистрация: Sep 2009
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Управление двумя котлами
Управление двумя котлами
при поступлении команды пуск, запускается один котел, с него поступает сигнал работа, если он не снимается в течении времени Т, то считаем, что мощности одного котла не хватает (у нас неттемпературы обратной воды для анализа, и в работу включается второй котел. Аварии котлов не запоминаем. Входы pusk - команда запуска pumpready1 - готовность котлового насоса 1 (если нет, то на входе поставьте 1) pumpready2 - готовность котлового насоса 2 (если нет, то на входе поставьте 1) av_pump1 - авария насоса 1 (например макрос pump, если не путаю, я через "или" еще подавал сигнал "сухой ход") av_pump2 - авария насоса 2 gor1 - горелка 1 в работу gor2 - горелка 2 в работу av_gor1 - ав.горелки 1 av_gor2 - ав.горелки 2 klick - импульс смены рабочего котла time - (тики) время поистечении которого елси котел не согрелся (не пропал сигнал работа, учитывайте особенности своего котла, может работать не корректно, ) то врубаем оба котла tdelay - задержка выключения котловых насосов оба в работу - дёт сигнал на включение на обе горелки сразу (например полезно в режиме наладки да и вообще, если катавасии с чередованием не нужно, а нужно тупо врубать в работу оба котла) Выходы gor1 - горелка 1 в работе gor2 - горелка 2 в работе av_gor1 - ав.горелки 1 av_gor2 - ав.горелки 2 pusk_pump1 - пуск насоса котла1 pusk_pump2 - пуск насоса котла2 Насосы выключаются с задержкой. Выход этого макроса я посылал на макрос pump (выложен ранее) |
11.11.2009, 17:55 | #10 |
Новичок
Регистрация: Sep 2009
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
график температуры
График температуры (tграф=f(tнар)
Прямая Y=kx+a Входы T1 при -20 на улице Т2 при +15 на улице Тstreet - воздух на улице Выход Tgraf И хочу сказать спасибо, всем выложившим свои макросыя. Я первый раз столкнулся с программированием, и если бы не ваши наработки, то возился бы я очень и очень долго. Они помогли понять и освоить некоторые приемы. Самое сложное оказалось не заставить систему работать, а организовать более менее нормальное общение контроллера с человеком )) Последний раз редактировалось 01zzz, 11.11.2009 в 18:10 |
06.04.2011, 11:46 | #11 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Многофункциональная лампа
Что-то давно здесь никто ничем новеньким не делился
Предлагаю всеобщему вниманию макрос индикации аварии и двух типов тревог на единственной лампочке. При аварии лампа горит постоянно. При тревоге 1 периодически однократно вспыхивает. При тревоге 2 - двухкратно, При обеих тревогах - трехкратно. Можно сделать, чтобы лампа моргала четыре-пять-шесть-... раз, но глаз это уже плохо воспринимает. __________________ Автомат АК - самый распространенный преобразователь стека в очередь |
29.06.2011, 03:47 | #12 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Состояние входов/выходов
Макрос меню состояния входов/выходов Пикселя.
|
12.08.2011, 09:42 | #13 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Alternative F3
И еще раз входы/выходы Пикселя.
Альтернативная замена "конструкторскому" меню, вызываемому по F3 для Пикселя. (Живет в блоке "Основной экран" под именем "%") Показывает состояние входов/выходов. Не тестировал вообще, нет возможности пока. Переделан из родного конструкторского с минимальными изменениями, так что должен работать, надеюсь. Буду благодарен, если кто-то проверит и отпишется. |
28.05.2013, 14:49 | #14 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Защита входных modbus-переменных
В дополнение темы "Управление пикселем через интернет".
Чтобы кто попало по известному IP-адресу не изменял уставки в контроллере, они блокируются кодом доступа. Код-запрос постоянно меняется, код-ответ вычисляется клиентским приложением как полином запроса. Для кулхацкеров защита более чем достаточная. В прицепе: - проект SMLogix для Пикселя; - экспортированная из SMLogix карта modbus-переменных проекта; - файл конфигурации для Lectus OPC/DDE сервера; - демо-клиент на основе таблички Excel. Для наглядности полином рассчитывается и в Лектусе в составной переменной Code_calc, и в Экселе на листе "Вычисления". Пользуйтесь на здоровье... __________________ Автомат АК - самый распространенный преобразователь стека в очередь |
19.11.2013, 15:48 | #15 |
Member
Регистрация: Mar 2013
Адрес: Оренбургская обл.
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Обмениваемся макросами
Всё просто. Управление подсветкой дисплея 2G. |
19.11.2013, 16:34 | #16 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Обмениваемся макросами
У вас так сделано, что после активирования внешнего запуска подсветка никогда не погаснет.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 30.03.2015 в 10:57 |
19.11.2013, 20:21 | #17 |
Senior Member
Регистрация: Mar 2008
Адрес: Екатеринбург
Сообщения: 494
Благодарил(а): 50 раз(а)
Поблагодарили:
14 раз(а) в 13 сообщениях
|
Ответ: Обмениваемся макросами
|
20.11.2013, 14:18 | #18 |
Senior Member
Регистрация: Nov 2008
Адрес: Алтайский край
Сообщения: 136
Благодарил(а): 2 раз(а)
Поблагодарили:
7 раз(а) в 7 сообщениях
|
Кусочно-линейная функция
Еще один график, на четыре точки, можно урезать до линейного (выкинуть блок выбора диапазона).
|
06.12.2013, 13:49 | #19 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Обмениваемся макросами
Макрос - копия макроса "2->^1" который нахдится внутри макроса SCADA(IN). Позволяет организовать штатый режим запуска и останова в дистанционном режиме, если надо удалить макрос SCADA(IN) а возможность запуска по интерфейсу в "дистанционном" режиме оставить. Актуально для тех, кто оптимизирует программу для заталкивания её в 12-ый пиксель (к примеру мне пришлось это делать потому, что пиксель был мастером для панели, и программа не входила в контроллер).
Последний раз редактировалось AlexMan, 06.12.2013 в 14:09 |
04.02.2014, 12:04 | #20 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Макрос аварий и сообщений
Макрос для работы с журналом.
Генерирует 96 номеров сообщений при появлении аварий с 1 по 96. Генерирует 96 номеров сообщений при снятии аварий со 101 по 196 (+100 к номеру аварии) При одновременном появлении аварий и одновременном пропадании других обрабатываются последовательно все события. Сначала появившиеся аварии, затем снятые аварии. Все паузы и порядок работы сохранены от заводского. Любое событие (появление, снятие аварии) обрабатывается за один такт. Количество тактов на все события, пришедшие одновременно = N*2 (с учетом обязательной паузы с выдачей 0 после события). Занимает 55 блоков. Можно расширить. Каждые 32 аварии + 15 блоков. Не работает на PIXEL12 и SMH2010. При желании можно переделать Протестирован не долгое время, поэтому при ошибках просьба сообщить. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
04.02.2014, 16:41 | #21 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Обмениваемся макросами
Работа с unix_time
unix_time - запаковка текущего времени контроллера в юникс время. 11 блоков unix_to_curr_time - распаковка юникс времени. 53 блока Недостаток - при переходе с декабря на январь месяц и день недели пересчитываются 12 тактов. Тщательно не тестировал, но в работе давно. Ошибок пока не выявлено. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
05.02.2014, 23:54 | #22 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Кусочно-линейная функция
Кусочно-линейные функции на 10 и 20 участков.
Размер 21 блок. Выполняется за 1 такт. Все то же, только добавлен блок выбора диапазона Поскольку использованы недокументированные возможности контроллеров (открытые в конструкторе ИТП), блоки запаролены. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
08.02.2014, 12:42 | #23 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Обмениваемся макросами
Определяет текущий порядковый номер оборудования в зависимости от наработки, т.е. сортировка.
Оборудование с наибольшей наработкой получает наименьший текущий порядковый номер. Из оборудования с одинаковой наработкой наименьший текущий порядковый номер получает оборудование с наименьшим станционным номером. Сортировка пузырьковая. Реализация других методов сортировки на FBD при количестве менее 6 бессмысленна. Сортировка производится как правило не чаще 1 раза в сутки, поэтому время сортировки 10 или 40 циклов до выдачи результата не имеет значения. Напротив размер кода значение имеет. Недостатки - при включении питания выдает неправильный результат и требуется первичная сортировка через время инициализации контроллера. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
Благодарность от: |
22.03.2014, 22:00 | #24 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Обмениваемся макросами
Работа с защитами.
Введение, выведение защит. Проверка защит на работающем, на остановленном оборудовании. Описание внутри. Все открыто, можно переделать под себя. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
10.04.2014, 00:13 | #25 | |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Обмениваемся макросами
Цитата:
Может быть, на каких-то других интервалах тоже. Выкладываю свой аналогичный макрос. Ошибочных вычислений вроде нет, надо еще проверять. Вычисление даты производится за 1 такт. 42 блока. Выполняется раза в 1,5 быстрее. ДатыВремя и таймштампы проверял вот по этому онлайн-конвертеру: http://www.cy-pr.com/tools/time/ |
|
11.04.2014, 23:35 | #26 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Обмениваемся макросами
Цитата:
Мне надо было искать по MJD или Julian day. http://en.wikipedia.org/wiki/Julian_day __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... Последний раз редактировалось ujin, 12.04.2014 в 00:01 |
|
15.04.2014, 01:01 | #27 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Обмениваемся макросами
Подсчет количества бит в 16 (32) разрядном числе.
В макросе журнал есть один существенный недостаток - не видно активные аварии. Приходится постоянно сбрасывать журнал, что нежелательно. Подсчет количества активных сообщений поможет в данном вопросе. Источник http://www.rsdn.ru/forum/alg/269194.flat __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
15.04.2014, 10:32 | #28 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Обмениваемся макросами
Цитата:
Что касается о нежелательности сброса при ПНР, то память контроллера гарантированно выдержит около 30 тысяч таких сбросов. Поэтому наличие проблемы несколько преувеличено. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.04.2014, 14:58 | #29 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Обмениваемся макросами
Цитата:
Нежелательно это несколько преувеличено? Наоборот более чем корректно. Скоро подготовлю (вернее оптимизирую) решение по отображению активных аварий. Обещаю выложить. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|
15.04.2014, 15:27 | #30 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Обмениваемся макросами
Цитата:
При ПНР история не актуальна. А при эксплуатации это единичные аварии. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|