Тема / Topic: Изменение типа данных каналов MODBUS
Николай Распопов
unregistered
отправлено / posted
Как изменить тип данных канала в группе MODBUS из "Источники/Приёмники"? Например, он был вначале заведён как Rin_Float(4), а потом потребовалось изменить его на Rin_Byte(2). Кстати типы каналов нельзя определить визуально, в отличие от разных значков каналов из "Система".
отправлено / posted
Менять тип источника нельзя, это не только для Модбаса, заново создать, удалив предыдущий.
IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
Если учесть что Rin_Float(4)(плавающая точка), создает канал типа FLOATа Rin_Byte(набор битов) - HEX, то такая возможность дейсвительно необходима )
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Николай Распопов
unregistered
отправлено / posted
Когда нужно поменять тип для канала который уже проведён через десяток аргументов форм и программ, то удаление его разрушает всю систему. :-(
IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
2Nico: Вы наверное никогда не получали от программистов контроллера новые исправления, где они решают перевести один из параметров в другую область памяти контроллера, заодно поменяв его тип и обработку. Вот весело потом по-новой лопатить весь проект пересоздавая и перепривязывая такие точки по всей структуре вручную!
IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
2Николай: тип канала-то как раз можно сменить, это тип источника нельзя.
IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
Создать новый источник нужного типа и перетащить его на нужный канал
отправлено / posted
Легко! Во многих ПЛК, работающих по Модбасу - ВООБЩЕ нет аналоговых величин формата Float! Например контроллеры Delta, там все аналоговые параметры есть целочисленные значения регистров, которые после прочтения еще на 10 надо поделить, чтобы они стали с одним знаком после запятой.
IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
1 и 2 функции чтение битов(COIL) по Модбасу ; а FLOAT реализуется через(3,4) чтение регистров
[ 02.09.2011, 16:30: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
2-й функцией читается целочисленное значение, чтения Coil'ов в ТМ нет, они могут считываться только как байтовое значение (ТМ делает групповой запрос). Насчет продуманности - структура дерева проекта ТМ6 такова, что функционал для одного компонента будет и для других, тут без разницы что во что делать, да хоть 3-ю функцию в 4-ю и наоборот - внутри объектов структуры все одно. Другое дело, что программисту придется сильно поработать в коде, меняя один тип на другой и так по многим источникам ручками придется прописать - я это знаю, сам подобную архитектуру как-то разрабатывал. А теперь представим, что в ТМ6 этих источников сотни - нехилые изменения в коде надо будет делать. Так что - не надейтесь, даже при должном обосновании реализовать такое будет очень трудоемко.
IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
а для чего тогда нужнен параметр число бит ? 4 бита работает другие не пробывал(кто-нибудь использовал ?)
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
Если Вы про каналы, то он всего лишь управляет видимостью бит в списках для привязок, но на самом деле их всегда 16 для Нех16 и 32 для Нех32, никакого другого функционала он не несет.
IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
тест показывает что запрашивается 4 бита,а не 8 или 16. Может это конечно только для ModBus
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |