Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › Связь Овен ПЛК160 с комуникатором
- В этой теме 15 ответов, 3 участника, последнее обновление 9 лет, 1 месяц назад сделано
manjey73.
-
АвторСообщения
-
23.04.2017 в 20:12 #5445
freezing
УчастникТолько начинаю изучать СКАДУ. Прошу помочь/объяснить доходчиво как на простой программе сделать связь со скадой (настройку шаблона для коммуникатора)
прилагаю скриншот окна программы кодесис (всего одна переменная и один выход) и окна шаблона коммуникатора.
http://www.picshare.ru/view/8052929/
http://www.picshare.ru/view/8052907/23.04.2017 в 21:20 #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 переменных использовать формулы не надо.
Это для использования Стандартной команды в каналах управления.24.04.2017 в 01:04 #5447freezing
УчастникЯ заливаю программу в ПЛК и уже оттуда пытаюсь считывать. Вопрос в том какие адреса и как надо прописывать переменным в программе.
И как эти адреса в шаблоне коммуникатора прописывать. привел простую программу из одной переменной и одного дискретного выхода, что бы мне могли с примером показать. Программу полива огорода с датчиками влажности и расхода воды уже написал, работает без нареканий, теперь если поможете то и скаду к ней приделаю.
Вы выслали скриншоты своего шаблона большое спасибо, но мне интересна та часть где прописывается сама переменная и ее адрес.24.04.2017 в 07:54 #5451
MikhailМодераторДобрый день!
Какой адрес этой переменной и таблицу данных (Input Registers, Holding Registers и т.д.) Вы прописали в Codesys?
Сколько регистров (или байт) занимает переменная и какой тип данных имеет?24.04.2017 в 09:03 #5460
manjey73Участникfreezing как создавать переменные Modbus в ПЛК это тема не данного форума, а то получится большой ликбез.
На форуме Овен а так же в документации ПЛК (Руководство по эксплуатации, Руководство по программированию) все давно разжевано.Куда копать, я написал. У Овен в ПЛК есть Конфигуратор, создать Modbus slave и так далее. Прочитать как происходит адресация, выравнивание адресов в зависимости от типов переменных. Порт по умолчанию 502 (а не 1200, который является портом шлюза Codesys), можете при необходимости поменять порт 502 на свой…
Переменные получают адреса в зависимости от их расположения в Конфигураторе ПЛК с 0, в RapidSCADA необходимо к адресу переменной ПЛК прибавлять +1.
Судя по скрину переменная локальная в Codesys, а не сетевая.
24.04.2017 в 14:31 #5466freezing
УчастникНачал читать Cjdesys учебник и инструкцию по программированию. Вопрос к вам гуру: Как я понял коммуникатор работает слейв и Овен мастером.
У овна адрес =1 прописаный в коммуникаторе.
Какой адрес у коммуникатора который я прописываю в конфигурации ПЛК для слейв устройства?24.04.2017 в 14:42 #5467
manjey73УчастникSCADA — Master, режима slave для работы по Modbus у нее не реализовано. ПЛК должен быть slave.
Для ПЛК Овен необходимо кроме Адреса (Позывной в Администраторе) так же необходимо указать и адрес, который назначен в конфигурации ПЛКЧтобы создать переменные в ПЛК Овен для Modbus slave надо изучить другие документы, которые я указал выше.
-
Ответ изменён 9 лет, 1 месяц назад пользователем
manjey73.
24.04.2017 в 16:51 #5471freezing
УчастникСоздал переменные в модбас-слайв.
пытаюсь их читать коммуникатором:
переменная 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/Также подскажите в какую сторону копать для передачи данных в плк.
24.04.2017 в 17:32 #5473
manjey73УчастникПопробуйте добавить еще 8 бит данных в слейв, чтобы получился полный регистр при выравнивании. Я не пользовался никогда данной командой на чтение. Согласно РП вроде ПЛК поддерживает команду 0х02 Read Discrete Inputs.
Проще считать одной переменной word и в scada выдернуть биты в Дорасчётные каналы функцией GetBit(Val(1), 2) где 1 — номер канала, считанного значения, а 2 — номер бита
Копать в сторону создания Каналов управления в базе и Команд в Конфигурации шаблонов Modbus в Коммуникаторе — Добавить команду а там уже в зависимости от типа данных применять формулу на канал управления или нет.
24.04.2017 в 19:18 #5474freezing
Участникиз ПЛК выдернуть 16 дискретных переменных двумя байтами (одним числом в формате word) получилось.
Может администраторы или тех поддержка (гуру) скажет как это сделать если требуется выдернуть всего несколько битов?-
Ответ изменён 9 лет, 1 месяц назад пользователем
freezing.
24.04.2017 в 20:19 #5475
manjey73УчастникДорасчетный ТИ не выполняет запросов к ПЛК, считали один раз регистр и после этого хоть все биты выдергивайте, хоть только нужные, в чем проблема то ?
24.04.2017 в 22:46 #5477freezing
Участникхорошо пускай будет так, буду далее по немного изучать, спасибо за совет.
24.04.2017 в 23:47 #5478freezing
УчастникА может подскажете как передать переменную в ПЛК (вышлите скриншот конфигурации ПЛК, и шаблона устройства в коммуникаторе).
25.04.2017 в 08:55 #5481
manjey73Участникhttps://s2.postimg.org/nds0bfqft/Modbus1.png
Добавляете команду в редакторе шаблонов, указываете регистр. В данном случае Holding Single Registers. команда Modbus 0x06 и можно использовать Стандартную команду в канале управления без формул
Если надо записать несколько регистров, например float, то надо поставить галочку «Множественная команда» и указать количество элементов 2 (2 регистра = 4 байта), но тогда при использовании Стандартной команды управления необходимо использовать формулу. Для Овен я использовал формулу25.04.2017 в 09:11 #5484
manjey73Участникhttps://s8.postimg.org/fkag83l11/Modbus2.png
При настройке Входных каналов указать созданные номера Каналов Управления.
https://s2.postimg.org/bxxk1gzl5/Modbus3.png
В созданных каналах управления установить номера команд из шаблона Modbus, если нужно записать float то поставить галочку на формулу и записать ее в строке Формула
-
Ответ изменён 9 лет, 1 месяц назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.