Segnetics

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.04.2014, 18:40   #31
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Обмениваемся макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Зачем журнал-то стирать при этом? Появляется надпись "* сброс аварии" и затем список активных аварий.

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


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 15.04.2014, 21:20   #32
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся макросами

Цитата:
Сообщение от ujin Посмотреть сообщение
Вы говорите о своей эксплуатации и пусконаладке я о своей.
Последнее время не всегда пусконаладка имеет исходные программы. А эксплуатация не всегда стремится все подробно рассказать, что случилось.
Именно о такой и говорю.

Хотя и не буду спорить, что полноценный журнал всегда круче


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 16.04.2014, 01:00   #33
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Обмениваемся макросами

Макрос для удобного (если надо изменить на несколько единиц или десятые доли) изменения числовых уставок.
Выкладываю сразу в программе-примере. Редактор.psl
Нажимаем на кнопку Enter (OK) уставка переводится в режим редактирования, что отображается миганием.
Нажимаем на кнопки Up или Down значение уставки начинает увеличиваться или уменьшаться.
Если нажимать кратковременно, уставка меняется на 0.1 (макрос меняет значение на 1, но в данном примере на входе и выходе производятся преобразования real*10 -> int -> real/10).
Если удерживать, значение меняется с нарастающей скоростью.
После установления нужного значения жмем Enter (OK), что-бы сохранить значение в память.
Если мы хотим выйти из режима редактирования без сохранения, жмем Esc.
В примере только одна уставка, но макрос создавался с расчетом на возможность мультиплексирования.

Видео демонстрации: http://youtu.be/Q3s1LxdL1GE
младшой вне форума   Ответить с цитированием
Старый 15.05.2014, 21:08   #34
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Обмениваемся макросами

