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

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

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

Результат зависит оттого, включена или нет опция байтовой адресации.VARvar1 AT %IX2.3:BOOL;bitoffset: DWORD;END_VARПример ST:Bitoffset := BITADR(var1); (* Результат 19, если byte addressing=TRUE, или 35, еслиbyte addressing=FALSE*)Пример IL:LD Var1BITADRST Var2Косвенный оператор (content)Косвенное обращение через указатель производится путем добавления оператора "^" после имениуказателя.Пример ST:CoDeSys V2.310-14Приложение A: Операторы и функции МЭКpt:POINTER TO INT;var_int1:INT;var_int2:INT;pt := ADR(var_int1);var_int2:=pt^;Вспомогательные функцииINDEXOFВозвращает внутренний индекс POU.Пример ST:var1 := INDEXOF(POU2);SIZEOFВозвращает размер переменной в байтах.Пример IL:arr1:ARRAY[0..4] OF INT;Var1 INTLDarr1SIZEOFSTVar 1(* Результат 10 *)Пример ST:var1 := SIZEOF(arr1);TIMEФункция TIME возвращает время в миллисекундах от начала работы системы в формате TIME.Пример IL:TIMEST systime (*Результат, например.: T#35m11s342ms *)Пример ST:systime:=TIME();Пример FBD:CoDeSys V2.310-15Приложение A: Операторы и функции МЭКINIINI можно использовать для инициализации retain переменных, содержащихся в экземпляре функционального блока.Синтаксис: <bool-Variable> := INI(<FB-instance, TRUE|FALSE)Если второй операнд равен TRUE, то все энергонезависимые переменные, определенные в функциональном блоке FB, будут инициализироваться.Пример ST: fbinst экземпляр функционального блока fb, в котором определена retain переменная retvar.Объявление:fbinst:fb;b:bool;Фрагмент реализации:b := INI(fbinst, TRUE);ivar:=fbinst.retvar (* => retvar инициализирована *)Пример IL:LD fbinstINI TRUEST bПример FBD:10.7 Оператор вызоваCALВызывает функциональный блок или программу.Применяется в IL для вызова экземпляра функционального блока, входные переменные помещаются вскобках вслед за его именем.Пример: Вызов экземпляра функционального блока Inst, где входные переменные Par1 и Par2 равны 0 иTRUE соответственно.CAL INST(PAR1 := 0, PAR2 := TRUE)10.8 Явное преобразование типовНеявное преобразование данных из ‘большего’ типа в ‘меньший’ запрещено стандартом (например, изINT в BYTE или DINT в WORD).

Если подобное преобразование действительно необходимо, онодолжно быть выражено явно. Явные преобразования работают практически для всех базовых типовданных.Синтаксис:CoDeSys V2.310-16Приложение A: Операторы и функции МЭК<баз.Тип1>_TO_<баз..Тип2>Преобразования в строку …_TO_STRING используют выравнивание влево. Если строка оказываетсяслишком короткой, результат будет обрезан.BOOL_TOПреобразование типа BOOL в другой тип:Для числовых типов результат равен 1, когда операнд TRUE, и 0, если операнд FALSE.Для типа STRING результат - это слово TRUE или FALSE.Примеры IL:LDTRUEBOOL_TO_INTSTILDTRUE(*Результат: 1 *)BOOL_TO_STRINGSTstrLDTRUE(*Результат: 'TRUE' *)BOOL_TO_TIMESTtLDTRUE(*Результат: T#1ms *)BOOL_TO_TODSTLD(*Результат: TOD#00:00:00.001 *)FALSEBOOL_TO_DATESTdatLDTRUE(*Результат: D#1970-01-01 *)BOOL_TO_DTSTdandt(*Результат:DT#1970-01-01-00:00:01 *)Примеры ST:CoDeSys V2.3i:=BOOL_TO_INT(TRUE);(* Результат:1 *)str:=BOOL_TO_STRING(TRUE);(* Результат:"TRUE" *)t:=BOOL_TO_TIME(TRUE);(* Результат:T#1ms *)tof:=BOOL_TO_TOD(TRUE);(* Результат:TOD#00:00:00.001 *)dat:=BOOL_TO_DATE(FALSE);(* Результат:D#1970 *)10-17Приложение A: Операторы и функции МЭКdandt:=BOOL_TO_DT(TRUE);(* Результат:DT#1970-01-01-00:00:01 *)Примеры FBD:(*Результат: 1 *)(*Результат: 'TRUE' *)(*Результат: T#1ms *)(*Результат: TOD#00:00:00.001 *)(*Результат: D#1970-01-01 *)(*Результат: DT#1970-01-01-00:00:01 *)TO_BOOLПреобразование других типов в BOOL:Результат TRUE, когда операнд не нулевой, иначе FALSE.Для типа STRING, если строка состоит из слова "TRUE", результат равен TRUE, иначе FALSE.Примеры IL:LD213BYTE_TO_BOOLSTbLD0(*Результат: TRUE *)INT_TO_BOOLSTbLDT#5ms(*Результат: FALSE *)TIME_TO_BOOLSTbLD'TRUE'(*Результат: TRUE *)STRING_TO_BOOLSTb(*Результат: TRUE *)Примеры ST:CoDeSys V2.310-18Приложение A: Операторы и функции МЭКb := BYTE_TO_BOOL(2#11010101);(* Результат: TRUE *)b := INT_TO_BOOL(0);(* Результат: FALSE *)b := TIME_TO_BOOL(T#5ms);(* Результат: TRUE *)b := STRING_TO_BOOL('TRUE');(* Результат: TRUE *)Примеры FBD:(*Результат: TRUE *)(*Результат: FALSE *)(*Результат: TRUE *)(*Результат: TRUE *)Преобразования между целочисленными типамиПреобразования из одного целочисленного типа в другой:При преобразовании большего типа в меньший, Вы рискуете потерять информацию.

Если числопревосходит верхний предел данного типа, старшие байты числа игнорируются.Пример ST:si := INT_TO_SINT(4223);(* Результат: 127 *)Число 4223 (16#107F в шестнадцатеричной форме) сокращается до переменной типа SINT, теряястарший байт, и принимает значение 127 (16#7F в шестнадцатеричной форме).Пример IL:LD2INT_TO_REALMUL 3.5Пример FBD:REAL_TO-/ LREAL_TOПреобразования типов REAL или LREAL в другие типы:Значение числа будет округлено вверх до целого и преобразовано в нужный тип.

За исключением типовSTRING, BOOL, REAL и LREAL. При преобразовании большего типа в меньший, вы рискуете потерятьинформацию.При преобразовании в STRING используется до 16 цифр. Если строка имеет не достаточный размер,результат будет обрезан справа.Пример ST:i := REAL_TO_INT(1.5);CoDeSys V2.3(* Результат: 2 *)10-19Приложение A: Операторы и функции МЭКj := REAL_TO_INT(1.4);(* Результат: 1 *)i := REAL_TO_INT(-1.5);(* Результат: -2 *)j := REAL_TO_INT(-1.4);(* Результат: -1 *)Пример IL:LD2.7REAL_TO_INTGE%MW8Пример FBD:TIME_TO/TIME_OF_DAYПреобразования типов TIME или TIME_OF_DAY в другие типы:Физически значение времени сохраняется в переменной типа DWORD, выраженное в миллисекундах(начиная с 0 часов для TIME_OF_DAY). Собственное это число и будет преобразовано.

Припреобразовании в меньший тип, вы рискуете потерять информацию.При преобразовании в STRING образуется соответствующая МЭК текстовая строка.Примеры IL:LDT#12msTIME_TO_STRINGSTstrLDT#300000ms(*Результат: 'T#12ms' *)TIME_TO_DWORDSTdwLDTOD#00:00:00.012(*Результат: 300000 *)TOD_TO_SINTSTsi(*Результат: 12 *)Примеры ST:str :=TIME_TO_STRING(T#12ms);(* Результат: T#12ms *)dw:=TIME_TO_DWORD(T#5m);(* Результат: 300000 *)si:=TOD_TO_SINT(TOD#00:00:00.012); (* Результат: 12 *)Примеры FBD:CoDeSys V2.310-20Приложение A: Операторы и функции МЭКDATE_TO/DT_TOПреобразования типов DATE или DATE_AND_TIME в другие типы:Физически значение даты сохраняется в переменной типа DWORD, выраженное в секундах начиная с1 января 1970 г.

Это число и будет преобразовано. При преобразовании в меньший тип вы рискуетепотерять информацию.При преобразовании в STRING образуется соответствующая МЭК текстовая строка.Примеры IL:LD D#1970-01-01(* Результат FALSE *)DATE_TO_BOOLST bLD D#1970-01-15(*Результат 29952 *)DATE_TO_INTST iLD DT#1970-01-15-05:05:05(*Результат 129 *)DT_TO_BYTEST bytLD DT#1998-02-13-14:20(*Результат 'DT#1998-02-13-14:20' *)DT_TO STRINGST strПримеры ST:b :=DATE_TO_BOOL(D#1970-01-01);(* Результат: FALSE *)i :=DATE_TO_INT(D#1970-01-15);(* Результат: 29952 *)byt :=DT_TO_BYTE(DT#1970-01-15-05:05:05); (* Результат: 129 *)str:=DT_TO_STRING(DT#1998-02-13-14:20);(*Результат:'DT#1998-02-13-14:20' *)Примеры FBD:CoDeSys V2.310-21Приложение A: Операторы и функции МЭКSTRING_TOПреобразования типа STRING в другие типы:Содержимое строки должно соотноситься с желаемым типом данных, в противном случаепреобразование дает 0.Пример IL:LD 'TRUE'(*Результат: TRUE *)STRING_TO_BOOLST bLD 'abc34'(*Результат: 0 *)STRING_TO_WORDST wLD 't#127ms'(*Результат: T#127ms *)STRING_TO_TIMEST tПримеры ST:b :=STRING_TO_BOOL('TRUE');(* Результат: TRUE *)w :=STRING_TO_WORD('abc34');(* Результат: 0 *)t :=STRING_TO_TIME('T#127ms');(* Результат: T#127ms *)Примеры FBD:CoDeSys V2.310-22Приложение A: Операторы и функции МЭКTRUNCПреобразование из REAL в INT.

Используется только целочисленная часть аргумента.При преобразовании в меньший тип вы рискуете потерять информацию.Примеры ST:i:=TRUNC(1.9);(* Результат: 1 *)i:=TRUNC(-1.4);(* Результат: 1 *)LD2.7TRUNCGE%MW810.9 Математические функцииABSВозвращает абсолютное значение числа.

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

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

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