Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Simatic инициализация блока данных в программе. Как?

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Автор темы
Welder
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 02 мар 2014, 20:02
Ф.И.О.: Амиров Роберт Альбертович

Simatic инициализация блока данных в программе. Как?

Сообщение Welder » 28 апр 2016, 12:45

Как инициализировать (привести к начальным значениям) блок данных (DB) в программе? Ручками лень, может функция есть какая нибудь? Ведь на создание и удаление есть, и на инициализацию наверно тоже должно быть. Сам искал, не нашёл.

Заранее спасибо.


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

Simatic инициализация блока данных в программе. Как?

Сообщение Михайло » 28 апр 2016, 14:23

Какой контроллер и среда разработки?


Автор темы
Welder
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 02 мар 2014, 20:02
Ф.И.О.: Амиров Роберт Альбертович

Simatic инициализация блока данных в программе. Как?

Сообщение Welder » 28 апр 2016, 15:33

Михайло писал(а):Какой контроллер и среда разработки?

313С-2DP ; Step 7

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

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

Simatic инициализация блока данных в программе. Как?

Сообщение Serex » 28 апр 2016, 21:54

Нужно сделать чтобы текущие значения были равны значениям по-умолчанию?
Если это не ретентив значения, то они сами сбрасываются при отключении питания в SharedDB.


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

Simatic инициализация блока данных в программе. Как?

Сообщение Михайло » 29 апр 2016, 03:52

Расширяю кругозор: Step7 v13?


Автор темы
Welder
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 02 мар 2014, 20:02
Ф.И.О.: Амиров Роберт Альбертович

Simatic инициализация блока данных в программе. Как?

Сообщение Welder » 29 апр 2016, 22:56

Михайло писал(а):Источник цитаты Расширяю кругозор: Step7 v13?

Нет. Step 7 V5.4. Не думал, что версия ПО имеет значения, языки и функции одни для одного контроллера. Вроде.

Serex писал(а):Источник цитаты Нужно сделать чтобы текущие значения были равны значениям по-умолчанию?

Да. Если при объявлении в DB я переменную INT установил на число 5, то она должна в это значение уйти.
Serex писал(а):Источник цитаты Если это не ретентив значения, то они сами сбрасываются при отключении питания в SharedDB.

Нет. Так не пойдёт, каждый раз бегать к ПЛК и выдёргивать разетку мне не нравится :-P Нужно чтоб я нажал одну кнопочку и он сбросился. Но при этом я не хочу в программе прописывать все переменные и по кнопке их в значения переводить. Может SFC/SFB какой нибудь есть? Потому что для создания и удаления DB есть.

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7884
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 35 раз
Поблагодарили: 63 раза
Контактная информация:

Simatic инициализация блока данных в программе. Как?

Сообщение TEB » 30 апр 2016, 12:43

Welder писал(а):Источник цитаты каждый раз бегать к ПЛК и выдёргивать разетку мне не нравится Нужно чтоб я нажал одну кнопочку и он сбросился.

А дистанционно эту кнопочку не сделать? На выход того же PLC не повесить? :)

И вообще, если Вам нужно постоянно ресетить контроллер - тут что-то не в порядке не с контроллером, а с головой, которая такую программу для него написала. Предлагаю исправлять первопричину, а не симптомы.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


Автор темы
Welder
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 02 мар 2014, 20:02
Ф.И.О.: Амиров Роберт Альбертович

Simatic инициализация блока данных в программе. Как?

Сообщение Welder » 30 апр 2016, 13:21

TEB писал(а):Источник цитаты
А дистанционно эту кнопочку не сделать? На выход того же PLC не повесить? :)

И вообще, если Вам нужно постоянно ресетить контроллер - тут что-то не в порядке не с контроллером, а с головой, которая такую программу для него написала. Предлагаю исправлять первопричину, а не симптомы.

Вы не поняли. Ресетить контроллер мне не нужно, мне нужно «ресетить» данные в одном DB. Хотелось это делать какой нибудь стандартной функцией (если она есть), и не прописывать все переменные в программе.

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7884
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 35 раз
Поблагодарили: 63 раза
Контактная информация:

Simatic инициализация блока данных в программе. Как?

Сообщение TEB » 30 апр 2016, 13:57

Welder писал(а):Источник цитаты Вы не поняли. Ресетить контроллер мне не нужно, мне нужно «ресетить» данные в одном DB.


Тогда надо выражаться яснее, ибо Вы говорите явно:
Welder писал(а):Источник цитаты Нет. Так не пойдёт, каждый раз бегать к ПЛК и выдёргивать разетку мне не нравится Нужно чтоб я нажал одну кнопочку и он сбросился. Но при этом я не хочу в программе прописывать все переменные и по кнопке их в значения переводить.

Можно системный бит дернуть и контроллер уйдет хоть в Cold Restart хоть в Warm, но это опасно т.к. можно получить зацикливание и вечный рестарт - поэтому надёжнее выходом дёрнуть питание. Но это всё неправильно конечно.

А объявить константы - не? По команде их можно скопировать в Ваши переменные и всё.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


Автор темы
Welder
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 02 мар 2014, 20:02
Ф.И.О.: Амиров Роберт Альбертович

Simatic инициализация блока данных в программе. Как?

Сообщение Welder » 01 май 2016, 12:46

TEB писал(а):А объявить константы - не? По команде их можно скопировать в Ваши переменные и всё.

А если их пара сотен разных? Как быть? Вот и ищу функцию для таких вещей.


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

Simatic инициализация блока данных в программе. Как?

Сообщение Михайло » 01 май 2016, 15:54


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

aranea
знаток Eplan
знаток Eplan
Сообщения: 519
Зарегистрирован: 21 сен 2012, 21:45
Ф.И.О.: Воробьев Александр
Поблагодарили: 12 раз
Контактная информация:

Simatic инициализация блока данных в программе. Как?

Сообщение aranea » 01 май 2016, 16:53

Welder писал(а):Источник цитатыА если их пара сотен разных? Как быть? Вот и ищу функцию для таких вещей.

если вам лень это делать, то это не значит, что правильно будет этого не делать

инициализация блока Initial значениями (даже если у вас получится) будет непрозрачной и чреватой ошибками (зальет кто DB с другими начальными значениями и ваша программа обязана будет использовать их, без возможности оперативного исправления)
смотрите в сторону FILL или BLKMOV
пишите из Actual values другой DB в нужную DB
значение другой DB можно вывести на экран, чтобы понятно было какие значения сейчас будут записаны
Изображение

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7884
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 35 раз
Поблагодарили: 63 раза
Контактная информация:

Simatic инициализация блока данных в программе. Как?

Сообщение TEB » 02 май 2016, 12:12

Welder писал(а):Источник цитаты А если их пара сотен разных?

А это проблема?
aranea писал(а):Источник цитаты если вам лень это делать, то это не значит, что правильно будет этого не делать

Да.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.

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

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

Simatic инициализация блока данных в программе. Как?

Сообщение Serex » 05 май 2016, 10:38

Начальные значения, они для того и начальные, что переписываются в актуальные при перезагрузке питания контроллера. Это как бы так задумано изначально.
Если вам нужен блок данных с двумя значениями - первое актуальное, второе архивное, которое переписывается по триггеру, то нужно развивать программу именно таким образом.


Вернуться в «Средний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя