Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2017, 13:31   #61
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Натурные испытания показали следующее.

Исходная позиция - стандартный проект приточки с водяным нагревом, голый 25-й пиксель без датчиков.

1. Вставлен макрос без циклов. Опрос 32 входа.
Тик без макроса 77-80мс, с макросом 88-90.
Время реакции выходов макроса на изменение входов около 6 секунд.

2. Вставлен макрос с циклами, те же 32 входа
Тик 115-117мс. Время реакции около 2 секунд.

Время засекал "на глазок", считая про себя примерно по секунде Тем не менее, разница слишком заметна.

В итоге получается, что с циклами вся программа отрабатывает в 3 раза быстрее. Причем получаем актуальные данные на выходе в том же цикле работы всей программы, в котором меняются входы, что может оказаться востребованным в некоторых ситуациях.

Буду весьма признателен, если кто-то предложит более быструю и не сильно более многоблочную реализацию.
ViS вне форума   Ответить с цитированием
Старый 20.08.2017, 15:13   #62
alex.vas
Senior Member
 
Аватара для alex.vas
 
Регистрация: Jul 2009
Сообщения: 249
Благодарил(а): 0 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Решил поделиться макросом "Соотношение топливо-воздух" работает по алгоритму минитерма 400.00 производство МЗТА. В данном макросе один корректирующий коэффициент.
Может кто делал с 4 точками как в Минитерм 400.04 поделитесь.
Вложения
Тип файла: msl Топливо-Воздух МЗТА.msl (18.0 Кбайт, 100 просмотров)
alex.vas вне форума   Ответить с цитированием
Старый 30.08.2017, 07:00   #63
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию

Универсальный PID-регулятор v4


Код:
Init start    - всегда равен 1, начальный сброс регулятора
Invers        - вход для инверсии регулятора. 0 = прямой регулятор, 1 = обратный.
In            - вход
Set           - Уставка
Dead Zone     - нейтральная зона, в которой ошибка всегда равно нулю или, что тоже самое, 
                уставка Set всегда равна значению входа In.
                При выходе In из этой зоны вверх, к значению уставки Set прибавляется значение DeadZone
                и, тоже самое, вниз, от значения уставки Set отнимается значение DeadZone

Pb[0...1000]  - коэффициент пропорциональности / 1000, множитель только перед пропорциональной 
                составляющей регулятора, кое-где в литературе его называют коэфф-м байпаса.

Pr[0...1000]  - коэффициент робастностсти / 1000, множитель перед всем ПИД-регулятором, 
                как в конструторском регуляторе, если задать Pb=1000, то Pr будет в точности выполнять 
                ту же самую функцию. Если Pr = 1000, то регулятор станет классической формы с несвязанными коэффициентами.
Pd[0...1000]  - коэффициент интегрирования дифференциала / 1000, множитель перед слагаемым что интегрируется вместе с ошибкой.
                при Pd = 0 регулятор имеет классическую форму. при Pd = 1000 интегрируется сумма ошибки и дифференциала
                в некоторых случаях применение этого  коэффициента позволяет улучшить переходную характеристику

I, сек        - интегральный коэффициент, постоянная времени интегрирования. 
                I=0 отключает и сбрасывает на SetCentr интеграл
D, сек        - дифференциальный коэффициент, постоянная времени дифференцирования

Out min       - минимум выхода PID регулятора, изменение сбрасывает интеграл к SetCentr[%PID]
Out max       - максимум выхода PID регулятора, изменение сбрасывает интеграл к SetCentr[%PID]

Reset         - вход центрирования интеграла, сброс интеграла к значению на входе SetCentr[%PID]
SetCentr[%PID]- значение центра регулятора в процентах от изменения выхода

Load          - вход загрузки в интеграл значения со входа PreSet[%PID]
PreSet[%PID]  - вход предустановки выхода PID регулятора в процентах от изменения выхода

**** изменение тика системы сбрасывает интеграл к SetCentr[%PID]

Out min и Out max можно задавать и положительными и отрицательными
например, 
Out min = -1000
Out max = +1000
SetCentr = 0
выход ПИД-регулятора начнёт работу с нуля и в зависимости от ошибки будет стремиться либо к +1000 либо к -1000
исправления
некорректно работала мертвая зона при включенной инверсии по входу
добавлена инверсия выхода
Вложения
Тип файла: msl PID v4-1.msl (96.7 Кбайт, 232 просмотров)


__________________
C уважением, LordN

