Как в (sub... end sub) макроса передать массив

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Как в (sub... end sub) макроса передать массив

Сообщение Andrei » 03 мар 2020, 23:50

Здравствуйте, может кто подскажет.
Вопрос 1. Как в функциональный блок (sub... end sub) макроса передать массив в качестве параметра?
Пока вижу только так: создаем массив из LW переменных панели, в макросе его заполняем, а в FB его считываем. Т.к. LW глобальные, то они должны быть доступны везде.
Но хотелось бы передавать локальные массивы макроса, т.е.
sub type Fun1(char X[10])
.......
end sub
на такую запись компилятор ругается.

Вопрос 2. (что бы не создавать новую тему) Как в макросе сделать таймер типа TON, макрос должен выполнятся в свободном цикле?
Если цикл выполнения фиксированный, то там понятно что можно посчитать количество его выполнения, но надо свободный цикл (выплнение по установке бита).
Andrei
 
Сообщения: 17
Зарегистрирован: 23 мар 2019, 13:10

Re: Как в (sub... end sub) макроса передать массив

Сообщение Владимир_Я » 04 мар 2020, 05:16

Andrei писал(а):Вопрос 1.

К сожалению нельзя.

Andrei писал(а):Вопрос 2.

Использовать внешний таймер, который надо расположить на окне Common Window.
Владимир_Я
 
Сообщения: 59
Зарегистрирован: 17 мар 2015, 10:50

Re: Как в (sub... end sub) макроса передать массив

Сообщение АЛМ » 04 мар 2020, 13:48

Andrei писал(а):Здравствуйте, может кто подскажет.
Вопрос 1. Как в функциональный блок (sub... end sub) макроса передать массив в качестве параметра?
Пока вижу только так: создаем массив из LW переменных панели, в макросе его заполняем, а в FB его считываем. Т.к. LW глобальные, то они должны быть доступны везде.
Но хотелось бы передавать локальные массивы макроса, т.е.
sub type Fun1(char X[10])
.......
end sub
на такую запись компилятор ругается.

Вопрос 2. (что бы не создавать новую тему) Как в макросе сделать таймер типа TON, макрос должен выполнятся в свободном цикле?
Если цикл выполнения фиксированный, то там понятно что можно посчитать количество его выполнения, но надо свободный цикл (выплнение по установке бита).


1. Чтобы переменные могли использоваться и в sub и main их надо объявлять до кодов sub и main, это будет выглядеть примерно так:

char X[10]
sub Fun1()
… //обработка массива
end sub
macro_command main()

Fun1 ()

end macro_command

2. Используйте в макросе системное время LW-9030 (32bit) : system time (unit : 0.1 second)
АЛМ
 
Сообщения: 36
Зарегистрирован: 14 фев 2014, 23:27

Re: Как в (sub... end sub) макроса передать массив

Сообщение Andrei » 04 мар 2020, 20:21

Спасибо, буду пробовать.
Andrei
 
Сообщения: 17
Зарегистрирован: 23 мар 2019, 13:10


Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], pkl58 и гости: 17