Нами начата разработка под кодовым названием - Шаблоны модулей МХ110.
Данная разработка представляет собой программную надстройку для среды CODESYS 3.5 SP5.
Данная настройка будет в себя включать уже настроенные модули МХ110 и набор функциональных блоков для работы с этими блоками.
Под словом настроенные имеется ввиду, что за пользователя уже прописаны все наиболее часто используемые параметры.
Остается лиши выбрать какие из этих параметров опрашивать и привязать к ним переменные.
Проект находится на начальной стадии разработки.
Прошу остро не реагировать, но все ваши пожелания и рекомендации очень помогут нам для создания законченного и удобного инструмента.
Данный процесс продемонстрирован в видео примерах ниже.
После данных операций настройки Ваших модулей будут полностью сбрасываться.[/B][/COLOR]
Особенности установки и Видео инструкции:
1. Данное ПО предназначено для среды CODESYS 3.5 SP4/SP5.
Настоятельно рекомендуем использовать CODESYS 3.5 SP5 и активировать опцию AutoReconnect!
2. Для установки этого компонента в ОС Windows 7/8/8.1 необходимо запустить CODESYS от имени администратора.
Войти в меню Инструменты->Менеджер пакетов. В открывшемся меню нажать кнопку установить.
Выбрать каталок в котором расположен инсталлятор, и установить.
После установки CODESYS необходимо полностью закрыть и запустить заново.
3. Для обновления этого компонента на более новую версию рекомендуется запустить CODESYS.
Войти в меню Инструменты-> Менеджер пакетов. В открывшемся меню удалить предыдущую версию.
Закрыть CODESYS. Выполнить установку компонента, согласно инструкции, в п.1.
Теперь данное ПО поддерживает всю линейку.
2. Добавлены иконки модулей
3. Библиотека MX110_Assistant теперь добавляется в явном виде. Это необходимо для того чтобы по нажатию F2 были доступны модули библиотеки.
Перечень изменений в версии 3.5.4.7:
1. Изменен подход к ведению версионности. Теперь все наши модули будут иметь версию как Modbus Slave, наша внутренняя версионность перенесена в поле "Номер модели".
2. Названия модулей переделаны в стиле:
MV110-8А
MV110-8АS
MV110-16D
MК110-8D.4R
MU110-8I
MU110-6U
MU110-8R
MU110-8K
MU110-16R
MU110-16K
3. В модули 8АС и 2АС добавлен опрос параметра DP – положение точки.
4. В модуле 8АС в параметре C_TIME_2 исправлен параметр времени (1996844369 мс) на 100мс.
5. Добавлены TextList’ы с кодами ошибок для 8а/2а и 8ас/2ас.
6. Объединены в библиотеке блоки расшифровывающие ошибки для модулей 8А/2а и 8АС/2АС, чтобы не дублировались.
7. В библиотеке Mx110Assistant функциональный блок ARRAY_TO_REAL переименован в MV110_Get_Real.
8. В модули 8/16/32Р запись маски будет производиться не по триггеру, а циклически.
Что еще планируем сделать:
1. Переменные формата с плавающей точкой будут выводиться как переменная REAL, а не как 2 регистра WORD.
2. Пользовательская документация
Так я и не понял, что такое Rising Edge. Как им пользоваться?
17.11.2014, 01:02
Александр Приходько
Это означает - что это триггерная переменная. Запись произойдет тогда, когда флаг этой переменной активирован.
Если это не надо, можно переключить в обычный циклический обмен.
17.11.2014, 01:43
Александр Приходько
Цитата:
Сообщение от krollcbas
Александр, спасибо!
Слегка повозился с СПК107, пока не скачал Ваш документ по адаптации от версии 3 к версии 3,5.
Там Вы все толково разъяснили, а если еще и шаблоны сделали, могу только радоваться.
Вопросы у меня по производительности СПК107:
Какой объем переменных и алгоритмов он потянет?
Какой спектр их обычных применений?
Какой практический предел переменных ввода-вывода, которые можно затянуть в него?
С каким контроллером из существующих можно сравнить СПК107?
Шаблоны еще не сделали, это первая предварительная версия. Там есть еще над чем работать, чотелось бы получить обратную связь от клиентов.
Остальные вопросы не в рамках темы.
Ограничений по алгоритмам нет.
Вы ограничены камнем в 400МГ и размерами ОЗУ на СПК107.
Предел по переменным ввода-выода, смотря что вы имеете ввиду.
Если речь именно о Модбасе, то в совокупности около 600 регистров.
Но мы ведем разговор с 3S о расширении этих границ.
Если этого мало, можно перейти на библиотечный режим.
Если речь вообще о переменных, то ограничение - ОЗУ.
СПК107 можно сравнить с любым контроллером. Вопрос то в чем?
17.11.2014, 06:58
Ефремов Николай
Посмотрел- считаю, что очень удобно будет пользоваться(не надо лезть в РЭ и считать сдвиги регистов). Вопрос по МВ110-8А(С)-в этом модуле у Вас получилось 40 запросов к модулю(если требуются все данные с модуля), каждый из которых повторяется через 100 мс, но тогда получается что один модуль займёт всё время при общении с ПЛК(СПК)-вероятно это будут очередные грабли для начинающих без хорошей(понятной) инструкции как рассчитать время и как убрать лишние регистры из опроса. Возможно я ошибаюсь.
17.11.2014, 07:30
Amko
Запросы к каналам МВ110-8А идут по очереди или сразу все?
Зачем нужен этот массив из вордов, если их все равно переводить в Real? Можно сразу считывать число в формате с плавающей точкой? Понимаю, что стандарт модбаса такое не поддерживает, но тут же шаблон :) может можно.
Насколько это все будет стабильно и работоспособно? Слышал многое всякого про стабильность работы модбаса из под конфигуратора. Мнения, мягко говоря, разделились.
17.11.2014, 12:25
Александр Приходько
Цитата:
Сообщение от Ефремов Николай
Посмотрел- считаю, что очень удобно будет пользоваться(не надо лезть в РЭ и считать сдвиги регистов). Вопрос по МВ110-8А(С)-в этом модуле у Вас получилось 40 запросов к модулю(если требуются все данные с модуля), каждый из которых повторяется через 100 мс, но тогда получается что один модуль займёт всё время при общении с ПЛК(СПК)-вероятно это будут очередные грабли для начинающих без хорошей(понятной) инструкции как рассчитать время и как убрать лишние регистры из опроса. Возможно я ошибаюсь.
Хорошее и понятное руководство будет, это даже не сомневайтесь.
Для новичков на первых порах возможно и не нужна сверх скорость опроса.
И в данном случае 100 мс не суммируется, это интервал циклического опроса каждого параметра.
17.11.2014, 13:41
Александр Приходько
Цитата:
Сообщение от Amko
Запросы к каналам МВ110-8А идут по очереди или сразу все?
Зачем нужен этот массив из вордов, если их все равно переводить в Real? Можно сразу считывать число в формате с плавающей точкой? Понимаю, что стандарт модбаса такое не поддерживает, но тут же шаблон :) может можно.
Насколько это все будет стабильно и работоспособно? Слышал многое всякого про стабильность работы модбаса из под конфигуратора. Мнения, мягко говоря, разделились.
Каждый канал - это отдельный запрос.
Если в канале несколько регистров, значит это групповой запрос.
Данные Float сразу получить нельзя, т.к. это не стандартный формат Modbus. И компания 3S напрочь отказывается поддерживать FLAOAT.
Все модули тестируются на живом железе. Работать будут стабильно.
18.11.2014, 13:11
Александр Приходько
Обновлен релиз до версии 3.5.4.7.
Внесено множество изменений. Полный перечень исправлений и исходник, находятся в шапке.
Наверно надо было сказать, что компонент в первую очередь под SP5 собирался. Может и в SP4 работать, но не ниже.
19.11.2014, 16:11
lar
Где взять для SP3? У меня СПК 207-03.WEB [М01] v.3.302
19.11.2014, 23:27
Александр Приходько
Цитата:
Сообщение от lar
Где взять для SP3? У меня СПК 207-03.WEB [М01] v.3.302
Поддержки более старых версий не будет. В силу ряда причин. Ставьте SP5 и будет счастье.
Благо и на М01 есть прошивка с рантаймом 3.5.4.20.
Все новые приблуды будут нацелены на обновленный продукт на процессоре в 600Мгц.
Который со дня на день пойдет в продажу. На заводе уже завершается постановка в серию.
20.11.2014, 02:56
Александр Приходько
Цитата:
Сообщение от Александр Приходько
Шаблоны еще не сделали, это первая предварительная версия. Там есть еще над чем работать, чотелось бы получить обратную связь от клиентов.
Остальные вопросы не в рамках темы.
Ограничений по алгоритмам нет.
Вы ограничены камнем в 400МГ и размерами ОЗУ на СПК107.
Предел по переменным ввода-выода, смотря что вы имеете ввиду.
Если речь именно о Модбасе, то в совокупности около 600 регистров.
Но мы ведем разговор с 3S о расширении этих границ.
Если этого мало, можно перейти на библиотечный режим.
Если речь вообще о переменных, то ограничение - ОЗУ.
СПК107 можно сравнить с любым контроллером. Вопрос то в чем?
По числу регистров Modbus был не точен. Их на чтение запись было доступно 1280. Сейчас мы это значение увеличили в 4 раза.
Нужно переустановить с сайта Target файлы ревизии 23.
20.11.2014, 10:01
Виктор Кошкин
Здравствуйте Александр!
Спасибо за выпущенный релиз.
После установки возникла проблема, при создании нового проекта не видит добавленное оборудование из данной сборки в списке предлагаемых устройств. В чем может быть причина? Действовал в соответствии с видеоинструкцией.
Установленное ПО CDS V3.5 SP5, Windows 7 (не обладаю правами администратора).
20.11.2014, 11:03
Осинский Алексей
Вложений: 1
Цитата:
Сообщение от Виктор Кошкин
Здравствуйте Александр!
Спасибо за выпущенный релиз.
После установки возникла проблема, при создании нового проекта не видит добавленное оборудование из данной сборки в списке предлагаемых устройств. В чем может быть причина? Действовал в соответствии с видеоинструкцией.
Установленное ПО CDS V3.5 SP5, Windows 7 (не обладаю правами администратора).
Добрый день!
Удалите, пожалуйста, пакет. И еще раз установите. После установки нажимайте не сразу "Finish", а "Next" и разверните список установленного оборудования. Проверьте, что устройства установлены в систему (скриншот внизу) Вложение 15341
У Вас была установлена предыдущая версия пакета? Если да - перед установкой удалите ее и все устройства из нее т.к. некоторых устройств может быть не видно из-за того, что версия их изменилась на младшую.
20.11.2014, 11:31
Виктор Кошкин
Добрый день!
Переустановил, все как на скриншоте, не выходит. Устанавливаю все впервые и сразу с версии 3.5 SP5. Не может это быть связано с отсутствием прав доступа к системным папкам, т.к. работаю под пользователем?
20.11.2014, 11:40
Осинский Алексей
Цитата:
Сообщение от Виктор Кошкин
Добрый день!
Переустановил, все как на скриншоте, не выходит. Устанавливаю все впервые и сразу с версии 3.5 SP5. Не может это быть связано с отсутствием прав доступа к системным папкам, т.к. работаю под пользователем?
Может быть. Устройства устанавливаются в папку "C:\ProgramData\CODESYS\Devices\91\". Проверьте в ней наличие подпапок с именем 1628 XXXX и что в них лежит? должна быть папка 3.5.4.0 и в ней файл device.xml
Инсталлятор пишет, что устройства "installed succesfully"?
20.11.2014, 11:53
Виктор Кошкин
Вложений: 1
Цитата:
Сообщение от Осинский Алексей
Может быть. Устройства устанавливаются в папку "C:\ProgramData\CODESYS\Devices\91\". Проверьте в ней наличие подпапок с именем 1628 XXXX и что в них лежит? должна быть папка 3.5.4.0 и в ней файл device.xml
Инсталлятор пишет, что устройства "installed succesfully"?
Да папки все есть и файлы в них! Инсталлятор пишет, что все корректно установлено и в списке производителей появляется Owen, но устройств в нем нет. Пока нет возможности попробовать под администратором, после проверки отпишусь.Вложение 15342
20.11.2014, 14:17
Осинский Алексей
Вложений: 1
Цитата:
Сообщение от Виктор Кошкин
Да папки все есть и файлы в них! Инсталлятор пишет, что все корректно установлено и в списке производителей появляется Owen, но устройств в нем нет. Пока нет возможности попробовать под администратором, после проверки отпишусь.Вложение 15342
В этом окне устройства и не появятся. Сначала добавьте модуль ModBus Com, потом дочерний по отношению к нему ModBus Master, а уже дочерним по отношению к мастеру можно добавить наши шаблоны.
Например вот так: Вложение 15345
На форуме был документ в котором расписывалось как работать с ModBus в CDS 3.5. Ничего не меняется. Просто вместо ModBus Slave'a Вы добавляете наш шаблон.
Либо же Вы можете проверить наличие устройств выполнив команды меню "Tools-Device Repository" и проверить узел "Fieldbuses - Modbus - Modbus Serial Slave" после перезапуска CDS.
Прошу прощения, у меня CDS английский.
20.11.2014, 15:11
lar
Я сейчас ставил. Чтоб они появились надо Codesys перезагрузить.
Успешность установки можно посмотреть в Инструменты/Менеджер проектов/Детали
20.11.2014, 18:45
Виктор Кошкин
Господа, прошу прощения за то, что сбил всех с толку!
Все дело оказалось в моей невнимательности. На самом деле я хотел добавить в проект СПК1хх, почему то я подумал, что их таргет файлы включены в данную сборку и не мог понять почему при создании нового проекта они не отображаются в списке предлагаемых устройств. Теперь все в порядке. Всем спасибо!
20.11.2014, 19:42
Александр Приходько
В дальнейшем инсталяторы шаблонов, библиотек и Target фалов объединим в единый.
22.11.2014, 16:34
kukla100
В КДС2 в настройках шаблонов релейных модулей есть режим записи не циклический, а от изменения переменных привязанных к ним. Нельзя ли и тут что то такое сделать?
22.11.2014, 22:11
Александр Приходько
Цитата:
Сообщение от kukla100
В КДС2 в настройках шаблонов релейных модулей есть режим записи не циклический, а от изменения переменных привязанных к ним. Нельзя ли и тут что то такое сделать?
Как правило маски пишут постоянно. Вы можете в настройках выставить запись не циклическую, а по переменной.
23.11.2014, 04:38
Эдуард_Н
Вложений: 1
Вы имеете ввиду "RISING_EDGE" ? Тогда возникает 1000 проблем. Предлагаю в шаблоны включить блок который будет управлять триггером "RISING_EDGE". Может даже так:
23.11.2014, 13:04
kukla100
Вопрос не в тему, извиняюсь, но как вам удаётся набирать программу сразу в нескольких строках?
24.11.2014, 10:07
Осинский Алексей
Цитата:
Сообщение от Эдуард_Н
Вы имеете ввиду "RISING_EDGE" ? Тогда возникает 1000 проблем. Предлагаю в шаблоны включить блок который будет управлять триггером "RISING_EDGE". Может даже так:
Какие проблемы у Вас возникают в связи с использованием Rising Edge'a?
Используя такую структуру (как в примере) Вы лишний раз грузите ПЛК (каждый триггер - ФБ, для каждого ФБ отдельный вызов да и хранить состояние нужно).
Гораздо проще хранить где-то предыдущее значение маски, сравнивать его с текущим, и, если они отличаются, выдавать сигнал на запись.
например:
PHP код:
PROGRAM PLC_PRG VAR wTmpMask:WORD; //Здесь храним старое значение маски wMask:WORD; //Маска для записи xTrigger:BOOL:=FALSE; //Триггер для Rising Edge END_VAR
IF xTrigger THEN //Если триггер установлен - сбросим его xTrigger:=FALSE; ELSIF wTmpMask<>wMask THEN //Если триггер не уставновлен - проверим изменилась ли маска, и если изменилась wTmpMask:=wMask; xTrigger:=TRUE; //подадим команду на запись END_IF
24.11.2014, 10:55
Эдуард_Н
Вложений: 3
можно конечно всяко разно, ни кто незапрещает. Вот тут: http://www.owen.ru/forum/showthread.php?t=19067, вообще такие споры кипят. У меня вход вордовский, и подаю туда теже сигналы которые в релейный модуль. Хотя про сравнение маски думал, но незнал как это сделать. Опядь же, уменя запись триггера происходит только присмене выхода, допустим переключение насосов, а тут надо постоянно сравнивать маску, что не есть удобно.
24.11.2014, 12:14
Осинский Алексей
Цитата:
Сообщение от Эдуард_Н
Опядь же, уменя запись триггера происходит только присмене выхода, допустим переключение насосов, а тут надо постоянно сравнивать маску, что не есть удобно.
Не совсем понял эту фразу, и прикрепленные скриншоты не помогли.
ФБ R_TRIG и F_TRIG делают то же, самое что и мой пример, но не со всей маской, а с отдельными ее битами. Т.е. постоянно сравнивают значения битов - изменился или нет. Поэтому не пойму неудобства.
24.11.2014, 13:21
lar
Цитата:
Сообщение от kukla100
Вопрос не в тему, извиняюсь, но как вам удаётся набирать программу сразу в нескольких строках?
Присоединяюсь к вопросу. Есть какое то групповое редактирование?
PS Для пользователей шаблонов- обязательно удаляйте неиспользуемые регистры в шаблоне, я с МУ110-8Р из-за них пол дня потерял.
24.11.2014, 13:32
Эдуард_Н
Цитата:
Сообщение от Осинский Алексей
Не совсем понял эту фразу, и прикрепленные скриншоты не помогли.
ФБ R_TRIG и F_TRIG делают то же, самое что и мой пример, но не со всей маской, а с отдельными ее битами. Т.е. постоянно сравнивают значения битов - изменился или нет. Поэтому не пойму неудобства.
Если чесно я тоже вас не очень понял, можете выложить коротенький пример использования вашей программы.
24.11.2014, 14:48
Осинский Алексей
Цитата:
Сообщение от Эдуард_Н
Если чесно я тоже вас не очень понял, можете выложить коротенький пример использования вашей программы.
Ваш вопрос был: как сделать запись по изменению значения.
Моя программа - проверяет изменилась маска или нет. Если изменилась, то подается команда на запись (RISING EDGE в терминологии CDS 3.5). Ключевые строки комментированы, если какая-то непонятна - спрашивайте.
В моей программе слово "триггер" стоит понимать как "Команда на запись" т.е. это переменная типа BOOL (а не ФБ R_TRIG или F_TRIG), по которой будет происходить запись.
Использовать кучу триггеров для анализа одной переменной крайне затратное дело.
24.11.2014, 15:43
Эдуард_Н
Описание всегда плохо воспринимаю, лучше наглядно, в примере.
24.11.2014, 16:59
Рабиндранат
Здравствуйте.
Появление готовых конфигураций на модули - очень правильный и хороший шаг.
Жаль, для ПЛК1хх эту затею так и не довели до ума.
Сейчас как раз под рукой оказалась СПК107 и МВ110-8АС. Модуль добавляется быстро и удобно.
Не устраивает время опроса модуля. Как я понимаю, на каждый параметр идет свой запрос-ответ.
Можно ли как-то организовать опрос всех параметров сразу?
24.11.2014, 18:01
Осинский Алексей
Вложений: 1
Цитата:
Сообщение от Эдуард_Н
Описание всегда плохо воспринимаю, лучше наглядно, в примере.
Не представляю, что тут можно показывать наглядно. Но давайте так: Вложение 15409
При этом если Вы в любом месте своей программы (выше или ниже этого кусочка, который я предложил) измените переменную wMask, то пройдет команда на передачу параметра wMask у модуля т.к. в каждом цикле я сравниваю wMask с ее предыдущим сохраненным значением и если они отличаются, то сохраняю значение wMask как предыдущее и подаю команду на передачу по сети.
Модуль 8Р на скриншоте для примера. С любой переменной можно поступить так же.
24.11.2014, 18:21
Эдуард_Н
Спасибо, всё встало на свои места. Век живи, век учись.
27.11.2014, 20:04
Getmanov
Для МУ11016Р не работает запись/чтение периода ШИМ. Если заменить групповую запись на запись параметра для одного выхода всё пишется/читается. В чем может быть проблема? Я использую запись параметра только для двух выходов, остальные переменные не соотнесены, может в этом дело?
27.11.2014, 20:44
RV9WFJ
Цитата:
Можно ли как-то организовать опрос всех параметров сразу?
Используйте групповой опрос. С использованием библиотеки modbus у меня опрашивает больше 10 раз в секунду все входы.
27.11.2014, 20:46
RV9WFJ
Цитата:
Сообщение от Getmanov
Для МУ11016Р не работает запись/чтение периода ШИМ. Если заменить групповую запись на запись параметра для одного выхода всё пишется/читается. В чем может быть проблема? Я использую запись параметра только для двух выходов, остальные переменные не соотнесены, может в этом дело?
Возможно ошибаюсь, но помоему мх110 не поддерживают команду на групповую запись. Только чтение.