Tag Archives: программирование ПЛК

Менеджер библиотек (Library Manager)

Менеджер библиотек (Library Manager)

Менеджер библиотек содержит список всех библиотек, которые связаны с проектом. РОU, типы данных и глобальные переменные библиотек можно использовать так же, как и определенные пользователем РОU типы данных и глобальные переменные. Информация о включенных библиотеках хранится в проекте, и ее можно увидеть в диалоге ‘Informations about external library’. Для вызова этого диалога выберите нужную библиотеку в Менеджере библиотек и дайте команду ‘Extras’ ‘Properties’. Менеджер библиотек открывается командой «Window» «LibraryManager».

 

Менеджер библиотек CoDeSys

Менеджер библиотек CoDeSys

Использование менеджера библиотек

Окно менеджера библиотек разделено на 3 или 4 области. Список библиотек, соединенных с проектом, находится в левой верхней области. Ниже, в зависимости от выбранной вкладки, показаны переменные РОU, типы данных или глобальные переменные выделенной библиотеки. Папки открываются и закрываются двойным щелчком или нажатием клавиши <Enter>. Перед открытой папкой стоит плюс, перед закрытой – минус. Если выбрать РОU, то в правой верхней части экрана появится раздел объявлений этого РОU, а в нижней части – графическое изображение в форме блока с входами и выходами. При выборе типов данных и глобальных переменных в правой части окна выводится их объявление.

Стандартная библиотека

Библиотека «standard.lib» доступна всегда. Она содержит все функции и функциональные блоки, требуемые стандартом МЭК 61131-3. Разница между стандартными функциями и операторами заключается в том, что операторы признаются неявно системой программирования, а стандартные РОU должны быть присоединены к проекту (standard.lib). Исходный текст этих POU находится в С-библиотеке и является компонентом CoDeSys.

Библиотеки, определенные пользователем

Если проект откомпилирован без ошибок, то его можно сохранить как библиотеку. Сам проект при этом не изменится. К созданной библиотеке можно обращаться так же, как и к стандартной библиотеке. Для библиотек, полностью реализованных в CoDeSys, используйте команду сохранения проекта как Internal Library. Если вы планируете реализовать программные компоненты, объявленные в проекте, на других языках программирования (например С), сохраните проект как внешнюю библиотеку (External Library). Вы получите файл библиотеки и дополнительный заголовочный файл с расширением «*.h». Это заголовочный файл С. Он содержит объявления POU, типов данных и глобальных переменных, доступных в данной библиотеке. Если в проекте используется внешняя библиотека, то в режиме эмуляции работает реализация компонентов, описанная в CoDeSys. В реальный ПЛК загружается компилированный C код. Если вы хотите добавить информацию о лицензировании в библиотеку, нажмите кнопку Edit license info… и заполните соответствующие поля в диалоге ‘Edit Licensing Informationen’. См. ‘File’ ‘Save as…’ и отдельный документ «Менеджер лицензирования CoDeSys».

 

«Insert» «Additional Library»

Этой командой можно присоединять библиотеку к проекту. В открывшемся диалоговом окне выберите нужную библиотеку с расширением «*.lib». Название библиотеки появится в Менеджере библиотек, и ее объектами можно будет пользоваться как определенными пользователем объектами.

Пути поиска библиотек зависят от состава директорий, определенных в опциях проекта. Если вы присоединяете библиотеку из другой директории, то библиотека будет добавлена в форме полного имени файла. Например: вы присоединяете библиотеку standard.lib из директории «D:codesyslibrariesstandard».

Если данная директория определена в опциях проекта, то в менеджере проекта будет указано: «standard.lib <дата и время файла >».

Если в опциях проекта определена директория «D:codesyslibraries», то в менеджере проекта будет указано: «standardstandard.lib <дата и время файла >».

Если в опциях проекта нет определения директории, то в менеджере проекта будет указано: «D:codesyslibrariesstandardstandard.lib <дата и время файла >».

При очередном открытии проекта поиск библиотек будет идти в соответствии с записями в менеджере библиотек. Поэтому, если здесь указано только имя файла, то поиск библиотеки будет идти по директориям, указанным в опциях проекта.

