Руководство пользователя по программированию плк в CoDeSys 3
Скачать 5.57 Mb.
|
Внимание: Если вы переименуете шаг и выполните горячее обновление (Онлайн Change) во время активности этого шага, то программа приобретет неопределенное состояние и будет остановлена! Редакторы CoDeSys CoDeSys V2.3 5-51 Порядок выполнения действий в управляющем цикле 1. Во-первых, сбрасываются все флаги управления действиями МЭК-шагов (это не относится к флагам, обрабатываемым внутри действий). 2. Все шаги проверяются сверху вниз и слева направо для того, чтобы определить, нужно ли вы- полнять выходное действие, если да, то это действие выполняется. 3. Все шаги проверяются сверху вниз и слева направо для того, чтобы определить, нужно ли вы- полнять входное действие, и если да, то это действие выполняется. 4. Для всех шагов выполняется следующая последовательность действий: • Если необходимо, то в соответствующую переменную копируется время активности шага. • Если произошел тайм-аут, то устанавливаются соответствующие SFC-флаги. • Если шаг не является МЭК-шагом, то выполняется связанное с ним действие. 5. Действия, связанные с МЭК-шагом, выполняются в два этапа в алфавитном порядке. На первом этапе выполняются те действия, которые должны быть деактивированы в этом цикле. На вто- ром этапе выполняются активные в этом цикле действия. 6. Вычисляются условия переходов: если шаг в данном цикле был активен и переход имеет значе- ние True (и при необходимости, если время выполнения шага больше минимального), то сле- дующий шаг становится активным. Относительно реализации шагов заметим следующее: Одно действие может выполниться несколько раз в одном управляемом цикле, если оно связано с разными шагами (например, программа SFC имеет два действия А и В, которые оба выполнены на SFC, и оба этих действия вызывают третье действие С. Если в одном цикле действия А и В актив- ны, то действие С выполнится дважды). Описанная выше ситуация может приводить к неопределенности и сопровождается сообщением об ошибке. Ошибки могут появиться, если вы используете проект, созданный в ранней версии CoDe- Sys. Замечание: При мониторинге выражения перехода (например, Bool1 AND Bool2) выводится только конечное значение выражения. Редакторы CoDeSys CoDeSys V2.3 5-52 Редактор CFC Редактор CFC В этом редакторе нет сетки, и поэтому элементы могут располагаться где угодно. К элементам язы- ка CFC относятся блоки, входы, выходы, возвраты, произвольные переходы, метки и комментарии. Входы и выходы этих элементов можно соединять, перетаскивая линии соединения мышкой. Эти линии будут перерисовываться автоматически при перемещении элементов. В случае, если линия соединения не может быть перерисована, то она становится красной, и как только вы переставите элемент так, чтобы можно было соединить вход и выход линией без пересечений с другими элемен- тами, линия становится нормальной. Основное преимущество CFC редактора перед FBD заключается в том, что в схемы можно непо- средственно добавлять линии обратной связи. Наиболее важные команды можно найти в контекстном меню. Позиции курсора Курсор может располагаться в любой текстовой в строке CFC схемы. Выделенный текст можно ре- дактировать. Во всех остальных случаях позиция курсора выделяется прямоугольником с пунктирной границей. Далее вместе с примерами показаны все возможные позиции курсора. 1. Блоки, входы, выходы, возвраты, произвольные переходы и комментарии. Редакторы CoDeSys CoDeSys V2.3 5-53 2. Все текстовые поля. 3. Входы элементов: блок, вход, выход, возврат и переход на метку. 4. Выходы элементов: блок и вход. “ Вставка” “Блок” (“Insert” “Box”) Обозначение: Быстрый ввод: Команда может быть использована для вставки операторов, функций, функциональных блоков и программ. Сразу после ее выполнения появляется блок с именем “AND”. Выбрав текстовое поле внутри этого блока, вы можете изменить его на имя любого другого оператора, функции, функцио- нального блока или программы. Для этой цели удобно использовать Ассистент ввода. Если новый блок имеет большее минимальное число входов, то будут добавлены новые входы. Если количество входов нового блока меньше, чем количество входов выбранного блока, то последние входы уда- ляются. “ Вставка” “Вход” (“Insert” “Input”) Обозначение: Быстрый ввод: Вставка входа. В текстовом поле входа появятся три знака вопроса, которые нужно заменить на имя переменной или константы. Для этой цели удобно использовать Ассистент ввода. “ Вставка” “Выход” (“Insert” “Output”) Обозначение: Быстрый ввод: Редакторы CoDeSys CoDeSys V2.3 5-54 Вставка выхода. В текстовом поле выхода появятся три знака вопроса, которые нужно заменить на имя переменной. Для этой цели удобно использовать Ассистент ввода. Значение этого выхода при- сваивается введенной Вами переменной. “ Вставка” “Переход” (“Insert” “Jump”) Обозначение: Быстрый ввод: Вставка произвольного безусловного перехода на метку. В текстовом поле появятся три знака во- проса, которые нужно заменить на имя метки. Метку можно вставить с помощью команды “ Встав- ка ” “ Метка ” (“ Insert ” “ Label ”). “ Вставка” “Метка” (“Insert” “Label”) Обозначение: Быстрый ввод: Вставка метки. В текстовом поле метки появятся три знака вопроса, которые нужно заменить на имя метки. В режиме Онлайн в конец POU автоматически добавляется метка Return. Для того чтобы вставить переход на метку, используйте команду “ Вставка ” “ Переход ” (“ Insert ” “ Jump ”). “ Вставка” “Возврат” (“Insert” “Return”) Обозначение: Быстрый ввод: Вставка возврата RETURN.Заметим, что в режиме Онлайн в конец схемы добавляется метка с именем RETURN и при выполнении программы по шагам, перед тем как выйти из POU, выполне- ние останавливается на этой метке. “ Вставка” “Комментарий” (“Insert” “Comment”) Обозначение: Быстрый ввод: Вставка комментариев. При вводе комментария к новой строке можно перейти, нажав “ Вставка” “Вход блока” (“Insert” “Input of box”) Быстрый ввод: Добавить вход блока. У некоторых операторов число входов можно изменять (например, ADD мо- жет иметь два или больше входов). Эта команда выполнима, если выбран оператор (позиция курсора №1). “ Вставка” “Вход макро” (“Insert” “In-Pin”), “Вставка” “Выход макро” (“Insert” “Out- Pin”) Обозначения: Обе команды доступны при редактировании макроса. Они используются для вставки входов и вы- ходов макроса, которые отличаются от обыкновенных входов и выходов POU способом отображе- ния и отсутствием позиционных индексов. “ Дополнения” “Инверсия” (“Extras” “Negation”) Обозначение: Быстрый ввод: Редакторы CoDeSys CoDeSys V2.3 5-55 Инвертирование входов, выходов, переходов на метку прыжков или возвратов. При инвертирова- нии на месте соединения этих элементов со схемой появляется кружок. Инверсию можно снять, выполнив команду еще раз. “ Дополнения” (Extras) “Set/Reset” Обозначение: Быстрый ввод: Команда доступна, когда выбран вход или выход элемента. Признак Set обозначается символом S, а Reset - символом R. VarOut1 получает значение TRUE, когда переменная VarIn1 истинна, и сохраняет свое значение, даже когда переменная VarIn1 уже ложна. VarOut2 получает значение FALSE, когда переменная VarIn2 истинна, и сохраняет свое значение, даже когда пока переменная VarIn1уже ложна. При многократном выполнении этой команды элемент последовательно меняется на Set, Reset и обычный. “ Дополнения” (Extras) “EN/ENO” Обозначение: Быстрый ввод: Добавить в выбранный блок (позиция курсора №3) вход EN и выход ENO. VarOut примет значение TRUE после выполнения ADD. Если далее condition изменится в FALSE, то ADD (и все, что за ним) более не будет выполняться. Обратите внимание, что при этом значения на его выходах не изменяются! То есть выход VarOut элемента AND остается в TRUE. В следующем примере показано, как можно использовать выход ENO. Редакторы CoDeSys CoDeSys V2.3 5-56 X инициализируется единицей, а Y нулем. Номер в правом углу блока показывает, в каком порядке будут выполняться команды. X будет увеличиваться на единицу, пока не достигнет значения 10. После этого на выходе блока LT (0) появится значение FALSE и выполнятся операторы SUB(3) и ADD(5). Теперь X снова устано- вится в единицу, а Y увеличивается на единицу, и LT(0) будет выполняться до тех пор, пока X меньше 10. Таким образом Y показывает, сколько раз переменная Х пробежала значения от 1 до 10. “ Дополнения” “Свойства…” (“Extras” “Properties…”) Выбрав функцию или функциональный блок, с помощью этой команды можно получить список по- стоянных входных параметров (VAR_INPUT CONSTANTS) и их значений. То же самое происхо- дит, если выбрать элемент (позиция курсора №1) и дважды щелкнуть по нему мышкой. Непосред- ственно на CFC диаграмме постоянные параметры не отображаются. Диалог “Настройка параметров”(Edit Parameters) Значения постоянных входных параметров (VAR_INPUT CONSTANT) можно изменять. Для этого выберите соответствующий параметр в столбце Value. Для подтверждения изменения значения на- жмите Кнопка OK сохраняет все преобразования. Данная функциональность и соответствующее объявление переменных с ключевым словом "VAR_INPUT CONSTANT" имеет существенное влияние только в редакторе CFC. В редакторе FBD все INPUT Редакторы CoDeSys CoDeSys V2.3 5-57 переменные всегда присутствуют в отображении элемента независимо от объявления VAR_INPUT или VAR_INPUT CONSTANT. Для текстовых редакторов также нет никакой разницы. Выбор элементов Для того чтобы выбрать элемент, нужно щелкнуть по нему мышкой (позиция курсора №1). Чтобы выбрать больше одного элемента, вы должны нажать клавишу Команда “Extras” “Select all” сразу выбирает все элементы. Перемещение элементов Один или несколько элементов можно перемещать с помощью клавиш перемещения, нажав клави- шу Копирование элементов Выбранные элементы можно скопировать в буфер с помощью команды “ Правка ” “ Копировать ” (“ Edit ” “ Copy ”) и вставить с помощью команды “ Правка ” “ Вставить ” (“ Edit ” “ Paste ”). Соединение элементов Вход одного элемента можно соединять с выходом другого. Выход одного элемента может соеди- няться сразу с несколькими входами других элементов. Есть несколько возможностей соединения входа элемента E2 с выходом элемента E1. Поместите указатель мыши на выход элемента E1 (позиция курсора №4), нажмите левую кнопку мыши и, удерживая ее, переместите курсор мыши на вход элемента E2 (позиция курсора №3) и от- пустите кнопку мыши. Линия соединения будет создана при перемещении курсора мыши. Рассмотрим другой способ: поместите курсор мыши на вход элемента E2, нажмите левую кнопку мыши и, удерживая ее, переместите курсор мыши на выход элемента E1. Мы получили такое же со- единение. Переместите один из элементов так, чтобы его вход (выход) соприкоснулся с выходом (входом) другого. Теперь можно как угодно перемещать элементы, и при этом они останутся соединенными. Если элемент E2 имеет свободный вход, то, переместив указатель мыши с выхода E1 на элемент E2, вы соедините вход и выход. Это произойдет, как только вы отпустите кнопку мыши. В случае, если E2 не имеет свободных входов, то будет добавлен новый, с которым и произойдет соединение. Этим же методом могут быть соединены вход и выход одного элементы (обратная связь). Аналогично соединяются входы и выходы макросов. Если при перемещении линий соединения вы вышли за пределы рабочей области, то окно автома- тически прокрутится. Для сложных типов проверка соответствия типов производится при компи- ляции, а для простых типов - при соединении. Если вход и выход нельзя соединить по причине не- соответствия типов, то изменится форма курсора. Редакторы CoDeSys CoDeSys V2.3 5-58 Удаление линий соединения Есть несколько способов удаления линии, соединяющей выход элемента E1 и вход элемента E2: Выберите выход элемента E1 или вход элемента E2 (позиция курсора №4) и нажмите Правка ” “ Удалить ” (“ Edit ” “ Delete ”). Если выход элемента E1 связан с не- сколькими входами, то будут удалены все соединения. Поместите указатель мыши на вход элемента E2 и, удерживая левую клавишу мыши, переместите его на свободную область экрана. Соединение будет удалено, как только вы отпустите кнопку мы- ши. Изменение соединений Соединение выхода элемента E1 и входа элемента E2 можно легко изменить на соединение выхода элемента E1 и входа элемента E3. Кликните мышкой на входе элемента E2 (позиция курсора №3), удерживая левую кнопку мыши, перемесите указатель на вход элемента E3 и опустите кнопку мы- ши. “ Дополнения” “Соединяющий маркер” (“Extras” “Connection mark”) Соединять элементы можно не только линией соединения, но и соединяющим маркером. В этом случае вход и выход соединяются с маркером, имеющим уникальное имя. В нашем примере вход и выход соединяются с помощью соединяющей линии. Теперь выберите на- чало линии соединения (позиция курсора №3) и выполните команду “ Дополнения ” “ Соединяю- щий маркер ” (“ Extras ” “ Connection mark ”). Схема превратится в эквивалентную ей, но в которой вход и выход соединены с помощью маркеров. По умолчанию маркер получит имя, начинающиеся с буквы “М”. Это имя можно изменить, причем при изменении имени маркера входа изменяется имя маркера выхода и наоборот. 1. Редактирование маркера на выходе: Если изменить имя маркера выхода, то изменятся имена всех соответствующих ему маркеров вхо- дов. Нельзя выбирать имя маркера, которое уже принадлежит другому маркеру. Оно должно быть уникальным. 2. Редактирование маркера на входе: Производится так же, как и в пункте 1. Для того чтобы перевести маркер в линию соединения, нужно выбрать маркер на выходе (позиция курсора №4) и снова выполнить команду “ Дополнения ” “ Соединяющий маркер ” (“ Extras ” “ Con- nection mark ”). Вставка входов/выходов “на лету” Выберите вход или выход элемента и введите какую-либо строку с клавиатуры. На схеме появится элемент вход или выход, связанный с выбранным входом или выходом элемента, и с именем пере- менной или константой, которую вы ввели. Порядок выполнения схемы Каждый элемент схемы обладает номером, который указывает порядок его выполнения. Редакторы CoDeSys CoDeSys V2.3 5-59 При создании или вставке элемента он автоматически получает номер в соответствии со следую- щим правилом: слева направо и сверху вниз. Номер элемента не изменяется при его перемещении. Последовательность действий определяет результат и должна быть изменена при необходимости. Номер отображается в правом верхнем углу элемента, если включен режим отображения. “ Дополнения” “Порядок” “Показать порядок” (“Extras” “Order” “Show order”) Команда определяет, показывать ли порядок выполнения схемы или нет. По умолчанию порядок выполнения показывается (в соответствующем пункте меню стоит галочка). Порядковый номер отображается в правом верхнем углу элемента. “ Дополнения” “Порядок” “Упорядочить топологически” (“Extras” “Order” “Order topologically”) Автоматическая нумерация элементов схемы в порядке слева направо и сверху вниз. Такой порядок называется топологическим. При этом не имеют значения соединения элементов схемы, а важно лишь расположение элементов. Данная команда применима также к отдельным выбранным элементам, которым присваиваются номера в топологическом порядке при выполнении этой команды. Каждому выбранному элементу присваивается номер так, чтобы он выполнялся перед следующим за ним в топологическом порядке элементом. Поясним это на примере: Схема до выполнения команды расстановки элементов в топологическом порядке Выбраны элементы с номерами 1, 2 и 3. При выполнении команды “ Упорядочить топологически ” ( Order topologically ) изменяются номера всех отмеченных элементов. Var3, находящийся перед меткой, получает номер 2, оператор AND получает номер 4, а переход на метку получает номер 5. Схема после выполнения команды расстановки элементов в топологическом порядке: Новый вставленный элемент, по умолчанию, получает номер в соответствии с его топологическим расположением. |