среда, 25 августа 2010 г.

Функциональные блоки в CX-Programmer

Сегодня разбирался с программированием функциональных блоков (FB) в CX-Programmer. До этого довелось использовать только готовые. Необходимо отметить, что можно использовать два типа блоков: созданных с использованием лестничных диаграмм (LAD) и написанных на языке высокого уровня (Structured text).
При первом запуске CX-Programmer  кажется, что можно использовать только релейно-контакторные схемы или как принято в иностранной литературе – лестничные диаграммы. Но в некоторых случаях использование релейно-контакторных схем приводит к сложным и громоздким алгоритмам. Гораздо проще все реализуется с помощью языка высокого уровня. Такая реализация пртменена при программировании функциональных блоков. В принципе можно всю программу написать в виде блоков и почти не использовать LAD.
В качестве языка программирования FB заявлен упрощенный Pascal. Во всяком случае, так написано в справке. По моему мнению этот язык больше похож на старинный БЕЙСИК.

 Выбор программирования функционального блока.

Для создания функционального блока нужно в инспекторе проекта нажать на строчку FunctionBlock, выбрать Insert Function Block, а затем нужный тип блока. После этого откроется окно состоящее из двух частей. В верхней части находится таблица описания переменных, в нижней окно текста программы. Описание переменных напоминает использование раздела Symbols для LAD. Отличие в том, что переменные необходимо описывать в обязательном порядке и их существует несколько типов:
Internal – внутренние переменные, используемые в работе блока.
Input – входные переменные, используемые для передачи информации в блок.
Output – выходные переменные.
External – стандартные переменные контроллера
В разделах Input и Output заранее прописаны переменные EN и ENO. Они используются для включения блока в схему LAD.

 Окно программирования функциональных блоков

Редактор FB в CX-Programmer не чувствителен к регистру и понимает русскоязычные символы.
После создания блока его нужно откомпилировать (Ctrl+F7) и вставить в схему путем нажатия клавиши F. Соединения выполняются только для входа EN и выхода ENO. Для всех остальных входов и выходов блока выполняется операция присваивания необходимого адреса в памяти контроллера.

 Вид функционального блока в окне LAD

Ниже приведен пример программы функционального блока, переключающего свой выход 1 через 5 изменений уровня сигнала на выходе. Если в качестве входа использовать стандартный осциллятор p_1s, то выход будет переключаться с частотой 5 Гц.

Пример программного кода: 
if FL<>aa1 then cnt:=cnt+1; end_if;
aa1:=fl;
If cnt = 5 then s3:=not(s3); cnt:=0; end_if;

суббота, 21 августа 2010 г.

Комплект LOGO! TD NEWS BOX

На днях получил учебный комплект LOGO! TD NEWS BOX. В этом комплекте, прежде всего, привлекла комплектация. Там есть практически все необходимое для работы с программируемыми реле SIEMENS LOGO! При этом цена за комплект, несколько ниже, чем если брать все элементы по отдельности.
Первое, что обратило на себя внимание - большой пластиковый чемодан. Его размеры много больше чем необходимо для набора.
 Чемодан LOGO! TD NEWS BOX 

В чемодане лежат:
- базовый блок  без дисплея и кнопок LOGO! 12/24RCo
- текстовая панель LOGO! TD с кабелем, разъемом питания и элементами крепления
- USB-кабель для программирования  LOOG! с драйверами
- CD с программным обеспечением
- DVD с документацией
- буклет про набор на английском языке
- книга по программированию LOGO! на английском языке
- отвертка

 Комплект набора


Меня больше всего интересовали USB-кабель и текстовая панель. Первый необходим для программирования LOGO! с ноутбука, без использования переходника USB-COM. Все доступные мне кабели имеют COM интерфейс, что сейчас очень не удобно.
Текстовая панель LOGO! TD - тот элемент, которого очень не хватало в линейке LOGO! Ее использование позволяет организовать нормальный человеко-машинный интерфейс, что раньше было практически невозможно. Порадовало, что в панели установлен русский язык.
Наличие панели позволило SIEMENS укомплектовать набор бездисплейным базовым блоком. Решение понятное, но для целей изучения LOGO! не совсем оправданное. Основное достоинство программируемых реле (после стоимости) - возможность программирования их без компьютера. Также на "слепом" блоке нельзя посмотреть состояние входов/выходов, что затрудняет наладку и ремонт систем. Еще одним недостатком набора является отсутствие в комплекте блока питания. Наличие последнего позволило бы начать работу немедленно, без поиска источника напряжения 24В.
  Фото набора с диска.

DVD с документацией  содержит множество полезной информации, к сожалению на иностранных языках. На русском языке есть только инструкция по работе с LOGO!, что в принципе достаточно. Кроме документации на диске есть видео по работе с LOGO!, много примеров применения с файлами алгоритмов работы. Также представлены габаритные чертежи модулей и различные фото. Мне понравились учебные комплексы на базе LOGO! и моделей оборудования.
 Фото одного из учебных комплексов от SIEMENS.

Очень полезной вещью оказалась отвертка, хотя качество ее исполнения не самое высокое. Модули LOGO! имеют небольшие отверстия для доступа к винтам клемников. Раньше приходилось специально брать  миниатюрную отвертку, так как все остальные в отверстия не пролазили.