Если вы включили лицензированную библиотеку и соответствующая лицензия отсутствует, то вы получите сообщение о том, что данная библиотека работает в демонстрационном режиме или о том, что она не лицензирована для выбранной целевой платформы. В это время вы еще можете проигнорировать сообщение или выполнить необходимую процедуру лицензирования. Нарушение лицензии вызовет сообщение об ошибке при компиляции. В этом случае двойным щелчком мыши вы можете открыть диалог ‘License information’.

 

Удаление библиотеки

Удаление библиотеки из проекта в Менеджере библиотек происходит по команде «Edit» «Delete».

 

‘Extras’ ‘Properties’

Открывает диалог ‘Informations about internal (или external) library’. Для внутренних библиотек вы найдете все данные, которые были включены в информацию проекта Project Info (включая информацию о лицензировании). Для внешних библиотек отображается имя библиотеки и путь к ее файлам.

 

Язык последовательных функциональных схем (SFC)

Язык последовательных функциональных схем (SFC)

SFC – это графический язык, который позволяет описать хронологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последовательность работы определяется условиями переходов между шагами.

Пример SFC диаграммы:

 

пример программы SFC

пример программы SFC

 

Шаг

SFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов:

  • Шаг простого типа (упрощенный SFC) может включать единственное действие. Графический флажок (небольшой треугольник в верхнем углушага) показывает, пустой шаг или нет.
  • МЭК шаг (стандартный SFC) связан с произвольным числом действий или логических переменных. Связанные действия располагаются с правой стороны от шага.

 

Действие

Действие может содержать список инструкций на IL или ST, схемы на FBD или LD, или снова схемы на SFC. При использовании простых шагов действие всегда связывается с этим шагом. Для того, чтобы редактировать действие, необходимо дважды щелкнуть левой клавишей мышки на шаге. Или выделить шаг и выбрать команду меню «Extras» «ZoomAction/Transition». Помимо основного действия, шаг может включать одно входное и одно выходное действие. Действия МЭК шагов показаны в Организаторе Объектов, непосредственно под вызывающей их POU. Редактирование действия запускается двойным щелчком мыши или клавишей <Enter>. Новые действия добавляются командой главного меню «Project» «Add Action». Вы можете сопоставить одному шагу до 9 действий.

 

Входное или выходное действие

В шаг можно добавить входное и выходное действие.

Входное действие выполняется один раз при активизации шага, выходное – при деактивизации. Шаг, который имеет входное действие, обозначается буквой «Е» в левом нижнем углу, шаг с выходными действиями – буквой «Х» в правом нижнем углу.

Входные и выходные действия могут описываться на любом языке. Для того чтобы отредактировать входное или выходное действие, надо дважды щелкнуть мышкой в соответствующем углу шага.

Переход/условие перехода

Между шагами находятся так называемые переходы. Условием перехода может быть логическая переменная или константа, логический адрес или логическое выражение, описанное на любом языке. Условие может включать серию инструкций, образующих логический результат, в виде ST выражения (т.е.(i<= 100) AND b) либо на любом другом языке. Но условие не должно содержать присваивания, вызов программ и экземпляров функциональных блоков.

В редакторе SFC условие перехода можно записать непосредственно около символа перехода либо в отдельном окне редактора для ввода условия  Условие заданное окне редактора предпочтительнее.

 

Активный шаг

После вызова SFC POU начальный шаг (шаг, выделенный двойной рамкой) выполняется первым. Шаг, выполняемый в данный момент, называется активным. Действия, связанные с активным шагом, выполняются один раз в каждом управляющем цикле. В режиме online активные шаги выделяются синим цветом. Следующий за активным шагом шаг станет активным, только когда условие перехода к этому шагу будет истинно.

В каждом управляющем цикле будут выполнены действия, содержащиеся в активных шагах. Далее проверяются условия перехода, и, возможно, уже другие шаги становятся активными, но выполняться они будут уже в следующем цикле.

 

Шаг МЭК

В отличие от упрощенного SFC МЭК шаги могут включать несколько действий. Действия МЭК шагов описываются отдельно от них и могут неоднократно использоваться в пределах данного POU, для чего их надо связать с шагом с помощью команды главного меню «Extras» «Associate action».

Кроме действий с шагом, можно связывать логические переменные.

С помощью так называемых классификаторов действия и логические переменные могут активироваться и деактивироваться, возможно, с задержкой времени. Например: действие может продолжать работу, даже если запустивший его шаг утратил активность; с помощью классификатора S (установка) можно программировать параллельные процессы и т.д. Логическая переменная, связанная с шагом, получает значение ИСТИНА при каждой активации шага. Действие, связанное с МЭК шагом, описывается справа от него в блоке, состоящем из двух частот. Левая часть этого блока содержит классификатор, возможно, с константой времени, а правая часть содержит имя действия или логической переменной.

В режиме online все активные действия выделяются синим цветом, подобно активным шагам, благодаря чему достаточно легко проследить ход выполнения процесса после каждого управляющего цикла.

При выполнении шага сначала производится деактивация действий, затем выполняются активные действия в алфавитном порядке. Для того чтобы использовать шаги с МЭК действиями, необходимо установить опцию «Extras» «Use IEC-Steps» и подключить к проекту специальную библиотеку Iecsfc.lib. В Организаторе объектов действия показаны непосредственно под SFC POUs, которые их вызывают. Новые действия можно создавать с помощью команды «Project» «Add Action«.

Альтернативная ветвь

Две и более ветви SFC могут быть альтернативными. Каждая альтернативная ветвь должна начинаться и заканчиваться переходом. Альтернативные ветви могут содержать параллельные ветви и другие альтернативные ветви. Альтернативная ветвь начинается горизонтальной линией (начало альтернативы), а заканчивается горизонтальной линией (конец альтернативы) или переходом на произвольный шаг (jump). Если шаг, который находится перед линией альтернативного начала, активен, то первые переходы альтернативных ветвей начинают оцениваться слева направо. Таким образом, первым активируется тот шаг, который следует за первым слева истинным переходом.

Параллельные ветви

Две и более ветви SFC могут быть параллельными. Каждая параллельная ветвь должна начинаться и заканчиваться шагом. Параллельные ветви могут содержать альтернативные ветви и другие параллельные ветви. Параллельная ветвь наносится двойной горизонтальной линией (параллельное начало) и заканчивается двойной горизонтальной линией (конец параллели) или переходом на произвольный шаг (jump). Если шаг активен, условие перехода после этого шага истинно и за этим переходом следуют параллельные ветви, то активируются первые шаги этих ветвей. Эти ветви выполняются параллельно друг другу. Шаг, находящийся после параллельных ветвей, становится активным только тогда, когда все предыдущие шаги активны и условие перехода истинно.

Переход на произвольный шаг (Jump)

Переход на произвольный шаг — это соединение на шаг, имя которого указано под знаком «jump». Такие переходы нужны для того, чтобы избежать пересекающихся и идущих вверх соединений.

 

Мой блог находят по следующим фразам

Язык релейных диаграмм (LD)

Язык релейных диаграмм (LD)

Язык релейных или релейно-контактных схем (РКС) – графический язык, реализующий структуры электрических цепей. Лучше всего LD подходит для построения логических переключателей, но достаточно легко можно создавать и сложные цепи — как в FBD. Кроме того, LD достаточно удобен для управления другими компонентами POU.

Диаграмма LD состоит из ряда цепей.

Слева и справа схема ограничена вертикальными линиями — шинами питания. Между ними расположены цепи, образованные контактами и обмотками реле, по аналогии с обычными электронными цепями. Слева любая цепь начинается набором контактов, которые посылают слева направо состояние «ON» или «OFF», соответствующие логическим значениям ИСТИНА или ЛОЖЬ. Каждому контакту соответствует логическая переменная. Если переменная имеет значение ИСТИНА, то состояние передается через контакт. Иначе правое соединение получает значение выключено («OFF»).

