PDA

Просмотр полной версии : как передать переменную integer по modbus



Линар
25.08.2016, 13:29
Подскажите кто нибудь , как передать переменную integer по modbus в спк207 ?
"codesys 3.5"

Евгений Кислов
25.08.2016, 13:35
Если я правильно понял вопрос, то вам необходимо на СПК преобразовать полученные данные с помощью функции WORD_TO_INT.

Линар
25.08.2016, 13:37
Это понятно ,есть устройство в сети RS485 соединенное с спк207 ,нужно чтобы спк считал переменную типа INT с этого устройства.ВОт,как это реализовать,если modbus СПК 207-го предусматривает только 2 типа данных BOOL и WORD участвующих в обмене.

Евгений Кислов
25.08.2016, 13:40
Это понятно ,есть устройство в сети RS485 соединенное с спк207 ,нужно чтобы спк считал переменную типа INT с этого устройства.ВОт,как это реализовать,если modbus СПК 207-го предусматривает только 2 типа данных BOOL и WORD участвующих в обмене.

Считываете как WORD, потом преобразовываете с помощью WORD_TO_INT.

Линар
25.08.2016, 13:45
параметр который я считываю с устрйоства с спк207 (master) имеет диапазон значений от -40 до +40 (формат INT ) , а если считваю word (ом) - то получается у него диапазон начинается с 0 до 65356 .и значит отрицательное значение на устройстве не будет считываться .
P.S. я только начал работать с спк ,до этого программировал на codesys v2.

Евгений Кислов
25.08.2016, 13:50
параметр который я считываю с устрйоства с спк207 (master) имеет диапазон значений от -40 до +40 (формат INT ) , а если считваю word (ом) - то получается у него диапазон начинается с 0 до 65356 .и значит отрицательное значение на устройстве не будет считываться .
P.S. я только начал работать с спк ,до этого программировал на codesys v2.

После преобразования WORD_TO_INT вы получите исходное число (которое может быть и отрицательным).

Линар
25.08.2016, 13:53
Спасибо большое)

Гарчев Евгений
25.08.2016, 13:59
Все будет считываться нормально. Любой тип данных - это последовательность битов, а уже в зависимости от типа они могут интерпретироваться по разному. Если Вы представите последовательность бит в формате word, то диапазон значений будет от 0 до 65355, если типа int, то от -32768 до 32767. Т.е. если Ваше устройство выдает значение -40, то формате word Вы увидите значение 65496, представив это значение для типа int, вы увидите все те же -40.
Для переменных типа word и int можно использовать прямое присвоение, без дополнительных функций преобразования.