Последний раз редактировалось Arsie, 02.12.2021 в 16:23
LordN вне форума   Ответить с цитированием
Старый 22.06.2018, 17:21   #64
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Что-то надоело каждый раз по макросам шариться и биты искать-смотреть, когда при допиле конструкторской программы приходится код CPU менять. А по сему вот - простенький макрос дешифратор-шифратор кода, и экселевский листик для оффлайна. Авось сгодится кому.

Команда CPU.msl
Код CPU.zip

P.S. Добавьте ж уже в разрешенные для зарузки расширения фйлов .xlsX, .docX и т.д.
ViS вне форума   Ответить с цитированием
Старый 14.08.2018, 00:13   #65
vitkursk
Новичок
 
Регистрация: Oct 2013
Сообщения: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию относительная влажность в абсолютную

может быть кому-то пригодится, от-30 до +30, точность около 0.1%
Вложения
Тип файла: msl пересчет влажности.msl (5.0 Кбайт, 87 просмотров)
vitkursk вне форума   Ответить с цитированием
Старый 15.08.2018, 17:37   #66
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Набор макросов для типов BOOL, INT, LONG и REAL для задания константных значений.

Вторая версия макросов имеет защиту от дурака и дополнительную функциональность.

Каждый макрос имеет простейшее содержимое, на основе блока MUX следующего вида:



На входе V задается значение, которое потом транслируется
потребителям.

Вход "dumb" (пустышка) может использоваться для
закольцовывания выхода, что бы сохранить
название именованной связи, пока она
не подключена к нужному входу или входам.

Так же, закользовывание позволяет гарантировать
сохранение названия связи, если она удаляется где-то
в схеме.


Так же, добавлен файл для тестирования макросов (const-test 2.0.0.psl) с содержимым:

Миниатюры
Нажмите на картинку для увеличения

Название:  const.png
Просмотров: 2868
Размер:  16.0 Кбайт   Нажмите на картинку для увеличения

Название:  const-test.png
Просмотров: 2882
Размер:  17.0 Кбайт  
Вложения
Тип файла: msl BOOLCONST 2.0.0.msl (3.1 Кбайт, 50 просмотров)
Тип файла: msl INTCONST 2.0.0.msl (3.1 Кбайт, 45 просмотров)
Тип файла: msl LONGCONST 2.0.0.msl (3.1 Кбайт, 47 просмотров)
Тип файла: msl REALCONST 2.0.0.msl (3.1 Кбайт, 49 просмотров)
Тип файла: psl const-test 2.0.0.psl (629.9 Кбайт, 53 просмотров)
Gel вне форума   Ответить с цитированием
Благодарность от:
Старый 17.08.2018, 16:57   #67
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Макросы для организации битовых сдвигов для 32-битных значений на основе блоков MUX:

"SHLN (32)" -- cдвиг на N бит влево;
"SHRN (32)" -- cдвиг на N бит вправо;

"SHL (32)" -- cдвиг на 1 бит влево;
"SHR (32)" -- cдвиг на 1 бит вправо.

Данная реализация, в отличие от макросов в теме "Библиотечка разработчика" работают гораздо быстрее.

Например, 10000 блоков старого макроса "SHL (32)" на SMH4 отработали более, чем за 900 мс. А моя версия из 10000 блоков отработала за 5 мс.

В приложенном архиве "shift.zip" так же находится проект для тестирования макросов "long-shift-test 1.0.0.psl".


Предупреждение от Арсения: данные макросы требуют большого количества памяти, их применение на контроллерах SMH2010, Pixel и SMH2G крайне не рекомендуется.
Вложения
Тип файла: zip shift.zip (42.4 Кбайт, 54 просмотров)

Последний раз редактировалось Arsie, 17.08.2018 в 18:22
Gel вне форума   Ответить с цитированием
Старый 04.09.2018, 19:43   #68
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Селектор 6-стабильный.

Селектор на 6 стабильных положений. Избавлен от недостатков триггера из библиотеки.
Имеет предустановку выходов, сброс, режим "зависания".
Нажмите на картинку для увеличения

Название:  Селектор.JPG
Просмотров: 253
Размер:  106.3 Кбайт
Вложения
Тип файла: msl Селектор 6-стабильный.msl (53.2 Кбайт, 102 просмотров)
ViS вне форума   Ответить с цитированием
Старый 05.09.2018, 10:05   #69
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Селектор 6-стабильный.