Пример релейной диаграммы

Контакт

Контакты обозначаются двумя параллельными линиями и могут иметь состояния «ON» или «OFF». Эти состояния соответствуют значениям ИСТИНА или ЛОЖЬ. Каждому контакту соответствует логическая переменная. Если значение переменной ИСТИНА, то контакт замкнут. Контакты могут быть соединены параллельно, тогда соединение передает состояние «ON», когда хотя бы одна из ветвей передает «ON».Если контакты соединены последовательно, то для того, чтобы соединение передало «ON», необходимо, чтобы оба контакта передавали «ON». Это соответствует электрической параллельной и последовательной схеме. Контакт может быть инвертируемым. Такой контакт обозначается с помощью символа |/| и передает состояние «ON», если значение переменной ЛОЖЬ.

 

Обмотка

В правой части схемы может находиться любое количество обмоток (реле), которые обозначаются круглыми скобками (). Они могут соединяться только параллельно. Обмотка передает значение соединения слева направо и копирует его в соответствующую логическую переменную. В целом цепь может быть либо замкнутой (ON), либо разомкнутой (OFF). Это как раз и отражается на обмотке и соответственно на логической переменной обмотки (ИСТИНА/ЛОЖЬ). Обмотки также могут быть инверсными (в примере — %QX3.0). Если обмотка инверсная (обозначается символом (/)), тогда в соответствующую логическую переменную копируется инверсное значение.

Функциональные блоки в LD

Кроме контактов и обмоток, в LD можно использовать функциональные блоки и программы. Они должны иметь логические вход и выход и могут использоваться так же, как контакты.

SET и RESET обмотка

Обмотки могут быть с «самофиксацией» типов SET и RESET. Обмотки типа SET обозначаются буквой «S» внутри круглых скобок (S). Если соответствующая этой обмотке переменная принимает значение ИСТИНА, то она навсегда (до сброса R) сохраняет его. Обмотки типа RESET обозначаются буквой R. Если соответствующая переменная принимает значение ЛОЖЬ, то она навсегда (до установки S) сохраняет его.

 

LD в качестве FBD

Весьма вероятно, что при работе с LD вы захотите с помощью контакта управлять другими POU. Во-первых, можно использовать обмотку для передачи значения глобальной переменной, которая будет использоваться в другом месте. Кроме того, можно вставить вызов прямо в схему LD. Такой POU может быть оператором, функцией, программой или функциональным блоком, который имеет добавочный вход, обозначаемый EN. Вход EN всегда логического типа, и POU выполняется, только когда значение EN=ИСТИНА. POU встраивается в схему параллельно обмоткам, и вход EN соединяется ответвлением. Использование таких POU делает LD схему похожей на FBD схему.

Функциональный блок на языке LD

 

Мой блог находят по следующим фразам

Что такое CoDeSys

CoDeSys это современный инструмент для программирования контроллеров (CoDeSys образуется от слов Controllers Development System).

CoDeSys предоставляет программисту удобную среду для программирования контроллеров на языках стандарта МЭК 61131-3. Используемые редакторы и отладочные средства базируются на широко известных и хорошо себя зарекомендовавших принципах, знакомых по другим популярным средам профессионального программирования (такие, как Visual C++).

С чего начинается программный проект?

Прежде всего нужно дать проекту новое имя, оно же послужит и названием файла проекта. Первый программный компонент (POU Program Organization Unit) помещается в новый проект автоматически и получает название PLC_PRG. Именно с него и начинается выполнение процесса (по аналогии с функцией main в языке С), из него будут вызываться другие программные блоки (программы, функции и функциональные блоки).

Нет необходимости писать вручную текст для PLC_PRG, поскольку конфигурация задачи определяется на вкладке проекта Task Configuration.

Проект содержит ряд разнородных объектов POU, данных разных типов, элементов визуализации и ресурсов. Организатор объектов (Object Organizer) управляет списком всех объектов Вашего проекта.

Как создать собственный проект?

