Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: ПЛК+ПК через Ethernet

  1. #1

    По умолчанию ПЛК+ПК через Ethernet

    Подскажите новичку.
    Пишу программку на ПК для опроса ПЛК через Ethernet. Задача: по запросу от ПК ПЛК должен передать массив значений. Начну с простого
    1) Как в ПЛК установить нужный IP адрес, если ПЛК выступает в роли slave?
    2) Какие библиотеки лучше использовать для передачи данных?

  2. #2

    По умолчанию

    Цитата Сообщение от Змий Посмотреть сообщение
    Подскажите новичку.
    Пишу программку на ПК для опроса ПЛК через Ethernet. Задача: по запросу от ПК ПЛК должен передать массив значений. Начну с простого
    1) Как в ПЛК установить нужный IP адрес, если ПЛК выступает в роли slave?
    2) Какие библиотеки лучше использовать для передачи данных?
    IP задается при наличии связи с ПЛК (например по rs232). Заходите в браузер ПЛК (на вкладке ресурсы), выбираете команды setip, setgate, setmask и задаете нужные вам значения.

  3. #3

    По умолчанию

    Существуют ли готовые функции способные прочитать из Ethernet-порта либо записать в него данные напрямую? Если да, то какие? Подскажите плиз

  4. #4

    По умолчанию

    Цитата Сообщение от Змий Посмотреть сообщение
    Существуют ли готовые функции способные прочитать из Ethernet-порта либо записать в него данные напрямую? Если да, то какие? Подскажите плиз
    Как-то не понятно, что и как вы хотите передать. Какие данные и откуда? И по какому протоколу?

  5. #5
    Пользователь
    Регистрация
    12.12.2007
    Адрес
    п.Таврическое Омская область
    Сообщений
    97

    По умолчанию

    Цитата Сообщение от Змий Посмотреть сообщение
    Существуют ли готовые функции способные прочитать из Ethernet-порта либо записать в него данные напрямую? Если да, то какие? Подскажите плиз
    OPC серверы применяй, например OPC Fastwel Modbus... Работает нормально... (http://www.fastwel.ru
    Чтобы все нормально работало:
    1. Контроллер и компьютер желательно чтобы были в одной сетке адресов
    ( хотя при работе через шлюз и этого не обязательно - но для новичка
    делайте как указано:
    Например у контроллера IP - адрес 192.168.1.2, а у компьютера
    192.168.1.1
    Тогда контроллер и компьютер можно соединять напрямую или
    через коммутатор.

    2. Нужно в контроллер добавить модуль MODBUS SLAVE для которого
    ModBus FIX - должен быть TCP
    3. К модулю MODBUS SLAVE добавить переменные - именно они будут
    видны во "внешнем мире"

    4. Чтобы проверить виден ли контроллер в сети пропинговать его c
    компьютера :
    ping <IP адрес контроллера>
    Если будет ответ что-то наподобии:
    Ответ........число байт 32 время 3 мс TTL=128
    это говорит о том что компьютер и контроллер друг друга
    видят... Можно идти дальше.

    5. Установить OPC сервер на компьютер с поддержкой TCP.
    В настройка OPC сервера указать IP-адрес контроллера
    и если необходимо порт TCP то 502.
    В дальнейшем завести переменные которые бы ссылались
    на переменные контроллера - то есть переменным внутри
    OPC-сервера присваивать адреса по которым нужно обращаться
    к переменным контроллера.
    Нужно прочитать относительно особенностей адресации
    в руководстве на Овен и используемый OPC-сервер.
    ( Чтобы это все стыковалось )

    У меня без проблем управляются по TCP - два ОВНА...

  6. #6
    Пользователь
    Регистрация
    28.10.2008
    Адрес
    Туймазы, Башкортостан
    Сообщений
    9

    По умолчанию Modbus/TCP

    Здравствуйте. В настоящий момент я изучаю OpenSCADA. Наилучшим вариантом связи с ПЛК для меня является интерфейс Ethernet. Как я понимаю, наиболее разумен тут протокол Modbus/TCP. Однако, как я ни стучался на 502-й порт, коммуникация не происходит.
    По подключению в Codesys модулей ввода/вывода по протоколам Овен, Modbus/ASCII, Modbus/RTU написаны подробные инструкции, а вот как именно в Codesys научить ПЛК работать с Modbus/TCP -- нет ни одной. А ведь, судя по http://www.owen.ru , это третий по важности протокол.
    Поскольку, на мой взгляд, этот топик наиболее близок к решаемой задаче, позвольте задать уточняющие вопросы тут.
    Цитата Сообщение от lunyov_i Посмотреть сообщение
    3. К модулю MODBUS SLAVE добавить переменные - именно они будут видны во "внешнем мире"
    Поподробнее, пожалуйста. Куда нажать и какой кнопкой мыши, что выбрать, как сделать существующую переменную доступной тут? Куда бы я ни тыкался в PLC Configuration, самое большее, что нашёл -- это добавить к структуре "Modbus (slave)[VAR] -> Modbus[FIX] -> TCP[VAR]" ещё один подэлемент во втором уровне из списка "Statistic, Button, Universal network module, ..., Float). Но это, полагаю, совсем не то.
    Последний раз редактировалось Andrey V; 19.12.2016 в 13:01.

  7. #7

    По умолчанию

    "Modbus (slave)[VAR] -> Modbus[FIX] -> TCP[VAR]" - именно так, а потом настроить адрес slave в "Modbus (slave)[VAR] и правильно настроить мастер, опрашивающий ПЛК.

  8. #8
    Пользователь
    Регистрация
    12.12.2007
    Адрес
    п.Таврическое Омская область
    Сообщений
    97

    По умолчанию

    Цитата Сообщение от fLegmatik Посмотреть сообщение
    Здравствуйте. В настоящий момент я изучаю OpenSCADA. Наилучшим вариантом связи с ПЛК для меня является интерфейс Ethernet. Как я понимаю, наиболее разумен тут протокол Modbus/TCP. Однако, как я ни стучался на 502-й порт, коммуникация не происходит.
    А что значить стучался?
    Контроллер с компа пингуется?
    Вот например я пингую с компа контроллер Owen
    Овен сидит на адресе 192.168.1.66:
    ping -n 4 192.168.1.66
    Получаю:
    ---------------------------------------------
    Обмен пакетами с 192.168.1.66 по 32 байт:

    Ответ от 192.168.1.66: число байт=32 время=6мс TTL=128
    Ответ от 192.168.1.66: число байт=32 время=8мс TTL=128
    Ответ от 192.168.1.66: число байт=32 время=9мс TTL=128
    Ответ от 192.168.1.66: число байт=32 время=5мс TTL=128

    Статистика Ping для 192.168.1.66:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
    Приблизительное время приема-передачи в мс:
    Минимальное = 5мсек, Максимальное = 9 мсек, Среднее = 7 мсек
    -------------------------------------------------
    Это говорит о том что компьютер и контроллер друг-друга видят.
    Цитата Сообщение от fLegmatik Посмотреть сообщение
    По подключению в Codesys модулей ввода/вывода по протоколам Овен, Modbus/ASCII, Modbus/RTU написаны подробные инструкции, а вот как именно в Codesys научить ПЛК работать с Modbus/TCP -- нет ни одной. А ведь, судя по http://www.owen.ru , это третий по важности протокол.
    Нет инструкции там есть.
    Цитата Сообщение от fLegmatik Посмотреть сообщение
    Поскольку, на мой взгляд, этот топик наиболее близок к решаемой задаче, позвольте задать уточняющие вопросы тут.Поподробнее, пожалуйста. Куда нажать и какой кнопкой мыши, что выбрать, как сделать существующую переменную доступной тут? Куда бы я ни тыкался в PLC Configuration, самое большее, что нашёл -- это добавить к структуре "Modbus (slave)[VAR] -> Modbus[FIX] -> TCP[VAR]" ещё один подэлемент во втором уровне из списка "Statistic, Button, Universal network module, ..., Float). Но это, полагаю, совсем не то.
    Cначала делаем "Modbus (slave)[VAR] -> Modbus[FIX] -> TCP[VAR]
    Опять встаем на Modbus (slave)[VAR] жмем правую кнопку мыши
    Append Subelement -> (внизу выбирайте ) 2 byte, 8-bit, 4-byte....
    Например нажимаете 2 byte, появляется 2 byte (VAR)
    Присваиваете ей имя под которым она будет видна в программе.
    Ну а в Modbus она будет читаться по адресу 040001 для IP-адреса
    который имеет ВАШ контроллер....
    Последний раз редактировалось Andrey V; 19.12.2016 в 13:01.

  9. #9
    Пользователь
    Регистрация
    28.10.2008
    Адрес
    Туймазы, Башкортостан
    Сообщений
    9

    По умолчанию

    Цитата Сообщение от lunyov_i Посмотреть сообщение
    Нет инструкции там есть.
    Вполне возможно, но я не нашёл.
    Цитата Сообщение от lunyov_i Посмотреть сообщение
    А что значить стучался?
    Контроллер с компа пингуется?
    Раньше было так: контроллер пинговался, но на банальный telnet 192.168.0.101 502 выходил "Сбой подключения". Теперь, после выполнения ваших рекомендаций в этом топике, какое-то подключение производится. Спасибо. Буду тестировать работу всякими утилитами, работающими с modbus.
    Сразу возник ещё один вопрос. Можно ли не создавать новую переменную, а использовать уже имеющуюся в проекте? Например, мне сейчас для вывода на tcp-порт информации о состоянии дискретного выхода пришлось в каждый блок sfc-диаграммы пришлось добавить строчку "mb_mvu1:=mvu1;". Возможно, есть какое-то более изящное решение по связыванию переменных между собой в нашем случае? Приемлю ответ "ищи в форуме по сочетанию таких-то слов".

  10. #10
    Пользователь
    Регистрация
    12.12.2007
    Адрес
    п.Таврическое Омская область
    Сообщений
    97

    По умолчанию

    Цитата Сообщение от fLegmatik Посмотреть сообщение
    Сразу возник ещё один вопрос. Можно ли не создавать новую переменную, а использовать уже имеющуюся в проекте?
    Можно если этой переменной присвоить адрес соответствующий переменной в разделе Modbus Slave
    Там видел для каждой добавляемой в Modbus Slave переменной идет что-то типа AT %Q....
    Так вот в разделе глобальный переменных - если там есть у тебя
    уже какая то переменная которую ты желаешь отобразить на Modbus Slave
    то после нее введи вот это AT %Q...
    --------------------------
    Пример:
    У тебя есть некоторая переменная beispiel которую ты предназначил того чтобы выводить в сеть по TCP, но которая в разделе глобальных
    переменных (по историческим причинам )
    выглядит на начальном этапе так:
    beispiel : DWORD:=0;

    Теперь ты знаешь как заводить переменные в Modbus Slave,
    и завел там 4-байтовую переменную - но пока без имени
    просто там отображается что-то типа:
    AT %QD10.1.0

    Теперь чтобы связать эту четырехбайтовую переменную
    к beispiel переменной производим редактирование
    в разделе глобальных переменных и получаем:

    beispiel AT %QD10.1.0: DWORD:=0;

    Все, теперь все что будет из сети Modbus копироваться в
    AT %QD10.1.0
    будет сразу попадать в beispiel и наоборот...

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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