Codesys (824048), страница 4

Файл №824048 Codesys (Руководство пользователя по программированию ПЛК в Codesys) 4 страницаCodesys (824048) страница 42021-01-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Если поставить скобки, то порядок вычислений изменится:LDMULADD)ST2( 23ERGТеперь значение переменной ERG равно 10.Операция MUL выполняется только тогда, когда программа доходит до ")". В качестве операнда MULиспользует значение 5.2.2.3 Структурированный текст (ST)ST представляет собой набор инструкций высокого уровня, которые могут использоваться в условныхоператорах ("IF…THEN…ELSE") и в циклах (WHILE…DO).Пример:IF value < 7 THENCoDeSys V2.32-11Что есть, что в CoDeSysWHILE value < 8 DOvalue:=value+1;END_WHILE;END_IF;ВыраженияВыражение – это конструкция, возвращающая определенное значение после его вычисления.Выражение состоит из операторов и операндов.

Операндом может быть константа, переменная, функциональный блок или другое выражение.Вычисление выраженийВычисление выражений выполняется согласно правилам приоритета. Оператор с самым высоким приоритетом выполняется первым, оператор с более низким приоритетом – вторым и т.д., пока не будутвыполнены все операторы.Операторы с одинаковым приоритетом выполняются слева направо.В следующей таблице приведен список ST операторов, расположенных в порядке приоритета.ОперацияОбозначениеПриоритетВыражение в скобках(Выражение)Самый высокий.Вызов функцииИмя функции(список параметров)Возведение в степеньEXPTЗамена знаков-Числовое дополнениеNOTУмножение*Деление/Абсолютная величинаMODСложение+Вычитание-Сравнение< , > ,<=, >=Неравенство<>Равенство=Логическое ИANDЛогическое исключающееИЛИ.XORЛогическое ИЛИORСамый низкийНиже приведены примеры использования инструкций ST:Тип инструкцииПрисваиваниеВызов функционального блока ииспользование FB выходаCoDeSys V2.3ПримерA: =B; CV: =CV+1; C: =SIN (X);A: = CMD_TMR.Q2-12Что есть, что в CoDeSysиспользование FB выходаRETURNRETURN;IFD: =B*B;IF D<0.0 THENC: =A;ELSIF D=0.0 THENC: =B;ELSEC: =D;END_IF;CASECASE INT1 OF1: BOOL1: = TRUE;2: BOOL2: = TRUE;ELSEBOOL1: = FALSE;BOOL2END_CASE;J: =101;FOR I: =1 TO 100 BY 2 DOIF ARR [I] = 70 THENJ: =I;EXIT;END_IF;END_FOR;FORWHILEEXITJ: =1;WHILE J<= 100 AND ARR [J] <> 70DOJ: =J+2;END_WHILE;J: =-1;REPEATJ: = J+2;UNTIL J= 101 OR ARR [J] = 70END_REPEAT;EXIT;Пустая инструкция;REPEARTОператор присваиванияПеред оператором присваивания находится операнд (переменная или адрес), которому присваиваетсязначение выражения, стоящего после оператора присваивания.Пример:Var1: = Var2 * 10;После выполнения этой операции Var1 принимает значение в десять раз большее, чем Var2.CoDeSys V2.32-13Что есть, что в CoDeSysВызов функционального блока в STФункциональный блок вызывается с помощью имени экземпляра функционального блока и спискавходных параметров с присваиванием данных в круглых скобках.

В следующем примере вызываетсятаймер с параметрами IN и PT. Значение выходной переменной Q присваивается переменной А.К выходной переменной, как и в IL, можно обратиться с помощью имени экземпляра функциональногоблока, точки, следующей за ним и имени выходной переменной:CMD_TMR (IN: = %IX5, PT: = 300);A: =CMD_TMR.QИнструкция RETURNИнструкция RETURN позволяет выйти из POU, например, в зависимости от условия.Инструкция IFИспользуя инструкцию IF, можно проверить условие, и в зависимости от этого условия выполнить какие-либо действия.Синтаксис:IF <Boolean_expression1> THEN<IF_instructions>{ELSIF <Boolean_expression2> THEN<ELSIF_instructions1>...ELSIF <Boolean_expression n> THEN<ELSIF_instructions n-1>ELSE<ELSE_instructions>}END_IF;Часть конструкции фигурных скобках не обязательна.Если < <Boolean_expression1> возвращает истину, тогда <IF_Instructions> выполняется.В противном случае будут выполняться остальные логические выражения одно за другим, пока одно изних не возвратит истину.

Тогда выполняются инструкции, стоящие после этого логического выражения до следующего ELSIF или ELSE.Если все логические выражения ложны, то выполняются инструкции, стоящие после ELSE.Пример:IF temp < 17THENheating_on: = TRUE;ELSEheating_on: = FALSE;END_IFВ этом примере нагревание (heating) включается, когда температура опустится ниже 17 º градусов, иначе оно останется выключенным.CoDeSys V2.32-14Что есть, что в CoDeSysИнструкция CASEC помощью инструкции CASE можно нескольким различным значениям целочисленной переменнойсопоставить различные инструкции.Синтаксис:CASE <Var1> OF<Value1>:<Instruction 1><Value2>: <Instruction 2><Value3, Value4, Value5>:<Instruction 3><Value6 .. Value10>:<Instruction 4>...<Value n>:<Instruction n>ELSE<ELSE instruction>END_CASE;Инструкция CASE выполняется согласно следующим правилам:•Если переменная <Var1> имеет значение <Value i>, то выполняется инструкция <Instruction i>•Если <Var1> не принимает ни одного из указанных значений, то выполняется <ELSE Instruction>.• Чтобы одна и та же инструкция выполнялась при различных значениях переменной <Var1>, необходимо перечислить эти значения через запятую.• Чтобы одна и та же инструкция выполнялась для целого диапазона значений, необходимо указатьначальное и конечное значения, разделенные двумя точками.Пример:CASE INT1 OF1, 5: BOOL1 : = TRUE;BOOL3 : = FALSE;2: ВОOL2 : = FALSE;BOOL3 : = TRUE;10.

20: BOOL1: = TRUE;BOOL3:= TRUE;ELSEBOOL1 := NOT BOOL1;BOOL2 := BOOL1 OR BOOL2;END_CASE;Цикл FORС помощью FOR можно программировать повторяющиеся процессы.Синтаксис:INT_Var :INT;FOR <INT_Var> := <INIT_VALUE> TO <END_VALUE> {BY <Step size>} DO<Instructions>END_FORЧасть конструкции, заключенная в фигурные скобки, не обязательна.CoDeSys V2.32-15Что есть, что в CoDeSys<Instructions> выполняются, пока счетчик <INT_Var> не больше <END_VALUE>. Это условие проверяется перед выполнением <Instructions>, поэтому раздел <Instructions> не выполняется, если<INIT_VALUE> больше <END_VALUE>.Всякий раз, когда выполняются <Instructions>, значение <INIT_VALUE>, увеличивается на <Step_size>.<Step_ size> может принимать любое целое значение.

По умолчанию шаг устанавливается равным 1.Пример:FOR Counter: =1 TO 5 BY 1 DOVar1: =Var1*2;END_FOR;Erg:=Var1;В этом примере предполагается, что начальное значение Var1 равно 1. После выполнения цикла эта переменная будет равна 32.Замечание: <END_VALUE>: не должно быть равно предельному значению счетчика <INT_VAR>. Например, еслисчетчик является переменной типа SINT и <END_VALUE> равно 127, то цикл становится бесконечным.Цикл WHILEЦикл WHILE может использоваться, как и цикл FOR, с тем лишь различием, что условие выхода определяется логическим выражением. Это означает, цикл выполняется, пока верно заданное условие.Синтаксис:WHILE <Boolean expression><Instructions>END_WHILEРаздел <Instructions> выполняется циклически до тех пор, пока <Boolean_expression> дает TRUE.

Если<Boolean_expression> равно FALSE уже при первой итерации, то раздел <Instructions> не будет выполнен ни разу. Если <Boolean_expression> никогда не примет значение FALSE, то раздел <Instructions>будет выполняться бесконечно.Замечание: Программист должен быть уверен, что цикл не станет бесконечным. Для этого в теле цикла значениевходящей в условие переменной обязательно должно изменяться.

Например, путем инкремента илидекремента счетчика.Пример:WHILE counter<>0 DOVar1: = Var1*2;сounter := сounter-1;END_WHILEЦикл REPEATЦикл REPEAT отличается от цикла WHILE тем, что первая проверка условия выхода из цикла осуществляется, когда цикл уже выполнился 1 раз. Это означает, что независимо от условия выхода цикл выполняется хотя бы один раз.Синтаксис:REPEAT<Instructions>CoDeSys V2.32-16Что есть, что в CoDeSysUNTIL <Boolean expression>END_REPEATРаздел <Instructions> выполняется циклически до тех пор, пока <Boolean_expression> дает TRUE. Если<Boolean_expression> равно FALSE уже при первой итерации, то раздел <Instructions> не будет выполнен один раз.

Если <Boolean_expression> никогда не примет значение FALSE, то раздел <Instructions>будет выполняться бесконечно.Замечание: Программист должен быть уверен, что цикл не станет бесконечным. Для этого в теле цикла значениевходящей в условие переменной обязательно должно изменяться. Например, путем инкремента илидекремента счетчика.Инструкция EXITЕсли EXIT встречается в циклах FOR, WHILE, REPEAT, то цикл заканчивает свою работу независимоот значения условия выхода.CoDeSys V2.32-17Что есть, что в CoDeSys2.2.4 Язык последовательных функциональных схем (SFC)SFC – это графический язык, который позволяет описать хронологическую последовательность различных действий в программе.

Для этого действия связываются с шагами (этапами), а последовательностьработы определяется условиями переходов между шагами.Пример SFC диаграммы:ШагSFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов:• Шаг простого типа (упрощенный SFC) может включать единственное действие. Графический флажок (небольшой треугольник в верхнем углу шага) показывает, пустой шаг или нет.• МЭК шаг (стандартный SFC) связан с произвольным числом действий или логических переменных.Связанные действия располагаются с правой стороны от шага.ДействиеДействие может содержать список инструкций на IL или ST, схемы на FBD или LD, или снова схемы наSFC.При использовании простых шагов действие всегда связывается с этим шагом. Для того, чтобы редактировать действие, необходимо дважды щелкнуть левой клавишей мышки на шаге.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6294
Авторов
на СтудИзбе
314
Средний доход
с одного платного файла
Обучение Подробнее