Codesys руководство пользователя по программированию плк в codesys

Предложите, как улучшить StudyLib

(Для жалоб на нарушения авторских прав, используйте

другую форму
)

Ваш е-мэйл

Заполните, если хотите получить ответ

Оцените наш проект

1

2

3

4

5

PDF-файл Codesys (Руководство пользователя по программированию ПЛК в Codesys) Управление процессами и оборудованием ОМД (МТ-6) (84519): Книга — 9 семестр (1 семестр магистратуры)Codesys (Руководство пользователя по программированию ПЛК в Codesys) — PDF (84519) — СтудИзба2021-01-152021-01-15СтудИзба

Описание файла

PDF-файл из архива «Руководство пользователя по программированию ПЛК в Codesys»,
который расположен в категории «».
Всё это находится в предмете «управление процессами и оборудованием омд (мт-6)» из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана.
Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Руководство пользователяпо программированию ПЛКвCoDeSys 2.3Copyright  1994, 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006 3S — Smart Software Solutions GmbHAll rights reserved.Copyright  2003, 2004, 2005, 2006 ПК Пролог (Русская редакция)Текст данного документа тщательно проверен. Однако практически невозможно гарантировать абсолютное отсутствие ошибок. Мы будем благодарны вам за замечания и предложения по улучшению текста и содержимогодокумента.TrademarkIntel is a registered trademark and 80286, 80386, 80486, Pentium are trademarks of Intel Corporation.Microsoft, MS and MS-DOS are registered trademarks, Windows is a trademark of Microsoft Corporation.Документ подготовлен:3S — Smart Software Solutions GmbHMemminger Straße 151D-87439 KemptenТел.:+49 831 5 40 31 — 0Факс: +49 831 5 40 31 — 50Русская редакция:ПК Пролог21400, Россия, г.

Смоленск, ул. Октябрьской революции, 9Тел.:+7 4812 38-29-31Тел./Факс:+7 4812 65-81-71Текст данного документа опирается на международную версию CoDeSys с английским интерфейсом. Наименования команд, тексты диалогов и сообщений соответствуют указанной версии.Последнее обновление 02.02.2006Редакция RU 2.4, для CoDeSys V2.3.6.xCoDeSys V2.31-2Оглавление1Краткое представление CoDeSys1-11.1 Что такое CoDeSys1.2 Представление о работе в CoDeSys1.3 Состав базовой пользовательской документации по CoDeSys2Что есть, что в CoDeSys1-11-11-32-12.1 Компоненты проекта2.2 Языки программирования2.2.1Список инструкций (IL)2.2.2Модификаторы и операторы IL2.2.3Структурированный текст (ST)2.2.4Язык последовательных функциональных схем (SFC)2.2.5Язык функциональных блоковых диаграмм (FBD)2.2.6Непрерывные функциональные схемы (CFC)2.2.7Язык релейных диаграмм (LD)2.3 Отладка и online функции3Пишем простой пример2-12-92-102-102-112-182-232-232-242-253-13.1 Блок управления светофором3.2 Визуализация примера4Работа в системе программирования CoDeSys4.14.24.34.44.54.64.74.853-13-134-1Главное окноОпции проектаУправление проектомУправление объектами проектаОсновные функции редактированияОсновные функции OnlineРабота с окнамиПомощьРедакторы CoDeSys4-14-34-184-484-564-624-774-785-15.1 Общие элементы редакторов5.2 Редактор раздела объявлений5.2.1Работа в редакторе объявлений5.2.2Редактор раздела объявлений в режиме Online5.2.3Директивы компилятора5.3 Текстовые редакторы5.3.1Работа в текстовых редакторах5.3.2Редактор языка IL5.3.3Редактор языка ST5.4 Графические редакторы5.4.1Работа в графических редакторах5.4.2Редактор FBD5.4.3Редактор LD5.4.4Редактор SFC5.4.5Редактор CFC65-15-35-35-115-125-205-205-245-255-255-255-305-365-435-52Ресурсы 6-16.1 Обзор ресурсов6.2 Глобальные и конфигурационные переменные, файл комментариев6.2.1Глобальные переменные6.2.2Конфигурационные переменные6.2.3Файл комментариев переменных6.3 Конфигурация тревог (Alarm Configuration)CoDeSys V2.36-16-26-36-76-86-91-36.3.1Обзор6.3.2Общая информация и терминология6.3.3Классы тревог6.3.4Группы тревог6.3.5Запись тревог6.3.6’Extras’ меню: Settings (настройки)6.4 Менеджер библиотек (Library Manager)6.5 Бортжурнал (Log)6.6 Конфигуратор ПЛК (PLC Configuration)6.6.1Обзор6.6.2Работа в редакторе конфигуратора ПЛК6.6.3Общие параметры конфигурации ПЛК6.6.4Диалог специфической настройки параметров6.6.5Конфигурация модулей ввода/вывода6.6.6Конфигурация канала6.6.7Конфигурирование модулей Profibus6.6.8Конфигурирование CANOpen-модулей6.6.9Конфигурация ведомого CANOpen-устройства (CANopen Slave)6.6.10 Конфигурирование модулей DeviceNet6.6.11 Конфигурация ПЛК в режиме Online6.6.12 Сканирование аппаратуры/ Состояние/ Диагностика ПЛК6.7 Конфигуратор задач (Task Configuration)6.7.1Работа в конфигураторе задач6.7.2Системные события6.7.3Конфигуратор задач в режиме online6.8 Менеджер рецептов (Watch and Receipt Manager)6.8.1Обзор6.8.2Менеджер рецептов в режиме Offline6.8.3Менеджер рецептов в режиме Online6.9 Трассировка (Sampling Trace)6.9.1Обзор6.9.2Конфигурация трассировки6.9.3Управление процессом трассировки6.9.4Отображение данных6.9.5Сохранение данных трассировки (‘Extras’ ‘Save trace values’)6.9.6Ввнешние конфигурации трассировки (‘Extras’ ‘External Trace Configurations’)6.10 Рабочая область (Workspace)6.11 Менеджер параметров (Parameter Manager)6.11.1 Обзор и подключение6.11.2 Редактор менеджера параметров.

Обзор6.11.3 Типы списков параметров и их атрибуты6.11.4 Управление списками параметров6.11.5 Редактирование списка параметров6.11.6 Менеджер параметров в режиме online6.11.7 Экспорт/импорт списков параметров6.12 Настройка целевой платформы (Target Settings)6.13 ПЛК-Браузер (PLC-Browser)6.13.1 Общие сведения6.13.2 Набор команд ПЛК-Браузера6.13.3 Макро расширения команд ПЛК-Браузера6.13.4 Вспомогательные команды ПЛК-Браузера6.14 Инструменты (Tools)6.14.1 Свойства доступных инструментов (Object Properties)6.14.2 Настройка команд инструментов6.14.3 Часто задаваемые вопросы по инструментам76-96-106-116-146-166-176-186-206-236-236-256-266-276-286-316-316-396-446-486-536-536-546-546-586-596-616-616-616-636-646-646-656-666-676-696-706-706-716-716-726-736-756-776-786-796-806-816-816-826-836-846-846-856-886-90ENI 7-17.1 Что такое ENI?CoDeSys V2.37-11-47.2 Условия работы с ENI базой данных в проекте7.3 Работа с ENI базой данных в проекте CoDeSys7.4 Категории объектов в базе данных проекта7-17-27-28.1 DDE интерфейс CoDeSys8.2 DDE обмен посредством GatewayDDE Server8-18-29.1 Обзор9.2 Создание лицензированных библиотек в CoDeSys9-19-1DDE интерфейс8-18Менеджер лицензирования CoDeSys 9-1910Приложения10-1Приложение A: Операторы и функции МЭК10-110.1 Арифметические операторы10.2 Битовые операторы10.3 Операторы сдвига10.4 Операторы выборки10.5 Операторы сравнения10.6 Адресные операторы и вспомогательные функции10.7 Оператор вызова10.8 Явное преобразование типов10.9 Математические функцииПриложение В: Операнды в CoDeSys10.1010.1110.1210.1310-110-410-610-910-1110-1310-1610-1610-2310-30КонстантыПеременныеАдресаФункции в роли операндовПриложение С: Типы данных CoDeSys10-3010-3210-3410-3510-3610.14 Элементарные типы данных10.15 Пользовательские типы данныхПриложение D: Библиотеки CoDeSys10-3610-3710-4410.16 Стандартная библиотека Standard.lib10.16.1Строковые функции10.16.2Переключатели10.16.3Детекторы импульсов10.16.4Счетчики10.16.5Таймеры10.17 Библиотека UTIL.LIB10.17.1BCD преобразования10.17.2Бит/байт функции10.17.3Дополнительные математические функции10.17.4Регуляторы10.17.5Генераторы сигналов10.17.6Преобразования аналоговых сигналов10.17.7Аналоговые компараторы10.18 Библиотека AnalyzationNew.lib10.19 Системные библиотеки CoDeSysПриложение E: Краткий справочник по операторам и компонентам библиотек 10-6810-4410-4410-4810-4910-5110-5310-5610-5610-5710-5810-6010-6210-6410-6610-6710-67Приложение F: Командная строка / командный файл 10-7310.20 Командная строка10.21 Командный файл (cmdfile)CoDeSys V2.310-7310-731-5Приложение G: Сименс импорт.

10-82Приложение H: Опции целевых систем 10-8910.2210.2310.2410.2510.26Системные опции целевых платформ (Target Platform)Опции распределения памяти (Memory Layout).Опции общей категории (General)Опции категории Сетевая функциональностьОпции категории ВизуализацияПриложение I: Использование клавиатуры10-102Приложение J: Ошибки и предупреждения компилятора10.27 Предупреждения10.28 ОшибкиCoDeSys V2.310-8910-9510-9610-9810-9910-10510-10510-1111-61 Краткое представление CoDeSys1.1 Что такое CoDeSysCoDeSys — это современный инструмент для программирования контроллеров (CoDeSys образуется отслов Controllers Development System).CoDeSys предоставляет программисту удобную среду для программирования контроллеров на языкахстандарта МЭК 61131-3.

Используемые редакторы и отладочные средства базируются на широко известных и хорошо себя зарекомендовавших принципах, знакомых по другим популярным средам профессионального программирования (такие, как Visual C++).1.2 Представление о работе в CoDeSysС чего начинается программный проект?Прежде всего нужно дать проекту новое имя, оно же послужит и названием файла проекта.Первый программный компонент (POU – Program Organization Unit) помещается в новый проект автоматически и получает название PLC_PRG. Именно с него и начинается выполнение процесса (по аналогии с функцией main в языке С), из него будут вызываться другие программные блоки (программы,функции и функциональные блоки).Нет необходимости писать вручную текст для PLC_PRG, поскольку конфигурация задачи определяетсяна вкладке проекта Task Configuration.

Подробнее это будет описано в главе, посвященной TaskConfiguration.Проект содержит ряд разнородных объектов POU, данных разных типов, элементов визуализации и ресурсов.Организатор объектов (Object Organizer) управляет списком всех объектов Вашего проекта.Как создать собственный проект?Для начала вы определяете конфигурацию ПЛК в соответствии с аппаратными средствами своего контроллера.Затем вы создаете программные компоненты, необходимые для решения проблемы.Далее вы пишете программный код для созданных компонентов на выбранных языках.Сразу после завершения программирования, вы компилируете проект и исправляете ошибки, если ониесть.Как проверить проект?Когда все ошибки устранены, можно приступить к отладке.Включите флажок эмуляция (simulation) и «подключитесь» к контроллеру.

Свежие статьи

Популярно сейчас

Ответы на популярные вопросы

То есть уже всё готово?

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

А я могу что-то выложить?

Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.

А если в купленном файле ошибка?

Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!

Отзывы студентов

Нашёл ошибку?

Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!

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

Предложить исправление

Добавляйте материалы
и зарабатывайте!

Продажи идут автоматически

567

Средний доход
с одного платного файла

