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

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

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

На выходеCDT. Если EN перейдет в FALSE, CDT сбросится в начальное значение DT#1970-01-01-00-00:00:00.Обратите внимание, что установка времени PDT происходит по фронту.10.17 Библиотека UTIL.LIBДанная библиотека содержит дополнительный набор различных функций и функциональных блоков,применяемых для BCD и бит/байт преобразований, дополнительных математических функций, а также регуляторов, генераторов и преобразований аналоговых сигналов.Специальная версия этой библиотеки UTIL_NO_REAL не содержит функций и функциональных блоков, использующих переменные типа REAL.10.17.1 BCD преобразованияБайт, представленный в формате BCD, содержит числа от 0 до 99.

Каждый десятичный знак занимает4 бита. Биты 4-7 содержат первую цифру – число десятков. Формат BCD подобен шестнадцатеричному представлению с ограничением диапазона чисел 0..99 вместо 0.. FF.Например: Преобразуем число 51 в BCD формат. 5 - это двоичное 0101, 1 - это 0001. В результате получается байт 0101_0001.BCD_TO_INTФункция преобразует байт формата BCD в число типа INT.Входной параметр функции типа BYTE и выход типа INT. Если входное значение не укладывается вформат BCD, функция возвращает -1.Примеры ST:i:=BCD_TO_INT(73);(* Результат 49 *)k:=BCD_TO_INT(151); (*Результат 97 *)l:=BCD_TO_INT(15);(* -1, потому что F0 не BCD формат*)INT_TO_BCDФункция преобразует INTEGER число в байт формата BCD.Входной параметр функции типа INT и выход типа BYTE.CoDeSys V2.310-56Приложение D: Библиотеки CoDeSysЕсли INTEGER число не может быть представлено в BCD формате, то функция возвращает значение255.Примеры ST:i:= INT_TO_BCD(49); (*Результат 73 *)k:=INT_TO_BCD (97); (*Результат 151 *)l:= INT_TO_BCD (100); (* Ошибка! Выход: 255 *)10.17.2 Бит/байт функцииEXTRACTПараметры функции: DWORD X и BYTE N.

