This is topic Контроллер управления котлом КУК-02 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/000106.html

Posted by Avgorr (Участник № / Member № 2607) on :
 
Здравствуйте!
Помогите разобраться с протоколом Modbus RTU, а именно:

1. Существует контроллер управления котлом КУК-02. Контроллер содержит коммуникационный порт ModBus Server:
- физический уровень RS-485, двухпроводная линия;
- канальный уровень MODBUS Serial Line в режиме RTU;
- формат символа: 1 старт бит, 8 бит данных, младший бит передаётся первым, контроля чётности нет, 2 стоп бита;
- скорости обмена 9600, 19200, 38400, 57600, 115200, 0.25М, 0.5М, 2М;
- диапазон сетевых адресов 1...247.
Поддерживаемые функции: 01, 02, 03, 04, 05, 06, 15, 16.
Цифровые входы/выходы и регистры адресуются начиная с 0, т.е. регистр №1 имеет адрес 0000h.
Полное описание: http://www.sktbpe.com/downloads/file/kuk2.pdf
2. Есть контроллер WinPAC WP-8441.

Необходимо получить данные с КУК-02 на WP-8441.

Создал проект, в источниках приёмниках компонент Modbus с функциями Rout_word (3).
Задал в файле *.cnf ключ DEBUGON=200.
Данные не приходят, а в логе такие сообщения:

(9:53:59) INF_RTM:CE.eRT 5.0
(9:53:59) INF_RTM:Professional RTM+ ver. 6.08.0
(9:53:59) INF_RS:init string is COM2:: baud=19200 parity=N data=8 stop=2
(9:53:59) WRN_RS:found channels = 1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: f7 df ef ff ef 7f bf
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: df 7f df ff df ef ff
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff ff df ff df ff 7f
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: 5f<_> 7f ef f7 ff ef f7
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff ff bf df de 7f 6f<o>
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff df 7f ff 77<w> f5 ff
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff df f7 ff ff d7 bd
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff fb dd ff 5f<_> ff 6d<m>
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: f5 d7 ff cf ef bf ff
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: df 7f ed f5 ff 7f 77<w>
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: bb df f7 df df ff f7
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: 6f<o> ff df ff df ff af
(9:54:6) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff f7 ff ed ff f7 ff
(9:54:7) WRN_RS:COM2 error 10 Rout_Word(3)#1
...
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff f7 ef ff ff 7d<}> d7
(9:54:22) WRN_RS:COM2 error 10 Rout_Word(3)#1
(9:54:23) INF_RS:COM2 TRANSACTION=258 ERROR=258 TIME=21.088
(9:54:23) INF_RS: TOTAL_BYTE=3870 AVR_RESPONSE=-16.065 MAX_RESPONSE=0.133

Подскажите в чём может быть проблема?
 
Posted by Nico (Участник № / Member № 5342) on :
 
первый байт ответа контроллера должен совпадать
с первым байтом запроса и = сетевому адресу

поскольку ответ "бредовый" то скорей всего:
.провода
..не верная скорость или формат
...не RS485

для проверки можно запустить узел на PC
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
Оборудование находится 25 км от города. Порт прослушать не получится. КУК-02 снять для эксперимента тоже нельзя. Несколько раз пытал монтажников, как они подключили, и какие настройки RS-485 выставили. Уверяют, что скорость 19200, адрес 1.
Если в проекте для эксперимента изменить скорость RS на 4800, 9600, то в логе пишется тоже самое.
Если поставить скорость 38400, то пишется чуть по другому:

(8:37:13) INF_RTM:CE.eRT 5.0
(8:37:13) INF_RTM:Professional RTM+ ver. 6.08.0
(8:37:13) INF_RS:init string is COM2:: baud=38400 parity=N data=8 stop=2
(8:37:13) WRN_RS:found channels = 1
(8:37:22) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:37:23) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:37:25) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:37:27) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff
(8:37:28) WRN_RS:COM2 error 10 Rout_Word(3)#1
(8:37:29) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:37:31) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: 6f<o>
(8:37:32) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: 6f<o>
(8:37:32) WRN_RS:COM2 error 10 Rout_Word(3)#1
(8:37:34) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:37:34) INF_RS:COM2 TRANSACTION=10 ERROR=10 TIME=16.132
(8:37:34) INF_RS: TOTAL_BYTE=83 AVR_RESPONSE=-8.752 MAX_RESPONSE=1.053

Если поставить скорость 57600, то пишется так же как и в первом случае, но ответы по короче:

(8:44:46) INF_RTM:CE.eRT 5.0
(8:44:46) INF_RTM:Professional RTM+ ver. 6.08.0
(8:44:46) INF_RS:init string is COM2:: baud=57600 parity=N data=8 stop=2
(8:44:46) WRN_RS:found channels = 1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ef ef ef ff ef e7
(8:44:53) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff
(8:44:54) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff ef
(8:44:54) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ff e7
(8:44:54) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ef ef
(8:44:54) WRN_RS:COM2 error 10 Rout_Word(3)#1
M_INF:OUT: 01 03 00 14 00 01 c4 0e
M_INF:ERR IN: ef ef ff ef
(8:44:54) WRN_RS:COM2 error 10 Rout_Word(3)#1
...

Если поставить скорость 115200, то лог:

(8:48:5) INF_RTM:CE.eRT 5.0
(8:48:5) INF_RTM:Professional RTM+ ver. 6.08.0
(8:48:5) INF_RS:init string is COM2:: baud=115200 parity=N data=8 stop=2
(8:48:5) WRN_RS:found channels = 1
(8:48:41) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:48:42) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:48:44) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:48:46) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
(8:48:48) ERR_RS:COM:2 Read 0 symbol(err=9 ch=Rout_Word(3)#1[1])
...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Без перехвата трафика COM-порта, видимо, не обойтись.
Проблема явно на физическом уровне.
Самое простое - все-таки запустить тот же узел на ПК и запротоколировать обмен. При необходимости - с перехватом через PortMon.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Дополнительно следует провести следующий эксперимент с тем же протоколированием.
На штатных настройках COM-порта, совпадающих с настройками в контроллере, изменить в проекте номер Modbus-устройства так, чтобы он не совпадал с Modbus-номером контроллера.
Но наиболее убедительная диагностика будет получена при организации связи контроллера с ПК - запуском того же узла проекта на ПК.
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
Изменяю адрес Modbus-устройства в источниках приёмниках на любой произвольный, а также больше 247 - протокол такой же "бредовый".
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Первый вариант - на линии RS-485 присутствует какой-то поток данных от устройства, подключенного к этой линии или шум вследствие несогласованности или неправильного монтажа физического канала RS-485 или питания его приемо-передатчиков.
Контроллер WinPAC в данном случае получает не ответ от КУК-2, а ложный шум. Надо работать с линией RS-485.
Второй вариант - брак в работе COM2 контроллера WinPAC. Надо проверить этот порт на подключении к другой линии.
Если запустить тот же узел на ПК и подключить его к КУК-2, можео исключить гипотезу "возможного брака COM2 контроллера WinPAC".
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
Спасибо.
На следующей неделе поеду на объект.
 
Posted by Avgorr (Участник № / Member № 2607) on :
 
Вопрос решился. Оказывается на КУК-2 интерфейс обозначен: A,B, на WinPAC: +D,-D. Наладчики подключили A на +D, B на -D. Переделали наоборот и всё заработало.
Тему можно закрыть.
Спасибо.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2