Для начала вы определяете конфигурацию ПЛК в соответствии с аппаратными средствами своего контроллера. Затем вы создаете программные компоненты, необходимые для решения проблемы. Далее вы пишете программный код для созданных компонентов на выбранных языках. Сразу после завершения программирования, вы компилируете проект и исправляете ошибки, если они

есть.

Как проверить проект?

Когда все ошибки устранены, можно приступить к отладке. Включите флажок эмуляция (simulation) и «подключитесь» к контроллеру. Теперь вы в режиме Online. Откройте окно с конфигурацией ПЛК (PLC Configuration) и проверьте правильность выполнения проекта. Для этого измените вручную входные данные и убедитесь, что выходы контроллера отреагировали нужным образом. Если необходимо, вы можете наблюдать значения переменных в программных компонентах. Используя менеджер просмотра и заказа значений переменных (короче, менеджер рецептов) Watch and Receipt Manager, вы сможете задать список переменных, значения которых необходимо наблюдать.

Отладка

В случае ошибок в работе кода вы можете задать точки останова. Когда процесс остановлен в определенной точке, вы можете просмотреть значения переменных проекта в данный момент времени. Выполняя проект в пошаговом режиме (single step), вы можете проверить логическую корректность своих программ.

Дополнительные возможности режима Online

В процессе отладки вы можете устанавливать значения переменных программ, задавать фиксированные значения на входы и выходы контроллера, контролировать последовательность исполнения процесса и определить место в программе, которое сейчас выполняется. Используя трассировку (Sampling Trace), отслеживать в графическом представлении изменения значений переменных за определенный промежуток времени.

Когда проект закончен и отлажен, переходите к окончательной доводке в рабочих условиях на реальном «железе». Естественно, при этом полностью доступны все отладочные функции.

Дополнительные возможности CoDeSys

Весь проект может быть экспортирован в текстовый файл и сохранен в печатном виде. Средства коммуникации CoDeSys включают символьный и DDE интерфейсы. Коммуникационный сервер, OPC и DDE серверы входят в стандартный пакет поставки. Путем выбора целевой платформы CoDeSys позволяет использовать один проект в различных системах.

Сетевые переменные общего доступа и Менеджер параметров обеспечивают средства сетевого взаимодействия контроллеров.

ENI: инжиниринговый интерфейс применяется совместно с любыми системами управления версиями через автономный ENI сервер. Программные компоненты CoDeSys сохраняются в единой базе данных, доступной другим пользователям. ENI сервер служит хранилищем конструкторских данных не только для CoDeSys, но и для сторонних программных инструментов.

CoDeSys позволяет задействовать «фирменные» программные инструменты. Файлы, включающие исполняемый код, могут быть скомпонованы с кодом проекта и загружены в контроллер.

Созданная в CoDeSys визуализация может выполняться не только в среде программирования, но и в целевой платформе или в Web. Это позволяет контролировать процесс и управлять им через Интернет.

 

Мой блог находят по следующим фразам

Задача на изучение блоков стандартных библиотек (управление освещением)

Условие задачи

Условие задачи

Условие задачи

На входе установлены два дискретных датчика: один снаружи комнаты, другой внутри. Когда срабатывает сначала внешний датчик, затем внутренний, это означает, что человек зашел в комнату.Когда срабатывает сначала внутренний датчик, затем внешний, это означает, что человек вышел из комнаты.

Задача1: Если человек вошел – включить свет, Если человек вышел – выключить свет.

Задача2: Необходимо считать количество людей, заходящих и выходящих из комнаты.

Пока в комнате остается хотя бы один человек, свет должен быть включен.

Реализовать задачу управления светом комнате с помощью компонентов стандартной библиотеки. Свет должен выключаться через 5 секунд, после того как последний человек покинет комнату.

 

Рисунок 1 Визуализация задачи

Рисунок 1 Визуализация задачи

Рисунок 2 Добавление стандартных библиотек

Рисунок 2 Добавление стандартных библиотек

Программа

Область переменных:

PROGRAM PLC_PRG

VAR vh_sen, vyh_sen:BOOL;(*сигналы с сенсоров на входной двери*)

light:BOOL;(*сигнал включения света в комнате*)

