PDA

Просмотр полной версии : ПЛК308+МВУ8Р+ МВ110 программирование в CodeSys



ivandragon
03.02.2014, 19:18
Доброго времени суток! Сейчас программирую телеметрию для котельной и поскольку это у меня первый опыт, то прошу сильно не пинать
Вопросы у меня по программированию:
1. У меня 4 модуля мв110, 3 аналог. и 1 дискретный+ мву8р все подключается к ПЛК308. Программу пишу в кодесис на языке sfc. Я прописал адреса модулей начиная с 16 по 19, это верно или нужно было прописывать кратно 8 т.е. 8,16,24,36?
2. Может быть у кого есть пример программирования мву8р(релейный), мне посоветовали использовать блок Uniwrite, вот только не могу понять какие в нем значения прописывать. Я так понял, что нужно на определенный адрес посылать 1 или 0 для коммутации?

zendo057
03.02.2014, 21:25
Какой выбрали протокол,какие модули сколько разрядов напишите конкретней:eek:

ivandragon
04.02.2014, 05:52
Протокол на всех модулях MOodbus_RTU, 3 модуля МВ110 8А и 1 МВ110 16Д + релейный мву8р. Контроллер программирую для того, что бы в дальнейшем значения, снятые с датчиков температуры и давления я мог передать посредством OPS сервера в Trace Mode. Для управления релейными выходами на мву8р мне тоже необходимо сделать так, чтобы, я мог управлять им из под SCADA.Уважаемые вы мне просто скажите, как и где прописать переменную для управления релейным выходом мву8р, где прописать адреса выходов и какими они будут?

s22
27.03.2014, 14:47
Плюсую, вопрос актуален и для меня. CodeSys 3.4. Насколько я понял запись каждого выхода (2 аналоговых + 6 дискретных) производится через модули UniWrite? Прилагаю скрин с тем, что сейчас есть.
Непонятно куда подавать значения выходов?

12406

ivandragon
27.03.2014, 15:36
Я уже с этим разобрался. В кодесис МВУ8р программируется с помощью блока MY110_8l_OUTS . На входы нужно подавать значение 1000 для включения и 0 для отключения реле. Не забывайте указывать номер порта на Com_conn блоке+1 к номеру порта ПЛК. Например у меня МВУ8Р подключен к 8 порту ПЛК, то в блоке Com_conn пишем 9. Далее адреса модулей подключенных к ПЛК записываем кратным 8, а лучше 16. Например у нас 2 дискретника МВ110 16Д и мву8р, их адреса могут быть 16, 24 и 32. Блоки в кодесис для аналоговых модулей это MV110_...A_inputs(где многоточие, количество входов), для дискретных MV110_...D_inputs. Далее запускаем конфигуратор М110(для аналоговых и дискретных модулей) и записываем тот же адрес, скорость обмена и т.д.(что указали в блоку Com_conn) и режим работы (у меня MB_RTU). Так же описываем в конфигураторе входы. Все, теперь если вы подключили, и все настроили верно, то в кодесис можете увидеть работу модулей.124071240812409

s22
27.03.2014, 16:24
Спасибо! Помогло! Остальное уже понятно.

Разработчикам тире производителям, т.е. фирме ОВЕН жирный минус за отсутствие подробной информации по подключению МВУ8 в CodeSys 3.

