PDA

Просмотр полной версии : ПЛК 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? И если можно, то как.

melky
18.03.2021, 13:41
Датчик подключен через 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ой не вариант.

melky
18.03.2021, 14:07
Документацию на датчик, ссылку?

Aleksei111
18.03.2021, 14:17
«НТФ НОВИНТЕХ»
Датчик "Струна+" Точнее там куча датчиков работающих по внутреннему протоколу и выходной "шлюз" - блок БСР1 с Ethernet портом.

https://novinteh.ru/download/

melky
18.03.2021, 14:36
Гордо - протокол Modbus Струна+ :)

Скажем так, ПЛК 100 через конфигурацию отпадает. Через преобразователь Ethernet-RS485 если библиотеки oscat по части Modbus поддерживают отличные от 0х03 и 0х04 функции. В частности 0х14

То есть ПЛК - порт 485 преобразователя - Ethernet - ваша фигня... при условии возможности библиотек Oscat

иначе забудьте и делайте шлюз, причем без танцев тоже не обойдется, так как OPC скорее всего так же не поддерживают такие функции как 0x14

melky
18.03.2021, 14:39
Вообще указано что это Блок сервера - он не сам собирает данные ? потому что если не сам, а требуется ПО, то это .... в общем гавно это :)

Посмотрел oscat. и тут вы пролетаете...

capzap
18.03.2021, 14:58
Вообще указано что это Блок сервера - он не сам собирает данные ? потому что если не сам, а требуется ПО, то это .... в общем гавно это :)

Посмотрел oscat. и тут вы пролетаете...

не смущает что ТС написал такие слова
Датчик работает с ОРС только по Modbus через TCP

Aleksei111
18.03.2021, 15:21
Вообще указано что это Блок сервера - он не сам собирает данные ? потому что если не сам,

Блок сервера собирает и хранит в себе данные от всех подключенных к нему датчиков. Доступ к этой базе осуществляется стандартными средствами Modbus. В частности функцией 04. Также эти данные спокойно вытаскиваются по Ethernet через "MasterOPC Universal Modbus Server".
Только в настройках ОРС сервера есть настройка "Modbus поверх TCP". Если она "True", то данные идут. Если "False", то ОРС сервер Блок сервера не видит. У ПЛК все строго наоборот.
Блок сервера это "вещь в себе" и производитель по моему желанию писать новую прошивку не будет.
ПЛК вроде как умная и программируемая уже мной железка, поэтому есть подозрение, что протокол можно сменить. Роясь по форуму я видел, что под ПЛК пишут переходники под нестандартные протоколы. В тоже время "Modbus поверх TCP" довольно стандартная вещь, раз уж ее поддерживают ОРС-сервера.
Поэтому и хочется узнать есть ли возможность сменить версию Modbus и если можно, то как.

melky
18.03.2021, 15:34
capzap уже высянили, что не датчик...

Aleksei111 в документации на их протокол участвует еще функция 0x14, но там вероятно архивы а не обычные данные с датчиков.

Для ПЛК к вашему сожалению это не стандартная вещь. Все, что вы можете, это взять Ethernet-RS485 преобразователь и сделать как написал выше. Будет работать с функциями 0x03 и 0x04. а вот с 0x14 вряд ли, либо вам придется использовать или писать бибку под ПЛК, чтобы задействовать эту функцию и отказаться от Конфигурации.

capzap
18.03.2021, 15:39
Поэтому и хочется узнать есть ли возможность сменить версию 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 в итоге датчик просто не видит запросов.

melky
18.03.2021, 16:18
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 подозреваю скорость сильно упадет, в третьих сервисная работа с БСР через этот стык скорее всего не пройдет

melky
18.03.2021, 17:22
А, про БСР не почитал, думал у него RS485 для опроса датчиков. Если так то да, тогда ПЛК будет мастером Modbus TCP через МКОН, который будет преобразовывать запросы в RTU

BETEP
19.03.2021, 00:33
Идея то простая и правильная, но звучит круто! :)