• обязательно заполнить свой профиль на русском языке кириллицей
  • не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
  • дублирование сообщений приравнивается к спаму
  • за поиск и предложение пиратского ПО - бан без предупреждения
  • рекламу и частные объявления "куплю/продам" мы не размещаем ни на каких условиях

Автоматическое создание датаблоков

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
sparda210
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 24 дек 2020, 12:11
Имя: Антон
Благодарил (а): 1 раз

Автоматическое создание датаблоков

Сообщение sparda210 »

Доброго времени суток.
У меня не проблема, а скорее вопрос оптимизации работы.

Задача такая, есть ФБ для которого надо создать несколько сотен DB. Каким образом, можно быстро создать несколько instance DB?


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2961
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 3 раза
Поблагодарили: 127 раз

Автоматическое создание датаблоков

Сообщение Михайло »

Одинаковые структуры у датаблоков? За счёт чего автоматизация-то?

Аватара пользователя

Nicolayy
здесь недавно
здесь недавно
Сообщения: 31
Зарегистрирован: 14 фев 2014, 10:55
Имя: Николай
Страна: Россия
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Автоматическое создание датаблоков

Сообщение Nicolayy »

sparda210 писал(а):
13 янв 2021, 11:55
Задача такая, есть ФБ для которого надо создать несколько сотен DB.
Значит, вот если прям так рассматривать задачу "в лоб", как Вы написали, то в 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 (просто для сокращения конструкции обращения к переменным, приведенной выше), но это уже чисто внешний момент


Автор темы
sparda210
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 24 дек 2020, 12:11
Имя: Антон
Благодарил (а): 1 раз

Автоматическое создание датаблоков

Сообщение sparda210 »

Когда я работал в Step7, я делал следующим образом:
-Создавал FB;
-Прописывал уйму DB в Symbol table;
- Создавал FC, где прописывал вызов FB относительно каждого DB;
- Компилировал и после компиляции, у меня создавались данные DB.

И потом я мог ими крутить как хотел, в TIA не получается такой способ.

Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1020
Зарегистрирован: 21 сен 2012, 21:45
Имя: Воробьев Александр
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 121 раз

Автоматическое создание датаблоков

Сообщение aranea »

sparda210, даже если вы как-то их создадите, каждый DB ведь нужно вызвать с своими параметрами (на этой-то стадии они и создаются ;))
Изображение


winb
освоился
освоился
Сообщения: 214
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 15 раз
Поблагодарили: 49 раз

Автоматическое создание датаблоков

Сообщение winb »

Лучше автоматизировать производство, чем автоматизировать автоматизацию производства :)

Аватара пользователя

Nicolayy
здесь недавно
здесь недавно
Сообщения: 31
Зарегистрирован: 14 фев 2014, 10:55
Имя: Николай
Страна: Россия
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Автоматическое создание датаблоков

Сообщение Nicolayy »

sparda210 писал(а):
14 янв 2021, 04:41
Когда я работал в Step7, я делал следующим образом:
-Создавал FB;
-Прописывал уйму DB в Symbol table;
- Создавал FC, где прописывал вызов FB относительно каждого DB;
- Компилировал и после компиляции, у меня создавались данные DB.
Ах вот оно в чем дело... Т.е. вопрос не в оптимизированном доступе к сотням DB, а просто в том, что лень их создавать в среде программирования? Я даже и не думал, что такая проблема у кого-то может возникнуть.
winb писал(а):
14 янв 2021, 12:05
Лучше автоматизировать производство, чем автоматизировать автоматизацию производства :)
Вот это правильно написано. А Вам, sparda210, нужен "автоматизированный узбек" :lol: Т.е. надо просто найти помощника, который будет в TIA Portal создавать Вам DB, раз Вам лень. Лет десять назад у нас так сметщицу припрегли забивать теги в WinCC Flexible - надо было забить тысяч пять наверное тегов для Runtime, а программистам было лень это делать ))


POV
не первый раз у нас
не первый раз у нас
Сообщения: 377
Зарегистрирован: 12 авг 2008, 10:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 26 раз
Поблагодарили: 66 раз

Автоматическое создание датаблоков

Сообщение POV »

Я так понимаю для автоматизации таких задач есть механизм Openness и импорт-экспорт.
Сам не пробовал, руками делаю. Чисто теоретически экспортировать один блок, размножить в ехселе каком или еще в чем (от формата) и импортировать. С тегами такое прокатывало у меня. С ДБ не пробовал.
Вон V16 уже репозитории и контроль версий поддерживает, там много чего наворочено.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2961
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 3 раза
Поблагодарили: 127 раз

Автоматическое создание датаблоков

Сообщение Михайло »

Так за счёт чего автоматизация? В общем виде Эксель ничего не даст, там чуть удобнее, но не более.


v0v
осмотрелся
осмотрелся
Сообщения: 167
Зарегистрирован: 12 дек 2018, 14:47
Имя: Влад
Поблагодарили: 16 раз

Автоматическое создание датаблоков

Сообщение v0v »

Посмотрите курс ST-7PRO2. В нем рассматривается создание, копирование DB (SFC22, SFC20). Может поможет.

Ответить

Вернуться в «Simatic TIA Portal»