Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужен преобразователь Tcp/ip -> несколько 485
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Dmr
Добрый вечер. Вот есть необходимость в преобразователе, который бы мог преобразовывать данные получаемые по TCP/IP в несколько RS-485/232, причем порты должны настраиваться на разные скорости, биты данных, стоповые и т.д., и от всех портов данные поступать через одно соединение (сокет), желательно по приоритету порта. Все что нашел в интернете - это одно соединение на один порт. Кто чего подскажет?
manjey73
один COM порт, один порт TCP, сокетов может быть несколько. Не путайте сокет и порт TCP

USR-IOT 1, 2, 4 портовые.

Ну еще Moxa 8, 16 портов.
Dmr
Еще раз, может не очень ясно написал. Есть сервер, с ним по tcp/ip или к нему тоже по tcp/ip происходит соединение с устройством (конвертером). Соединение - сокет. Все. Вот мне не нужно чтобы на каждый порт (485, не tcp/ip) создавалось соединение, вот есть одно на всех и будя! Все что вы перечислили не то, это все есть у нас на объектах, нужно вот иное.
Олег_
Странное пожелание, жалко сокетов на сервере, их же обычно дофига?
Такое пожелание может иметь смысл, если сервер это контроллер с ограниченным количеством TCP подключений, в этом случае простой преобразователь вроде моксы не прокатит, нужен посредник, контроллер или панель, который опросит кого надо, сложит данные у себя в памяти и отдаст дальше.

------------
Если сервер комп, не мучайте свои мозги.
manjey73
Dmr думаю если вы свои пожелание напишите в Moxa, они вас тоже не поймут...

Еще раз для не сведующих в IT, на один порт TCP можно создать несколько сокетов, но работать они будут только с тем оборудованием, которое прописано на данном порту и никак иначе.

Если у вас есть Moxa 2-х или более портовая, можете попробовать назначить один и тот же порт на два различных интерфейса и сами увидите, что оно вам скажет...

Или опишите более корректно, что же вам надо, чтобы и остальные форумчане поняли что вы хотите...

Ну или можете попробовать настроить ту же Moxa в роли TCP клиентах и писать ПО себе на сервере... ЧТо думаю тоже будет не сахар...
Олег_
Как раз у Моксы на каждый физический порт назначен TCP порт (950 и выше) и соответственно на него на компе нужно открывать сокет и тупо писать, читать его.
Возможно и существуют преобразователи, в которых в один сокет запихивают данные на все железные порты, но это неудобно с точки зрения программиста т.к. возникает необходимость какого то дополнительного протокола для железяки.
Так вот нафига изобретать этот протокол, если сокетов на компе немеряно?
manjey73
блин, еще раз. например мохa(IP адрес 10.10.10.10) имеет два порта COM.

один будет 10.10.10.10:4000(порт первого COM)
второй будет 10.10.10.10:4001(порт второго COM)

к каждому из портов 4000 или 4001 может подключатья НЕСКОЛЬКО клиентов, сколько там Moxa поддерживает сокетов на порт.

Но сделать так, чтобы и COM1 и COM2 Moxa работали по одному адресу и порту 10.10.10.10:4000 не видел ни у одного производителя, потому что это нонсенс...
Dmr
Цитата(Олег_ @ 30.10.2019, 12:55) *
Странное пожелание, жалко сокетов на сервере, их же обычно дофига?
Такое пожелание может иметь смысл, если сервер это контроллер с ограниченным количеством TCP подключений, в этом случае простой преобразователь вроде моксы не прокатит, нужен посредник, контроллер или панель, который опросит кого надо, сложит данные у себя в памяти и отдаст дальше.

------------
Если сервер комп, не мучайте свои мозги.