Наброски по текущим авариям.
32 Аварии. Состояния 1 Tripped Alarm (ON), 2 Reset Alarm (OFF), 3 Acknowledged Alarm. Подтверждение кнопкой Enter.
Есть наработки по отображению времени появления, сброса.
Так же есть подходы по увеличению количества. Пока времени на это нет.
Вложения
Тип файла: psl Аварии_текущие_работает.psl (433.8 Кбайт, 280 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 01.09.2014, 15:57   #35
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Очередная версия "таймштампа".
Не имеет ничего общего с Unix-Time: макрос просто сохраняет полученные от GetData и GetRealTime данный в одну переменную (long) - соответственно, для вычислений формат непригоден, но блок CMP(long) работает с ним абсолютно корректно.

скопировать не смогу: домашний комп сдох, с рабочего низ-зя - поэтому пока ссылкой:
http://forum.segnetics.com/showpost....9&postcount=19
Макрос быстрый, но жадный до памяти - на Pixel-12 применять с осторожностью...
ailcat вне форума   Ответить с цитированием
Старый 28.03.2015, 09:06   #36
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 741
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

ШИМ-модулятор.

Традиционные ШИМ-модуляторы имеют ряд врожденных особенностей:
1. Разрешающая способность ШИМ пропорциональна периоду ШИМ. При характерном времени цикла контроллера 0,1 с и разрешающей способности ШИМ 0,1% период ШИМ будет 100 с.
2. Реально в процессе модуляции участвует только одно значение переменной за весь период ШИМ. При разрешающей способности ШИМ 0,1% в процессе модуляции участвует 1 значение переменной из 1000.

Все это накладывает некоторые ограничения на область применения ШИМ: переменная не должна значительно меняться в течении периода ШИМ. Если ограничить изменение переменной в течении периода ШИМ 1%, то при разрешающей способности ШИМ 0,1% и характерном времени цикла контроллера 0,1 с характерное время процесса составит 10000 с или 2 ч 46 мин.
Попытка применить ШИМ для более быстротекущих процессов требует уменьшить разрешающую способность ШИМ или работать по среднему значению переменной за предыдущий период ШИМ. Первый вариант снижает точность регулирования, второй вносит задержку на период ШИМ. Но кардинально ни тот ни другой вариант ни чего не меняет.

Существует специальный вид ШИМ модуляторов, быстродействие которых ограничено только циклом работы контроллера. Это так называемый ШИМ Бразенхейма. В процессе модуляции участвуют все значения переменной. Минимальное характерное время процесса более 10-15 тиков контроллера. Пример такого модулятора во вложении. Входной сигнал 0-1000, разрешение - 8 бит или около 0,4%.
Вложения
Тип файла: msl Бразенхейм ШИМ v4_lite_8.msl (4.7 Кбайт, 313 просмотров)


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 29.03.2015, 09:28   #37
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от tvf Посмотреть сообщение
ШИМ-модулятор.

Традиционные ШИМ-модуляторы имеют ряд врожденных особенностей:
1. Разрешающая способность ШИМ пропорциональна периоду ШИМ. При характерном времени цикла контроллера 0,1 с и разрешающей способности ШИМ 0,1% период ШИМ будет 100 с.
2. Реально в процессе модуляции участвует только одно значение переменной за весь период ШИМ. При разрешающей способности ШИМ 0,1% в процессе модуляции участвует 1 значение переменной из 1000.

Все это накладывает некоторые ограничения на область применения ШИМ: переменная не должна значительно меняться в течении периода ШИМ. Если ограничить изменение переменной в течении периода ШИМ 1%, то при разрешающей способности ШИМ 0,1% и характерном времени цикла контроллера 0,1 с характерное время процесса составит 10000 с или 2 ч 46 мин.
Попытка применить ШИМ для более быстротекущих процессов требует уменьшить разрешающую способность ШИМ или работать по среднему значению переменной за предыдущий период ШИМ. Первый вариант снижает точность регулирования, второй вносит задержку на период ШИМ. Но кардинально ни тот ни другой вариант ни чего не меняет.

Существует специальный вид ШИМ модуляторов, быстродействие которых ограничено только циклом работы контроллера. Это так называемый ШИМ Бразенхейма. В процессе модуляции участвуют все значения переменной. Минимальное характерное время процесса более 10-15 тиков контроллера. Пример такого модулятора во вложении. Входной сигнал 0-1000, разрешение - 8 бит или около 0,4%.
Код:
	#ifdef BrezenhemEnable
	//****************	BEGIN тест Брезенхема	***************
	#define	CARRY_BIT 0b01000000 // выбор разрядности метода
			bitPeriod = !bitPeriod;
			if(bitPeriod)
			{
				static	unsigned char	accum;	//, tmp;
				accum += speedFan; // вход той же разрядности
				if(accum & CARRY_BIT)
					bitTriacEnable = 1;
				else
					bitTriacEnable = 0;
				accum &= ~CARRY_BIT;
				ccpVal = MaxCCP_Val;
			}
	//****************	END тест Брезенхема	***************
	#endif
		//		эта конструкция работает!!!!!!!!


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 17.08.2015, 15:16   #38
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Генератор импульсов. n импульсов за dt секунд.
Импульсы равномерно распределены по времени. Если запросить много импульсов за мало времени, то из-за округления деления dt/n может накапливаться ошибка, и тогда в конце цикла работы макроса будет период молчания (например - тик 100, n=40, dt=10 - 21 такт в конце молчание).
Наилучший вариант - когда dt/n без остатка.
Вложения
Тип файла: msl генератор импульсов.msl (25.6 Кбайт, 227 просмотров)
serg-el вне форума   Ответить с цитированием
Старый 27.09.2015, 15:30   #39
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Легко масштабируемый по количеству контуров "График отопления" для замены такового из "Конструктора ИТП".
Собственно конструкторский и переделан. Функционал полностью соответствует конструкторскому.
Поправленный
Вложения
Тип файла: zip График отопления масштабируемый (Closed).zip (114.1 Кбайт, 411 просмотров)

Последний раз редактировалось Arsie, 28.09.2015 в 20:37
ViS вне форума   Ответить с цитированием
Старый 09.10.2015, 11:47   #40
oboldeus
Новичок
 
Регистрация: Mar 2015
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Может кому пригодится - макрос реализует альф-бета фильтр.
Макрос делался по этой статье : https://en.wikipedia.org/wiki/Alpha_beta_filter.
У фильтра есть некоторые недостатки - так называемый "звон", задержка сигнала на выходе.
Но фильтр рабочий - проверялся на датчиках давления в условиях очень сильных помех.
Вложения
Тип файла: zip alpha-beta.zip (3.0 Кбайт, 140 просмотров)
oboldeus вне форума   Ответить с цитированием
Старый 11.10.2015, 07:32   #41
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 741
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от oboldeus Посмотреть сообщение
Может кому пригодится - макрос реализует альф-бета фильтр.
1. За идею спасибо.
2. Реализация фильтра кривая. Почитал статью, посмотрел макрос, выложенный ATS в версии 3.25. Автор макроса не только не понял самой идеи альфа-бета фильтра, но очень свободно отнесся к синтаксису языка Си.
3. Идея альфа-бета фильтра заключается в том, что фильтруемому параметру соответствуют 2 переменные: значение параметра и скорость изменения параметра. На основании этих 2 переменных, вычисленных в предыдущем такте, делается прогноз состояния параметра в текущем такте:

xk = xk_1 + ( vk_1 * dt ), где

xk - прогнозируемое значение параметра в текущем такте
xk_1 - значение параметра в предыдущем такте
vk_1 - скорость изменения параметра в предыдущем такте
dt - длительность такта

Скорость изменения в текущем такте приравнивается к скорости изменения в предыдущем такте:

vk = vk_1, где

vk_1 - скорость изменения параметра в предыдущем такте
vk - скорость изменения параметра в текущем такте

Далее находится невязка между текущим значением параметра и прогнозируемым значением параметра, вычисленным по значению и скорости параметра из предыдущего такта:

rk = xm - xk;где

xk - прогнозируемое значение параметра в текущем такте
xm - значение параметра в текущем такте
rk - невязка

Далее прогнозируемые значения параметра и скорости параметра корректируются в соответствии со значениями a и b:

xk += a*rk что эквивалентно записи xk1= xk + a*rk
vk += (b*rk )/dt что эквивалентно записи vk1=vk + (b*rk )/dt, где

xk1 - уже значение на выходе фильтра
vk1 - значение скорости изменения

Далее вычисленные значения запоминаются, для использования в следующем такте:

xk_1 = xk1 и vk_1 = vk1

4. Если мы положим параметр b =0, то получим обычный RC-фильтр.
5. В принципе, альфа-бета фильтр может дать лучшие результаты, чем RC-фильтр. Но тут все зависит от правильности выбора альфа-бета от установленного тика контроллера, параметров самого сигнала и параметров наложенного на него шума. Вычисления оптимальных альфа-бета это отдельная тема и здесь не рассматривается.
6. При неоптимальных альфа-бета от фильтра больше вреда чем пользы: пульсации на переходной характеристике, дребезг в установившемся режиме, зависимость результатов от времени тика при неизменных альфа-бета. Так что в нашем случае обычный RC-фильтр предпочтительней. Если не хватает степени фильтрации - ставьте последовательно 2-3 RC-фильтра.
7. Что бы не быть голословным, сделал тестовый проект, где можно посмотреть поведение фильтров:

альфа-бета-фильтр (ATS)
альфа-бета-фильтр (TVF)
RC-фильтр

Смотрите, сравнивайте.
Вложения
Тип файла: psl alpha-beta_tvf.psl (51.4 Кбайт, 149 просмотров)


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 30.11.2015, 19:15   #42
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили: 3 раз(а) в 3 сообщениях
По умолчанию

Ещё два фильтра:

Цитата
Сообщение от СВМ Посмотреть сообщение
Ещё два фильтра:
Пример расчёта.
Вложения
Тип файла: msl Баттерворт.msl (12.1 Кбайт, 125 просмотров)
Тип файла: msl Бессель.msl (12.9 Кбайт, 106 просмотров)
Тип файла: doc Расчёт фильтра.doc (73.5 Кбайт, 134 просмотров)

Последний раз редактировалось Arsie, 04.12.2015 в 09:52
СВМ вне форума   Ответить с цитированием
Старый 03.12.2015, 22:15   #43
vlanaz
Member
 
Регистрация: Feb 2015
Адрес: Ufa
Сообщения: 75
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Простой макрос вывода времени и даты для ленивых.
Описание есть в теле макроса.
Выводит дату и время в разные начальные координаты.
Можно выводить только время или дату. Можно убрать секунды.
Выводит лидирующий ноль в позиции секунд, минут, часов, даты и месяца.
Вложения
Тип файла: msl Time_Date_Screen.msl (27.3 Кбайт, 298 просмотров)

Последний раз редактировалось Arsie, 04.12.2015 в 09:44
vlanaz вне форума   Ответить с цитированием
Старый 07.12.2015, 17:38   #44
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Макросы пересчета сопротивления в температуру согласно ГОСТ 6651-2009, и не только

В ГОСТ кстати, есть ошибки.
Вложения
Тип файла: msl Cu100 4260.msl (3.9 Кбайт, 186 просмотров)
Тип файла: msl Cu100 4280.msl (9.9 Кбайт, 164 просмотров)
Тип файла: msl Ni100 a=.00617.msl (8.9 Кбайт, 165 просмотров)
Тип файла: msl Ni1000 TK5000.msl (7.3 Кбайт, 167 просмотров)
Тип файла: msl Pt1000 3850.msl (11.3 Кбайт, 303 просмотров)
Тип файла: msl Вычисление t NTC.msl (8.1 Кбайт, 187 просмотров)
Тип файла: msl П1000 3910.msl (11.4 Кбайт, 156 просмотров)
Тип файла: msl Вычисление t NTC Steinhart-Hart для Pixel.msl (25.3 Кбайт, 186 просмотров)


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 08.12.2015, 09:22   #45
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от serg-el Посмотреть сообщение
Макросы пересчета сопротивления в температуру согласно ГОСТ 6651-2009, и не только

В ГОСТ кстати, есть ошибки.
Неплохо бы использовать "гостовские" названия. Cu100 - это всё же перебор))


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 08.12.2015, 11:06   #46
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Неплохо бы использовать "гостовские" названия. Cu100 - это всё же перебор))
Ага, особенно мне понравилось на 22 стр. - "Б.2 Медные термопреобразователи сопротивления а= 0,00426 °C–1" для 100 М а= 0,00428 °C–1

