Помогите с массивом, пожалуйста!

Инженерное программное обеспечение
Ответить
Chupik
Профан
Сообщения: 3
Зарегистрирован: 17 янв 2018, 10:39

Помогите с массивом, пожалуйста!

Сообщение Chupik »

Добрый день, ГУРУ!!!
Начал я недавно разбираться с Step7. И возникла у меня следующая проблема:
имеется массив (набор минут) и массив (набор секунд), как сделать что б в переменную MINUTES попадало то значение, сколько импульсов я подал на вход I0.0... То же самое и с секундами...
Во вложении мой пример...
p.s. Сильно не пинайте - второй день мучаюсь, не могу въехать
Заранее спасибо!
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Помогите с массивом, пожалуйста!

Сообщение Михайло »

Задачу-то не полностью описал. Что делать с массивом-то?

Наверное кнопкой I0.0 выбираешь номер элемента в массивах, а кнопкой I0.1 - переходишь к первым элементам массивов?

Chupik
Профан
Сообщения: 3
Зарегистрирован: 17 янв 2018, 10:39

Re: Помогите с массивом, пожалуйста!

Сообщение Chupik »

Данные с массив в зависимости от знaчения PRESSED занести в переменную MINUTES
Например MASSIV_MIN[5,5,10,6], PRESSED=3 надо чтоб в переменной MINUTES было 10 (вот это не получается)
Все правильно I0.0 выбираю (хочу) номер массива (это все работает)

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Помогите с массивом, пожалуйста!

Сообщение Михайло »

Извлечение элемента из массива типа MASSIV_MIN[PRESSED] - это удел языков STL или SCL, если верить Автоматизатору.
В ТИА Портале для S7-1200/1500 всё работало бы на ура.

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

Re: Помогите с массивом, пожалуйста!

Сообщение mr_Frodo »

При небольшом массиве можно воспользоваться мультитплексором FC129 "MUX 8 REAL" из стандартной библиотеки. на 20 значений кол-во их соответственно возрастет до 3 шт.
Вот моя подпись...

Chupik
Профан
Сообщения: 3
Зарегистрирован: 17 янв 2018, 10:39

Re: Помогите с массивом, пожалуйста!

Сообщение Chupik »

Всем спасибо! Заработал этот код
L DB40.DBW212 //pressed
L 2 // длинна типа INT в байтах
*I
L 128 //адрес нулевого элемента массива минут
+D //подсчитали нужный байт
SLD 3 //сделали указатель на него
LAR 1 //поместили в адресный регистр 1
OPN DB 40 //открыли DB (хотя он уже открыт строчкой L DB40.DBW212)
L DBW[AR1, P#0.0] //берем данные минут
T "Data_Sample".MINUTES //передаем
L DBW[AR1, P#42.0] //берем данные секунд (42 - длина массива)
T "Data_Sample".SECUNDES //передаем

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

Re: Помогите с массивом, пожалуйста!

Сообщение mr_Frodo »

нечто похожее

L #nmbr_pls; // загрузка в акк1 номера ячейки массива со счётчика импульсов
L 2;
*I ; // умножение на 2 для конвертирования номера массива в адрес ячейки
SLW 3;
LAR1 ; // загрузка в АР1 адреса ячейки DB
OPN #nmbr_db; // указываем на № DB
L DBW [AR1,P#0.0]; // загружаем в акк1 содержимое ячейки DBW
T #data_out; // выходные данные
Вот моя подпись...

Ответить