Codesys (824048), страница 62
Текст из файла (страница 62)
Установка двоичного входа RESET в TRUE вызывает сброс RAMP_INT в начальное состояние.Выход OUT типа INT, выходные данные.Если TIMEBASE равен t#0s, ASCEND и DESCEND задают ограничение изменения за один цикл (вызов блока) безотносительно времени.Пример FBD:RAMP_REALRAMP_REAL аналогичен RAMP_INT, за исключением того, что входы IN, ASCEND, DESCEND ивыход OUT типа REAL.CoDeSys V2.310-65Приложение D: Библиотеки CoDeSysАналоговые компараторы10.17.7HYSTERESISАналоговый компаратор с гистерезисом.Входы IN, HIGH и LOW типа INT. Выход OUT типа BOOL.Если вход IN принимает значение, меньшее LOW, выход OUT устанавливается в TRUE. Если вход INпринимает значение, большее HIGH, то выход равен FALSE.
В пределах от LOW до HIGH значениевыхода не изменяется.Пояснительная иллюстрация:LIMITALARMФункциональный блок, контролирует принадлежность значения входа IN заданному диапазону. Входы LOW и HIGH задают границу диапазона..Входы IN, HIGH и LOW типа INT, выходы O, U и IL типа BOOL.Если значение на входе IN:превышает предел HIGHвыход O = TRUEменьше предела LOWвыход U = TRUEлежит в пределах между LOW и HIGH (включительно)выход IL = TRUEПример FBD:CoDeSys V2.310-66Приложение D: Библиотеки CoDeSys10.18 Библиотека AnalyzationNew.libДанная библиотека содержит модули для анализа выражений в SFC.
Если сложное выражение даетFALSE, то библиотека позволяет уточнить, какие компоненты условного выражения дали такой результат. Существует специальный флаг SFCErrorAnalyzationTable, механизм его работы неявно использует данные функции для анализа условий переходов.Пример условного выражения:b OR NOT(y < x) OR NOT (NOT d AND e)Во всех модулях используются следующие переменные:InputExpr: BOOL, анализируемое выражениеDoAnalyze: BOOL, TRUE запускает анализExpResult: BOOL, текущее значение выраженияФункции:AnalyzeExpression возвращает строку, содержащую компоненты выражения, дающие в итоге значение FALSE. Для этого служит вспомогательная функция AppendErrorString добавляющая компоненты, разделенные символом "|".Выходная строка OutString (тип STRING) содержит результат (например: y < x | d).Функция AnalyseExpressionTable записывает компоненты выражения, дающие в итоге значениеFALSE, в массив.
Для каждого компонента заполняется структура ExpressionResult, содержащая наименование, адрес, комментарий и текущее значение.OutTable: ARRAY [0..15] OF ExpressionResult;Например:AnalyseExpressionCombined совмещает функции AnalyzeExpression и AnalyseExpressionTable.10.19 Системные библиотеки CoDeSysВ зависимости от целевой платформы применяются разные системные библиотеки. Функции системных библиотек описаны в документе SysLibs_Overview.pdf.CoDeSys V2.310-67Приложение E: Краткий справочник по операторам и компонентам библиотекПриложение E: Краткий справочник по операторам и компонентам библиотекПриведенные ниже таблицы кратко представляют операторы CoDeSys и компоненты библиотек Standard.lib и Util.lib.
Даны нотации для языков ST и IL. Для IL указаны допустимые модификаторы.Обратите внимание, что для IL инструкций первый операнд должен быть загружен заранее (например,командой LD). Непосредственно в строке за «IL» командой вводятся второй и последующие (еслиони есть) операнды.Столбец «Мод.» содержит допустимые IL модификаторы:CNN(Команда выполняется только в случае, если результат предыдущей операции TRUE.для JMPC, CALC, RETC: Команда выполняется только в случае, если результат предыдущейоперации FALSE.прочие: отрицание операнда (не аккумулятора)Скобки: операторы, заключенные в скобки, выполняются в первую очередь, затем продолжаетсяобычный порядок выполнения.Детальные описания даны в соответствующих приложениях выше.Операторы CoDeSys:ST'..
[ ]:IL;^:=LD var1ST var1S boolvarR boolvar<Program name><Instance name><Fctname>(vx, vy,..)ANDORXORNOT+*/CoDeSys V2.3JMP labelCAL prog1CAL inst1<Fctname> vx, vy()ANDORXORNOTADDSUBMULDIVМод. ОписаниеРазграничение строк (т.е. 'string1')Задание индексов массива (т.е. ARRAY[0..3] OF INT)Разделитель операнда и типа при объявлении (т.е. var1 :INT;)Конец инструкции (т.е. a:=var1;)Обращение через указатель (т.е.
pointer1^)NЗагрузить значение var1 а аккумуляторNЗаписать в var1 значение аккумулятораУстановка логического операнда boolvar в TRUE, еслизначение аккумулятора TRUEСброс логического операнда boolvar в FALSE, еслизначение аккумулятора TRUECN Переход на метку labelCN Вызов программы prog1CN Вызов экземпляра функционального блока inst1CN Вызов функции fctname передача параметров vx, vyРезультат вычислений в скобках используется как операнд.Заканчивает вычисление в скобках.N,(Битовое ANDN,(Битовое ORN,(Битовое исключающее ORБитовое NOT(Сложение(Вычитание(Умножение(Деление10-68Приложение E: Краткий справочник по операторам и компонентам библиотек>>==<><=<MOD(in)INDEXOF(in)SIZEOF(in)SHL(K,in)SHR(K,in)ROL(K,in)ROR(K,in)SEL(G,in0,in1)GTGEEQNELELTMODINDEXOFSIZEOFSHLSHRROLRORSELMAX(in0,in1)MIN(in0,in1)LIMIT(MIN,in,Max)MUX(K,in0,...in_n)MAXMINLIMITMUXADR(in)ADRINST()ADRADRINSTBITADR(in)BOOL_TO_<type>(in)<type>_TO_BOOL(in)INT_TO_<type>(in)BITADRBOOL_TO_<type><type>_TO_BOOLINT_TO_<type>REAL_TO_<type>(in)REAL_TO_<type>LREAL_TO_<type>(in)LREAL_TO_<type>TIME_TO_<type>(in)TIME_TO_<type>TOD_TO_<type>(in)TOD_TO__<type>DATE_TO_<type>(in)DATE_TO_<type>DT_TO_<type>(in)DT_TO_<type>STRING_TO_<type>(in)STRING_TO_<type>TRUNC(in)ABS(in)SQRT(in)LN(in)LOG(in)EXP(in)TRUNCABSSQRTLNLOGEXPCoDeSys V2.3((((((Больше, чемБольше или равноРавноНеравноМеньше или равноМеньше, чемОстаток целочисленного деленияВнутренний индекс POU in; [INT]Число байт, занимаемых inПоразрядный сдвиг влево на K битПоразрядный сдвиг вправо на K битЦиклический сдвиг влево на K битЦиклический сдвиг вправо на K битМультиплексор на 2 входа in0 (при G FALSE) и in1(при G TRUE)Возвращает наибольшее из 2х значений in0 и in1Возвращает наименьшее из 2х значений in0 и in1Ограничивает значение in в пределах от MIN до MAXМультиплексор выбирает K-тое значение из группы (отin0 до In_n)Адрес операнда в [DWORD]Адрес экземпляра функционального блока, из котороговызывается ADRINST.Битовое смещение операнда в [DWORD]Преобразование типа из логическогоПреобразование типа в логическийПреобразование значения операнда типа INT в другойбазовый типПреобразование значения операнда типа REAL в другой базовый типПреобразование значения операнда типа LREAL в другой базовый типПреобразование значения операнда типа TIME в другойбазовый типПреобразование значения операнда типа TOD в другойбазовый типПреобразование значения операнда типа DATE в другой базовый типПреобразование значения операнда типа DT в другойбазовый типПреобразование текста строки операнда в другой базовый тип.
Строка должна содержать соответствующийтекстПреобразование из REAL в INTАбсолютное значение inКвадратный корень из inНатуральный логарифм из inДесятичный логарифм из inE в степени in10-69Приложение E: Краткий справочник по операторам и компонентам библиотекSIN(in)COS(in)TAN(in)ASIN(in)ACOS(in)ATAN(in)EXPT(in,expt)SINCOSTANASINACOSATANEXPT exptСинус inКосинус inТангенс inАрксинус inАрккосинус inАрктангенс inВозведение в степень exptКомпоненты Standard.lib:STLEN(in)LEFT(str,size)RIGHT(str,size)MID(str,size,pos)CONCAT('str1','str2')INSERT('str1','str2',pos)DELETE('str1',len,pos)REPLACE('str1','str2',len,pos)FIND('str1','str2')SRRSSEMAR_TRIGF_TRIGCTUCTDCTUDTPTONTOFRTCILLENLEFTRIGHTMIDCONCAT 'str2'INSERT 'str2',pDELETE len,posREPLACE'str2',len,posFIND 'str2'SRRSSEMAR_TRIGF_TRIGCTUCTDCTUDTPTONTOFRTCОписаниеДлина строки inЛевая значимая часть строки str из size символовПравая значимая часть строки str из size символовЧасть строки str с позиции pos из size символовКонкатенация (склеивание) 2х строкВставить строку str1 в str2 с позиции posУдалить часть строки, len символов, с позиции posЗаменить часть строки str1 с позиции pos на len символов изstr2Поиск подстроки str2 в str1FB: Переключатель с доминантой включенияFB: Переключатель с доминантой выключенияFB: Семафор (interruptable)FB: детектор переднего фронта импульсаFB: детектор заднего фронта импульсаFB: Инкрементный счетчикFB: Декрементный счетчикFB: Реверсивный счетчикFB: ТриггерFB: Таймер включенияFB: Таймер выключенияFB: ЧасыКомпоненты Util.lib:КомпонентBCD_TO_INTINT_TO_BCDEXTRACT(in,n)PACKPUTBITUNPACKDERIVATIVEINTEGRALLIN_TRAFOSTATISTICS_INTCoDeSys V2.3ОписаниеПреобразование значения операнда BCD в INTПреобразование байта INT в BCDОпределяет значение n-го бита DWORD, результат типа BOOLУпаковка значений 8 бит в байтПрисвоить значение определенному биту в DWORDРаспаковка байта в 8 логических переменныхПроизводнаяИнтегралПреобразование REAL значенийМакс., Мин., Среднее значения в INT формате10-70Приложение E: Краткий справочник по операторам и компонентам библиотекSTATISTICS_REALVARIANCEPDPIDBLINKFREQ_MEASUREGENCHARCURVERAMP_INTRAMP_REALHYSTERESISLIMITALARMCoDeSys V2.3Макс., Мин., Среднее значения в REAL форматеДисперсияПД регуляторПИД регуляторГенератор импульсовЧастотомерФункциональный генераторИнтерполяторОграничитель скорости изменения сигнала (INT)Ограничитель скорости изменения сигнала (REAL)ГистерезисКомпаратор10-71Приложение F: Командная строка / командный файлПриложение F: Командная строка / командный файл10.20 Командная строкаПараметры, указанные в командной строке при запуске CoDeSys, определяют дополнительные режимы работы программы.
Все параметры начинаются символом „/“. Регистр знаков не учитывается. Команды выполняются слева направо./onlineНепосредственно после запуска CoDeSys перейти в режим online текущегопроекта./runПосле подключения автоматически запускает приложение.Имеет смысыл только совместно с /online/show ...Вид окна при старте CoDeSys/show hideОкно не показывается, нет индикатора в панели задач/show iconОкно свернуто/show maxРазвернуто на весь экран/show normalРазмер окна равен размеру, установленному в предыдущем сеансе работы./out <outfile>Все сообщения программы дополнительно записываются в файл <outfile>./noinfoНе показывать заставку при запуске/userlevel<group>Определение пользовательской группы (например, "/userlevel 0" для группы/password<password>/openfromplcПрямой ввод пароля пользовательской группы (например, "/password abc")/visudownloadЕсли CoDeSys HMI запускается с проектом, не соответствующим присутст-0)Будет загружен проект из целевой системы.вующему в целевой системе, то будет дан диалог подтверждения загрузки./notargetchangeИзменение целевой платформы может быть выполнено только через командный файл (См.