И тут же ниже - "Б.3 Медные термопреобразователи сопротивления W100 = 1,426" для для 100 М а= 0,00426 °C–1

"Смешались в кучу кони, люди,"...


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 08.12.2015, 11:18   #47
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от serg-el Посмотреть сообщение
Ага, особенно мне понравилось на 22 стр. - "Б.2 Медные термопреобразователи сопротивления а= 0,00426 °C–1" для 100 М а= 0,00428 °C–1

И тут же ниже - "Б.3 Медные термопреобразователи сопротивления W100 = 1,426" для для 100 М а= 0,00426 °C–1

"Смешались в кучу кони, люди,"...
Ну что делать, не боги же горшки обжигают


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 28.12.2015, 16:41   #48
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

ГОСТ 6651-2009 исправленный.
Вложения
Тип файла: zip ГОСТ 6651-2009 rev.2.zip (154.3 Кбайт, 204 просмотров)


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 06.01.2016, 16:55   #49
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

в конструкторском расписании на базе Таймер v2.31 заменил
старт/стоп на
стоп/мин/норм/макс на выход идет 0/1/2/3
0 = стоп, 1/2/3 = пуск

в расписании появилась не только уставка по Т, но и по расходу.

отладка была только "на столе", поэтому внимательней плз, вдруг чего накосячил
Вложения
Тип файла: msl Расписание+расход.msl (297.8 Кбайт, 225 просмотров)


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 09.02.2016, 20:01   #50
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Вычисление влажности на основании температуры сухого и влажного термометра.
На основании этого документа.
Скорость потока воздуха = 0, иначе (при 2м/с) - ,795 заменить на 0,662.
Вложения
Тип файла: msl Вычисление влажности.msl (19.8 Кбайт, 307 просмотров)


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 28.03.2016, 17:36   #51
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Как их отличить друг от друга?
А никак Закопипастился
Удалите пожалуйста предыдущее



