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


В тази статия съм решил да обясня какво представляват масивите, за какво се използват и как се декларират и извикват в средата 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];

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

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

 В тази кратка статия съм решил да ви опиша основните методи за декларации в Codesys. Ще ви покажа как се създават нови променливи, стрингове, масиви. Декларациите са абсолютно валидни за всички софтуери който са базирани на езика за програмиране “Structured text” (ST), дефиниран в стандарта IEC 61131-3. 


Първо ще започна с деклариране на променлива. 

                       TestVar: INT; 

 Декларираме променлива с име “TestVar” от тип Integer. 

При декларацията можем да използваме бързите клавиши за деклариране,а те работят последния начин: Името на променливата : първата буква от типа -> CTRL+ enter.
 олзваме буквите както следва:

- I – INT 
- S - STRING 
- B - BOOL 
- R - REAL 

Ако не напишете нищо след името на променливата, а просто натиснете CTRL+ Enter , автоматично ще декларирате променлива от тип BOOL. 

Деклариране на променлива с инициализираща стойност. 

                      TestVar: INT := 10; 

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

                       ТestVar1: INT:= 50; 
                       ТestVar: INT :=ТestVar1 ; 

Деклариране на стринг с дефинирана дължина.

                      ТestString: STRING(80); 

В случая казваме, че дължината на стринга е от 80 символа. Можем да декларираме и инициализираща стойност на стринга. 

                       ТestString: STRING:= 'Hello World'; 

Деклариране на масив с инициализираща стойност. 

                       TestArray: ARRAY[1..5] OF INT := [1,2,3,4,5]; 

В случая даваме освен големината на масива, също така и всичките инициализиращи стойности. Индексите на масива могат да бъдат както [1..5], също и [50..70], всичко зависи от целите на задачата. 

Деклариране на многомерен масив. 

                       TestArray: ARRAY[0..10,0..5] OF INT; 

В случая декларираме двумерен масив, в който всички стойности ще бъдат от целочислен тип.

Деклариране на пойнтер. 

                     TestPointerToStrArray : POINTER TO STRING ( 50 ); 

Деклариране на пойнтер към масив от стрингове. 

                     TestPointerToStrArray : POINTER TO ARRAY[1..50] OF STRING ( 50 ); 

 Тук декларацията е много подобна на предната, с разликата, че първо казваме каква да е размерността на масива, и след това размерността на стринговеете. Ако имате накакви въпроси или забележки, ще се радвам да ги прочета в коментарите. Също така можете да ми задавате въпроси и на посочения имейл. 

 If you have any questions about the article, or with the Codesys programing at all, please don't hesitate to write me email.

Hello, guys.


In this article I want to tell you about a problem I encountered , and my solution.
Probably there are a few different solutions, but I will tell you about mine.


It’s about
SIMATIC S7-PLCSIM v.13 software, with SIMATIC S7-1200 1212CAC/DC/RLY hardware.


When I try to start PLCSIM v.13 SP1,with TIA PORTAL on Windows 7 64 bits, I get the following error message:



Fig 1. Error message 



Also when I try to go in Simulation Mode on Tia portal, there was also an error message: Тhe totally integrated automation portal has encountered a problem and needs to close

First, I try to follow the instructions, shown in the error message. I put the disc in the PC and start the repair. Unfortunately, it was useless ,and I tried another  method.. the working method.



SOLUTION:
1.    Go to Updates for PLCSIM V13 SP1  and download the update.
2.    Download both files:
3.    IMPORTANT: Download the both files in one directory.
4.    Execute SIMATIC_S7_PLCSIM_V13_SP1_Upd1.exe   
5.    Follow the instructions



If you have any questions about the article, or with the Mitsubishi robots at all, please don't hesitate to write me an email.

About me

This is my personal blog. My articles are about programming and adjustment of a lot of Automation tools, like PLC, Robots, cameras and so on. My favorite topics are programming of Mitsubishi robots, Siemens,Wago and Beckhoff PLC. Also adjusting and creating Visual Builder inspections.

And some of my hobby

© Милчев! Code and Control
designed by templatesZoo