Ну зачем странное... У нас в данный момент каждый объект подключается к серверу по определенному порту, сервер передает это соединение в поток опроса объекта порт соответственно меняется, но на 1 объект - 1 сокет (1соединение). На нижнем уровне стоит ПЛК за преобразователем TCP/IP - 232, этот ПЛК получает команду от сервера в которой прописано какой порт открыть, на какой скорости и т.д. и сколько подождать ответа, далее ПЛК опрашивает приборы и отвечает наверх. На 1-й шине 485 у нас сидит несколько приборов с 1 адресом но на разных скоростях ошибок в опросе нету, все четко работает. Вот сервер может вести опрос и не по протоколу ПЛК, а напрямую собранные команды кидать по TCP/IP но без ПЛК нужен вот такой преобразователь о котором я написал. Сейчас мне оценивают работу по разработке устройства и это будет недешево. Так вот если есть железяка которая может быть запрограммирована (ну хотя бы так), то где ее посмотреть и как она называется. ПЛК с преобразователем выходят немного дорого, заказчик хочет удешевить систему. Решения есть вот от моха и юср иот недорогие, но они не работают в том режиме в котором я написал.
Да и конечно я подумаю о том чтобы реализовать возможность на сервере иметь много соединений на каждый объект, ну хотя бы даже поприборно, сейчас этого нет, да и изначально как-то в будущем не просматривалось, что захотят убрать ПЛК из схемы.
manjey73
Вы можете нарисовать структуру сетей и устройств в ней, и направления движения запросов и ответов, чтобы понять что вы вообще хотите ?

вообще забавно, влепить на шину различные устройства с одним адресом пусть даже и с разной скоростью...

за такое по пальцам надо стучать smile.gif

все спецификации RS485 нарушили, теперь под свои ищите решения smile.gif
manjey73
учитывая, что приборы на разных скоростях..

1. привести скорости приборов к одной, ну или к минимуму расхождений и с одинаковыми настройками приборы повесить на свою линию

2. приборам назначить разные адреса

поставить преобразователь с нужным количеством портов, которые настроить соответственно скоросям групп приборов.

Настроить сервер на опрос приборов без ПЛК, настроив соответствующие линии связи..

хз, что у вас там за ПО, в которое надо стучаться, хотя вроде по вашим словам все таки ПО стучится в ПЛК, давая ему команды а не наоборот...
Олег_
Цитата(Dmr @ 30.10.2019, 14:02) *
сервер передает это соединение в поток опроса объекта порт соответственно меняется, но на 1 объект - 1 сокет (1соединение).


Так у вас сервер, или роутер?

Сервер вроде нужен чтобы собрать данные с железяк и раздать всем желающим, если это действительно сервер. Он же и команды должен железякам отправлять по просьбе желающих.
Может не железяку новую искать, а пересмотреть сам сервер и клиентов?
ganz72
Использовал MOXA серии NPort на 4 и 8 портов rs485. Отлично работают. Каждый порт свои настройки может иметь.
PS. Не понял сначала, что автору друга неведома железка нужна, сорри.
manjey73
LordN а ТС прочесть не пробовали ? его заставляют избавиться от ПЛК, типа дорого. И это, чтобы ПЛК прочесть тоже железка нужна, роутер или если правильно понял автора в его случае Ethernet - RS232.

Стоимость преобразователя интерфейса куда ниже стоимости ПЛК, при условии, что можно обойтись 1 или 2 портами на выходе.

Опрос всех приборов сразу Scada а не через прокладку в виде ПЛК. меньше цена, пятак автору за экономию...
Dmr
Цитата(ganz72 @ 30.10.2019, 18:31) *
Использовал MOXA серии NPort на 4 и 8 портов rs485. Отлично работают. Каждый порт свои настройки может иметь.
PS. Не понял сначала, что автору друга неведома железка нужна, сорри.


http://npu-scart.ru/images/АРМ_17.06.2019_H.mp4

Вот нужно, очень. Еще много объектов планируется, а такую железяку бы в самый цвет было бы. Сервер переделывать на то чтобы работал по-другому очень много времени уйдет, хотя может и нет. Нужно будет посидеть подумать.
LordN
Цитата(manjey73 @ 31.10.2019, 0:30) *
LordN а ТС прочесть не пробовали ? его заставляют избавиться от ПЛК, типа дорого. И это, чтобы ПЛК прочесть тоже железка нужна, роутер или если правильно понял автора в его случае Ethernet - RS232.