Цитата
Сообщение от ViS Посмотреть сообщение
Селектор на 6 стабильных положений. Избавлен от недостатков триггера из библиотеки.
Имеет предустановку выходов, сброс, режим "зависания".
Вложение 5437
Честно говоря, в тексте есть неувязки. Если ^S одновременны, то это подразумевает, что они перешли из 0 в 1 одновременно. Кто главнее?

Оправдание, что вы написали для уровней, не подходит, т.к. входы обозначены как "фронтальные". Понятия "уровень" для них отсуствует.

Также хотелось бы от вас получить информацию о недостатках, которые присущи стандартному 6-стабильному триггеру. Причём это должны быть не недостатки вида "не стирает носки и не носит пива", т.е. он должен плохо работать именно в расчётных для себя режимах.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 06.09.2018, 10:53   #70
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Макрос LAZY: "Ленивое" изменение логического сигнала.

Ленивое изменение логического сигнала с порогом срабатывания Threshold. Для смены значения выходов входные значения должны продержаться без изменений указанное количество циклов.

Выход Z принимает значение 1, если сигнал V держится в 0 достаточно долго. При этом, выход NZ устанавливается в 0.

Выход NZ принимает значение 1, если сигнал V держится в 1 достаточно долго. При этом, выход Z устанавливается в 0.

Оба выхода Z и NZ одновременно принимают значение 0, если сигнал Err держится достаточно долго в 1. Если Err равно 1, то смена значения V не влияет на то, как быстро обнулятся Z и NZ.

Значение Threshold может быть 0, это означает, что реакция выхода будет без задержки, а наличие сигнала Err сразу сбросит Z и NZ в 0.

Значение Threshold, равное N означает, что значение должно продержаться N циклов (переходов между циклами) без изменения.


Вложения
Тип файла: msl LAZY 1.0.0.msl (11.0 Кбайт, 44 просмотров)
Gel вне форума   Ответить с цитированием
Старый 06.09.2018, 13:01   #71
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Селектор 6-стабильный.

Цитата:
Сообщение от Arsie Посмотреть сообщение
Честно говоря, в тексте есть неувязки. Если ^S одновременны, то это подразумевает, что они перешли из 0 в 1 одновременно. Кто главнее?

Оправдание, что вы написали для уровней, не подходит, т.к. входы обозначены как "фронтальные". Понятия "уровень" для них отсуствует.

Также хотелось бы от вас получить информацию о недостатках, которые присущи стандартному 6-стабильному триггеру. Причём это должны быть не недостатки вида "не стирает носки и не носит пива", т.е. он должен плохо работать именно в расчётных для себя режимах.
Есть некоторая неопределенность в описании, соглашусь, пожалуй. Смотря как читать

Одновременно активны и одновременно перешли из 0 в 1 - суть вещи разные. Перейти могут в разное время и оставаться активными сколь угодно долго. Так как входы именно, что "фронтальные", то вход, единожды став активными и оставаясь таковым, не влияет на работу остальных входов.

При одновременном переходе из 0 в 1 - папой будет вход с меньшим или с большим номером, на выбор. Вот тут мой косяк - выложил не ту версию, в которой это еще было упущено.

Недостатком библиотечного является то, что у него как раз входы работают как "уровневые", а не "фронтальные" - если на одном уже висит 1 и приходит еще одна на другой, то все выходы обнуляются и селектор становится не работающим, пока не обнулишь все входы. Соответственно те же нули на выходах получим, если произойдет одновременный переход из 0 в 1 на 2+ входах. То есть, при данном развитии событий селектор просто не рабочий. (Вроде не пиво с носками )

Позже сегодня выложу обновленную версию V2, в которой можно будет задавать приоритетность каждого входа при одновременном переходе из 0 в 1. Постараюсь в описании быть поточнее.
ViS вне форума   Ответить с цитированием
Старый 06.09.2018, 13:41   #72
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Селектор 6-стабильный.

Цитата
Сообщение от ViS Посмотреть сообщение
Одновременно активны и одновременно перешли из 0 в 1 - суть вещи разные.
Для фронтов и спадов активность - это момент перехода. Остальное - пассив.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 06.09.2018, 13:54   #73
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

ОК.
Сформулируем так - активна 1 на входе, а не сам вход Так как вход таки фронтальный, то при активной 1 на нем, он после отработки активности по фронту остается в благости и неге переходит в пассивный режим и не влияет на работу остальных.

Нажмите на картинку для увеличения

