Как осуществить связь с контроллером SMART, если он подключен через RS-232?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если это контроллер SMARTWare от Control Microsystems, то он должен поддерживать ModBus RTU - значит через каналы подтипа MODBUS.
Posted by dengree (Участник № / Member № 764) on :
Написано SMART – BASE (PEP Modular Computers)
Posted by dengree (Участник № / Member № 764) on :
Если использовать подтип MODBUS, то какое дополнение к подтипу я должен выбрать, если у меня дискретные сигналы и если аналоговые? Как определить адрес ADDR, Таймаут для этого устройства?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Все это уже полностью определяется самим устройством - как у него задается адрес, какие адреса - какие данные содержат, какие функции MODBUS поддерживаются и т.д. Поэтому - Вам все это нужно смотреть уже в документации на этот контроллер, мы здесь уже помочь ничем не можем...
Posted by dengree (Участник № / Member № 764) on :
Почему-то не идет связь co SMART. Связываюсь по протоколу ModBus. Вот лог-файл, помогите разобраться:
Base Editional DRAWSERV 5.12 SUPPORT: NetBios INFO:Load Starting... F:\Мои документы\My Projects\TM2\NODE1.dbb INFO:Detected NT 5.0 INFO:Found 3 channels NET:not defined,but channels with AutoSendend found RS:init string is COM2: baud=9600 parity=N data=8 stop=1 RS:found 3 channels ModBus-IN reda0000 : RS=1 ADDR=1 CMD=3 CH=0001 Q=0 ModBus-IN yellowa0000 : RS=1 ADDR=1 CMD=8 CH=0001 Q=0 ModBus-IN greena0000 : RS=1 ADDR=1 CMD=8 CH=0001 Q=0 RTM:allocated 16 extended buffers INFO: LoadTime=0.04s CalcPeriod=549ms ATTACH: default(PicMan) RS:COM 2 starting... DDE:starting... DDE:wrong NetDDE: Не удается связать службу диспетчера общих баз данных (DSDM) RTM:math kernel starting... SCREEN load error screen.000 INFO:work mode INFO: start time is 0.29 s Load modbus.dll OUT: 01 03 00 01 00 02 95 cb ERR IN5: 01 03 00 20< > f0 RS:COM2 check error (yellowa0000) OUT: 01 03 00 01 00 02 95 cb ERR IN5: 01 03 00 20< > f0 RS:COM2 check error (greena0000) OUT: 01 03 00 01 00 01 d5 ca ERR IN5: 01 03 00 20< > f0 ……………… INFO:stoping... OUT: 01 03 00 01 00 02 95 cb ERR IN5: 01 03 00 20< > f0 RS:COM2 check error (yellowa0000) OUT: 01 03 00 01 00 02 95 cb ERR IN5: 01 03 00 20< > f0 RS:COM2 check error (greena0000) RS:COM2 TRANSACTION=38 ERROR=38 TIME=23.614 TOTAL_BYTE=494 AVR_RESPONSE=0 MAX_RESPONSE=0 DDE:thread stop INFO: stop time is 1.462 s INFO:number of calculation = 42 END OF WORK LINK:unregistrated user Logout DEMO LINK:unregistrated user Logout DEMO
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Какой у Вас задан таймаут в настроках СОМ-порта для узла?
Что-то странный ответ идет от контроллера: 01 03 00 20 f0 - такой ответ не соответсвует формату ответа устройства по ModBus на функцию №3!
Posted by dengree (Участник № / Member № 764) on :
Таймаут задал 300
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Мда... Тут уже скорее всего дело не в таймауте - это что-то не то с контроллером. Вы точно уверены, что у него есть поддержка ModBus RTU. Может имеет смысл посмотреть в описании на данное устройство, что означает его ответ: 01 03 00 20 f0 ??
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Документацию по контроллеру получили. Он же у Вас ISaGRAF'ом запрограммирован - вот и надо выяснять, что за задача запрограммирована в нем и почему он так отвечает на запросы по ModBus. Однако это уже не к нам вопрос, потому как он касается ISaGRAF.
Posted by dengree (Участник № / Member № 764) on :
Да, совершенно верно, это касается ISaGRAF. Оказывается в ISaGRAF, есть своя настройка протокола ModBas. Она запрятана в меню проекта: Файл -> Словарь -> Инструменты -> Карта адресов ModBas для SCADA, такие же адреса каналов ставишь и в Trace Mode, а имя канала можно задать любое.
Posted by dengree (Участник № / Member № 764) on :
Только не ModBas, а ModBus!!!
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
И как - работает?
Posted by dengree (Участник № / Member № 764) on :
Нормально. Вот только не знаю какой таймают ставить, стоит 300, вроде все без ошибок. И что-то проблемы со считыванием дискретных сигналов. Записи идут сразу в восемь бит и не поймешь 0 это или 1.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Дискретные Coil'ы идут упакованными в байт - 8 бит. Вам надо анализировать не атрибут Реальное этого канала, а его соответствующие атрибуты с bit1 по bit16.