Настраиваем соединение с контроллером SMH2010, все настройки добавил в виде картинок.
Если соединять через OPC (Lectus) то никаких проблем нет, данные принимаются и отображаются.
Подскажите пожалуйста, в чём проблема в этом случае. Спасибо.
[ 02.08.2012, 10:12: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Релиз 6.08? Надо полагать, что OPC-Lectus Вы запускаете на том же ПК и через тот же COM3. Перед запуском профайлера OPC-Lectus выгружается.
1. Необходимо убедиться, что в протоколе профайлера и в tm6_log.txt нет сообщений об ошибках, что запросы от профайлера формируются (любым перехватчиком трафика COM-порта).
2. Необходимо изменить адрес контроллера в сети MODBUS и соответственно задать его в настройке "Источника" в проекте. По стандарту Modbus 0-й адрес устройства используется для широковещательных Modbus-посылок. На эти посылки не ожидаются ответы. Профайлер будет посылать запросы, но ответы принимать не будет.
Posted by Nico (Участник № / Member № 5342) on :
Адрес устройства 0 рассматривается как общийи(описание modbus) ответ не ожидается
Posted by evaskin (Участник № / Member № 5749) on :
Nico, возможно, сможете проконсультировать по ещё одному вопросу?
Насчёт адреса разобрался, спасибо, но теперь есть другая проблема:
При подключении входных каналов скада нормально читает только переменные класса int, переменные же класса bool/real/float читает как-то криво, значения не выводятся.
Каким-то образом это возможно исправить? Не хотелось бы оперировать только int'овыми переменными.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
"переменные класса bool/real/float " - где они имеют такие типы? У Modbus-Slave? Для чтения битовых переменных (Coil или дискретных входов) в драйвере существуют функции Rout_Byte(1) и Rin_Byte(2) соответственно. Для этого используются каналы HEX16. Для чтения переменных формата Float существуют функции Rout_Float(3) и Rin_Float(4). Чтение осуществляется в каналы Float. Считываются на каждую переменную 2 регистра. Соответственно надо осуществлять их адресацию. Кроме того, следует обратить внимание на возможные отклонения в порядке передачи байтов в 4-байтовом числе (см. описание файла modbus.set в разделе "Обмен с контроллерами/Обмен по встроенным протоколам/Обмен по Modbus").