ludi:INT;(*число людей в комнате*)

vh_sen_pred, vyh_sen_pred:BOOL;(*вспомогательные переменные: состояния сенсоров на предыдущем шаге*)

rtr1: R_TRIG;(*детекторы передних фронтов*)

rtr2: R_TRIG;

tt2: TOF;(*таймер для организации задержки выключения*)

tzad:TIME;(*текущее время задержки*)

END_VAR

Рисунок 3 Вид программы на языке СFC с использованием стандартных библиотек

Рисунок 3 Вид программы на языке СFC с использованием стандартных библиотек

Мой блог находят по следующим фразам

Система пожарной сигнализации здания

В здании две одинаковые комнаты.

В каждой комнате установлено три пожарных датчика, кнопка ручного включения сигнализации и кнопка ручного отключения сигнализации. Для каждой комнаты предусмотрена сигнальная лампа. Сигнализация пожара является общей для обеих комнат.

Если в комнате срабатывает хотя бы один из датчиков, то загорается сигнальная лампа для соответствующей комнаты. Лампа гаснет, если все датчики в комнате отключены.

Если в комнате срабатывает любые два из трех датчиков, то включается пожарная сигнализация. Сигнализация работает до тех пор, пока ее не отключат соответствующей кнопкой.

Сигнализация может быть включена кнопкой включения вне зависимости от состояния датчиков.

Рисунок 1 Схема задачи

Рисунок 1 Схема задачи

Рисунок 2 Добавление функции или функционального блока

Рисунок 2 Добавление функции или функционального блока

Рисунок 3 Добавление функции срабатывания 2-х датчиков из 3-х

Рисунок 3 Добавление функции срабатывания 2-х датчиков из 3-х

Рисунок 4 Добавление функционального блока обработки сигналов для комнаты

Рисунок 4 Добавление функционального блока обработки сигналов для комнаты

Подпрограммы.

 

Функция выбора 2 из 3 (язык ST)

Назначение: функция имеет сигнал типа логической 1 на выходе при наличии на входе не менее 2 сигналов типа логической 1.

Область переменных:

FUNCTION log2_3 :BOOL

VAR_INPUT

in1, in2,in3: BOOL;(*входы функции*)

END_VAR

VAR

END_VAR

Программа:

IF (in1 AND in2)OR((in1 AND in3))OR(in2 AND in3) THEN log2_3:=1;

ELSE log2_3:=0;

END_IF;

Функциональный блок обработки сигналов для 1 комнаты.

 

Область переменных:

FUNCTION_BLOCK room

VAR_INPUT

dat1,dat2,dat3:BOOL;(*сигналы с датчиков пожарной безопасности в комнате*)

knop_trevog, sbros_trevog:BOOL;(*внешние  кнопки включения и сброса тревоги*)

logika23:BOOL;(*сигнал о срабатывании 2 пожарных датчиков*)

END_VAR

VAR_OUTPUT

sign_lamp, sign_trevog:BOOL;(*сигнальная лампа комнаты и сигнал тревоги*)

END_VAR

VAR

END_VAR

Рисунок 5 Функциональный блок обработки сигналов для комнаты на языке LD

Рисунок 5 Функциональный блок обработки сигналов для комнаты на языке LD

Основная программа:

 

Область переменных:

PROGRAM PLC_PRG

VAR

dat11,dat12,dat13,dat21,dat22,dat23:BOOL;(*датчики пожарной сигнализации в комнатах*)

sign1,sign2:BOOL;(*сигнальные лампы комнат*)

alarm:BOOL;(*сигнал тревоги*)

trevog1, sbros1,trevog2, sbros2:BOOL;(*внешние кнопки тревоги и сброса тревоги*)

room1: room;               (*блок пожарной сигнализации 1 комнаты*)

room2: room;               (*блок пожарной сигнализации 2 комнаты*)

END_VAR

Рисунок 6 Основная программа на языке CFC

Рисунок 6 Основная программа на языке CFC

Рисунок 7 Пример организации визуализации задачи

