Добрый вечер. Вот есть необходимость в преобразователе, который бы мог преобразовывать данные получаемые по TCP/IP в несколько RS-485/232, причем порты должны настраиваться на разные скорости, биты данных, стоповые и т.д., и от всех портов данные поступать через одно соединение (сокет), желательно по приоритету порта. Все что нашел в интернете - это одно соединение на один порт. Кто чего подскажет?
manjey73
30.10.2019, 0:08
один COM порт, один порт TCP, сокетов может быть несколько. Не путайте сокет и порт TCP
USR-IOT 1, 2, 4 портовые.
Ну еще Moxa 8, 16 портов.
Еще раз, может не очень ясно написал. Есть сервер, с ним по tcp/ip или к нему тоже по tcp/ip происходит соединение с устройством (конвертером). Соединение - сокет. Все. Вот мне не нужно чтобы на каждый порт (485, не tcp/ip) создавалось соединение, вот есть одно на всех и будя! Все что вы перечислили не то, это все есть у нас на объектах, нужно вот иное.
Странное пожелание, жалко сокетов на сервере, их же обычно дофига?
Такое пожелание может иметь смысл, если сервер это контроллер с ограниченным количеством TCP подключений, в этом случае простой преобразователь вроде моксы не прокатит, нужен посредник, контроллер или панель, который опросит кого надо, сложит данные у себя в памяти и отдаст дальше.
------------
Если сервер комп, не мучайте свои мозги.
manjey73
30.10.2019, 13:19
Dmr думаю если вы свои пожелание напишите в Moxa, они вас тоже не поймут...
Еще раз для не сведующих в IT, на один порт TCP можно создать несколько сокетов, но работать они будут только с тем оборудованием, которое прописано на данном порту и никак иначе.
Если у вас есть Moxa 2-х или более портовая, можете попробовать назначить один и тот же порт на два различных интерфейса и сами увидите, что оно вам скажет...
Или опишите более корректно, что же вам надо, чтобы и остальные форумчане поняли что вы хотите...
Ну или можете попробовать настроить ту же Moxa в роли TCP клиентах и писать ПО себе на сервере... ЧТо думаю тоже будет не сахар...
Как раз у Моксы на каждый физический порт назначен TCP порт (950 и выше) и соответственно на него на компе нужно открывать сокет и тупо писать, читать его.
Возможно и существуют преобразователи, в которых в один сокет запихивают данные на все железные порты, но это неудобно с точки зрения программиста т.к. возникает необходимость какого то дополнительного протокола для железяки.
Так вот нафига изобретать этот протокол, если сокетов на компе немеряно?
manjey73
30.10.2019, 13:44
блин, еще раз. например мох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 не видел ни у одного производителя, потому что это нонсенс...
Цитата(Олег_ @ 30.10.2019, 12:55)

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

все спецификации RS485 нарушили, теперь под свои ищите решения
manjey73
30.10.2019, 14:31
учитывая, что приборы на разных скоростях..
1. привести скорости приборов к одной, ну или к минимуму расхождений и с одинаковыми настройками приборы повесить на свою линию
2. приборам назначить разные адреса
поставить преобразователь с нужным количеством портов, которые настроить соответственно скоросям групп приборов.
Настроить сервер на опрос приборов без ПЛК, настроив соответствующие линии связи..
хз, что у вас там за ПО, в которое надо стучаться, хотя вроде по вашим словам все таки ПО стучится в ПЛК, давая ему команды а не наоборот...
Цитата(Dmr @ 30.10.2019, 14:02)

сервер передает это соединение в поток опроса объекта порт соответственно меняется, но на 1 объект - 1 сокет (1соединение).
Так у вас сервер, или роутер?
Сервер вроде нужен чтобы собрать данные с железяк и раздать всем желающим, если это действительно сервер. Он же и команды должен железякам отправлять по просьбе желающих.
Может не железяку новую искать, а пересмотреть сам сервер и клиентов?
Использовал MOXA серии NPort на 4 и 8 портов rs485. Отлично работают. Каждый порт свои настройки может иметь.
PS. Не понял сначала, что автору друга неведома железка нужна, сорри.
manjey73
30.10.2019, 20:30
LordN а ТС прочесть не пробовали ? его заставляют избавиться от ПЛК, типа дорого. И это, чтобы ПЛК прочесть тоже железка нужна, роутер или если правильно понял автора в его случае Ethernet - RS232.
Стоимость преобразователя интерфейса куда ниже стоимости ПЛК, при условии, что можно обойтись 1 или 2 портами на выходе.
Опрос всех приборов сразу Scada а не через прокладку в виде ПЛК. меньше цена, пятак автору за экономию...
Цитата(ganz72 @ 30.10.2019, 18:31)