ivandragon
27.03.2014, 16:42
Не за что! Мне тоже на этом форуме никто не помог, помог Гарчев Евгений Cергеевич по скайпу(http://www.owen.ru/82329884), за что ему огромное спасибо!
Мне не жалко, держите еще настройка ОРС сервера кодесис, видео http://www.prolog-plc.ru/st/doc/OPC-Demo.swf

Stork-Systems
17.06.2014, 19:26
Добрый день. Подскажите пожалуйста, как будет выглядеть схема, когда на один порт (Com_conn) будет подключено более одного модуля. Как сигнал "Handle" пустить на два модуля? Если я соединяю на "Handle" два модуля, то у меня все равно видится какой-то один, два вместе не видятся. Адреса модулей разные.

ivandragon
18.06.2014, 06:40
Добрый день. Подскажите пожалуйста, как будет выглядеть схема, когда на один порт (Com_conn) будет подключено более одного модуля. Как сигнал "Handle" пустить на два модуля? Если я соединяю на "Handle" два модуля, то у меня все равно видится какой-то один, два вместе не видятся. Адреса модулей разные.

Вы создайте еще один блок Com_conn с таким же номером порта(я так понял, что у вас к одному порту ПЛК подключены 2 модуля) и подключите к нему другой модуль с уже другим адресом. Т.е. если к одному порту ПЛК подключены 2 модуля, то и блоков Com_conn должно быть 2.

capzap
18.06.2014, 06:56
Вы создайте еще один блок Com_conn с таким же номером порта(я так понял, что у вас к одному порту ПЛК подключены 2 модуля) и подключите к нему другой модуль с уже другим адресом. Т.е. если к одному порту ПЛК подключены 2 модуля, то и блоков Com_conn должно быть 2.
И на практике у Вас это получилось?

Stork-Systems
18.06.2014, 07:59
Спасибо за ответ. Два блока "ComConn" на один порт я тоже пробовал, не работает. "ComConn" инициализирует порт, и это должно делаться один раз, как я думаю. Далее вот, как за "ComConn" подключить два модуля с разными адресами? С "ComConn" на модули должны прийти два сигнала: "Handle" и "Done". "Done" после элемента "AND" подаем напрямую на два модуля. Что делать с "Handle" (идентификатор открытого порта), как его подать на два модуля?

ivandragon
18.06.2014, 08:08
И на практике у Вас это получилось?

Честно говоря я не пробовал, но если вы в курсе то посоветуйте как это сделать. Кстати вопрос к вам, вы с Деконтами знакомы?, просто могу предложить работу.

capzap
18.06.2014, 09:18
Спасибо за ответ. Два блока "ComConn" на один порт я тоже пробовал, не работает. "ComConn" инициализирует порт, и это должно делаться один раз, как я думаю. Далее вот, как за "ComConn" подключить два модуля с разными адресами? С "ComConn" на модули должны прийти два сигнала: "Handle" и "Done". "Done" после элемента "AND" подаем напрямую на два модуля. Что делать с "Handle" (идентификатор открытого порта), как его подать на два модуля?

Подав питание на модуль,он самостоятельно подключается к сети(в случае если речь о 485 то можно подключить более одного прибора) и далее ждет запроса от мастера по заданному протоколу как в модуле так и в плк. Если работаете с бибкой модбас,то в блоке посылающем запрос на чтение или запись будете вводить и хандле и соответствующий адрес и вот какой адрес введете,прибор с таким адресом и ответит.

Здается мне что Вы зря за библиотеки взялись,всё это можно сделать через конфигуратор

Stork-Systems
18.06.2014, 16:03
Подав питание на модуль,он самостоятельно подключается к сети(в случае если речь о 485 то можно подключить более одного прибора) и далее ждет запроса от мастера по заданному протоколу как в модуле так и в плк. Если работаете с бибкой модбас,то в блоке посылающем запрос на чтение или запись будете вводить и хандле и соответствующий адрес и вот какой адрес введете,прибор с таким адресом и ответит.

Здается мне что Вы зря за библиотеки взялись,всё это можно сделать через конфигуратор

ПЛК308, два модуля: МВ110-16Д и МУ110-16Р
подключены по RS-485 последовательно к порту 5 ПЛК
(RJ45 - "2 оранжевый" к "А" первого модуля и к "А" второго модуля)
(RJ45 - "4 синий" к "В" первого модуля и к "В" второго модуля).

Конфигуратором выставленны в обоих модулях скорости 115200,
протокол обмена ModBus-RTU, (в МУ110-16Р протокола обмена нат),
и базовые адреса приборов 16 и 32.

Проект в CoDeSys 3.5. Помещаем блок "ComConn" который настраивает 5 порт.
"Hendle" соединил ко второму модулю, он и опрашивается, индикатор RS-485
на нем мигает, на первом модуле нет. Ошибки "wErrCode" во втором модуле нет,
в первом есть.

Как опросить/записать значения в два модуля?
Использовать блоки "Uniread"/"Uniwrite"?

133141331513316

capzap
18.06.2014, 16:08
Позвольте, слышали что нибудь,почему мастер в сети должен быть один - чтобы запросы не накладывались друг на друга,а Вы пытаетесь одновоеменно посылать оба запроса,тут как в поговорке: кто последний тот и папа

Stork-Systems
18.06.2014, 16:16
Подав питание на модуль,он самостоятельно подключается к сети(в случае если речь о 485 то можно подключить более одного прибора) и далее ждет запроса от мастера по заданному протоколу как в модуле так и в плк. Если работаете с бибкой модбас,то в блоке посылающем запрос на чтение или запись будете вводить и хандле и соответствующий адрес и вот какой адрес введете,прибор с таким адресом и ответит.

Здается мне что Вы зря за библиотеки взялись,всё это можно сделать через конфигуратор

Как определить "Handle" для каждого модуля? Он каждое подключение разный: "16#00000013" - последние цифры насчитываются. Один и тот же "Handle" не может идти сразу на два модуля? У меня возникает ошибка.

Stork-Systems
18.06.2014, 16:24
Позвольте, слышали что нибудь,почему мастер в сети должен быть один - чтобы запросы не накладывались друг на друга,а Вы пытаетесь одновоеменно посылать оба запроса,тут как в поговорке: кто последний тот и папа
Понятно, сигнал "Done" должен уходить поочередно на каждый из модулей, и "Handle" должен коммутироваться вместе с "Done". Попробую придумать схему. Если "Done" булевый, то "Handle" имеет непростой тип, как его через логику коммутировать не представляю.

ivandragon
18.06.2014, 16:26
Тогда получается, что нужно еще один таймер применить после первого?

capzap
18.06.2014, 16:30
Хандле один раз открыли и кидаете на входы модулей как сейчас разрешение работы сделано, а саму работу разрешать можно по выходному сигналу соседа,когда он завершил транзакцию он выдает сигнал доне,вот его и можно использовать для опроса следующего модуля,как то так

Stork-Systems
18.06.2014, 17:06
Большое спасибо, Capzar и Ivandragon! Заработало! Опрашиваются два модуля одним портом!
13317

Stork-Systems
18.06.2014, 17:12
Но вот еще вопрос, может совместными усилиями раскрутим еще одну задачу:
Модуля МВ110-32ДН нет в библиотеке ModulsOwenLib.
"Супер Модератор" ответил на этот вопрос так:
"Данные с модулей считываются при помощи протокола Modbus RTU.
В модулях МУ110-32Р, МВ110-32ДН, МУ110-8Р есть регистры протокола Modbus,
в которых хранятся данные с входов/выходов и прочие(описано в руководстве).
Каждый регистр имеет свой адрес и функцию протокола Modbus, при помощи которой
осуществляется считывание/запись в данный регистр.
Функциональные блоки UniRead/UniWrite позволяют считывать/записывать данные
из отдельных регистров модулей.
Функционального блока для работы с модулем "МВ110-32ДН" нет,
вы можете считывать данные при помощи функционального блока UniRead.
Считываете данные одной переменной DWORD начиная с адреса 0х0063,
каждый отдельный бит DWORD будет дискретным входом(Битовая маска значений)."

Попробую создать проект считывания блоком "UniRead" значений модуля МВ110-16Д.

Stork-Systems
19.06.2014, 15:09
Помогите, не знаю что и делать, ПЛК308!

CoDeSys 3.5. При создании проекта "Device" - "Сканировать сеть" - ПЛК308 определяется, "Установить активный путь".
Проект компилирую, сохраняю. При "Login", иногда спросит "перезаписать программу" а иногда и сразу "Нет связи с устройством. Проверьте сеть".
И затем уже "Сканировать сеть" - ПЛК308 не находит! После выключения ПЛК308, все повторяется: видится, но "Login" сделать не дает, рвет связь.
Когда связь порвал, "ping 10.0.6.10" проходит, через WEB-конфигуратор дает заходить.

Почему ПЛК308 при "Login" разрывает связь? Что можно сделать?

ivandragon
19.06.2014, 15:47
Попробуйте IP адрес ПЛК поменять на например 192.168.4.1. При этом в настройках компа TCP/IP v4 вводим IP 192.168.4.2 маска 255.255.255.0 основной шлюз 192.168.4.1 должно коннектится без бэ.

Stork-Systems
19.06.2014, 18:59
ПЛК308, модуль МВ110-16Д подключен по RS-485 к порту 5.
Необходимо считать битовую маску состояния дискретных входов:
регистр с номером 51 (0х33). (два байта).

Описываем переменную Mask: WORD; куда будем считывать.
Нет опроса модуля. Что я делаю не так?
13325

capzap
19.06.2014, 19:31
а что накидать то проект через конфигурацию для чтения одного регистра сложно? Такая ли уж необходимость за библиотеки браться?



ЗЫ http://www.owen.ru/forum/showthread.php?t=11797&p=88181&viewfull=1#post88181

Stork-Systems
20.06.2014, 13:05
а что накидать то проект через конфигурацию для чтения одного регистра сложно? Такая ли уж необходимость за библиотеки браться?



ЗЫ http://www.owen.ru/forum/showthread.php?t=11797&p=88181&viewfull=1#post88181


http://www.owen.ru/forum/showthread.php?t=17577&p=139846#post139846

ПЛК308, на COM1 подключены по RS-485 три модуля МВ110-32ДН, 16ДН, 16К.

Создаю проект в CoDeSys 3.5 SP3.

Версия Target-файла owen_plc30x.devdesc.xml (07.09.2010) - 3.4.0.10
Файл ModBus.compiled-library (03.08.10)

Добавляю устройство Modbus_COM - версия 3.4.0.0 - при компиляции ошибок нет.

Далее, в Modbus_COM добавляю Modbus_Master_COM_Port - версия 3.5.3.0 - при компиляции 501 ошибка.

Нужен Modbus_Master_COM_Port версии не выше Target-файла - где его взять?

Он устанавливается вместе с библиотекой ModBus 3.1.1(OWEN) из файла
ModBus.compiled-library который идет на диске с ПЛК308.

13335

Трофимов Артем
20.06.2014, 14:45
http://www.owen.ru/forum/showthread.php?t=17577&p=139846#post139846

ПЛК308, на COM1 подключены по RS-485 три модуля МВ110-32ДН, 16ДН, 16К.

Создаю проект в CoDeSys 3.5 SP3.

Версия Target-файла owen_plc30x.devdesc.xml (07.09.2010) - 3.4.0.10
Файл ModBus.compiled-library (03.08.10)

Добавляю устройство Modbus_COM - версия 3.4.0.0 - при компиляции ошибок нет.

Далее, в Modbus_COM добавляю Modbus_Master_COM_Port - версия 3.5.3.0 - при компиляции 501 ошибка.

Нужен Modbus_Master_COM_Port версии не выше Target-файла - где его взять?

Он устанавливается вместе с библиотекой ModBus 3.1.1(OWEN) из файла
ModBus.compiled-library который идет на диске с ПЛК308.

13335

чтобы увидеть предыдущие установленные версии устройств зайдите в инструменты - опции. выберите как на рисунке 13336

далее , при добавлении/обновлении устройства утановите галочку отображать все версии устройств

Stork-Systems
21.06.2014, 09:47
ПЛК308, подключен модуль МВ110-16Р.
Опрос модуля идет, индикатор RS-485 на модуле мигает,
в программе биты выходов установлены, модуль не срабатывает,
на выходах модуля реле не срабатывают, номера выходов не загораются!
Чего не хватает, чтобы модуль протолкнул значения на выходы?

13348
13349
13350

ivandragon
23.06.2014, 11:33
Гарчев Евгений Cергеевич (http://www.owen.ru/82329884) пообщайтесь с ним по скайпу скорее всего вам помогут.

Трофимов Артем
23.06.2014, 16:58
ПЛК308, подключен модуль МВ110-16Р.
Опрос модуля идет, индикатор RS-485 на модуле мигает,
в программе биты выходов установлены, модуль не срабатывает,
на выходах модуля реле не срабатывают, номера выходов не загораются!
Чего не хватает, чтобы модуль протолкнул значения на выходы?

13348
13349
13350

попробуйте привязаться к битовой маске а не к конкретным битам. внутри кода просто упакуйте. какие версии устройств Вы используете?

ivandragon
19.12.2014, 12:58
Напишу в этой теме, про настройку сетевых параметров компьютера для возможности настройки ПЛК308 через web конфигуратор.
Уважаемые разработчики, добавьте в инструкцию к ПЛК308 то, что я тут напишу, потому как я сам потратил 2 часа, чтобы разобраться.
Для того чтобы войти в web конфигуратор, необходимо сделать настройки сетевого адаптера компьютера следующими:
IP-адрес 10.0.6.11
Маска подсети 255.255.255.0
Далее подключаем ПЛК к компьютеру, открываем любой интернет браузер и пишем адрес 10.0.6.10, если все хорошо,то далее по инструкции.
НО, если при переходе по адресу 10.0.6.10 выходит ошибка, а настройку адаптера произвели правильно, то возможно ваш компьютер подключен к сети через прокси сервер.
Открываем Пуск> Панель управления> Свойства обозревателя> вкладка Подключения> кнопка Настройка сети> убираем галочку использовать прокси сервер.
И О Чудо! все работает!

Трофимов Артем
19.12.2014, 13:17
выдержка из руководства по эксплуатации ПЛК308 , приложение Г.

"Г.2 Описание работы
Подключение к контроллеру должно осуществляться по Ethernet. Обращение к конфигура-
тору должно осуществляться по адресу «http://xxx.xxx.xxx.xxx», где «xxx.xxx.xxx.xxx» – IP-адрес
контроллера. IP-адрес контроллера по умолчанию – 10.0.6.10.
При начальном обращении к контроллеру в браузере открывается окно ввода логина и па-
роля. Следует ввести: логин (login) – www-data, пароль (password) – 54321. Если при запросе
браузера выбрать опцию «Сохранять пароль», то после этого запрос пароля (до смены пароля)
браузер выдавать не будет.
После ввода значений (см. ниже) следует нажать кнопку «Записать в ПЛК и перезагру-
зить». После этого контроллер воспримет новые значения и перезагрузится."


IP адрес ПЛК указан, остаётся лишь понимание, что Ваш ПК должен иметь IP той же сети. проверить можете банальной командой PING 10.0.6.10 в командной строке Windows. если ПЛК пингуется - связаться с ВЕБ конфигуратором не составит проблем. смотрите маску ПЛК и : либо в гэйтвее кодесис ставите конкретный адрес ПЛК, либо при поиске по Localhost необходимо сделать маски сети одинаковыми на ПК и ПЛК

ivandragon
19.12.2014, 16:37
выдержка из руководства по эксплуатации ПЛК308 , приложение Г.

"Г.2 Описание работы
Подключение к контроллеру должно осуществляться по Ethernet. Обращение к конфигура-
тору должно осуществляться по адресу «http://xxx.xxx.xxx.xxx», где «xxx.xxx.xxx.xxx» – IP-адрес
контроллера. IP-адрес контроллера по умолчанию – 10.0.6.10.
При начальном обращении к контроллеру в браузере открывается окно ввода логина и па-
роля. Следует ввести: логин (login) – www-data, пароль (password) – 54321. Если при запросе
браузера выбрать опцию «Сохранять пароль», то после этого запрос пароля (до смены пароля)
браузер выдавать не будет.
После ввода значений (см. ниже) следует нажать кнопку «Записать в ПЛК и перезагру-
зить». После этого контроллер воспримет новые значения и перезагрузится."


IP адрес ПЛК указан, остаётся лишь понимание, что Ваш ПК должен иметь IP той же сети. проверить можете банальной командой PING 10.0.6.10 в командной строке Windows. если ПЛК пингуется - связаться с ВЕБ конфигуратором не составит проблем. смотрите маску ПЛК и : либо в гэйтвее кодесис ставите конкретный адрес ПЛК, либо при поиске по Localhost необходимо сделать маски сети одинаковыми на ПК и ПЛК

Когда комп подключен к сети через прокси сервер, ip 10.0.6.10 пингуется без проблем, CodeSys его тоже видит, НО по IP адресу в конфигуратор не зайти. Попробуйте сами прописать прокси сервер в настройках сети и зайти в конфигуратор.

capzap
19.12.2014, 19:09
Когда комп подключен к сети через прокси сервер, ip 10.0.6.10 пингуется без проблем, CodeSys его тоже видит, НО по IP адресу в конфигуратор не зайти. Попробуйте сами прописать прокси сервер в настройках сети и зайти в конфигуратор.

вот чудак, что Вы подразумеваете под прокси, сервак гдето в инете, так ему не ведомы локальные адреса Вашей сети, при др. варианте у проксей другая задача, поэтому возможно закрыты порты которые нужны КДС, а не наличие прокси

ivandragon
20.12.2014, 07:30
Объясняю подробнее. У нас на работе все компы подключены к интернету через прокси сервер, который прописан на каждом из них и если не снять галочку использовать прокси сервер, то в конфигуратор не зайти, смотрите скриншоты ниже. Второй скрин будет такой же если подключить ПЛК.
1578915790

capzap
20.12.2014, 07:39
да Вы не здесь объясняйте а сисадмину Вашему, чтоб он открыл нужные порты

ivandragon
20.12.2014, 07:40
Нужно просто написать в инструкции отключайте прокси сервер в настройках локальной сети, если такой имеется. Все.

capzap
20.12.2014, 07:46
что значит нужно, у многих отсутствует такой подход к организации сетей, а ведущие бренды, вроде сименса вобще требуют отдельную ЛВС для промышленной автоматики и что, Ваш случай частный, если всё прописывать бумаги нк хватит

ivandragon
20.12.2014, 07:46
да Вы не здесь объясняйте а сисадмину Вашему, чтоб он открыл нужные порты

Чтобы что-то объяснить, нужно знать где рыть, я просто потерял 2 часа времени, пытаясь подключиться и хочу сэкономить время другим, и кстати про порты в инструкции ничего не написано.

capzap
20.12.2014, 07:51
хром и ие используют системные настройки, если бы Вы пользовались лисой или оперой, Вам бы эта проблема не попалась бы возможно, это тоже прописывать в инструкциях, давайте не будем путать задачи, которые решает овен и сисадмин на Вашем предприятии

ivandragon
20.12.2014, 08:29
Давайте на это закончим, я написал как у меня заработало, другим, таким как я, не профессионалам в программировании (я на это не учился), эта информация будет полезна.

capzap
20.12.2014, 08:33
это компьютерная грамотность, а не программирование, до него Вы еще не дошли

ivandragon
20.12.2014, 09:52
это компьютерная грамотность, а не программирование, до него Вы еще не дошли

Мне не интересны ваши умозаключения по поводу того, до чего я не дошел, не нужно переключаться на личности, троллингом занимаются на других форумах. Тема: ПЛК308+МВУ8Р+ МВ110 программирование в CodeSys