Тип датчика:
REGIN серий TG-xxxx (не Pt)


00 - TG-xxxx -30...30°C
01 - TG-xxxx 0...30°C
02 - TG-xxxx 0...60°C
03 - TG-xxxx 20...50°C
04 - TG-xxxx 40...70°C
05 - TG-xxxx 60...90°C
06 - TG-xxxx 60...120°C


Для контроллеров и модулей с диапазоном от 10 кОм до 15 кОм.

Данные отсюда.
Вложения
Тип файла: msl Thermosensor_REGIN.msl (36.6 Кбайт, 167 просмотров)


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 26.10.2016, 18:16   #52
andre
Senior Member
 
Регистрация: Jun 2015
Сообщения: 551
Благодарил(а): 25 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Покритикуйте счетчик моточасов.

как я понял, у стандартных есть большие погрешности, если контролируемые периоды включения меньше рекомендуемых (450 сек)

в моем отсчет минут ведется с блока реального времени, запись в EEPROM - по отключению механизма, либо раз в час.
Вложения
Тип файла: msl счетчик наработки.msl (20.2 Кбайт, 323 просмотров)
andre вне форума   Ответить с цитированием
Старый 26.10.2016, 18:26   #53
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Обмениваемся своими макросами

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


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 27.10.2016, 09:09   #54
andre
Senior Member
 