Стоимость преобразователя интерфейса куда ниже стоимости ПЛК, при условии, что можно обойтись 1 или 2 портами на выходе.

Опрос всех приборов сразу Scada а не через прокладку в виде ПЛК. меньше цена, пятак автору за экономию...

читал, пробовал понять и насколько понял у него проблема не с плк, а проблемы с ним связанные т..к все работает как-то через задницу.

т.е. связь нижнего уровня плк - порты, там всё нормально, а вот плк - скада начинаются какие-то косяки которые его не устраивают. и он вместо того чтобы поменять свой плк на тот который избавит от геммороя ищет способ избавиться от плк и поиметь другой гемморой.

это то, что я понял из текста. если был текст о другом - ну..
Dmr
Цитата(LordN @ 30.10.2019, 21:10) *
читал, пробовал понять и насколько понял у него проблема не с плк, а проблемы с ним связанные т..к все работает как-то через задницу.

т.е. связь нижнего уровня плк - порты, там всё нормально, а вот плк - скада начинаются какие-то косяки которые его не устраивают. и он вместо того чтобы поменять свой плк на тот который избавит от геммороя ищет способ избавиться от плк и поиметь другой гемморой.

это то, что я понял из текста. если был текст о другом - ну..

Нет, нет, нет все работает хорошо. Но надо дешевле, я же писал об этом. Геммороя как раз не нужно, и чесать где не чешется так же не нужно. Надо чтобы было как можно проще, дешевле и сердитее. Менять на ваш очень хороший сигнетик точно не будем, навязчиво рекламируете его, я понял что он безупречен, но спасибо, что-то не хочется.
Олег_
т.е. у вас I-7188XA и какой то преобразователь 232 в эзернет? т.е. в сумме около 20-25 т.р. а нужно дешевле?
Dmr
Цитата(Олег_ @ 31.10.2019, 0:22) *
т.е. у вас I-7188XA и какой то преобразователь 232 в эзернет? т.е. в сумме около 20-25 т.р. а нужно дешевле?

Да нужно дешевле.
manjey73
Dmr интересное видео, неплохо сделана система, но:

1. Яндекс карты при использовании вроде не бесплатны, насколько знаю там надо им отслюнявливать за использование. По крайней мере разраб другой Scada говорил об этом и сделал плагин от карт Maps
2. Почему у вас так долго читаются параметры из ECL ? Если читать выше, то я правильно понимаю, что вы в I7188XA подаете команду, он читает ECL и только потом вы получаете данные ? Почему сразу не читать ECL минуя ПЛК ? ну я так понимаю вы и хотите к этому прийти, то есть избавиться от промежуточного звена

Раз вы сами пишите dll под систему, вам никто не мешает написать в виде модулей и драйвера для всех устройств...

з.ы. кстати вопрос, документашкой на ECL-ы не поделитесь ? smile.gif но и самое главное, сможете на стенде ее расшарить, я бы тоже драйверок для себя написал бы smile.gif

ну и читайте выше, приведите скорости всех устройств по возможности к одной.

Собственно вы ПЛК как опрашиваете ? сервером же, то есть у преобразователя есть IP, есть порт, по которому вы стучитесь в ПЛК, передаете ему команду что ему выполнить, а потом по этому же IP и этому же порту забираете данные. То есть данные настройки есть в сервере, так какая вам разница тогда при работе с обычным преобразователем и несколькими портами ? ну будет на один дом две настройки или три или 5 в зависимости от количества портов на железяке... IP тот же самый, меняются только tcp порты.

блин, у ECL же Modbus, нафига его читать через ПЛК когда можно напрямки ?

если все драйвера можно было реализовать в сервере, то изначально пошли по окольному пути с ПЛК... Кроме датчика протечки и проникновения нет нифига, а это простые модули ввода с дискретными сигналами....
Dmr
Цитата(manjey73 @ 31.10.2019, 9:10) *
Dmr интересное видео, неплохо сделана система, но:

