PDA

Просмотр полной версии : ПЛК 308 + Modbus



ZartArn
19.11.2012, 16:09
Добрый день. Недавно получил ПЛК-308 для очередного проекта. Уже имею опыт работы с ПЛК-150 и CoDeSys v2.3, но CoDeSys v3.4 как и ПЛК-308 использую первый раз.

Задача: организация управления около 200 контроллеров объединенных линиями RS 485 по протоколу ModBus RTU, скорость передачи 19200. По идее с выбором ПЛК не ошибся, по проекту сеть будет разбита на сегменты, которые будут подключаться к разным последовательным портам ПЛК 308, для увеличения скорости опроса. Но при попытки опросить хотя бы один контроллер возникли непонятки...

Подключил устройства как показано ТУТ (http://www.owen.ru/forum/attachment.php?attachmentid=6690&d=1344442289), ошибок никаких не выдало, но и никакого опроса нет. Проверял подключая преобразователь 485-USB к разным портам ПЛК. В данном случае пытался опросить регистр хранения 0xFFF2 (Read Holding Registers) устройства с адресом 0x01 Что я сделал не правильно?

http://i.piccy.info/i7/0a6749823d1369e32d18818e39af787a/4-48-675/12408872/1_500.jpg (http://piccy.info/view3/3739586/4c0da40c925ad1448766456f23baa54b/orig/)http://i.piccy.info/a3/2012-11-19-12-05/i7-3739586/500x313-r/i.gif (http://i.piccy.info/a3c/2012-11-19-12-05/i7-3739586/500x313-r)

http://i.piccy.info/i7/89aff96071c86b053de710770480f827/4-48-675/12845279/2_500.jpg (http://piccy.info/view3/3739587/f25a7d4399f7ef4c30e95fa14cf7d16b/orig/)http://i.piccy.info/a3/2012-11-19-12-05/i7-3739587/500x313-r/i.gif (http://i.piccy.info/a3c/2012-11-19-12-05/i7-3739587/500x313-r)

http://i.piccy.info/i7/b1276f3bb944bc571a112157b0a7cfba/4-48-675/13553418/3_500.jpg (http://piccy.info/view3/3739589/fe6ab9580b2ba2968b214caa6c8aadd8/orig/)http://i.piccy.info/a3/2012-11-19-12-05/i7-3739589/500x313-r/i.gif (http://i.piccy.info/a3c/2012-11-19-12-05/i7-3739589/500x313-r)

http://i.piccy.info/i7/5c348a49aaf52be65b3ae72720e51324/4-48-675/14018357/4_500.jpg (http://piccy.info/view3/3739590/aaa94075fc70d9e4ef808e36e8f1ea9e/orig/)http://i.piccy.info/a3/2012-11-19-12-05/i7-3739590/500x313-r/i.gif (http://i.piccy.info/a3c/2012-11-19-12-05/i7-3739590/500x313-r)

ZartArn
19.11.2012, 16:40
Забыл уточнить, что проверял эти же ModBus устройства на ПЛК-150 в CoDeSys v2.3 - все отлично просилось, никаких проблем

Логвиненко Андрей
20.11.2012, 08:47
Чтобы шел опрос, надо вызывать переменную в программе.

ZartArn
20.11.2012, 14:41
Спасибо за ответ, попробовал добавить переменную в основную программу, но никаких признаков обмена или ошибок чтения регистров модбаса так и не обнаружил...

http://i.piccy.info/i7/478072132cec1b78d5758ed1f80f3fba/4-48-708/50916870/5_500.jpg (http://piccy.info/view3/3743782/17ccb3a452fa408ede68c799464ca2ae/orig/)http://i.piccy.info/a3/2012-11-20-10-39/i7-3743782/500x313-r/i.gif (http://i.piccy.info/a3c/2012-11-20-10-39/i7-3743782/500x313-r)

saniyo
21.11.2012, 21:25
У меня такая же проблема, нет никакого обмена только плк 304. в контроллере как то етими же действиями я одного раза добился опроса но с проблемами большыми, видимо были потери пакетов или время импульсов не совпадало, а потом как перестало само по себе работать так и по сей день не работает (уточню даже лампа на плк не моргает а контроллер валяется).

kgsh82
22.11.2012, 06:27
Я делал опрос на ПЛК304 и 308 через биб-ки от Овена, всё работает.

ZartArn
22.11.2012, 11:50
Разобрался, пошел опрос. Оказуется у фирмы ОВЕН COM5 это программно COM6! Первый порт это COM2. COM1 программно не существует я так понял, поэтому доступа к нему нет.

capzap
22.11.2012, 12:13
Разобрался, пошел опрос. Оказуется у фирмы ОВЕН COM5 это программно COM6! Первый порт это COM2. COM1 программно не существует я так понял, поэтому доступа к нему нет.

http://www.owen.ru/forum/showpost.php?p=55440&postcount=3

обратите внимание на дату

Логвиненко Андрей
22.11.2012, 12:22
Порт СОМ1 существует, в ПЛК304 он подключен в 3-й разъем , только на другие контакты. Используется для подключения к консоли, но доступен для пользовательских программ. При потере связи в ветке устройств в online для Modbus Slave устанавливается значёк ошибки. У вас в скриншортах этого не видно ( наверно не было опроса переменной) , а мысль, что вы перепутали порты, у меня была.

ZartArn
22.11.2012, 14:20
Сейчас у меня опрос идет, но почему-то временами выбивают ошибки опроса.. хотя просматривал обмен через терминал - запросы и ответы по модбасу правильные. Но почему то после 3-5 пакетов ПЛК начинает чего-то ждать по таймауту, дальше продолжается обмен, при этом показует ошибку обмена. Garrett Ace 250 (http://metaloshukach.com.ua/metaloshukach-garrett-ace-250/)

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

ZartArn
22.11.2012, 15:27
файл проекта (обновил, первый раз не выложился)

Логвиненко Андрей
22.11.2012, 15:27
ModbusSlave устройства фактически являются экземплярами ФБ ModbusSlaveComPort Этот ФБ имеет переменные xReset и xError.
Подробности можно посмотреть в менеджере библиотек. Идем по ветке IoDrvModbus, в папке ModbusComport смотрим ФБ ModbusSlaveComPort.

Рабиндранат
22.11.2012, 15:43
А Вы пробовали библиотечки отсюда (http://www.owen.ru/catalog/80224381)?

А по поводу номера порта - все указано в FAQ (http://www.owen.ru/catalog/46995500). Хотя, кончено, корявенько информация собрана. Разрозненно как-то.

ZartArn
22.11.2012, 17:03
Спасибо за ответы. Библиотеки подключал и добавлял в проект те что идут с диском от ПЛК-308:

ModBus-slave.compiled-library
ModBus.compiled-library
OwenNet.compiled-library

Потом их удалил из проекта т.к. они ни на что не влияют. Насколько я понял их нужно использовать при обращении к портам и модбасу из PLC_PRG, если добавить устройства средствами кодесиса как у меня на скриншотах то обмен идет и без этих библиотек аналогично как и в ПЛК-150 с CDS v2.3 я добавлял устройства в PLC Configuration и не использовал никаких дополнительных библиотек.

kgsh82
23.11.2012, 07:54
В данном случае нужна только ModBus.compiled-library. Используя ФБ из биб-ки можно регулировать и частоту опроса и корректно возобновлять при обрыве т. д. и т. п.

ZartArn
23.11.2012, 18:14
kgsh82, через библиотеку, прописуя устройства в PLC_PRG можно работать если устройств штук 10, но в моем случае устройства более 200 шт.

Сегодня притащил со склада ПЛК-150 и еще раз протестировал свои устройства на нем. Выставлял минимальное время обмена - 10 мс, опрашивал все подряд в любой последовательности - все идеально, никаких ошибок и задержек, смотреть приятно!

http://i.piccy.info/i7/4a29121d74e15921ec8e9d0977e6c5cb/4-48-817/50507300/IMAGE_130_500.jpg (http://piccy.info/view3/3758270/9b6d3da73fc56440db5bfdb94d66fcf4/)http://i.piccy.info/a3/2012-11-23-14-33/i7-3758270/472x354-r/i.gif (http://i.piccy.info/a3c/2012-11-23-14-33/i7-3758270/472x354-r)

На 308-м даже через 500 мс даже 1 регистр одного устройства без ошибок и непонятных задержек прочитать трудно...

kgsh82
25.11.2012, 22:01
Если устройства одинаковые, то можно сотворить ФБ для одного, потом массив ФБ и гонять по циклу. В плк304 нечто подобное делал.

ZartArn
26.11.2012, 17:15
kgsh82, а можете поделиться примером? Идея хорошая, но не очень хорошо представляю как ее реализовать программно...

kgsh82
27.11.2012, 05:33
Пример не под рукой сейчас....
Начните с одного функционального блока

ZartArn
27.11.2012, 19:30
А как потом цикл организовать? Вы на ST делали?

kgsh82
28.11.2012, 06:53
Поразмыслил - можно обойтись и без массива
Как таковой цикл не нужен, достаточно, чтобы задача в ПЛК была свободная или циклическая.
Входные данные ФБ: Разрешение работы, Дескриптор порта, Адрес устройства, Смещение индекса выходного массива данных.
Выходные данные ФБ: Флаг окончания, Код ошибки.

Алгоритм примерно такой: После окончания работы ФБ меняется адрес устройства и смещение индекса и заново разрешается работа.
Данные можно записывать внутри в один глобальный массив

Как-то так, пробуйте.

ZartArn
28.11.2012, 12:53
Спасибо за ответы, но что-то я запутался. Где найти пример как опросить модбас устройство используя только модбасовскую либу? Те примеры что я видел - там опрос овеновских блоков ввода-вывода...

kgsh82
28.11.2012, 12:58
В описании к библиотеке есть, только немного корявое....А овеновские блоки по какому протоколу опрашиваются? В новых модулях ввода-вывода вроде только модбас и поддерживается.

ZartArn
28.11.2012, 16:14
Там модбас, но в примере использована библиотека ModulsOwenLib.library, единственный пример нашел здесь: Подключение Библиотек. Установка таргета. Опрос модуля с помощью ФБ из библиотеки "ModulsOwenLib" (http://www.kipshop.ru/CoDeSys3.0/Video/codesys-3.0-video-1.zip). Там для каждого модуля от Овна есть свой функциональный блок.

В свободное время попробовал на ПЛК-150 опросить в цикле 1 регистр на 2-х своих устройства с использованием либы Modbus.lib в CDS v2.3 - все заработало с первого раза как надо. Без проблем нашел все примеры и описания.

С ПЛК-308 опять туман...

kgsh82
28.11.2012, 17:14
Попробуйте проштудировать описание к биб-ке ModbusMaster. Скачать можно в предыдущей теме
Вроде особых отличий входных-выходных данных у ФБ из библиотеки Модбас для кдс23 и кдс34 нет. Но не сравнивал, может и есть
ЗЫ: Вроде эта бибка (ModulsOwenLib) - открытая. Там должны использоваться ФБ из ModbusMaster.

kgsh82
30.11.2012, 12:58
To ZartArn

Как успехи? Получается что-нибудь?

ZartArn
05.12.2012, 00:12
Жду ответов от поддержки Овна, и тем временем экспериментирую и отлаживаю алгоритмы управления на ПЛК-150.

Если не трудно, можно линк на ModbusMaster и ее описание. Не совсем пойму в какой предыдущей теме это..

kgsh82
05.12.2012, 18:19
Поиск по форуму в таких случаях хорошо помогает
http://www.owen.ru/forum/showthread.php?t=12081

максим15644
25.04.2013, 18:33
у меня вопрос!
как мне связать 3 мдвв с плк 154al по rs485

capzap
25.04.2013, 18:50
у меня вопрос!
как мне связать 3 мдвв с плк 154al по rs485

Только с помощью библиотек, примеры можно взглянуть здесь

capzap
25.04.2013, 18:51
www.owen.ru/forum/showthread.php?t=13584