Здравствуйте! Я сделал проект по видеоролику "Подключение контроллеров к SCADA TRACE MODE по протоколу Modbus". Один в один. Далее пробую либо подключать к другому порту компьютера, на котором запускаю проект и читать регистры эмулятора модбас слэйв, либо к другому компьютеру (но уже через преобразователь usb<->rs-232). Результат - никакого обмена. Вот лог PortMon. Сначала запуск RTM 0 0.00063456 rtc.exe IRP_MJ_CREATE Nmserial0 SUCCESS Options: Open 1 0.00000157 rtc.exe IOCTL_SERIAL_GET_BAUD_RATE Nmserial0 SUCCESS 2 0.00000056 rtc.exe IOCTL_SERIAL_GET_LINE_CONTROL Nmserial0 SUCCESS 3 0.00000051 rtc.exe IOCTL_SERIAL_GET_CHARS Nmserial0 SUCCESS 4 0.00000043 rtc.exe IOCTL_SERIAL_GET_HANDFLOW Nmserial0 SUCCESS 5 0.00000311 rtc.exe IOCTL_SERIAL_SET_QUEUE_SIZE Nmserial0 SUCCESS InSize: 16392 OutSize: 8192 6 0.00000043 rtc.exe IOCTL_SERIAL_GET_BAUD_RATE Nmserial0 SUCCESS 7 0.00000043 rtc.exe IOCTL_SERIAL_GET_LINE_CONTROL Nmserial0 SUCCESS 8 0.00000040 rtc.exe IOCTL_SERIAL_GET_CHARS Nmserial0 SUCCESS 9 0.00000040 rtc.exe IOCTL_SERIAL_GET_HANDFLOW Nmserial0 SUCCESS 10 0.00000532 rtc.exe IOCTL_SERIAL_SET_BAUD_RATE Nmserial0 SUCCESS Rate: 9600 11 0.00000257 rtc.exe IOCTL_SERIAL_CLR_RTS Nmserial0 SUCCESS 12 0.00000259 rtc.exe IOCTL_SERIAL_CLR_DTR Nmserial0 SUCCESS 13 0.00000150 rtc.exe IOCTL_SERIAL_SET_LINE_CONTROL Nmserial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 14 0.00000058 rtc.exe IOCTL_SERIAL_SET_CHAR Nmserial0 SUCCESS EOF:1a ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 15 0.00000407 rtc.exe IOCTL_SERIAL_SET_HANDFLOW Nmserial0 SUCCESS Shake:0 Replace:0 XonLimit:2048 XoffLimit:512 16 0.00000040 rtc.exe IOCTL_SERIAL_GET_WAIT_MASK Nmserial0 SUCCESS 17 0.00000049 rtc.exe IOCTL_SERIAL_GET_TIMEOUTS Nmserial0 SUCCESS 18 0.00000042 rtc.exe IOCTL_SERIAL_SET_TIMEOUTS Nmserial0 SUCCESS RI:50 RM:1 RC:300 WM:20 WC:1000
Далее после запуска проекта идут такие строчки, не останавливаясь 19 0.00000555 rtc.exe IOCTL_SERIAL_PURGE Nmserial0 SUCCESS Purge: TXCLEAR RXCLEAR 20 0.00000555 rtc.exe IOCTL_SERIAL_PURGE Nmserial0 SUCCESS Purge: TXCLEAR RXCLEAR ......
Подскажите, пожалуйста, в чем проблема. Версия TM 6.08, Профайлер 6.08. Windows XP SP3. COM-порты на плате расширения PCI (драйвер ASIX Electronics Corporation). При использовании других утилит для обмена через последовательный интерфейс (с порта на порт) обмен идет.
Posted by Nico (Участник № / Member № 5342) on :
Нет каналов для обмена по ModBus или они сконфигурированы не на этот СОМ порт
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В узле нет каналов, настроенных на запросы по Modbus именно через этот COM-порт.
Posted by sorochinskii (Участник № / Member № 6055) on :
Порты
Конфигурация порта
Конфигурация источника modbus
Конфигурация канала
Я не понимаю, что неправильно)
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Какого типа канал Rin_Word(4)#1 - Input или Output? Должен быть Input. Задайте в файле TMcom_<ordinal>.cnf ключ DEBUGON=200 и посмотрите в профтоколе профайлера записи по работе с COM-портом.
Posted by sorochinskii (Участник № / Member № 6055) on :
Типа канала - Input. Протокол ниже (12:4:22) INF_LOAD:Starting... MB_test3_0 (12:4:22) INF_RTM:Detected NT5.RTM 5.1 (12:4:22) INF_RTM:Base TRACE MODE 6 Profiler T-Factory RTM+ ver. 6.08.0 (12:4:22) ._.:RTM (12:4:22) INF_LOAD:max channel = 65535 (12:4:22) INF_LOAD:Load Channels = 3 (12:4:22) INF_LOAD:Templates=1 (math=0 sql=0 scr=1 doc=0 pnl=0) (12:4:22) INF_LOAD:Objects = 3 (12:4:22) INF_RTM:Timer=0.055s CalcLoop=550ms (12:4:22) INF_RS:init string is \\.\COM1: baud=9600 parity=N data=8 stop=1 (12:4:22) WRN_RS:found channels = 0 (12:4:22) INF_LOAD:LoadTime=0.063s CalcPeriod=550ms (12:4:22) INF_RTM:free_mem=799(814) handle=0 user=0 gui=0 after load (12:4:22) INF_RTM:DayLight enabled (12:4:23) INF_RTM:ModeSwitch e15=0000 e18=0000 e20=0000 [0] (12:4:23) INF_RTM:mode=2(Work) e15=00 e18=00 e20=00 [0-0-src4] (12:4:23) INF_RTM:start time is 0.016 s (12:4:23) INF_RTM:free_mem=799 handle=0 user=0 gui=0 after start (12:4:23) INF_GRAPH:popup=0 scrref=0 trend=0,0 update=1 (12:11:13) INF_RTM:stoping... (12:11:13) INF_RTM:mode=5(Stop) e15=00 e18=00 e20=00 [0-0-src0] (12:11:13) INF_RS:COM1 TRANSACTION=0 ERROR=0 TIME=410.875 (12:11:13) INF_RS: TOTAL_BYTE=0 AVR_RESPONSE=0 MAX_RESPONSE=0 (12:11:13) INF_RTM:stop time is 2.016 s (12:11:13) INF_RTM:number of calculation = 741 (12:11:13) INF_RTM:END OF WORK
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Из этого протокола: (12:4:22) INF_RS:init string is \\.\COM1: baud=9600 parity=N data=8 stop=1 (12:4:22) WRN_RS:found channels = 0
Каналы для обмена по этому COM-порту не найдены.
Posted by sorochinskii (Участник № / Member № 6055) on :
Создал ещё три источника Modbus с портами 2, 3, 4. Но опять ничего. Какая может быть причина в том, что каналы не найдены, учитывая, что каналы созданы и настроены? Может кто-нибудь глянет проект? http://goo.gl/R3wbb (Файл->Скачать)
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Присылайте проект (файл *.prj) на hotline@adastra.ru.
Posted by sorochinskii (Участник № / Member № 6055) on :
Отправил.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Проверьте, пожалуйста, в IDE настройку "Файл/Настройки ИС/Сохранить для МРВ/Глубина отслеживания источников". Там должна стоять "1".
Posted by sorochinskii (Участник № / Member № 6055) on :
Проверил - стояла "3". С "1" и "2" обмен идет. Спасибо!
В справке сказано: "В цепочках вида канал–источник/приемник1–источник/приемник2 можно задать порядковый номер источника/приемника, который будет использован при экспорте узла". Правильно ли я понимаю, что если источник/приемник2 подключен к источнику/приемнику1, который подключен к каналу и, установив "отслеживание глубины вложенности" в "1", источник/приемник2 игнорируется?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :