alexNN Posted February 25, 2014 Share Posted February 25, 2014 Добрый день! Не могли бы Вы мне выслать протокол IPSerial для Nport 5450. Спасибо! Link to comment
KotikBSD Posted March 4, 2014 Share Posted March 4, 2014 Необходимо подключатся по TCP к NPORT D-311 который работает как rs485 в режиме TCP-Server. Прошу выслать описание протокола на адрес в профиле. Спасибо! Link to comment
sansunny Posted March 7, 2014 Share Posted March 7, 2014 Добрый день! Подскажите будет ли работать такая схема : Устройство RS-232 - NPort IA5150AI - Ethernet (vpn разные подсети) - NPort 5450I - Устройство передающее дальше RS-232( можно проверить получение данных). NPort IA5150AI находится в сети 10.10.x.x, NPort 5450I - в сети 10.10.y.y. Настройка TCP сервер - клиент ничего не дает. Link to comment
deimos-85 Posted June 17, 2014 Share Posted June 17, 2014 Пишу клиент на С++ для серии NPort 5ххх в режиме TCP Server, обращение через виртуальный СОМ-порт нас не устраивает, хотим общаться с нашими приборами через IP. Не могли бы выложить необходимые настройки для создаваемого сокета-клиента, таймауты, чтобы можно было написать качественное ПО к вашему оборудованию. Link to comment
Komantsev Posted June 17, 2014 Share Posted June 17, 2014 Добрый день, Никаких особых настроек сокета не требуется. Просто соединяйтесь по TCP с NPort (по умолчанию COM1 = TCP:4001, COM2 = TCP:4002 итд) и передавайте в открытый сокет данные. Эти данные в неизменном виде выйдут из COM-порта NPort. Аналогично все получаемые в COM-порта данные NPort передаст в этот сокет, и Вы сможете прочитать их с PC. Link to comment
deimos-85 Posted June 18, 2014 Share Posted June 18, 2014 В целом всё работает, но есть проблема. Для тестов NPort подключен напрямую к компьютеру по Ethernet, на 485 выходе находится прибор, работающий по протоколу Modbus (всё собрано на столе). Если я буду обращаться к прибору не через NPort, а через адаптер 485-интерфейса, то при посылке на него данных, получу 100% ответов. При обращении к прибору через NPort от 10 до 15% посылок теряется. Если посмотреть через веб-сервер МОХА статистику, то видно, что в такой момент на NPort пришло нужное кол-во байт, но в ответе оказалось 0 байт. То есть прибор отвечал, но NPort передавать ничего не стал, хотя FIFO-буфер по идее должен был сохранить и передать данные позже. За основу клиента взят пример с MSDN Complete Winsock Client Code, но в чистом виде он не работает, команду shutdown я не использую, потому что тогда сокет при последующем recv закроет соединение. Также со стороны приложения-клиента видно, что в момент пропажи ответа сокет занят, приходится выходить по таймауту select’а. При обращении к NPort, находящемся на объекте, потеря одиночных запрос-ответ составляет уже 30-35%. Отсюда мне непонятно, как работает и чем занимается TCP Server между приёмом и передачей. Вы можете предоставить какой-то алгоритм, или программный пример клиента для работы с сервером? Link to comment
Komantsev Posted June 18, 2014 Share Posted June 18, 2014 Здравствуйте, К сожалению, какого-то программного примера нет. Поверьте, нет никаких тонкостей в работе с TCP. Для диагностики соединения мы зачастую подключаемся к NPort обычным telnet'ом и передаем данные в telnet-сессии. Есть в настройках NPort (там, где задаете режим работы TCP Server) параметр Force Tx Timeout (в некоторых версиях он называется Force Transmit), который регулирует упаковку данных с Serial в TCP. Попробуйте поставить там значение 2-3 мс. Зачастую помогает. Также уточните, что у Вас за модель NPort. Может быть, какие-нибудь есть тонкости, связанные с конкретной моделью. Link to comment
deimos-85 Posted June 20, 2014 Share Posted June 20, 2014 Да, это полезный параметр, и ставить для Modbus его нужно. Сделал вывод, что 100% ответов добиться не получится, NPort чем-то ещё занимается в некоторые моменты времени. Link to comment
Komantsev Posted June 20, 2014 Share Posted June 20, 2014 Да, для Modbus этот параметр точно необходим! Связь удалось улучшить, но частично? Все равно ошибки вряд ли связаны с пропускной способностью NPort: если NPort нагрузить постоянным трафиком на максимальной скорости, то он всё будет передавать без потерь. Возможно, получится что-то отрегулировать в NPort на стороне RS-485. Какая все-таки модель у Вас используется? Link to comment
deimos-85 Posted June 20, 2014 Share Posted June 20, 2014 Используется NPort 5130, на стороне RS485 стоит прибор, который после получения данных, отсылает ответ через 10 мс (интервал тишины в протоколе 485), скорость 19200, эта пауза считается слишком длинной? Поставил на приборе интервал тишины 2 мс и Force Tx Timeout 2 мс. Теперь передаётся всё без потерь. Спасибо за советы ) Link to comment
Komantsev Posted June 20, 2014 Share Posted June 20, 2014 Спасибо за информацию! Да, Force TX достаточно поставить в 2 мс. В Вашем случае, если скорость 19200, то время передачи одного байта - 0.5 мс. Поэтому за 2 мс NPort мог бы получить целых 4 байта, этого времени обычно достаточно, чтобы понять, что пакет окончен. Ещё в модельке 5130 можно подстроить нагрузочные резисторы на RS-485. Для этого надо снять крышку устройства и замкнуть два джампера (JP3 и JP4), находящиеся рядом с разъемом COM-порта. Некоторые подключенные устройства работают корректнее именно с замкнутыми джамперами. Надо экспериментировать. Но если у Вас теперь всё стабильно, то лучше джамперы не трогать Link to comment
DyadyaMisha Posted September 26, 2014 Share Posted September 26, 2014 Добрый день! Нужна документация по IPSerial, устройство NPort 5150 Заранее спасибо! Link to comment
Незнайка Posted September 26, 2014 Share Posted September 26, 2014 Добрый день! Держите. Link to comment
Raizer Posted April 23, 2015 Share Posted April 23, 2015 Не могли бы Вы мне выслать протокол для Nport 5230 Link to comment
Helga Posted May 10, 2015 Share Posted May 10, 2015 На нашей фирме мы используем много ваших NPorts для подключения приборов в сеть. Я обычно программировала на LabVIEW и не было никаких проблем. Но меня попросили считать данные из VBA Excel, у нас формы на Excel используются в производстве. И у меня сходу не получилось. Я пыталась соединиться через IPSerial.dll, функции Nport'a, выдается ошибка (-200). Почитав форум, я думаю, что надо к IP адресу добавить порт. У меня COM23, значит nsio_open("10.20.20.245:4023",1,3000), модель NPort 5110A. NPort Administrator на компьютере установлен. Программа на LabVIEW работает через виртуальный COM23. Пробовала на С#, тоже не могу подключиться. Ни через IPSerial.dll, ни через виртуальный порт. Надо ли дополнительно настраивать Firewall? Вышлите мне тоже чего-нибудь. Спасибо! Link to comment
deimos-85 Posted May 12, 2015 Share Posted May 12, 2015 Helga, вы уверены, что порт 4023?) Порт для подключения зависит от Operation mode, который вы выбрали в настройках. Для Real COM Mode порт 950, а если выбран TCP Server Mode порт по умолчанию 4001, если не меняли в Local TCP Port. Link to comment
Helga Posted May 12, 2015 Share Posted May 12, 2015 К сожалению, я ни в чем не уверена. Но я все попробовала и 4001 и 4023. Установила PComm Terminal, с трудом, но получила ответ с прибора. Прибор тоже немного не стандартный. Пока пытаюсь разобраться в настройках. И как проще: виртуальный порт или TCP-Server? Link to comment
Helga Posted May 12, 2015 Share Posted May 12, 2015 Смотрю PCOMM.H, даты пугают! /* PComm_c.h * PComm define file for Win32 on C/C++ * History: * Date Author Comment * 10/22/1996 Victor wrote it. * 03/28/1997 Victor modified. add sio_term_irq function. * add sio_linput function. * 04/29/1997 Victor modified. add sio_putb_x function. * 05/21/1997 Victor modified. add sio_view function. * 06/13/1997 Victor modified. add file transfer function. * 06/30/1997 Victor modified. add sio_TxLowWater function. * 11/17/1997 Victor add sio_AbortWrite, sio_SetWriteTimeouts * 11/21/1997 Victor add sio_SetReadTimeouts, sio_AbortRead * sio_GetReadTimeouts, sio_GetWriteTimeouts * 03/08/1998 Casper support VB 5.0 * * 04/27/1999 Casper add sio_ActXon, sio_ActXoff, sio_break_ex */ Можно ли это применять? Link to comment
Timoshuk Posted May 13, 2015 Share Posted May 13, 2015 Здравствуйте! Давайте начнем разбираться в проблеме с того, что определимся с настройками Вашего NPort. Не могли бы Вы выложить конфигурационный файл NPort? Его можно экспортировать с помощью NPort Administrator. Link to comment
Helga Posted May 18, 2015 Share Posted May 18, 2015 Извените за задержку, была в отпуске. Хочу сегодня попробовать visa32.dll от LabVIEW. Нужный порт - 23. Файл прикреплен. Спасибо за внимание! COM23.txt Link to comment
Helga Posted May 18, 2015 Share Posted May 18, 2015 Option Explicit ' Declarations for VISA.DLL ' Basic I/O Operations Private Declare Function viOpenDefaultRM Lib "VISA32.DLL" Alias "#141" (sesn As Long) As Long Private Declare Function viOpen Lib "VISA32.DLL" Alias "#131" (ByVal sesn As Long, _ ByVal desc As String, ByVal mode As Long, ByVal TimeOut As Long, vi As Long) As Long Private Declare Function viClose Lib "VISA32.DLL" Alias "#132" (ByVal vi As Long) As Long Private Declare Function viRead Lib "VISA32.DLL" Alias "#256" (ByVal vi As Long, _ ByVal Buffer As String, ByVal Count As Long, retCount As Long) As Long Private Declare Function viWrite Lib "VISA32.DLL" Alias "#257" (ByVal vi As Long, _ ByVal Buffer As String, ByVal Count As Long, retCount As Long) As Long Sub VISALV_COM23() On Error GoTo ErrAllgemein Debug.Print "Start" Dim s As String Dim status, defaultRM, in_str, writeCount, retCount s = "?TE" & Chr$(13) status = viOpenDefaultRM(defaultRM) Debug.Print "VISA open: " & status & " Handle: " & defaultRM status = viOpen(defaultRM, "ASRL23::INSTR", 0, 5000, in_str) Debug.Print "VISA_Gerät open: " & status & " Handle: " & in_str status = viWrite(in_str, s, Len(s), writeCount) status = viRead(in_str, s, 100, retCount) Debug.Print "String: " & s & "Count: " & retCount status = viClose(in_str) status = viClose(defaultRM) Debug.Print "Finished" Exit Sub ErrAllgemein: Debug.Print Err.Description End Sub Link to comment
Helga Posted May 18, 2015 Share Posted May 18, 2015 Ура! Заработало! http://www.manualslib.com/manual/72993/Hp-Hp-34970a.html?page=320 http://www.ni.com/visa/ Link to comment
Незнайка Posted September 2, 2015 Share Posted September 2, 2015 Добрый день! А собственно как вы хотите работать? Если совсем-совсем напрямую - то переводим NPort в режим TCP-Server и вперед - взаимодействуем с ним через 4001 TCP-порт (по умолчанию для порт_1). Что туда пошлём - то и "выпадет" в последовательный интерфейс. Или надо что то другое? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now