Codesys: Едномерни масиви


Здравейте колеги.

В тази статия съм решил да обясня какво представляват масивите, за какво се използват и как се декларират и извикват в средата Codesys.
Какво представляват масивите.Масива е структура която съдържа подредена информация. Може да си го представите, като последователност от клетки, като всяка клетка си има свой собствен пореден номер и вътре в нея се съдържа информация. Специфичното  в случая е, че всички клетки трябва да съдържат еднотипна информация, като тя може да бъде числа, символи както дори и структури. За структурите ще говорим по-нататък.
Какво е предназначението на масивите.

  • Събирането и организирането на информация от един и същи тип
  • Използване на едно име при използване на която и да е клетка от масива, като разликата е само индекса
  • Значително се улеснява сортирането на информация

Как се използват масивите.
Най-основната декларация, съдържа само името на масива, големината и типа на данните в него.

Име: ARRAY[From..To] of INT;

Тук е важно да се отбележи, че не е задължително броенето да започва от 1 до N както е при повечето езици за програмиране. В случая нямаме ограничение да броенето да започне от 7 и да свърши на 90.Ето и един пример за реална декларация:
NewArray: ARRAY[5..20] of INT;
Също така можем да дадем стойности на масива при самата инициализация.Ще използваме горния пример:
NewArray: ARRAY[5..20] of INT := [6,49,3,659,5];
Как се извикват елементи от масива.
Достъпването на всеки един елемент от масива става като в повечето езици от високо ниво. Пишем името на масива, и в скобите добавяме индекса който искаме да достъпим. За да покажа нагледно ще декларирам нова променлива от същия тип какъвто е и масива, и ще присвоя някоя от неговите стойности.

testBoolVar: BOOL;

testBoolVar:= NewArray[1];

Индкса на масива може да бъде и променлива.

arrIndex: int:=1;

testBoolVar: BOOL;

testBoolVar:= NewArray[arrIndex];

Ако имате въпроси с гореописаните неща, моля да задайте ги в коментарите.

Leave a Reply

Your email address will not be published. Required fields are marked *