Почему мой текущий итог сбрасывается через несколько недель?

#scada

#scada

Вопрос:

Мне удалось написать код, который подсчитывает текущий результат на Citect Scada, используя Cicode-language. Теперь у меня проблема, потому что кажется, что мой цикл каким-то образом сбросил мой счетчик. Я довольно новичок в этом.

На данный момент я не знаю, что вызывает это. Сегодня утром общее количество составляло около 1480, прежде чем произошел сброс, и я использую INT в качестве типа данных. Счетчик активен уже около нескольких недель. Я использую Citect Scada 6.1V.

 FUNCTION Laskuri()
INT iState14 =0                 
INT iState15

 WHILE 1 DO                                                 

Sleep(3600)
iState15 = ReadVar(5,"Ar",59)                       
iState14 = iState14   iState15;                         
SetVar(5,"Ar", 58, iState14);

      END
END
  

Комментарии:

1. Это не C, я переназначил его. Как наивный читатель, не имеющий никаких знаний о Cocode, это выглядит как переполнение целых чисел.

2. Да, спасибо. Можете ли вы объяснить для манекена, как происходит переполнение в этом случае. Типы данных Schneider говорят, что допустимый диапазон значений для int составляет от -32 768 до 32 767 .