Страница 1 из 1

проблема с переменной DINT

Добавлено: 21 окт 2013, 14:47
service
После пусконаладочных работ возникла такая проблема:
- в скаде Zenon есть обьект ползунок для управления скоростью двигателя. у Vipa через кабель и драйвер невозможна передача данных между плк и скадой в формате Real. по этому за ползунок отвечает переменная формата DINT, которая программой переводится в REAL с последующей обработкой. сигнал на аналоговом выходе плк изменяется, но черт знает как - ставишь ползунок на 90% - канал выдает 0мА, 92 - 12мА, 93 - 0, 94- 8мА, 95 - 0, 96 -16мА...
вот программа. подскажите чего не так

Re: проблема с переменной DINT

Добавлено: 21 окт 2013, 15:05
Михайло
Поменяйте местами байты в двойном слове. Порядок следования байтов

Re: проблема с переменной DINT

Добавлено: 21 окт 2013, 15:34
service
если можно то тыкните пальцем где...

Re: проблема с переменной DINT

Добавлено: 21 окт 2013, 18:43
Михайло
Ну вот ты сформировал переменную DINT, из 4-х байтов: байт1, байт2, байт3, байт4. Я сейчас не могу сообразить, но возможно твой Зенон пытается прочитать эту переменную как последовательность: байт2, байт1, байт4, байт3, то есть не так как тобой задумано.
Попереставляй байты в двойном слове средствами ПЛК, чтобы Зенон правильно считал переменную. Возможно есть функция типа SWAP в ТИА Портале, которая делает из порядка байт1, байт2, байт3, байт4 обратный порядок байт4, байт3, байт2, байт1. Что-то из этого должно сработать.

Re: проблема с переменной DINT

Добавлено: 22 окт 2013, 09:29
service
я в симуляторе Vipa WinPLC без преобразований DINT в REAL подавал сигнал с аналогового выхода на вход - все правильно работает. значит дело в скаде...