This is topic опрос 12 приборов по ModbusRTU 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/000137.html

Posted by ZemskovM (Участник № / Member № 5938) on :
 
Добрый день!
Есть 12 весовых контроллеров. Опрос этих контроллеров идет по ModbusRTU, чтением входного регистра по адресу 0 функцией Rin_Float(4). К каждому контроллеру по отдельности все опрашивается отлично. Частота пересчета канала 1 цикл CALC. Время пересчета узла - 0,5сек.
Если я создаю 12 каналов Rin_Float(4)в источниках/приемниках, которые отличаются только адресом(от 1 до 12), создаю по drag&drop-ом 12 каналов float, то при запуске профайлера я вижу данные только в нечетных каналах (1,3,5 и.т.д), в четных каналах одни нули, хотя данные там должны быть.
Не подскажете куда смотреть? Com-порт, настройки TM6 или может преобразователь USb-Com? Такое ощущение, что проблема достаточно простая, но у меня, похоже не хватает опыта, для ее решения.
Преобразователь ADAM-5461, скорость - 9600.
 
Posted by Nico (Участник № / Member № 5342) on :
 
debug=200 - отладка по COM порту
и файл профайлера смотреть
 
Posted by ZemskovM (Участник № / Member № 5938) on :
 
Nico, спасибо за подсказку, но этот ключ не помог мне решить проблему. Я запустил PortMon и посмотрел, что происходит с обменом. Увидел следующую картину:
27 15:02:15 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 01 04 00 00 00 02 71 CB
28 15:02:15 rtc.exe IRP_MJ_READ Serial2 SUCCESS Length 9: 01 04 04 00 00 3F 80 EB D4
29 15:02:15 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
30 15:02:15 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 02 04 00 00 00 02 71 F8
31 15:02:15 rtc.exe IRP_MJ_READ Serial2 TIMEOUT Length 0:
32 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
33 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
34 15:02:16 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 03 04 00 00 00 02 70 29
35 15:02:16 rtc.exe IRP_MJ_READ Serial2 SUCCESS Length 9: 03 04 04 00 00 00 00 D8 44
36 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
37 15:02:16 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 04 04 00 00 00 02 71 9E
38 15:02:16 rtc.exe IRP_MJ_READ Serial2 TIMEOUT Length 0:
39 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
40 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
41 15:02:16 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 05 04 00 00 00 02 70 4F
42 15:02:16 rtc.exe IRP_MJ_READ Serial2 SUCCESS Length 9: 05 04 04 00 00 42 8E 0E 80
43 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
44 15:02:16 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 06 04 00 00 00 02 70 7C
45 15:02:16 rtc.exe IRP_MJ_READ Serial2 TIMEOUT Length 0:
46 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
47 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
48 15:02:16 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 07 04 00 00 00 02 71 AD
49 15:02:16 rtc.exe IRP_MJ_READ Serial2 SUCCESS Length 9: 07 04 04 00 00 40 A0 AC 3C
50 15:02:16 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
51 15:02:16 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 08 04 00 00 00 02 71 52
52 15:02:16 rtc.exe IRP_MJ_READ Serial2 TIMEOUT Length 0:
53 15:02:17 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
55 15:02:17 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 09 04 00 00 00 02 70 83
56 15:02:17 rtc.exe IRP_MJ_READ Serial2 SUCCESS Length 9: 09 04 04 00 00 40 A0 43 FC
57 15:02:17 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
58 15:02:17 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 0A 04 00 00 00 02 70 B0
59 15:02:17 rtc.exe IRP_MJ_READ Serial2 TIMEOUT Length 0:
60 15:02:17 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
61 15:02:17 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
62 15:02:17 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 0B 04 00 00 00 02 71 61
63 15:02:17 rtc.exe IRP_MJ_READ Serial2 SUCCESS Length 9: 0B 04 04 00 00 42 AA E1 5B
64 15:02:17 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR
65 15:02:17 rtc.exe IRP_MJ_WRITE Serial2 SUCCESS Length 8: 0C 04 00 00 00 02 70 D6
66 15:02:17 rtc.exe IRP_MJ_READ Serial2 TIMEOUT Length 0:
67 15:02:17 rtc.exe IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXCLEAR RXCLEAR

т.е. на каждом четном запросе происходит таймаут. Задача была сделать задержку между опросами, поэтому полез в документацию смотреть настройки com-порта. И нашел там параметр rs-передача, который по умолчанию 0. Я поставил 10 (я так думаю, что это 10мс задержка между запросами) и все заработало! Наверное это какая то особенность этих весовых контроллеров или конкретного преобразователя Adam, теперь уже неважно. Хотя если кто знает в чем была причина, может поделится.
 
Posted by Nico (Участник № / Member № 5342) on :
 
9 ошибка по COM означает что в ответа нет(0 байт)
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2