Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:motohr [2025/03/21 13:53]
denis [База данных]
doc:jroboplc:modules:motohr [2025/03/21 14:11] (текущий)
denis [Системные команды]
Строка 63: Строка 63:
 |''<​machName>​.descr ​         '' ​ |  ''​STRING ​ '' ​ |  ''​RW'' ​ |Описание машины ​ | |''<​machName>​.descr ​         '' ​ |  ''​STRING ​ '' ​ |  ''​RW'' ​ |Описание машины ​ |
 где: где:
-  * ''​ctId''​ - идентификатор типа счетчика,​ значения от 1 и более+  * ''​ctId''​ - идентификатор типа счетчика,​ значения от 1 и более. Значение 1 всегда имеет счетчик "​Всего",​ называемый далее **''​total''​**.
   * ''​machName''​ - имя машины   * ''​machName''​ - имя машины
    
Строка 144: Строка 144:
  
 === Формирование списка типов счетчиков === === Формирование списка типов счетчиков ===
-Создается тип счетчика ''​total''​ (Всего),​ после чего из конфигурации ​загружаются другие типы счетчиков. +Создается тип счетчика ''​total''​ (Всего),​ после чего из базы данных ​загружаются другие типы счетчиков. 
-Тип счетчика ''​total''​ - это несбрасываемый ​счетчик. Данный тип не нужно прописывать,​ он создается по умолчанию. ​Однако в правилах машин он должен ​быть указан ​в составе счетчиков, если он необходим. +Тип счетчика ''​total''​ - это ​обязательный счетчик, ​сбрасываемый только при полной замене оборудования. Данный тип не нужно явно прописывать,​ он создается по умолчанию. ​Другие типы счетчиков добавляются в базу данных ​через клиентское ​приложение.
  
 === Формирование списка машин === === Формирование списка машин ===
Строка 154: Строка 153:
 Из найденого тега статуса формируется имя тега описания,​ после чего из него берется значение - текст описания машины. Если тег описания не найден,​ то берется описание машины из ''​MH_MACH.DESCR'',​ введенное пользователем посредством тега машины ''​descr''​ или непосредственно update-запросом к данной таблице. Из найденого тега статуса формируется имя тега описания,​ после чего из него берется значение - текст описания машины. Если тег описания не найден,​ то берется описание машины из ''​MH_MACH.DESCR'',​ введенное пользователем посредством тега машины ''​descr''​ или непосредственно update-запросом к данной таблице.
  
-Допускается попадание одной и той же машины в несколько правил, при этом у такой машины наборы счетчиков,​ указанные в правилах,​ объединяются.+Допускается попадание одной и той же машины в несколько правил.
  
 === Синхронизация === === Синхронизация ===
-Полученная конфигурация машин и счетчиков сохраняется/​обновляется в базе данных. Из базы данных загружается состояние машин и значения счетчиков. ​+Полученная конфигурация машин и счетчиков сохраняется/​обновляется в базе данных. Из базы данных загружается состояние машин и значения ​назначенных ​счетчиков. ​
  
 === Мониторинг === === Мониторинг ===
Строка 174: Строка 173:
  
 === Запись статистики === === Запись статистики ===
-В 00:00:00 происходит сброс накопленных данных ​для машин, имеющих ​счетчик типа ''​total''​. По каждой машине:​+В 00:00:00 происходит сброс накопленных ​за сутки ​данных ​в таблицу статистики. По каждой машине:​
   * в таблице ''​MH_STAT''​ создается запись:​   * в таблице ''​MH_STAT''​ создается запись:​
     * ''​CNT = MH_MACH_STATE.STATCNT'' ​     * ''​CNT = MH_MACH_STATE.STATCNT'' ​
Строка 192: Строка 191:
 Пример с использованием тегов: Пример с использованием тегов:
 <code java> <code java>
-  long machtime = getTagVal("​mh.M1001.time"​);​+  long machtime = getTagVal("​mh.100.time"​);​
   long systime = getTagVal("​mh.system.time"​);​   long systime = getTagVal("​mh.system.time"​);​
-  int cnt = getTagVal("​mh.M1001.total"​) + (machtime == 0? 0: systime - machtime);+  int cnt = getTagVal("​mh.100.total"​) + (machtime == 0? 0: systime - machtime);
 </​code>​ </​code>​
  
Строка 206: Строка 205:
 join mh_mach_state ms on ms.mach_id = m.id join mh_mach_state ms on ms.mach_id = m.id
 where where
-  m.name = 'M1001' and ct.name '​total'​+  m.name = '100' and ct.id 1
 </​code>​ </​code>​
  
Строка 218: Строка 217:
 В таймеры можно записать значение от 0 включительно и более. В не-таймеры можно записать только 0. В таймеры можно записать значение от 0 включительно и более. В не-таймеры можно записать только 0.
  
-Запись 0 в ''​total'' ​расценивается как ​замена машины на новую, поэтому обнуляются все используемые счетчики.+Запись 0 в ''​total''​ возможна только при остановленной машине.
  
 Если счетчик временно не используется,​ можно его отключить,​ записав значение ''​0x7FFF_FFFF''​. Если счетчик временно не используется,​ можно его отключить,​ записав значение ''​0x7FFF_FFFF''​.
Строка 230: Строка 229:
   * ''​sweep-stat <​yyyymm>''​ - удаление из ''​MH_STAT''​ записей старше заданной даты включительно   * ''​sweep-stat <​yyyymm>''​ - удаление из ''​MH_STAT''​ записей старше заданной даты включительно
   * ''​pach-mach''​ - удаление из ''​MH_MACH''​ не актуальных машин, которые отсутствуют в текущем сформированном списке машин   * ''​pach-mach''​ - удаление из ''​MH_MACH''​ не актуальных машин, которые отсутствуют в текущем сформированном списке машин
 +  * ''​reinit''​ - перезагрузка модуля. Данную команду необходимо послать для вступления в силу изменений,​ сделанных в базе данных клиентом.
  
 Команды ''​sweep-*''​ использовать с осторожностью,​ т.к. можно легко остаться с пустыми таблицами. Команды ''​sweep-*''​ использовать с осторожностью,​ т.к. можно легко остаться с пустыми таблицами.
doc/jroboplc/modules/motohr.1742554428.txt.gz · Последние изменения: 2025/03/21 13:53 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0