- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Автоматическое создание датаблоков
-
- здесь недавно
- Сообщения: 19
- Зарегистрирован: 24 дек 2020, 12:11
- Имя: Антон
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Автоматическое создание датаблоков
Доброго времени суток.
У меня не проблема, а скорее вопрос оптимизации работы.
Задача такая, есть ФБ для которого надо создать несколько сотен DB. Каким образом, можно быстро создать несколько instance DB?
У меня не проблема, а скорее вопрос оптимизации работы.
Задача такая, есть ФБ для которого надо создать несколько сотен DB. Каким образом, можно быстро создать несколько instance DB?
-
- почётный участник форума
- Сообщения: 3559
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 253 раза
Автоматическое создание датаблоков
Одинаковые структуры у датаблоков? За счёт чего автоматизация-то?
-
- освоился
- Сообщения: 280
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Автоматическое создание датаблоков
Значит, вот если прям так рассматривать задачу "в лоб", как Вы написали, то в TIA Portal Вы так, скорее всего, не сделаете. Потому что, допустим, Вы создаёте два FB: первый - это и есть тот, с которого Вы собираетесь плодить экземплярные DB (т.е. по сути своей этот FB будет объявлением структуры класса, а экземплярные DB - его объектами), а во втором FB Вы попытаетесь объявить статическую переменную типа Array[0 .. 1000] of "FB1". Но ничего не получится - TIA Portal отругает Вас за это и пошлёт по-дальше, почему - неизвестно, но это так. Хотя, возможно, он даст Вам создать Array[0 .. 1000] of DB_ANY, но можно ли что-то из этого сделать - затрудняюсь сказать.
В любом случае Вашу задачу можно решить другим путем, вообще без FB. Т.е. по-старинке, примерно как это решалось в старых-добрых S7-200. Т.е. в глобальном DB объявляете массив структур, куда прописываете все переменные для Вашей функции (или свой тип данных можно объявить, если очень хочется). Затем создаете FC, куда в качестве аргумента передаете индекс массива и в самой функции обращаетесь к переменным как
Код: Выделить всё
GLOBAL_DB.My_Struct_Array[i].var1
Т.е. этот индекс массива - это такой условный номер Вашего как бы "виртуального" DB.
И еще тут, может быть, можно задействовать указатели, которые прописать в разделе TEMP у FC и присваивать им адреса переменных из структуры по индексу в начале этого FC (просто для сокращения конструкции обращения к переменным, приведенной выше), но это уже чисто внешний момент
-
- здесь недавно
- Сообщения: 19
- Зарегистрирован: 24 дек 2020, 12:11
- Имя: Антон
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Автоматическое создание датаблоков
Когда я работал в Step7, я делал следующим образом:
-Создавал FB;
-Прописывал уйму DB в Symbol table;
- Создавал FC, где прописывал вызов FB относительно каждого DB;
- Компилировал и после компиляции, у меня создавались данные DB.
И потом я мог ими крутить как хотел, в TIA не получается такой способ.
-Создавал FB;
-Прописывал уйму DB в Symbol table;
- Создавал FC, где прописывал вызов FB относительно каждого DB;
- Компилировал и после компиляции, у меня создавались данные DB.
И потом я мог ими крутить как хотел, в TIA не получается такой способ.
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 27 раз
- Поблагодарили: 155 раз
Автоматическое создание датаблоков
sparda210, даже если вы как-то их создадите, каждый DB ведь нужно вызвать с своими параметрами (на этой-то стадии они и создаются ;))
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 14 раз
- Поблагодарили: 59 раз
Автоматическое создание датаблоков
Лучше автоматизировать производство, чем автоматизировать автоматизацию производства :)
-
- освоился
- Сообщения: 280
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Автоматическое создание датаблоков
Ах вот оно в чем дело... Т.е. вопрос не в оптимизированном доступе к сотням DB, а просто в том, что лень их создавать в среде программирования? Я даже и не думал, что такая проблема у кого-то может возникнуть.
Вот это правильно написано. А Вам, sparda210, нужен "автоматизированный узбек" Т.е. надо просто найти помощника, который будет в TIA Portal создавать Вам DB, раз Вам лень. Лет десять назад у нас так сметщицу припрегли забивать теги в WinCC Flexible - надо было забить тысяч пять наверное тегов для Runtime, а программистам было лень это делать ))
-
- корифей
- Сообщения: 755
- Зарегистрирован: 12 авг 2008, 11:05
- Имя: Патрушев Олег Валерьевич
- Страна: Россия
- город/регион: г. Н.Новгород
- Благодарил (а): 93 раза
- Поблагодарили: 143 раза
Автоматическое создание датаблоков
Я так понимаю для автоматизации таких задач есть механизм Openness и импорт-экспорт.
Сам не пробовал, руками делаю. Чисто теоретически экспортировать один блок, размножить в ехселе каком или еще в чем (от формата) и импортировать. С тегами такое прокатывало у меня. С ДБ не пробовал.
Вон V16 уже репозитории и контроль версий поддерживает, там много чего наворочено.
Сам не пробовал, руками делаю. Чисто теоретически экспортировать один блок, размножить в ехселе каком или еще в чем (от формата) и импортировать. С тегами такое прокатывало у меня. С ДБ не пробовал.
Вон V16 уже репозитории и контроль версий поддерживает, там много чего наворочено.
-
- почётный участник форума
- Сообщения: 3559
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 253 раза
Автоматическое создание датаблоков
Так за счёт чего автоматизация? В общем виде Эксель ничего не даст, там чуть удобнее, но не более.
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Автоматическое создание датаблоков
Посмотрите курс ST-7PRO2. В нем рассматривается создание, копирование DB (SFC22, SFC20). Может поможет.