Страница 1 из 1

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

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

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

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

СообщениеДобавлено: 04 мар 2020, 05:16
Владимир_Я
Andrei писал(а):Вопрос 1.

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

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

Использовать внешний таймер, который надо расположить на окне Common Window.

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)

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

СообщениеДобавлено: 04 мар 2020, 20:21
Andrei
Спасибо, буду пробовать.