PDA

Просмотр полной версии : SPK-ПРИСВОЕНИЕ значений элементам двумерного массива



in37usd
27.04.2015, 10:50
пробовал заполнять многомерный массив- дает шибку
делаю все по Help
пришлите наипростейший проверенный пример присвоения первому элементу многомерного массива какого-либо значения
Codesys3.5V5

Евгений Кислов
27.04.2015, 11:09
пробовал заполнять многомерный массив- дает шибку
делаю все по Help
пришлите наипростейший проверенный пример присвоения первому элементу многомерного массива какого-либо значения
Codesys3.5V5

17923

Если речь о вложенных массивах, то:

17925

in37usd
27.04.2015, 12:05
17923

Если речь о вложенных массивах, то:

17925

меня интересует на языке ST в тексте программы как все будет выглядеть а вы мне втюхиваете объявление массива

Евгений Кислов
27.04.2015, 12:18
Там на скриншотах как раз на языке ST, в самом низу. Или я чего-то недопонял в вопросе?

in37usd
27.04.2015, 12:48
попробовал- у меня тоже так получается
а что означает arr[0,3]????
///////////////////////////////////////////////////////////////////
если надо массив 3 на 120 (три столбца по120элементов), то как объявлять и как обращаться к третьей строке и второму элементу в строке?

Евгений Кислов
27.04.2015, 12:51
попробовал- у меня тоже так получается
а что означает arr[0,3]????

Если речь о Arr[0][3], то это означает: третий элемент для массива, а этот массив в свою очередь является нулевым элементом массива Arr.

in37usd
27.04.2015, 12:58
не очень понятно
а что означает arr[1..10,1..10]?????это как выглядит?

Евгений Кислов
27.04.2015, 13:08
Постараюсь попонятнее.

Итак, как я понимаю, вам по сути нужна таблица - 3 столбца, 120 строк. Предположим, в ней будут логические переменные.

Объявим массив таким образом: Arr: ARRAY [1..3] OF ARRAY [1..120] OF BOOL;

Мы создали массив из трех элементов ("столбцов"), причем каждый из этих трех элементов является массивом, содержащим 120 логических переменных ("строк").

Теперь мы хотим присвоить значение TRUE элементу на пересечении второго столбца и третьей строки.

В коде программы пишем:

arr[2][3]:=TRUE;

При запуске программы видим:

17929

Надеюсь, в этот раз объяснил понятнее.

in37usd
27.04.2015, 13:20
of real у меня должно быть
спасибо, попробую

Евгений Кислов
27.04.2015, 13:29
Еще на всякий случай поясню: описанный способ нужен именно для многомерных массивов (я ответил в этом контексте из-за содержания первого поста темы). "Много" в данном случае означает "более трех".

Т.к. в данном случае речь идет о двухмерном массиве, то есть еще один вариант, наверное, более простой, о котором вы вскользь упомянули:


а что означает arr[1..10,1..10]?????это как выглядит?

В вашем случае это выглядит так:

Объявляем массив: Arr2: ARRAY [1..3, 1..120] OF BOOL;
Обращаемся к 2 элементу 3 строки: Arr2[2,3]:=TRUE;

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

in37usd
06.05.2015, 08:48
[QUOTE=Евгений Кислов;169265]Еще на всякий случай поясню: описанный способ нужен именно для многомерных массивов (я ответил в этом контексте из-за содержания первого поста темы). "Много" в данном случае означает "более трех".

Т.к. в данном случае речь идет о двухмерном массиве, то есть еще один вариант, наверное, более простой, о котором вы вскользь упомянули:



В вашем случае это выглядит так:

Объявляем массив: Arr2: ARRAY [1..3, 1..120] OF BOOL;
Обращаемся к 2 элементу 3 строки: Arr2[2,3]:=TRUE;

Но нужно понимать, что такой способ ограничивается одно-, двух- и трехмерными массивами - если число измерений превышает три, то речь уже идет именно многомерных массивах и нужно использовать методику из моего предыдущего поста.[/QUOTE
сейчас понадобилось объявить VisuStruct3DTrack- как это сделать наипростейшим способом и как в эту структуру "загрузить " какое-нибудь число???

in37usd
06.05.2015, 08:54
сейчас понадобилось объявить visuStruct3DTrack- как это сделать и как присвоить хоть какое то значение??

Евгений Кислов
06.05.2015, 09:00
Возможно, вам поможет пример от компании 3S:

in37usd
06.05.2015, 09:30
Возможно, вам поможет пример от компании 3S:

пример дает 1005 ошибок
может можно что -нибудь без ошибок и попроще?
будем, конечно пытаться разобраться и с этим примером

Евгений Кислов
06.05.2015, 09:40
Открываю в CODESYS V3.5 SP6 с архивом репозитория V3.5 SP4 - ошибок нет. Таргет от виртуального контроллера.

in37usd
07.05.2015, 13:37
Открываю в CODESYS V3.5 SP6 с архивом репозитория V3.5 SP4 - ошибок нет. Таргет от виртуального контроллера.

у меня он странно скачивается- нельзя открыть папку, его содержащую, но запускакется с 64 ошибками из списка Download!!!

in37usd
07.05.2015, 13:39
у меня он странно скачивается- нельзя открыть папку, его содержащую, но запускакется с 64 ошибками из списка Download!!!

in37usd
07.05.2015, 14:52
почему так странно получается: при создании нового проекта можно выбрать или СПК110 или SoftMotion???

Евгений Кислов
07.05.2015, 15:01
почему так странно получается: при создании нового проекта можно выбрать или СПК110 или SoftMotion???

Потому что то, что вы называете SoftMotion - это виртуальный (запускаемый на ПК) контроллер с поддержкой технологии SoftMotion.

СПК технологию SoftMotion не поддерживают.

in37usd
08.05.2015, 11:45
Потому что то, что вы называете SoftMotion - это виртуальный (запускаемый на ПК) контроллер с поддержкой технологии SoftMotion.

СПК технологию SoftMotion не поддерживают.

НО элемент Путь 3D активный-т.е. он может работать в СПК, мне к нему надо подключить массив Данных для построения графика
Хоть бы одна живая душа подсказала, как это делается!!
компилятор заявляет, что данные должны быть в этом случае типа visuStruct3DTrack-как мой массив преобразовать к этому типу - хоть бы кто подсказал!
и еще: Таргет от виртуального контроллера- это как сделать для запуска примера, который Вы прислали?!
И еще : при попытке загрузки Вашего примера CODESYS пишет, что не удалось загрузить несколько библиотек
у меня CODESYS 3.5 v5