Рисунок 7 Пример организации визуализации задачи

 

Мой блог находят по следующим фразам

Задача для изучения языка релейной логики (управление освещением)

Условие задачи

Условия задачи

Условия задачи

На входе установлены два дискретных датчика: один снаружи комнаты, другой внутри. Когда срабатывает сначала внешний датчик, затем внутренний, это означает, что человек зашел в комнату.Когда срабатывает сначала внутренний датчик, затем внешний, это означает, что человек вышел из комнаты.

Задача1: Если человек вошел – включить свет, Если человек вышел – выключить свет.

Задача2: Необходимо считать количество людей, заходящих и выходящих из комнаты.

Пока в комнате остается хотя бы один человек, свет должен быть включен.

Программа управления в POU

Рисунок 1 Выбор языка программирования

 

Рисунок 1 Выбор языка программирования
Рисунок 2 Переменные, используемые для решения задачи

Рисунок 2 Переменные, используемые для решения задачи

Рисунок 3 Вид программы на языке LD

Рисунок 3 Вид программы на языке LD

Рисунок 4 Вид программы на языке CFC

Рисунок 4 Вид программы на языке CFC

Визуализация задачи

 

 

Рисунок 5 Общий вид визуализации для задачи о включении света

Рисунок 5 Общий вид визуализации для задачи о включении света

Рисунок 6 Вид визуализации после запуска программы

Рисунок 6 Вид визуализации после запуска программы

Настройки отдельных объектов визуализации:

Входной сенсор

Рисунок 7 Организация связи кнопки на визуализации и переменной программы

Рисунок 7 Организация связи кнопки на визуализации и переменной программы

Рисунок 8 Выбор цветов заливки во включенном и выключенном режиме

Рисунок 8 Выбор цветов заливки во включенном и выключенном режиме

Рисунок 9 Назначение переменной изменения цвета

Рисунок 9 Назначение переменной изменения цвета

Настройки для кнопки выходного сенсора аналогичны.

Лампа

Рисунок 10 Назначение переменной переключения цветов

Рисунок 10 Назначение переменной переключения цветов

Рисунок 11 Создание подписи объекта "ЛАМПА"

Рисунок 11 Создание подписи объекта "ЛАМПА"

Рисунок 12 Выбор цветов заливки во включенном и выключенном режиме

Рисунок 12 Выбор цветов заливки во включенном и выключенном режиме

Счетчик

Рисунок 13 Настройка вывода текста счетчика

Рисунок 13 Настройка вывода текста счетчика

Рисунок 14 Организация связи значения счетчика на визуализации и переменной программы

Рисунок 14 Организация связи значения счетчика на визуализации и переменной программы

 

Мой блог находят по следующим фразам

Управление освещением в длинном коридоре (язык LD)

Есть длинный коридор. Для управления освещением в коридоре используется три переключателя:

  • Msw- главный переключатель
  • Bsw – переключатель в начале коридора.
  • Esw – переключатель в конце коридора.

Подача питания в коридор осуществляется с помощью переключателя Msw.

Необходимо решить задачу включения/выключения света с помощью любого из двух переключателей Bsw и Esw, установленных в разных концах коридора.

Т.е. при входе в коридор с одной стороны необходимо переключить Bsw, чтобы зажечь свет. На выходе с другой стороны коридора необходимо переключить Esw, чтобы свет погас. И наоборот.

Рисунок 1 Схема задачи

Рисунок 1 Схема задачи

Решение задачи.

Область переменных

PROGRAM PLC_PRG

VAR Msw, bsw, esw:BOOL;(*переключатели главный, в начале и конце коридора соответственно*)

sost:BOOL; (*вспомогательная булева переменная*)

light:BOOL; (*включение *)

END_VAR

Программа на языке ST

sost:=esw XOR bsw;

IF sost AND msw THEN light:=TRUE;

ELSE light:=FALSE;

END_IF;

Программа на языке LD

 

 

 

 

Программа на языке LD

Программа на языке LD

 

 

Пример можно скачать  здесь

 

Мой блог находят по следующим фразам

Мой блог находят по следующим фразам