Регистрация: Jun 2015
Сообщения: 551
Благодарил(а): 25 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

вчера вечером в дополнение к обычным счетчикам прикрутил пару этих,
програмно с имитировал включение\отключение 2 механизмов, с периодом около 6 минут

результаты:
Т1 - (стандартный) = 7.388ч
Т1 ( мой макрос) = 7.366ч
Т2 - (стандартный) = 12ч
Т2 ( мой макрос) = 12,3ч

Последний раз редактировалось andre, 27.10.2016 в 09:29
andre вне форума   Ответить с цитированием
Старый 18.02.2017, 14:09   #55
vlanaz
Member
 
Регистрация: Feb 2015
Адрес: Ufa
Сообщения: 75
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Графика - 3 цифры на весь экран Pixel

Простой макрос вывода на весь экран 3-х цифр, точки и одного символа.
Используется для индикации управляющего напряжения для ПЧ.
Для производства вольты, для эксплуатации - проценты.
Выводятся вольты x.xxV и проценты xx.x%.
На вход приходит 3-х значное число в формате Int.
Оно раскладывается на 3 цифры - сотни, десятки, единицы. В зависимости от варианта точка ставится либо после первой, либо после второй цифры и меняется знак вольты на проценты. Последний символ "короткий" пробел шириной в 2 пиксела, для затирания остатка в хвосте экрана.
Прилагаю файлы с цифрами, точкой и 2 символа - V или % сделанные из TTF шрифта Consolas в формате BMP. Размер цифр подогнан под высоту экрана Pixel.
Может есть и более красивое решение, но надо было быстро и без SMART.
Вложения
Тип файла: msl LOCKSCREEN.msl (34.8 Кбайт, 113 просмотров)
Тип файла: rar Digits.rar (2.1 Кбайт, 105 просмотров)
vlanaz вне форума   Ответить с цитированием
Старый 19.05.2017, 19:43   #56
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Объект с запаздыванием для эмуляции, например, калорифера.

Объект с запаздыванием для эмуляции, например, калорифера.

самый простой пример применения:
на вход макроса подается выход сигнала, например, ВоКал.
с выхода макроса получаем температуру за калорифером.

более сложный пример:
используем два макроса последовательно(см.картинки)
на вход первого подаем выход ВоКал, с его выхода снимаем значение Тобратки и подаем её на вход второго макроса объекта.
с выхода второго получаем сигнал температуры воздуха в канале.

можно еще усложнить:
берем предыдущий пример, с выхода второго макроса получаем значение температуры воздуха за калорифером и по формуле центр масс получаем смесь с наружной температурой в некоторой пропорции, которую формирует ВоОхл. и уже результат этой "смеси" используем как Тканала.
см.тут и картинки в прицепе

