Всем привет!
Нужно скопировать не все, а определенные ячейки DB1 в определенные ячейки DB2.
Ячейки, копируемые из DB1, расположены на фиксированном расстоянии «1» друг от друга.
Ячейки, копируемые в DB2, также расположены на фиксированном расстоянии «2» друг от друга.
Расстояния «1» и «2» не равны.
Есть ли у кого-нибудь код на STL (для НЕ «тиапортального» STEP7) для реализации задачи ?
Для минимизации количества кода полагаю, что нужно использовать LAR1, LAR2 и «циклы».
Заранее благодарен.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Как в STL оптимально скопировать отдельные ячейки между DBs ?
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 94
- Зарегистрирован: 29 окт 2017, 19:52
- Имя: Дмитрий
- Благодарил (а): 5 раз
- Поблагодарили: 18 раз
Как в STL оптимально скопировать отдельные ячейки между DBs ?
Доброе утро. Не совсем понятно, что такое расстояние 1 и 2. Если это байт, то код такой:
L 0
T MW 100 //Переменная содержащая количество переменных, которых необходимо скопировать
L P#0.0
LAR1
LAR2
kuku: OPN DB 1
L DBB [AR1,P#0.0]
OPN DB 2
T DBB [AR2,P#0.0]//Сдвиг на 1 байт
L P#1.0
+AR1
L P#2.0 //Сдвиг на 2 байта
+AR2
L MW 100
L 1
+I
T MW 100
L 10 //В примере 10 переменных необходимо скопировать
>=I // Если еще не копировались 10 переменных, то повторяем цикл
JCN kuku
L 0
T MW 100 //Переменная содержащая количество переменных, которых необходимо скопировать
L P#0.0
LAR1
LAR2
kuku: OPN DB 1
L DBB [AR1,P#0.0]
OPN DB 2
T DBB [AR2,P#0.0]//Сдвиг на 1 байт
L P#1.0
+AR1
L P#2.0 //Сдвиг на 2 байта
+AR2
L MW 100
L 1
+I
T MW 100
L 10 //В примере 10 переменных необходимо скопировать
>=I // Если еще не копировались 10 переменных, то повторяем цикл
JCN kuku
-
- освоился
- Сообщения: 291
- Зарегистрирован: 02 апр 2015, 18:16
- Имя: Симонов Игорь Валерьевич
- Благодарил (а): 27 раз
- Поблагодарили: 9 раз
Как в STL оптимально скопировать отдельные ячейки между DBs ?
Dmitriy1983 , спасибо за ответ !
Доброе утро. Не совсем понятно, что такое расстояние 1 и 2.
Ну к примеру, из DB1 нужно 10 шт. битов 2.0 ; 16.0 ; 30.0 … и т.д. , которые там расположены через 14 байт
скопировать
в DB2 в биты 4.2 ; 10.2 ; …. и т.д. где они расположены уже через 6 байт.
OPN DB 2
А тут блок данных 2 точно не с помощь регистра DI нужно открывать ?
Обычно, когда нужно переслать данные между двумя DB, используют регистры
DB и DI блоков данных.
Доброе утро. Не совсем понятно, что такое расстояние 1 и 2.
Ну к примеру, из DB1 нужно 10 шт. битов 2.0 ; 16.0 ; 30.0 … и т.д. , которые там расположены через 14 байт
скопировать
в DB2 в биты 4.2 ; 10.2 ; …. и т.д. где они расположены уже через 6 байт.
OPN DB 2
А тут блок данных 2 точно не с помощь регистра DI нужно открывать ?
Обычно, когда нужно переслать данные между двумя DB, используют регистры
DB и DI блоков данных.
-
- освоился
- Сообщения: 291
- Зарегистрирован: 02 апр 2015, 18:16
- Имя: Симонов Игорь Валерьевич
- Благодарил (а): 27 раз
- Поблагодарили: 9 раз
Как в STL оптимально скопировать отдельные ячейки между DBs ?
Сделал, работает. Правда на другом коде.
Возможно, предложенный тут тоже будет работать.
Возможно, предложенный тут тоже будет работать.