14 Apr Как работать в LUA с регистрами с ошибкой связи
Здравствуйте.
В lua если какой ни будь регистр nil, то программа перестаёт работать.
Как быть если я математически суммирую в lua 10 регистров (10 устройств), и в процессе эксплуатации одно устройство “легло”, в lua регистр этого соединения = nil, программа перестаёт считать. Как правильно записать код что бы при потери связи с регистрами, программа продолжала работать, и воспринимала nil как 0?
Спасибо!
2 answers
Добрый день
В Lua очень просто проверить переменную на nil.
Точно также может быть проверен результат функции на nil
Пример реализации:
function main (userId)
val1 = GetReg(1) or 0
val2 = GetReg("temperature")
sum = val1 + (val2 or 0)
TRACE(sum)
end
необходимо также учитывать ситуации, когда важно именно гарантированно прочитать регистр, если он участвует в расчете например задания мощности инвертора. В этом случае лучше либо фильтровать значение на несколько сканов, либо пропускать обработку (выходить из скрипта ,если набор входных данных не – валидный)