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

Как в коде STL собрать слово из битов того же DB ?

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

Автор темы
alex3110
освоился
освоился
Сообщения: 262
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 24 раза
Поблагодарили: 6 раз

Как в коде STL собрать слово из битов того же DB ?

Сообщение alex3110 »

Всем привет !

Есть 25 бит в DB, которые расположены на расстоянии 6 байтов по порядку друг за другом.
Как собрать все эти биты в 2 слова в том же DB ?
Биты должны располагаться один за другим в каждом слове.
Бит с наименьшим «адресом» в DB должен быть помещен в бит0 слова1 того же DB.
Следующий бит с адресом «address_1» = «address» + P#6.0 должен быть помещен в бит1 слова1 и т.д.

Знаю, как это сделать в LAD.
Как это сделать в STL, с использованием AR1, AR2 и, может быть, с некоторыми циклами, чтобы получилось минимальное количеством строк кода.

Заранее благодарен.

Dmitriy1983
здесь недавно
здесь недавно
Сообщения: 66
Зарегистрирован: 29 окт 2017, 19:52
Имя: Дмитрий
Благодарил (а): 5 раз
Поблагодарили: 13 раз

Как в коде STL собрать слово из битов того же DB ?

Сообщение Dmitriy1983 »

Добрый день! Уже наверно не актуально, но вот пример:
L 1
T #temp // int количество повторений
OPN DB 100
L P#0.0
LAR1
L P#0.0
LAR2
beck: A DBX [AR1,P#0.0]
= DBX [AR2,P#160.0] //адрес формирования слова DB100.dbw160
L P#6.0 // Биты смещены на 6 байтов
+AR1
L P#0.1
+AR2
L 1
L #temp
+I
T #temp
L 25 //всего 25 бит
>I
JC end
JU beck
end: NOP 0

Автор темы
alex3110
освоился
освоился
Сообщения: 262
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 24 раза
Поблагодарили: 6 раз

Как в коде STL собрать слово из битов того же DB ?

Сообщение alex3110 »

Да, действительно, вскорости мне на каком-то форуме ответили. Всё получилось. Вроде там код покороче чутка даже был. Но думаю и этот будет работать. Мож кому тоже пригодицца.

Отправлено спустя 3 минуты 3 секунды:
Про пыво забыл
:ext_beer2: :ext_gimmefive:
Ответить

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