Prosto CoDeSys 2
Prosto CoDeSys 2
Prosto CoDeSys 2
рф
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Часть вторая
Входы и выходы
«Входит. И выходит. Замечательно выходит!»
Из любимого мультика.
2.1 Target-файл
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.1
Рис. 2.2
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.3
Рис. 2.4
Наша задача - разархивировать содержимое этого файла PLC110.30_l. В полученной при этом
папке мы запускаем файл InstallTarget.bat. (рис. 2.4). После этого на экране на короткое время
появится окно загрузки. Затем процедура установки будет завершена, необходимый файл
будет установлен в соответствующие директории. Будьте внимательны к расширению *.bat. В
папке также содержится файл InstallTarget.exe ( ). Работа с ним подробно описана в
руководстве по эксплуатации ОВЕН ПЛК. Поэтому здесь мы на этом останавливаться не
будем.
После того, как файл целевой платформы установлен на компьютере, его можно добавить в
проект. Таким образом, мы однозначно определяем, для какой модификации ПЛК будет
создаваться в дальнейшем тот или иной алгоритм. Для начала надо создать новый проект. Для
этого, напомним, в меню «Файл» необходимо выбрать пункт «Создать».
Самое первое окно, которое появляется при создании нового проекта, это окно «Настройки
целевой платформы» – именно то, что нам сейчас нужно (рис. 2.5).
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.5
Рис. 2.6
В следующем окне (рис. 2.7) система программирования предлагает выбрать нам язык
реализации. Можно выбрать язык функциональных блоков CFC согласно рисунку и нажать
«ОК». Затем проект полезно сохранить ( ).
Рис. 2.7
Практически все данные, которые используются при описании алгоритма, в CoDeSys задаются
в виде переменных. Переменные имеют имя и тип данных, т.е. тип значения, которое хранится
в этой переменной. Значения, которые ПЛК получает со входов и передает на выходы, также
используются в программе в виде переменных. Наша задача – определить, какая переменная
будет хранить значение того или иного выхода или входа. Определение переменных,
связанных со входами и выходами (в дальнейшем мы будем называть их глобальными),
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.8
Рис. 2.9
Рис. 2.10
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.11
Необходимо подчеркнуть, что при выборе модификации ПЛК с релейными выходами (буква Р
в обозначении соответствующей модификации, например, ПЛК110-30.220.Р-L) скоростные
выходы не предусмотрены. Однако структура конфигурации области ввода-вывода (мы ранее
назвали ее конфигурацией ПЛК) остается аналогичной моделям, в которых быстрые выходы
присутствуют. Другими словами, релейные выходы в пункте Fast discrete outputs работают с
той же скоростью, что и выходы в группе Discrete outputs. Наверняка, Вы быстро с этим
разберетесь.
Для того, чтобы использовать в алгоритме значение на том или ином входе или выходе,
необходимо напротив соответствующей строчки в конфигурации ПЛК задать имя переменной.
В дальнейшем именно это имя мы будем использовать при написании программы. Для
задания имени необходимо дважды нажать ЛКМ на надписи AT в соответствующей строчке, и
в открывшемся небольшом окошке напечатать имя переменной. Имя должно быть записано
латинскими буквами и цифрами в одно слово. На рис. 2.12 мы подобным образом указываем
имя переменной in1, связывая ее с первым скоростным входом ПЛК. После задания имени
необходимо нажать Enter. Теперь в зависимости от наличия или отсутствия сигнала на первом
входе ПЛК в переменной in1 будет появляться значение «Истина» (TRUE) или «Ложь»
(FALSE).
Рис. 2.12
Аналогичным образом необходимо задать еще три входа, один скоростной и два обычных,
присвоив им имена in2, in3 и in4 соответственно (рис. 2.13). Обычные входы ПЛК110-30
разбиты на две группы по восемь входов. Вы раскрываете сначала блок Discrete inputs, а затем
одну из групп 8 discrete inputs. Уже внутри группы напротив нужных строк прописываете
имена переменных in3 и in4. Тем же способом задаются имена переменных для выходов ПЛК.
Вам необходимо раскрыть блок Fast discrete outputs, нажав ЛКМ на символе . Затем, дважды
нажав ЛКМ на буквах АТ, для трех первых выходов указать имена переменных out1, out2 и
out3. Сделанные изменения полезно сохранить. После этого конфигурация ПЛК должна
принять вид, изображенный на рис. 2.13.
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.13
Задав имена переменных для входов и выходов, определив эти переменные в проекте (в
дальнейшем мы будем называть такие переменные глобальными), мы получаем возможность
использовать входы и выходы ПЛК в какой-нибудь простой задаче. Например, задавать
состояние выхода в зависимости от сигнала на входе.
Рис. 2.14
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.15
Напомним, что при написании алгоритма вместо красных знаков вопроса нам необходимо
подставить имена переменных. К примеру, в левом верхнем элементе мы будем вызывать
значение на первом входе ПЛК, то есть значение переменной in1. Необходимо выделить
содержимое элемента, нажав внутри него ЛКМ ( ). Затем с клавиатуры вы задаете имя
переменной.
Рис. 2.16
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.17
Таким образом, при наличии сигнала на входе, то есть в переменных in1 или in2, происходит
срабатывание определенного выхода out1 или out2. И наоборот – в отсутствии сигнала на
входе выход остается разомкнутым. Давайте внесем разнообразие в этот алгоритм, добавив во
вторую цепочку инверсию. То есть зададим включение второго выхода тогда, когда нет
сигнала на входе. Для этого необходимо выделить ЛКМ край линии связи рядом с переменной
out2 (см. рис. 2.17). После этого сверху, на панели быстрого доступа мы нажимаем кнопку
«Инверсия» . По-другому, можно нажать ПКМ на выделенном конце линии связи и в
контекстном меню выбрать пункт «Инверсия» (рис. 2.18).
Рис. 2.18
В результате рядом с переменной out2 появится небольшой круг (рис. 2.19). Он указывает на
инвертирование (логическое отрицание) значения, приходящего по линии связи от
переменной in1. Если приходит значение TRUE, то в выходную переменную записывается
FALSE и наоборот. Последовательное нажатие на кнопку позволяет добавлять и убирать
инверсию на линии связи.
Рис. 2.19
Движемся дальше. Нам необходимо добавить еще две цепочки. В зависимости от состояния
переменных in3 и in4 мы будем включать или выключать выходную переменную out3.
Дополните ваш алгоритм вызовом этих переменных так, как это сделано на рис. 2.20.
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.20
Рис. 2.21
Наш алгоритм готов. Его полезно сохранить, надеемся, что Вы помните об этом. Кроме того,
Вам необходимо расставить порядок обработки (см. рис. 1.30). Затем произвести компиляцию
вашего проекта, например, нажав кнопку F11, или сверившись с рис. 1.31. Если Вам не
удалось избежать ошибок, исправьте их, пожалуйста. Затем, необходимо снова
скомпилировать проект.
При работе с данным алгоритмом Вы могли случайно задать лишние локальные переменные.
Убедитесь, что в области объявления переменных, между ключевыми словами VAR и
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
END_VAR у вас нет никаких записей (см. рис. 2.22). Если они все же есть, удалите их
вручную.
Рис. 2.22
Рис. 2.23
Когда ошибки исправлены, необходимо включить режим эмуляции. Вам необходимо зайти в
меню «Онлайн» и поставить галочку в пункте «Режим эмуляции» (см. рис. 2.23). В
дальнейшем мы эту галочку уберем. А пока запускаем проект на исполнение («Онлайн» -
«Подключение» или Alt+F8). Помним о необходимости запустить выполнение нашей
программы, для этого нажимаем кнопку F5.
Внешний вид вашей программы должен быть похожим на то, что изображено на рис. 2.24. В
CoDeSys принята следующая цветовая кодировка: черным цветом подсвечиваются те
переменные, значение которых False («ложь»). Синий цвет используется тогда, когда в
переменную записано значение True. Теми же цветами отображаются линии связи при
отсутствии или прохождении через них сигнала. К примеру, в результате инверсии на выходе
out2 у нас появилось значение «истина».
Рис. 2.24
Для того, чтобы изменить значения входных переменных и повлиять таким образом на
состояние выходов мы используем уже знакомый способ. Т.к. в эмуляции работать с
физическими кнопками и тумблерами мы не можем, то задаем значения непосредственно в
окне CoDeSys. Необходимо дважды нажать ЛКМ на нужной переменной, чтобы поменять ее
значение (см. рис. 2.25) и продолжать нажимать до тех пор, пока не появится то, что Вам
нужно. Для записи значений в программу мы используем уже знакомую Вам комбинацию
клавиш Ctrl+F7 (см. также рис. 1.44).
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.25
Немного подробнее рассмотрим работу операций установки и сброса, это две наших нижних
цепочки. Когда в переменных in3 и in4 значение False, переменная out3 будет оставаться в том
состоянии, в котором она находилась до выполнения этих операций. Т.е. она сохраняет свое
значение (рис. 2.26 и рис. 2.27).
Рис. 2.26
Рис. 2.27
Когда на входе in3 появляется значение True, происходит включение выхода out3 (рис. 2.28).
В свою очередь когда на входе in4 появляется значение True, происходит отключение выхода
out3 (рис. 2.29).
Рис. 2.28
Рис. 2.29
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
подобной ситуации будут разомкнуты. Надеемся, что эта особенность теперь Вам понятна.
Проверьте самостоятельно, как работают операции установки и сброса.
Рис. 2.30
По сути дела, последние две цепочки нашего алгоритма представляют собой реализацию
обыкновенного RS-триггера, т.е. триггера с приоритетом сброса. Если мы поменяем местами
порядок обработки последних цепочек (см. рис. 2.31) и поставим сброс перед установкой, то
получим другое значение на выходе. Здесь мы реализовали SR-триггер, имеющий приоритет
по сигналу установки. И при наличии значения «истина» одновременно на входах in3 и in4
выходная переменная останется включенной.
Рис. 2.31
Теперь давайте загрузим тот же самый алгоритм непосредственно в ПЛК и посмотрим, как он
будет работать непосредственно на целевой платформе. Для начала Вам необходимо выйти из
режима исполнения в рамках эмуляции работы проекта (Ctrl+F8 или «Онлайн» -
«Отключение»). Затем необходимо снять галочку напротив пункта «Режим эмуляции» в меню
«Онлайн» (см. рис. 2.23). Теперь CoDeSys при последующих запусках проекта на исполнение
будет стремиться подключиться к нашему ПЛК. Для того, чтобы это подключение прошло
успешно, необходимо задать канал связи системы программирования и контроллера.
В комплекте поставки ПЛК есть кабель для программирования через порт RS-232, то есть
через обычный COM-порт компьютера. Сейчас мы воспользуемся именно этим вариантом
связи. О настройке соединения по другим интерфейсам Вы всегда сможете прочитать в
руководстве по эксплуатации, которое тоже прилагается к комплекту поставки ОВЕН ПЛК.
Для начала нам необходимо подключить физически наш контроллер к компьютеру. Нужный
порт, обозначенный как Debug RS-232, находится на верхней крышке прибора (рис. 2.32).
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис. 2.32
Для настройки связи в CoDeSys мы находим в меню «Онлайн» пункт «Параметры связи» и
заходим в него (рис.2.33). В появившемся окне «Communication Parameters» (рис.2.34), в левой
части располагается список настроенных для данного проекта каналов связи. В центральном
окне видны настройки выбранного канала. Вероятно, у Вас там сейчас нет нужных нам
настроек, поэтому мы будем создавать новый канал. Для этого в правой части окна
«Communication Parameters» нажимаем кнопку «New». Открывается дополнительное окно
(рис. 2.35).
Рис. 2.33
Рис.2.34
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис.2.35
В этом окне, сверху в поле «Name» мы прописываем произвольное название нового канала,
например, rs232. Теперь крайне важно из списка внизу выбрать правильный драйвер для
работы. Нужный нам пункт называется Serial (RS232), он второй сверху. Выбираем именно
его с помощью ЛКМ, как показано на рис.2.35. Затем нажимаем кнопку «Ок» и возвращаемся
к работе с окном «Communication Parameters». Сейчас в левой его части появился наш вновь
созданный канал rs232. Настроим его свойства в центральной части окна. Нам необходимо
изменить значения для первой строки, здесь Вы должны указать номер того COM-порта, к
которому подключили ПЛК, используя кабель из комплекта поставки. К примеру, у Вас
используется СОМ5. Вы дважды нажимаете ЛКМ на текущей настройке СОМ1, затем с
помощью кнопок «вверх» и «вниз» на клавиатуре вашего компьютера выбираете СОМ5. Если
у Вас будет другой номер используемого порта, выставьте здесь именно ваши настройки.
Можно также выбрать порт, последовательно нажимая ЛКМ на соответствующем поле. Во
второй строке «Baudrate» Вам необходимо выбрать скорость соединения. Вне зависимости от
модели контроллера мы всегда выбираем скорость 115200 б/с. Также, как и в верхней строке,
Вы два раза нажимаете на текущей скорости 9600 и с помощью стрелок на вашей клавиатуре
доводите скорость до нужного значения и нажимаете Enter. Все остальные настройки мы
оставляем без изменений и нажимаем «Ок» для подтверждения.
Теперь нам осталось только запустить проект на исполнение (Alt+F8). Если все было сделано
правильно, то связь будет установлена. В противном случае через несколько секунд CoDeSys
выдаст сообщение об ошибке (см. рис. 2.36). Вам необходимо еще раз проверить, все ли Вы
правильно настроили в соответствии с рекомендациями предыдущего параграфа или
руководства по эксплуатации. Не забудьте включить питание вашего ПЛК и подождать 10-15
секунд, пока он перезагрузится :)
Рис.2.36
Итак, если Вы все сделали правильно, система выдаст Вам запрос на загрузку новой
программы. Если в контроллере на текущий момент программ нет, то появился сообщение с
рис. 2.37. Если Вы уже пробовали свои силы с данным ПЛК, может появился сообщение с рис.
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
Рис.2.37
Рис.2.38
Ваш проект загружается в контроллер. По окончании этой короткой загрузки может появиться
системное сообщение. Если это произойдет, в открывшимся окне вы просто нажимаете «Ок».
И затем вспоминаете про кнопку F5, которая запускает вашу программу в работу. Внешний
вид программы не отличается от того, что мы наблюдали в режиме эмуляции. А вот задание
значений для наших переменных Вы теперь должны производить непосредственно с
физических входов ПЛК. Для этого полезно заранее подключить к нему кнопки или
переключатели, имитирующие сигналы. Логика работы алгоритма у нас осталась та же, мы
подробно рассматривали ее несколько страниц назад. Ваша задача сводится к тому, чтобы
получить удовольствие от достигнутого Вами результата. Отслеживать состояние физических
входов и выходов ПЛК в процессе выполнения алгоритма Вы можете как из окна
редактирования программы (см. рис 2.24Ш), так и из окна конфигурации ПЛК. Внешний вид
конфигурации в режиме исполнения представлен на рис. 2.39.
Рис. 2.39
Гайнутдинов Кирилл
Простое и понятное программирование в CoDeSys www.кодесис.рф
В заключении данной главы хочется отметить одну важную мысль. Может показаться, что мы
ничего особенного не сделали. Но это впечатление обманчиво. На протяжении двух глав Вы
познакомились и, надеемся, освоили большой, действительно большой пласт информации.
Быть может, это было самое сложное в освоении CoDeSys. И Вы отлично потрудились, сделав
этот первый важный шаг!
Электронная книга, с которой вы сейчас работаете, пока еще в стадии написания. При
появлении новых глав она обязательно будет обновляться. Если этот документ попал к Вам в
руки от знакомых, или Вы случайно наткнулись на него в Интернете, возможно, Вы имеете не
самую полную версию на текущий момент.
Проект «Кодесис.рф»
Гайнутдинов Кирилл