в этом примере Тобр.мин = 35, Т.прогрев = 40, а также предполагается, что максимальная смесь = половина на половину.
Миниатюры
Нажмите на картинку для увеличения

Название:  2017-05-19 22-30-34 SMLogix - [single 19.05.2017 11-01 тест мясокомбинат пар v0.psl].png
Просмотров: 262
Размер:  39.5 Кбайт   Нажмите на картинку для увеличения

Название:  2017-05-19 22-26-35 SMLogix - [Mac].png
Просмотров: 199
Размер:  32.4 Кбайт   Нажмите на картинку для увеличения

Название:  2017-05-19 22-25-52 SMLogix - [single 19.05.2017 11-01 тест мясокомбинат пар v0.psl].png
Просмотров: 243
Размер:  74.1 Кбайт  
Вложения
Тип файла: msl Объкт с запаздыванием v2.msl (22.3 Кбайт, 100 просмотров)
Тип файла: msl Эмулятор смесителя v0.msl (5.5 Кбайт, 94 просмотров)


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

Последний раз редактировалось LordN, 19.05.2017 в 20:05
LordN сейчас на форуме   Ответить с цитированием
Старый 03.07.2017, 16:49   #57
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обмениваемся макросами

Цитата:
Сообщение от ujin Посмотреть сообщение
Определяет текущий порядковый номер оборудования в зависимости от наработки, т.е. сортировка.
Оборудование с наибольшей наработкой получает наименьший текущий порядковый номер.
Из оборудования с одинаковой наработкой наименьший текущий порядковый номер получает оборудование с наименьшим станционным номером.
Сортировка пузырьковая. Реализация других методов сортировки на FBD при количестве менее 6 бессмысленна. Сортировка производится как правило не чаще 1 раза в сутки, поэтому время сортировки 10 или 40 циклов до выдачи результата не имеет значения. Напротив размер кода значение имеет.
Недостатки - при включении питания выдает неправильный результат и требуется первичная сортировка через время инициализации контроллера.
спасибо, добрый макрос!
сильно помог для создания процедуры блокировки работы ступени с наработкой на dN циклов больше, чем ступень с минимальной наработкой в группе из шести.
это для совместной работы с макросом типа Dev15...


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 10.08.2017, 06:16   #58
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Маленький макрос на МИН-МАКС до 32-х чисел

Макрос определяет минимальное и максимальное число из заданных на входах.
Сравнивает от 2 до 32 чисел. Весит всего 25 блоков.
Независимо от количества опрашиваемых входов, макрос выполняется в один тик основной программы, то есть данные на выходе обновляются в том же цикле основной программы, в котором изменяются входы.
При отключении полностью исключается из обработки программы, не расходуя вхолостую ресурс процессора.
Вложения
Тип файла: msl Мин-Макс х32 (Int).msl (68.8 Кбайт, 172 просмотров)
ViS вне форума   Ответить с цитированием
Старый 10.08.2017, 10:45   #59
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Маленький макрос на МИН-МАКС до 32-х чисел

Цитата
Сообщение от ViS Посмотреть сообщение
Макрос определяет минимальное и максимальное число из заданных на входах.
Сравнивает от 2 до 32 чисел. Весит всего 25 блоков.
Независимо от количества опрашиваемых входов, макрос выполняется в один тик основной программы, то есть данные на выходе обновляются в том же цикле основной программы, в котором изменяются входы.
При отключении полностью исключается из обработки программы, не расходуя вхолостую ресурс процессора.
При сравнении 32 чисел затраты времени соответствуют выполнению 500 блоков. Нельзя такой макрос наобум использовать в контроллерах первого поколения.


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

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

Цитата:
Сообщение от Arsie Посмотреть сообщение
При сравнении 32 чисел затраты времени соответствуют выполнению 500 блоков. Нельзя такой макрос наобум использовать в контроллерах первого поколения.
да, я тоже не решаюсь циклы использовать не имеючи пошаговой эмуляции или отладки..


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Ответ

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

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

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

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, время: 18:08.


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