Ilgeneer
Forum Member / Участник форума
Участник № / Member № 5896
отправлено / posted
Здравствуйте. Настраиваю соединение скада системы ТМ и щитов управления вентиляцией VS 10-75 CG UPC от компании VTS group
Связь настроил через модуль расширения TCP/IP в ТМ подключил через протокол Modbus IP. по видеоуроку.
В щите управления имеется три группы параметров: ANALOG, DIGITAL, INTEGER. Так в скаде могу увидеть только ANALOG и INTEGER параметры.
Дело в том, что в описании на соединение по Modbus IP адреса регистров ANALOG и INTEGER различаются 1-122 и 5001-5201 соответственно.
а регистры DIGITAL имеют адреса 1-68 что совпадает с регистрами аналоговых значений. Имеется ли возможность обойти это перекрытие адресов?
для считывания аналоговых значений в стандартном протоколе есть выбор принятия байта или слова. А можно как-нибудь настроить на принятие бита данных? ведь регистры DIGITAL как раз имеют битовые значения.
Сообщения / Posts 51 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В стандартном протоколе Modbus "для считывания аналоговых значений" отсутствует "выбор принятия байта или слова." Для считывания битовых значений по Modbus в Trace Mode 6 используются функции 1 или 2: Rout_Byte(1) – считать байт данных типа out или Rin_Byte(2) – считать байт данных типа in.
При правильном выборе функций пересечение адресов регистровых и битовых переменных не должно иметь значения.
Сообщения / Posts 17335 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Ilgeneer
Forum Member / Участник форума
Участник № / Member № 5896
отправлено / posted
Спасибо за направление мысли,все получилось следующим образом:
данные DIGITAL имеют тип out, 1) при редактировании группы modbus установить размерность 1 бит, 2) указать соответствующий канал из описания, 3) Перетащив из слоя источников в узел проекта, каналы принимают тип HEX16. в каждом канале установить размерность 1 бит. 4)привязав каналы к аргументам экрана указать тип данных BOOL и указать атрибут канала в привязке - БИТ 1.
только поэкспериментировав получилось так, что достаточно только в привязке аргумента экрана указать БИТ 1.
отправлено / posted
По умолчанию в канал HEX16 функциями Rout_Byte(1) и Rin_Byte(2) считывается 1 байт. Если необходимо считать только 1 бит, надо задать этому каналу "Размерность в битах"=1.
Сообщения / Posts 17335 | Из / From: Россия
| IP / IP: IP адрес / IP address |
oasafronov
Junior Member / Новичок
Участник № / Member № 8846
отправлено / posted
А если нужно считать 4 бита? В документации на прибор говориться: "Так как в составе прибора имеется только четыре ключа, адрес начального ключа и старший байт количества читаемых ключей всегда должны иметь нулевые значения. Младший байт количества читаемых ключей должен иметь значение 4 (по числу ключей, имеющихся в составе прибора). При несовпадении полей адреса начального ключа и количества читаемых ключей с указанными значениями прибор будет генерировать ответ ошибочной ситуации"
А в справке к каналу Hex 16 указано: "Размерность в битах – этот параметр задает число бит значения канала для некоторых операций по следующему закону: – 1 – 1 бит; – 2 – 2 бита; – 3-8 – 8 бит; – 9-16 – 16 бит. "
Т.е даже, если я поставлю размерность канала 4 бита, он все равно будет пытаться считать 8 и прибор вернет ошибку?
Сообщения / Posts 2 | Из / From: Россия
| IP / IP: IP адрес / IP address |