Как работать в LUA с регистрами с ошибкой связи

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

 

#1

необходимо также учитывать ситуации, когда важно именно гарантированно прочитать регистр, если он участвует в расчете например задания мощности инвертора. В этом случае лучше либо фильтровать значение на несколько сканов, либо пропускать обработку (выходить из скрипта ,если набор входных данных не – валидный)

#2

Пожалуйста войдите или зарегистрируйтесь чтобы добавить ответ