Показано с 1 по 5 из 5

Тема: "Прозрачный" режим RS232/RS485

  1. #1

    По умолчанию "Прозрачный" режим RS232/RS485

    Здравствуйте!
    Прошу помощи в следующем вопросе:
    К ПЛК110-60М в сеть RS485 подключен преобразователь частоты Emotron.
    Для диспетчеризации по RS232 он опрашивается ICONICS Modbus OPC Server 3.12 по протоколу ModBus RTU. При использовании в конфигурации ПЛК ModBus (master) и ModBus (slave) количество читаемых ModBus адресов ограничено прописанными в конфигурации. А в Emotron более 1500 ModBus адресов, и какой мне понадобится в следующий раз при реализации мнемосхем для диспетчеризации неизвестно. Отсюда возникает необходимость в «прозрачном» канале RS232/RS485, т.е. работы ПЛК как конвертера RS232/RS485.
    Подскажите, как можно реализовать «прозрачный» режим между портами ПЛК или ткните в готовые наработки.

  2. #2

    По умолчанию

    Не совсем ясна задача. Вы хотите на ПЛК по 485-у подключить частотник, а по 232-у подключить к ПК через OPC? и при этом менять конфигурацию ОРС?

    Если так, то по 485 вы читаете все возможные переменный с частотника. Делаете такой же набор переменных по RS-232 и копируете одни переменные в другие. Соответственно в OPC вы используете только те, которые вам необходимы. Прозрачный режим боюсь вы не реализуете.

    Как вариант можно обойти ПЛК и взять просто конвертер интерфейса 232 в 485, например АС3М.

    Что касается ПЛК вам нужно на диске с контроллером посмотреть документ PLC_Configuration_OWEN, разделы:
    -Modbus master
    -Modbus slave

  3. #3

    По умолчанию

    Да, все именно так и хотелось бы.
    Небольшое уточнение, объект не один и объекты удаленные-тепловые насосные станции (ТНС).
    Соединение с сервером, в настоящее время, через конвертер RS485/232 -> GPRS коммуникатор -> "дырка" в Интернет на сервере -> виртуальный COM port -> OPC.
    Но имея на борту ПЛК кучу портов (что и привлекло при выборе ПЛК), как то неправильно ставить еще одну железку. Тем более, что на некоторых объектах имеется, или появится еще и Ethernet сеть, какой тогда еще хитрый конвертер искать и закупать?
    С ModBus (master) и ModBus (slave) я разобрался, все работает, но согласитесь, заносить в конфигурацию все ModBus адреса которые могут понадобится, сейчас или в будущем, не очень интересно. И в случае необходимости, а система у нас не стоит на месте, для внесения потребовавшихся, но не занесенных в конфигурацию адресов, необходимо будет мотаться по ТНС-кам с ноутом и менять на ПЛК программы. А я уж и не говорю про эти муки с выравниванием ModBus адресов.
    Насколько я понимаю, OPC ModBus сервер отдает по RS232 посылку уже в формате ModBus RTU , ее надо тупо направить в RS485, дождаться ответа от ModBus устройства и отправить его обратно.
    Может с библиотекой UNM поэксперементировать?
    PS. Данные с частотника в основной программе ПЛК не участвуют, используются только для диспетчеризации
    Последний раз редактировалось KoryaevAN; 29.04.2011 в 10:37.

  4. #4

    По умолчанию

    В Вашем случае, с такими неопределенностями, действительно стоит организовать обмен не через PLC Configuration, а реализовать программно.
    И если все 1500 (с ума сойти... и действительно все нужны, а не 1,5% из них???) одинакового формата, то Вы по сети говорите какой параметр нужно опросить. Контроллер получает "запрос", формирует опрос именно этого регистра, получает ответ, и возвращает спрашивающему.
    То есть можно сделать один блок опроса, и просто менять номер регистра.
    Конфигурация ПЛК тут конечно бессильна. За базу можно взять библиотеку ModBus.lib

  5. #5

    По умолчанию

    Ну, нет конечно же! Все 1500 не нужны! Но и 1,5% это 20-25 адресов.
    Плюс к этому, частотников там два и парочка 8 канальных модулей аналоговых входов, да и сам ПЛК необходимо опрашивать.

    То есть, если использовать библиотеку ModBus, то необходимо в конфигурации прописать чтение в ModBus(master) 25+25+8+8+15=81 ModBus регистра из 5-и ModBus модулей, выставить в ModBus(slave) 81 переменную для чтения (расставив их в соответствии с форматом числа для выравнивания ModBus адресов регистров), в программе сделать пересылку прочитанных ModBus(master) переменных в переменные ModBus(slave) и только после этого читать их ОРС сервером прописав там ПЛК как ModBus модуль с адресом установленным в ModBus(slave) и читая из него регистры с адресами рассчитанными в ModBus(slave).

    После этого, конечно, покажется проще поставить конвертер 232/485 и не заморачиваться, но я не верю, что такая мощная железка как ПЛК не справится с задачей которую выполняет маленькая коробочка которую сделали в Китае!

    В запросе, который посылает ModBus OPC по протоколу ModBus RTU, уже содержится адрес ModBus модуля в сети, адрес ModBus регистра в этом модуле, количество байт которые необходимо отдать (или записать и сами данные для записи).
    Получив этот запрос ModBus модуль с адресом указанным в запросе готовит и отсылает ответ (или производит запись).

    Для получения "прозрачного" режима необходимо получить запрос от ОРС по RS232 и не меняя отправить его в RS485, дождаться ответа от модуля и отправить его, опять таки не меняя, через RS232 к ОРС.
    Последний раз редактировалось KoryaevAN; 29.04.2011 в 15:12.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •