Просмотр полной версии : ПЛК 100. Можно ли заставить работать по Modbus поверх TCP
Aleksei111
18.03.2021, 13:32
Проблема в следующем:
Контроллер ОВЕН ПЛК 100 (Modbus Master) подключен по Ethernet к датчику (Modbus Slave). Связи нет.
Стал разбираться, подключил между ними MasterOPC. По результатам:
Датчик работает с ОРС только по Modbus через TCP.
Контроллер работает с OPC только по Modbus TCP (по крайней мере в CoDeSys V2.3 я как перенастроить не нашел).
Я так понимаю это разные разновидности Modbus и работать они так не будут.
Поэтому вопрос: Можно ли заставить работать ОВЕН ПЛК 100 по Modbus через TCP? И если можно, то как.
Датчик подключен через Ethernet-RS485 преобразователь? протокол Modbus RTU.
Со стороны ПЛК установить такой же преобразователь, только наоборот, с RS485-Ethernet
Напрямую он работать не будет, либо удалять конфигурацию и извращаться по полной, на что времени вы убьете куда больше.
Второй вариант - вместо Ethernet-RS485 преобразователя установить почти такой же, с функцией преобразования Modbus TCP - Modbus RTU (МКОН тут пресловутый от Овен например)
Aleksei111
18.03.2021, 13:50
Нет. Датчик имеет прямой вход Ethernet как работающий по Modbus TCP (по крайней мере так заявляет производитель). В реальности там оказался Modbus поверх TCP.
Теперь стоит задача его подружить напрямую с ПЛК 100. Т.к. шлюз через комп с ОРС-сервером и SCADой не вариант.
Документацию на датчик, ссылку?
Aleksei111
18.03.2021, 14:17
«НТФ НОВИНТЕХ»
Датчик "Струна+" Точнее там куча датчиков работающих по внутреннему протоколу и выходной "шлюз" - блок БСР1 с Ethernet портом.
https://novinteh.ru/download/
Гордо - протокол Modbus Струна+ :)
Скажем так, ПЛК 100 через конфигурацию отпадает. Через преобразователь Ethernet-RS485 если библиотеки oscat по части Modbus поддерживают отличные от 0х03 и 0х04 функции. В частности 0х14
То есть ПЛК - порт 485 преобразователя - Ethernet - ваша фигня... при условии возможности библиотек Oscat
иначе забудьте и делайте шлюз, причем без танцев тоже не обойдется, так как OPC скорее всего так же не поддерживают такие функции как 0x14
Вообще указано что это Блок сервера - он не сам собирает данные ? потому что если не сам, а требуется ПО, то это .... в общем гавно это :)
Посмотрел oscat. и тут вы пролетаете...
Вообще указано что это Блок сервера - он не сам собирает данные ? потому что если не сам, а требуется ПО, то это .... в общем гавно это :)
Посмотрел oscat. и тут вы пролетаете...
не смущает что ТС написал такие слова
Датчик работает с ОРС только по Modbus через TCP
Aleksei111
18.03.2021, 15:21
Вообще указано что это Блок сервера - он не сам собирает данные ? потому что если не сам,
Блок сервера собирает и хранит в себе данные от всех подключенных к нему датчиков. Доступ к этой базе осуществляется стандартными средствами Modbus. В частности функцией 04. Также эти данные спокойно вытаскиваются по Ethernet через "MasterOPC Universal Modbus Server".
Только в настройках ОРС сервера есть настройка "Modbus поверх TCP". Если она "True", то данные идут. Если "False", то ОРС сервер Блок сервера не видит. У ПЛК все строго наоборот.
Блок сервера это "вещь в себе" и производитель по моему желанию писать новую прошивку не будет.
ПЛК вроде как умная и программируемая уже мной железка, поэтому есть подозрение, что протокол можно сменить. Роясь по форуму я видел, что под ПЛК пишут переходники под нестандартные протоколы. В тоже время "Modbus поверх TCP" довольно стандартная вещь, раз уж ее поддерживают ОРС-сервера.
Поэтому и хочется узнать есть ли возможность сменить версию Modbus и если можно, то как.
capzap уже высянили, что не датчик...
Aleksei111 в документации на их протокол участвует еще функция 0x14, но там вероятно архивы а не обычные данные с датчиков.
Для ПЛК к вашему сожалению это не стандартная вещь. Все, что вы можете, это взять Ethernet-RS485 преобразователь и сделать как написал выше. Будет работать с функциями 0x03 и 0x04. а вот с 0x14 вряд ли, либо вам придется использовать или писать бибку под ПЛК, чтобы задействовать эту функцию и отказаться от Конфигурации.
Поэтому и хочется узнать есть ли возможность сменить версию Modbus и если можно, то как.
проще не куда, открыть сокет и передать туда байты, который передает ОРС, массив байт можно в логах увидеть, потом разобрать ответ, отбросив лишнее
Aleksei111
18.03.2021, 16:03
Все, что вы можете, это взять Ethernet-RS485 преобразователь и сделать как написал выше. Будет работать с функциями 0x03 и 0x04. а вот с 0x14 вряд
По поводу МКОН-а теоретически это вариант, т.к. ОВЕНы должны работать по одному протоколу. Проблема только в том, что оборудование уже закуплено, и преобразователей там нет.
И по поводу 14-й функции не понял. Посмотрел сейчас спецификацию, там только 03, 04, 08. Причем 08 используется только для какой-то невнятной диагностики связи.
Aleksei111
18.03.2021, 16:08
проще не куда, открыть сокет и передать туда байты, который передает ОРС, массив байт можно в логах увидеть, потом разобрать ответ, отбросив лишнее
Честно говоря, я даже Ваш ответ не понял. А не чтобы это сделать.
ПЛК я программирую через CoDeSys. А там в "Modbus (Master) / Universal Modbus device" только 2 варианта выбора TCP/Serial в итоге датчик просто не видит запросов.
Aleksei111 вам предлагают написать на ST (языке программирования) открытие сокета (вроде есть примеры на форуме) и посылать в этот БСР1 такие же запросы, как родное ПО или Мастер ОРС сервер и самостоятельно их разбирать потом.
з.ы. странно, щас еще раз гляну, вроде было там кроме 03 и 04 функции.
4.6 Код функции 17h - Read/Write 4X Registers .
А.4.2 Получение файла журнала по протоколу «MODBUS-СТРУНА+/TCP» Для получения файла журнала используется частный случай функции 0x14(Read File Records) протокола MODBUS.
Чтение журналов событий.
В принципе обе команды возможно из Extended Modbus (лень искать и проверять) а их мало кто вообще поддерживает.
МКОН несколько не тот вариант, у вас же на конце Ethernet (в режиме Modbus over TCP) а МКОН либо с Modbus TCP в RTU либо наоборот. Вам же нужен если пользоваться только стандартными функциями Ethernet-RS485 настроенный как клиент на БСР банально как удлинитель COM порта (ну если так рассматривать). и опрос со стороны ПЛК именно по RS485 порту. Это чтобы с бубном не танцевать.
Неужели нет ни у кого под рукой подобного, чтобы просто проверить и убедиться в работоспособности без покупки ?????
Aleksei111
18.03.2021, 17:11
вам предлагают написать на ST (языке программирования) открытие сокета (вроде есть примеры на форуме) и посылать в этот БСР1 такие же запросы, как родное ПО или Мастер ОРС сервер и самостоятельно их разбирать потом.
Теперь понял. Я к сожалению не такой специалист по программированию (это вообще не моя работа) и умею пользоваться только CFC и LD. А они такого вроде не позволяют. Или я еще не нашел.
4.6 Код функции 17h - Read/Write 4X Registers .
Это ерунда. Все необходимые данные вытягиваются через функцию 04. А эта экзотика скорее всего для настройки датчиков.
МКОН несколько не тот вариант, у вас же на конце Ethernet (в режиме Modbus over TCP) а МКОН либо с Modbus TCP в RTU либо наоборот.
Как раз вариант. У меня Ethernet между ПЛК и БСР. А у БСР 2 выхода: Ethernet Modbus over TCP и RS-485 ModbusRTU. Так что ставлю МКОН около БСР и цепляю его к порту RS-485. А ОВЕН с ОВЕНом надеюсь нормально договорятся.
Но это крайний случай. Все таки попробую решить программно.
Во первых покупать ничего не надо, во вторых на участке RS-485 подозреваю скорость сильно упадет, в третьих сервисная работа с БСР через этот стык скорее всего не пройдет
А, про БСР не почитал, думал у него RS485 для опроса датчиков. Если так то да, тогда ПЛК будет мастером Modbus TCP через МКОН, который будет преобразовывать запросы в RTU
Идея то простая и правильная, но звучит круто! :)
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot