Стартовая страница › Форумы › Понять, как работает ПО › ModDiffCalculator — настройка
- В этой теме 64 ответа, 3 участника, последнее обновление 4 дня, 7 часов назад сделано
Mikhail.
-
АвторЗаписи
-
27.08.2026 в 20:01 #44700
manjey73Участник<Group active="true" name="EnergyHourDiff" periodType="Hour" offset="00:00:00" delay="10" archiveBit="2"> <Item srcCnlNum="327" destCnlNum="369" /> <Item srcCnlNum="328" destCnlNum="371" /> </Group>У меня так считает и пишет только в часовые архивы. Чтобы увидит это на графике, нужны ГрафикиПро и настраивать под часовой архив профиль.
Каналы приемники Расчетные, без формул.
27.08.2026 в 20:04 #44701
manjey73УчастникУ вас период вроде 1 минута, а запись только в часовой архив.
28.08.2026 в 10:06 #44703Andrew123
УчастникТак тоже делал:
<?xml version=»1.0″ encoding=»utf-8″?>
<ModDiffCalculator>
<GeneralOptions>
<CmdCode />
</GeneralOptions>
<Groups>
<Group active=»true» name=»DiffDiff» periodType=»Custom» customPeriod=»00:01:00″ offset=»00:00:00″ delay=»0″ adjustForDst=»false» recalcDiff=»false» archiveBit=»1″>
<Item srcCnlNum=»6650″ destCnlNum=»6651″ />
</Group>
</Groups>
</ModDiffCalculator>Значение канала 6651 не меняется.
На самом канале установлены галки на текущий, минутный, часовой и дневной архив.-
Ответ изменён 1 неделя, 1 день назад пользователем
Andrew123.
28.08.2026 в 10:10 #44705Andrew123
УчастникДа, что значит «запись только в часовой архив»? — В модуле дифа можно выбрать только один параметр архива. Поставить галки на часовой и минутный нельзя.
28.08.2026 в 10:44 #44706
manjey73УчастникЭто значит, что проверять надо базу, куда пишите.
У вас период был минутный, предположу, что в Х:59 минут никакой записи нет, дифу нечего считать.
И что такое ajustForDst и второе? У меня такого нет, хотя давно не обновлял его, может какие-то изменения были.28.08.2026 в 10:50 #44707Andrew123
УчастникajustForDst — переход на летнее время
Утилиты, которые мне скинули, читают только текущий архив(current.dat) — уже в теме писал. Потому нечем проверить пока. А поставить запись в стороннюю базу пока нет возможности.28.08.2026 в 10:58 #44708
manjey73УчастникТам разные утилиты, ТрендВью кажется умеет все архивы читать.
Можете ещё Trand плагин скачать от @JurasskPark там можно выбирать архив, который смотреть.
28.08.2026 в 11:28 #44709Andrew123
УчастникТренды можно построить и в самой скаде, когда в веб запущен. И в тредне есть минутные данные. Проблема же, как я и писал, чтобы увидеть последний минутный расчёт в текущих данных.
добавление группы расчёта минутной разности в текущий архив не даёт значения в колонке «текущие». Только текущие данные используются в схемах визуализации.
<?xml version=»1.0″ encoding=»utf-8″?>
<ModDiffCalculator>
<GeneralOptions>
<CmdCode />
</GeneralOptions>
<Groups>
<Group active=»true» name=»DiffDiff_Cur» periodType=»Minute» offset=»00:00:00″ delay=»20″ adjustForDst=»false» recalcDiff=»true» archiveBit=»0″>
<Item srcCnlNum=»6650″ destCnlNum=»6651″ />
</Group>
<Group active=»true» name=»DiffDiff_Min» periodType=»Minute» offset=»00:00:00″ delay=»20″ adjustForDst=»false» recalcDiff=»true» archiveBit=»1″>
<Item srcCnlNum=»6650″ destCnlNum=»6651″ />
</Group>
<Group active=»true» name=»DiffDiff_Hour» periodType=»Minute» offset=»00:00:00″ delay=»20″ adjustForDst=»false» recalcDiff=»true» archiveBit=»2″>
<Item srcCnlNum=»6650″ destCnlNum=»6651″ />
</Group>
</Groups>
</ModDiffCalculator>28.08.2026 в 11:39 #44712
manjey73УчастникА без Дифа обойтись, просто формулами?
з.ы. сейчас посмотрю, у меня отображается в текущих или нет. Я как-то минутные не писал.
З.ы. если вы дифом пишите в минутные и другие, при чем тут текущие блин.Вам только формулами в каналах делать.
28.08.2026 в 11:42 #44713
manjey73УчастникНу или попробуйте Дифом записать в текущую БД — бит 0
28.08.2026 в 12:47 #44716
MikhailМодераторЕсли по настройке модуля остались вопросы, выложите ссылки на скриншоты настроек.
Имеются ввиду скриншоты тех настроек, которые относятся к обсуждаемой теме.28.08.2026 в 13:35 #44718Andrew123
Участник«А без Дифа обойтись, просто формулами?» — пробовал теми, которые есть — не получается. Надо писать на C# свою функцию, но я пока не готов(эт же надо изучить объектную модель Rapid Scad-ы, а это только один путь изучать исходники скады — вряд ли где есть эта модель в свободном доступе).
«З.ы. если вы дифом пишите в минутные и другие, при чем тут текущие блин.» — есть задача обрабатывать изменения сигнала, и если нет изменений, то соответствующее предупреждение на мнемосхеме. Классика — это обработка сигнала Life Bit, но по другим есть применение. К сожалению, по ряду причин, в уже нет возможности сперва обработать сигнал в контроллере, а потом выдать наружу.
-
Ответ изменён 1 неделя, 1 день назад пользователем
Andrew123.
28.08.2026 в 14:30 #44720
manjey73УчастникТам не нужна особо объектная модель. Достаточно понимания, что скрипты выполняются последовательно от меньшего канала к большему, по сути как в LAD и применение формулы с вызовом каждую минуту через EveryMin.
Сейчас поищу у себя пример расчета часовой для примера. Где-то была.
28.08.2026 в 14:49 #44721
manjey73УчастникВам нужно два Расчетных канала и входные формулы в них. Формулы штатные.
1. для сохранения данных каждую минуту из канала (входной или другой расчетный_
2. для вычисления разницы между текущим значением и прошлымEveryHour(() => Data(327)) EveryHour(() => Val(360) - PrevVal(360))В данном случае первый канал имеет номер 360, второй канал имеет следующий номер 361.
Формула первого канала сохраняет каждый час данные из канала 327. Вторая формула сравнивает разницу между текущими данные и прошлыми и потом возвращает эту разницу в канал.В вашем случае будут каналы 6650 (исходный), 6651 и 6652
6651 — входная формулаEveryMin(() => Data(6650))
6652 — входная формулаEveryMin(() => Val(6651) - PrevVal(6651))ну а дальше сравнивайте 6652 на > 0 или == 0 и так далее
28.08.2026 в 14:53 #44722
manjey73Участникз.ы. с LifeBit надо по другому как-то….
-
Ответ изменён 1 неделя, 1 день назад пользователем
-
АвторЗаписи
- Тема «ModDiffCalculator — настройка» закрыта для новых ответов.