Задание 0. Туториал
Задание:
Вы работаете в бюро автоматизации и выполняете заказы на разработку различных автоматических устройств. Заказчики будут обращаться к вам с различными проектами и, при успешном выполнении, вы будете получать за них токены.
Работа в Factory IO
Запускаем Factory IO. Чтобы создать новый проект нажимаем кнопку New:

В панели справа находятся все элементы, из которых можно построить станции

Достаньте из галереи любой конвейер 4м, оптический датчик (diffuse sensor) и скат.
Чтобы вращать элементы, нажимайте кнопки Y, R, T. Чтобы переместить элемент по вертикали, зажмите V и перемещайте.
Постройте вот такую станцию:

Алгоритм будет такой: когда деталь появилась в начале конвейера (датчик сработал), конвейер включается на 8 секунд, затем выключается.
На этом с Factory IO пока все.
Написание кода в Codesys 3.5
Сначала пишем графсет (напишите самостоятельно, только потом откройте спойлер для проверки):
Далее заходим в Codesys 3.5. Нажимаем "Новый проект" (либо создаем через меню сверху справа Файл -> ...)

В появившемся окне вводим имя файла task1, выбираем "Стандартный проект". В следующем окне в поле "устройство" должно быть CODESYS Control Win V3, в поле "PLC_PRG на" выбираем язык SFC

После этого откроется окно нашего нового проекта. Первое, что нужно сделать - создать список переменных (входов и выходов). Для этого нажимаем правой кнопкой мыши на Application, в выпадающем меню выбираем Добавление объекта -> Список глобальных переменных.

В появившемся окне вводим имя FIO (всегда!). После этого открывается окно для ввода списка переменных в виде кода. Необходимо между строками VAR_GLOBAL и END_VAR ввести переменные в форме: название переменной : BOOLEAN;
Прежде чем писать в коде, определимся с тем, какие переменные у нас есть:
входа (Inputs)
Оптический датчик
Diffuse sensor 1
iOpt
выхода (Outputs)
Конвейер включить
Belt Conveyor (2m) 1
qConveyor
Получается, всего две переменных, с названиями определились. При дальнейшей работе советую составлять такие же таблички на бумаге или на компьютере (ворд, эксель), чтобы не путаться.
В коде списка переменных пишем:

Теперь можно переходить к коду. Нажимаем дважды левой кнопкой мыши нa PLC_PRG в списке слева

Откроется стандартный редактор, как в Codesys 2.3. Пишем код.
После того, как код готов, остается подключиться к Factory IO и загрузить программу в виртуальный контроллер.
Нажимаем правой кнопкой мыши на Device -> Добавить устройство. Во всплывшем окне раскрываем вкладку "Ethenet-адаптер", выбираем "Ethernet" и нажимаем кнопку "Добавить устройство"

В дереве проекта слева появилась строка Ethernet. Нажимаем на нее правой кнопкой, выбираем "Добавить устройство".

В появившемся окне выбираем раздел Modbus -> Слейв-устройство ModbusTCP -> Modbus TCP Slave Device, после этого нажимаем "Добавить устройство" в нижней части окна.

В дереве проекта слева под Ethernet появилась строка Modbus_Slave_Device. Нажимаем на нее дважды

В основной части окна появится интерфейс настройки устройства. На вкладке "Страница конфигурации" ставим галочку "Дискретные битовые об" и пишем в активировавшихся полях количество входов и выходов

Теперь нужно указать для виртуального контролера, какие переменные входные, а какие - выходные. Для этого открываем вкладку "Modbus TCP Slave Device Соотнесение входов/выходов"
В открывшемся окне раскрываем вкладки "Регистры" и "Дискретные входы"

В каждой из этих вкладок будет доступно по 1 полю для записи названий переменных. Наши переменные записаны в списке глобальных переменных под названием FIO (мы его создали ранее). Этот список находится внутри нашего проекта для контроллера, который назвается Application. Поэтому в поле для входов (регистры) мы должны записать Application.FIO.iOpt, а в поле для выходов (дискретные входы) Application.FIO.qConveyor (см картинку выше)
Теперь почти готово. Нажимаем правой кнопкой мыши на Application, далее: Добавить объект ->Символьная конфигурация

Во всплывшем окне ничего не меняем, нажимаем "Добавить". Откроется окно символьной конфигурации. Сверху появится всплывающая панель с кнопкой "Компиляция". Нажимаем эту кнопку. После этого в списке в окне появятся все наборы переменных. Нас интересуют FIO. ставим галочку напротив строки FIO:

И последний шаг - нужно обновить контроллер. Нажимаем правой кнопкой мыши на Device в левом меню, выбираем "Обновить устройство"

В открывшемся окне делаем так, как показано на картинке:

Last updated