Название:  1606398_680318708698083_794952526_o.jpg
Просмотров: 139
Размер:  63.2 Кбайт
ViS вне форума   Ответить с цитированием
Старый 06.09.2018, 14:01   #74
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от ViS Посмотреть сообщение
ОК.
Сформулируем так - активна 1 на входе, а не сам вход Так как вход таки фронтальный, то при активной 1 на нем, он после отработки активности по фронту остается в благости и неге переходит в пассивный режим и не влияет на работу остальных.
Можно сколько угодно показывать всякие картинки и за какие угодно уши притягивать объяснения, но активность сигнала - это когда сигнал в активной форме.

Активных форм для логического сигнала четыре: фронт, единица, спад и ноль. В любом сочетании.

У вашего сигнала активное состояние - фронт. Все остальные формы игнорируются, т.е. пассивны.

Повторю ещё раз: понятие "единица" и "активен" - не тождественны. Активным может быть и ноль.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 06.09.2018, 16:06   #75
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Можно сколько угодно показывать всякие картинки и за какие угодно уши притягивать объяснения, но активность сигнала - это когда сигнал в активной форме.

Активных форм для логического сигнала четыре: фронт, единица, спад и ноль. В любом сочетании.

У вашего сигнала активное состояние - фронт. Все остальные формы игнорируются, т.е. пассивны.

Повторю ещё раз: понятие "единица" и "активен" - не тождественны. Активным может быть и ноль.
У входа активное состояние - момент получения фронта сигнала, а не у сигнала активное состояние фронт.

Активность сигнала и активность входа - суть разные вещи. И никто меня не переубедит в обратном.

Да, активным сигналом может быть и единица, и ноль. Кто б спорил. Именно поэтому я стараюсь писать не "активный сигнал", а "активная 1", может где и оговорился, тогда каюсь.

[Конец лирического отступления]
***

Две версии селектора.
v.2 - с настраиваемыми приоритетами входов на случай одновременного получения фронта несколькими входами.(см. описание)
v.1 - облегченная версия. Весит в два раза меньше блоков и работает быстрее. По приоритетности только вход Mode. Определяет, вход с наибольшим или с наименьшим номером будет назначен папой.

Макросы не совместимы с Pixel 12xx!!!

Описание
Код:
                                     
                                    -----------------------------------------------------------
                                    |  ВНИМАНИЕ!!! Макрос не будет работать на Pixel 12xx !!! |
                                    -----------------------------------------------------------
***************************************************************************************************************************


                                            Селектор на 6 стабильных положений V2


 Входы :

    Enable   -           Разрешает работу макроса.

    ^Set     -           Предустановка. Устанавливает активным выход, номер которого указан на входе Set. 

    Set      -           Задает номер выхода для установки по входу ^Set. При задании на входе числа, выходящего
                         из диапазона 0 ~ 6 активируется выход Set_Error.

    Reset    -           Сброс всех выходов в состояние "0".
                 
    ^S1-^S6  -           Информационные входы.
        
    Приоритет ^S1-^S6    Задание приоритетности входов
    
    Mode     -           Режим приоритетности.
    

 Выходы :

    Set_Error-    Активен при ошибочном значении на входе Set. Допустимый диапазон 0 ~ 6

    № 0+     -    Номер активного выхода с нумерацией от 0.

    № 1+     -    Номер активного выхода с нумерацией от 1.

    Q1-Q6    -    Информационные выходы.

-------------------------------------------------------------------------------------------------------------

    При 0 на входе Enable макрос отключается.Внутренние блоки программой не обрабатываются. Значения выходов 
    "замораживаются" в текущем состоянии. 

    Вход ^Set при "0" на входе Set осуществляет сброс всех выходов в "0" в текущем такте программы.
    Со следующего такта обработка входов продолжается независимо от наличия "1" на данном входе.

    Для входа Set подразумевается "человеческая" нумерация для установки выходов. То есть для устанвки активным
    выхода Q1 и надо задавать на этом входе 1, а не 0. 

    Вход Reset "держит" на всех выходах "0", пока активен. 

    Информационные входы ^S1-^S6 работают по фронту сигнала.

    Входы приоритета ^S1-^S6 определяют "старшинство" при одновременном получении фронта на нескольких входах.
    Приоритет задается положительным числом больше 0. Чем больше число, тем выше приоритет входа. Например для входа
    S1 установлен приоритет 3, а для входа 4 - 24, при одновременном получении фронта активируется выход Q4.
    В том случае, если для входов задан одинаковый приоритет, то номер активируемого выхода определяяется входом Mode.
    Если на входе Mode установлен 0, то будет активирован выход с наименьшим номером, при 1 - с наибольшим.
    При задании приоритеа входа равным 0, вход исключается из обработки. Если в этот момент активирорван соответствующий
    ему выход, то он сохранит свое состояние, до активации другого входа. Блокировка работы входа также распространяется
    На вход предустановки Set - выход с номером, соответствующим входу с приоритетом 0, активирован не будет. Возможность
    Сбросить все выходы в 0 через Set -  остается.
