This is topic Modbus TCP и установки VTS in forum Драйверы / Device Drivers at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/43/t/000122.html

Posted by Ilgeneer (Участник № / Member № 5896) on :
 
Здравствуйте.
Настраиваю соединение скада системы ТМ и щитов управления вентиляцией 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 как раз имеют битовые значения.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В стандартном протоколе Modbus "для считывания аналоговых значений" отсутствует "выбор принятия байта или слова."
Для считывания битовых значений по Modbus в Trace Mode 6 используются функции 1 или 2:
Rout_Byte(1) – считать байт данных типа out
или
Rin_Byte(2) – считать байт данных типа in.

При правильном выборе функций пересечение адресов регистровых и битовых переменных не должно иметь значения.
 
Posted by Ilgeneer (Участник № / Member № 5896) on :
 
Спасибо за направление мысли,все получилось следующим образом:

данные DIGITAL имеют тип out,
1) при редактировании группы modbus установить размерность 1 бит,
2) указать соответствующий канал из описания,
3) Перетащив из слоя источников в узел проекта, каналы принимают тип HEX16. в каждом канале установить размерность 1 бит.
4)привязав каналы к аргументам экрана указать тип данных BOOL и указать атрибут канала в привязке - БИТ 1.

только поэкспериментировав получилось так, что достаточно только в привязке аргумента экрана указать БИТ 1.

так ли это и почему?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
По умолчанию в канал HEX16 функциями Rout_Byte(1) и Rin_Byte(2) считывается 1 байт.
Если необходимо считать только 1 бит, надо задать этому каналу "Размерность в битах"=1.
 
Posted by oasafronov (Участник № / Member № 8846) on :
 
А если нужно считать 4 бита?
В документации на прибор говориться:
"Так как в составе прибора имеется только четыре ключа, адрес начального ключа и старший байт количества читаемых ключей всегда должны иметь нулевые значения. Младший байт количества читаемых ключей должен иметь значение 4 (по числу ключей, имеющихся в составе прибора). При несовпадении полей адреса начального ключа и количества читаемых ключей с указанными значениями прибор будет генерировать ответ
ошибочной ситуации"

А в справке к каналу Hex 16 указано:
"Размерность в битах – этот параметр задает число бит значения канала для некоторых операций по следующему закону:
– 1 – 1 бит;
– 2 – 2 бита;
– 3-8 – 8 бит;
– 9-16 – 16 бит. "

Т.е даже, если я поставлю размерность канала 4 бита, он все равно будет пытаться считать 8 и прибор вернет ошибку?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by oasafronov:
А если нужно считать 4 бита?

Установите "Размерность битов = 4".
В этом случае канал HEX16 с привязкой к modbus-функциям Rout_Byte(1) или Rin_Byte(2), считает ровно 4 бита.

Указанная цитата на Справочную Систему не относится к данному случаю.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2