Обучение Подробнее

  • CoDeSys 2.3

  • CoDeSys V2.3 1-2

    Copyright 1994, 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
    2007, 2008 3S — Smart Software Solutions GmbH All rights reserved.
    Copyright 2003, 2004, 2005, 2006, 2007, 2008 ( ) . . — . Trademark
    Intel is a registered trademark and 80286, 80386, 80486, Pentium
    are trademarks of Intel Corporation. Microsoft, MS and MS-DOS are
    registered trademarks, Windows is a trademark of Microsoft
    Corporation. : 3S — Smart Software Solutions GmbH Memminger Strae
    151 D-87439 Kempten .: +49 831 5 40 31 — 0 : +49 831 5 40 31 50
    www.3s-software.com : 21400, , . , . , 9 .: +7 4812 38-29-31 ./: +7
    4812 65-81-71 www.prolog-plc.ru CoDeSys V2.3 -. . 10.09.2008 RU
    2.8, CoDeSys V2.3.9.x

    http://www.3s-software.comhttp://www.prolog-plc.ru

  • CoDeSys V2.3 1-3

    1 CODESYS
    ……………………………………………………………………………….1-1

    1.1
    CoDeSys…………………………………………………………………………………………………………………………………….
    1-1

    1.2
    CoDeSys……………………………………………………………………………………………………..
    1-1

    1.3
    CoDeSys…………………………………………………….
    1-3

    2 CODESYS
    ………………………………………………………………………………………………..2-1

    2.1
    …………………………………………………………………………………………………………………………………
    2-1

    2.2
    ………………………………………………………………………………………………………………………
    2-8
    (IL)…………………………………………………………………………………………………………………………………..
    2-9
    IL…………………………………………………………………………………………………………………….
    2-9
    (ST)……………………………………………………………………………………………………………………
    2-10 (SFC)
    …………………………………………………………………………..
    2-17
    (FBD)…………………………………………………………………………………..
    2-22 (CFC)
    ………………………………………………………………………………………….
    2-23
    (LD)……………………………………………………………………………………………………………………
    2-23

    2.3
    ……………………………………………………………………………………………………………………
    2-25

    3
    ………………………………………………………………………………………………..3-1

    3.1
    ……………………………………………………………………………………………………………….
    3-1

    3.2
    …………………………………………………………………………………………………………………………..
    3-11

    4 CODESYS
    ……………………………………………………..4-1

    4.1
    ………………………………………………………………………………………………………………………………………………
    4-1

    4.2
    ……………………………………………………………………………………………………………………………………………
    4-3

    4.3
    ……………………………………………………………………………………………………………………………..
    4-19

    4.4
    …………………………………………………………………………………………………………..
    4-50

    4.5
    ………………………………………………………………………………………………….
    4-57

    4.6
    ………………………………………………………………………………………………………………….
    4-64

    4.7
    ……………………………………………………………………………………………………………………………………….
    4-80

    4.8
    ………………………………………………………………………………………………………………………………………………………
    4-80

    5 CODESYS
    ………………………………………………………………………………………………………5-1

    5.1
    …………………………………………………………………………………………………………………
    5-1

    5.2
    ………………………………………………………………………………………………………………
    5-3
    ………………………………………………………………………………………………………………….
    5-3
    …………………………………………………………………………………..
    5-11

  • CoDeSys V2.3 1-4

    ………………………………………………………………………………………………………………………………
    5-11

    5.3
    …………………………………………………………………………………………………………………………….
    5-20
    …………………………………………………………………………………………………………………
    5-20
    IL…………………………………………………………………………………………………………………………………………
    5-24
    ST……………………………………………………………………………………………………………………………………….
    5-24

    5.4
    ………………………………………………………………………………………………………………………..
    5-25
    …………………………………………………………………………………………………………….
    5-25 FBD
    ……………………………………………………………………………………………………………………………………………….
    5-30 LD
    ………………………………………………………………………………………………………………………………………………….
    5-36 SFC
    ……………………………………………………………………………………………………………………………………………….
    5-43 CFC
    ……………………………………………………………………………………………………………………………………………….
    5-52

    6
    …………………………………………………………………………………………………………………………..6-1

    6.1
    ………………………………………………………………………………………………………………………………………….
    6-1

    6.2 , ……………………………………….. 6-2
    ………………………………………………………………………………………………………………………………
    6-3
    ………………………………………………………………………………………………………………..
    6-7
    ………………………………………………………………………………………………………………..
    6-8

    6.3 (Alarm
    Configuration)………………………………………………………………………………………..
    6-9
    ……………………………………………………………………………………………………………………………………………………………….
    6-9
    ………………………………………………………………………………………………………..
    6-10
    ……………………………………………………………………………………………………………………………………………….
    6-11
    ……………………………………………………………………………………………………………………………………………….
    6-15
    ………………………………………………………………………………………………………………………………………………..
    6-16 » (Extras): »
    (Settings)……………………………………………………………………………………………..
    6-18

    6.4 (Library
    Manager)………………………………………………………………………………………………
    6-18

    6.5 (Log)
    …………………………………………………………………………………………………………………………………….
    6-20

    6.6 (PLC
    Configuration)………………………………………………………………………………………………
    6-23
    ……………………………………………………………………………………………………………………………………………………………..
    6-23
    …………………………………………………………………………………………………..
    6-25
    ………………………………………………………………………………………………………
    6-26
    ………………………………………………………………………………………..
    6-27
    /………………………………………………………………………………………………………
    6-28
    ………………………………………………………………………………………………………………………………….
    6-31 Profibus
    ………………………………………………………………………………………………………..
    6-32 CANopen-
    ……………………………………………………………………………………………………..
    6-39 CANopen- (CANopen
    Slave)…………………………………………………..
    6-45
    DeviceNet……………………………………………………………………………………………………..
    6-49
    ……………………………………………………………………………………………………….
    6-54 / /
    ……………………………………………………………………..
    6-54

    6.7 (Task
    Configuration)…………………………………………………………………………………………..
    6-56
    ……………………………………………………………………………………………………………………………………………………………..
    6-56
    …………………………………………………………………………………………………………………..
    6-57
    …………………………………………………………………………………………………………………………………….
    6-59
    ……………………………………………………………………………………………………..
    6-60

    6.8 (Watch and Recipe Manager)
    ………………………………………………………………………….
    6-62
    ……………………………………………………………………………………………………………………………………………………………..
    6-62
    ………………………………………………………………………………………………..
    6-62
    …………………………………………………………………………………………………..
    6-64

    6.9 (Sampling Trace)
    …………………………………………………………………………………………..
    6-65

  • CoDeSys V2.3 1-5

    ……………………………………………………………………………………………………………………………………………………………..
    6-65
    …………………………………………………………………………………………………………………………
    6-66
    …………………………………………………………………………………………………………
    6-67
    …………………………………………………………………………………………………………………………………..
    6-68 (‘Extras’ ‘Save trace values’)
    …………………………………………… 6-70 (‘Extras’
    ‘External Trace Configurations’)……………. 6-70

    6.10 (Workspace)
    …………………………………………………………………………………………………………….
    6-71

    6.11 (Parameter Manager)
    ……………………………………………………………………………………
    6-71
    ………………………………………………………………………………………………………………………………….
    6-71 .
    …………………………………………………………………………………………………
    6-73
    ………………………………………………………………………………………………….
    6-74
    …………………………………………………………………………………………………………….
    6-76
    ………………………………………………………………………………………………………….
    6-78
    ………………………………………………………………………………………………….
    6-79 /
    ……………………………………………………………………………………………………….
    6-80

    6.12 (Target
    Settings)………………………………………………………………………….
    6-80

    6.13 —
    (PLC-Browser)…………………………………………………………………………………………………………………
    6-82
    …………………………………………………………………………………………………………………………………………..
    6-82 —
    ……………………………………………………………………………………………………………………..
    6-82
    -…………………………………………………………………………………………………
    6-84
    -……………………………………………………………………………………………….
    6-85

    6.14
    (Tools)……………………………………………………………………………………………………………………………..
    6-86 (Object
    Properties)……………………………………………………………………………
    6-86
    ……………………………………………………………………………………………………………….
    6-89
    …………………………………………………………………………………………
    6-90

    7
    ENI……………………………………………………………………………………………………………………………………..7-1

    7.1
    ENI?…………………………………………………………………………………………………………………………………………….
    7-1

    7.2 ENI
    …………………………………………………………………………………
    7-1

    7.3 ENI CoDeSys
    …………………………………………………………………………………
    7-2

    7.4
    ………………………………………………………………………………………
    7-2

    8 DDE
    ……………………………………………………………………………………………………………….8-1

    8.1 DDE
    CoDeSys…………………………………………………………………………………………………………………………
    8-1

    8.2 DDE GatewayDDE Server
    …………………………………………………………………………………….
    8-2

    9
    CODESYS…………………………………………………………………………9-1

    9.1
    ……………………………………………………………………………………………………………………………………………………………
    9-1

    9.2
    CoDeSys………………………………………………………………………….
    9-1

    10
    ……………………………………………………………………………………………………………….10-1

    A:
    …………………………………………………………………….10-1

    10.1
    ………………………………………………………………………………………………………………
    10-1

  • CoDeSys V2.3 1-6

    10.2
    ……………………………………………………………………………………………………………………………..
    10-4

    10.3
    …………………………………………………………………………………………………………………………………
    10-6

    10.4
    ……………………………………………………………………………………………………………………………..
    10-8

    10.5
    ………………………………………………………………………………………………………………………..10-10

    10.6
    ………………………………………………………………………………………………………………………….10-13

    10.7
    ………………………………………………………………………………………………………………10-14

    10.8
    …………………………………………………………………………………………………………………………………10-15

    10.9
    …………………………………………………………………………………………………………..10-15

    10.10
    ………………………………………………………………………………………………………………..10-22

    : CODESYS
    ……………………………………………………………………………10-27

    ………………………………………………………………………………………………………………………………………………………10-27

    …………………………………………………………………………………………………………………………………………………..10-29

    …………………………………………………………………………………………………………………………………………………………….10-31

    ……………………………………………………………………………………………………………………….10-32

    : CODESYS
    …………………………………………………………………………10-33

    …………………………………………………………………………………………………………………….10-33

    ……………………………………………………………………………………………………………..10-34

    D: CODESYS
    ……………………………………………………………………………10-42

    Standard.lib
    ……………………………………………………………………………………………………..10-42
    ……………………………………………………………………………………………………………………………………10-42
    …………………………………………………………………………………………………………………………………………..10-45
    ………………………………………………………………………………………………………………………………..10-47
    ………………………………………………………………………………………………………………………………………………………10-49
    ………………………………………………………………………………………………………………………………………………………10-51

    UTIL.LIB
    ……………………………………………………………………………………………………………………………………10-53
    BCD
    …………………………………………………………………………………………………………………………………10-53
    /
    ……………………………………………………………………………………………………………………………………….10-54
    ……………………………………………………………………………………………10-55
    ………………………………………………………………………………………………………………………………………………….10-57
    …………………………………………………………………………………………………………………………………10-60
    ……………………………………………………………………………………………………10-62
    ………………………………………………………………………………………………………………………….10-63

    AnalyzationNew.lib
    …………………………………………………………………………………………………………………10-64

    CoDeSys
    …………………………………………………………………………………………………………….10-65

    E: 10-66

    CoDeSys:…………………………………………………………………………………………………………………………………..10-66

  • CoDeSys V2.3 1-7

    Standard.lib:
    …………………………………………………………………………………………………………………………..10-68

    Util.lib:……………………………………………………………………………………………………………………………………..10-68

    F: /
    ………………………………………………10-70

    ………………………………………………………………………………………………………………………………………..10-70

    (cmdfile)
    …………………………………………………………………………………………………………………………10-71

    G: .
    …………………………………………………………………………………….10-79

    SEQ
    ……………………………………………………………………………………………………..10-79

    S5
    …………………………………………………………………………………………………………………….10-80

    S5 C
    61131-3…………………………………………………………………………………………10-80

    H:
    ……………………………………………………………………….10-84

    (Target
    Platform)…………………………………………………………………….10-84
    Intel 386
    ………………………………………………………………………………………………………………………………..10-84
    Motorola 68K
    ………………………………………………………………………………………………………………………………………………..10-85
    Infineon C16x
    ……………………………………………………………………………………………………………………………………………….10-86
    ARM Power PC
    …………………………………………………………………………………………………………………………………………10-87
    MIPS……………………………………………………………………………………………………………………………………………………………..10-88
    ‘Hitachi
    SH’……………………………………………………………………………………………………………………………………………………10-89
    8051
    ……………………………………………………………………………………………………………………………………..10-90
    Infineon ‘TriCore
    ………………………………………………………………………………………………………………………………………….10-90

    (Memory
    Layout)……………………………………………………………………………………10-91

    (General)…………………………………………………………………………………………………………….10-92

    ……………………………………………………………………………………..10-94

    ……………………………………………………………………………………………………………….10-95

    I:
    ……………………………………………………………….10-98

    J:
    ……………………………………………………10-101

    …………………………………………………………………………………………………………..10-101

    ………………………………………………………………………………………………………………..10-101

    (DUT)
    ……………………………………………………………………………..10-103

    , (POU) ……………………………………10-103

    ……………………………………………………………………………………………………………..10-104

    K: ………………………………………10-105

    …………………………………………………………………………………………………………………………………………10-106

    ………………………………………………………………………………………………………………………………………………………….10-112

  • 1 CoDeSys

    1.1 CoDeSys

    CoDeSys — (CoDeSys Controllers Development System).

    CoDeSys — 61131-3. — , — (, Visual C++).

    1.2 CoDeSys

    ?

    , .

    (POU Program Organization Unit) PLC_PRG. ( main ), (, ).

    PLC_PRG, — (Task Configuration). — , .

    POU, , .

    (Object Organizer) .

    ?

    .

    , .

    .

    , , .

    ?

    , .

    (simulation) . .

    (PLC Configuration) . , — . , — . (,

  • CoDeSys

    CoDeSys V2.3 1-2

    Watch and Recipe Manager), , .

    . — , . (single step), .

    , — , , . (Sampling Trace), — .

    , — «». , .

    CoDeSys

    .

    CoDeSys DDE . — , OPC DDE .

    CoDeSys -.

    (Parameter manager) — .

    ENI: — ENI . CoDeSys — , . ENI CoDeSys, .

    CoDeSys . , , .

    CoDeSys , Web. -.

  • CoDeSys

    CoDeSys V2.3 1-3

    1.3 CoDeSys

    — CoDeSys

    CoDeSys ()

    CoDeSys_V23_RU.pdf

    First Steps with CoDeSys RU.pdf

    Gateway Server , , , ( )

    Gateway Manual.pdf

    OPC Server OPC-Server V2.0, OPC_20_How_to_use.pdf

    CoDeSys CoDeSys , CoDeSys HMI, (Target-) Web-

    CoDeSys_Visu_V23_RU.pdf

    SoftMotion SoftMotion SoftMotion_Manual_V23.pdf

    Standard.lib Util.lib — .

    CoDeSys .pdf

    SoftMotion : . SoftMotion-.

    CoDeSys_V23_RU.pdf

    SysLibs_Overview_RU.pdf

    .pdf

    ENI Server ENI , — , .

    ENI CoDeSys: .

    ENI Admin, ENI Control ENI Explorer: . .

    EniServerQuickstart.pdf

    CoDeSys_V23_RU.pdf

  • 2 CoDeSys

    2.1

    : POU, , , , . .

    POU (Program Organization Unit)

    (POU) , . — POU ().

    . POU (IL, ST, FBD, SFC, LD CFC).

    CoDeSys . — standard.lib.

    POU POU, .

    POU, ( , ). — .

    . . . J.

    :

    FUNCTION Fct: INT;

    , -.

    FUNCTION END_FUNCTION. , IL, .

    , IL:

  • , CoDeSys

    CoDeSys V2.3 2-2

    ST .

    SFC .

    : , CoDeSys — . 61131-3, — -. .. — .

    :

    IL: LD 7 Fct 2,4 ST Result

    ST: Result : = Fct (7, 2, 4);

    FBD:

    : RETAIN . !

    : :

    CheckBounds, ( . ).

    : CheckDivByte, CheckDivWord, CheckDivDWord CheckDivReal — 0 (.
    DIV).

    CheckRangeSigned CheckRangeUnsigned (. ).

    — POU, . .

    FUNCTION_BLOCK — END_FUNCTION_BLOCK. . — J.

    , IL, . MULERG — , VERGL .

    :

  • , CoDeSys

    CoDeSys V2.3 2-3

    . — () . , — ().

    ( -) , , . , — .

    fubinstance FUB:

    fubinstance: FUB;

    . , .

    :

    fb iInl INT:

    PROGRAM prog VAR fbinst1 : fb; END_VAR LD 17 ST fbinst1.iIn1 CAL
    fbinst1 END_PROGRAM

    . . POU, , .

    .

  • , CoDeSys

    CoDeSys V2.3 2-4

    . -. , , -, .

    RETAIN, — .

    , :

    .

    :

    (IL, ST) — . — «:=», «=>». , — (Input Assistant)() — (With
    arguments).

    :

    , FBINST — , — xx yy. FBINST ST :

    FBINST1(xx:= , yy=> );

    -:

    , — (VAR_IN_OUT) — . .

    fuboinst iInOut1 VAR_IN_OUT:

    VAR fuboinst: fubo; iVar1: int; END_VAR iVar1 := 2; fuboinst
    (iInOut1 := iVar1);

    :

    fuboinst (iInOut1:=2); fuboinst .iInOut1:=2;

    FUB:

    ERG, QUAD. FUB INSTANZ.

    IL:

  • , CoDeSys

    CoDeSys V2.3 2-5

    ST ( , ):

    FBD:

    SFC .

    POU, . — . . .

    .

    , , , POU.

    , .

  • , CoDeSys

    CoDeSys V2.3 2-6

    PROGRAM — END_PROGRAM. . J.

    :

    , , (IL, ST) — . «:=», «=>».

    :

    IL:

    CAL PRGexample2 LD PRGexample2.out_var ST erg

    : CAL PRGexample2(in_var:=33, out_var=>erg )

    ST:

    PRGexample2; erg := PRGexample2.out_var;

    : PRGexample2(in_var:=33, out_var=>erg );

    FBD:

    PLC_PRG

    PLC_PRG POU, . — .

    (Project) — — (Object Add), POU — PLC_PRG.

    .

    (Task Configuration), PLC_PRG.

    : POU PLC_PRG ( (Task Configuration) ). PLC_PRG -.

  • , CoDeSys

    CoDeSys V2.3 2-7

    . — POU . , , -.

    , , .

    :

    Counter — «out» «in». Reset 0. «out» .

    :

    :

    . ..

    POU, , — , .

    :

    PROGRAM PLC_PRG VAR Inst : Counter; END_VAR

    IL: CAL Inst.Reset(In : = FALSE) LD Inst.out ST ERG

    ST: Inst.Reset(In := FALSE); Erg := Inst.out;

    FBD:

    SFC ( SFC).

  • , CoDeSys

    CoDeSys V2.3 2-8

    SFC . CoDeSys.

    , :

    , . (Library manager)

    (Log) (Alarm Configuration)

    (PLC Configuration) —

    . (Task Configuration) (Watch and Recipe Manager)

    (Target Settings) (Workspace)

    :

    (Sampling Trace) — — .

    (Parameter Manager) — —

    — (PLC-Browser) — (Tools) , —

    SoftMotion ( ),

    CNC CAM

    , POU, . POU , — .

    «standard.lib» «util.lib» .

    (. (Library manager))

    , . , .

    (. (Data types))

    . .

    , CoDeSys HMI Web ( ) . (. CoDeSys (Visu-alizations))

    2.2 CoDeSys :

  • , CoDeSys

    CoDeSys V2.3 2-9

    Instruction List (IL) — Structured Text (ST)

    :

    Sequential Function Chart (SFC) Function Block Diagram (FBD)
    Ladder Diagram (LD) —

    , CoDeSys -, Continuous Function Chart (CFC) .

    (IL)

    IL (Instruction list) , — , , .

    , (:). . .

    :

    LD 17 ST lint (* *) GE 5 JMPC next LD idword EQ istruct.sdword
    STN test next:

    IL

    IL :

    :

    JMP, CAL, RET: , — .

    N JMPC,CALC, RETC: , .

    N : .

    IL :

    LD N

    ST N

    S , —

    R

    AND N, (

    OR N, (

    XOR N, (

    ADD (

    SUB (

    MUL (

  • , CoDeSys

    CoDeSys V2.3 2-10

    DTV (

    GT ( >

    GE ( >=

    QE ( =

    NE ( < >

    LE (

  • , CoDeSys

    CoDeSys V2.3 2-11

    , .

    . , , .

    . , .., .

    .

    ST , .

    () .

    ( )

    EXPT

    NOT

    *

    /

    MOD

    +

    < , > ,=

    < >

    =

    AND

    .

    XOR

    OR

    ST:

    A := B; CV := CV+1; C := SIN (X);

    FB

    A := CMD_TMR.Q

    RETURN RETURN;

  • , CoDeSys

    CoDeSys V2.3 2-12

    IF

    D := B*B; IF D

  • , CoDeSys

    CoDeSys V2.3 2-13

    RETURN

    RETURN POU, , .

    IF

    IF, , — .

    :

    IF THEN

    {ELSIF THEN . . .ELSIF THEN ELSE } END_IF;

    .

    < , .

    , — . , ELSIF ELSE.

    , , ELSE.

    :

    IF temp < 17 THEN heating_on := TRUE; ELSE heating_on :=
    FALSE; END_IF

    (heating) , 17 , .

  • , CoDeSys

    CoDeSys V2.3 2-14

    CASE

    C CASE — .

    :

    CASE OF : : : :

    … :

    ELSE END_CASE;

    CASE :

    ,

    , .

    , .

    , — , .

    :

    CASE INT1 OF 1, 5: BOOL1 := TRUE;

    BOOL3 := FALSE; 2: OL2 := FALSE;

    BOOL3 := TRUE; 10. 20: BOOL1:= TRUE;

    BOOL3 := TRUE; ELSE

    BOOL1 := NOT BOOL1; BOOL2 := BOOL1 OR BOOL2;

    END_CASE

    FOR

    FOR .

    :

    INT_Var :INT; FOR := TO {BY } DO END_FOR

    , , .

    , . — , , .

  • , CoDeSys

    CoDeSys V2.3 2-15

    , , , .

    . 1.

    :

    FOR Counter: =1 TO 5 BY 1 DO Var1 := Var1*2; END_FOR;
    Erg:=Var1;

    , Var1 1. 32.

    : : . , SINT 127, .

    WHILE

    WHILE , FOR, , . , , -.

    :

    WHILE END_WHILE

    , TRUE. FALSE , — . FALSE, .

    : , . — . , — .

    :

    WHILE counter0 DO Var1 := Var1*2; ounter := ounter-1;

    END_WHILE

    REPEAT

    REPEAT WHILE , -, 1 . , .

    :

    REPEAT UNTIL END_REPEAT

    , TRUE. TRUE ,

  • , CoDeSys

    CoDeSys V2.3 2-16

    . TRUE, .

    : , . — . , — .

    EXIT

    EXIT FOR, WHILE, REPEAT, — .

  • , CoDeSys

    CoDeSys V2.3 2-17

    (SFC)

    SFC , . (), — .

    SFC :

    SFC POU , . 2 :

    ( SFC) . ( ) , .

    ( SFC) -. .

    IL ST, FBD LD, — SFC.

    . — , . — / (Extras Zoom Action/Transition). , — .

    , POU. . (Project Add Ac-tion). 9 .

  • , CoDeSys

    CoDeSys V2.3 2-18

    .

    , . , , «» , — «» .

    . — , -.

    :

    /

    . , , -. , , ST (.. (i

  • , CoDeSys

    CoDeSys V2.3 2-19

    , ; S (-) ..

    .x, , — (. ).

    , , , . , , , .

    :

    , . — .

    : , . , — (. ).

    , .

    , «Extras» «Use IEC-Steps» Iecsfc.lib.

    SFC POUs, -. («Project» «Add Action»).

    SFC POU :

    :

    N

    R

    S

    L ,

    D -,

    P ,

    SD

    DS ,

  • , CoDeSys

    CoDeSys V2.3 2-20

    ,

    SL —

    .

    L, D, SD, DS, SL ( L T#5s) TIME ( L t_var).

    : . — P!

    SFC

    SFC , , . — . iecsfc.lib ( SFCStepType SFCActionType), . — SFC
    CoDeSys.

    :

    : .x ._x. .x . ._x . .x=TRUE, . ._x=TRUE .x=FALSE, . ._x .x
    .

    _. , , , .

    : .x , . ( ._x — ).

    (TIME):

    , . .

    .t (.t ).

    _time. , «_timeStep1: TIME;»

    .

    SFC. , . : boolvar1:=sfc1.step1.x; step1.x — — , step1 POU
    sfc1.

    SFC

    SFC . POU. .

  • , CoDeSys

    CoDeSys V2.3 2-21

    : SFC POU , , (. ), , «SFCError» (SFCError TRUE ).

    -:

    SFCEnableLimit: BOOL. , SFCError. .

    SFCInit: BOOL. , — Init SFC . Init , -, . SFCInit , — .

    SFCReset: BOOL. SFCInit. — Init. SFCReset Init.

    : 2.3.7.0, SFCReset , — , .

    SFCQuitError: BOOL. SFC , . , SFCError .

    SFCPause: BOOL. SFC , — .

    SFCError: , . , , — SFCError . : SFCErrorStep, SFCErrorPOU,
    SFCQuitError, SFCErrorAnalyzation.

    SFCTrans: BOOL. , .

    SFCErrorStep: STRING. , — ( ).

    SFCErrorPOU: STRING. , ( ).

    SFCCurrentStep: STRING. . , — SFC .

    SFCErrorAnalyzationTable: ARRAY [0..n] OF ExpressionResult — p .
    , — FALSE , , , , .

    16 (), 0 15.

    ExpressionResult Ana-lyzationNew.lib. POU, — SFC.

    . . — SFCError (. ).

  • , CoDeSys

    CoDeSys V2.3 2-22

    SFCTip, SFCTipMode: BOOL SFC. SFCTipMode=TRUE, SFCTip, TRUE.
    SFCTip FALSE, , .

    : (. ).

    SFC . — . . ( ), ( ) (jump). , , -, .

    , , -.

    SFC .

    . . ( ) ( ) (jump).

    , — , . . , , , — .

    (Jump)

    — , jump. , .

    (FBD)

    FBD . , , , .

    FBD CoDeSys:

    FBD 0.

  • , CoDeSys

    CoDeSys V2.3 2-23

    (CFC)

    FBD , — , , .

    CFC:

    CFC 0.

    (LD)

    — () , .

    LD , — FBD. , LD POU.

    LD .

    — . — , , .

    , «ON» «OFF», . . , . («OFF»).

    LD :

    (. » CoDeSys»)

    «ON» «OFF». . . , .

  • , CoDeSys

    CoDeSys V2.3 2-24

    , «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 EN POU:

  • , CoDeSys

    CoDeSys V2.3 2-25

    2.3

    (Sampling Trace)

    (Sampling Trace) -, , , — . 20 — . 500 .

    CoDeSys , . (Debugging) (Project Options) (Build).

    , , — . — . , FBD LD — SFC — .

    : CoDeSys SP 32 Bit Full -, .

  • , CoDeSys

    CoDeSys V2.3 2-26

    :

    IL: CAL, LD or JMP.

    ST: .

    FBD, LD: .

    SFC: .

    .

    (Single Cycle) — .

    .

    , ( ) (- ).

    . — , , — , (Write Variable).

    CoDeSys . -, (watch and Recipe manager) . .

    , , . — .

    , — :

    anarray[1] = 5 anarray[i] = 1

    , — ( [i + j] [I*2]).

    : , — : » «(Too many monitoring variables).

  • , CoDeSys

    CoDeSys V2.3 2-27

    :

    , , — CoDeSys. , , .

    : .

    (Log)

    (Log) , , . — .

  • 3

    3.1 -. — — , . -, . — , : -. .

    , — 61131-3, CoDeSys CoDeSys.

    POU

    : CoDeSys («File» «New»).

    POU. PLC_PRG. . POU, , — . . POU Continuous Function Chart
    (CFC).

    . — («Pro-ject» «Object Add») ( ) . : Sequential Function Chart
    (SFC) SEQUENCE, Function Block Diagram (FBD) TRAFFICSIGNAL — WAIT,
    (IL).

    TRAFFICSIGNAL?

    POU TRAFFICSIGNAL . , — , — ..

    WAIT?

    WAIT , .

    SEQUENCE?

    SEQUENCE , .

    PL_PRG?

    PLC_PRG , ‘ .

    «TRAFFICSIGNAL»

    POU TRAFFICSIGNAL. — ( VAR_INPUT END_VAR) STATUS INT. STATUS , —
    , -, — .

  • CoDeSys V2.3 3-2

    TRAFFICSIGNAL , RED, YELLOW GREEN. TRAFFICSIGNAL :

    TRAFFICSIGNAL, :

    «TRAFFICSIGNAL»

    , STATUS . POU (body). ( 1). . («Insert» «Box»).

    AND :

    AND EQ.

    STATUS. — 1. — :

    EQ. EQ. — («Insert» «Assign»).

    ??? GREEN. :

    STATUS 1, GREEN. , GREEN -, STATUS 1.

    TRAFFICSIGNAL . () («Insert» «Network (after)»). POU — :

  • CoDeSys V2.3 3-3

    TRAFFICSIGNAL:

    , , ( ). («Insert» «Box»).

    POU . , TRAFFICSIGNAL — , STATUS.

    standard.lib

    POU WAIT POU . , — («Window» «Library Man-ager»). («Insert»
    «Additional library»). — . standard.lib .

    «WAIT»

    POU WAIT. , POU , — TRAFFICSIGNAL. POU TIME TIME (Boolean) , OK.
    TRUE, .

  • CoDeSys V2.3 3-4

    FALSE ( ) «:= FALSE «.

    POU TP. (IN, PT) (Q, ET). TP :

    IN FALSE, ET 0 Q FALSE. IN TRUE, ET . ET PT, . Q TRUE, ET PT. ET
    PT, Q FALSE.

    POU .

    TP POU WAIT, . ZAB ( ) TP ( VAR, END_VAR).

    WAIT :

    «WAIT»

    :

    , Q TRUE (, ), ZAB, ZAB — — , .

    IN ZAB FALSE ET 0 Q FALSE. , . —

  • CoDeSys V2.3 3-5

    TIME PT ZAB IN:=TRUE. ZAB , TIME Q FALSE.

    Q OK WAIT. Q FALSE, OK TRUE.

    . WAIT TRAFFICSIGNAL PLC_PRG.

    «SEQUENCE» 1

    . START BOOL, — TRAFFICSIGNAL1 TRAFFICSIGNAL2 INT WAIT (DELAY ,
    ). SEQUENCE :

    SEQUENCE 1, :

    SFC

    SFC «Init» «Trans0» Init, -, .

    , . TRAFFICSIGNAL. , Trans0 — — ()(«Insert» «Step transition
    (after)»). .

    -. Init «START», «DELAY.OK».

    , START TRUE, — DELAY OK TRUE, .. .

    ( ) Switch1, Green2, Switch2, Green1, Init, , . «Switch» ,
    Green1 TRAFFICSIGNAL1 ,

  • CoDeSys V2.3 3-6

    Green2 TRAFFICSIGNAL2 . , Init Switch1. , :

    SEQUENCE 1, :

    . — , . — IL ( ).

    Init , START . , . , TRAFFICSIGNAL1 TRAFFICSIGNAL2 5.

    Init:

  • CoDeSys V2.3 3-7

    Green1 TRAFFICSIGNAL1 (STATUS:=1), TRAFFICSIGNAL2 (STATUS:=3),
    5000 .

    Green1:

    Switch1 TRAFFICSIGNAL1 2 () , , TRAFFICSIGNAL2 4 (-). , 2000 . —
    :

    Switch1:

    Green2 TRAFFICSIGNAL1 (STATUS:=3) TRAFFICSIGNAL2 (STATUS:=1).
    5000 .

    Green2:

    Switch2 STATUS TRAFFICSIGNAL1 4 (-), , TRAFFICSIGNAL2 2 (). 2000
    .

  • CoDeSys V2.3 3-8

    Switch2:

    .

    , :

    POU PLC_PRG. PLC_PRG. AND SEQUENCE. .

    ( — ‘Project’ ‘Build’) . : «0 Errors, 0 Warnings».

    (Online ‘Simulation mode’) — » (Online ‘Login’). » (Online
    ‘Run’).

    SEQUENCE. , , START TRUE. PLC_PRG, — . . — TRUE. (» Online
    ‘Write values’). — . .

    » — (Online ‘Logout’).

    «SEQUENCE»

    . . , TRAFFICSIGNAL .

    COUNTER INT. SEQUENCE.

    Switch1 . — . — . (jump) Init.

    : «Count» «Off». ( ) EXIT, TRUE DELAY.OK. , .

  • CoDeSys V2.3 3-9

    «SEQUENCE», :

    .

    Count — COUNTER 1:

    Count:

    EXIT1 , 7:

    EXIT:

    Off 5 ( ), COUNTER 0 10 .

  • CoDeSys V2.3 3-10

    Off:

    TRAFFICSIGNAL. — , . , .

    PLC_PRG

    SEQUENCE. . — PLC_PRG. IN — (2 ) — SEQUENCE. Boolean , — IEC
    .

    — LIGHT1 LIGHT2 TRAFFICSIGNAL — .

    LIGHT1 LIGHT2:

    6 Boolean. PLC_PRG, — (Global Variables) (Resources). IN, START
    SEQUENCE TRUE, . (Resources) (Global Variables).

    :

    PLC_PRG. . (CFC), , , -.

  • CoDeSys V2.3 3-11

    (Box). AND SEQUENCE. SEQUENCE .

    TRAFFICSIGNAL. TRAFFICSIGNAL — — , , , , LIGHT1 LIGHT2.

    Input, IN Output, : L1_green, L1_yellow, L1_red, L2_green,
    L2_yellow, L2_red.

    , . / ( ) -/ .

    , .

    PLC_PRG:

    .

    TRAFFICSIGNAL

    . , CoDeSys.

    3.2 . 8. , .

    , (Visualizations) — . — (‘Project’ ‘Object Add’).

    :

  • CoDeSys V2.3 3-12

    , Lights. Ok, , .

    :

    (‘Insert’ ‘Ellipse’) 2 . , , .

    . .

    (Variables) . (Change color) .L1_red. (Input As-sistant) ( ).
    L1_red — .

    (Colors). (Color) (Inside) , , . (Inside) (Alarm Color) .

    , , , — .

    , .

  • CoDeSys V2.3 3-13

    .

    (‘Edit’ ‘Copy’) (+) (‘Edit’ ‘Paste’) (+). . . , — . — . .
    (Change Color) (Variables) — :

    : .L1_yellow : .L1_green

    (Colors) (Alarm color) — ( ).

    .

    (Insert Rectangle) — , . — (Extras Send to back), . .

    , Online Simulation mode( , -).

    (Online Login) (Online Run) , .

    .

    . , (Edit Copy) (Edit Paste). , — (, .L1_red .L2_red), .

    ON.

    , , .ON . (Change Color) (Variables). (Content) — (Text) ON.

  • CoDeSys V2.3 3-14

    ON , (Toggle variable) (Input) .ON. / .

    , . — . (Change Color).

    .

    . (Colors) (frame) . — Contents ( — Text) Light1 Light2.

    Traffic Signal:

  • 4 CoDeSys

    4.1

    CoDeSys:

    CoDeSys ( ):

    . . . , POU, (Data types),

    (Visualizations) (Resources). CoDeSys. , . . , .

    , .

    . CoDeSys.

    .

  • CoDeSys

    CoDeSys V2.3 4-2

    — .

    , . , .

    CoDeSys. .

    (. (‘Project’ ‘Options’) (Desktop))

    CoDeSys.

    POUs, (Data types),

    (Visualizations) (Resources). . .

    :

    .

    . CoDeSys — : , — POU, . , .

    . — , , .

    .

    CoDeSys. , — . .

    .

    . — , .

  • CoDeSys

    CoDeSys V2.3 4-3

    -, .

    (Edit Next error) — (Edit Previous error) .

    (Win-dow Messages).

    CoDeSys .

    .

    , -. .

    , : SIM , RUN , BP- -, FORCE .

    , — (, Line:5, Col.:11). OV . — .

    X Y, . — — , . — (, ).

    , .

    (. (‘Project’ ‘Options’) — — Desktop)

    : +

    , — . , , — .

    4.2 CoDeSys (Project Options) . . , .

    (Workspace) — (Resources).

    CoDeSys.ini CoDeSys.

    : . CoDeSys.ini

    . —

  • CoDeSys

    CoDeSys V2.3 4-4

    CoDeSys.ini

    (Load & Save) X

    (User information) X

    (Editor) X

    (Desktop) X

    (Colors) X

    (Directories) . Common . Project (Log) X

    (Build) X (Passwords) X (Source download) X

    (Symbol configuration) X

    (Database-connection) X (Macros) X

    (Load&Save)

    (Load&Save):

    (Create Backup) CoDeSys — .bak . .asd (. ) . .

    (AutoSave) CoDeSys .asd, . — , (Auto Save Interval). CoDeSys . —
    (, — ), . — :

  • CoDeSys

    CoDeSys V2.3 4-5

    » » (Open auto save file) — .

    , .asl.

    (Auto save before compile) — .

    (Ask for project info), — — . (Project Project info).

    (Auto Load) CoDeSys. , CoDeSys — , .

    (Remind of boot project on exit): — , , — : » . ?» (No boot
    project created since last download. Exit anyway?).

    ENI (Save ENI credentials): (Login) ENI .

    (User information)

    (User information):

  • CoDeSys

    CoDeSys V2.3 4-6

    (Name) (Initials), (Company). . , .

    (Editor).

    (Editor):

    (Autodeclaration): .

    (Autoformat): CoDeSys IL . :

    1. . 2. .

    (List components): (Intellisense). : , -. . — , . Intellisense ,
    , .

    (Declarations as tables): . , , — (in_out). : (Name), (Address),
    (Type), (Initial) (Commment).

    (Tab-Width) . — 4 . .

    (Font) . -, — CoDeSys.

  • CoDeSys

    CoDeSys V2.3 4-7

    :

    (Mark) , . (Dotted line), — , (Line), -, (Filled) .

    (Bitvalues) ( ) — (BYTE, WODR DWORD): (Bi-nary), (Hexadecimal)
    (Decimal).

    (, , VAR_IN_OUT) — Suppress monitor-ing of complex types (Array,
    Pointer, VAR_IN_OUT): , -, , VAR_IN_OUT -.

    POU (Show POU symbols): , — . bmp . : TON TON.bmp. :

  • CoDeSys

    CoDeSys V2.3 4-8

    (DeskTop)

    (DeskTop):

    (Tool bar) ( ).

    (Status bar) .

    (Online in Security mode) (Run), (Stop), (Reset), — (Toggle
    Breakpoint), (Single cycle), (Write values), (Force values). , ,
    .

    (Query communication parameters before login): (Online Login) —
    . OK.

    (Do not save communication parameters in project): ( Online
    Communi-cation Parameters) .

    (Show print area margins): , .

    F4 (F4 ignores warnings): F4 — , -.

    MDI (MDI representation): MDI CoDeSys, . SDI .

    (Communications timeout [ms]): — . , , . : 1-10000000 .

  • CoDeSys

    CoDeSys V2.3 4-9

    (Communications timeout for download [ms]): — ( , , — ): , -,
    (Download Wait Time). : 1-10000000 .

    XML (XML-Encoding): XML . «ISO 8859-1». ENI, Message Interface
    COM Automation Interface, — CoDeSys XML. Licensing Manager.

    (Language): , .

    : Windows 98!

    (Colors)

    (Colors):

    CoDeSys. — (Line numbers), (Current position), (Breakpoint
    positions), (Set breakpoint), (Reached Positions), (Monitoring of
    Bool). — :

    — — — . — — Bool

    .

  • CoDeSys

    CoDeSys V2.3 4-10

    :

    (Directories)

    (Directories):

    , (Libraries), (Configurations files) (Visualisation files). ,
    (Compile files) (, map- list-) , (Upload files).

    , , . , ;.

    : , . . , «.\libs» ‘C:\programs\projects\libs’,
    ‘C:\programs\projects’.

    : , «_» .

  • CoDeSys

    CoDeSys V2.3 4-11

    , (Project), . , (General), ini CoDeSys .

    (Target) — , ( .TNF). , ( ).

    CoDeSys (Project), (Target) (Common). , , .

    (Log)

    (Log):

    (*.log ), — , CoDeSys .

    (Activate logging) .

    , . , , (Directory for project logs) . — , .

    .log. , , (Oline sessions). . , .

    (Filter) , : — , , . , , (. ).

    (Window Log).

  • CoDeSys

    CoDeSys V2.3 4-12

    (Build)

    (Build):

    (Debugging) -. — (, ). . . .

    (Replace constant) ( -, ) . — . , . , (, , ).

    (Nested comments) -. :

    (* a := inst.out; (* *) b := b+1; *)

    : . , , -, .

    (Create binary file of application): , ( ). .bin.

    (Actions hide programs): . : , , : , , .

    : , , . : , , , .

  • CoDeSys

    CoDeSys V2.3 4-13

    LREAL REAL (Treat LREAL as REAL): REAL LREAL . , — . .

    (Number of Data segments) , — . . (Out of global data
    memory…), .

    (Exclude objects) (Exclude objects from build). (POU), ,
    Exclude. POU . , (Ex-clude unused). , , — (‘Exclude from build’)
    .

    (Compiler Version): . — V2.3.3 (, -, ) CoDeSys, , — . , (Use
    latest), — . — . , -, . , — (Fix).

    , , -:

    (Macro before compile): (Macro after compile):

    , : — (file new), — (file open), — (file close), (file save as),
    — (file exit), , (project compile), — (project check), — — (project
    build).

    (Check automatically) :

    (Unused variables) (Overlapping memory areas) (Concurrent
    access) (Multiple write access on output)

    . (‘Check’) (‘Project’).

    , — .

    , , .

  • CoDeSys

    CoDeSys V2.3 4-14

    (Passwords).

    (Passwords):

    .

    (Password). (Confirm Password). Ok. «The password does not agree
    with the confirmation»( ), , , . .

    , , — . , . «The password is not correct»( ).

    . (Write Protection Password) .

    , , . , CoDeSys , Cancel. -, , , .

    .

    .

    (. — (File Save as)). , .

  • CoDeSys

    CoDeSys V2.3 4-15

    (Source download)

    (Source Download):

    (Extent) , .

    (Sourcecode only) . (All files), , , -, ..

    (Timing) . — (Inplicit at load) «» «-» («Online» «Download»). »
    » (Notice at load) — . » » (Only on demand) , «» » » («Online»
    «Sourcecode download»).

    , , , «» «» «- » («File» «Open» «Open project from PLC»). .

    (Symbol Configuration).

    ( *.sym *.sdb). — , OPC DDE .

    » » (Dumb symbol entries), .

    » XML » (Dump XML symbol table), — XML , . — .SYM_XML.

    : (target settings) » INI-» (Symbol config from INI file),
    CoDeSys.ini , INI

  • CoDeSys

    CoDeSys V2.3 4-16

    CoDeSys.ini , INI ( » » (Configure symbol file) ).

    » INI-» (Symbol config from INI file) -, (Set object attribute),
    » » (Configure symbol file).

    » » (Set object attributes):

    , . POU ( ) . . — :

    (Export variables of object): POU — . , .

    (Export data entries): .

    (Export structure components): — .

    (Export array entries): — .

    (Write Access): OPC .

    POU, . -, .

  • CoDeSys

    CoDeSys V2.3 4-17

    (Database-connection)

    (Database-connection):

    ENI — .

    (ENI) (Use source control (ENI)): , ENI. ENI — . ENI Server .
    .

    . ‘ENI’.

    ( (Check in), (Get last version) ..) . , -. (‘Project’ ‘Data
    Base Link’) . (Database-connection) — (Properties), — .

    (Automatically place new Ob-jects in the following project data
    base):

    : ( (‘Project’ ‘Object’ ‘Add’)), -. (‘Project’ ‘Object’
    ‘Properties’) .

    :

    (Project): POU , ENI configura-tion/Project

    (Shared Objects): POU , — ENI configuration/Shared

  • CoDeSys

    CoDeSys V2.3 4-18

    (Local): POU ENI.

    (Project) (Shared Objects), — ‘Compile files’, , . .

    (Ask for type of new objects): » » (‘Object’ ‘Properties’) . —
    , .

    ENI (configure ENI) ENI:

    , ENI, c — : (Project), (Shared Objects) ‘Compile files’. ()
    .

    ( Next — Wizard). , . , Login .

    (Macros).

    (Macros):

    (), — CoDeSys. (Edit Macros).

    :

    1. (Name). (New) (Macro list). . . (. ) — , .

    2. (Menu) , (Edit Macros). —

  • CoDeSys

    CoDeSys V2.3 4-19

    . &. : Ma&cro 1, Macro 1.

    3. (Commands) , . CoDeSys. — , (Help) . — . ( ) .

    4. 1-3 OK.

    , . , (Rename).

    (Edit Macros) , — . (Edit Macros).

    :

    .

    : (Create). (Merge project) . — OK. — (Save Macro library) —
    (Save). .mac.

    : (Include). — (Open Macrolibrary), *.mac (Open). .

    : (» » — ‘Project’ ‘Export’).

    4.3 (File) (Project). .

    (File New)

    Untitled. .

    (File New from template)

    . Untitled.

    (File Open)

    . — , CoDeSys , .

    ( .pro) ( .lib). , (Open) .

  • CoDeSys

    CoDeSys V2.3 4-20

    (PLC), . — , (Communication parameters) . , CoDeSys , , . ,
    (Load project from PLC), , . ( , (Online — Sourcecode download). .
    -(Create Boot project)!)

    : , , , . Untitled .

    : , » (Title) (Project info) . , .

    , .

    CoDeSys:

    ENI

    . ENI, — (Project objects) ENI . (TCP/IP-, , , , ) ( — Project
    name), -. (Next). , , — (Shared Objects). (Finish), — CoDeSys. -,
    .

    codesys.ini , — ENI (Save ENI credentials).

    (File) — (Exit).

    , CoDeSys .

  • CoDeSys

    CoDeSys V2.3 4-21

    (File Close)

    . -, CoDeSys , .

    Untitled, — (File Save as).

    (File Save)

    : +

    . Untitled, (File Save as).

    (File Save as)

    . -.

    . .

    (Save as):

    1.5 (Project Version 1.5 (*.pro)), 2.0 (Project Version 2.0
    (*.pro)), 2.1 (Project Version 2.1 (*.pro)) 2.2 (Project Version
    2.2 (*.pro)). , 2.3, . CoDeSys 1.5, 2.0, 2.1 2.2.

    , -. POU CoDeSys, Internal library (*.lib).

    , , — (External library) (*.lib). , -, , .h. — , POU, . POU,
    CoDeSys. , .

    , CoDeSys (Encrypted CoDeSys Projekt) (*.pro), (Encrypted
    internal library) (*.lib), — (Encrypted external library)
    (*.lib).

  • CoDeSys

    CoDeSys V2.3 4-22

    (Encryption), . — .

    :

    . CoDeSys — , .

    , . (Save as).

    — .

    :

    :

    (Edit Licensing Information), — (Edit license info…).

    . ‘ CoDeSys’.

    OK. , CoDeSys , .

    . , , .

    / (File Save/Mail Archive )

    . , CoDeSys, — zip . . — , -.

  • CoDeSys

    CoDeSys V2.3 4-23

    :

    , . , , , . , , (Details). , :

    (Select All) (Select None) . — .

    (Save).

    » » (Save archive), , .

    , , , :

    (Pro-ject File)

    .pro ( CoDeSys)

  • CoDeSys

    CoDeSys V2.3 4-24

    (Refer-enced Libraries) — (Symbol Files)

    *.lib, *.obj, *.hex ( hex-)

    *.sdb, *.sym (, )

    — (Compile Information)

    *.ci (, )

    *.ri ( )

    .*( )

    (Log File)

    *.log ( )

    INI File CoDeSys.ini

    (Configura-tion files)

    , PLC (

    , , .): *.cfg, *.con, *.eds, *.dib,*.

    (Target Files)

    *.tgr ( )

    *.txt ( )

    (Registry Entries)

    Registry.reg ( , CoDeSys, Gateway PS).

    :

    HKEY_LOCAL_MACHINE\SOFTWARE\3S-Smart Software Solutions

    HKEY_LOCAL_MACHINE\SOFTWARE\AutomationAlliance

    — (Bitmap Files)

    *.bmp ( POU )

    (Local Gateway)

    Gateway.exe, GatewayDDE.exe, GClient.dll,

    GDrvBase.dll, GDrvStd.dll, GHandle.dll, GSymbol.dll,

    GUtil.dll, DLL Gateway.

    (Language Files)

    , (*.vis, *.xml)

    , (Other Files). (Other files), — :

    (Add) , . . , . , (Remove). Ok, .

  • CoDeSys

    CoDeSys V2.3 4-25

    , (Comment). — , . OK, readme.txt. , — CoDeSys.

    , :

    (Save) . , . — .zip. — , .

    (Mail) . , MAPI (Messaging Application Programming Interface). .
    -, , (Save) , E-mail, , . -, .

    (Cancel) , .

    : zip !

    (File Print)

    :+

    . — . , OK. . .

    :

    . — (Printer Setup), — . , . , .

    (Project Document). , Extras Make docuframe file .

  • CoDeSys

    CoDeSys V2.3 4-26

    (File Printer setup)

    .

    :

    (File) .dfr, — . DEFAULT.DFR. , (Browse).

    , ( (new page for each object)) ( (new page for each
    subobject)). — (Printer Setup) .

    (Edit), , — . , , POU, — .

    :

    (Insert Placeholder) 5 : (Page), POU (POU name), (File name),
    (Date) — (Content) . :

    (Page)

    {Page}

    POU (POU name)

    {POU name} POU

  • CoDeSys

    CoDeSys V2.3 4-27

    (File name)

    {File name}

    (Date) {Date}

    (Contents)

    {Contents} POU

    C (Insert Bitmap) -, . , — . . — (. ).

    , CoDeSys , .

    : (Show print area margins) (Desktop) . , .

    (File Exit)

    : +

    CoDeSys. , , ( File Save).

    (Project Build)

    :

    . POU, . *.ci, -. , (Project Clean all).

    , , POU, — , .

    (Project-Build), (Online-Download), (Online-Login)
    Online-Login.

    , (Online Login) . -, -. . ().

  • CoDeSys

    CoDeSys V2.3 4-28

    :

    (Auto save before compile) — (Load & Save), .

    , (Object Organizer), . (Exclude from build), . (‘Exclude
    objects’) (. 4.2 , ).

    : . , (Show Call Tree), (Show Cross Reference), — (Unused
    Variables), (Overlapping memory areas), (Concurrent Access), —
    (Multiple Write Access on output) (‘Project’ ‘Check’), .

    (Project Rebuild all)

    (Project Build) , . , , (Clean All).

    . 4.2 ( , (Build)).

    (Project-Build), (Online-Download), (Online-Login)
    Online-Login.

  • CoDeSys

    CoDeSys V2.3 4-29

    (Project Clean all)

    . — , , . .

    : , *.ri, — . *.ri — (Load Download-Information).

    (Project Load Download-Information)

    , , . — .

    .ri . , , . , , , POU . , , POU.

    (Project Clean all) *.ri . — (Project Load
    Download-Information), .

    (Project Translate into another language)

    . , CoDeSys .

    :

    (Create translation file) (Translate project) (View translated
    project) . : ‘ ‘

    (Create translation file) :

  • CoDeSys

    CoDeSys V2.3 4-30

    (Translation file) . .tlt. *.txt — EXCEL WORD, .

    , (Search).

    : (Names), , POU, (Identifiers), (Strings), (Comments),
    (Visualization texts). , (Position information) .

    , — . , , , .

    :

    Text Tooltip-Text. :

    *.tlt *.txt CoDeSys CoDeSys HMI. Target Web- . *.vis .

    (Extras Settings..) . . (Translate into another language) .

    ( Text Tooltip-Text) — , # (, #text#). . (. ).

    (Position information) . , POU , . 3 :

    (None)

    (First)

    (All)

    , , , .

    : (All), 64- .

    (Overwrite existing): — .

    (Target languages) , .

    (Exclude) (Exclude libraries). , , — . , (Included libraries), ,
    (Add). — (Excluded libraries). , (Remove). Ok , .

  • CoDeSys

    CoDeSys V2.3 4-31

    :

    (Add) (Add target Language).

    :

    . — . Ok, . (Remove) .

    OK.

    , . . -? No , — Yes. Backup_of_.xlt.

    :

    ##TODO.

    , , .

    .

    . ##. ##TODO . -, ##NAME_ITEM, ##END_NAME_ITEM ( ##COMMENT_ITEM
    ..).

    , POU ST_Visualisierung. (English) (French) . — .

    : ##NAME_ITEM
    [D:\CoDeSys\projects\Bspdt_22.pro::ST_Visualisierung::0]
    ST_Visualisierung ##English :: ##TODO ##French :: ##TODO
    ##END_NAME_ITEM

  • CoDeSys

    CoDeSys V2.3 4-32

    :

    ##NAME_ITEM
    [D:\CoDeSys\projects\Bspdt_22.pro::ST_Visualisierung::0]
    ST_Visualisierung ##English :: ST_Visualization ##French :: ST_Visu
    ##END_NAME_ITEM

    ##TODO .

    , — .

    : . — . .

    : Language, Flag, , (, ) .

    (Translate project)

    , (Translation file).

    :

    : , , .. .

    (Target language) , -, .

    , OK. , , . — , , .

    (Cancel) .

    , OK : , , , -. : [C:\Programs\CoDeSys\projects\visu.tlt (78)];
    Translation text expected.

    (Show project translated)

    , — , . ( (Translate Project) !)

  • CoDeSys

    CoDeSys V2.3 4-33

    :

    (Translation file). — , (Search).

    (Target language) . «» . OK. ! (Toggle translation).

    (Switch translation)

    (. ‘View translated project’), . — (Toggle translation)
    (‘Project’ ‘Trans-late’).

    (Project Document)

    , :

    POU : , , ,

    PLC, , . POU. .

    , .

  • CoDeSys

    CoDeSys V2.3 4-34

    :

    , .

    , . — , . , — , . , , . — . , , — — .

    , OK. . (File Printer setup) — .

    (Project Export)

    CoDeSys . .

    IL, ST SFC (Common Elements format ).

    POU LD FBD CoDeSys , . ASCII .

    POU, , . ( ).

    : POU FBD LD , — (), -.

    , — (Project Document). One file for each object — , . Ok, . , .
    . .

  • CoDeSys

    CoDeSys V2.3 4-35

    (Project Import)

    .

    . , -, , , : Do you want to replace it?( ?). Yes, , . No, («_0»,
    «_1», ..). Yes, all No, all — .

    , — . , , . , — , , * (, standart.lib*30.3.99 11:20:14). , :
    Cannot find library {\} ( — { \ \ \ }).

    (Project Siemens Import)

    POU Siemens-STEP5 STEP7.

    .

    (Project Compare)

    .

    :

    :

    , , Compare.

    COMPARE. . ( —

    ST IL) ( FBD LD) /POU ( CFC SFC).

    , . POU, , . — POU . , , , (, ) . , — , .

    , !

    :

    (Project Compare) (Project Comparison).

  • CoDeSys

    CoDeSys V2.3 4-36

    :

    (Project to be compared).

    , . , -.

    ENI , , . ENI- (Compare with ENI-Project).

    :

    (Ignore whitespaces)

    (Ignore comments)

    (Ignore properties)

    (Compare differences): , POU , ( ). , — , — (/, ). , .

    :

    0005 ( ).

    ( , )

    OK.

  • CoDeSys

    CoDeSys V2.3 4-37

    :

    1. : :

    Project comparison — . , — . — . POU, , , — :

    : ; .

    : ; .

    : ; — .

    : .

    POU (Properties changed), . (Access right changed) , .

    2. POU

    POU, , POU. POU . — ( , ST,IL), (FBD, LD) (CFC, SFC). , .

  • CoDeSys

    CoDeSys V2.3 4-38

    POU :

    .., — , . .

    , POU, Extras :

    (Next differ-ence)

    ,

    (Previous difference)

    ,

    (Accept change)

    (, ), , . — . , .

    (Accept properties)

    .

    (Accept access right)

    ( -): — .

    : , -.

  • CoDeSys

    CoDeSys V2.3 4-39

    (Project Merge)

    . . , . (Project Document).

    , _1 _2 ..

    (Project Project info)

    . , .

    :

    :

    (File name) (Directory) (Change date)

    . :

    (Title) (Author) (Version) (Description)

    .

    (Statistics), . POU, , .

  • CoDeSys

    CoDeSys V2.3 4-40

    :

    (License info) , CoDeSys- , (‘File’ ‘Save as…’). — (.
    CoDeSys’).

    (Ask for project info) (Load & Save) , .

    (Project Global Search)

    POU, . (. Project Document).

    .

    (Global Search) . . , , .

    , . , (Edit Search).

    (Message window), — . , , .

    :

    : (Decl) (Impl). . .

  • CoDeSys

    CoDeSys V2.3 4-41

    :

    , POU , -. +, .

    (Project Global replace)

    POU, . (Project Global Search) (Edit Replace). , , -.

    .

    (Project Check)

    . , . . — .

    :

    (Unused Variables) (Overlapping memory areas) (Concurrent
    Access) (Multiple writes to output)

    .

    : .

    (Unused Variables)

    , , . — POU , . : PLC_PRG(4) var1. , , -.

    (Overlapping memory areas)

    , , AT. -, var1 AT %QB21: INT var2 AT %QD5: DWORD , 21- .

    :

    %QB21 is referenced by the following variables: PLC_PRG (3):
    var1 AT %QB21 PLC_PRG (7): var2 AT %QD5

    (Concurrent Access)

    , , . :

    %MB28 is referenced in the following tasks :

  • CoDeSys

    CoDeSys V2.3 4-42

    Task1 PLC_PRG (6): %MB28 [read-only access] Task2 POU1.ACTION
    (1) %MB28 [write access]

    (Multiple writes to output)

    , . -:

    %QB24 is written to at the following locations: PLC_PRG (3):
    %QB24 PLC_PRG.POU1 (8): %QB24

    CoDeSys — . . — . .

    0 7. 0 , .. .

    . 0 , — 0- .

    0 , . .

    :

    (User group) , , (Password). , :

    «The password is not correct.»( )

    , .

    (Passwords for user group), (Object properties Access
    rights).

    (Project Passwords for user group)

    . 0.

    :

    (User group) (Password). *.

  • CoDeSys

    CoDeSys V2.3 4-43

    (Confirm password) . — OK «The password does not agree with the
    confirmation», , . — .

    , .

    : , !

    (Project Database)

    , (ENI) (Use source control (ENI)) (Data base-connection).
    ENI:

    1. (Login) — ENI

    (Data Base Login) ( , ), :

    2. (Define) 3. (Get Latest Version) 4. (Check Out) 5. (Check In)
    6. (Undo Check Out) 7. (Show differences) 8. (Show Version
    History)

    , (Database Login) .

    (Data Base Login) (Project) , , -:

    9. (Multiple Define) 10. (Get All Latest Versions) 11. (Multiple
    Check Out) 12. (Multiple Check In) 13. (Undo Multiple Check Out)
    14. (Project Version History) 15. (Label Version) 16. (Add Shared
    Objects) 17. (Refresh Status)

  • CoDeSys

    CoDeSys V2.3 4-44

    :

    : : — . x : . : . : ( — Task configura-tion, — Sam-pling Trace,
    — PLC Configuration, — Target Settings, — — Watch- and Recipe
    Manager) , . , — (Check out) -.

    (Login)

    ‘Login’, — ENI . -. ENI (ENI Admin, User Management).

  • CoDeSys

    CoDeSys V2.3 4-45

    (Login):

    (Project objects) :

    (Host): ENI Server ( ‘TCP/IP ‘ — — ‘Database connection’).

    (Project): ( (Project name) / — ‘Database connection’ / ‘Project
    Ob-jects’).

    (Credentials):

    (User name) (Password). Use as default, .

    OK . (Shared objects). OK. — (Compile files).

    (Login) , .

    : , — ENI (Save ENI credentials) , (Load & Save).

    (Define)

    : (‘Project’ ‘Project Database’ ‘Define’).

    , — . ‘Project’ ( ) ‘Shared objects’ ( ) ‘Local’ ( ).

    ( ) .

    (Get Latest Version)

    : (‘Project’ ‘Project Data-base’ ‘Get Latest Version’)

    , -. (Check Out), — .

  • CoDeSys

    CoDeSys V2.3 4-46

    (Check Out)

    : (‘Project’ ‘Project Database’ ‘Check Out’)

    .

    ‘Check out object’. -, . — +.

    , , .

    . , .

    (Check In)

    : (‘Project’ ‘Project Database’ ‘Check In’)

    . , .

    ‘Check in object’. -, . — +.

    .

    (Undo Check Out)

    : (‘Project’ ‘Project Database’ ‘Undo Check Out ‘)

    . — . ( ) — .

    (Show Differences)

    : (‘Project’ ‘Project Database’ ‘Show Differences’)

    () , . CoDeSys , , — (. (‘Project’ ‘Compare’)).

    (Show Version History)

    : (‘Project’ ‘Project Data-base’ ‘Show Version History’)

    , . — , , :

  • CoDeSys

    CoDeSys V2.3 4-47

    :

    :

    Version: . — . (label) , .

    User: ,

    Date:

    Action: . : ‘created’ ( ), ‘checked in’ ( , ) ‘labeled with ‘ (
    ).

    :

    Close: .

    Display: CoDeSys. : «ENI: /

    Details: ‘Details of Version History’:

    File ( ), Version (. ), Date (. ), User (. -), Comment (, -).
    Next Previous ‘Version history of ..’.

    Get latest version: CoDeSys -.

    Show Differences: , () . , . , .

    Reset version: (). , — , ! .

    Labels only: , .

    Selection box ‘Labels only’: , . — ‘All’.

  • CoDeSys

    CoDeSys V2.3 4-48

    (Multiple Define)

    : (‘Project’ ‘Project Database’ ‘Multiple Define’)

    (Define) — (Object Properties) . — ENI (ENI-Selection), — POU. ,
    . POU OK.

    (Get All Latest Versions)

    : (‘Project’ ‘Project Data-base’ ‘Get All Latest Versions ‘)

    . :

    , CoDeSys.

    , , .

    (Multiple Check Out)

    : (‘Project’ ‘Project Database’ ‘ Multiple Check Out’)

    . ENI (ENI-Selection) OK. . (Check Out).

    (Multiple Check In)

    : (‘Project’ ‘Project Database’ ‘Multiple Check In’)

    . ENI (ENI-Selection) OK. . — (Check In).

    (Undo Multiple Check Out)

    : (‘Project’ ‘Project Database’ ‘ Undo Multiple Check Out’)

    . ENI (ENI-Selection) OK. . — (Undo Check Out).

    (Project Version History)

    : (‘Project’ ‘Project Database’ ‘ Project Version History’)

    , .

    ‘ ‘. (-, , ) . (Version history).

  • CoDeSys

    CoDeSys V2.3 4-49

    (Show Version History). — :

    1) ‘ ‘ (Reset Version) . 2) (Get latest version) , —

    ! , CoDeSys . : , , ! , , , -.

    (Label Version)

    : (‘Project’ ‘Project Database’ ‘Label Version’)

    «» (label) , . ‘ ‘ (Label) (, «Release Version») , , Comment.
    OK. . — . (Version). (Labels only) .

    (Label project )

    (Add Shared Objects)

    : (‘Project’ ‘Project Database’ ‘Add Shared Objects ‘)

    (Shared Objects) . (Project Objects) , — () ( ) (Get (all)
    latest version(s)) , . (Shared Objects) , — .

    (Add Shared Objects) ENI (Browse ENI). — OK .

  • CoDeSys

    CoDeSys V2.3 4-50

    ‘ ENI (Browse ENI)

    (Refresh Status)

    : (‘Project’ ‘Project Database’ ‘Re-fresh Status’)

    , .

    4.4 .

    , (POU), , (visualizations), (global) — (variable
    configuration), (Sampling trace), (PLC configuration), (Task
    Configuration) (Watch and Recipe Manager). . .

    POU , (, ). (VAR_GLOBAL VAR_CONFIG).

    (drug&drop). — , (-, Object_1).

    POU, , . .

    , . , «» «» . — (Expand node) (Collapse node). (New Folder).

    : , — .

  • CoDeSys

    CoDeSys V2.3 4-51

    :

    (New Folder)

    . , . -. , , .

    , , , + .

    (New Folder). — :

    . .

    , — .

    (New Folder) , — , 1 (New Folder 1). , .

    (Expand node) (Collapse node)

    (Expand node) . (Collapse node) . .

    , , , + .

    (Project Object Delete)

    :

    -. . — (‘Edit’ ‘Undo’).

    , . (Edit Cut) .

    (Project Object Add)

    :

    . . (Global Variables), (Data types), (Function), (Function
    Block) (Program) , . (Save as template).

  • CoDeSys

    CoDeSys V2.3 4-52

    POU POU (Name of the new POU) -. , .

    :

    POU POU, —

    . POU .

    POU. , POU —

    .

    . , , , — POU, . , POU.

    POU POU (, ) , POU . POU — POU (Type of the POU), (Language of
    the POU). POU , — (Return Type). (, , ). (Input assistance), .

    POU:

    POU , OK , , . .

    (Edit Insert) — . , (, Righ_1).

    ENI, , ( — (Database-connection)), -, . . (Properties) .

    (Save as template)

    (Global Variables), (Data types), (Function), (Function

Перед тем, как программировать ПЛК в среде разработки CoDeSyS 2.3 новички часто задаются вопросом: А какие системы требуется установить для корректной работы с аппаратом?? А как конфигурировать входы и выходы контроллера?? А каким образом связать устройство с ПК?? И снова, а как, а как?? Все мы с вами понимаем, устройства сложные и алгоритмы объёмные, и на изучение потребуется время. Я вот думаю, может написать небольшую книжку и назвать codesys для чайников? А вы согласны?

Из этой статьи вы узнаете:

Как работает ПЛК?
Из чего состоит программный комплекс для полноценной работы с ПЛК
Рабочее окно программы
Простой пример на ST

Здравствуйте уважаемые коллеги и гости. Пишет вам автор блога kip-world.ru, Гридин Семён, и в этой статье я вам расскажу, как правильно программировать контроллер. Тема достаточно актуальная, я надеюсь после прочтения статьи, некоторые вопросы отпадут самим собой. =)

Как работает ПЛК?

ПЛК(программируемый логический контроллер) — это устройства полностью автоматизирующие работу аппаратов, различных агрегатов и станков. Фактически, это некий блок, который содержит входы и выходы, для подключения датчиков и исполнительных органов. Внутри прописывается логика.

Вычисления в устройстве выполняются циклически. То есть одни и те же действия выполнения программы выполняются в короткий промежуток времени.

Подбор и сопровождение тендеров по материалам tendervsem.ru.

В один цикл осуществляемый прибором выполняются следующие операции:

  1. Начало цикла;
  2. Чтение состояния входа;
  3. Выполнение кода пользователя;
  4. Запись состояния выходов;
  5. Обслуживание аппаратных ресурсов;
  6. Монитор системы исполнения;
  7. Контроль времени цикла;
  8. Переход на начало цикла;

Не буду больше разглагольствовать по теории. Давайте сразу перейдём к практике.

Из чего состоит программный комплекс для полноценной работы с ПЛК

Конечно вам поначалу покажется, что слишком много нужно знать, чтобы связать друг с другом основное приложение и утилитки, а потом соединить устройство. Я хочу вам сказать, что ничего сложного в процессе установки и связей — нет. В этом поможет моя статья.

Для начала нам нужно установить основной дистрибутив CoDeSyS 2.3 c официального сайта ОВЕН. А, я предлагаю во многих постах, касающихся программирования, использовать устройство ОВЕН ПЛК63. Так как это универсальное устройство с экраном. У него на борту есть и дискретные входы, и аналоговые входы, и релейные выходы.

Итак, скачиваем программу:

Дистрибутив с сайта

Затем следует стандартная процедура установки. Указываем путь и все время жмём “Далее”, “Далее”.

Инсталл

Следующим этапом будет установка таргетов для плк. Таргет — это некое описание о конфигурации ПЛК. Инструкция подсказывает CoDeSyS 2.3, какое количество и какие входы/выходы имеет устройство.
Скачиваем также с сайта ОВЕН. Рекомендую установить все таргеты, которые там есть. Чтобы потом не искать и не думать об этом, если придется писать алгоритм на другой ПЛК.

Таргеты

Запускаем автоматический установщик, устанавливаем инструкции. Всё, половину пути мы с вами уже сделали в этой работе! После этих всех процедур можно устанавливать библиотеки, но о них позже. Переходим к следующему пункту.

Рабочее окно программы

Дистрибутив мы с вами установили, таргеты тоже. Давайте мы с вами рассмотрим рабочее окно среды разработки, элементы меню и основные вкладки.

Рабочее окно

Основное поле на рисунке выше делится на три области:

  1. Редактор переменных и их типов;
  2. Дерево объектов;
  3. Редактор основного алгоритма программы;

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

Дерево объектов — в этом окне располагаются такие объекты, как функции, функциональные блоки, подпрограммы, конфигурация ПЛК, библиотеки. Об этом я расскажу позже.

Редактор программы — тут мы с вами описываем основной алгоритм программы работы контроллера. Пишется на любом языке стандарта МЭК. Более подробно, можете прочитать статью.

Простой пример на ST

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

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

PROGRAM PLC_PRG

VAR

   T1:TON; (‘таймер’)

   Timer_Ust:WORD:=5; (‘уставка таймера’)

   Time_tekuch:TIME; (‘текущее время’)

END_VAR

T1(IN:=Start , PT:=DWORD_TO_TIME(Timer_Ust*1000));

Time_tekuch:=T1.ET;

IF T1.Q THEN Out:= 1; ELSE Out:=0;

END_IF;

Запускаем наш дистрибутив, создаём новый проект, указываем нужный нам таргет. Не забудьте предварительно проверить, что у вас установлены драйвера на преобразователь USB-COM, он нам понадобится для связи.

диспетчер

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

Окно

В листинге присутствуют две глобальные переменные Start и Out. Они связаны с физическими входами и выходами. Настройки все мы осуществляем во вкладке конфигурация ПЛК.

конфигуратор

Компилируем проект (проверяем его на актуальность кода, чтобы не было ошибок). Можно нажать кнопку F11.

Компиляция

Вводим нужные настройки связи, как на картинке.

связь

Собираем нашу схему логического программируемого контроллера. Подключаем интерфейс RS-232 с одной стороны и USB с другой. Жмём “подключение”. Ощущаем радость от процесса. =)) Если произошла ошибка связи, то проверьте ещё раз все подключения и параметры. Часто бывает, что провод преобразователя оборван.

Весь процесс я записал на видео, если будет что-то непонятно.

В следующей статье я напишу о мобильном приложении aliexpress, не пропустите. Будет интересно.

Успешных вам внедрений, дорогие читатели и гости. Если понравилась статья, подписывайтесь на новости блога и расскажите друзьям. А на каком языке и оборудовании вы предпочитаете строить систему автоматизации?

С уважением, Гридин Семён.

Тестовый стенд для ОВЕН ПЛК 110

Тестовый стенд для ОВЕН ПЛК 110

Ну что? Я продолжаю рассказывать базовые понятия ПЛК и то, как их программировать. Сегодня я расскажу про свои дальнейшние приключения с ОВЕНом и тем, как я его программировал. Как я уже говорил, программирование ПЛК — это совсем другая религия! Это вам не схемки или кубики в логическом реле двигать! Тут всё значительно мудрее и очень важен грамотный выбор железа, грамотное физическое подключение линий IO и внешних модулей.

Для ПЛК обычно есть два варианта сред разработки: CodeSys и собственные. CodeSys — это бесплатная среда разработки, которая делится на компилятор и ядро. Ядро CodeSys производители ПЛК загружают в него при производстве. И всё, что надо для программирования такого ПЛК — скачать CodeSys и специальные файлы, которые описывают конкретную модель ПЛК.

Второй вариант — это собственное ядро и собственная среда разработки. Тут уже каждый производитель извращается как нравится. Я вот хотел повозиться с Сименсами, но мне рассказали, что их среда разработки требует очень мощный комп и жрёт много ресурсов. Мне это не нравится, и я лучше подберу что-нибудь такое что работает с CodeSys, потому что мне проще поставить один раз хорошую среду, вылизать её настройки и заниматься только программированием.

ПЛК, который заказчик купил под свой щит работает на ядре CodeSys v2. Сейчас везде используется ядро CodeSys v3, а вторая версия ядра является устаревшей. Но так как принципы программирования всё равно одинаковые, то этот пост будет полезен всем начинающим. Да и мне охота поделиться информацией, которую я собирал по крупицам, неделю обложившись документацией. Блин! Мне кажется, что мне уже надо или учебные курсы вести, или посты продавать, гыгы =)

Содержание

  • Настройка внешних модулей и ModBus
  • Изучаем CodeSys
  • Распределяем ресурсы ПЛК
  • Назначение переменных в ПЛК
  • Программируем
  • Задачи
  • Связь с ПЛК и заливка программы
  • Библиотеки

Первое, с чего начинается работа по программированию — это создание тестового стенда. У меня валялись кнопки на DIN-рейку от ABB, и я собрал из них четыре линии ввода: три на бортовом IO ПЛК, а одну — на внешнем модуле для того, чтобы проверить как работает опрос модулей по ModBus.

Кнопки для подачи сигналов на входы ПЛК

Кнопки для подачи сигналов на входы ПЛК

Настройка внешних модулей и ModBus

Первое, с чего начинается наше программирование — это с конфигурации железа. Любой внешний модуль имеет на шине RS-485 свой адрес. А ещё модулю надо указать правильные настройки обмена: скорость, чётность и тип протокола обмена.

Каждый модуль или внешнее устройство настраивается по своему. У кого-то надо будет зайти в меню и поменять там цифирки. У кого-то поставить перемычки. А у других устройств для их настройки предусмотрена специальная программа-конфигуратор. У ОВЕНа сделано именно так.

Их модули подключаются штатно под RS-485 к компьютеру и настраиваются при помощи программы. Для того, чтобы подключить RS-485 к компьютеру, понадобится любой преобразователь интерфейсов. Их на рынке навалом и можно использовать любой. Если хочется — можно RS-485 завернуть даже в обычный Ethernet и общаться с модулями или нашей системой по сетке.

Так как вокруг меня был ОВЕН, то я для личных целей купил преобразователь ОВЕН АС-4. Он у них сделан в корпусе на DIN-рейку, питается от самого же порта USB. Из фич — то, что перемычками можно подключать и изменять сопротивление резисторов-терминаторов шины RS-485.

Мы подаём на модуль питание и подключаем его к преобразователю:

Преобразователь ОВЕН АС-4 и настройка модуля IO

Преобразователь ОВЕН АС-4 и настройка модуля IO

Дальше запускаем программу «Конфигуратор М110». Первым делом программа предложит нам задать настройки для подключения к модулю. Если мы только что купили модуль — то можно смело тыкать кнопку «Заводские сетевые настройки». А если модуль уже настроен на какой-то адрес и другие параметры протокола, то нам надо их знать заранее и ввести в программу:

Подключение к модулю IO в программе

Подключение к модулю IO в программе

Если по какой-то причине мы забыли все настройки модуля (например нам подарили БУшный модуль), то можно запустить сканирование сети. Программа найдёт всё, что может и предложит подключиться к указанному модулю. Ну а если мы совсем ничего не можем — то сам модуль ввода-вывода можно жёстко сброить на заводские установки, если установить одну из перемычек, которые находятся на нём под крышкой. Это описано в инструкции на модуль.

После того, как мы подключились к модулю, программа выдаёт нам все его настройки, которые можно прочитать и записать в модуль. Нас интересуют настройки сети: скорость обмена, сетевой адрес и всякие таймауты. Напоминаю, что у модулей есть фишка: если его не опрашивали по RS-485 указанное время, то он считает что связь оборвалась и выставляет на выходах аварийные значения, чтобы оборудование не натворило дел (сам не поехал лифт или не включились насосы и прочее). В нашем случае модуль управляет лампочками, поэтому мы выставляем все аварийные значения на ноль.

Настройки модуля релейных выходов МУ110-16Р

Настройки модуля релейных выходов МУ110-16Р

А некоторые модули ввода-вывода ещё и могут общаться по разным протоколам. Да и даже у самого ModBus есть парочка модификаций: RTU (устройства обмениваются двоичными даными) и ASCII (все данные гоняются в текстовом виде). Мы будем использовать более быстрый протокол ModBus-RTU.

Настройки модуля входов МВ110-16Д

Настройки модуля входов МВ110-16Д

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

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

Изучаем CodeSys

Итак, с помощью программы мы настроили все модули на одинаковые параметры связи и дали им адреса. Теперь их можно физически подключить к ПЛК, а сам ПЛК воткнуть в сетку. ПЛК ОВЕН 110 можно программировать тремя способами: через USB, через RS-232 и по сетке. Самый лучший способ из этого — программировать ПЛК по сетке, потому что в этом случае он не перезапускается, а программа заливается туда в горячем режиме. То-есть написали, загрузили, проверили. Что-то исправили? Сразу же загрузили и проверили. Если же программировать ПЛК по USB — то там надо вынимать USB-кабель после заливки программы, что адски неудобно.

Связь с ПЛК 110 по Ethernet

Связь с ПЛК 110 по Ethernet

И теперь начинаем разбираться с CodeSys. Я скачал её прямо с сайта ОВЕНа, где она есть в русском варианте. Вообще я не люблю русские переводы специального софта, потому что переводят его те, кто ни фига не понимает в технике. Например, самый адский перевод был у AutoCad: «Вырезать, Обрезать, Растянуть, Расчленить, Взорвать». Или у P-CAD, где Net (соединение) перевели как «Сеть». Но в случае с CodeSys русский перевод мне помог разобраться в терминологии и в том, где что находится. После этого русский перевод мне уже не нужен, и я могу ориентироваться в английской среде свободно.

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

Среда разработки CodeSys v2 для ПЛК 110

Среда разработки CodeSys v2 для ПЛК 110

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

Пример проекта на CodeSys на нескольких языках одновременно

Пример проекта на CodeSys на нескольких языках одновременно

Например, можно программировать при помощи блок-схем (CFC). Это как нам в школе алгоритмы учили рисовать в стиле «Начало => Ввод данных => Если .. то => иначе => Конец». Тут это рисуется при помощи блоков:

Пример последовательных логических схем (CFC)

Пример последовательных логических схем (CFC)

А можно програмировать функциональными блоками (FBD), как на логических реле. В этом случае схема исполняется не последовательно как в CFC, а по сигналам, как в обычной цифровой логике на микросхемах:

Пример разработки на функциональных блоках (FBD)

Пример разработки на функциональных блоках (FBD)

Для тех, кто переходит с обычных релюшек и автоматики есть возможность писать всё в релейной логике LD, LAD. Тогда всякие сигналы описываются контактами, которые включают или выключают реле:

Пример разработки на релейно-контактной схеме (LD)

Пример разработки на релейно-контактной схеме (LD)

А ещё есть язык инструкций IL. Он подойдёт тем, кто любит суровый ассемблер. Смотрите, как он похож на него же:

Пример разработки на языке инструкций (IL)

Пример разработки на языке инструкций (IL)

А на мой взгляд самый удобный язык для сложных задач — это обычный текст ST, который похож на смесь СИ и Pascal одновременно:

Пример разработки на редакторе кода (ST)

Пример разработки на редакторе кода (ST)

Тут тебе есть и комментарии, и возможность написать любые условия.

Внутри CodeSys можно совмещать все эти языки и создавать свои функциональные блоки. Например, вы можете на ST написать сложный блок, который чего-нибудь вычисляет и выдаёт на выходе логическое значение 1 или 0. А потом взять язык FBD и из этих блоков составить «простую» логическую схемку.

Распределяем ресурсы ПЛК

Наше программирование, конечно же, тесно связано с железом. И наша среда CodeSys должна знать то, какие железо мы сейчас используем. Это конечно же понятно: в разных ПЛК есть разное количество памяти, портов ввода-вывода и прочих штуковин.

Поэтому новый проект всегда начинается с выбора платформы. На английском это называется Target. Сама среда никогда не будет знать о всяких ОВЕНах и других ПЛК. Изначально она знает только о некоем абстрактном ядре «3S CodeSys». Чтобы она узнала про наши ПЛК, нам надо пойти на сайт разработчика и скачать оттуда Target-файлы для наших ПЛК.

После этого Target’ы загружаются в CodeSys (на версии 2 этот процесс адски мутный, неочевидный и противный), и мы наконец-то можем творить. Выбираем нужный вариант нашего ПЛК:

Выбор железа для разработки программы под ПЛК

Выбор железа для разработки программы под ПЛК

Теперь мы сразу вспоминаем то, что ПЛК — это многозадачная система, внутри которой крутятся задачи — программы, которые что-нибудь делают. Задач может быть несколько, но для работы ПЛК нужна хотя бы одна. В CodeSys она обязана называться «PLC_PRG», и именно её нам сразу предлагают создать после выбора платформы ПЛК.

ОШИБКА: Правильно она должна называться PLC_PRG — только тогда не надо создавать задачи, и программа будет работать сразу! Позже я исправлю этот пост (дурак был в 2016)!!

Сразу же при её создании надо выбрать язык, на котором вы будете писать код. Если вы вдруг ошиблись с названием языка (я постоянно путаю IL и ST), то можно просто удалить эту задачу и создать новую с тем же именем.

Создание основной программы по умолчанию

Создание основной программы по умолчанию

После этого наш проект создан и среда от нас отстала. Если мы пишем на ST, то в коде PLC_PRG достаточно поставить «;» и программа откомпилируется. Но работать ничего не будет. Почему? А потому что ПЛК не знает, как к его ресурсам обращаться и чего у него вообще есть.

И вот чтобы его этому научить — надо аккуратно и внимательно разобраться с его ресурсами и с тем, как туда прописывать внешние модули ввода-вывода. Всё это кажется лёгким только тогда, когда сам всё понял. А когда смотришь на конфигурацию ПЛК в самый первый раз, то от неё взрывается голова. Я разбирался с этим дней пять, потому что ещё и инструкция по работе с CodeSys на сайте ОВЕНа говорит «Сделайте это и то», но не говорит ПОЧЕМУ так надо делать. Я этот недостаток хочу исправить и потом пошлю ОВЕНу ссылку на эти посты.

Для того, чтобы CodeSys знала про все-все ресурсы и ввод-вывод всей системы на базе ПЛК, это всё надо прописать руками. То-есть, вся конфигурация системы прописывается в том же программном коде жёстко. И поэтому когда вы выбираете всякие модули ввода-вывода, назначаете им параметры связи и адреса, вы должны понимать, что это останется навсегда. А если надо будет поменять адрес устройства — то вам надо будет перекомпилировать проект.

Общий концепт ресурсов и обращения к ним сделан при помощи неких адресов. Адреса эти вычисляет сама среда по нашей конфигурации ПЛК. На скриншоте ниже эти адреса начинаются со знаков «AT %». Чтобы программист не мучился с этими адресами, он может создать обычные программные переменные, которые будут использовать вместо адресов понятные имена типа «WaterPump», которая на самом деле будет говорить о внешнем выходе по адресу типа «%QW6.3.0.0».

Поэтому первой нашей задачей будет изучить окошко «Конфигурация ПЛК» и то, что там можно делать. Давайте на него посмотрим:

Конфигурация ПЛК и его ресурсов

Конфигурация ПЛК и его ресурсов

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

Слева у меня сейчас развёрнута конфигурация самого ПЛК. Чего у нас тут есть? Есть два быстрых входа, 16 обычных входов (в сумме — 18). Так же есть четыре быстрых выхода и 10 обычных — в сумме 14. Это соотвествует тому, что у этого ПЛК действительно есть. Дополнительно есть Special Input — это кнопка «F1» на самом ПЛК и Special Output — это пищалка ПЛК. Если туда записать «1», то пищалка будет пищать и привлекать наше внимание к системе.

Около этих ресурсов есть обозначение «[FIX]» или «[SLOT]». Если написано «SLOT», то это означает что программно можно заставить среду воспринимать эти входы или выходы не как дискретные 1..0, а например как энкодер или ШИМ-регулятор. Это сделано для того, чтобы облегчить программирование с заставить ПЛК максимально автоматически обрабатывать данные с IO, не нагружая этим программиста. Соотвественно те ресурсы, которые «FIX» изменять нельзя и они всегда будут теми, какие они и есть.

Около каждого ресурса как раз и указан его адрес, по которому к нему можно обращаться. Вот если мы хотим программно включить быстрый выход 2, то нам нужен адрес «%QX2.0». Про то, как назначать адреса переменным, я расскажу позже.

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

Настройка безопасных значений выходов ПЛК

Настройка безопасных значений выходов ПЛК

Идём дальше! Это-то мы изучали внутренние ресурсы, которые есть на борту ПЛК. А как же нам добраться до внешних ресурсов? Вот у нас есть аж три модуля ввода-вывода. Но где же они?

А нигде! Их надо добавить ручками. Логика тут простая и технарская: то, что у тебя есть физически, должно быть и в программе. Давайте вспомним, чего у нас есть физически? Модули? Неа! У нас есть протокол ModBus!

Поэтому мы кликаем на самом ПЛК и выбираем из меню этот самый ModBus (Master) вот так, как показано ниже. Master — потому что главный у нас в сети ПЛК, и именно он будет управлять всеми другими модулями. Так же там есть ещё и другие протоколы обмена для разных вариантов сети. Например можно было вообще взять собственный протокол «ОВЕН» и построить сетку на нём.

Добавляем внешний интерфейс связи

Добавляем внешний интерфейс связи

Обратите внимание, что этот протокол сейчас не привязан к физическим проводам ПЛК! После того, как мы добавим наш ModBus, система просто будет знать что есть некий абстрактный протокол, по которому гоняются байтики. Но через какой порт ПЛК это будет работать — она пока ещё не знает!

Что же делать? Придётся научить нашу систему нужному порту. Для этого мы разворачиваем дерево под нашим ModBus’ом и видим искомое. По умолчанию система подставила самый первый попавшийся интерфейс ПЛК — «Debug RS-232». Мы видим около него волшебную надпись «SLOT». Кликаем по ней правой кнопкой мыши и — вуаля! Мы можем заменить его на нужный на RS-485.

Выбираем тип интерфейса RS-485

Выбираем тип интерфейса RS-485

Причём список замены будет только из тех вариантов, которые действительно есть в именно этом ПЛК. Например в некоторых ПЛК бывает аж два интерфейса RS-485, на которых можно построить две разные сетки ModBus.

И вот только теперь мы дошли до физического уровня: собственно самого RS-485. Для него у нас есть настройки протокола обмена и параметров связи. Если вы помните, то мы все модули конфигурировали на ModBus RTU и скорость обмена 9600. Теперь вставим эти же настройки в нашем ПЛК:

Настраиваем параметры протокола интерфейса

Настраиваем параметры протокола интерфейса

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

Вот сейчас мы как раз и добавим наши внешние модули. Сам ОВЕН рекомендует добавлять свои модули как «Unversal ModBus Device» — некое абстрактное устройство. Сделаем так:

Добавляем устройство ModBus

Добавляем устройство ModBus

Теперь у нас появился некий внешний модуль, который подключен на нашу шину RS-485 и будет работать по ModBus. Но напоминаю вам то, что протокол ModBus — это просто способ читать и записывать байты в и из устройств. И более ничего. А вот что значит каждый байт и та область памяти, куда его надо записать/прочитать — знает разработчик модуля и разработчик системы на базе ПЛК.

Для каждого модуля надо будет задать параметры связи. Для нас это адрес модуля (ModuleSlaveAddress) и время опроса его контроллером. Контроллер будет автоматически общаться с модулем раз в столько миллисекунд, сколько мы укажем.

Настраиваем параметры устройства

Настраиваем параметры устройства

Время опроса позволяет снизить нагрузку на шину связи. Например если модуль управляет лампочками освещения, то его можно опрашивать реже, отдавая время шины каким-нибудь более быстрым модулям аналогового регулирования или кнопкам для управления этим светом (чтобы быстрее их опрашивать).

Ну добавили мы модуль, и чего? А как система узнает как рулить его входами или выходами? Вообще, откуда она узнает, где они у него находятся? А узнает она это через человека, который достанет и прочитает инструкцию на модуль. Для любого устройства с протоколом ModBus производитель даёт таблицу, в которой указаны все адреса его регистров. Выглядит эта таблица вот таким образом, например:

Пример регистров устройства из документации

Пример регистров устройства из документации

Тут нас интересует два момента. Так как это модуль ввода, то нам надо получать значения его входов. Производитель, чтобы не гонять по сети тьму байтов, упаковал все 16 входов в 16 бит — в два байта, в тип WORD. Значит, нас интересует регистр номер 51, который надо будет читать из модуля. Следующий момент, который нам важен — это проверить команду, которая используется для записи-чтения данных в этот модуль. Иногда они могут отличаться от стандартных.

Отлично! Вот теперь мы всё знаем, чтобы добавить это в наш ПЛК. Тыкаем менюшкой на нашем модуле и выбираем, что добавить. типы в CodeSys называются так:

  • 8 Bit — BYTE, байт
  • Register — INT, WORD — два байта
  • 32 Bit — DWORD, четыре байта

Так как в документации видно что мы читаем двухбайтовое слово — то нам нужен тип «Register input»:

Добавляем регистр устройства в конфигурацию

Добавляем регистр устройства в конфигурацию

Теперь задаём параметры именно для этого кусочка: адрес регистра, который читаем и команду, которой читаем.

Настраиваем адрес регистра и способ его опроса

Настраиваем адрес регистра и способ его опроса

Вот теперь (см. скриншот сверху) ПЛК знает что у нас есть протокол MoBus-RTU на основе интерфейса RS-485, на котором висит устройство с адресом «1», из которого мы читаем два байта из ячейки «51».

А вот как выглядит конфигурация ПЛК для моей системы. У меня стоит один модуль ввода на 16 входов и модуль вывода на 16 выходов. И на будущее для диммирования света стоит модуль аналогого вывода.

Полный список внешних устройств и внешних регистров

Полный список внешних устройств и внешних регистров

Назначение переменных в ПЛК

Вот теперь у нас есть все-все адреса наших ресурсов. Чтобы нам было удобно ими пользоваться, мы заведём для них программные переменные. Это тоже ручная работа, в которой требуется внимательность. А ещё её в CodeSys v2 делать не очень удобно, потому что в табличке для ввода переменных не меняется ширина колонок.

Использовать в программах прямые адреса — ПЛОХО, потому что программа будет зависеть от них. А адреса могут меняться, если вы добавите в дерево новое устройство или что-то поменяете! Ниже будет показан способ, как присвоить переменные объектам в дереве напрямую.

Посмотрим на конфигурацию ПЛК и выцепим оттуда адреса всех наших входов и выходов. Я их подчеркнул красным:

Адреса переменных внутреннего ввода-вывода

Адреса переменных внутреннего ввода-вывода

А теперь создадим переменные для них. Для этого мы идём в раздел «Глобальные переменные» и начинаем заполнять табличку примерно так:

Создаём переменные внутреннего ввода-вывода

Создаём переменные внутреннего ввода-вывода

Видите? Мы указываем название переменной и прописываем её адрес и тип. И теперь чтобы включить внутренний выход 1, нам надо написать «MOuts0_1 := TRUE;».

Проделаем то же самое с внешними устройствами. Тут адреса становятся длиннее:

Адреса переменных внешнего ввода-вывода

Адреса переменных внешнего ввода-вывода

И редактировать их не совсем удобно. Заполняем переменные:

Создаём переменные внешнего ввода-вывода

Создаём переменные внешнего ввода-вывода

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

Ну и если теперь залить эту пустую программу (в коде мы ничего не написали) в ПЛК, то он сразу же примется опрашивать наши модули. На фотке ниже я случайно заснял момент, когда ПЛК опрашивает один из модулей.

После запуска ПЛК начинает опрашивать все внешние устройства

После запуска ПЛК начинает опрашивать все внешние устройства

Программируем

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

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

Код преобразования входных переменных к типу BOOL

Код преобразования входных переменных к типу BOOL

То же самое я проделал с выходами:

Код преобразования выходных переменных из типа BOOL

Код преобразования выходных переменных из типа BOOL

Теперь можно кодить. Для теста я сделал самое простое: нажимаем кнопку — срабатывает выход. То-есть мы просто присваиваем выход входу и наслаждаемся работой мощного ПЛК ;)

Кусочек прошивки для управления освещением на ПЛК

Кусочек прошивки для управления освещением на ПЛК

Ещё я нашёл в Сети пример того, как сделать на CodeSys импульсное реле и тоже его протестировал. Кстати, пример лежит на форуме ОВЕНа.

На форуме у них не совсем приятно. Там тусуются ушлые товарищи (не из ОВЕНа), которые в личке каждому новому пользователю сразу предлагают услуги по разработке и поддержке решений на ПЛК. Мне один такой тоже написал. Я ради прикола послал его нафиг и расспросил, почему он это сделал. Ответ был типично маркетологовский: «Ну так если ты тут зарегался, значит ты можешь быть моим клиентом».
В итоге товарищ был послан далеко и надолго. Особенно после того, как стал угрожать мне завалить мой блог за посыл нахуй. М-да. Страшно, в общем, на форуме ОВЕНа.

Задачи

Кратко покажу, чего есть из задач и чего с ними можно делать. Напоминаю: задача — это кусок программы, который ПЛК будет выполнять через указанное время. Есть системные события, которые показаны ниже (запуск ПЛК, остановка ПЛК, перед и после сброса):

Настройка задач в ПЛК

Настройка задач в ПЛК

А мы хотим навесить на ПЛК свои собственные задачи. Вот у меня их получилось две штуки. Одна считает импульсы со счётчиков воды, а другая обслуживает управление освещением.

Для каждой задачи задаётся время её исполнения. Оно может измеряться в миллисекундах, часах и даже днях.

Конфигурация задачи в ПЛК

Конфигурация задачи в ПЛК

Ну а для самой задачи задаётся то, что будет выполняться:

Настройка вызова подпрограммы в задаче

Настройка вызова подпрограммы в задаче

Связь с ПЛК и заливка программы

Ну и теперь нам осталось только залить нашу программу в ПЛК. Для этого мы идём в меню «Онлайн -> Параметры связи» и создаём там подключение по сетке через протокол TCP.

Настройка связи с ПЛК по протоколу IP

Настройка связи с ПЛК по протоколу IP

После этого достаточно выбрать команду подключения к ПЛК:

Начинаем подключение к ПЛК

Начинаем подключение к ПЛК

CodeSys устанавливает связь с ПЛК и спрашивает нас о том, что нам надо сделать с программой. Если ПЛК только с завода и там нет никакой программы — то CodeSys предложит загрузить новую программу в ПЛК. А если программа в ПЛК уже была, то система предложит загрузить новую или перезаписать программу полностью:

Запрос среды разработки о загрузке программы в ПЛК

Запрос среды разработки о загрузке программы в ПЛК

У ПЛК и здесь всё отличается от логических реле. В логическом реле программа загружается навсегда и будет работать после выключения и включения питания реле. А у ПЛК программа загружается просто в память и работает только для момента выключения питания ПЛК. Это сделано специально, чтобы можно было отлаживать программу и не испортить рабочую систему и программу. Скажем, можно поиграться с другой версией программы, а потом передёрнуть питание — и ПЛК будет работать по старому.

Если же мы хотим записать нашу программу в ПЛК навсегда (чтобы она работала при следующих включениях питания), то нам надо выбрать пункт «Создание загрузочного проекта». В этом случае программа без запросов записывается в ПЛК и будет выполняться при следующем включении его питания.

Создание загрузочного проекта в ПЛК

Создание загрузочного проекта в ПЛК

Из дополнительных возможностей можно загрузить в ПЛК исходники проекта или любой файл (размером несколько мегабайт). Это полезно, если мы хотим оставить внутри ПЛК архив документации по всему проекту.

При подключенной связи с ПЛК можно наблюдать как и чего работает и производить отладку программы. Вот как выглядит это на нашей:

Работа среды CodeSys в режиме отладки программы

Работа среды CodeSys в режиме отладки программы

Собственно по программированию всё. Если сказать всё сжато, то для того чтобы начать работать с ПЛК, надо занести в него все его ресурсы и внешние модули. После этого можно назначить переменные по адресам и писать обычный программный код.

Библиотеки

А ещё под CodeSys есть много библиотек с готовыми функцями. Самая известная среди них — библиотека OSCAT. Я её скачал и нашёл там много интересного. Например вот модуль CLICK, который может определять одинарное, двойное и тройное нажатие на кнопку. При помощи него можно делать например так, чтобы если мы погасили весь свет одной кнопкой, то при двойном нажатии на неё весь свет включился там же, где и был включен.

Пример из библиотеки OSCAT: Определение количества нажатий

Пример из библиотеки OSCAT: Определение количества нажатий

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

Пример из библиотеки OSCAT: Многофункциональный диммер

Пример из библиотеки OSCAT: Многофункциональный диммер

Ну а я же сделал для заказчика простую программу включения и выключения света и реализацию функции защиты от протечек. Про это я расскажу позже в третьей части статьи.

Понравилась статья? Поделить с друзьями:
  • Уролизин инструкция по применению цена отзывы аналоги таблетки
  • Руководство по эксплуатации паджеро спорт 2014 года
  • Капли в нос назарел инструкция по применению цена
  • Кальция карбонат 1000 мг таблетки инструкция по применению цена
  • Инструкция по управлению квадрокоптером mobicaro discovery