Вложения
Тип файла: msl Селектор 6-стабильный С приоритетом(Closed).msl (108.2 Кбайт, 36 просмотров)
Тип файла: msl Селектор 6-стабильный(Closed).msl (57.2 Кбайт, 30 просмотров)
ViS вне форума   Ответить с цитированием
Старый 21.11.2018, 10:04   #76
voltel
Senior Member
 
Регистрация: Aug 2018
Адрес: Екатеринбург
Сообщения: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Обмениваемся своими макросами

В теме уже выкладывали макрос управления подсветкой 2Gi. Но в ответе на пост было написано что подсветка включится и не будет выключаться.

Написал свой простенький макрос. После загрузки контроллера подсветка выключена. Включается нажатием любой клавиши. По умолчанию таймаут 30 сек.
Вложения
Тип файла: msl Управление подсветкой 2Gi v0.1.msl (10.5 Кбайт, 57 просмотров)
voltel вне форума   Ответить с цитированием
Старый 21.11.2018, 10:45   #77
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от voltel Посмотреть сообщение
В теме уже выкладывали макрос управления подсветкой 2Gi. Но в ответе на пост было написано что подсветка включится и не будет выключаться.

Написал свой простенький макрос. После загрузки контроллера подсветка выключена. Включается нажатием любой клавиши. По умолчанию таймаут 30 сек.
Нужно было делэй офф использовать и сэкономить на триггере


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 21.11.2018, 15:23   #78
voltel
Senior Member
 
Регистрация: Aug 2018
Адрес: Екатеринбург
Сообщения: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нужно было делэй офф использовать и сэкономить на триггере
Для 2gi это экономия на спичках) Я учту, это первая версия макроса, со временем будет дополняться функциями. Уже сейчас понимаю что при включении лучше зажигать подсветку.
voltel вне форума   Ответить с цитированием
Старый 21.11.2018, 15:24   #79
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от voltel Посмотреть сообщение
Для 2gi это экономия на спичках) Я учту, это первая версия макроса, со временем будет дополняться функциями. Уже сейчас понимаю что при включении лучше зажигать подсветку.
Да, это обязательно. Поэтому наилучшая схема - это счётчик CTU(16), считающий тайм-аут и досчитывая, гасящий экран.

Сброс счётчика рекомендую делать по нажатиям и по событиям, которые отображаются на экране.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 13.01.2019, 10:18   #80
PA3JlUBHOE
Member
 
Регистрация: Jun 2012
Адрес: СПб
Сообщения: 77
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Маленький макрос на МИН-МАКС до 32-х чисел

Цитата
Сообщение от ViS Посмотреть сообщение
Макрос определяет минимальное и максимальное число из заданных на входах.
Сравнивает от 2 до 32 чисел. Весит всего 25 блоков.
Независимо от количества опрашиваемых входов, макрос выполняется в один тик основной программы, то есть данные на выходе обновляются в том же цикле основной программы, в котором изменяются входы.
При отключении полностью исключается из обработки программы, не расходуя вхолостую ресурс процессора.
А как вы отключаете выполнение макроса?
PA3JlUBHOE вне форума   Ответить с цитированием
Старый 13.01.2019, 10:30   #81
PA3JlUBHOE
Member
 
Регистрация: Jun 2012
Адрес: СПб
Сообщения: 77
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Данный макрос позволяет использовать векторный привод (трехпозиционный, 3х-позиционный, 3-points) вместо аналогового. Векторный обретает все преимущества аналогового привода.
При каждом запуске программы привод однократно калибруется в минимальное или максимальное положение (направление выбирается внутри макроса).
Когда входной сигнал <3% или >97%, то привод доворачивается в крайнее положение по 3 секунды раз в 5 минут.
Для исключения дергания привода вперед-назад введен гистерезис 1%.
Вложения
Тип файла: msl analog - vector 1.4.msl (25.8 Кбайт, 129 просмотров)
PA3JlUBHOE вне форума   Ответить с цитированием
Старый 13.01.2019, 22:01   #82
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Макрос измерения расхода воздуха

