Здравствуйте!
Прошу помощи разобраться в следующей проблеме.
Контроллеру ПЛК210-12-CS подключен модуль дискретного ввода МВ210-202, к вход 3 и 4 подключен энкодер А, В соответственно.
В программе к чтению входа 3 модуля МВ210-202 привязана переменная типа "awInp3: ARRAY [0..1] OF WORD;"
Далее конвертировал массив awInp3 в переменную dwLenghtWORD;
В окне визуализации создал элемент типа прямоугольник, в поле текст " %i" и в поле текстовая переменная "dwLenght".
В процессе отладки, когда начал вращать энкодер по часовой стрелке значения увеличиваются, против часой уменьшаются и также и в отриательную сторону появляется знак минус - все отлично на экране визуализации. Но вот в поле программы переменная dwLenght когда мы от ноля начинаем вращать энкодер в отрицательную сторону происходит переполнения и значения становятся 4*294*967*295 и далее с каждым импульсом на 1 уменьшаются, но на экране визуализации в это время отображается -1, -2 и тд.
Вот вопрос где происходит конвертация переменной dwLenght из тела программы к экрану визуализации? Мне как раз нужны и отрицательные значения.
PS. Пробовал dwLenght преобразовать в тип REAL и потом поделить на 200, но как только счётчик переваливает в минус через 0, сразу значение NaN.
Прилагаю скрин экрана где при отрицательном значении счётчика переменна dwLenght имеет положительное значение.




WORD;
Ответить с цитированием