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

Присвоение значения всем строкам в блоке данных одной командой

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)

Модератор: Глоб.модераторы

Ответить

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

Добрый день. Храню битовые значения аварий в блоке данных. 1 - авария, 0 - всё хорошо. При появлении аварийной ситуации, присваиваю соответствущему биту в блоке данных значение true. При нажатии кнопки "Сброс", все биты должны сбрасываться в false. Возможно ли это сделать одной командой, а не сбрасывать каждый бит отдельной командой. В случае с меркерами можно объединять биты в слова. Возможно ли подобное сделать с блоком данных?

v0v
не первый раз у нас
не первый раз у нас
Сообщения: 372
Зарегистрирован: 12 дек 2018, 14:47
Имя: Влад
Благодарил (а): 1 раз
Поблагодарили: 50 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение v0v »

Можете сбросить сразу 32 бита DB*.DBD*

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение POV »

Есть же еще MOVE и FILL.

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

v0v писал(а): 01 мар 2021, 14:15 Можете сбросить сразу 32 бита DB*.DBD*
POV писал(а): 01 мар 2021, 14:25 Есть же еще MOVE и FILL.
про MOVE знаю, а вот про абсолютную адресацию не подумал даже. Благодарю!

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

v0v писал(а): 01 мар 2021, 14:15 Можете сбросить сразу 32 бита DB*.DBD*
Добрый день. Думал, что понял Вас сначала, но только сейчас решил попробовать данный способ. Есть 32 бита аварий. Есть 1 бит, который равен true, если есть хотя бы одна авария. Хотел проверить на равенство с нулем данное слово, но тиа портал вылетает от такого. Скриншоты прикрепляю. Что я делаю не так? Как я могу одним действием проверить все биты, как в случае с меркерами (MD34 на скриншоте)?
блок_данных.png
ошибка.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение POV »

Версия портала, точная включая SP и Upd? Все последние апдейты установлены?
Блок данных неоптимизированный?
Почему думаете что именно обращение к MD34 вызывает ауфидерзейн, а не что другое (например, неоконченная цепочка ниже)?
DWord на DInt сменить не даст?
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

aydarhub, у Вас написано DB13.DBD7 или %DB13.DBD7 ?
Хотя, конечно, Portal не должен вылетать из-за такого...

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

POV писал(а): 11 май 2021, 16:16 Версия портала, точная включая SP и Upd? Все последние апдейты установлены?
Блок данных неоптимизированный?
Почему думаете что именно обращение к MD34 вызывает ауфидерзейн, а не что другое (например, неоконченная цепочка ниже)?
DWord на DInt сменить не даст?
Установлен tia portal V16. SP и Upd не нашел где смотреть. БД не оптимизированный. Речь как раз и идёт о неоконченной цепочке. При вводе туда DB13.DBD7 - вылетает.
Nicolayy писал(а): 13 май 2021, 05:45 aydarhub, у Вас написано DB13.DBD7 или %DB13.DBD7 ?
Хотя, конечно, Portal не должен вылетать из-за такого...
попробовал и так, и так (хотя портал автоматически подставляет % обычно) - вылетает всё равно.

Нашел другое решение данной проблемы. Перенес эти биты в массив битов 0..31 of Bool + отдельное двойное слово, куда в цикле копирую значения битов с массива. Потом это слово уже сравниваю с 0.

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение POV »

aydarhub, актуальная для вас сейчас будет v16 Upd4. Смотреть в меню help - installed software. Может быть вы как раз нашли неотлаженный ауфидерзейн. V 16 падает куда реже, например, v 13, но увы иногда бывает.

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

POV писал(а): 14 май 2021, 11:17 aydarhub, актуальная для вас сейчас будет v16 Upd4. Смотреть в меню help - installed software. Может быть вы как раз нашли неотлаженный ауфидерзейн. V 16 падает куда реже, например, v 13, но увы иногда бывает.
я там и смотрел, но у меня написано просто V16. Проверил, есть доступные обновления до upd4, значит у меня точно меньше. Попробую скачать.
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

aydarhub писал(а): 14 май 2021, 10:30 Нашел другое решение данной проблемы. Перенес эти биты в массив битов 0..31 of Bool + отдельное двойное слово, куда в цикле копирую значения битов с массива. Потом это слово уже сравниваю с 0.
Это ненужные телодвижения. Разберитесь с дистрибутивом, установите нормальную версию и не мучайтесь.
aydarhub писал(а): 14 май 2021, 11:29 Проверил, есть доступные обновления до upd4, значит у меня точно меньше. Попробую скачать.
Вряд ли это Вам поможет, к сожалению. Установите просто другую версию. По факту отличий между ними практически нет никаких. Начиная с v13 SP1 они все совместимые на данный момент по части прошивок. А в остальном совместимости всё равно нет, даже обратной, так что...

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

Nicolayy писал(а): 14 май 2021, 11:53 Вряд ли это Вам поможет, к сожалению. Установите просто другую версию. По факту отличий между ними практически нет никаких. Начиная с v13 SP1 они все совместимые на данный момент по части прошивок. А в остальном совместимости всё равно нет, даже обратной, так что...
но, насколько я знаю, проекты, созданные в более поздней версии портала несовместимы с порталом более ранней версии. Или всё нормально будет открываться?

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение POV »

Вниз вообще несовместимы. Вверх через конвертацию.
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

aydarhub,
Попытка кое-как наладить совместимость умерла еще в те далекие времена, когда v12 могла без конвертации открывать проекты v11. Но даже и такой вариант всё равно не работал для Upload. С тех пор Siemens решил, что совместимость вообще не нужна. Через конвертацию можно открыть старый проект в более новой версии, но это сложно назвать "совместимостью", т.к. это будет уже новый проект, в который будут просто скопированы блоки из старого проекта. Соответственно, ни в online нельзя будет ничего посмотреть, ни изменения внести без остановки и полной перезаливки ПЛК на объекте. Даже упомянутый мною v13 SP1 открывает проекты v13 только через конвертацию (Upload также не поддерживается, конечно же), что уж говорить о вообще разных версиях.

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

Nicolayy писал(а): 14 май 2021, 14:13 aydarhub,
Попытка кое-как наладить совместимость умерла еще в те далекие времена, когда v12 могла без конвертации открывать проекты v11. Но даже и такой вариант всё равно не работал для Upload. С тех пор Siemens решил, что совместимость вообще не нужна. Через конвертацию можно открыть старый проект в более новой версии, но это сложно назвать "совместимостью", т.к. это будет уже новый проект, в который будут просто скопированы блоки из старого проекта. Соответственно, ни в online нельзя будет ничего посмотреть, ни изменения внести без остановки и полной перезаливки ПЛК на объекте. Даже упомянутый мною v13 SP1 открывает проекты v13 только через конвертацию (Upload также не поддерживается, конечно же), что уж говорить о вообще разных версиях.
понял вас. Спасибо. Как раз скачалось. Очень хорошо, что не успел обновиться.

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение POV »

aydarhub писал(а): 14 май 2021, 16:01 Очень хорошо
А что хорошего? Ну ловите ауфидерзейны на ровном месте дальше. Upd как раз их и исправляют.
Если уж нужна v13 так ставьте последнюю SP2. Она всяко стабильней чем просто v13.
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

POV писал(а): 14 май 2021, 17:30 Как раз скачалось. Очень хорошо, что не успел обновиться.
Не очень понятно, если честно. Что скачалось и что не обновилось?..

Отправлено спустя 6 минут 2 секунды:
POV писал(а): 14 май 2021, 17:30 v13 так ставьте последнюю SP2. Она всяко стабильней чем просто v13.
Просто v13, кстати, весьма стабильна была. Ну или так выглядела на фоне v12, которая лагала ну раз в неделю точно )) Вот только простая v13 с ее прошивкой 4.0 для S7-1200 уже не канает, нужна как минимум SP1 и ее прошивка 4.1, совместимая с последующими (пока еще).

v0v
не первый раз у нас
не первый раз у нас
Сообщения: 372
Зарегистрирован: 12 дек 2018, 14:47
Имя: Влад
Благодарил (а): 1 раз
Поблагодарили: 50 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение v0v »

Что то как то отклонились от темы. В SManager есть в библиотеке TI-S7 блоки FC82,FC83 может что на подобии и в TIA есть.

Михайло
эксперт
эксперт
Сообщения: 3643
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 8 раз
Поблагодарили: 286 раз

Присвоение значения всем строкам в блоке данных одной командой

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