1. Яндекс карты при использовании вроде не бесплатны, насколько знаю там надо им отслюнявливать за использование. По крайней мере разраб другой Scada говорил об этом и сделал плагин от карт Maps
2. Почему у вас так долго читаются параметры из ECL ? Если читать выше, то я правильно понимаю, что вы в I7188XA подаете команду, он читает ECL и только потом вы получаете данные ? Почему сразу не читать ECL минуя ПЛК ? ну я так понимаю вы и хотите к этому прийти, то есть избавиться от промежуточного звена

Раз вы сами пишите dll под систему, вам никто не мешает написать в виде модулей и драйвера для всех устройств...

з.ы. кстати вопрос, документашкой на ECL-ы не поделитесь ? smile.gif но и самое главное, сможете на стенде ее расшарить, я бы тоже драйверок для себя написал бы smile.gif

ну и читайте выше, приведите скорости всех устройств по возможности к одной.

Собственно вы ПЛК как опрашиваете ? сервером же, то есть у преобразователя есть IP, есть порт, по которому вы стучитесь в ПЛК, передаете ему команду что ему выполнить, а потом по этому же IP и этому же порту забираете данные. То есть данные настройки есть в сервере, так какая вам разница тогда при работе с обычным преобразователем и несколькими портами ? ну будет на один дом две настройки или три или 5 в зависимости от количества портов на железяке... IP тот же самый, меняются только tcp порты.

Доброе утро. На погодник документация есть, вроде в открытом доступе. Читает долго т.к. команды пишутся в базу, сервер их передает плк, плк ждет ответ по таймауту из команды, он большой в связи с тем, чта там еще одна скада есть и ее связь пустили через наш плк т.е. он может транслировать ее команды а наши приостановить. Там не все просто. На объектах теплосчетчики и электросчетчики опрашиваются другими системами помимо нашей, а порт один.


Но заказчик готов закрыть доступ к приборам теплосетям т.к. приборы не их, ну и хочет сэкономить на железках.
manjey73
Понятно. а чужая Скада умеет брать данные из БД ? а ваша ?

Хотя сейчас наверное поздно, о таких вещах надо было думать раньше, как дружить чужие приборы со своими хотелками...

надо было чем-то одним читать данные с приборов и сваливать в БД из которой бы данные брали все остальные.
А теперь у вас ПО написано, потрачено на него куча времени, сил и денег и отказываться от него вы не захотите, да и пользователи тоже, так как привыкли.

20-25 тысяч в размере стоимости переделки это копейки...

Объясните это заказчику. Вот смотрите
даже usr-iot на 2 порта будет стоить в России тысяч 5 официально - даже 7200...
Добавьте к этому время разработки нового решения и его стоимость

так эти 20-25 первоначальных тысяч окажутся пшиком...

Почему просто не применить контроллер этой же серии но с Ethernet портом + к RS485 ?
Вы избавитесь от преобразователя Ethernet - RS232. Ну программу придется переписать в ПЛК, и это уже экономия.

Распишите все + и - заказчику, какие плюшки он потеряет и на которые он будет потом тратить рабочее время сотрудников, что тоже стоит денег...
Dmr
Цитата(manjey73 @ 31.10.2019, 9:30) *
Понятно. а чужая Скада умеет брать данные из БД ? а ваша ?

Хотя сейчас наверное поздно, о таких вещах надо было думать раньше, как дружить чужие приборы со своими хотелками...

надо было чем-то одним читать данные с приборов и сваливать в БД из которой бы данные брали все остальные.
А теперь у вас ПО написано, потрачено на него куча времени, сил и денег и отказываться от него вы не захотите, да и пользователи тоже, так как привыкли.

20-25 тысяч в размере стоимости переделки это копейки...

Объясните это заказчику. Вот смотрите
даже usr-iot на 2 порта будет стоить в России тысяч 5 официально
Добавьте к этому время разработки нового решения и его стоимость