Использовал MOXA серии NPort на 4 и 8 портов rs485. Отлично работают. Каждый порт свои настройки может иметь.
PS. Не понял сначала, что автору друга неведома железка нужна, сорри.
http://npu-scart.ru/images/АРМ_17.06.2019_H.mp4Вот нужно, очень. Еще много объектов планируется, а такую железяку бы в самый цвет было бы. Сервер переделывать на то чтобы работал по-другому очень много времени уйдет, хотя может и нет. Нужно будет посидеть подумать.
Цитата(manjey73 @ 31.10.2019, 0:30)

LordN а ТС прочесть не пробовали ? его заставляют избавиться от ПЛК, типа дорого. И это, чтобы ПЛК прочесть тоже железка нужна, роутер или если правильно понял автора в его случае Ethernet - RS232.
Стоимость преобразователя интерфейса куда ниже стоимости ПЛК, при условии, что можно обойтись 1 или 2 портами на выходе.
Опрос всех приборов сразу Scada а не через прокладку в виде ПЛК. меньше цена, пятак автору за экономию...
читал, пробовал понять и насколько понял у него проблема не с плк, а проблемы с ним связанные т..к все работает как-то через задницу.
т.е. связь нижнего уровня плк - порты, там всё нормально, а вот плк - скада начинаются какие-то косяки которые его не устраивают. и он вместо того чтобы поменять свой плк на тот который избавит от геммороя ищет способ избавиться от плк и поиметь другой гемморой.
это то, что я понял из текста. если был текст о другом - ну..
Цитата(LordN @ 30.10.2019, 21:10)

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

т.е. у вас I-7188XA и какой то преобразователь 232 в эзернет? т.е. в сумме около 20-25 т.р. а нужно дешевле?
Да нужно дешевле.
manjey73
31.10.2019, 9:10
Dmr интересное видео, неплохо сделана система, но:
1. Яндекс карты при использовании вроде не бесплатны, насколько знаю там надо им отслюнявливать за использование. По крайней мере разраб другой Scada говорил об этом и сделал плагин от карт Maps
2. Почему у вас так долго читаются параметры из ECL ? Если читать выше, то я правильно понимаю, что вы в I7188XA подаете команду, он читает ECL и только потом вы получаете данные ? Почему сразу не читать ECL минуя ПЛК ? ну я так понимаю вы и хотите к этому прийти, то есть избавиться от промежуточного звена
Раз вы сами пишите dll под систему, вам никто не мешает написать в виде модулей и драйвера для всех устройств...
з.ы. кстати вопрос, документашкой на ECL-ы не поделитесь ?

но и самое главное, сможете на стенде ее расшарить, я бы тоже драйверок для себя написал бы

ну и читайте выше, приведите скорости всех устройств по возможности к одной.
Собственно вы ПЛК как опрашиваете ? сервером же, то есть у преобразователя есть IP, есть порт, по которому вы стучитесь в ПЛК, передаете ему команду что ему выполнить, а потом по этому же IP и этому же порту забираете данные. То есть данные настройки есть в сервере, так какая вам разница тогда при работе с обычным преобразователем и несколькими портами ? ну будет на один дом две настройки или три или 5 в зависимости от количества портов на железяке... IP тот же самый, меняются только tcp порты.
блин, у ECL же Modbus, нафига его читать через ПЛК когда можно напрямки ?
если все драйвера можно было реализовать в сервере, то изначально пошли по окольному пути с ПЛК... Кроме датчика протечки и проникновения нет нифига, а это простые модули ввода с дискретными сигналами....
Цитата(manjey73 @ 31.10.2019, 9:10)

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

но и самое главное, сможете на стенде ее расшарить, я бы тоже драйверок для себя написал бы

ну и читайте выше, приведите скорости всех устройств по возможности к одной.
Собственно вы ПЛК как опрашиваете ? сервером же, то есть у преобразователя есть IP, есть порт, по которому вы стучитесь в ПЛК, передаете ему команду что ему выполнить, а потом по этому же IP и этому же порту забираете данные. То есть данные настройки есть в сервере, так какая вам разница тогда при работе с обычным преобразователем и несколькими портами ? ну будет на один дом две настройки или три или 5 в зависимости от количества портов на железяке... IP тот же самый, меняются только tcp порты.
Доброе утро. На погодник документация есть, вроде в открытом доступе. Читает долго т.к. команды пишутся в базу, сервер их передает плк, плк ждет ответ по таймауту из команды, он большой в связи с тем, чта там еще одна скада есть и ее связь пустили через наш плк т.е. он может транслировать ее команды а наши приостановить. Там не все просто. На объектах теплосчетчики и электросчетчики опрашиваются другими системами помимо нашей, а порт один.
Но заказчик готов закрыть доступ к приборам теплосетям т.к. приборы не их, ну и хочет сэкономить на железках.
manjey73
31.10.2019, 9:30
Понятно. а чужая Скада умеет брать данные из БД ? а ваша ?
Хотя сейчас наверное поздно, о таких вещах надо было думать раньше, как дружить чужие приборы со своими хотелками...
надо было чем-то одним читать данные с приборов и сваливать в БД из которой бы данные брали все остальные.
А теперь у вас ПО написано, потрачено на него куча времени, сил и денег и отказываться от него вы не захотите, да и пользователи тоже, так как привыкли.
20-25 тысяч в размере стоимости переделки это копейки...
Объясните это заказчику. Вот смотрите
даже usr-iot на 2 порта будет стоить в России тысяч 5 официально - даже 7200...
Добавьте к этому время разработки нового решения и его стоимость
так эти 20-25 первоначальных тысяч окажутся пшиком...
Почему просто не применить контроллер этой же серии но с Ethernet портом + к RS485 ?
Вы избавитесь от преобразователя Ethernet - RS232. Ну программу придется переписать в ПЛК, и это уже экономия.
Распишите все + и - заказчику, какие плюшки он потеряет и на которые он будет потом тратить рабочее время сотрудников, что тоже стоит денег...
Цитата(manjey73 @ 31.10.2019, 9:30)

