Форум программистов, компьютерный форум, киберфорум
Наши страницы
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
 
Gelo
47 / 47 / 21
Регистрация: 30.04.2009
Сообщений: 119
#1

Стек на STL - Контроллеры PLC

03.11.2015, 19:37. Просмотров 443. Ответов 3
Метки нет (Все метки)

Есть контроллер S7-300. Есть DB100. В ней массив из 50 символьных элементов array[0..49] CHAR.
В этом DB надо организовать стек. Как это сделать в STL не понимаю. По сути, необходимо произвести запись:
Код
DB100.DBB0:=DB100.DBB1;
DB100.DBB1:=DB100.DBB2;
DB100.DBB2:=DB100.DBB3;
DB100.DBB3:=DB100.DBB4;
DB100.DBB4:=DB100.DBB5;
...
DB100.DBB49:=DB200.DBB1 //Новый элемент стека
Можно ли реализовать это в виде цикла как FOR или WHILE на STL изменяя (наращивая) в цикле адрес DB100? Вероятно придется использовать SFC20?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 19:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Стек на STL (Контроллеры PLC):

Инструкции NOP BEU в языке STL step7
Здравствуйте, может кто-нибудь сможет рассказать подробнее для чего...

стек в STL
#include <iostream> #include <conio.h> #include <locale> using namespace...

stl, перемещение элемента из вектора в стек
Всем привет. Как переместить из вектора в вектор понятно...

Реализовать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list библиотеки STL
Создать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе...

реализовать без применения STL, абстрактные типы данных (по одной программе для каждого из типов) список, стек
Задача: реализовать без применения STL, абстрактные типы данных (по одной...

Заполнить очередь и стек и поменять их содержимое местами через дополнительный стек.
Необходимо разработать программу, которая должна : Заполнить очередь и стек и...

3
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
05.11.2015, 10:07 #2
Цитата Сообщение от Gelo Посмотреть сообщение
Можно ли реализовать это
знаю как реализовать на SCL. на низком уровне или в графике безусловно можно тоже это сделать, но...
1
Gelo
47 / 47 / 21
Регистрация: 30.04.2009
Сообщений: 119
05.11.2015, 10:37  [ТС] #3
Цитата Сообщение от vxg Посмотреть сообщение
знаю как реализовать на SCL. на низком уровне или в графике безусловно можно тоже это сделать, но...
Получилось вот так:
Код
     
A     I      0.0
FP    M      0.0
JNB   _001
CALL  "BLKMOV"
SRCBLK :=P#DB100.DBX1.0 BYTE 49
RET_VAL:=#TMP
DSTBLK :=P#DB100.DBX0.0 BYTE 49
CALL  "BLKMOV"
SRCBLK :=DB200.DBB1 BYTE 1
RET_VAL:=#TMP
DSTBLK :=DB100.DBB49 BYTE 1
_001: NOP   0
Функция SFC20, на ее вход записать P#DB100.DBB1 BYTE 49 и на выход P#DB100.DBB0 BYTE 49 и для последнего элемента массива сделать еще один блок SFC20 с входом P#DB200.DBB1 BYTE 1 и выходом P#DB100.DBB49 BYTE 1.

Теперь надо заполнить пустой блок данных DB100. Структура блока:
Код
+0.0 Array_m   ARRAY[0..49]
*1.0                CHAR
+50.0 REC_CNT INT
В REC_CNT хранится количество записей в датаблоке, т.е. в начале значение равно 0. Думаю если умело использовать косвенную адресацию то можно с помощью REC_CNT писать данные в нужную ячейку DB. Например, если в блоке есть 6 записей в ячейках Array_m[0..5] и REC_CNT=6, то следующую запись произвести в Array_m[6].
1
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
05.11.2015, 13:35 #4
Цитата Сообщение от Gelo Посмотреть сообщение
вот так
супер, но почему до сих пор такие адовы языки)?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2015, 13:35
Привет! Вот еще темы с решениями:

Стек. Создать случайно генерированный стек и поменять местами первый элемент с i
Как создать случайно генерированный стек (тип элементов CHAR) и поменять...

создать стек,заполнив числами 1,2,3...n.Посмотреть его содержимое,удалить стек
Всем привет!помогите,пожалуйста!!! создать стек,заполнив числами...

Используя стек, описать функцию проверяющую, является ли стек пустым
Используя стек, описать функцию проверяющую, является ли стек пустым

Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами
Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru