Как пожелание к последующему развитию, представляется верным запись регистров по команде модбас делать незамедлительно после приема посылки, с высочайшим приоритетом. И такой же высочайший приоритет для записи в SQL
(чтобы, к примеру, вызов записи в SQL срабатывал сразу после завершения задачи, инициирующей эту запись)
Проблемы при обмене
Re: Проблемы при обмене
Было бы неплохо, если бы скрипт SQL переменной срабатывал только по условиям в конфигурации. ( Указан скрипт при записи переменной, но срабатывает и при чтении)
Re: Проблемы при обмене
Скрипт срабатывает при записи.
Запись производится т.к. в настройках дополнительных свойств установлено дублирование переменной с отработкой записи.
Запись производится т.к. в настройках дополнительных свойств установлено дублирование переменной с отработкой записи.
Re: Проблемы при обмене
Желателен вариант для выбора, чтобы дублирование с отработкой записи срабатывало только при записи переменной.admin писал(а):Скрипт срабатывает при записи.
Запись производится т.к. в настройках дополнительных свойств установлено дублирование переменной с отработкой записи.
Было бы неплохо фильтр событий для записи в лог по типу событий, узлу (отключение записей в лог по фильтру типа событий)
Re: Проблемы при обмене
Возможно, кому либо будет полезно: для достоверности записи возможен, например, такой вариант:kmm писал(а):Можете подсказать вариант алгоритма работы с гарантированно достоверной записью данных из ПЛК в базу через Лектус?admin писал(а):По поводу пропуска исполнения SQL скрипта на запись.
Такое может быть, т.к. при добавлении операции в очередь на выполнение проверяется наличие идентичной задачи.
Если такая задача уже есть, то добавляемая задача отбрасывается, чтобы не забивать очередь однотипными задачами.
Например, у нас есть такой вариант алгоритма посылки ПЛК:
1) запись всех переменных в Лектус одной посылкой (как и в разбираемом логе) - ПЛК делает посылку с контролем ответа
2) чтение той же области данных для контроля идентичности посланных и принятых данных
Получается, данный вариант не гарантирует записи этой посылки в SQL.
Если бы, к примеру, после пункта 1 процедура записи в SQL изменяла определенным образом какой либо служебный регистр в этом узле?
(С учетом той проблемы, что любые записи и чтения переменных, инициирующих запись в SQL переменной, всегда вызывают повторное срабатывание SQL переменной (запись в SQL) )
1. PLC: Модбас запись и контроль ответа. В посылке служебное поле - идентификатор посылки.
2. PLC:Таймаут. Сервер: Запись SQL, в том числе в служебную таблицу с полями ключ-идентификатор узла-PLC, идентификатор последней посылки,чтение этого поля в переменную lectus.
3. PLC: чтение-контроль всей записанной области(или нескольких контрольных полей) и поля обратной связи записи в SQL.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей