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

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
Alex3110
Posts: 159
Joined: Mon Sep 27, 2010 7:17 pm

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

Post by Alex3110 » Fri Nov 09, 2018 5:41 pm

Всем привет !

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

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

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

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

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

Post by Usver » Fri Nov 09, 2018 6:34 pm

А структура ДБ известна? Можно ее изложить? Откуда биты выдергивать надо(т.е. из BOOL? WORD? DWORD)? В чем надо оформить, FC или FB? Каково ограничение строк кода?

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

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

Post by Usver » Fri Nov 09, 2018 9:00 pm

с некоторыми циклами, чтобы получилось минимальное количеством строк кода.
вообще, конечно интересно. Обычно надо сделать с минимальным процессорным временем и использованием памяти ....

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

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

Post by Rex2701 » Sat Nov 10, 2018 8:29 am

Решение в лоб:
В AR1 грузим указатель на первый из разнесённых битов в DB.
В AR2 грузим указатель на первое из двух слов, куда их все надо собрать.
Организуем цикл LOOP в 25 шагов c телом:

Code: Select all

A    DBX [AR1,P#0.0]
=    DBX [AR2,P#0.0]
L    P#6.0
+AR1
L    P#0.1
+AR2
Вроде всё...

Alex3110
Posts: 159
Joined: Mon Sep 27, 2010 7:17 pm

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

Post by Alex3110 » Sun Nov 11, 2018 7:01 pm

Всем спасибо !
Посмотрю завтра на работе.

Alex3110
Posts: 159
Joined: Mon Sep 27, 2010 7:17 pm

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

Post by Alex3110 » Sun Nov 11, 2018 7:04 pm

Usver wrote:
с некоторыми циклами, чтобы получилось минимальное количеством строк кода.
вообще, конечно интересно. Обычно надо сделать с минимальным процессорным временем и использованием памяти ....
Ну одно другому не мешает :)

Post Reply