plcforum.uz.ua

International PLC Forum
It is currently Wed Nov 14, 2018 10:06 am

All times are UTC + 3 hours


Forum rules


Please click here to view the forum rules



Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Fri Nov 09, 2018 8:41 pm 

Joined: Mon Sep 27, 2010 10:17 pm
Posts: 81
Всем привет !

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

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

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


Top
 Profile  
 
PostPosted: Fri Nov 09, 2018 9:34 pm 

Joined: Fri Feb 24, 2012 11:28 am
Posts: 127
А структура ДБ известна? Можно ее изложить? Откуда биты выдергивать надо(т.е. из BOOL? WORD? DWORD)? В чем надо оформить, FC или FB? Каково ограничение строк кода?


Top
 Profile  
 
PostPosted: Sat Nov 10, 2018 12:00 am 

Joined: Fri Feb 24, 2012 11:28 am
Posts: 127
Quote:
с некоторыми циклами, чтобы получилось минимальное количеством строк кода.

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


Top
 Profile  
 
PostPosted: Sat Nov 10, 2018 11:29 am 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 234
Location: Russian Federation
Решение в лоб:
В AR1 грузим указатель на первый из разнесённых битов в DB.
В AR2 грузим указатель на первое из двух слов, куда их все надо собрать.
Организуем цикл LOOP в 25 шагов c телом:
Code:
A    DBX [AR1,P#0.0]
=    DBX [AR2,P#0.0]
L    P#6.0
+AR1
L    P#0.1
+AR2

Вроде всё...


Top
 Profile  
 
PostPosted: Sun Nov 11, 2018 10:01 pm 

Joined: Mon Sep 27, 2010 10:17 pm
Posts: 81
Всем спасибо !
Посмотрю завтра на работе.


Top
 Profile  
 
PostPosted: Sun Nov 11, 2018 10:04 pm 

Joined: Mon Sep 27, 2010 10:17 pm
Posts: 81
Usver wrote:
Quote:
с некоторыми циклами, чтобы получилось минимальное количеством строк кода.

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

Ну одно другому не мешает :)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: oboru, shkn and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by International PLCforum® Forum Software © PLCforum
Mobile version