Понятно. а чужая Скада умеет брать данные из БД ? а ваша ?
Хотя сейчас наверное поздно, о таких вещах надо было думать раньше, как дружить чужие приборы со своими хотелками...
надо было чем-то одним читать данные с приборов и сваливать в БД из которой бы данные брали все остальные.
А теперь у вас ПО написано, потрачено на него куча времени, сил и денег и отказываться от него вы не захотите, да и пользователи тоже, так как привыкли.
20-25 тысяч в размере стоимости переделки это копейки...
Объясните это заказчику. Вот смотрите
даже usr-iot на 2 порта будет стоить в России тысяч 5 официально
Добавьте к этому время разработки нового решения и его стоимость
так эти 20-25 первоначальных тысяч окажутся пшиком...
25х260 не пшик. Чужая скада прочитает данные из нашей БД. Организуем. 1С читает и все кому надо прочитают, спецом для них заведем нужные таблицы - это не проблема.
manjey73
31.10.2019, 10:02
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 на борту...
Подходов множество может быть. Списком приборов учета поделитесь, чтобы понимать...
Погодники
ECL 300/ 301
ECL 210 A266
Учет
Взлет ТСРВ-023, ТСРВ-024(М)
Взлет ИВК-102
КМ-5-2, КМ-5-4
РМ-5
Энергомера CE-303
Меркурий 230
Это то на что написал DLL опроса архивов, и DLL печати отчетов по учету, на погодники DLL удаленной настройки. Пока других приборов не требуется, но как только появится необходимость недели за 2 хорошую библиотеку написать не сложно. Вот с погодником 210 заказчик задолбал что ему надо график мышкой двигать и вообще изначально хотел интерфейс такой же как у погодника, т.е. чтобы окно свиду как погодник было и он там крутил кнопку и нажимал, ладно ключ еще не вставлял в окно еще

, но деньги платит, выполняются его причуды соответственно.
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 - Свой протокол
Нигде не ошибся с протоколами ?
Цитата(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
31.10.2019, 17:56
Говорю же, структура нужна для понимания, в том числе и программная...
I7188 только открывает по команде порт с нужной скоростью а читает потом прибор Сервер ?
Кстати не видел преобразователей, которые бы на лету меняли настройки порта, тоже есть из-за этого проблемы иногда. Есть протоколы с изменяемой скоростью, тот же МЭК61107, правда это еще и прибор должен поддерживать. Обычно производители не делают такого, так как и модемные соединения есть и через преобразователи, которые такого не умеют...
kosmos440o
31.10.2019, 19:32
Цитата(Dmr @ 29.10.2019, 22:48)

Добрый вечер. Вот есть необходимость в преобразователе, который бы мог преобразовывать данные получаемые по TCP/IP в несколько RS-485/232, причем порты должны настраиваться на разные скорости, биты данных, стоповые и т.д., и от всех портов данные поступать через одно соединение (сокет), желательно по приоритету порта. Все что нашел в интернете - это одно соединение на один порт. Кто чего подскажет?
Возьмите Arduino Due, модуль ENC26j60 (неплохой зверёк оказался), несколько преобразователей UART-485 (желательно сразу с гальванической развязкой на быстрых оптронах или микросхемах), сделайте быстро код, потом можно будет уже подшаманить, чтоб не зависало и не глючило, и сделать промышленную плату. А может, и так будет работать, с некоторыми костылями. Если с энтуазизмом взяться, за пару недель можно прототип наваять. Это как раз ниша, где ардуину можно применить. Если вы не в танке или на АЭС какой-нибудь.
У меня вот вопрос в тему - я сделал на микрочиповском стеке преобразователь ТСР-485, но он бывает, пакеты соединяет или бьёт - это нормально?
manjey73
31.10.2019, 20:41
kosmos440o потому и соединяет и бьет, что на ардуино и где-то там код кривой
kosmos440o
31.10.2019, 21:54
Цитата(manjey73 @ 31.10.2019, 21:41)

kosmos440o потому и соединяет и бьет, что на ардуино и где-то там код кривой

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