Стандарты программирования ПЛК

Абревеатура ПЛК расшифровываеться как программируемый логический контроллер. Исходя из названия, становиться понятно, что без программирования ПЛК контроллер не несет в себе никакой практической ценности. Можно конечно его приспособить как подставку для чая или попробовать забивать им гвозди, но все же основные свои задачи он выполять не сможет. Какая основная задача ПЛК? Это выполнение специальной программы для управления каким-то заданным технологическим процессом.

Промышленный контроллер может исполнять практически любые программы. Современные промышленные контролеры позволяют разработчику создавать программы самой разнообразной структуры, выполняющих различные функции. При этом нет принципиальной разницы в чем именно заключаются эти процессы. Возникает очевидный вопрос — есть ли какие-то ограничения на программы в промышленных контролерах? Конечно они есть. Значимым ограничением в таких программах является наличие свободных ресерсов самого промышленного контроллера.

Кто выполняет програмирование ПЛК? Специально обученный инженер-программист. Каким образом он это делает? Через комппьютер или специальный программатор, подключенный к заданому контродеру по сети. Еще для программирования необходим специальный пакет разработки. В большинстве случаев такие пакеты предоставляются за отдельную плату. Гораздо реже такие пакеты входят в состав комплексного програмного обеспечения для эксплуатации и инсталяции системы управления предприятием.

Современные средства программирования промышленных контроллеров дают разработчику много разнообразных возможностей. НАпример:

1. Различные библиотеки, в состав которых входят готовые процедуры и шаблоны, различные функциональные блоки. такие библиотеки значительно ускоряют процесс написания программы для ПЛК.

2. Специальные программые комплексы для отладки программ. В их состав входит программы, которые позволяют симулировать выполнение виртуальной программы на ПЛК на заданном компьюторе перед заливкой на конттроллер.

3. Средства для документрования написанной программы в соответствии со стандартами. Это позволяет ускорить внесение каких-либо изменений в будушем.

Для программирования большинства современных контроллеров можно использовать до шести основных языков программирования. Для регламентирования которых существует специальный международный стандарт IEC(МЭК) 61131, Этот стандарт был разработан Международной Электротехнической Комиссий). Этот стандарт состоит из восьми частей. В третьей части стандарта (IEC 61131-3) описываются языки программирования промышленных конроллеров.

Для чего был создан данный стандарт? Как и все стандарты он был создан для навередния порядка в среде программирования ПЛК контроллеров. С его помощью планированли создать ряд унифицированных и аппаратно-независимых языков, чтобы организовать обратную совместимость программ между различными различными программными платформами. Также избавить разработчика от изучения нового языка программирования при переходе на использование нового промышденного контроллера.

И что же мы имеем в реальном времени? К сожалению, цели стандарта так и не были достигнуты. Все производители промышленных контролеров сопровождают их своей средой программирования. Такая среда как правило несовместима с другими — ни о какой крос-платформеннойти написанных программ не может быть и речи. Возможно, таким образом производителя видно пытаются снизить конкуренцию, на рынке ПЛК, простимулировать покупать только их контоллеры. Большое количество сред для программирования ПЛК, как следствие, нижает качество их исполнения, т.к. каждый пытается вновь изобрестивелосипед. Стандарт стандарт IEC 61131 явлется скорее ориентиром, чем жестким ограничением для большинства разработчиков промышленных контроллеров.

P.S. дизайн сайта цена зависит от задач, которые он должен выполнять, и от предъявляемых к нему требований. Разработка логотипа не входит в стоимость создания дизайна сайта.

Задача на переключатели и лимиты(СFC)

Два насоса работают поочередно на одну магистраль. Переключение работающего насоса осуществляет оператор с цифровой панели (задает номер работающего насоса либо отключает заданием 0). При ошибке оператора в большую сторону работает 2 насос, в меньшую — насосы отключаются. На панель управления выдается текстовое сообщение о состоянии системы.

Визуализация задачи

Визуализация задачи

Программа на языке CFC

Программа на языке CFC

 

Мой блог находят по следующим фразам