Просмотр полной версии : Как должен выглядеть "конфигуратор мечты"
Владимир Ситников
20.02.2016, 12:12
Навеяно темой "конфигурация через AT (http://www.owen.ru/forum/showthread.php?t=23441)"
Конечная цель -- конфигуратор для IDE61131 (http://www.owen.ru/forum/showthread.php?t=23013)
Проверьте, плз, ход мыслей:
1) Задаём переменные и их типы. Грубо говоря: "главный_выключатель_типа_bool".
2) В программе ссылаемся на эти переменные. Т.е. "if главный_выключатель then ..."
3) Как узнаём на каком ПЛК придётся работать, ужасаемся и переписываем программу с нуля указываем соответствие между DI/DO/AI/AO конкретного ПЛК (ну или подключённых модулей, в зависимости от того, чем рулить нужно). Иными словами, заполняем табличку вида "главный_выключатель=DI01, красная_кнопка=ПР200.DI02" и т.п.
Варианты развития событий:
В1) "Перевес переменной на другой вход" (например, сгорел выход плк). Меняем соответствие переменной в табличке (с шага 3)
В2) "Смена ПЛК". Переделываем табличку №3
В3) "Ваш вариант"
ОК/КО?
Владимир Ситников
20.02.2016, 12:14
Табличка 3 попадает не на то железо: кровь, кишки, вечная память. Плата за ручную «линковку». В этом отношении конфигураторы безопаснее.
Ничего не понял. Я же про конфигуратор и говорю. Разумеется, про самописный.
А как табличка 3 попадёт не на то железо?
При "заливке в ПЛК" подключат не тот ПЛК?
Так от этого никто не защитит, если "разливочная программа" не проверит модель ПЛК.
Надо брать лучшее из обоих решений и делать так, чтобы в конфигураторе можно было указывать только частично специфицированные переменные (AT %I*)
А зачем нужны частично специфицированные переменные?
Евгений Пашигоров
23.03.2016, 11:00
В1) "Перевес переменной на другой вход" (например, сгорел выход плк). Меняем соответствие переменной в табличке (с шага 3)
В2) "Смена ПЛК". Переделываем табличку №3
При конфигурировании через АТ ведь так и получается.
Неудобство в том, что адреса вручную вколачивать очень противно, к тому же тыркаясь все время в этот дебильный PLC Configuration!
Если придумать стандартные имена для всех входных-выходных переменных, а адреса подставлялись бы автоматом, было бы очень хорошо.
Но если DI0, DO14, FDO2, Stat.power выглядят более-менее понятно, то с сетевыми дело похуже.
Придумать для разных протоколов разные сокращения...
MBS2W11 - модбас слейв номер 2, word 11
OM1W2 - овен мастер 1 слово 2
Что-то не очень...
Владимир Ситников
23.03.2016, 14:57
Как вам такое?
http://recordit.co/bJe2u0b3xy
Кнопка привязывается к DI1, лампочка -- к DO1.
Картинка: 23284
"global variables" на картинке это просто список переменных, чтобы их можно было использовать в программе. А дальше они привязываются в конфигурации к нужным IO.
Использовать %AT и т.п. по всему коду, наверное, плохо, т.к. если что-то нужно поменять, то концов не соберёшь где именно менять нужно.
Да и набрать нужное OM1W2 без распечатки всех "слов" невозможно.
Евгений Пашигоров
30.03.2016, 08:47
Как вам такое?
http://recordit.co/bJe2u0b3xy
Кнопка привязывается к DI1, лампочка -- к DO1.
Какой формат видео вы используете? Мой файрфокс отказывается его показывать.
Картинка: 23284
"global variables" на картинке это просто список переменных, чтобы их можно было использовать в программе. А дальше они привязываются в конфигурации к нужным IO.
Я примерно так и делаю. Все входы-выходы описываю в секции глобальных переменных. Вот так:
В программе никаких АТ% нет.
Неудобство только в том, что при описании переменных все время приходится нырять в PLC Configuration и мышкой там тыркать.
Владимир Ситников
30.03.2016, 08:59
Какой формат видео вы используете? Мой файрфокс отказывается его показывать.
mp4
А такая ссылка заработает? Это анимированный gif, то же самое видео: http://g.recordit.co/bJe2u0b3xy.gif
Я понемногу начал свой проект делать -- пока полёт нормальный.
Объявил штук 30 переменных -- понял, что нужна подсказка "переменную забыли привязать к ПЛК/забыли использовать её в коде основной программы":
23496
23497
Ещё, наверное, в самой переменной нужно бы показывать "место привязки к ПЛК". Т.е. чтобы, глядя на список глобальных, было видно, что переменная находится на таком-то ПЛК/модуле ввода-вывода, таком-то DO/DI. Ну и чтобы оттуда можно было и назначать переменную на DO/DI.
Евгений Пашигоров
30.03.2016, 10:37
mp4
А такая ссылка заработает? Это анимированный gif, то же самое видео: http://g.recordit.co/bJe2u0b3xy.gif
По ссылке получаю:
403 Forbidden
Code: AccessDenied
Message: Access Denied
RequestId: E93B76CFA8E38635
HostId: KMlALSvHK6DI13loSqDvg8U44QAyUjDpJ+gymmgeCD3dKwz3zJ uRHGmV88n93N4Gw4wthO6Wto4=
Ещё, наверное, в самой переменной нужно бы показывать "место привязки к ПЛК". Т.е. чтобы, глядя на список глобальных, было видно, что переменная находится на таком-то ПЛК/модуле ввода-вывода, таком-то DO/DI. Ну и чтобы оттуда можно было и назначать переменную на DO/DI.
Вот если назначать будет удобно, тогда это здорово!
Это же у Вас целая IDE получается?
Владимир Ситников
30.03.2016, 13:36
По ссылке получаю: 403 Forbidden
Странно.
Вот картинка 23508
Вот если назначать будет удобно, тогда это здорово!
Это же у Вас целая IDE получается?
Да, IDE.
В конечном итоге она генерирует codesys проект, но на этапе написания функционал богаче.
Конфигуратор мечты должен сам конфигурировать модули =)
Владимир Ситников
30.03.2016, 15:24
Конфигуратор мечты должен сам конфигурировать модули =)
И как он поймёт, что быстрый выход должен работать в режиме ШИМ?
Или речь про модули ввода-вывода (aka string over modbus)?
Евгений Пашигоров
30.03.2016, 16:25
Странно.
Вот картинка
Картинку вижу. Выглядит неплохо.
А сможем уже написанную программу с глобальными на другой ПЛК перетащить?
На пустую конфигурацию? А не на пустую?
Или речь про модули ввода-выводаПро отдельные модули ввода-вывода. Но там чисто программными средствами проблему не решить.
Владимир Ситников
31.03.2016, 07:54
Картинку вижу. Выглядит неплохо.
А сможем уже написанную программу с глобальными на другой ПЛК перетащить?
На пустую конфигурацию? А не на пустую?
Ну, да. Ради этого оно и затевалось, чтобы можно было менять плк/переназначать входы-выходы без хождений по дебрям программы.
Про отдельные модули ввода-вывода. Но там чисто программными средствами проблему не решить.
Почему?
Из-за того, что для программирования модуля нужно к нему отдельно подключаться?
Или ещё что-то?
Потому что их нельзя различить по сети, если они одной модели. Кабы можно было задавать адрес переключателем (http://imgur.com/jf14KNH), всё было бы клёво, но увы.
Миних В.А.
05.04.2016, 16:07
Как вам такое?
http://recordit.co/bJe2u0b3xy
Кнопка привязывается к DI1, лампочка -- к DO1.
Супер! Когда в продакшен?
Владимир Ситников
05.04.2016, 17:06
Супер! Когда в продакшен?
Сейчас делаю кнопку "создать проект". Ну, чтобы можно было за одну-две кнопки создать проект, готовый к заливке.
Что-нибудь в духе "создать простой проект для ПЛК110", "создать проект для ПЛК110+модуль вывода", "создать проект для ПР".
На следующей неделе, думаю, будет очередная версия.
lara197a
05.04.2016, 17:21
Как должен выглядеть "конфигуратор мечты"
примерно как TIAPortal или к примеру
ZWorkbench
Владимир Ситников
30.04.2016, 20:26
Как должен выглядеть "конфигуратор мечты"
примерно как TIAPortal или к примеру
ZWorkbench
Послали так послали.
ZWorkbench установил -- не нашёл там конфигуратора.
Под конфигуратором я понимаю "привязку DI/DO к коду программы".
Например, такое: https://youtu.be/zCULGT3yZwA?t=37
TIAPortal это, похоже, вообще мегахрень. Может, картинку покажете что именно имеете ввиду?
Владимир Ситников
30.04.2016, 20:28
Супер! Когда в продакшен?
Осталось название придумать.
Пока так: https://github.com/vlsi/ide61131/releases/tag/v1.3.0
lara197a
30.04.2016, 21:28
вам в звд и в и тиа портал нужно просто попробовать самому сконфигурировать.
рассказывать долго.
но все просто и логично.
юзер только выбирает ПЛК
остальное появляется само собой.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot