- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Присвоение значения всем строкам в блоке данных одной командой
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
Добрый день. Храню битовые значения аварий в блоке данных. 1 - авария, 0 - всё хорошо. При появлении аварийной ситуации, присваиваю соответствущему биту в блоке данных значение true. При нажатии кнопки "Сброс", все биты должны сбрасываться в false. Возможно ли это сделать одной командой, а не сбрасывать каждый бит отдельной командой. В случае с меркерами можно объединять биты в слова. Возможно ли подобное сделать с блоком данных?
-
- не первый раз у нас
- Сообщения: 372
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 50 раз
Присвоение значения всем строкам в блоке данных одной командой
Можете сбросить сразу 32 бита DB*.DBD*
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
про MOVE знаю, а вот про абсолютную адресацию не подумал даже. Благодарю!
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
Добрый день. Думал, что понял Вас сначала, но только сейчас решил попробовать данный способ. Есть 32 бита аварий. Есть 1 бит, который равен true, если есть хотя бы одна авария. Хотел проверить на равенство с нулем данное слово, но тиа портал вылетает от такого. Скриншоты прикрепляю. Что я делаю не так? Как я могу одним действием проверить все биты, как в случае с меркерами (MD34 на скриншоте)?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- авторитет
- Сообщения: 802
- Зарегистрирован: 12 авг 2008, 11:05
- Имя: Патрушев Олег Валерьевич
- Страна: Россия
- город/регион: г. Н.Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 158 раз
Присвоение значения всем строкам в блоке данных одной командой
Версия портала, точная включая SP и Upd? Все последние апдейты установлены?
Блок данных неоптимизированный?
Почему думаете что именно обращение к MD34 вызывает ауфидерзейн, а не что другое (например, неоконченная цепочка ниже)?
DWord на DInt сменить не даст?
Блок данных неоптимизированный?
Почему думаете что именно обращение к MD34 вызывает ауфидерзейн, а не что другое (например, неоконченная цепочка ниже)?
DWord на DInt сменить не даст?
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
Присвоение значения всем строкам в блоке данных одной командой
aydarhub, у Вас написано DB13.DBD7 или %DB13.DBD7 ?
Хотя, конечно, Portal не должен вылетать из-за такого...
Хотя, конечно, Portal не должен вылетать из-за такого...
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
Установлен tia portal V16. SP и Upd не нашел где смотреть. БД не оптимизированный. Речь как раз и идёт о неоконченной цепочке. При вводе туда DB13.DBD7 - вылетает.
попробовал и так, и так (хотя портал автоматически подставляет % обычно) - вылетает всё равно.
Нашел другое решение данной проблемы. Перенес эти биты в массив битов 0..31 of Bool + отдельное двойное слово, куда в цикле копирую значения битов с массива. Потом это слово уже сравниваю с 0.
-
- авторитет
- Сообщения: 802
- Зарегистрирован: 12 авг 2008, 11:05
- Имя: Патрушев Олег Валерьевич
- Страна: Россия
- город/регион: г. Н.Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 158 раз
Присвоение значения всем строкам в блоке данных одной командой
aydarhub, актуальная для вас сейчас будет v16 Upd4. Смотреть в меню help - installed software. Может быть вы как раз нашли неотлаженный ауфидерзейн. V 16 падает куда реже, например, v 13, но увы иногда бывает.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
я там и смотрел, но у меня написано просто V16. Проверил, есть доступные обновления до upd4, значит у меня точно меньше. Попробую скачать.
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
Присвоение значения всем строкам в блоке данных одной командой
Это ненужные телодвижения. Разберитесь с дистрибутивом, установите нормальную версию и не мучайтесь.
Вряд ли это Вам поможет, к сожалению. Установите просто другую версию. По факту отличий между ними практически нет никаких. Начиная с v13 SP1 они все совместимые на данный момент по части прошивок. А в остальном совместимости всё равно нет, даже обратной, так что...
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
но, насколько я знаю, проекты, созданные в более поздней версии портала несовместимы с порталом более ранней версии. Или всё нормально будет открываться?Nicolayy писал(а): ↑14 май 2021, 11:53 Вряд ли это Вам поможет, к сожалению. Установите просто другую версию. По факту отличий между ними практически нет никаких. Начиная с v13 SP1 они все совместимые на данный момент по части прошивок. А в остальном совместимости всё равно нет, даже обратной, так что...
-
- авторитет
- Сообщения: 802
- Зарегистрирован: 12 авг 2008, 11:05
- Имя: Патрушев Олег Валерьевич
- Страна: Россия
- город/регион: г. Н.Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 158 раз
Присвоение значения всем строкам в блоке данных одной командой
Вниз вообще несовместимы. Вверх через конвертацию.
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
Присвоение значения всем строкам в блоке данных одной командой
aydarhub,
Попытка кое-как наладить совместимость умерла еще в те далекие времена, когда v12 могла без конвертации открывать проекты v11. Но даже и такой вариант всё равно не работал для Upload. С тех пор Siemens решил, что совместимость вообще не нужна. Через конвертацию можно открыть старый проект в более новой версии, но это сложно назвать "совместимостью", т.к. это будет уже новый проект, в который будут просто скопированы блоки из старого проекта. Соответственно, ни в online нельзя будет ничего посмотреть, ни изменения внести без остановки и полной перезаливки ПЛК на объекте. Даже упомянутый мною v13 SP1 открывает проекты v13 только через конвертацию (Upload также не поддерживается, конечно же), что уж говорить о вообще разных версиях.
Попытка кое-как наладить совместимость умерла еще в те далекие времена, когда v12 могла без конвертации открывать проекты v11. Но даже и такой вариант всё равно не работал для Upload. С тех пор Siemens решил, что совместимость вообще не нужна. Через конвертацию можно открыть старый проект в более новой версии, но это сложно назвать "совместимостью", т.к. это будет уже новый проект, в который будут просто скопированы блоки из старого проекта. Соответственно, ни в online нельзя будет ничего посмотреть, ни изменения внести без остановки и полной перезаливки ПЛК на объекте. Даже упомянутый мною v13 SP1 открывает проекты v13 только через конвертацию (Upload также не поддерживается, конечно же), что уж говорить о вообще разных версиях.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
понял вас. Спасибо. Как раз скачалось. Очень хорошо, что не успел обновиться.Nicolayy писал(а): ↑14 май 2021, 14:13 aydarhub,
Попытка кое-как наладить совместимость умерла еще в те далекие времена, когда v12 могла без конвертации открывать проекты v11. Но даже и такой вариант всё равно не работал для Upload. С тех пор Siemens решил, что совместимость вообще не нужна. Через конвертацию можно открыть старый проект в более новой версии, но это сложно назвать "совместимостью", т.к. это будет уже новый проект, в который будут просто скопированы блоки из старого проекта. Соответственно, ни в online нельзя будет ничего посмотреть, ни изменения внести без остановки и полной перезаливки ПЛК на объекте. Даже упомянутый мною v13 SP1 открывает проекты v13 только через конвертацию (Upload также не поддерживается, конечно же), что уж говорить о вообще разных версиях.
-
- авторитет
- Сообщения: 802
- Зарегистрирован: 12 авг 2008, 11:05
- Имя: Патрушев Олег Валерьевич
- Страна: Россия
- город/регион: г. Н.Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 158 раз
Присвоение значения всем строкам в блоке данных одной командой
А что хорошего? Ну ловите ауфидерзейны на ровном месте дальше. Upd как раз их и исправляют.
Если уж нужна v13 так ставьте последнюю SP2. Она всяко стабильней чем просто v13.
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
Присвоение значения всем строкам в блоке данных одной командой
Не очень понятно, если честно. Что скачалось и что не обновилось?..
Отправлено спустя 6 минут 2 секунды:
Просто v13, кстати, весьма стабильна была. Ну или так выглядела на фоне v12, которая лагала ну раз в неделю точно )) Вот только простая v13 с ее прошивкой 4.0 для S7-1200 уже не канает, нужна как минимум SP1 и ее прошивка 4.1, совместимая с последующими (пока еще).
-
- не первый раз у нас
- Сообщения: 372
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 50 раз
Присвоение значения всем строкам в блоке данных одной командой
Что то как то отклонились от темы. В SManager есть в библиотеке TI-S7 блоки FC82,FC83 может что на подобии и в TIA есть.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Присвоение значения всем строкам в блоке данных одной командой
Чтобы ответить на вопрос, следует рассказать больше про те данные, которые надо обнулить. Датаблок неоптимизированный? Это булевые переменные, подряд идущие, без вложенных структур? Как я вижу на одном скриншотов?
-
- освоился
- Сообщения: 271
- Зарегистрирован: 25 ноя 2018, 17:55
- Имя: Роман
- Благодарил (а): 4 раза
- Поблагодарили: 42 раза
Присвоение значения всем строкам в блоке данных одной командой
Да обычный битовый блок. Я с авариями так же работаю. Создаю два битовых дб , аварии и квитанции.
Использую абсолютную адресацию к словам для сигнализации и общего сброса. "Слово аварий" не равно нулю-световая сигнализация,"слово аварий" не равно "слову квитанций"-звуковая. Общий сброс-"слово аварий" MOVE "слово квитанций" (квитируются все активные аварии).
Это у него портал глючит.
Использую абсолютную адресацию к словам для сигнализации и общего сброса. "Слово аварий" не равно нулю-световая сигнализация,"слово аварий" не равно "слову квитанций"-звуковая. Общий сброс-"слово аварий" MOVE "слово квитанций" (квитируются все активные аварии).
Это у него портал глючит.
Случается нередко нам
И труд и мудрость видеть там,
Где стоит только догадаться
За дело просто взяться.
И труд и мудрость видеть там,
Где стоит только догадаться
За дело просто взяться.
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
Присвоение значения всем строкам в блоке данных одной командой
aydarhub, а Вы пробовали обращаться не к двойному слову DBD13.DBD7, а к байту, к слову? Пробовали эти операции делать с другими DB? Пробовали делать не сравнение с нулем, а например, присваивание? И еще надо попробовать на SCL тоже самое делать: может портал на LAD'e заглючил...
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
Из вышесказанного я понял, что после обновления я не смогу корректно открыть свои существующие проекты, созданные в V16, поэтому передумал обновляться. Или всё таки смогу?
Попробую поискать, спасибо.
UPD.: Такого не нашёл в TIA Portal.
UPD.2: Но нашёл SET И RESET в Additional instructions. Судя хелпу, это, кажется, то, что мне нужно :)
UPD.3: Всё таки нет, не совсем то, что нужно. Я не учёл то, что помимо установки/сброса мне ещё нужно сравнивать эти биты с нулем.
Датаблок неоптимизированный. Данные как на скриншоте - булевые, подряд идущие, без вложенных структур.
к байту, к слову тоже вылетает. Попробовал на STL - не вылетает, но подсвечивает, что тэг не определен. Прикрепляю скриншот.Nicolayy писал(а): ↑15 май 2021, 19:11 aydarhub, а Вы пробовали обращаться не к двойному слову DBD13.DBD7, а к байту, к слову? Пробовали эти операции делать с другими DB? Пробовали делать не сравнение с нулем, а например, присваивание? И еще надо попробовать на SCL тоже самое делать: может портал на LAD'e заглючил...
Блок данных переделал под другое решение, поэтому взял рандомные данные, чтобы попробовать, для примера. Тоже прикрепляю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aydarhub 17 май 2021, 15:32, всего редактировалось 3 раза.
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
Присвоение значения всем строкам в блоке данных одной командой
aydarhub, на STL работает если - так и пользуйтесь STL. Всякие LAD и FBD - это всё Вам не нужно, это всё баловство, а не настоящее программирование.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 01 июн 2020, 16:13
- Имя: Айдар
- Страна: Российская Федерация
- город/регион: Набережные Челны
- Благодарил (а): 38 раз
Присвоение значения всем строкам в блоке данных одной командой
STL - это, конечно, хорошо, но, чаще всего, удобнее использовать именно LAD. И для отладки он удобнее. Возможно, это просто дело привычки. + не так хорошо знаю этот язык.(