Codesys (824048), страница 28
Текст из файла (страница 28)
Элементы такого пакета определений автоматически получат индексы в возрастающем порядке. Если нет достаточного числа определений ключей для всех элементовмассива, структуры или функционального блока, то оставшиеся элементы получат значения от последнего описанного индивидуального элемента (исключение для ключа "name" описано выше)! (см.
пример 1b).Автоматизация ключа "name" при включении массивов в список параметров:−Если вы не определили имя элемента массива в директиве, то этот и все последующие элементыавтоматически получат имена:<Имя POU>_<Имя переменной массива>_<соответствующий числовой индекс массива >.Пример: Переменная ARRVAR [1..8] типа массив INT в PLC_PRG включается в список директивойpragma.
Если ключ "name" не определен в директиве, то элементы массива в списке параметров автоматически получают имена от "PLC_PRG_arrvar_1" до "PLC_PRG_arrvar_8".CoDeSys V2.35-16Редакторы CoDeSys−Если вы определяете директивой некоторое имя "<имя>_<первый числовой индекс массива>" дляпервого элемента, то последующие элементы массива будут автоматически получать имена“<имя>_<соответствующий числовой индекс>”.Пример: Переменная ARRVAR [1..8] типа массив INT включается в список посредством директивы pragma.
Директива указывает [name=xyz_1]“ только для первого элемента массива. Последующие элементы автоматически получают имена от "xyz_2" до "xyz_8".Внимание: Не нужно задавать значения для ключа "Member"; данная колонка заполняется автоматически, припомощи значений индексов массива.Примеры:Пример 1а:Массив "arr_1" включает список "arrinst" типа 'Instance'; все элементы массива в этом списке получаютсимволическое имя "xname_<index number>" (может быть изменено в Менеджере параметров), подиндекс увеличивается на единицу для каждого элемента, начиная с 0.
Accesslevel=low будет применен ковсем элементам.arr_1: ARRAY [1..8] OF INT{instance list=arrinst template=ARRAY baseindex=16#0basesubindex=16#0 [name=xname_1 accesslevel=low ] };Пример 1б:Для массива arr_1 только имена для элементов с 1 по 4 определяются директивой, элементы с 5 по 8получают имена автоматически на основе определения для элемента 4, то есть "xname_5" и т.д. до"xname_8".Заметьте, что задания последующих определений ключей для отдельных элементов должны бытьвключены в эти же квадратные скобки, как показано здесь для прав доступа первого и четвертого элементов:arr_1: ARRAY [1..8] OF INT{instance list=arrinst template=ARRAY baseindex=16#0 basesubindex=16#0 [name=aname accesslevel=high] [name=bname][name=cname] [name=xname accesslevel=medium]};Пример 1:Вхождения для массива в списке instanceCoDeSys V2.35-17Редакторы CoDeSysПример 2:Элементы структуры типа "stru1" (состоящей из переменных a,b,c) входят в список типа'Instance',базирующийся на шаблоне "strulist_temp"; список включает вхождения a,b,c, символическиеимена не присваиваются, уровень доступа "high" и значение каждого индекса определяется по шаблону,через 2.
Убедитесь, что определенный в директиве шаблон доступен Менеджеру параметров:struvar:stru1{instance list=strulist template=strulist_templ baseindex=16#2basesubindex=16#0 [accesslevel=high] };Пример 2: Вхождения для структуры в Template(б) из объявления интерфейса VAR_CONFIG:CoDeSys V2.35-18Редакторы CoDeSysВы можете определить вхождения определяемых переменных в список Instance' непосредственно в окне VAR_CONFIG (вне зависимости от других определений конфигурационных переменных).Убедитесь, что определенный в директиве шаблон доступен Менеджеру параметров:{instance list=<name> path=<path> template=<template> baseindex=<index>basesubindex=<subindex>[ <key>=<value> <key>=<value> ...further keys ] }<path> путь к переменной, например "PLC_PRG.
fb1", где fb1 функциональный блокПример: Следующая директива в окне VAR_CONFIG будет создавать вхождения для всех переменныхдля функционального блока "fb1" в списке экземпляров "varinst1" по шаблону "fb1_templ". Для каждоговхождения индекс в соответствии с шаблоном увеличивается на 2 (baseindex), подиндекс не изменяется(basesubindex). Каждое вхождение получает символьное имя "fb1var", которое вы можете изменить вМенеджере параметров:VAR_CONFIG{instance list=varinst1 path=PLC_PRG.fb1 template=fb1_templ baseindex=16#2basesubindex=16#0 [ name=fb1var ]}END_VARДиректива исключения данных из PERSISTENTПо умолчанию даже если только одна локальная переменная функционального блока или структурыобъявлена как PERSISTENT, то все данные экземпляры автоматически будут сохраняться системой исполнения в энергонезависимой области persist.dat.
С целью ее экономии можно применить директиву:{nonpersistent} в объявлении функционального блока или структуры. В этом случае, объявлениеPERSISTENT будет влиять только на указанные в нем переменные.Пример:Для экземпляров данного функционального блока только значения переменных local и fblevel3 будутзаписываться в энергонезависимую область.FUNCTION_BLOCK FB_Level_2{nonpersistent}VAR_INPUTbvar_in : BOOL;END_VARVAR_OUTPUTbvar_out : BOOL;END_VARVARivar2 : INT;END_VARVAR PERSISTENTlocal : INT := 33;fblevel3 : FB_Level_3;END_VARCoDeSys V2.35-19Редакторы CoDeSys5.3 Текстовые редакторы5.3.1 Работа в текстовых редакторахТекстовые редакторы (используемые для написания текстов программ IL и ST) в CoDeSys обеспечивают обычные функции текстовых редакторов Windows.
Текстовые редакторы поддерживают цветовоесинтаксическое выделение. Корректно введенные инструкции выделятся цветом.В режиме замены надпись OV в статусной строке становится черной. Нажимая клавишу <Ins>, можнопереключаться между режимами вставки и замены.Текстовые редакторы ST и ILНаиболее важные команды находятся в контекстном меню, которое появляется при щелчке правойкнопки мыши или при нажатии сочетания клавиш <Ctrl> +<F10>.В текстовых редакторах доступны следующие команды меню:“Insert” “Operator”Вызывает список всех доступных для соответствующего языка операторов. Если выбрать оператор изсписка и нажать кнопку OK, то выбранный оператор будет добавлен в текущую позицию курсора.“Insert” “Operand”Выводит на экран список всех доступных переменных.
Можно выбрать категорию переменных (глобальные, локальные, системные), которые будут изображены в списке.Если операнд выбран и нажата кнопка OK, то выбранный операнд будет вставлен в текущую позициюкурсора (аналогично работе Input Assistant).CoDeSys V2.35-20Редакторы CoDeSys“Insert” “Function”Выводит диалоговое окно, в котором вы можете выбрать функцию из списка стандартных или определенных пользователем функций.Выбранная функция помещается в текущую позицию курсора после нажатия кнопки OK.Если выбранпеременные.флаг With Argument, то также будут вставлены необходимые входные и выходные“Insert” “Function Block”Выводит список всех доступных в проекте функциональных блоков.
Вы можете выбрать, какие функциональные блоки будут отображены: либо стандартные, либо определенные пользователем.Выбранный функциональный блок помещается в текущую позицию курсора при нажатии клавиши OK.Если выбран флаг With Arguments, то появятся необходимые входные и выходные переменные.Вызов POU c выходными параметрамиВ текстовых языках ST и IL выходные параметры POU можно связать с какими-либо переменнымипрямо при вызове POU.Пример: Выходной параметр out1 присваивается переменной a.IL:ST:CAL afbinst(in1:=1, out1=>a)afbinst(in1:=1, out1=>a);Если POU вводится посредством Ассистента ввода (<F2>) с опцией 'With arguments', то вызов в ST илиIL автоматически отображается с таким синтаксисом для всех параметров.
Однако вы не обязаны все ихиспользовать.Текстовые редакторы в режиме OnlineТекстовые редакторы CoDeSys совмещают типовые функции современных отладчиков. В текстовыхредакторах поддерживаются такие Online-функции, как установка точек останова и выполнение программы по шагам.В режиме Online окно текстового редактора разделяется по вертикали на две части. В левой части окнавы найдете текст программы, а в правой вы увидите значения переменных. Ширину частей можно изменять, перетаскивая мышкой границу между ними.Просмотр значений переменных осуществляется так же, как и в редакторе раздела объявлений.Когда связь с контроллером установлена, на экран выводятся текущие значения переменных:При мониторинге выражений выводится итоговое значение. Например: a AND b отображается со строкой “:=TRUE”, если a и b истинны.Для бит адресуемых переменных выводится значение соответствующего бита (например, a.2 изображается со строкой ":=TRUE”, если a имеет значение 4).Если поместить указатель мыши на переменную, то во всплывающей подсказке будет выведен комментарий, тип и адрес переменной.CoDeSys V2.35-21Редакторы CoDeSys“Extras” “Monitoring Options”Эта команда позволяет изменить настройки окна, в котором вы просматриваете значения переменных.В текстовых редакторах во время мониторинга окно разделяется на две части.