Чтобы ответить на вопрос, следует рассказать больше про те данные, которые надо обнулить. Датаблок неоптимизированный? Это булевые переменные, подряд идущие, без вложенных структур? Как я вижу на одном скриншотов?

Roman_33
освоился
освоился
Сообщения: 271
Зарегистрирован: 25 ноя 2018, 17:55
Имя: Роман
Благодарил (а): 4 раза
Поблагодарили: 42 раза

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Roman_33 »

Да обычный битовый блок. Я с авариями так же работаю. Создаю два битовых дб , аварии и квитанции.
Использую абсолютную адресацию к словам для сигнализации и общего сброса. "Слово аварий" не равно нулю-световая сигнализация,"слово аварий" не равно "слову квитанций"-звуковая. Общий сброс-"слово аварий" MOVE "слово квитанций" (квитируются все активные аварии).
Это у него портал глючит.
Случается нередко нам
И труд и мудрость видеть там,
Где стоит только догадаться
За дело просто взяться.
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

aydarhub, а Вы пробовали обращаться не к двойному слову DBD13.DBD7, а к байту, к слову? Пробовали эти операции делать с другими DB? Пробовали делать не сравнение с нулем, а например, присваивание? И еще надо попробовать на SCL тоже самое делать: может портал на LAD'e заглючил...

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

POV писал(а): 14 май 2021, 17:30 А что хорошего?
Nicolayy писал(а): 14 май 2021, 17:51 Не очень понятно, если честно. Что скачалось и что не обновилось?..
Из вышесказанного я понял, что после обновления я не смогу корректно открыть свои существующие проекты, созданные в V16, поэтому передумал обновляться. Или всё таки смогу?
v0v писал(а): 14 май 2021, 19:25 В SManager есть в библиотеке TI-S7 блоки FC82,FC83 может что на подобии и в TIA есть.
Попробую поискать, спасибо.
UPD.: Такого не нашёл в TIA Portal.
UPD.2: Но нашёл SET И RESET в Additional instructions. Судя хелпу, это, кажется, то, что мне нужно :)
UPD.3: Всё таки нет, не совсем то, что нужно. Я не учёл то, что помимо установки/сброса мне ещё нужно сравнивать эти биты с нулем.
Михайло писал(а): 15 май 2021, 14:22 Чтобы ответить на вопрос, следует рассказать больше про те данные, которые надо обнулить. Датаблок неоптимизированный? Это булевые переменные, подряд идущие, без вложенных структур? Как я вижу на одном скриншотов?
Датаблок неоптимизированный. Данные как на скриншоте - булевые, подряд идущие, без вложенных структур.
Nicolayy писал(а): 15 май 2021, 19:11 aydarhub, а Вы пробовали обращаться не к двойному слову DBD13.DBD7, а к байту, к слову? Пробовали эти операции делать с другими DB? Пробовали делать не сравнение с нулем, а например, присваивание? И еще надо попробовать на SCL тоже самое делать: может портал на LAD'e заглючил...
к байту, к слову тоже вылетает. Попробовал на STL - не вылетает, но подсвечивает, что тэг не определен. Прикрепляю скриншот.
Блок данных переделал под другое решение, поэтому взял рандомные данные, чтобы попробовать, для примера. Тоже прикрепляю.
скрин.png
скрин.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aydarhub 17 май 2021, 15:32, всего редактировалось 3 раза.
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

aydarhub, на STL работает если - так и пользуйтесь STL. Всякие LAD и FBD - это всё Вам не нужно, это всё баловство, а не настоящее программирование.

Автор темы
aydarhub
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 01 июн 2020, 16:13
Имя: Айдар
Страна: Российская Федерация
город/регион: Набережные Челны
Благодарил (а): 38 раз

Присвоение значения всем строкам в блоке данных одной командой

Сообщение aydarhub »

Nicolayy писал(а): 17 май 2021, 15:01 aydarhub, на STL работает если - так и пользуйтесь STL. Всякие LAD и FBD - это всё Вам не нужно, это всё баловство, а не настоящее программирование.
STL - это, конечно, хорошо, но, чаще всего, удобнее использовать именно LAD. И для отладки он удобнее. Возможно, это просто дело привычки. + не так хорошо знаю этот язык.(
Аватара пользователя

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

Присвоение значения всем строкам в блоке данных одной командой

Сообщение Nicolayy »

aydarhub, какой контроллер у Вас?
Ответить

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