так эти 20-25 первоначальных тысяч окажутся пшиком...

25х260 не пшик. Чужая скада прочитает данные из нашей БД. Организуем. 1С читает и все кому надо прочитают, спецом для них заведем нужные таблицы - это не проблема.
manjey73
https://insat.ru/prices/info.php?pid=503

Вот вам с Ethernet - разницу с вашим + преобразователь посчитайте на 260.

з.ы. если чужая прочитает из вашей БД то вообще не вижу проблем.
Пишите драйвера всех устройств в самом сервере и убирайте ПЛК, поищите преобразователи интерфейсов с DI/DO

Есть кстати у usr-iot https://www.usriot.com/products/625.html такая штука есть, порт правда один.
стоит вроде меньше 10

Ну или проще, Ethernet + несколько портов и какой-нибудь DI/DO модуль

з.ы. а можно и не писать драйвера, а использовать промежуточное решение для новых объектов и забирать из БД все данные в свою. Тут зависит от списка устройств, которые необходимо читать... Например другую Scada навялить, есть даже варианты на каждый новый объект. нужен какой-нибудь промПК или миниПК с портами RS485 на борту...

Подходов множество может быть. Списком приборов учета поделитесь, чтобы понимать...
Dmr
Погодники
ECL 300/ 301
ECL 210 A266
Учет
Взлет ТСРВ-023, ТСРВ-024(М)
Взлет ИВК-102
КМ-5-2, КМ-5-4
РМ-5
Энергомера CE-303
Меркурий 230
Это то на что написал DLL опроса архивов, и DLL печати отчетов по учету, на погодники DLL удаленной настройки. Пока других приборов не требуется, но как только появится необходимость недели за 2 хорошую библиотеку написать не сложно. Вот с погодником 210 заказчик задолбал что ему надо график мышкой двигать и вообще изначально хотел интерфейс такой же как у погодника, т.е. чтобы окно свиду как погодник было и он там крутил кнопку и нажимал, ладно ключ еще не вставлял в окно еще huh.gif , но деньги платит, выполняются его причуды соответственно.
manjey73
Вот вас не поймешь, DLL куда написали ? для работы на I7188 ?

Вот точно не хватает архитектуры и понимания где и что? Если DLL (предположение что она написана и крутится в I7188) то почему не переписать под саму систему (чтобы она крутилась на сервере) и опрашивала все то же самое через Ethernet - RS485 преобразователи ?

или опять я что-то не понимаю ?

Погодники
ECL 300/ 301 - Modbus
ECL 210 A266 - Modbus
Учет
Взлет ТСРВ-023, ТСРВ-024(М) - Modbus
Взлет ИВК-102 - Modbus
КМ-5-2, КМ-5-4 - Свой протокол
РМ-5 - непонятно, такой же как у КМ-5 ?
Энергомера CE-303 - МЭК61107 (свой причем)
Меркурий 230 - Свой протокол

Нигде не ошибся с протоколами ?
Dmr
Цитата(manjey73 @ 31.10.2019, 16:59) *
Вот вас не поймешь, DLL куда написали ? для работы на I7188 ?

Вот точно не хватает архитектуры и понимания где и что? Если DLL (предположение что она написана и крутится в I7188) то почему не переписать под саму систему (чтобы она крутилась на сервере) и опрашивала все то же самое через Ethernet - RS485 преобразователи ?

или опять я что-то не понимаю ?

Погодники
ECL 300/ 301 - Modbus
ECL 210 A266 - Modbus
Учет
Взлет ТСРВ-023, ТСРВ-024(М) - Modbus
Взлет ИВК-102 - Modbus
КМ-5-2, КМ-5-4 - Свой протокол
РМ-5 - непонятно, такой же как у КМ-5 ?
Энергомера CE-303 - МЭК61107 (свой причем)
Меркурий 230 - Свой протокол

Нигде не ошибся с протоколами ?

