Связь Овен ПЛК160 с комуникатором

Стартовая страница Форумы Взаимодействие с устройствами Modbus Связь Овен ПЛК160 с комуникатором

Просмотр 15 сообщений - с 1 по 15 (из 16 всего)
  • Автор
    Сообщения
  • #5445
    freezing
    Участник

    Только начинаю изучать СКАДУ. Прошу помочь/объяснить доходчиво как на простой программе сделать связь со скадой (настройку шаблона для коммуникатора)
    прилагаю скриншот окна программы кодесис (всего одна переменная и один выход) и окна шаблона коммуникатора.
    http://www.picshare.ru/view/8052929/
    http://www.picshare.ru/view/8052907/

    #5446
    manjey73
    Участник

    https://s12.postimg.org/7w3ypja19/PLC_Owen0.png
    https://s21.postimg.org/vj9ruu43r/PLC_Owen1.png
    https://s29.postimg.org/h071ksoxz/PLC_Owen2.png
    https://s21.postimg.org/i3rcj4kzr/PLC_Owen3.png

    Начнем с того, что переменные через порт шлюза Codesys вы не прочтете никогда. Этот протокол RapidSCADA не знает.
    Чтобы читать переменные через Modbus необходимо их туда поместить например через конфигуратор ПЛК (читайте документацию к ПЛК и пользуйтесь форумом Овен)

    Переменные в Овен начинаются с 0, в шаблоне Коммуникаторе необходимо делать адрес+1
    Для float порядок байт в шаблоне должен быть 2301
    Для записи float необходимо в канале управления использовать формулу перестановки байт и формирования double (есть в соседних темах)
    Для записи word и int переменных использовать формулы не надо.
    Это для использования Стандартной команды в каналах управления.

    #5447
    freezing
    Участник

    Я заливаю программу в ПЛК и уже оттуда пытаюсь считывать. Вопрос в том какие адреса и как надо прописывать переменным в программе.
    И как эти адреса в шаблоне коммуникатора прописывать. привел простую программу из одной переменной и одного дискретного выхода, что бы мне могли с примером показать. Программу полива огорода с датчиками влажности и расхода воды уже написал, работает без нареканий, теперь если поможете то и скаду к ней приделаю.
    Вы выслали скриншоты своего шаблона большое спасибо, но мне интересна та часть где прописывается сама переменная и ее адрес.

    #5451
    Mikhail
    Модератор

    Добрый день!
    Какой адрес этой переменной и таблицу данных (Input Registers, Holding Registers и т.д.) Вы прописали в Codesys?
    Сколько регистров (или байт) занимает переменная и какой тип данных имеет?

    #5460
    manjey73
    Участник

    freezing как создавать переменные Modbus в ПЛК это тема не данного форума, а то получится большой ликбез.
    На форуме Овен а так же в документации ПЛК (Руководство по эксплуатации, Руководство по программированию) все давно разжевано.

    Куда копать, я написал. У Овен в ПЛК есть Конфигуратор, создать Modbus slave и так далее. Прочитать как происходит адресация, выравнивание адресов в зависимости от типов переменных. Порт по умолчанию 502 (а не 1200, который является портом шлюза Codesys), можете при необходимости поменять порт 502 на свой…

    Переменные получают адреса в зависимости от их расположения в Конфигураторе ПЛК с 0, в RapidSCADA необходимо к адресу переменной ПЛК прибавлять +1.

    Судя по скрину переменная локальная в Codesys, а не сетевая.

    #5466
    freezing
    Участник

    Начал читать Cjdesys учебник и инструкцию по программированию. Вопрос к вам гуру: Как я понял коммуникатор работает слейв и Овен мастером.
    У овна адрес =1 прописаный в коммуникаторе.
    Какой адрес у коммуникатора который я прописываю в конфигурации ПЛК для слейв устройства?

    #5467
    manjey73
    Участник

    SCADA — Master, режима slave для работы по Modbus у нее не реализовано. ПЛК должен быть slave.
    Для ПЛК Овен необходимо кроме Адреса (Позывной в Администраторе) так же необходимо указать и адрес, который назначен в конфигурации ПЛК

    Чтобы создать переменные в ПЛК Овен для Modbus slave надо изучить другие документы, которые я указал выше.

    • Ответ изменён 9 лет, 1 месяц назад пользователем manjey73.
    #5471
    freezing
    Участник

    Создал переменные в модбас-слайв.
    пытаюсь их читать коммуникатором:
    переменная word читается без проблем.
    а вот bool не читается (с чем это связано?)
    вот скриншоты настроек
    http://www.picshare.ru/view/8054694/
    http://www.picshare.ru/view/8054696/
    http://www.picshare.ru/view/8054698/
    http://www.picshare.ru/view/8054700/

    Также подскажите в какую сторону копать для передачи данных в плк.

    #5473
    manjey73
    Участник

    Попробуйте добавить еще 8 бит данных в слейв, чтобы получился полный регистр при выравнивании. Я не пользовался никогда данной командой на чтение. Согласно РП вроде ПЛК поддерживает команду 0х02 Read Discrete Inputs.

    Проще считать одной переменной word и в scada выдернуть биты в Дорасчётные каналы функцией GetBit(Val(1), 2) где 1 — номер канала, считанного значения, а 2 — номер бита

    Копать в сторону создания Каналов управления в базе и Команд в Конфигурации шаблонов Modbus в Коммуникаторе — Добавить команду а там уже в зависимости от типа данных применять формулу на канал управления или нет.

    #5474
    freezing
    Участник

    из ПЛК выдернуть 16 дискретных переменных двумя байтами (одним числом в формате word) получилось.
    Может администраторы или тех поддержка (гуру) скажет как это сделать если требуется выдернуть всего несколько битов?

    • Ответ изменён 9 лет, 1 месяц назад пользователем freezing.
    #5475
    manjey73
    Участник

    Дорасчетный ТИ не выполняет запросов к ПЛК, считали один раз регистр и после этого хоть все биты выдергивайте, хоть только нужные, в чем проблема то ?

    #5477
    freezing
    Участник

    хорошо пускай будет так, буду далее по немного изучать, спасибо за совет.

    #5478
    freezing
    Участник

    А может подскажете как передать переменную в ПЛК (вышлите скриншот конфигурации ПЛК, и шаблона устройства в коммуникаторе).

    #5481
    manjey73
    Участник

    https://s2.postimg.org/nds0bfqft/Modbus1.png

    Добавляете команду в редакторе шаблонов, указываете регистр. В данном случае Holding Single Registers. команда Modbus 0x06 и можно использовать Стандартную команду в канале управления без формул
    Если надо записать несколько регистров, например float, то надо поставить галочку «Множественная команда» и указать количество элементов 2 (2 регистра = 4 байта), но тогда при использовании Стандартной команды управления необходимо использовать формулу. Для Овен я использовал формулу

    Формула для Овен float

    • Ответ изменён 9 лет, 1 месяц назад пользователем manjey73.
    • Ответ изменён 9 лет, 1 месяц назад пользователем manjey73.
    #5484
    manjey73
    Участник

    https://s8.postimg.org/fkag83l11/Modbus2.png

    При настройке Входных каналов указать созданные номера Каналов Управления.

    https://s2.postimg.org/bxxk1gzl5/Modbus3.png

    В созданных каналах управления установить номера команд из шаблона Modbus, если нужно записать float то поставить галочку на формулу и записать ее в строке Формула

Просмотр 15 сообщений - с 1 по 15 (из 16 всего)
  • Для ответа в этой теме необходимо авторизоваться.