Выход типа BOOL, отражает значение бита N в числе X.Биты нумеруются с 0.Примеры ST:FLAG:=EXTRACT(X:=81,N:=4); (* Результат: TRUE, 81 это 1010001, 4й бит 1 *)FLAG:=EXTRACT(X:=33, N:=0); (* Результат: TRUE, 33 это 100001,бит ‘0’ это 1 *)PACKФункция сворачивает восемь параметров B0, B1, ..., B7 типа BOOL в один BYTE.Функциональный блок UNPACK выполняет обратную распаковку.PUTBITПараметры функции: DWORD X, BYTE N и BOOL B.PUTBIT устанавливает N-й бит числа X в состояние, заданное B. Биты нумеруются с 0.Примеры ST:A:=38;(* двоичное 100110 *)B:=PUTBIT(A,4,TRUE);(* Результат : 54 = 2#110110 *)C:=PUTBIT(A,1,FALSE);(* Результат : 36 = 2#100100 *)UNPACKUNPACK преобразует вход B типа BYTE в 8 выходов B0,...,B7 типа BOOL.Обратная упаковка производится с помощью PACK.Пример FBD:CoDeSys V2.310-57Приложение D: Библиотеки CoDeSys10.17.3 Дополнительные математические функцииDERIVATIVEФункциональный блок выполняет численное дифференцирование.Аналоговый вход IN и выход OUT типа REAL.

Вход TM задает время дифференцирования (как правило, в миллисекундах) имеет тип DWORD. В процессе сброса (RESET = TRUE) выход OUT равеннулю.Алгоритм DERIVATIVE проводит аппроксимацию по четырем точкам, что снижает ошибки при наличии шума во входном сигнале.Блок FBD:Пример дифференцирования треугольных импульсов:INTEGRALФункциональный блок выполняет численное интегрирование.Аналоговый вход IN типа REAL.

Вход TM типа DWORD задает длительность интегрирования (какправило, в миллисекундах). Вход RESET типа BOOL запускает интегрирование при установке вTRUE. Выход OUT типа REAL.Алгоритм вычисления использует классический двухточечный метод трапеций.Блок FBD: пример интегрирования линейной функции:LIN_TRAFOДанный функциональный блок (util.lib) преобразует значение переменной REAL, принадлежащее одному интервалу в пропорциональное значение, принадлежащее другому интервалу. Интервалы определяются минимальным и максимальным значением.

Алгоритм преобразования опирается на следующее равенство:(IN - IN_MIN) : (IN_MAX - IN) = (OUT - OUT_MIN) : (OUT_MAX - OUT)CoDeSys V2.310-58Приложение D: Библиотеки CoDeSysВходные переменные:ПеременнаяТип данныхОписаниеINREALВходное значениеIN_MINREALНижнее значение входного диапазонаIN_MAXREALВерхнее значение входного диапазонаOUT_MINREALНижнее значение выходного диапазонаOUT_MAXREALВерхнее значение выходного диапазонаВыходные переменные:ПеременнаяТип данныхОписаниеOUTREALВыходное значениеERRORBOOLПризнак ошибки: TRUE, если IN_MIN = IN_MAXили если значение IN вышло за пределы входногодиапазонаПример использования:Допустим, датчик температуры выдает некоторое напряжение в вольтах (вход IN). Нам необходимопреобразовать полученное значение в градусы по Цельсию (выход OUT).

Входной диапазон (в Вольтах) определяется пределами IN_MIN=0 и IN_MAX=10. Выходной диапазон (в градусах Цельсия) определяется соответствующими пределами OUT_MIN=-20 и OUT_MAX=40.Так, при входном значении 5 Вольт, мы получим на выходе 10 градусов по Цельсию.STATISTICS_INTФункциональный блок определяет минимальное, максимальное и среднее значения входной величины.Аналоговый вход IN типа INT. По входу RESET типа BOOL все переменные инициализируются заново. Выход MN дает минимальное, выход MX максимальное и выход AVG среднее значения входныхданных IN. Все три выхода типа INT.Блок FBD:CoDeSys V2.310-59Приложение D: Библиотеки CoDeSysSTATISTICS_REALФункциональный блок, аналогичный STATISTICS_INT. Вход IN и выходы MN, MX, AVG имеют типREAL.VARIANCEФункциональный блок вычисляет дисперсию входных данных.Вход IN типа REAL, вход RESET типа BOOL и выход OUT типа REAL.

Сброс вычисления производится по входу RESET=TRUE.Среднеквадратичное отклонение может быть получено как квадратный корень VARIANCE.10.17.4 РегуляторыPDФункциональный блок реализует ПД закон регулирования:de(t ) Y = Y _ OFFSET + KP  e (t ) + TVdt где Y_OFFSET – стационарное значение, KP – коэффициент передачи, TV – постоянная дифференцирования (ms), e(t) - сигнал ошибки (SET_POINT-ACTUAL).Входы ACTUAL, SET_POINT, KP, Y_OFFSET, Y_MIN Y_MAX типа REAL. Вход TV типа DWORD,RESET и MANUAL типа BOOL.Выходы Y – REAL, LIMITS_ACTVE типа BOOL.Значение выхода Y ограничено Y_MIN и Y_MAX.

При достижении Y границ ограничения, выходLIMITS_ACTVE, (BOOL) принимает значение TRUE. Если ограничение выхода не требуется, Y_MINи Y_MAX должны быть равны 0.Если MANUAL равен TRUE, то регулирование выключено, значение Y автоматически не изменяется.При переходе значения MANUAL в FALSE происходит рестарт регулятора.P-регулятор получается из PD установкой TV в 0.Пример FBD:CoDeSys V2.310-60Приложение D: Библиотеки CoDeSysPIDФункциональный блок реализует ПИД закон регулирования:1 TNde(t ) Y = Y _ OFFSET + KP  e(t ) +e(t ) + TV∫TNdt0где Y_OFFSET – стационарное значение, KP – коэффициент передачи, TN – постоянная интегрирования (ms), TV – постоянная дифференцирования (ms), e(t) - сигнал ошибки (SET_POINT-ACTUAL).Входы ACTUAL, SET_POINT, KP, Y_OFFSET, Y_MIN Y_MAX типа REAL. Входы TN и TV типаDWORD, RESET и MANUAL типа BOOL.Выходы Y – REAL, LIMITS_ACTVE и OVERFLOW типа BOOL.Механизм ограничения выхода PID аналогичен PD регулятору.Неправильная настройка регулятора может вызвать неограниченный рост интегральной составляющей.

Для обнаружения такой ситуации предназначен выход OVERFLOW. При переполнении он принимает значение TRUE, одновременно останавливается работа регулятора. Для его включения необходимо использовать рестарт.Пример FBD:PID_FIXCYCLEФункциональный блок PID_FIXCYCLE.CoDeSys V2.310-61Приложение D: Библиотеки CoDeSysОтличается от PID тем, что время цикла не измеряется автоматически встроенным таймером, а задается дополнительной переменной CYCLE, в секундах.10.17.5 Генераторы сигналовBLINKФункциональный блок ‘генератор прямоугольных импульсов’Входы: ENABLE типа BOOL, TIMELOW и TIMEHIGH типа TIME.

Выход OUT типа BOOL.Генератор запускается по входу ENABLE = TRUE. Длительность импульса задается TIMEHIGH, длительность паузы TIMELOW.Пример CFC:FREQ_MEASUREДанный функциональный блок измеряет (усредненную) частоту (в Герцах) входного сигнала типаBOOL. Вы можете задать количество периодов для усреднения. Под периодом понимается время между двумя передними фронтами сигнала.CoDeSys V2.310-62Приложение D: Библиотеки CoDeSysВходные переменные:ПеременнаяТип данныхОписаниеINBOOLВходной сигналPERIODSINTЧисло периодов усреднения. Допустимое значение от 1до 10.RESETBOOLСбросВыходные переменные:ПеременнаяТип данныхОписаниеOUTREALРезультат, частота в ГерцахVALIDBOOLFALSE до окончания первого замера, либо период >3*OUT (признак ошибки по входам)GENФункциональный блок ‘функциональный генератор’Входы: перечисление MODE предопределенного типа GEN_MODE, BASE типа BOOL, PERIOD типаTIME, CYCLES и AMPLITUDE типа INT и RESET типа BOOL.

Выход OUT типа INT.Вход MODE задает вид генерируемой функции. Перечисление включает следующие значения: TRIANGLE и TRIANGLE_POS - треугольники, SAWTOOTH_RISE и SAWTOOTH_FALL – пила, RECTANGLE – прямоугольники, SINE и COSINE – синусоиды:TRIANGLE:TRIANGLE_POS:SAWTOOTH_RISE:SAWTOOTH_FALL:RECTANGLE:SINUS:COSINUS:CoDeSys V2.310-63Приложение D: Библиотеки CoDeSysBASE определяет представление единиц периода по времени (BASE=TRUE) или по числу циклов, т.е.по количеству вызовов функционального блока (BASE=FALSE).Входы PERIOD или CYCLES определяют период выходного сигнала.

Вход AMPLITUDE задает амплитуду сигнала.Сброс генератора происходит при установке RESET=TRUE.Пример FBD:10.17.6 Преобразования аналоговых сигналовCHARCURVEФункциональный блок осуществляет пересчет входных данных по заданной переходной функции- путем кусочно-линейной аппроксимации.Вход IN типа INT принимает исходные данные. Вход N типа BYTE определяет количество точек задающих передаточную функцию. Передаточная функция задается массивом точек ARRAY P[0..10],где P - это точка, определенная как структура типа POINT, состоящая из двух переменных INT X и Y.Выход OUT типа INT, выходные данные. Выход ERR типа BYTE, индикатор ошибки.Точки P[0]..P[N-1] массива ARRAY должны быть отсортированы по X в порядке возрастания, в противном случае ERR получает значение 1. Если вход IN не лежит в пределах от P[0].X до P[N-1].X, генерируется ошибка ERR=2 и выход OUT приобретает значение соответствующего предела P[0].X илиP[N-1].X.Число N должно быть в пределах от 2 до 11, иначе возникает ошибка ERR=4.Пример ST:Прежде всего определим массив ARRAY P:VAR...CoDeSys V2.310-64Приложение D: Библиотеки CoDeSysCHARACTERISTIC_LINE:CHARCURVE;KL:ARRAY[0..10] OF POINT:= (X:=0,Y:=0), (X:=250,Y:=50), (X:=500,Y:=150),(X:=750,Y:=400), 7((X:=1000,Y:=1000));COUNTER:INT;...END_VARДалее вызываем CHARCURVE для линейно возрастающих значений:COUNTER:=COUNTER+10;CHARACTERISTIC_LINE(IN:=COUNTER,N:=5,P:=KL);Последующая трассировка иллюстрирует полученный эффект:RAMP_INTФункциональный блок RAMP_INT ограничивает скорость нарастания и спада сигнала.Три входа имеют тип INT: IN, входные данные, ASCEND и DESCEND, максимальное нарастание испад за интервал, заданный TIMEBASE типа TIME.

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

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

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