DLL не может крутиться в 7188, ось не та. При чем тут протокол? DLL формирует последовательность команд, сервер их отправляет/получает, может и без DLL опрашивать по прописанным командам в БД и описанию ответов которые должны приходить, если так не получается (например получение данных архивов, тогда DLL). 7188 получает команду (свой подобный ModBus) в команде описание, какой порт открыть, биты данных, скорость и т.д., таймаут ожидания, и сама команда прибору. Ну дальше думаю все ясно...
В общем решил сделать возможность на каждый поток опроса (на каждый объект) иметь серверу несколько соединений. Будет тогда дешевое решение. Всем спасибо.
manjey73
Говорю же, структура нужна для понимания, в том числе и программная...

I7188 только открывает по команде порт с нужной скоростью а читает потом прибор Сервер ?

Кстати не видел преобразователей, которые бы на лету меняли настройки порта, тоже есть из-за этого проблемы иногда. Есть протоколы с изменяемой скоростью, тот же МЭК61107, правда это еще и прибор должен поддерживать. Обычно производители не делают такого, так как и модемные соединения есть и через преобразователи, которые такого не умеют...
kosmos440o
Цитата(Dmr @ 29.10.2019, 22:48) *
Добрый вечер. Вот есть необходимость в преобразователе, который бы мог преобразовывать данные получаемые по TCP/IP в несколько RS-485/232, причем порты должны настраиваться на разные скорости, биты данных, стоповые и т.д., и от всех портов данные поступать через одно соединение (сокет), желательно по приоритету порта. Все что нашел в интернете - это одно соединение на один порт. Кто чего подскажет?

Возьмите Arduino Due, модуль ENC26j60 (неплохой зверёк оказался), несколько преобразователей UART-485 (желательно сразу с гальванической развязкой на быстрых оптронах или микросхемах), сделайте быстро код, потом можно будет уже подшаманить, чтоб не зависало и не глючило, и сделать промышленную плату. А может, и так будет работать, с некоторыми костылями. Если с энтуазизмом взяться, за пару недель можно прототип наваять. Это как раз ниша, где ардуину можно применить. Если вы не в танке или на АЭС какой-нибудь.

У меня вот вопрос в тему - я сделал на микрочиповском стеке преобразователь ТСР-485, но он бывает, пакеты соединяет или бьёт - это нормально?
manjey73
kosmos440o потому и соединяет и бьет, что на ардуино и где-то там код кривой smile.gif
kosmos440o
Цитата(manjey73 @ 31.10.2019, 21:41) *
kosmos440o потому и соединяет и бьет, что на ардуино и где-то там код кривой smile.gif

Не это промышленная плата на 18f67j60. Но так как я Пикушками не занимаюсь тупо прошил туда ихний стек. Так ничо работало но вот иногда пакеты как пельмени слипались.

Что касается ТС, то ему конечно придется поработать над внутренним сервером в ардуине и может даже сказать данунах. Хотя по отзывам у людей вроде годами что-то работает. У меня тоже бывало неделями гоняло без проблем и на ардуино+w5100 со стандартным скетчем и такое же на ENC28J60. Дальше было уже не нужно, приехали платы с завода, начало писаться на нормальной, почти без багов, ИДЕ. Вроде как w5100 подглюкивал, да.
Олег_
Есть класс мат.плат с встроенным процессором и СОМ портами, и без вентиляторов, вроде как для киосков
https://market.yandex.ru/catalog--materinsk...&how=aprice
добавить память, маленький SSD, блок питания.
и плату на несколько RS485
https://ipc2u.ru/catalog/promyshlennye-komm...547%5BRIGHT%5D=

На компе с фотки крутится самописная скада, опрашивается куча разных приборов в цехе и показывает картинки с IP камер.
При необходимости можно закрыть порт в скаде и запустить прогу производителя прибора для настройки.
Нажмите для просмотра прикрепленного файла

Другой комп
Нажмите для просмотра прикрепленного файла
по сети снимает данные с первого и показывает ту же картинку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.