Макрос измеряет расход в круглом или прямоугольном (квадратном) воздуховоде.
Вложения
Тип файла: msl ВЫЧИСЛЕНИЕ РАСХОДА.msl (14.4 Кбайт, 130 просмотров)
razerface вне форума   Ответить с цитированием
Старый 14.01.2019, 10:51   #83
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от PA3JlUBHOE Посмотреть сообщение
Данный макрос позволяет использовать векторный привод (трехпозиционный, 3х-позиционный, 3-points) вместо аналогового. Векторный обретает все преимущества аналогового привода.
При каждом запуске программы привод однократно калибруется в минимальное или максимальное положение (направление выбирается внутри макроса).
Когда входной сигнал <3% или >97%, то привод доворачивается в крайнее положение по 3 секунды раз в 5 минут.
Для исключения дергания привода вперед-назад введен гистерезис 1%.
Я в 2007 году делал подобный, испытания показали полную несостоятельность идеи в ИТП и плохие результаты в HVAC.

Быть может, вы поделитесь долговременными испытаниями, показывающими хорошие результаты?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 14.01.2019, 21:49   #84
PA3JlUBHOE
Member
 
Регистрация: Jun 2012
Адрес: СПб
Сообщения: 77
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Я в 2007 году делал подобный, испытания показали полную несостоятельность идеи в ИТП и плохие результаты в HVAC.

Быть может, вы поделитесь долговременными испытаниями, показывающими хорошие результаты?

Когда пройдут долговременные испытания - поделюсь. Пока неделю полёт нормальный)
PA3JlUBHOE вне форума   Ответить с цитированием
Старый 15.05.2019, 12:48   #85
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

не поделится ли кто-нибудь макросом MOD т.е. остаток от деления?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 15.05.2019, 13:52   #86
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от LordN Посмотреть сообщение
не поделится ли кто-нибудь макросом MOD т.е. остаток от деления?
Соберите на нужный вам тип данных


Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.png
Просмотров: 2313
Размер:  5.6 Кбайт  


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Старый 16.05.2019, 08:39   #87
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

int MOD(A,B).msl
long MOD(A,B).msl

A%B
Вложения
Тип файла: msl int MOD(A,B).msl (4.4 Кбайт, 64 просмотров)
Тип файла: msl long MOD(A,B).msl (4.5 Кбайт, 49 просмотров)


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Благодарность от:
Старый 23.05.2019, 13:25   #88
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Макрос для ТРИМа. Подбор цветовой гаммы.
Длинное нажатие на ячейке забирает цвет с образца, двойное возвращает.
Миниатюры
Нажмите на картинку для увеличения

Название:  RGB.jpg
Просмотров: 192
Размер:  312.5 Кбайт  
Вложения
Тип файла: rar RGB.rar (260.1 Кбайт, 53 просмотров)

Последний раз редактировалось Ilya J., 24.05.2019 в 16:41 Причина: Макрос создан в версии 3.30.0176, в более ранних версиях он не откроется.
boxmen77 вне форума   Ответить с цитированием
Старый 26.05.2019, 16:32   #89
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Макрос предназначен для управления элементом "текст"
в SMArt. Осуществляет отображение и управление
до 34 заранее предустановленных строк. При этом при
появлении от 2-х до 6-и сигналов ошибок, происходит
поочередное их отображение (по порядку от младшего
бита к старшему) с заранее определенной паузой.
Вложения
Тип файла: psl управление текстом.psl (294.5 Кбайт, 94 просмотров)
RomanIst вне форума   Ответить с цитированием
Старый 27.05.2019, 12:51   #90
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
У меня без проблем сохранился, а сообщение мешает, не закрывается?
Откатился на 3.30.168, нормально сохранился. В 3.30.176 висела бесконечно открытие смарт. Может у меня что не так.
Кстати объем почему то уменьшился почти вдвое.
Вложения
Тип файла: rar RGB 3.28.rar (146.3 Кбайт, 41 просмотров)
boxmen77 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли применять пустые макросы (нельзя) Gel Вопросы о программировании 35 08.04.2020 10:42
Размышления на тему групповых триггеров boxmen77 Вопросы о программировании 19 15.01.2020 17:39
Фильтрация аналогового сигнала СВМ Вопросы о программировании 15 02.12.2015 20:28
Модуль Z-4RTD2 от SENECA serg-el Примеры работы по Modbus 3 04.06.2015 18:11
Ремонт Aout своими силами (решено) alexprophet Вопросы о Pixel 10 31.10.2013 13:23


Часовой пояс GMT +4, время: 00:02.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023