1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Сохранение данных со смещением

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

Автор темы
Lovertin345
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 фев 2021, 08:21
Имя: Дмитрий
Благодарил (а): 1 раз

Сохранение данных со смещением

Сообщение Lovertin345 »

Здравствуйте форумчане. Я только начал познавать среду Tia portal (конкретно V14) и в принципе программирование контроллеров. Встал у меня такой вопрос: имеется панель оператора на ней есть некоторые данные эти данные нужны для работы процесса сварки, таких программ может быть сколько пожелает клиент, на панеле есть окно ввода номера программы вводишь к примеру 10 и заполняешь ячейки с данными нажимаешь сохранить и эта программа сохраняется для того чтобы в последствии ее можно было по этому же номеру "10" загрузить в рабочие параметры, собственно как реализовать сохранение программы с ее номером я понимаю, но не мне не хватает знаний как это сделать для большого количества программ, видел как в одну DB записываются данные и при этом сама DB расширяется, дайте пожалуйста совет как это реализовать буду вам очень благодарен.

Andreywys
освоился
освоился
Сообщения: 290
Зарегистрирован: 15 сен 2016, 18:47
Имя: Андрей
Страна: Россия
город/регион: Вологда
Благодарил (а): 19 раз
Поблагодарили: 76 раз

Сохранение данных со смещением

Сообщение Andreywys »

Для этого используются рецепты в панели.

Автор темы
Lovertin345
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 фев 2021, 08:21
Имя: Дмитрий
Благодарил (а): 1 раз

Сохранение данных со смещением

Сообщение Lovertin345 »

Andreywys, Спасибо за совет
Аватара пользователя

Nicolayy
освоился
освоился
Сообщения: 281
Зарегистрирован: 14 фев 2014, 11:55
Имя: Николай
Страна: Россия
Благодарил (а): 9 раз
Поблагодарили: 64 раза

Сохранение данных со смещением

Сообщение Nicolayy »

Я всегда храню рецепты в контроллере, а не в панеле. Делается элементарно.

Создаёшь неоптимизированную DB (назовем ее DB_Rec), составляешь в ней список переменных - т.е. параметров, которые надо сохранять. Каждый параметр делаешь массивом на столько элементов, сколько будет максимум рецептов. Например, у Вас 10 параметров в рецепте, а рецептов максимум будет 100 штук, тогда надо создать в DB_Rec 10 массивов по 100 элементов типа Param1[Array 1..100 of Real], Param2[Array 1..100 of Int] и т.д. Данные в DB_Rec хранить без Retain. Номер элемента массива - это номер рецепта.

Физическое ограничение на максимальное количество рецептов напрямую зависит от размера (в байтах) одного рецепта и количества незанятой памяти на 4 МБ-тной флешке PLC. При желании можно купить внешнюю флешку, если встроенной недостаточно.

Делаешь на панеле ячейки для ввода рецепта и ячейку для ввода номера рецепта, создаешь для этого отдельную DB (назовем ее DB_Rec_Edit). Т.е. там будут все параметры, которые участвуют в рецепте, плюс номер рецепта, назовем его rec_id типа Int.

Делаешь три кнопки на панели - "сохранить рецепт", "загрузить рецепт", "задействовать рецепт".

По кнопке "сохранить" данные DB_Rec_Edit копируешь в соответствующие элементы массивов (по номеру рецепта) в DB_rec.
DB_Rec.Param1[rec_id] := DB_Rec_Edit.Param1 и т.д.
Далее сохраняешь DB_Rec на встроенную в PLC флешку (чит. тут: viewtopic.php?f=231&t=10604&p=111715#p111715)
При перезагрузке PLC все данные с флешки будут автоматически загружаться в DB_Rec.

При нажатии кнопки "загрузить" просто копируешь данные из элементов массивов выбранного рецепта DB_Rec в ячейки DB_Rec_Edit.
DB_Rec_Edit.Param1 := DB_Rec.Param1[rec_id];

При нажатии кнопки "задействовать рецепт" копируешь данные из DB_Rec_Edit в те области памяти, где хранятся рабочие параметры установки. По идее, это можно было бы делать тоже по кнопке "загрузить", но тогда не было бы возможности редактировать рецепты, не меняя рабочих параметров.

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

Сохранение данных со смещением

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

Памяти в контроллере меньше, чем в панели.
Ответить

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