По имени группы - нет.
Вы можете перебрать все теги, а потом отфильтровать по имени группы
По имени группы - нет.
Вы можете перебрать все теги, а потом отфильтровать по имени группы
Спасибо.
function OnInit()
local err = false;
local num =0;
while not err do
err,Tab=server.GetAttributeTagByNumber(num);
num=num+1;
if err == true then
break;
end;
end;
end;
В сообщении протоколов и скриптов сообщение: GetAttributeTagByNumber : недопустимый номер тега.
Выполнение скрипта останавливается, и в последующем блоки
function OnBeforeReading()
function OnAfterReading()
не выполняются? если после while ..... end; добавить например строку: server.Message('цикл while выполнен'); <<<< то этого сообщения нет в сообщении протоколов и скриптов. почему так может быть?
Потому что используйте цикл for, и в качестве конечного адреса используйте номер тега полученного функцией servet.GetCountTags.
Спасибо.
Потому что вы доходите до адреса которого нет, обращаетесь и скрипт падает.
Спасибо.
Странная конструкция. Здесь явно случай для использования цикла с постусловием. А вы используете цикл с ПРЕДусловием и с помощью break добиваетесь чтобы это работало как цикл с постусловием. Не знаю есть ли в LUA обработка исключений, но для критических ошибок, которые возникают в вашей конструкции, можно было ее (обработку) использовать. Хотя это конечно костыли для костылей...
в этой конструкции break не нужен.
изначально break не было. скрипт зависал и я не мог понять почему.
в документации сказано:
server.GetAttributeTagByNumber
Возвращает атрибуты (свойства) произвольного тега по его номеру. Аргумент функции – номер тега.
Функция возвращает:
флаг ошибки: true – ошибка получения тега (тег не существует), false – ошибки нет;
таблицу атрибутов. Структура таблицы идентична таблице функции server.GetAttributeTag .
Пример
local err,Tab=server.GetAttributeTagByNumber(1);
-- переменная err содержит флаг ошибки, Tab – таблица со всеми атрибутами тега
Т.е. в моем случае когда происходит обращение к тегу по номеру которого не существует в err должно вернутся true, далее выход из цикла и продолжение выполнения кода...
Последний раз редактировалось Makc; 18.02.2022 в 04:38.
Мы посмотрим данную проблему, а пока сделайте как мы написали
Спасибо.
Добрый день, подскажите есть ли возможность подключить энкодер sick ATM60-PAH13X13 к скада системе посредством Modbus Universal MasterOPC Server, выход Profibus DP имеется
Profibus мы не поддерживаем
Спасибо.