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

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

Mitsubishi robots: Параметри част 1

неделя, 25 март 2018 г.




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

Започвам да правя една серия от статии в които ще разписвам един от най-важните сегменти при програмирането и настройка на индустриални манипулатори на фирма Mitsubishi, а именно параметрите.
Започваме със категория Movment parameter , тъй като там се намират параметрите които се използват най-често.


Motion Limit (Ограничаване на движенията)
 Ограничение на движението може да бъде направено в двете основни координатни системи а именно : Joint movement range и XYZ movement range .

-     За да зададем ограничение в Joint координатната система можем да използваме интерфейса в менюто Movement parameter -> Motion limit , или да променяме стойностите на параметъра „MEJAR“. Което и от двете да изберем трябва да запомним няколко важни неща:

*   Лоша практика е да се увеличават ограниченията в движенията, защото това може да доведе до достигане на механичните стопери на робота.

*   Ограниченията се задават, като се съобразява в двете граници долна и горна, да е поставен съответния положителен или отрицателен знак.


-     За да зададем ограничение в XYZ координатната система можем да използваме интерфейса в същото меню, или да променяме параметъра “MEPAR”. Общо взето рестрикциите при него са подобни, както при първият.



Motion Limits

Фиг.1 Меню Motion Limit Parameter





JOG
От менюто JOG можем да прави настройка на оперативните скорости, когато управляваме робота в режим „Joint jog” или в „XYZ Jog”. Съответно имаме да настроим следните параметри:
               За Joint JOG:
-        H-Inching - стъпката в градуси(deg) когато сме избрали High Unit за скорост.
-        L-Inching - стъпката в градуси(deg) когато сме избрали Low Unit за скорост.

За XYZ JOG:
-        H-Inching - стъпката милиметри(mm) когато сме избрали High Unit за скорост.
-        L-Inching - стъпката в милиметри(mm)  когато сме избрали Low Unit за скорост.





Фиг.2 Меню JOG Parameter




HAND
За параметъра HAND както и неговите подменюта, ще има цяла отделна статия.
Weight and Size
Това е менюто в което можем да подадем информация на робота за физическите характеристики на инструмента. Това в общия случай е необходимо ако целта ни е да направим оптимизация на съотношението Скорост/Време за изпълнение на движение, или да използваме функцията Оadl”.

               Work
-        Weight [Kg] – задаваме теглото на детайла който ще вдига робота
-        Size[mm]  по X,Y,Z – задаваме физическите размери на детайла
-        Center of gravity position[mm]  по X,Y,Z – трябва да пресметнете центъра на тежестта по всяка една от осите и да ги въведете във съответните полета.


               Hand
-        Weight [Kg] – задаваме теглото на инструмента
-        Size[mm]  по X,Y,Z – задаваме физическите размери на инструмента, измерени от началото на координатната система на инструмента, или по-точно казано, премерени от края на фланеца на последната става.
-        Center of gravity position[mm]  по X,Y,Z – трябва да пресметнете центъра на тежестта по всяка една от осите и да ги въведете във съответните полета.





Фиг.3 Меню Weight and size Parameter





Така завършва първата част от поредица статии описващи параметричните възможности на роботите на фирма Mitsubishi.

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


If you have any questions about the article, or with the Mitsubishi robots at all, please don't hesitate to write me 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