Вводное руководство по

Page 1: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Advanced Industrial Automation

Cat. No. W07E-RU-01A

Примечание: Характеристики изделий могут быть изменены без уведомления.Cat. No. W07E-RU-01A

Модуль ЦПУ CP1L

ВВОД

НОЕ РУКО

ВОД

СТВО Cat. No. W

07E-RU-01A

Краткий обзор17 Проектирование систем

25 Монтаж и подключение

35 Создание программ

75 Загрузка и отладка программ

ВВОДНОЕ РУКОВОДСТВО

Модуль ЦПУ CP1LCP1L-L14D®-®CP1L-L20D®-®CP1L-M30D®-®CP1L-M40D®-®

РоссияООО «ОМРОН Электроникс»улица Правды, дом 26Москва, Россия

Тел.: +7 495 648 94 50Факс: +7 495 648 94 51/52

www.omron-industrial.ru

Page 2: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

CP1L-L14D -CP1L-L20D -CP1L-M30D -CP1L-M40D —

Модуль ЦПУ CP1LВводное руководство

Page 3: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

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

ОПАСНОСТЬ Указывает на чрезвычайно опасную ситуацию, которая, если ее не избежать, приведет к смерти или серьезной травме. Кроме того, может быть нанесен значительный материальный ущерб.

ВНИМАНИЕ Указывает на потенциально опасную ситуацию, которая, если ее не избежать, может привести к смерти или серьезной травме. Кроме того, может быть нанесен значительный материальный ущерб.

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

Вспомогательные обозначенияСокращение «Ch», которое появляется на некоторых дисплеях и на некоторых продуктах OMRON, часто означает «слово» и в документации в этом смысле имеет сокращение «Wd».Сокращение «PLC» (ПЛК) означает «Программируемый контроллер». Однако на некоторых экранах CX-Programmer может встречаться сокращение «PC», которое также означает «Программируемый контроллер».

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

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

1,2,3… 1. Обозначение последовательности действий или любого другого списка.

Торговые марки и наименованияWindows – зарегистрированная торговая марка Microsoft Corporation в США и других странах.SYSMAC – зарегистрированное торговое наименование программируемых контроллеров OMRON.Другие названия продуктов и фирменные наименования являются торговыми марками или зарегистрированными торговыми марками своих владельцев.

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

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

2

Page 4: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

СОДЕРЖАНИЕПРЕДВАРИТЕЛЬНЫЕ УКАЗАНИЯ ………………………….. 9

1 Для кого предназначено Руководство…………………………………………………………. 102 Общие предварительные указания…………………………………………………………….. 103 Указания по безопасности …………………………………………………………………………. 104 Указания по применению …………………………………………………………………………… 10

РАЗДЕЛ 1Обзор ПЛК CP1L………………………………………………….. 11

1-1 Модели ПЛК CP1L …………………………………………………………………………………….. 121-2 Названия и функции элементов …………………………………………………………………. 14

РАЗДЕЛ 2Проектирование систем ……………………………………….. 17

2-1 Организация данного руководства……………………………………………………………… 182-2 Система управления гаражными воротами…………………………………………………. 202-3 Распределение входов/выходов в системе

управления гаражными воротами ………………………………………………………………. 222-4 Пример лестничной диаграммы …………………………………………………………………. 24

РАЗДЕЛ 3Монтаж и подключение ………………………………………… 25

3-1 Замечания по монтажу ………………………………………………………………………………. 263-2 Монтаж на DIN-рейку …………………………………………………………………………………. 293-3 Электрический монтаж устройств ………………………………………………………………. 303-4 Пробное включение CP1L………………………………………………………………………….. 33

РАЗДЕЛ 4Создание программ……………………………………………… 35

4-1 Подготовка к программированию ……………………………………………………………….. 364-2 Создание лестничных диаграмм ………………………………………………………………… 424-3 Применение CX-Programmer ……………………………………………………………………… 454-4 Использование Справки…………………………………………………………………………….. 484-5 Ввод программ ………………………………………………………………………………………….. 514-6 Сохранение и загрузка программ ……………………………………………………………….. 684-7 Редактирование программ …………………………………………………………………………. 71

РАЗДЕЛ 5Загрузка и отладка программ ……………………………….. 75

5-1 Переход в режим on-line…………………………………………………………………………….. 765-2 Изменение/отладка в режиме on-line ………………………………………………………….. 83

Приложение ………………………………………………………… 93A-1 Адреса слов/битов …………………………………………………………………………………….. 94A-2 Команды …………………………………………………………………………………………………… 99A-3 Внутренняя работа CP1L …………………………………………………………………………. 103A-4 Примеры программирования CP1L…………………………………………………………… 112

Page 5: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

О данном руководстве:

Данное руководство описывает монтаж, настройку и эксплуатацию программируемых контроллеров (ПЛК) серии CP и содержит разделы, описанные ниже. Серия CP – это усовершенствованные однокорпусные ПЛК, в основу которых легли передовые технологии управления и обширный опыт компании OMRON в области промышленной автоматизации. Пожалуйста, внимательно прочитайте данное руководство и тщательно ознакомьтесь с информацией, содержащейся в нем, прежде чем приступать к монтажу или эксплуатации ПЛК серии CP. Обязательно ознакомьтесь с указаниями по технике безопасности, которые приведены в следующем разделе.Данное руководство предназначено для пользователей, ранее не работавших с продуктами серии SYSMAC CP. В нем приведены основные сведения о работе с данной серией применительно к SYSMAC CP1L. Конфигурации схем, способы подключения цепей, а также программы приведены в настоящем руководстве исключительно в качестве примера. При создании реальной системы выясняйте технические и эксплуатационные характеристики, а также характеристики безопасности каждого элемента системы, используя соответствующие технические руководства. Лестничные диаграммы приведены в настоящем руководстве исключительно в качестве примера. При проектировании реальной системы предусмотрите надлежащие меры защиты.

Предварительные указания – содержит общие указания по использованию программируемого контроллера и связанных с ним устройств.Раздел 1 – представлены типы ПЛК CP1L, а также названия элементов.Раздел 2 – описан процесс создания системы на базе ПЛК CP1L на примере системыуправления гаражными воротами.Раздел 3 – описаны процедуры монтажа модуля CP1L на DIN-рейку, подключения цепейпитания и входов/выходов, а также проверки функционирования.Раздел 4 – описаны основные функции CX-Programmer на примере создания лестничнойдиаграммы для системы управления гаражными воротами.Раздел 5 – описана загрузка и отладка программ.Приложения – приведены адреса слов и битов, кратко описаны команды и внутренняя работа CP1L, даны примеры программирования CP1L.

4

Page 6: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Сопутствующие руководства

Ниже перечислены руководства, относящиеся к модулям ЦПУ серии CP. Обращайтесь к ним по мере необходимости.

Каталог № Название руководства ОписаниеW462 SYSMAC CP Series CP1L

CPU Unit User’s ManualРуководство пользователя

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

W451 SYSMAC CP Series CP1H/CP1L CPU Unit Programming ManualРуководство по программированию

Содержит следующую информацию о серии CP:• Команды языка программирования•Методы программирования• Задачи•Память файлов•ФункцииИспользуйте данное руководство вместе с руководством по эксплуатации программируемых контроллеров CP1H CP1H Programmable Controllers Operation Manual (W450).

W446 SYSMAC CX-Programmer Operation ManualРуководство по эксплуатации

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

5

Page 7: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

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

Гарантийные обязательства и ограничениеответственностиГАРАНТИЙНЫЕ ОБЯЗАТЕЛЬСТВА

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

КОМПАНИЯ OMRON НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ ИЛИ ОБЯЗАТЕЛЬСТВ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, В ОТНОШЕНИИ СОБЛЮДЕНИЯ ЗАКОНОДАТЕЛЬСТВА ПРИ ИСПОЛЬЗОВАНИИ ИЗДЕЛИЯ, В ОТНОШЕНИИ КОММЕРЧЕСКОГО УСПЕХА ИЗДЕЛИЙ ИЛИ ИХ ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОГО ПРИМЕНЕНИЯ. КАЖДЫЙ ПОКУПАТЕЛЬ ИЛИ ПОЛЬЗОВАТЕЛЬ ПРИЗНАЕТ, ЧТО ОПРЕДЕЛЕНИЕ СООТВЕТСТВИЯ ИЗДЕЛИЙ ТРЕБОВАНИЯМ, ПРЕДЪЯВЛЯМЫМ ПОКУПАТЕЛЕМ ИЛИ ПОЛЬЗОВАТЕЛЕМ, НАХОДИТСЯ В КОМПЕТЕНЦИИ САМОГО ПОКУПАТЕЛЯ ИЛИ ПОЛЬЗОВАТЕЛЯ. КОМПАНИЯ OMRON НЕ ПРИЗНАЕТ КАКИЕ-ЛИБО ИНЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИЙНЫЕ ОБЯЗАТЕЛЬСТВА.

ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИКОМПАНИЯ OMRON НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ПРЯМЫЕ, КОСВЕННЫЕ ИЛИ ВЫТЕКАЮЩИЕ УБЫТКИ, ПОТЕРЮ ПРИБЫЛИ ИЛИ КОММЕРЧЕСКИЕ ПОТЕРИ, КАКИМ БЫ ТО НИ БЫЛО ОБРАЗОМ СВЯЗАННЫЕ С ИЗДЕЛИЯМИ, НЕЗАВИСИМО ОТ ТОГО, ПРЕДЪЯВЛЯЕТСЯ ЛИ ИСК НА ОСНОВАНИИ КОНТРАКТА, ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ, В СВЯЗИ С НЕБРЕЖНЫМ ОБРАЩЕНИЕМ ИЛИ НА ОСНОВАНИИ БЕЗУСЛОВНОГО ОБЯЗАТЕЛЬСТВА.

Ни при каких обстоятельствах ответственность компании OMRON по какому-либо иску не может превысить собственную стоимость изделия, на которое распространяется ответственность компании OMRON.

НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ КОМПАНИЯ OMRON НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ПО ГАРАНТИЙНЫМ ОБЯЗАТЕЛЬСТВАМ, РЕМОНТУ ИЛИ ДРУГИМ ИСКАМ В ОТНОШЕНИИ ИЗДЕЛИЙ, ЕСЛИ В РЕЗУЛЬТАТЕ АНАЛИЗА, ПРОВЕДЕННОГО КОМПАНИЕЙ OMRON, УСТАНОВЛЕНО, ЧТО В ОТНОШЕНИИ ИЗДЕЛИЙ НАРУШАЛИСЬ ПРАВИЛА ЭКСПЛУАТАЦИИ, ХРАНЕНИЯ, МОНТАЖА И ТЕХНИЧЕСКОГО ОБСЛУЖИВАНИЯ, ЧТО В ИЗДЕЛИЯХ ИМЕЮТСЯ ЗАГРЯЗНЕНИЯ, ЛИБО ИЗДЕЛИЯ ИСПОЛЬЗОВАЛИСЬ НЕ ПО НАЗНАЧЕНИЮ ИЛИ ПОДВЕРГАЛИСЬ НЕДОПУСТИМОЙ МОДИФИКАЦИИ ИЛИ РЕМОНТУ.

6

Page 8: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Замечания по применениюПРИГОДНОСТЬ ДЛЯ КОНКРЕТНОГО ПРИМЕНЕНИЯ

Компания OMRON не несет ответственности за соответствие каким-либо стандартам, нормативам или правилам, которые действуют в случае применения изделий в составе оборудования заказчика или при использовании изделий.

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

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

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

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

• Системы, машины и оборудование, представляющие угрозу для жизни или имущества.

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

НИ В КОЕМ СЛУЧАЕ НЕ ИСПОЛЬЗУЙТЕ ИЗДЕЛИЕ В СИСТЕМАХ, ПРЕДСТАВЛЯЮЩИХ СЕРЬЕЗНУЮ УГРОЗУ ДЛЯ ЖИЗНИ ИЛИ ИМУЩЕСТВА, НЕ ОБЕСПЕЧИВ БЕЗОПАСНОСТИ ВО ВСЕЙ СИСТЕМЕ В ЦЕЛОМ, А ТАКЖЕ НЕ УБЕДИВШИСЬ В ТОМ, ЧТО ИЗДЕЛИЯ OMRON ИМЕЮТ НАДЛЕЖАЩИЕ НОМИНАЛЬНЫЕ ХАРАКТЕРИСТИКИ, НАДЛЕЖАЩИМ ОБРАЗОМ СМОНТИРОВАНЫ И ИСПОЛЬЗУЮТСЯ ПО НАЗНАЧЕНИЮ.

ПРОГРАММИРУЕМЫЕ ИЗДЕЛИЯКомпания OMRON не несет ответственности за программы пользователя, создаваемые для программируемых изделий, и за какие-либо последствия, возникшие в результате их применения.

7

Page 9: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Отказ от ответственностиИЗМЕНЕНИЕ ХАРАКТЕРИСТИК

Характеристики изделия и дополнительные принадлежности могут быть изменены в любое время в целях улучшения параметров и по другим причинам.

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

ГАБАРИТНЫЕ РАЗМЕРЫ И ВЕСВ настоящем документе приведены номинальные значения габаритов и весов, и их нельзя использовать в конструкторской документации, даже если приведены значения допусков.

ЭКСПЛУАТАЦИОННЫЕ ХАРАКТЕРИСТИКИПриведенные в настоящем документе эксплуатационные характеристики служат в качестве ориентира для пользователей при определении пригодности изделий для задач пользователей и не являются предметом гарантийного обязательства. Эти характеристики могли быть получены в результате испытаний, проведенных компанией OMRON, и пользователи должны соотносить их с требованиями к реальным прикладным задачам. Фактические эксплуатационные характеристики являются предметом «Гарантийных обязательств» и «Ограничения ответственности» компании OMRON.

ОШИБКИ И ОПЕЧАТКИИнформация, содержащаяся в настоящем руководстве, была тщательно проверена и, вероятнее всего, является точной; тем не менее, компания OMRON не несет ответственности за допущенные типографские ошибки или опечатки.

8

Page 10: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

ПРЕДВАРИТЕЛЬНЫЕ УКАЗАНИЯДанный раздел содержит общие указания по использованию программируемых контроллеров (ПЛК) серии CP и связанных с ними устройств.Данный раздел содержит важную информацию о безотказном и безопасном применении программируемых контроллеров. Обязательно прочитайте этот раздел и примите к сведению всю содержащуюся в нем информацию, прежде чем приступать к настройке или использованию системы ПЛК.

1 Для кого предназначено Руководство . . . . . . . . . . . . . . . . . . . . . . . . 102 Общие предварительные указания . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Указания по безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Указания по применению . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

9

Page 11: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Для кого предназначено Руководство

1 Для кого предназначено РуководствоДанное руководство предназначено для лиц, обладающих специальными знаниями в области электрических систем (инженер-электрик и т.п.).

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

2 Общие предварительные указанияПользователь должен применять изделие в соответствии с эксплуатационными характеристиками, описанными в руководствах по эксплуатации.Прежде чем использовать изделие в условиях, которые не описаны в руководстве, а также в случае применения изделия в системах управления на объектах атомной энергетики, в железнодорожных системах, в авиации, в транспортных средствах, в теплотехнике, в медицинском оборудовании, в игровых автоматах, в защитном оборудовании и других системах, машинах и установках, которые могут серьезно повлиять на здоровье людей и привести к повреждению имущества при условии неправильной эксплуатации, обязательно проконсультируйтесь в представительстве OMRON своего региона. Убедитесь в том, что номинальные значения и рабочие характеристики изделия достаточны для систем, машин и оборудования, и предусматривайте в системах, машинах и оборудовании механизмы удвоенной надежности.В данном руководстве содержатся сведения по программированию и эксплуатации модуля. Прежде чем приступить к использованию модуля, обязательно прочитайте данное руководство, и держите его под рукой, чтобы использовать во время работы.

ВНИМАНИЕ Очень важно, чтобы ПЛК и все его модули использовались только для оговоренных целей и только при оговоренных условиях эксплуатации, особенно в тех приложениях, в которых они могут прямым или косвенным образом повлиять на здоровье человека. Прежде чем применять ПЛК системы в описанных выше приложениях, обязательно проконсультируйтесь в представительстве OMRON.

3 Указания по безопасностиПредупреждение Не прикасайтесь к модулю источника питания, к клеммам входов/выходов

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

Предупреждение Затяните винты клемм цепей питания переменного тока с усилием 0,5 Н·м. Недостаточная затяжка винтов может привести к возникновению сбоев или возгоранию.

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

4 Указания по применениюПредупреждение Убедитесь в том, что переход в режим «Мониторинг» или «Выполнение»

не повлияет на работу оборудования.

10

Page 12: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

РАЗДЕЛ 1

Обзор ПЛК CP1L

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

1-1 Модели ПЛК CP1L……………………………………………………… 12

1-2 Названия и функции элементов………………………………….. 14

Page 13: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Обзор ПЛК CP1L1

1

Обзор П

ЛК CP1L

12

1-1 Модели ПЛК CP1LМодуль ЦПУ CP1L по своей конструкции и функциям является программируемым логическим контроллером (ПЛК) и выпускается в вариантах на 14, 20, 30 или 40 точек ввода/вывода.

Примеры использования ПЛК CP1L приведены в приложении A-4, Примеры программирования.

Модули на 14 точек ввода/вывода (CP1L-L14D — ) • В модуле ЦПУ имеется 8 входов и 6 выходов. • Количество входов/выходов можно увеличить до 54 точек с помощью модулей расширения входов/выходов серии CP.

Модули на 20 точек ввода/вывода (CP1L-L20D — ) • В модуле ЦПУ имеется 12 входов и 8 выходов. • Количество входов/выходов можно увеличить до 60 точек с помощью модулей расширения входов/выходов серии CP.

SYSMAC CP1L — Вводное руководство

Page 14: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

1-1 Модели ПЛК CP1L

1

1Обзор П

ЛК CP1L

Модули на 30 точек ввода/вывода (CP1L-M30D — ) • В модуле ЦПУ имеется 18 входов и 12 выходов. • Количество входов/выходов можно увеличить до 150 точек с помощью модулей расширения входов/выходов серии CP.

Модули на 40 точек ввода/вывода (CP1L-M40D — ) • В модуле ЦПУ имеется 24 входа и 16 выходов. • Количество входов/выходов можно увеличить до 160 точек с помощью модулей расширения входов/выходов серии CP.

SYSMAC CP1L — Вводное руководство 13

Page 15: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

1-2 Названия и функции элементов

1

1

14

Обзор П

ЛК CP1L

1-2 Названия и функции элементовВ данном разделе описаны названия и функции элементов на примере модуля на 14 точек ввода/вывода.

Модуль на 14 точек ввода/вывода

(1) Гнездо для карты памятиИспользуется для подключения карты памяти (15). Карты памяти можно использовать для хранения резервных копий программ и параметров CP1L, а также данных. Кроме того, использование карт памяти позволяет копировать данные в другие модули CP1L без применения инструмента программирования (программного обеспечения).

(2) Периферийный порт USBИспользуется для подключения к компьютеру. Компьютеры можно использовать для программирования и контроля.

(3) Аналоговый регуляторВращая данный регулятор, можно изменять значение по адресу A642CH (вспомогательная область) в диапазоне от 0 до 255. Это позволяет изменять уставки таймеров и счетчиков без применения инструмента программирования (программного обеспечения).

(4) Разъем входа внешнего аналогового сигнала настройкиПредназначен для подачи внешнего аналогового сигнала 0 … 10 В и изменения значения по адресу A643CH (вспомогательная область) в диапазоне от 0 до 256. Гальваническая развязка не предусмотрена.

(5) DIP-переключателиИспользуются для настройки таких параметров и функций, как разрешение записи в память пользователя, автоматическое считывание данных с карт памяти, а также для настройки последовательных портов.Подробные сведения смотрите в разделе 2-1, Названия и функции элементов в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

(6) БатареяПредназначена для питания внутренних часов и сохранения содержимого ОЗУ при отключении питания.

SYSMAC CP1L — Вводное руководство

Page 16: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

1-2 Названия и функции элементов

1

1Обзор П

ЛК CP1L

(7) Рабочие индикаторы Отображают рабочее состояние модуля CP1L. В частности, индицируется состояние питания, режим работы, ошибки и статус связи для периферийного порта USB.

(8) Блок клемм питания, заземления и входных сигналовИспользуется для подключения цепей питания, заземления и входных сигналов.

(9) Индикаторы состояний входовИндикатор светится, когда соответствующий вход находится в состоянии «ВКЛ».

(10) Гнездо для дополнительной платыИспользуется для установки дополнительной платы последовательного интерфейса RS-232C (16) или дополнительной платы последовательного интерфейса RS-422A/485 (17). Модули на 14/20 точек ввода/вывода допускают установку одной дополнительной платы последовательного интерфейса. В модули на 30/40 точек ввода/вывода можно устанавливать до 2 дополнительных плат последовательного интерфейса.

(11) Разъем для модуля расширения входов/выходов Используется для подключения модулей расширения входов/выходов серии CP и модулей расширения. Модули на 14/20 точек ввода/вывода допускают подключение одного модуля расширения. К модулям на 30/40 точек ввода/вывода можно подключать до 3 модулей расширения.

(12) Индикаторы состояний выходовИндикатор светится, когда замкнут (ВКЛ) соответствующий выходной контакт.

(13) Блок клемм внешнего питания и выходных клемм• Клемма питания внешних устройств: В модулях с питанием от источника переменного тока предусмотренвыход напряжения 24 В=, рассчитанный на максимальную нагрузку300 мА. Данный выход можно использовать для подачи питания навходные устройства. • Выходные клеммы: Используются для подключения выходных цепей.

(14) Язычок для монтажа на DIN-рейку Используется для установки модуля на DIN-рейку.

(15) Модуль памяти (опция)Используется для записи данных из встроенной флэш-памяти. Устанавливается в гнездо карты памяти (1).

(16) Дополнительная плата последовательного интерфейса RS-232CВставляется в гнездо для дополнительной платы (10).

(17) Дополнительная плата последовательного интерфейса RS-422A/485Вставляется в гнездо для дополнительной платы (10).

SYSMAC CP1L — Вводное руководство 15

Page 17: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

1-2 Названия и функции элементов

1

1

16

Обзор П

ЛК CP1L

Состояния индикаторовВ данном разделе описаны рабочие состояния модуля CP1L и их индикация.

POWER(Зеленый)

Светится Питание включено.

Не светится Питание выключено.

RUN (Зеленый)

Светится Модуль CP1L выполняет программу в режиме RUN (Выполнение) или в режиме MONITOR (Мониторинг).

Не светится Работа прекращена в режиме PROGRAM, или из-за фатальной ошибки.

ERR/ALM(Красный)

Светится Произошла фатальная ошибка (включая выполнение команды FALS) или аппаратная ошибка (ошибка сторожевого таймера (WDT)). Работа CP1L прекращается, все выходы переходят в выключенное состояние.

Мигает Произошла нефатальная ошибка (включая выполнение команды FAL). Модуль CP1L продолжает работать.

Не светится Обычный режим работы.

INH(Желтый)

Светится Бит выключения выходов (A500.15) установлен в состояние ВКЛ. Все выходы переходят в выключенное состояние.

Не светится Обычный режим работы.

PRPHL(Желтый)

Мигает Происходит обмен данными (передача или прием) через периферийный порт USB.

Не светится Любое другое состояние.

BKUP(Желтый)

Светится • Выполняется чтение или запись пользовательской программы, параметров или содержимого памяти данных из/во встроенную флэш-память (память резервного хранения).

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

• Пользовательские программы, параметры и содержимое памяти данных восстанавливаются при включении питания ПЛК.

Примечание: Не отключайте питание ПЛК, пока светится этот индикатор.

Не светится Любое другое состояние.

SYSMAC CP1L — Вводное руководство

Page 18: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

РАЗДЕЛ 2

Проектирование систем

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

2-1 Организация данного руководства ……………………………… 18

2-2 Система управления гаражными воротами …………………. 202-2-1 Описание работы …………………………………………………. 202-2-2 Компоненты системы……………………………………………. 21

2-3 Распределение входов/выходов в системе управления гаражными воротами……………………………….. 22

2-4 Пример лестничной диаграммы …………………………………. 24

Page 19: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2

2

Проектирование систем

Проектирование систем

18

2-1 Организация данного руководстваВ разделах 2 – 5 данного руководства подробно рассмотрен процесс создания системы на базе CP1L, от проектирования до эксплуатации, на примере системы управления гаражными воротами. Содержание разделов описано ниже.

Раздел 2. Последовательность действий – от проектирования до эксплуатации, описание системы управления гаражными воротами, компоненты системы, а также распределение входов/выходов.

Раздел 3. Монтаж CP1L, электрический монтаж компонентов и пробное включение.

Раздел 4. Подключение CP1L к компьютеру и создание лестничных диаграмм.

Раздел 5. Настройка часов и режима работы ПЛК, загрузка данных из компьютера в CP1L, запуск программы, регулировка и отладка.

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

SYSMAC CP1L — Вводное руководство

Page 20: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2-1 Организация данного руководства

2

2Проектирование систем

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

Смотрите раздел 2-3 Распределение входов/выходов в системе управления гаражными воротами.

Смотрите раздел 3-2 Монтаж на DIN-рейку и раздел 3-3 Электрический монтаж устройств.

Смотрите раздел 3-4 Пробное включение CP1L.

Смотрите раздел 4-1 Подготовка к программированию.

Смотрите разделы 4-2 Создание лестничной диаграммы, 4-3 Использование программы CX-Programmer, 4-5 Ввод программ, 4-6 Сохранение/загрузка программ и 4-7 Редактирование программ.

Смотрите раздел 5-1 Переход в режим online.

Смотрите раздел 5-2 Регулировка/отладка в режиме online.

Смотрите раздел 5-1 Переход в режим online.

Подготовка оборудования· Подготовьте оборудование

· Подключите цепи питания и заземления

· Подключите устройства ввода/вывода

Подача питания на CP1L· Проверьте работу ПЛК

Подготовка к написанию программы· Установите на компьютер драйвер USB

· Подключите CP1L к компьютеру

Написание программ· Создайте лестничные

диаграммы в CX-Programmer

· Выполните компиляцию

· Сохраните

· Отредактируйте

Подключение CP1L к компьютеру в режиме online· Настройте часы CP1L

· Переключите ПЛК в режим PROGRAM.

· Загрузите программу

Отладка в режиме online· Контроль состояния сигналов

· Команды принудительной

установки/сброса

· Редактирование в режиме online

Рабочий прогон

Распределение входов/выходов· Назначьте номера битов

датчикам и переключателям

SYSMAC CP1L — Вводное руководство 19

Page 21: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2-2 Система управления гаражными воротами

2

2

20

Проектирование систем

2-2 Система управления гаражными воротамиВ данном разделе описаны работа и компоненты системы управления гаражными воротами.

2-2-1 Описание работыВ данном разделе описана работа системы управления гаражными воротами.

Автомобиль приближается к воротам. • Ворота открываются после того, как датчик обнаружит три мигания фарами в интервале 5 секунд.

• Ворота можно также открыть, закрыть или остановить при помощи кнопок.

• После того как датчик обнаружит, что автомобиль полностью въехал в гараж, ворота закрываются.

• При выезде машины из гаража для управления гаражными воротами используйте кнопки.

SYSMAC CP1L — Вводное руководство

Page 22: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2-2 Система управления гаражными воротами

2

2Проектирование систем

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

Программируемый логический контроллер• ПЛК CP1L (модуль на 14 точек ввода/вывода, с питанием от источника переменного тока)

Аппаратные и программные средства для программирования• CX-Programmer• Компьютер• Кабель USB (A-B)

Входы• Кнопка открывания ворот: PB1• Кнопка остановки ворот: PB2• Кнопка закрывания ворот: PB3• Датчик обнаружения автомобиля: SEN1• Датчик обнаружения света фар: SEN2• Концевой выключатель, замыкающийся после полного открывания ворот: LS1

• Концевой выключатель, замыкающийся после полного закрывания ворот: LS2

Выходы• Контакт для включения электродвигателя подъема ворот: MO1• Контакт для включения электродвигателя опускания ворот: MO2

SYSMAC CP1L — Вводное руководство 21

Page 23: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2-3 Распределение входов/выходов в системе управления гаражными воротами

2

2

22

Проектирование систем

2-3 Распределение входов/выходов в системеуправления гаражными воротами

В приведенных ниже таблицах описано распределение битов входов/выходов CP1L между датчиками, кнопками и исполнительными устройствами.

Входы

Выходы

Устройство Контакт Адрес

Кнопка «Открыть» PB1 0.00

Кнопка «Стоп» PB2 0.01

Кнопка «Закрыть» PB3 0.02

Датчик обнаружения машины SEN1 0.03

Датчик обнаружения света SEN2 0.04

Верхний концевой выключатель

LS1 0.05

Нижний концевой выключатель

LS2 0.06

Устройство Контакт Адрес

Поднимающий электродвигатель

MO1 100.00

Опускающий электродвигатель

MO2 100.01

SYSMAC CP1L — Вводное руководство

Page 24: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2-3 Распределение входов/выходов в системе управления гаражными воротами

2

2Проектирование систем

Распределение входов/выходов (модуль CP1L на 14 точек ввода/вывода)

В модуле на 14 точек ввода/вывода для входов отведено 8 битов с 0,00 по 0,07 (биты 00 … 07 слова 0CH).Для выходов отведено 6 битов с 100.00 по 100.05 (биты 00 … 05 слова 100CH). Неиспользуемые старшие разряды слова входов (биты 08 … 15) нельзя использовать для работы как рабочую память. В то же время, неиспользуемые старшие разряды слова выходов (биты 06 … 15) можно использовать.

Область вывода

Область ввода

8 входов

6 выходов

0 CH (0.00…0.07)

100 CH (100.00…100.05)

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 CH

100 CH

Область ввода: 8 входов

Область вывода: 6 выходовМогут использоваться для работы

Размещение

Размещение

Недоступны

SYSMAC CP1L — Вводное руководство 23

Page 25: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

2-4 Пример лестничной диаграммы

2

2

24

Проектирование систем

2-4 Пример лестничной диаграммыНиже приведен пример лестничной диаграммы (программы на языке релейно-контактной логики) для системы управления гаражными воротами. Процесс создания программы описан в РАЗДЕЛЕ 4.

W0.00

TIM0000#50

Рабочая область

T0000

Таймер

0.04

Датчик обнаружения света

W0.00

Рабочая область

W0.00

Рабочая область

0.04

Датчик обнаружения света

T0000

Таймер

C0000

Счетчик

A200.11

Флаг первого цикла P_First_Cycle

C0000

Счетчик

0.01 0.05

Верхний концевой

выключатель

100.01

Опускающий электродвигатель

100.00

Поднимающий электродвигатель

0.00

Кнопка «Открыть»

100.00

Поднимающий электродвигатель

0.01

Кнопка «Стоп»

0.06

Нижний концевой

выключатель

100.00

Поднимающий электродвигатель

100.01

Опускающий электродвигатель

0.03

Датчик обнаружения машины

0.02

Кнопка «Закрыть»

100.01

Опускающий электродвигатель

Таймер

Счетчик

#3

CNT

0000

Кнопка «Стоп»

SYSMAC CP1L — Вводное руководство

Page 26: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

РАЗДЕЛ 3

Монтаж и подключение

В данном разделе описаны процедуры монтажа модуля CP1L на DIN-рейку, подключения цепей питания и входов/выходов, а также проверки функционирования.

3-1 Замечания по монтажу ………………………………………………. 26

3-2 Монтаж на DIN-рейку …………………………………………………. 29

3-3 Электрический монтаж устройств……………………………….. 303-3-1 Подключение цепей питания и заземления …………… 303-3-2 Подключение цепей входов/выходов …………………….. 31

3-4 Пробное включение CP1L ………………………………………….. 33

Page 27: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Монтаж и подключение 3

3

26

Механический и электрический м

онтаж

3-1 Замечания по монтажуДля повышения надежности и максимального использования функциональных возможностей системы на базе CP1L при монтаже необходимо учитывать следующие факторы.

Место монтажаНе устанавливайте систему в следующих местах: • В местах с температурой окружающего воздуха ниже 0°C или выше 55°C. • В местах, подверженных резким изменениям температуры, способным вызывать конденсацию.

• В местах с относительной влажностью ниже 10 % или выше 90 %. • В местах возможного присутствия коррозионных или воспламеняющихся газов.

• В местах со чрезмерным скоплением пыли, солей или металлического порошка.

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

Обеспечьте надлежащую защиту (экранирование) системы при установке в следующих местах: • В местах воздействия статического электричества или любых других помех.

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

Установка в шкаф и панель управленияВ случае установки CP1L в шкаф или панель управления обеспечьте поддержку требуемых условий эксплуатации внутри шкафа/панели управления и простой доступ к CP1L для управления и обслуживания.

Контроль температурыПЛК CP1L рассчитан на эксплуатацию в диапазоне температур окружающей среды от 0 до 55°C. Соблюдайте следующие указания. • Обеспечьте достаточное пространство для циркуляции воздуха. • Не устанавливайте модуль над оборудованием, выделяющим большое количество тепла (нагреватели, трансформаторы, резисторы большой мощности).

• Если температура окружающего воздуха может превысить 55°C, установите охлаждающий вентилятор или кондиционер.

SYSMAC CP1L — Вводное руководство

Page 28: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

3-1 Замечания по монтажу 3Механический и электрический м

онтаж

(1) Шкаф управления

(2) Вентилятор

(3) Вентиляционная решетка

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

• Для упрощения работы с модулем устанавливайте модуль в шкафу управления на высоте 1000 … 1600 мм.

Предупреждение Не прикасайтесь к клеммам питания, к клеммам входов/выходов, а также к участкам вокруг этих клемм при включенном напряжении питания или сразу после его отключения. Это может привести к ожогу. Отключив питание, дождитесь, пока поверхности достаточно остынут, прежде чем прикасаться к ним.

Повышение помехоустойчивости• Избегайте установки в шкаф, в котором присутствует высоковольтное оборудование.

• Устанавливайте модуль на расстоянии не менее 200 мм от силовых линий.

• Надлежащим образом заземлите монтажную пластину, расположенную между модулем и монтажной поверхностью.

Силовая линия

миним. 200 мм

миним. 200 мм

CP1L

SYSMAC CP1L — Вводное руководство 27

Page 29: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

28

3-1 Замечания по монтажу3

Механический и электрический м

онтаж

МонтажДля обеспечения эффективного отвода тепла устанавливайте CP1L в положении, показанном ниже.

Наружные размеры

DIN-рейкаЗакрепите DIN-рейку в шкафу управления, используя не меньше 3 винтов. • Используйте винты M4. Интервал не должен превышать 210 мм

(6 отверстий). Момент затяжки винтов должен быть 1,2 Н·м.

Подробные сведения о процедуре монтажа CP1L приведены в РАЗДЕЛЕ 3 Механический и электрический монтаж в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

Модель W1 W2

CP1L-L14D — 86 76

CP1L-L20D — 86 76

CP1L-L30D — 130 120

CP1L-L40D — 150 140

SYSMAC CP1L — Вводное руководство

Page 30: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

3-2 Монтаж на DIN-рейку 3Механический и электрический м

онтаж

3-2 Монтаж на DIN-рейку В данном разделе описана процедура монтажа модуля CP1L на DIN-рейку.

1. Вытяните язычок для монтажа на DIN-рейку(1).

2. Зацепите заднюю панель CP1L за DIN-рейку (1) (см. рисунок).

3. Задвиньте язычок для монтажа на DIN-рейку (1), чтобы закрепить модуль CP1L.

SYSMAC CP1L — Вводное руководство 29

Page 31: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

30

3-3 Электрический монтаж устройств3

Механический и электрический м

онтаж

3-3 Электрический монтаж устройствВ данном разделе описано подключение цепей ПЛК CP1L (модуль на 14 точек ввода/вывода, с питанием от источника переменного тока).

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

3-3-1 Подключение цепей электропитания и заземленияВ данном разделе описана процедура подключения цепей питания и заземления.

Модули с питанием от источника переменного токаКлеммы питания и заземления (A) расположены у верхнего края модуля CP1L.

Назначение контактов клеммного блока (A)

(1) Клемма питания Напряжение питания 100 … 240 В~, 50/60 Гц. Допустимый диапазон напряжения питания: 85 … 264 В~.

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

• Для предотвращения помех от цепей питания используйте в качествекабелей питания витые пары. Применение разделительноготрансформатора (с коэффициентом трансформации 1:1) дополнительноснижает уровень электрических помех.

NC

NC

NC

NCмакс. 6,2 мм

1

2 3

4

SYSMAC CP1L — Вводное руководство

Page 32: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

3-3 Электрический монтаж устройств 3Механический и электрический м

онтаж

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

(2) Клемма LGНа клемму LG выведена цепь функционального заземления. Чтобыпомехи не приводили к возникновению ошибок и электротравмам,замкните клеммы LG и GR для соответствия заземлению класса D(сопротивление цепи заземления 100 Ом или меньше).

(3) Клемма GRКлемма GR предназначена для подключения цепи защитногозаземления. С целью предотвращения электротравм используйте длязаземления класса D (сопротивление цепи заземления 100 Ом илименьше) отдельную цепь (2 мм2 или больше).

• Для предотвращения электротравм и электрических помех заземляйтеданную клемму только на цепь заземления класса D (сопротивлениецепи заземления 100 Ом или меньше).

• Если используется источник питания с заземленной фазой,подключите заземленную фазу к клемме L2/N.

• Не используйте цепь заземления для другого оборудования и неподсоединяйте ее к элементам конструкции здания. Это можетпривести к неблагоприятным результатам.

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

ВНИМАНИЕ Затяните винты клемм цепей питания переменного тока с усилием 0,5 Н·м.Недостаточная затяжка винтов может привести к возникновению неисправностей или возгоранию.

3-3-2 Подключение цепей входов/выходов

Модули на 14 точек ввода/выводаКлеммы входов модуля CP1L расположены сверху, а клеммы выходов – снизу.

(1) Клеммы входов

(2) Клеммы выходов

SYSMAC CP1L — Вводное руководство 31

Page 33: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

32

3-3 Электрический монтаж устройств3

Механический и электрический м

онтаж

Подключение входных цепей 1. Подключите входные цепи, как показано на рисунке, используя

для справки раздел 2-3 Распределение входов/выходов в системе управления гаражными воротами.

Подключение выходных цепей1. Подключите выходные цепи, как показано на рисунке, используя

для справки раздел 2-3 Распределение входов/выходов в системе управления гаражными воротами.

Подробные сведения о подключении цепей приведены в разделе 3-5-4 Подключение входных/выходных цепей модулей ЦПУ на 14 точек ввода/вывода в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

SYSMAC CP1L — Вводное руководство

Page 34: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

3-4 Пробное включение CP1L 3Механический и электрический м

онтаж

3-4 Пробное включение CP1LЗавершив подключение цепей модуля CP1L, выполните его пробное включение.

Включение питанияПодайте питание на модуль CP1L и проверьте его состояние по индикаторам.

1. Отключите питание всех компонентов (поднимающего электродвигателя, опускающего электродвигателя и др.).

2. Включите питание модуля CP1L. 3. Подождите 2 секунды, пока выполнится инициализация CP1L. 4. Проверьте индикаторы модуля CP1L. Свечение индикаторов

[POWER] и [RUN] свидетельствует о нормальной работе CP1L.

Примечание После включения модуль CP1L автоматически переходит в режим RUN (Выполнение).

5. Отключите питание модуля CP1L.

SYSMAC CP1L — Вводное руководство 33

Page 35: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

3

34

3-4 Пробное включение CP1L3

Механический и электрический м

онтаж

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

Подробные сведения о замене батареи смотрите в разделе 10–2 Замена элементов пользователем в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

• Работа без батареиЕсли данные часов и сохряняемые области ОЗУ ПЛК для работы не нужны, CP1L можно использовать без батареи (работа без батареи).Подробные сведения смотрите в разделе 6-5 Работа без батареи в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

SYSMAC CP1L — Вводное руководство

Page 36: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

РАЗДЕЛ 4

Создание программ

В данном разделе описаны шаги, которые выполняются в программе CX-Programmer для создания лестничных диаграмм, необходимых для работы CP1L. Основные функции CX-Programmer поясняются на примере создания лестничной диаграммы для системы управления гаражными воротами.

4-1 Подготовка к программированию………………………………… 364-1-1 Что такое CX-Programmer? …………………………………… 364-1-2 Подключение к компьютеру

и установка драйвера USB …………………………………… 37

4-2 Создание лестничных диаграмм ………………………………… 424-2-1 Описание работы …………………………………………………. 424-2-2 Лестничная диаграмма…………………………………………. 44

4-3 Пример работы с CX-Programmer………………………………. 454-3-1 Запуск CX-Programmer ………………………………………… 454-3-2 Рабочие экраны …………………………………………………… 46

4-4 Использование Справки …………………………………………….. 48

4-5 Ввод программ ………………………………………………………….. 514-5-1 Создание новых проектов …………………………………….. 514-5-2 Ввод контактов …………………………………………………….. 544-5-3 Ввод выходных катушек ……………………………………….. 574-5-4 Ввод таймеров …………………………………………………….. 594-5-5 Ввод счетчиков…………………………………………………….. 614-5-6 Ввод вспомогательных областей …………………………… 644-5-7 Ввод контактов с положительным фронтом …………… 664-5-8 Команда END ………………………………………………………. 67

4-6 Сохранение и загрузка программ ……………………………….. 684-6-1 Компилирование программ …………………………………… 684-6-2 Сохранение программ ………………………………………….. 694-6-3 Загрузка программ ……………………………………………….. 70

4-7 Редактирование программ …………………………………………. 714-7-1 Редактирование комментариев к входам/выходам…. 714-7-2 Редактирование комментариев к строкам ……………… 724-7-3 Редактирование строк ………………………………………….. 73

Page 37: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Создание программ 4

4

36

Создание програм

м

4-1 Подготовка к программированиюВ данном разделе описаны подготовительные действия, необходимые для создания лестничных диаграмм: подключение CP1L к компьютеру, установка драйвера USB и т.п.

4-1-1 Что такое CX-Programmer?Программа CX-Programmer – это инструмент программирования (программное обеспечение), предназначенный для создания лестничных диаграмм, выполняемых в ПЛК CP1L. Помимо программирования, CX-Programmer обладает и другими функциями, полезными при настройке и работе с CP1L, среди которых: отладка программ, отображение адресов и значений, настройка и мониторинг ПЛК, а также дистанционное программирование и мониторинг по сети.

Программа CX-Programmer может работать на компьютерах с ОС Windows 98 SE, Me, NT 4.0 (SP6a), 2000 (SP3 и выше) или XP. Подробно порядок установки CX-Programmer описан в разделе 1-1 Установка программы CX-Programmer в руководстве CX-Programmer Introduction Guide (R132). Применение CX-Programmer описано в руководстве CX-Programmer Operation Manual (W446).

SYSMAC CP1L — Вводное руководство

Page 38: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-1 Подготовка к программированию

4

4Создание програм

м

4-1-2 Подключение к компьютеру и установка драйвера USBДля использования CX-Programmer необходимо подключить CP1L к компьютеру с установленной программой CX-Programmer. В данном разделе описана процедура подключения CP1L к компьютеру.На подключаемом компьютере должна быть установлена программа CX-Programmer версии 7.1 или выше. Для подключения CP1L к компьютеру также требуется кабель USB. Кроме того, на компьютере должен быть установлен драйвер USB, позволяющий компьютеру распознавать CP1L.

Компоненты, необходимые для подключения

Ограничения на соединения по USBОграничения спецификаций USB накладывают следующие ограничения на подключение CP1L к компьютеру. • Одновременно к компьютеру может быть подключен только один модуль

CP1L. Невозможно одновременно подключить к компьютеру несколько CP1L. • Не отсоединяйте кабель USB, когда система находится в режиме on-line. Прежде чем отсоединить кабель USB, переведите систему в режим off-line. Если отсоединить кабель USB в режиме on-line, произойдет следующее: [Windows 2000, XP] Простое повторное подсоединение кабеля USB не приведет к возвратуCX-Programmer в режим on-line. Сначала нужно переключитьCX-Programmer в режим off-line, подсоединить кабель USB, а затемвернуть CX-Programmer в режим on-line.

[Windows 98, Me] При отсоединении кабеля USB в режиме on-line может отобразитьсясиний экран ошибки. В этом случае необходимо перезагрузитькомпьютер.

Операционная система

Windows 98, Me, 2000 или XP

Программное обеспечение

CX-One (CX-Programmer)

Драйвер USB Входит в программное обеспечение

Кабель USB Кабель USB 1.1 (или 2.0) (A-B), 5 м или короче

SYSMAC CP1L — Вводное руководство 37

Page 39: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-1 Подготовка к программированию

4

4

38

Создание програм

м

Подключение к компьютеру и установка драйвера USBВ данном разделе описана процедура подключения CP1L к компьютеру с ОС Windows XP. Подробно процедура подключения CP1L к компьютеру с ОС Windows 2000 описана в разделе 1-3-1 Подключение с помощью стандартного кабеля USB в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

1. Включите питание модуля CP1L и компьютера.

2. При помощи кабеля USB (2) подключите периферийный порт USB (3) модуля CP1L к порту USB компьютера (1).

Обнаружив CP1L, компьютер выдаст следующее сообщение.

Отобразится диалоговое окно Мастера обнаружения нового оборудования. Это диалоговое окно будет использоваться для установки драйвера USB.

Примечание Консоль программирования для CP1L не применима.

3. В диалоговом окне Мастера обнаружения нового оборудования выберите пункт [No, not this time] (Нет, не в этот раз) и щелкните по кнопке [Next] (Далее). Некоторые компьютерные операционные системы могут не отображать диалоговое окно Мастера обнаружения нового оборудования. В этом случае перейдите к шагу 4.

SYSMAC CP1L — Вводное руководство

Page 40: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-1 Подготовка к программированию

4

4Создание програм

м

4. Выберите пункт [Install from a list of specific location (Advanced)] (Установка из указанного места) и щелкните по кнопке [Next] (Далее).

5. Убедитесь в том, что выбран вариант [Include this location in the search] (Включить следующее место поиска), и что в поле адреса отображается путь [C:\Program Files\OMRON\CX-Server\USB\Win2000_XP\Inf]. Щелкните по кнопке [Next] (Далее). Начнется процедура установки драйвера. После завершения установки отобразится диалоговое окно, подтверждающее успешную установку драйвера.

SYSMAC CP1L — Вводное руководство 39

Page 41: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-1 Подготовка к программированию

4

4

40

Создание програм

м

Если будет отображено диалоговое окно установки оборудования, щелкните по кнопке [Continue Anyway] (Продолжить в любом случае).

6. Щелкните по кнопке [Finish] (Готово). Установка драйвера USB выполнена.

SYSMAC CP1L — Вводное руководство

Page 42: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-1 Подготовка к программированию

4

4Создание програм

м

Проверка установки драйвераУбедитесь в том, что драйвер установлен надлежащим образом.

1. На рабочем столе выберите [Start] (Пуск), затем правой кнопкой мыши щелкните по [My Computer] (Мой компьютер). Отобразится контекстное меню.

2. Выберите пункт [Properties] (Свойства). Будет отображено диалоговое окно свойств системы.

3. Выберите закладку Hardware (Оборудование) и щелкните по кнопке [Device Manager] (Диспетчер устройств). Отобразится окно диспетчера устройств.

4. Дважды щелкните по строке [Universal Serial Bus controllers] (Контроллеры универсальной последовательной шины).

5. Убедитесь в том, что в списке присутствует строка [OMRON SYSMAC PLC Device]. Если это так, значит драйвер USB успешно установлен.

6. Закройте последовательно диалоговое окно диспетчера устройств и окно свойств системы.

Если строка [OMRON SYSMAC PLC Device] отсутствует, повторите установку драйвера USB. Подробная процедура повторной установки драйвера USB описана в разделе 1-3-1 Подключение с помощью стандартного кабеля USB руководства CP Series CP1L CPU Unit User’s Manual (W462).

SYSMAC CP1L — Вводное руководство 41

Page 43: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-2 Создание лестничных диаграмм

4

4

42

Создание програм

м

4-2 Создание лестничных диаграмм Теперь можно создать лестничную диаграмму, например, представленную в РАЗДЕЛЕ 2 Проектирование систем. Но сначала рассмотрим функции лестничной диаграммы.

4-2-1 Описание работыСоздаваемая лестничная диаграмма предназначена для открывания и закрывания гаражных ворот. Подробно данная система описана в разделе 2-2-1 Описание работы.

Въезд в гараж

Ниже подробно описаны функции и работа компонентов системы.

(1) Нажимные кнопки: • Ворота можно открыть, закрыть или остановить при помощи кнопок. • Кнопки OPEN (ОТКРЫТЬ) и CLOSE (ЗАКРЫТЬ) не требуется удерживатьв нажатом положении для управления воротами – достаточнооднократного нажатия. Это достигается за счет использованиясамоблокирующегося бита.

(2) Концевые выключатели: • Когда ворота полностью открываются или закрываются, срабатываетконцевой выключатель и ворота останавливаются.

• На время открывания (подъема) ворот опускающий электродвигательблокируется с целью предотвращения его повреждения.

(3) Датчик обнаружения света: • Этот датчик обнаруживает свет фар, направленный на гараж. После тогокак счетчик обнаружит три мигания фарами, включится поднимающийэлектродвигатель.

• После первого мигания фарами запускается таймер. Через 5 секунд насчетчик подается команда сброса.

• Текущее значение счетчика сохраняется даже при отключении питанияCP1L. Для предотвращения некорректной работы на счетчик привключении питания CP1L подается команда сброса.

1

2

2

3

SYSMAC CP1L — Вводное руководство

Page 44: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-2 Создание лестничных диаграмм

4

4Создание програм

м

После въезда в гараж/выезд из гаража

(1) Датчик обнаружения автомобиля: • Этот датчик обнаруживает, что автомобиль полностью въехал в гараж,и включает опускающий электродвигатель.

(2) Нажимные кнопки: • При выезде машины из гаража для управления воротами используйтекнопки.

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

Лестничная диаграмма будет создана на основании приведенного выше описания.

SYSMAC CP1L — Вводное руководство 43

Page 45: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-2 Создание лестничных диаграмм

4

4

44

Создание програм

м

4-2-2 Лестничная диаграммаНиже приведена лестничная диаграмма для описанного примера.

В следующем разделе описан процесс создания программы при помощи CX-Programmer.

W0.00

TIM

0000

#50

Рабочая область *4

T0000

Таймер *3

0.04

Датчик обнаружения

света *1W0.00

Рабочая область *2

W0.00

Рабочая область

0.04

Датчик обнаружения света

T0000

Таймер

C0000

Счетчик

A200.11

Флаг первого цикла P_First_Cycle First *7

C0000

Счетчик

0.01

Кнопка«Стоп»

0.05

Верхний концевой

выключатель

100.01

Опускающий электродвигатель

100.00

Поднимающий электродвигатель

0.00

Кнопка «Открыть»

100.00

Поднимающий электродвигатель

0.01

Кнопка«Стоп»

0.06

Нижний концевой

выключатель

100.00

Поднимающий электродвигатель

100.01

Опускающий электродвигатель

0.03

Датчик обнаружения автомобиля *8

0.02

Кнопка «Закрыть»

100.01

Опускающий электродвигатель

Таймер *5

Счетчик *6

#3

CNT

0000

*1 См. Ввод контактов в разделе 4-5-2 Ввод контактов.*2 См. Ввод схем «ИЛИ» в разделе 4-5-2 Ввод контактов. *3 См. Ввод нормально замкнутых контактов в разделе 4-5-2 Ввод контактов. *4 См. раздел 4-5-3 Ввод выходных катушек.

*5 См. раздел 4-5-4 Ввод таймеров.*6 См. раздел 4-5-5 Ввод счетчиков. *7 См. раздел 4-5-6 Ввод вспомогательных областей.

*8 См. раздел 4-5-7 Ввод контактов с положительным фронтом.

SYSMAC CP1L — Вводное руководство

Page 46: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-3 Применение CX-Programmer

4

4Создание програм

м

4-3 Применение CX-Programmer В данном разделе описаны стартовые и рабочие экраны и диалоговые окна программы CX-Programmer.

4-3-1 Запуск CX-Programmer

1. На рабочем столе выберите [Start] (Пуск) – [All Programs] (Все программы) – [OMRON] – [CX-One] – [CX-Programmer] – [CX-Programmer]. Запустится программа CX-Programmer. Сначала отобразится заставка, а затем главное окно.

Примечание Подробная информация об установке CX-Programmer приведена в Главе 1 Обзор и установка пакета CX-One в руководстве CX-One Introduction Guide (R145).

SYSMAC CP1L — Вводное руководство 45

Page 47: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-3 Применение CX-Programmer

4

4

46

Создание програм

м

4-3-2 Рабочие экраныВ настоящем разделе описаны функции, доступные в главном окне CX-Programmer. Применение CX-Programmer описано в руководстве CX-Programmer Operation Manual (W446).

Главное окно

(1) Строка заголовкаОтображает имя файла проекта, созданного в CX-Programmer.

(2) Главное менюИспользуется для выбора функций CX-Programmer.

(3) Панели инструментовПанель инструментов содержит кнопки (пиктограммы) для наиболеечасто используемых функций. Для отображения названия функциинаведите указатель мыши на соответствующую пиктограмму. Чтобы отобразить/скрыть панели инструментов, в главном менювыберите пункт View (Вид) – Toolbars (Панели инструментов). Положениепанелей инструментов можно изменять путем их «перетаскивания».

(4) Дерево проекта/(6) Рабочая область проектаИспользуется для управления программами и настройками. Длякопирования данных можно использовать операцию «перетаскивания». Чтобы отобразить/скрыть рабочую область проекта, в главном менювыберите [View] (Вид) – [Windows] (Окна) – [Workspace] (Рабочая областьпроекта).

(5) СегментПрограммы можно разбивать на части (сегменты), с которыми можноработать отдельно.

(7) Рабочая область программИспользуется для создания и редактирования лестничных диаграмм.

(8) Строка комментариев к входам/выходамСодержит название, адрес/значение и комментарий к входам/выходамдля переменной, выбранной указателем мыши.

123

4

5

6

7

8

9

10

SYSMAC CP1L — Вводное руководство

Page 48: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-3 Применение CX-Programmer

4

4Создание програм

м

(9) Окно вывода информацииЧтобы отобразить/скрыть окно вывода информации, в главном менювыберите [View] (Вид) – [Windows] (Окна) – [Output] (Окно вывода).Содержит следующие сведения: Компилирование:

Отображаются результаты проверки программы. Отчет о поиске:

Отображаются результаты поиска контактов, команд и катушек. Передача:

Отображаются ошибки, возникшие при загрузке файла проекта.

(10) Строка состоянияСодержит такие данные, как имя ПЛК, статус режим связи (off-line/on-line)и положение активной ячейки. Если в режиме on-line возникает и регистрируется ошибка соединенияили другая ошибка в журнале ошибок, отображается красное мигающеесообщение об ошибке. Чтобы отобразить/скрыть строку состояния,в главном меню выберите [View] (Вид) – [Windows] (Окна) – [Status Bar](Строка состояния).

Рабочая область программ

(1) Номер строки программы

(2) Номер шага программы

(3) Заголовок строки программыЕсли строка содержит ошибку, справа от ее заголовка отображаетсякрасная линия.

(4) Шина

Информационное окно

Отображает основные «горячие» клавиши, используемые в CX-Programmer. Чтобы отобразить/скрыть информационное окно, в главном меню выберите [View] (Вид) – [Windows] (Окна) – [Information Window] (Информация).

SYSMAC CP1L — Вводное руководство 47

Page 49: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-4 Использование Справки

4

4

48

Создание програм

м

4-4 Использование СправкиФайл справки CX-Programmer содержит сведения об экранах CX-Programmer, а также разъяснения для всех операций, включая основные функции, создание программ и мониторинг. Кроме того, объясняются форматы и функции операндов.

Вызов Справки по CX-Programmer1. При работе в CX-Programmer нажмите клавишу [F1].

Отобразится окно Справки.

Справку по CX-Programmer также можно вызвать другим способом.

Вызов из меню рабочего стола1. На рабочем столе нажмите [Start] (Пуск) – [All Programs]

(Все программы) – [OMRON] – [CX-One] – [CX-Programmer] – [CX-Programmer Help] (Справка по CX-Programmer). Отобразится Справка по CX-Programmer.

SYSMAC CP1L — Вводное руководство

Page 50: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-4 Использование Справки

4

4Создание програм

м

Вызов из CX-Programmer1. В главном меню выберите [Help] (Справка) – [Help Contents]

(Содержание справки). Отобразится Справка по CX-Programmer.

Получение справки по командам ПЛК Подробные сведения о командах лестничных диаграмм смотрите в Справке по командам ПЛК (PLC Instruction Sets).

SYSMAC CP1L — Вводное руководство 49

Page 51: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-4 Использование Справки

4

4

50

Создание програм

м

Вызов из CX-Programmer1. В главном меню выберите [Help] (Справка) – [Instruction Reference]

(Справка по командам) – [CS/CJ-Series and CP-Series] (Серия CS/CJ и серия CP). Отобразится набор команд ПЛК серии CP.

При создании лестничных диаграмм 1. При создании команды лестничной диаграммы щелкните по кнопке

[Instruction Help] (Справка по команде) в диалоговом окне New Instruction (Создание команды). Отобразится набор команд ПЛК серии CP.

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

SYSMAC CP1L — Вводное руководство

Page 52: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

4-5 Ввод программИспользуя команды, доступные в CX-Programmer, создайте программу для приведенного примера.

4-5-1 Создание новых проектовПри первом использовании CX-Programmer Вам потребуется создать новый проект. При создании нового проекта необходимо задать тип устройства, а также тип ЦПУ для создаваемой программы и данных.

1. В главном меню выберите [File] – [New] (Файл – Создать). При этом откроется окно изменения ПЛК.

2. В раскрывающемся списке типов устройств выберите [CP1L].

SYSMAC CP1L — Вводное руководство 51

Page 53: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

52

Создание програм

м

3. Щелкните по кнопке [Settings] (Настройка). Откроется диалоговое окно настройки типа устройства.

4. В раскрывающемся списке выберите тип ЦПУ. Щелкните по кнопке [OK]. После этого диалоговое окно настройки типа устройства закроется.

SYSMAC CP1L — Вводное руководство

Page 54: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

5. Убедитесь, что в окне настройки сети отображается тип интрефейса [USB]. Щелкните по кнопке [OK].

Диалоговое окно изменения ПЛК закроется. Откроется главное окно нового проекта.

Если в окне настройки сети не отображается [USB], обратитесь к разделу 4-1-2 Подключение к компьютеру и установка драйвера USB и проверьте наличие установленного драйвера USB.

SYSMAC CP1L — Вводное руководство 53

Page 55: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

54

Создание програм

м

4-5-2 Ввод контактовВведите контакт. Подробные сведения о лестничных диаграммах приведены в разделе 4-2-2 Лестничная диаграмма.

Ввод контактов1. Нажмите клавишу [C].

Откроется диалоговое окно New Contact (Создание контакта).

2. Введите адрес «4». Нажмите клавишу [Ввод]. Введен адрес «4». Откроется диалоговое окно «Edit Comment» (Редактирование комментария).

3. В качестве комментария к входам/выходам введите фразу «Light detection sensor» (Датчик обнаружения света). Нажмите клавишу [Ввод]. На лестничной диаграмме отобразится контакт, представляющий входной сигнал от датчика обнаружения света.

Затем введите схему «ИЛИ».

SYSMAC CP1L — Вводное руководство

Page 56: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

Ввод схем «ИЛИ»1. Расположите курсор сразу после введенного контакта.

Нажмите клавишу [Ввод]. Будет отведена область для создания схемы «ИЛИ».

2. Нажмите клавишу [W]. Отобразится диалоговое окно «New Contact OR» (Создание контакта «ИЛИ»).

3. Введите адрес «W0». Нажмите клавишу [Ввод]. Введен адрес «W0». Откроется диалоговое окно «Edit Comment» (Редактирование комментария).

4. В качестве комментария введите «Work Area» (Рабочая область). Нажмите клавишу [Ввод]. Отобразится схема «ИЛИ», представляющая контакт рабочей области.

Затем введите нормально замкнутый контакт.

SYSMAC CP1L — Вводное руководство 55

Page 57: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

56

Создание програм

м

Ввод нормально замкнутых контактов1. Нажмите клавишу-стрелку «Вверх».

Курсор переместится вверх.

2. Когда курсор окажется в верхнем положении, нажмите клавишу [/]. Откроется окно «New Closed Contact» (Создание НЗ контакта).

3. Введите адрес «T0». Нажмите клавишу [Ввод].

Введен адрес «T0». Откроется диалоговое окно «Edit Comment» (Редактирование комментария).

4. Введите в качестве комментария «Timer» (Таймер). Нажмите клавишу [Ввод]. Отобразится схема «И», представляющая НЗ контакт таймера.

Введите выход в рабочей области.

SYSMAC CP1L — Вводное руководство

Page 58: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

4-5-3 Ввод выходных катушекВведите выходную катушку для рабочей области.

1. Нажмите клавишу [O]. Откроется диалоговое окно «New Coil» (Создание катушки).

2. Введите адрес «W0». Нажмите клавишу [Ввод]. Введен адрес «W0». Откроется диалоговое окно «Edit Comment» (Редактирование комментария), в котором уже будет введен комментарий к входу/выходу.

3. Нажмите клавишу [Ввод].

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

SYSMAC CP1L — Вводное руководство 57

Page 59: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

58

Создание програм

м

4. Нажмите 2 раза клавишу-стрелку «Вниз». Перемещение курсора в следующую строку программы означает завершение ввода текущей строки.

Введите команду таймера.

Примечание Дублированные катушкиНе допускайте дублирование катушек. Если для нескольких выходов указан один и тот же адрес, действительной будет только строка, ближе всех расположенная к команде END. Это связано с тем, что программы выполняются последовательно, сверху вниз. Недействительные строки с дублированными катушками CX-Programmer воспринимает за ошибки.

Пример программы с дублированными катушками

Ошибку можно устранить, изменив программу следующим образом.

SYSMAC CP1L — Вводное руководство

Page 60: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

4-5-4 Ввод таймеров

1. Нажмите клавишу [C]. Введите контакт «W000». Затем нажмите клавишу [Ввод] (должно быть активно диалоговое окно «Edit Comment»). Подробную информацию о вводе контактов смотрите в 4-5-2 Ввод контактов.

2. Нажмите клавишу [I]. Отобразится диалоговое окно «New Instruction» (Создание команды).

3. Введите команду таймера «TIM 0 #50». Нажмите клавишу [Ввод]. Введена команда таймера «TIM 0 #50». Откроется диалоговое окно «Edit Comment» (Редактирование комментария), в котором уже будет введен комментарий к входу/выходу. Команда «TIM 0 #50» соответствует таймеру задержки на 5,0 секунд, с флагом завершения таймера T0000.

SYSMAC CP1L — Вводное руководство 59

Page 61: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

60

Создание програм

м

4. Нажмите клавишу [Ввод].

На лестничной диаграмме должна отобразиться команда таймера.

5. Нажмите 3 раза клавишу-стрелку «Вниз». Перемещение курсора в следующую строку программы означает завершение ввода команды таймера.

Теперь введите команду счетчика.

SYSMAC CP1L — Вводное руководство

Page 62: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

4-5-5 Ввод счетчиков

1. Нажмите клавишу [C]. Введите контакт «004». Затем нажмите клавишу [Ввод] (должно быть активно диалоговое окно «Edit Comment»).Подробную информацию о вводе контактов смотрите в 4-5-2 Ввод контактов.

2. Нажмите клавишу [I]. Отобразится диалоговое окно «New Instruction» (Создание команды).

3. Введите команду счетчика «CNT 0 #3». Нажмите клавишу [Ввод].

Введена команда «CNT 0 #3». Откроется диалоговое окно «Edit Comment» (Редактирование комментария), в котором уже будет введен комментарий к входу/выходу. «CNT 0 #3» означает, что введен счетчик обратного счета с начальным значением 3 и флагом завершения C0000.

SYSMAC CP1L — Вводное руководство 61

Page 63: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

62

Создание програм

м

4. В качестве комментария к входу/выходу введите «Counter» (Счетчик). Нажмите клавишу [Ввод].

На лестничной диаграмме отобразится команда счетчика.

После этого введите вход сброса для команды счетчика. В качестве входа сброса будет использоваться контакт таймера (TIM 0000).

5. Расположите курсор под контактом, который был создан на Шаге 1.

SYSMAC CP1L — Вводное руководство

Page 64: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

6. Введите контакт «T0000».

7. Нажмите 2 раза клавишу-стрелку «Вниз». Перемещение курсора в следующую строку программы означает завершение ввода команды счетчика.

Теперь введите контакт из вспомогательной области.

SYSMAC CP1L — Вводное руководство 63

Page 65: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

64

Создание програм

м

4-5-6 Ввод вспомогательных областейЗдесь под «вспомогательной областью» понимается бит (реле), имеющий специальное назначение. Флаг первого цикла будет находиться в состоянии ВКЛ только в течение одного цикла после включения питания ПЛК. В данном случае он будет использоваться для сброса счетчика при включении питания модуля CP1L.

1. Нажмите клавишу [W]. Введите контакт «C0000» схемы «ИЛИ». Затем нажмите клавишу [Ввод] (должно быть активно диалоговое окно «Edit Comment»). Подробную информацию о вводе контактов смотрите в 4-5-2 Ввод контактов.

2. Нажмите клавишу [Ввод]. Будет отведена область для создания схемы «ИЛИ».

SYSMAC CP1L — Вводное руководство

Page 66: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

3. Нажмите клавишу-стрелку «Влево». 4. Нажмите клавишу [W].

Отобразится диалоговое окно «New Contact OR» (Создание контакта «ИЛИ»).

5. Введите адрес «A20011». Нажмите клавишу [Ввод].

На лестничной диаграмме отобразится флаг первого цикла.

SYSMAC CP1L — Вводное руководство 65

Page 67: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4

66

Создание програм

м

4-5-7 Ввод контактов с положительным фронтом

1. Руководствуясь разделом 4-2-2 Лестничные диаграммы, введите остальную часть лестничной диаграммы до контакта «10001» опускающего электродвигателя.

2. Нажмите клавишу [Ввод]. Будет отведена область для создания схемы «ИЛИ».

3. Нажмите клавишу [W]. Отобразится диалоговое окно «New Contact OR» (Создание контакта «ИЛИ»).

4. Введите адрес «3». Нажмите клавишу [Ввод]. Откроется диалоговое окно «Edit Comment» (Редактирование комментария).

5. В качестве комментария для входа/выхода введите «Car detection sensor» (Датчик обнаружения автомобиля). Нажмите клавишу [Ввод]. Контакт, представляющий входной сигнал от датчика обнаружения автомобиля, будет отображен в виде схемы «ИЛИ».

6. Дважды щелкните по контакту «003». Откроется диалоговое окно «Edit Contact» (Редактирование контакта).

SYSMAC CP1L — Вводное руководство

Page 68: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-5 Ввод программ

4

4Создание програм

м

7. Щелкните по кнопке [Detail] (Подробнее).

8. В качестве различаемого фронта выберите [Up] (Положительный). Щелкните по кнопке [OK].

На контакте отобразится направленная вверх стрелка, означающая различение переднего фронта.

4-5-8 Команда ENDЛестничные диаграммы должны завершаться командой END (Конец). При создании новой программы в CX-Programmer сегмент с командой END вставляется автоматически. Поэтому вставлять команду END вручную не нужно. Для подтверждения лестничной диаграммы, содержащей только команду END, дважды щелкните по сегменту [END].

SYSMAC CP1L — Вводное руководство 67

Page 69: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-6 Сохранение и загрузка программ

4

4

68

Создание програм

м

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

4-6-1 Компилирование программПроцедура компилирования позволяет находить ошибки в программе.

1. В главном меню выберите [PLC] – [Compile All PLC Programs] (ПЛК – Компилировать все программы ПЛК).

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

2. Если в процессе компилирования была обнаружена ошибка, дважды щелкните по сообщению об ошибке в окне вывода информации. Курсор переместится в то место, где была обнаружена ошибка. Исправьте ошибку.

SYSMAC CP1L — Вводное руководство

Page 70: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-6 Сохранение и загрузка программ

4

4Создание програм

м

4-6-2 Сохранение программСохраните созданную лестничную диаграмму. Все программы одного проекта сохраняются группой в одном файле.

1. В главном меню выберите [File] – [Save As] (Файл – Сохранить как…). Откроется диалоговое окно сохранения файла программы CX-Programmer.

2. Укажите место для сохранения файла и введите имя файла. Щелкните по кнопке [Save] (Сохранить). Файл проекта CX-Programmer будет сохранен.

SYSMAC CP1L — Вводное руководство 69

Page 71: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-6 Сохранение и загрузка программ

4

4

70

Создание програм

м

4-6-3 Загрузка программЗагрузите сохраненную лестничную диаграмму в CX-Programmer. Все программы одного проекта загружаются группой из одного файла.

1. В главном меню выберите [File] – [Open] (Файл – Открыть). Отобразится диалоговое окно открытия проекта CX-Programmer.

2. Укажите место хранения и имя файла. Щелкните по кнопке [Open] (Открыть). Откроется файл проекта CX-Programmer и отобразятся сохраненные программы.

SYSMAC CP1L — Вводное руководство

Page 72: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-7 Редактирование программ

4

4Создание програм

м

4-7 Редактирование программCX-Programmer позволяет редактировать созданные лестничные диаграммы. Можно также добавлять и редактировать комментарии к входам/выходам и комментарии к строкам программы.

4-7-1 Редактирование комментариев к входам/выходамКомментарии к входам/выходам можно добавлять и редактировать через список адресов.

1. В главном меню выберите [Edit] – [I/O Comment] (Правка – Комментарии к входам/выходам).

Откроется окно комментариев к входам/выходам.

SYSMAC CP1L — Вводное руководство 71

Page 73: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-7 Редактирование программ

4

4

72

Создание програм

м

2. Дважды щелкните по адресу, для которого Вы хотите ввести или отредактировать комментарий. Поле комментария к входам/выходам станет доступным для редактирования. Введите или отредактируйте комментарий к входам/выходам.

4-7-2 Ввод комментариев к строкам программыКомментарий можно ввести для каждой строки лестничной диаграммы.

1. Дважды щелкните по заголовку строки программы, для которой Вы хотите ввести комментарий. Откроется диалоговое окно «Rung Properties» (Свойства строки).

2. Введите нужный текст в поле ввода комментария в закладке General (Общие).

SYSMAC CP1L — Вводное руководство

Page 74: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-7 Редактирование программ

4

4Создание програм

м

3. Закройте диалоговое окно свойств строки. Введенный комментарий будет отображен на лестничной диаграмме.

4-7-3 Редактирование строк программыСозданные лестничные диаграммы можно редактировать.

Удаление

Контакты/Команды1. Наведите курсор на контакт или команду. Нажмите клавишу [Delete]

(Удалить). Выбранный контакт или команда будут удалены.

Строки программы1. Щелкните по заголовку строки.

Будет выбрана вся строка целиком.

2. Нажмите клавишу [Delete] (Удалить). Выбранная строка будет удалена.

SYSMAC CP1L — Вводное руководство 73

Page 75: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

4-7 Редактирование программ

4

4

74

Создание програм

м

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

1. Установите курсор в начальную точку вертикальной линии. 2. Удерживая нажатой клавишу [Ctrl], нажмите клавишу-стрелку

«Вверх» или «Вниз». Горизонтальные линии создаются аналогичным образом.

(1) Начальная точка

(2) Курсор• Создание линии справа налево: Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу-стрелку «Влево».

• Создание линии слева направо:Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу-стрелку «Вправо».

• Создание линии снизу вверх: Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу-стрелку «Вверх».

• Создание линии сверху вниз:Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу-стрелку «Вниз».

Примечание Чтобы удалить существующую соединительную линию, для нее следует вновь выполнить те же действия, что и при создании.

Копирование/вставка контактов/команд/строк

Контакты/Команды1. Наведите курсор на контакт или команду. 2. Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу [C].

Выбранный контакт или команда будут скопированы в буфер обмена.

3. Переместите курсор в место вставки. Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу [V]. В указанное место будут вставлены контакт или команда из буфера обмена.

Строки программы1. Щелкните по заголовку строки, которую Вы хотите скопировать.

Будет выбрана вся строка целиком.

2. Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу [C]. Выбранная строка будет скопирована в буфер обмена.

3. Переместите курсор в строку программы, в которую Вы хотите произвести вставку. Удерживайте нажатой клавишу [Ctrl] и нажмите клавишу [V]. Строка из буфера обмена будет вставлена в указанное место.

SYSMAC CP1L — Вводное руководство

Page 76: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

РАЗДЕЛ 5

Загрузка и отладка программ

Для передачи данных из компьютера в CP1L между компьютером и модулем CP1L должна быть установлена связь (режим on-line). Мониторинг и отладка программ, выполняемых модулем CP1L, также осуществляются в режиме on-line (т.е., при установленной связи между компьютером и CP1L).

5-1 Переход в режим on-line …………………………………………….. 765-1-1 Настройка часов модуля CP1L ……………………………… 775-1-2 Изменение режима работы …………………………………… 785-1-3 Загрузка/считывание программ …………………………….. 805-1-4 Выполнение операций………………………………………….. 82

5-2 Регулировка и отладка в режиме on-line ……………………… 835-2-1 Мониторинг………………………………………………………….. 835-2-2 Принудительная установка/сброс …………………………. 865-2-3 Изменение настроек таймера ……………………………….. 885-2-4 Поиск…………………………………………………………………… 885-2-5 Редактирование в режиме on-line………………………….. 915-2-6 Проверка длительности цикла………………………………. 92

Page 77: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Загрузка и отладка программ5

76

5

Загрузка и отладка программ

5-1 Переход в режим on-lineДля конфигурирования параметров CP1L, загрузки и выполнения программ необходимо, прежде всего, установить связь между компьютером и модулем CP1L (режим on-line).

1. В CX-Programmer откройте загружаемую программу. 2. В главном меню выберите [PLC] – [Work Online]

(ПЛК – Соединение с ПЛК). Отобразится запрос на подтверждение перехода в режим on-line.

3. Щелкните [Yes] (Да). Диалоговое окно закроется.

После перехода системы в режим on-line фон окна лестничной диаграммы становится светло-серым.

Обмен данными между компьютером и CP1L возможен только в режиме on-line. Для того чтобы CP1L мог выполнить программу, созданную при помощи CX-Programmer, ее необходимо загрузить в CP1L. Подробные сведения о загрузке программ смотрите в разделе 5-1-3 Загрузка/считывание программ.

SYSMAC CP1L — Вводное руководство

Page 78: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-1 Переход в режим on-line

5

5

77

5

Загрузка и отладка программ

SYSMAC CP1L — Вводное руководство

Примечание Если не удается перевести систему в режим on-line, проверьте настройки типа ПЛК и настройки связи. Чтобы проверить настройки, дважды щелкните по элементу [NewPLC1[CP1L]Offline] на дереве проекта. Подробные сведения о настройке интерфейса связи приведены в разделе 4-5-1 Создание новых проектов.

5-1-1 Настройка часов CP1LЧасы CP1L должны быть настроены на время Вашего часового пояса. Для установки времени используйте CX-Programmer. Если часы CP1L не установлены надлежащим образом, журнал ошибок будет содержать недостоверное время.

1. Откройте существующий проект в CX-Programmer. Процедура открытия проекта подробно описана в разделе 4-6-3 Загрузка программ.

2. Дважды щелкните по строке [PLC Clock] (Часы ПЛК). Откроется диалоговое окно «PLC Clock» (Часы ПЛК).

3. В главном меню выберите [Options] – [Set PLC Clock](Сервис – Настроить часы ПЛК). Откроется диалоговое окно «Set PLC Clock» (Настройка часов ПЛК).

Page 79: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-1 Переход в режим on-line

5

5

78

Загрузка и отладка программ

4. Установите дату и время. Щелкните по кнопке OK. Диалоговое окно настройки часов ПЛК закроется.

5. В главном меню выберите [File] – [Exit] (Файл – Выход). Часы CP1L настроены.

5-1-2 Изменение режима работыПереход в режим PROGRAM (Программирование). Переход в режим «Программирование» выполняется следующим образом.

1. В главном меню выберите [PLC] – [Operating Mode] – [Program] (ПЛК – Режим работы – Программирование). Отобразится диалоговое окно с запросом на подтверждение изменения режима работы.

SYSMAC CP1L — Вводное руководство

Page 80: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-1 Переход в режим on-line

5

5

5

Загрузка и отладка программ

2. Щелкните [Yes] (Да). Произойдет изменение режима работы.

Режим работы отображается в строке заголовка и на дереве проекта.

Режимы работы CP1LCP1L может работать в одном из трех режимов: PROGRAM (Программирование), MONITOR (Мониторинг) и RUN (Выполнение). Установите режим работы, соответствующий выполняемой операции. Режим работы влияет на всю программу пользователя и является общим для всех задач.

• Режим «Программирование» В этом режиме выполнение программы прекращается. Данный режим используется для подготовки к выполнению программы. В нем выполняются первичные настройки, например, настройка параметров ПЛК, загрузка программы, проверка программы и принудительная установка/сброс.

• Режим MONITOR (Мониторинг) В данном режиме выполняется программа. В этом режиме можно выполнять online-редактирование, принудительную установку/сброс, а также изменять значения в памяти ввода/вывода. Кроме того, данный режим используется для внесения изменений при пробном запуске программы.

• Режим «Выполнение» В данном режиме выполняется программа. Используйте этот режим для обычной работы.

SYSMAC CP1L — Вводное руководство 79

Page 81: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-1 Переход в режим on-line

5

5

80

Загрузка и отладка программ

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

5-1-3 Загрузка/считывание программСозданную в CX-Programmer программу можно загрузить в CP1L.

1. В главном меню выберите [PLC] – [Transfer] – [To PLC] (ПЛК – Загрузить – В ПЛК). Откроется диалоговое окно «Параметры загрузки».

Режим работы Программирование Выполнение Мониторинг

Состояние программы Остановлена Работает Работает

Обновление входов/выходов Выполняется Выполняется Выполняется

Состояние внешних входов/выходов ВЫКЛ Зависит от программы

Зависит от программы

Память ввода/вывода

Несохраняемая память ОбнуленаЗависит от программы

Зависит от программыСохраняемая память Сохраняется

Операции, выполняемые из CX-Programmer

Мониторинг памяти ввода/вывода

OK OK OK

Мониторинг программы OK OK OK

Загрузка/считывание программы

Из ПЛК OK OK OK

В ПЛК OK X X

Компилирование OK X X

Настройки ПЛК OK X X

Изменение программы OK X OK

Принудительная установка/сброс

OK X OK

Изменение уставки таймера/счетчика

OK X OK

Изменение текущего значения таймера/счетчика

OK X OK

Изменение текущего значения памяти ввода/вывода

OK X OK

SYSMAC CP1L — Вводное руководство

Page 82: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-1 Переход в режим on-line

5

5

5

Загрузка и отладка программ

2. Щелкните по кнопке [OK]. Отобразится запрос на подтверждение операции загрузки.

Примечание Подробные сведения о параметрах загрузки/считывания смотрите в РАЗДЕЛЕ 9 Загрузка/мониторинг/отладка программ руководства CX-Programmer Operation Manual (W446).

3. Щелкните по кнопке [Yes] (Да).

Если отобразится показанное ниже окно, щелкните по кнопке [Yes] (Да).

Начнется загрузка. Отобразится диалоговое окно Download (Загрузка).

SYSMAC CP1L — Вводное руководство 81

Page 83: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-1 Переход в режим on-line

5

5

82

Загрузка и отладка программ

4. Щелкните по кнопке [OK]. Загрузка программы завершена.

5-1-4 Выполнение операций Для обычной работы перейдите в режим «Выполнение». Процедура перехода в режим «Выполнение» описана ниже. Чтобы выполнить пробный запуск с целью внесения изменений и отладки программы, перейдите в режим «Мониторинг».

Предуп-реждение

Убедитесь в том, что переход в режим «Мониторинг» или «Выполнение» не повлияет на работу оборудования.

1. В главном меню выберите [PLC] – [Operating Mode] – [Run] (ПЛК – Режим работы – Выполнение). Отобразится диалоговое окно с запросом на подтверждение изменения режима работы.

2. Щелкните [Yes] (Да). Система начнет работать в режиме «Выполнение».

SYSMAC CP1L — Вводное руководство

Page 84: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

5

Загрузка и отладка программ

5-2 Изменение/отладка в режиме on-lineВ данном разделе описаны функции, которые используются для отладки и внесения изменений во время пробного запуска.

5-2-1 Мониторинг

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

1. Переведите CP1L в режим «Мониторинг». 2. Выберите [PLC] – [Monitor] – [Monitoring]

(ПЛК – Мониторинг – Мониторинг) в главном меню.

На лестничной диаграмме отображается протекание тока.

SYSMAC CP1L — Вводное руководство 83

Page 85: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

84

Загрузка и отладка программ

Отображение «протекания тока» в нескольких сегментахРабочую область лестничной диаграммы можно разбить на сегменты. Это позволяет просматривать одновременно несколько сегментов лестничной диаграммы.

(1) Разделитель окна

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

1

1

SYSMAC CP1L — Вводное руководство

Page 86: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

5

Загрузка и отладка программ

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

1. Выберите [PLC] – [Monitor] – [Monitoring] (ПЛК – Мониторинг – Мониторинг) в главном меню.

2. Выберите [View] – [Windows] – [Watch] (Вид – Окна – Мониторинг) в главном меню.

3. Введите адрес. Отобразится состояние соответствующего входа/выхода. Для переменных логического типа «0» означает ВЫКЛ.

Примечание • Адрес вводится в следующем формате: [адрес слова.номер бита]. Например, адрес четвертого бита нулевого слова («0 CH, 04 bit») имеет вид: «0,04».

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

SYSMAC CP1L — Вводное руководство 85

Page 87: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

86

Загрузка и отладка программ

5-2-2 Принудительная установка/принудительный сбросCX-Programmer позволяет принудительно изменять состояния входов/выходов независимо от текущих состояний входов/выходов внешних устройств. Эту функцию можно использовать для принудительной установки входных и выходных условий во время пробного запуска.

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

Принудительная установка/сброс выполняется следующим образом. 1. Переведите CP1L в режим «Мониторинг» или «Программирование». 2. Наведите курсор на контакт, который будет принудительно

установлен/сброшен.

SYSMAC CP1L — Вводное руководство

Page 88: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

5

Загрузка и отладка программ

3. В главном меню выберите [PLC] – [Force] – [On] (ПЛК – Принудительное изменение состояния – ВКЛ).

Контакт будет принудительно установлен и будет помечен значком принудительной установки.

Примечание • Для принудительной установки контакта (ВКЛ) выберите [On], а для принудительного сброса (ВЫКЛ) выберите [Off].

• Чтобы отменить принудительную установку/принудительный сброс, выберите [Cancel] (Отменить).

• Функция принудительной установки/принудительного сброса применима для следующих областей: Область CIO (область ввода/вывода, область логических связей, область модуля шины ЦПУ, область специального модуля ввода/вывода и рабочая область), рабочая область (WR), флаг завершения таймера, область хранения (HR), флаг завершения счетчика

SYSMAC CP1L — Вводное руководство 87

Page 89: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

88

Загрузка и отладка программ

5-2-3 Изменение настроек таймераНастройки таймера можно изменять для адаптации к условиям работы.

1. Переведите CP1L в режим «Мониторинг» или «Программирование». 2. Дважды щелкните по параметру таймера, которые Вы хотите изменить.

Откроется диалоговое окно «Set Timer/Counter Value» (Уставка таймера/счетчика).

3. Введите новое значение. Щелкните по кнопке [OK]. Уставка таймера будет обновлена.

5-2-4 Поиск

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

Справочник по применению адресов отображает следующую информацию: • Адрес для текущей позиции курсора • Переменные (локальные, глобальные)• Имя программы, имя сегмента• Адрес (шаг) программы • Команды, использующие указанный адрес

SYSMAC CP1L — Вводное руководство

Page 90: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

5

Загрузка и отладка программ

1. В главном меню выберите [View] – [Windows] – [Address Reference Tool] (Вид – Окна – Справочник по применению адресов).Отобразится окно справочника по применению адресов.

2. Введите адрес для поиска. Щелкните по кнопке [Find] (Найти).

SYSMAC CP1L — Вводное руководство 89

Page 91: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

90

Загрузка и отладка программ

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

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

1. Установите курсор на проверяемый контакт.

2. Нажмите клавишу [Пробел]. Курсор перейдет на выход, который устанавливает состояние проверяемого контакта.

SYSMAC CP1L — Вводное руководство

Page 92: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

5

Загрузка и отладка программ

5-2-5 Редактирование в режиме on-lineПрограмму CP1L можно редактировать в режиме on-line.

Предуп-реждение

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

Примечание • Если CP1L работает в режиме «Мониторинг», online-редактирование программы может привести к увеличению времени цикла и невозможности считывания входных сигналов.

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

1. Переведите CP1L в режим «Мониторинг» или «Программирование».2. Щелкните по заголовку строки, которую Вы хотите отредактировать.3. В главном меню выберите [Program] – [Online Edit] – [Begin]

(Программа – Online-редактирование – Начать).Серое затенение рабочей области лестничной диаграммы исчезнет, и программа станет редактируемой.

4. Отредактируйте программу.

SYSMAC CP1L — Вводное руководство 91

Page 93: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

5-2 Изменение/отладка в режиме on-line

5

5

92

Загрузка и отладка программ

5. В главном меню выберите [Program] – [Online Edit] – [Send Changes] (Программа – Online-редактирование – Передать изменения).Отредактированные строки будут переданы в CP1L.

5-2-6 Проверка длительности цикла

1. Переведите CP1L в режим «Мониторинг» или «Выполнение».2. Щелкните по рабочей области лестничной диаграммы.

В строке состояния отобразится значение длительности цикла.

Примечание Подробные сведения о длительности цикла смотрите в разделе A-3-2 Работа модуля ЦПУ.

SYSMAC CP1L — Вводное руководство

Page 94: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Приложение

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

A-1 Адреса слов/битов …………………………………………………….. 94

A-2 Команды……………………………………………………………………. 99A-2-1 Применение команд …………………………………………….. 99A-2-2 Базовые команды обработки

данных ввода/вывода …………………………………………. 100

A-3 Внутренняя работа CP1L………………………………………….. 103A-3-1 Внутренняя структура модулей ЦПУ……………………. 103A-3-2 Функционирование модуля ЦПУ ………………………….. 105

A-4 Примеры программирования CP1L …………………………… 112A-4-1 Применение регуляторов для

настройки таймеров……………………………………………..112A-4-2 Регистрация коротких сигналов …………………………….115A-4-3 Применение входов прерывания для

быстрого выполнения задач …………………………………119A-4-4 Применение часов реального времени ……………….. 125A-4-5 Применение угловых энкодеров для

определения положения …………………………………….. 130A-4-6 Применение сервоприводов для

позиционирования ……………………………………………… 135A-4-7 Применение инверторов для регулирования

скорости (1) ……………………………………………………….. 141A-4-8 Применение инверторов для регулирования

скорости (2) ……………………………………………………….. 148A-4-9 Обмен данными между модулями CP1L………………. 158

Page 95: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

Приложение

94

Приложение

A-1 Адреса слов/битовВ программируемом контроллере CP1L адреса слов («каналов») (CH) и адреса битов («реле») определяются следующим образом.

Каждое слово состоит из 16 битов. Адрес бита записывается следующим образом: [адрес слова] + [номер бита (от 00 до 15)]. Адреса битов используются для работы с контактами. Адреса слов используются, главным образом, как операнды для специальных команд при пословной обработке данных.

Примечание В CX-Programmer (далее сокращенно «CX-P») старшие разряды адресов слов и адресов битов не отображаются, если их значения равны 0. Например, вместо 0000CH будет отображено «0». Адреса битов отображаются в следующем формате: [адрес слова.номер бита]. Номер бита может изменяться в диапазоне от 00 до 15.

*Для модулей на 14/20 точек ввода/вывода: D0 … D9999, D32000 … D32767.

Примечание Слова в рабочей области CIO могут быть использованы для новых функций в последующих версиях модулей ЦПУ. В первую очередь используйте слова в рабочей области W000 … W511CH.

Область Слово («канал») Бит («реле»)

В CX-P В CX-P

ОбластьCIO

Область ввода/вывода 00 … 199 0 … 199 00000 … 19915 0,00 … 199,15

Область связей 1:1 3000 … 3063 CH 3000 … 3063 300000 … 306300 3000,00 … 3063,00

Область последовательной связи ПЛК

3100 … 3189 CH 3100 … 3189 310000… 318915 3100,00 … 3189,15

Рабочая область 3800 … 6143 CH 3800 … 6143 380000 … 614300 3800,00 … 6143,00

Рабочая область W000 … W511 CH W000 … W511 W00000 … W51115 W0.00 … W511.15

Область хранения H000 … H511 CH H000 … H511 H00000 … H51115 H0.00 … H511.15

Вспомогательная область A000 … A959 CH A000 … A959 A00000 … A95915 A0.00 … A959.15

Область данных DM D00000 … D32767* D0 … D32767* — —

Таймер T000 … T511 T0 … T511 T000 … T511 T0000 … T0511

Счетчик C000 … C511 C000 … C511 C000 … C511 C0000 … C0511

SYSMAC CP1L — Вводное руководство

Page 96: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-1 Адреса слов/битов

Приложение

Формат представления словСлово состоит из 16-ти битов, текущие состояния которых (ВКЛ/ВЫКЛ) и определяют значение слова. Двоичный формат преобразуется в шестнадцатеричный, и слово в итоге представляется в виде четырех шестнадцатеричных разрядов. По другому, каждой тетраде битов после преобразования в шестнадцатеричный формат соответствует один разряд.

Приведенное выше слово записывается в виде «0F7C (Hex)». Формат представления констант

Константы, используемые в командах CP1L, представляются следующим образом.

Условия выполнения командКоманды могут быть двух типов: циклические команды и однократные команды (команды с различением фронта). • Циклические командыЦиклическая команда выполняется в каждом цикле, пока условие выполнения находится в состоянии ВКЛ. Пример

• Однократные командыОднократная команда выполняется один раз (т.е., только в одном цикле), когда условие выполнения переходит в состояние ВКЛ. Перед именем однократной команды ставится символ «@». Пример

Некоторые команды не могут использоваться как однократные (с префиксом «@»). В этом случае используйте команды UP(521)/DOWN(522) или DIFU(013)(с различением положительного фронта)/DIFD(014)(с различением отрицательного фронта).

MSB(Старший значащий бит)

LSB(Младший значащий бит)

Бит 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Значение бита 23 22 21 20 23 22 21 20 23 22 21 20 23 22 21 20

Содержание(1 = ВКЛ, 0 = ВЫКЛ)

0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0

Разряд (Hex) 0 F 7 C

Представление Содержание/назначение

#0000 … 9999 (BCD) Значения таймеров/счетчиков, двоично-десятичные значения (BCD) в арифметических командах и т.д.

#0000 … FFFF (Hex) Сравниваемые данные в командах сравнения, передаваемые данные, двоичные данные (BIN) в арифметических командах и т.д.

&0 … 65535 Десятичное представление без знака(Возможно только в некоторых специальных командах. Может загружаться в CX-Programmer с преобразованием в/из шестнадцатеричного формата).

MOV (021) H010 D00010

W00000 В каждом цикле, в котором бит рабочей области W00000 находится в состоянии ВКЛ, содержимое слова области хранения H010CH записывается в слово DM D00010.

@MOV (021) H020 D00020

W00001 Когда бит рабочей области W00001 переходит из состояния ВЫКЛ в состояние ВКЛ, содержимое слова области хранения H020CH записывается в слово DM D00020.

SYSMAC CP1L — Вводное руководство 95

Page 97: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-1 Адреса слов/битов

96

Приложение

Флаги условийФлаги условий служат для индикации результатов обработки во время или после выполнения команд. Используется флаг или нет – зависит от команды. В лестничных диаграммах флаги условий используются как контакты.

Название Обозначение В CX-P Функция

Флаг «Ошибка» ER P_ER • Устанавливается при попытке выполнения команды, предназначенной для обработки двоично-десятичных данных, с данными другого формата.

• Устанавливается в случае неверного значения операнда команды (например, если значение выходит за пределы рабочей области).

Флаг «Ошибка доступа»

AER P_AER Устанавливается при попытке несанкционированного доступа к области, не предназначенной для доступа.

Флаг «Перенос» CY P_CY • Устанавливается в случае увеличения или уменьшения числа разрядов в результате выполнения арифметической операции.

• Флаг переноса может использоваться командами сдвига данных и некоторыми арифметическими командами.

Флаг «Равно» = P_EQ • Устанавливается, если при сравнении данных получен результат «равно».

• Устанавливается, если в результате вычислений или пересылок данные становятся равными 0.

Флаг «Не равно»

< > P_NE Устанавливается, если при сравнении данных получен результат «не равно».

Флаг «Больше» > P_GT Устанавливается, если при сравнении данных получен результат «данные 1>данные 2».

Флаг «Больше или равно»

>= P_GE Устанавливается, если при сравнении данных получен результат «данные 1 >=данные 2».

Флаг «Меньше» < P_LT Устанавливается, если при сравнении данных получен результат «данные 1<данные 2».

Флаг «Меньше или равно»

<= P_LE Устанавливается, если при сравнении данных получен результат «данные 1=<данные 2».

Флаг «Меньше нуля»

N P_N Устанавливается, если в результате вычислений старший значащий разряд становится равным 1.

Флаг «Переполнение»

OF P_OF Устанавливается, если в результате вычислений возникает переполнение.

Флаг «Потеря значимости»

UF P_UF Устанавливается, если в результате вычислений исчезают значащие разряды (отрицательное переполнение).

Флаг «Всегда ВКЛ»

ВКЛ P_ON Установлен постоянно. Используется в качестве условия выполнения для команд, которые не могут быть подключены непосредственно к шине.

Флаг «Всегда ВЫКЛ»

ВЫКЛ P_OFF Постоянно сброшен.

SYSMAC CP1L — Вводное руководство

Page 98: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-1 Адреса слов/битов

Приложение

Тактовые импульсыТактовые импульсы – это контакты, переключающиеся (ВКЛ/ВЫКЛ) с фиксированной периодичностью.

Примечание Чтобы ввести в CX-Programmer тактовый импульс или флаг условия, сначала введите контакт, затем нажмите клавишу [P] и выберите из раскрывающегося списка нужное значение.

Название Обозначение В CX-P Функция

Тактовый импульс с периодом 0,02 с

0,02 c P_0,02 c

Тактовый импульс с периодом 0,1 с

0,1 c P_0,1 c

Тактовый импульс с периодом 0,2 с

0,2 c P_0,2 c

Тактовый импульс с периодом 1,0 с

1 c P_1 c

Тактовый импульс с периодом 1 мин

1 мин P_1 мин

0,02 с

0,01 с0,01 с

0,1 с

0,05 с 0,05 с

0,2 с

0,1 с 0,1 с

1.0 с

0,5 с 0,5 с

1 мин

30 с 30 с

SYSMAC CP1L — Вводное руководство 97

Page 99: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-1 Адреса слов/битов

98

Приложение

Области ввода/вывода

В CP1L первые слова (одно или два) областей ввода (начиная с 0CH) и вывода (начиная со 100CH) зарезервированы для модуля ЦПУ. При подключении к модулю ЦПУ модулей ввода/вывода и модулей расширения, слова областей ввода и вывода отводятся для модулей в порядке их подключения.

• Зарезервированные слова и число модулей расширения (ввода/вывода)

Например, при использовании модуля на 40 точек ввода/вывода, области ввода 0CH и 1CH и области вывода 100CH и 101CH отведены для собственных (встроенных) входов/выходов модуля ЦПУ. Для подключаемых к модулю ЦПУ модулей расширения (ввода/вывода) по порядку отводятся слова области ввода, начиная с 2CH и далее, и слова области вывода, начиная со 102CH и далее.

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

Область ввода 0,00 … 99,15 (100 слов)

Область вывода 100,00 … 199,15 (100 слов)

Модуль ЦПУ Зарезервированное слово Допустимое число модулей расширения

(ввода/вывода)

Область ввода Область вывода

Модуль на 14 точек ввода/вывода

0 CH 100 CH 1

Модуль на 20 точек ввода/вывода

0 CH 100 CH 1

Модуль на 30 точек ввода/вывода

0 CH, 1 CH 100 CH, 101 CH 3

Модуль на 40 точек ввода/вывода

0 CH, 1 CH 100 CH, 101 CH 3

SYSMAC CP1L — Вводное руководство

Page 100: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-2 Команды

Приложение

A-2 КомандыCP1L обладает обширным набором команд. В данном разделе описаны правила использования команд и приведены некоторые базовые команды.

A-2-1Использование командНаборы команд прежних ПЛК, начиная с серии C до микро-ПЛК, были ориентированы, главным образом, на работу с двоично-десятичными данными (BCD). Однако, в связи с общей тенденцией к росту объема данных и необходимостью обмена данными между компьютерами, требуется, чтобы системы управления также поддерживали данные, представленные в двоичном формате. В ответ на эти требования, а также для повышения удобства использования в ПЛК серии CP добавлен целый ряд команд, предназначенных для работы с двоичными данными.

Примечание Список команд и пояснения приведены в файле Справки программы CX-Programmer. Подробные сведения о работе со справочной системой CX-Programmer смотрите в разделе 4-4 Использование Справки.

Обозначения командКоманды и номера функций

В данном разделе для обозначения специальных команд, которым назначены номера функций, используются мнемонические коды с трехзначным номером функции в скобках. Пример: MOV(021).

SYSMAC CP1L — Вводное руководство 99

Page 101: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-2 Команды

100

Приложение

A-2-2 Базовые команды обработки ввода/выводаБазовые команды обработки ввода/вывода используются для программирования контактов и катушек.

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

Программирование контактовКоманды LD (LOAD)/LD NOT (LOAD NOT)

Подключаются к шине или используются в начале блока строк.

Имя команды Команда Функция

Контакт LOAD LD Используется для контактов, подключаемых к шине или к началу блока строк.

LOAD NOT LD NOT Используется для нормально замкнутых контактов, подключаемых к шине или к началу блока строк.

AND AND Используется для контактов, включаемых последовательно.

AND NOT AND NOT Используется для нормально замкнутых контактов, включаемых последовательно.

OR OR Используется для контактов, включаемых параллельно.

OR NOT OR NOT Используется для нормально замкнутых контактов, включаемых параллельно.

Катушка(выход)

OUT OUT Включает катушку, если условие выполнения равно «1», и выключает, если условие выполнения равно «0».

OUT NOT OUT NOT Выключает катушку, если условие выполнения равно «1», и включает, если условие выполнения равно «0».

SET SET Включает катушку, если условие выполнения переходит из состояния ВЫКЛ в состояние ВКЛ. Катушка остается включенной даже после возврата условия выполнения в состояние ВЫКЛ.

RESET RSET Выключает катушку, когда условия выполнения переходит из состояния ВЫКЛ в состояние ВКЛ. Катушка остается выключенной даже после возврата условия выполнения в состояние ВЫКЛ.

KEEP RELAY KEEP(011) Преобразует указанный оператор реле в самоблокирующееся реле.

000000

000001

Шина

SYSMAC CP1L — Вводное руководство

Page 102: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-2 Команды

Приложение

Команды AND/AND NOTИспользуются для контактов, включаемых последовательно.

Примечание Количество контактов, подключаемых командами AND/AND NOT, не ограничено.

Команды OR/OR NOTИспользуются для контактов, включаемых параллельно.

Примечание Количество контактов, подключаемых командами OR/OR NOT, не ограничено.

Программирование катушекКоманды OUT/OUT NOT

Команда OUT включает катушку, если условие выполнения находится в состоянии ВКЛ. Команда OUT NOT выключает катушку, если условие выполнения находится в состоянии ВКЛ.

Примечание Не используйте один и тот же бит для катушек, программируемых командами OUT и OUT NOT. Это приведет к ошибке «дублированная катушка» в программе.

000002

000003

000000

000001

000000

000004

000005

000001

Шина

000100

000101

Условие выполнения

Условие выполнения

SYSMAC CP1L — Вводное руководство 101

Page 103: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-2 Команды

102

Приложение

Команды SET/RSET (RESET)Команда SET включает и удерживает во включенном состоянии катушку после перехода входного условия в состояние ВКЛ. Команда RSET выключает и удерживает катушку в состоянии ВЫКЛ.

В приведенном выше примере катушка (бит 000102) включается по условию SET и выключается по условию RSET.

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

Команда KEEP(011) (KEEP RELAY)Команда KEEP превращает катушку реле в реле с защелкой (самоблокирующееся реле). Это позволяет легко программировать самоблокирующиеся биты.

В приведенном выше примере катушка (бит 000103) переходит в состояние ВКЛ по условию установки и в состояние ВЫКЛ по условию сброса. Пока вход сброса находится в состоянии ВКЛ, вход установки игнорируется.

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

SET000102

000000

RSET000102

000001

000000

000001

000102

KEEP(011)

000103

000000 Вход SET

000001 Вход RSET

000103 000200

~

000000

000001

000103

Игнорируется

SYSMAC CP1L — Вводное руководство

Page 104: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-3 Внутренняя работа CP1L

Приложение

A-3 Внутренняя работа CP1LВ данном разделе кратко описаны внутренняя структура, функции и последовательность внутренних операций модулей ЦПУ CP1L.

A-3-1 Внутренняя структура модулей ЦПУНа следующем рисунке показана внутренняя структура модуля ЦПУ CP1L.

(1) Передача программ и параметров • При изменении данных (например, с помощью CX-Programmer)во встроенную флэш-память автоматически записывается резервнаякопия данных ОЗУ.

• При включении питания модуля данные из встроенной флэш-памятивновь переписываются в ОЗУ.

(2) Передача значений по умолчанию из области DM • По команде CX-Programmer принимаемые по умолчанию значенияобласти DM передаются из ОЗУ во встроенную флэш-память.

• При включении питания модуля принимаемые по умолчанию значенияобласти DM вновь переписываются из встроенной флэш-памяти в ОЗУв соответствии с настройками ПЛК.

(3) Обмен данными между флэш-памятью и картой памяти • По команде CX-Programmer данные из ОЗУ или встроенной флэш-памяти записываются на карту памяти.

• При включении питания модуля данные переписываются с карты памятиво встроенную флэш-память.

Модуль ЦПУ

Флэш-память

Параметры(т.е., настройки ПЛК)

Доступ

Память ввода/вывода

Встроенные выходы

Аналоговый регулятор

Внешний аналоговый вход настройки Вспомогательная область

ОЗУ (RAM)

Область DM

Программа пользователя

Память программфункц. блоков

Память комментариев

Программа пользователя

Область DM

Параметры(т.е., настройки ПЛК)

Встроенные входы

Модуль памяти

Операция «Запись» из CX-Programmer

1

2

3

4

5

6

7

8

1

3

33

3

SYSMAC CP1L — Вводное руководство 103

Page 105: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-3 Внутренняя работа CP1L

104

Приложение

(4) Программа пользователя • В этой области памяти (ОЗУ) хранится лестничная диаграмма. В CX-Programmer лестничную диаграмму можно сохранять,редактировать или открывать.

(5) Память ввода/вывода• В эту область (из этой области) памяти (ОЗУ) программа пользователязаписывает (читает) данные. При отключении питания некоторыеразделы памяти ввода/вывода обнуляются. Данные в других разделахсохраняются. Кроме того, имеются разделы, которые используются дляобмена данными с модулями ПЛК, и разделы, которые используютсятолько для внутренних операций.

• Существуют два вида обмена данными с другими модулями: циклическийобмен (в каждом цикле выполнения) и ациклический обмен (только покоманде).

(6) Области параметров• Кроме области памяти ввода/вывода, которая используетсяпользователем в качестве операндов команд, имеется отдельная областьпамяти, предназначенная исключительно для операций программы CX-Programmer. Это «область параметров». В области параметров хранятсянастройки ПЛК. [Настройки ПЛК]Настройки ПЛК – это конфигурационные данные, настраиваемыепользователем программным образом и описывающие основныехарактеристики модуля ЦПУ. Сюда входят параметрыпоследовательного порта, значение минимальной длительности циклаи другие подобные настройки. Подробные сведения о конфигурировании настроек ПЛК содержатсяв руководствеCX-Programmer Operation Manual (W446).

(7) Встроенная флэш-память • Модули ЦПУ CP1L оснащены встроенной флэш-памятью. Каждый раз, когда в область программы пользователя или в областьпараметров ПЛК (настройки ПЛК, таблица маршрутизации) записываютсяданные, во флэш-памяти автоматически создается резервная копияданных. Копия создается только при передаче или редактированииданных с использованием CX-Programmer или программируемоготерминала, либо при загрузке данных из карты памяти. Если данныеизменяются командами выполняемой программы, копия не создается.

• При очередном включении питания модуля содержимое памятипользователя (программа пользователя или область параметров)автоматически переписывается из встроенной флэш-памяти в ОЗУ.

• При помощи CX-Programmer во встроенную флэш-память также можносохранять данные области DM памяти ввода/вывода. Сохраненныетаким образом данные могут быть выбраны в качестве значений поумолчанию для области DM и автоматически загружаться в эту областьпри включении питания модуля.

• Во флэш-памяти имеется раздел для хранения комментариев, кудаможно сохранить таблицу символов, файл комментариев и файлуказателей программы. При загрузке проекта из CX-Programmer в модульЦПУ во флэш-память автоматически сохраняется информацияо программе функционального блока.

(8) Модуль памяти• CX-Programmer позволяет сохранять программы, содержимое памятиданных, настройки ПЛК и комментарии к входам/выходам на картупамяти.

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

SYSMAC CP1L — Вводное руководство

Page 106: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-3 Внутренняя работа CP1L

Приложение

A-3-2Функционирование модуля ЦПУВ данном разделе кратко описаны внутренние операции модуля ЦПУ CP1L.

Последовательность операций модуля ЦПУСначала производится выполнение программы (выполнение команд), затем обновляются данные ввода/вывода, после чего обслуживается периферия. Эти операции циклически повторяются.

Включение питания

Процедура включения питания (инициализация)

· Инициализация аппаратной памяти и работы системы.· Обнаружение подключенных устройств.

· Автоматическое чтение данных из модуля памяти при запуске.

· Очистка памяти ввода/вывода.· Проверка памяти пользователя (UM).· Принудительная установка/принудительный сброс.

Операции контроля

· Контроль ошибки батареи.· Контроль DIP-переключателей.· Проверка шины ввода/вывода.· Проверка памяти программы пользователя.

Выполнение программы

· Во время выполнения: выполнение программы пользователя.· Обработка ошибок: отключение выходов (при ошибке шины, перезагрузке модуля)· При наличии ошибки: очистка области памяти ввода/вывода (за исключением выполнения команды FALS)

Обновление входов/выходов*

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

Обслуживание периферийных устройств

Сервисы, выполняемые только при возникновении события:· Обслуживание периферийного порта USB· Обслуживание последовательного порта· Обслуживание порта связи· Обслуживание доступа к встроенной флэш-памяти· Обслуживание доступа к модулю памяти

*Обновление данных ввода/вывода также выполняется в режиме «Программирование».

· Online-редактирование

Время цикла

SYSMAC CP1L — Вводное руководство 105

Page 107: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-3 Внутренняя работа CP1L

106

Приложение

Обновление входов/выходовОбновление входов/выходов (в более широком смысле – обновление данных ввода/вывода) заключается в циклическом обмене данными между заданной областью памяти и внешним источником/адресатом данных. При обновлении выполняются следующие операции.

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

Обновление стандартных встроенных входов/выходов CP1L и входов/выходов модуля расширения (ввода/вывода) серии CP может инициироваться тремя следующими способами: • Циклическое обновление• Обновление при выполнении команд с модификатором

«немедленное обновление»• Обновление при помощи команды IORF

Циклическое обновлениеОбновление данных ввода/вывода производится после выполнения всех команд выполняемых задач. Это стандартный способ обновления данных ввода/вывода.

Тип устройства ввода/вывода Макс. объем передаваемых данных

Область обмена данными

Встроенные входы/выходы модуля ЦПУ Вход: 2 словаВыход: 2 слова

Область ввода/вывода

Модуль расширения ввода/вывода модуль расширения серии CP

Фиксированный; зависит от модуля

Область ввода/вывода

Обновление данных ввода/вывода

END

Фактическиеданные вв./выв.

END

END

Задача

Задача

Задача

Цикл

SYSMAC CP1L — Вводное руководство

Page 108: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-3 Внутренняя работа CP1L

Приложение

Обновление при выполнении команд с модификатором «немедленное обновление»

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

Примечание 1. Мгновенное обновление возможно только для встроенных входов/выходов. Для модулей расширения (ввода/вывода) серии CP используйте командуIORF.

2. Бит-ориентированные команды: Обновляется все слово (16 бит), содержащее указанный бит. Пословные команды: Обновляется указанное слово (16 бит).

3. Входы и S-операнды (операнды-источники): Вход обновляется непосредственно перед выполнением команды. Выходы и D-операнды (операнды-адресаты): Выход обновляется немедленно после выполнения команды.

Выполнение команды IORF (I/O REFRESH))Команда IORF (Обновить входы/выходы) позволяет обновлять сразу все данные ввода/вывода либо данные в указанном диапазоне в нужные моменты времени. Команда IORF обновляет входы/выходы модулей расширения (ввода/вывода) серии CP.

Примечание Время выполнения команды IORF сравнительно велико. Оно возрастает при увеличении числа обновляемых слов. Поэтому общая длительность цикла может возрасти. Следует иметь в виду, что длительность цикла может увеличиться весьма значительно. Подробную информацию смотрите в РАЗДЕЛЕ 4 Время выполнения команд и число шагов в руководстве CP Series CP1H/CP1L CPU Unit Programming Manual (W451).

!LD

!OUT 100.00

!MOV 1 101

0.00

Мгновенное обновление

0 CH

100 CH

1 CH

101 CH

0

0

0

1115

715

15 11

715 0

Фактические данные вв./выв. (встроенные входы/выходы)

D1: Адрес начального словаD2: Адрес конечного словаОбновляются слова данных ввода/вывода между D1 и D2.

IORF

D1 D2

SYSMAC CP1L — Вводное руководство 107

Page 109: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-3 Внутренняя работа CP1L

108

Приложение

Обслуживание периферийных устройствОбслуживание периферийных устройств (периферийные сервисы) производится не циклически, а по возникновению нерегулярных событий, таких как мониторинг и настройка параметров с использованием программируемого терминала, редактирование и мониторинг программ в CX-Programmer во время их выполнения (online) и т.п. Обслуживание периферийных устройств включает в себя обработку запросов на обслуживание, поступающих/отправляемых от/на внешние устройства. В ПЛК серии CP большинство сервисов используют команду FINS. Для выполнения каждого сервиса система отводит фиксированное время в пределах каждого цикла. Если выполнение сервиса завершается в пределах установленного времени, в оставшееся время (в оставшихся циклах) никаких операций, связанных с данным сервисом, не выполняется.

Примечание Для каждого из портов – порта USB, последовательного порта и порта связи – выделяется отдельное время обслуживания. По умолчанию выделяется 4 % от длительности предыдущего цикла. Если выполнение сервиса занимает несколько циклов и сервис выполняется с задержкой, назначьте для каждого сервиса фиксированный (а не в процентах от предыдущего цикла) интервал выполнения. Для этого воспользуйтесь опцией [Set time to all events] (Задать время для всех событий) в настройках ПЛК.

Тип сервиса Выполняемые функции

Обслуживание периферийного порта USB

• Обработка незапланированных запросов, поступающих в виде команд FINS или Host Link от CX-Programmer, программируемого терминала или компьютерной станции через периферийный порт USB или через последовательный порт (т.е., запросы на передачу программы, мониторинг, принудительную установку/сброс или online-редактирование).

• Обработка незапланированных запросов, отправляемых модулем ЦПУ через последовательный порт (по своей инициативе).

Обслуживание последовательного порта

Обслуживание порта связи • Последовательная передача данных с использованием команд SEND, RECV и CMND. В качестве портов связи используются внутренние логические порты 0 … 7.

• Команды выполняются в фоновом режиме, с использованием внутренних логических портов 0 … 7 в качестве портов связи.

Обслуживание обращенияк встроенной флэш-памяти

• Обмен данными (чтение и запись) со встроенной флэш-памятью.

Обслуживание обращенияк модулю памяти

• Обмен данными (чтение и запись) с модулем памяти.

SYSMAC CP1L — Вводное руководство

Page 110: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-3 Внутренняя работа CP1L

Приложение

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

Расчет длительности циклаВремя цикла определяется, как сумма времен выполнения следующих операций:

Время цикла = операции контроля + выполнение программы + (вычисление времени цикла) + обновление входов/выходов + обслуживание периферийных устройств

Операции контроля

Выполнение программы

Подробную информацию смотрите в РАЗДЕЛЕ 4 Время выполнения команд и число шагов в руководстве CP Series CP1H/CP1L CPU Unit Programming Manual (W451).

Вычисление времени цикла

Обновление входов/выходов

Подробные сведения о времени обновления входов/выходов смотрите в разделе 2-7 Вычисление времени цикла руководства CP Series CP1L CPU Unit User’s Manual (W462).

Операция Время выполнения и влияющие факторы

Проверка шин ввода/вывода. Проверка памяти программы пользователя, ошибки батареи и др.

0,4 мс

Операция Время выполнения и влияющие факторы

Выполнение программы (выполнение команд). Время выполнения равно сумме времен выполнения отдельных команд.

Сумма времен выполнения команд

Операция Время выполнения и влияющие факторы

Ожидание истечения заданного времени цикла, если в настройках ПЛК задано минимальное (фиксированное) время цикла. Вычисляется время цикла.

Если фиксированное время цикла не было задано, время выполнения приблизительно равно 0. Дополнительное время для фиксирования времени цикла = фиксированное время цикла – фактическое время цикла (время выполнения: операции контроля + выполнение программы + обновление входов/выходов + обслуживание периферийных устройств)

Операция Время выполнения и влияющие факторы

Модули расширения ввода/вывода и модули расширения серии CP

Обновляется каждый модуль. Сначала обновляются выходы (от ЦПУ к модулям расширения), а затем – входы (от модулей расширения к модулю ЦПУ).

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

SYSMAC CP1L — Вводное руководство 109

Page 111: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-3 Внутренняя работа CP1L

110

Приложение

Обслуживание периферийных устройств

Примечание 1. Время цикла зависит от следующих факторов. Тип и количество команд в программе пользователя (все циклическиеи дополнительные задачи, выполняемые в цикле; плюс задачи,выполняемые по прерыванию, для которых удовлетворяется условиевыполнения) Тип и количество подключенных модулей расширения ввода/выводаи модулей расширения серии CP (при использовании режима ‘protocolmacro’ также максимальное количество передаваемых слов данныхв сообщениях). «Минимальная длительность цикла», указанная в настройках ПЛК Использование периферийных портов USB и последовательных портов «Фиксированное время обслуживания периферийных устройств»,указанное в настройках ПЛК

2. Время цикла не зависит от количества задач в программе пользователя. На время цикла влияют только циклические задачи, имеющие статус READY (Готовность) в пределах цикла.

3. При переходе из режима «Мониторинг» в режим «Выполнение» длительность цикла увеличивается, примерно, на 10 мс (однако это не приводит к чрезмерному увеличению времени цикла).

Операция Время выполнения и влияющие факторы

Обслуживание периферийного порта USB

Время выполнения этих сервисов изменяется в зависимости от настроек ПЛК. Если время цикло не указано, длительность выполнения сервиса будет составлять 4 % от длительности предшествующего цикла, которая рассчитывается по формуле «расчета длительности цикла». Если время цикло указано, сервис будет выполняться в течение установленного времени. Независимо от того, указано время цикла или нет, выполнение займет не менее 0,1 мс. Если порты не подключены, время обслуживания равно 0 мс.

Обслуживание последовательного порта

Обслуживание порта связи

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

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

Выполнение займет не меньше 0,1 мс, независимо от того, было ли задано время цикла или нет.

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

Обслуживание доступа к встроенной флэш-памяти

Время выполнения данных сервисов изменяется в зависимости от настроек ПЛК. Если время цикло не указано, длительность выполнения сервиса будет составлять 4 % от длительности предшествующего цикла, которая рассчитывается по формуле «расчета длительности цикла». Если время цикло указано, сервис будет выполняться в течение установленного времени. Выполнение займет не меньше 0,1 мс, независимо от того, было ли задано время цикла или нет. При отсутствии обращения к памяти время обслуживания равно 0 мс.

Обслуживание доступа к модулю памяти

SYSMAC CP1L — Вводное руководство

Page 112: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-3 Внутренняя работа CP1L

Приложение

Пример расчета времени цикла Пример приведен для раздела 4-2-2 Лестничные диаграммы.

Пример приведен для следующих условий: • Используется модуль CP1L на 14 точек ввода/вывода. • Модули расширения не используются. • Соединение не устанавливается (с CX-Programmer и т.п.).

Операция Формула Время выполнения

Операции контроля — 0,4 мс

Выполнение программы

Последовательные команды вводаLD: 0,55 мкс x 6 команд OR: 0,68 мкс x 6 командAND NOT: 0,65 мкс x 7 команд

Последовательные команды ввода ( по фронту): 5,5 мкс x 1 команду Последовательные команды вывода: 1,1 мкс x 3 командыКоманды таймера: 6,4 мкс x 1 командуКоманды счетчика: 6,7 мкс x 1 командуКоманда END: 6,2 мкс x 1 команду

0,04 мс

Расчет длительности цикла

— 0 мс

Обновление входов/выходов

— (нет модулей расширения) 0 мс

Обслуживание периферийных устройств

— (не подключены) 0 мс

Длительность цикла 0,44 мс

SYSMAC CP1L — Вводное руководство 111

Page 113: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

112

Приложение

A-4 Примеры программирования CP1LВ данном разделе приведены примеры подключения, настройки DIP-переключателей и программирования. Подробные сведения о подключении цепей и настройках смотрите в руководстве CP Series CP1L CPU Unit User’s Manual (W462). Подробная информация о командах CP1L приведена в руководстве CP Series CP1H/CP1L CPU Unit Programming Manual (W451). Применение CX-Programmer описано в руководстве CX-Programmer Operation Manual (W446).

A-4-1Применение регуляторов для настройки таймеровПрименяемые функции

Внешний аналоговый сигнал настройкиАналоговое значение внешнего сигнала (0 … 10 В) преобразуется в цифровое (разрешение: 256). Преобразованное значение передается во вспомогательную область (A643CH). Эту функцию можно использовать для изменения задания (уставки) в зависимости, например, от наружной температуры, сигнала обратной связи от переменного резистора и других внешних факторов. Пример с использованием входного сигнала от переменного резистора показан ниже.

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

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

Промежуток времени после выключения датчика и до закрывания шлагбаума регулируется при помощи переменного резистора, подключенного к CP1L.

Фотоэлектрический датчик

CP1L

Шлагбаум

Открыто

Время до отключения2,0 с (миним.) … 27 с (макс.)

Вход датчикаКонтакт 0.00

Выход управления шлагбаумомКонтакт 100.00

2,0 с (миним.) … 27 с (макс.) Переменный резисторПределы регулировки

SYSMAC CP1L — Вводное руководство

Page 114: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Конфигурация системыПример подключения

Пример программыЛестничная диаграмма

(A): Чтобы задать минимальное значение 2 с, сначала преобразуйте входное аналоговое значение A643 в двоично-десятичное значение в D0, увеличьте его на 20(BCD), что соответствует 2 с и сохраните в D1.

(B): Команда TIM работает, как включающий таймер обратного отсчета с интервалом 0,1 с.

0.00

Разъем входа внешнего аналогового сигнала настройки

Вход датчика

Выход управления шлагбаумом

100.00

1 кОм (0,25 Вт)

1,4 кОм(0,5 Вт)

Переменный резистор

CP1L

24 В=

2 3 4 5 6

0.00 T0010 100.00

ШлагбаумФотоэлектрический датчик

100.00

P_On

TIM

0010

D1

0.00100.00

Шлагбаум Фотоэлектрический датчик

B

+B

#20

D0

D1

A

BCD

A643

D0

SYSMAC CP1L — Вводное руководство 113

Page 115: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

114

Приложение

ИнформацияЗависимость значения A643 от уровня входного напряжения

Максимальное входное напряжение составляет 11 В=. Не превышайте это напряжение.

Использование аналогового регулятора на CP1L Вместо внешнего аналогового сигнала для настройки можно использовать аналоговый регулятор модуля CP1L. Аналоговый регулятор позволяет установить во вспомогательнойобласти (A642CH) любое значение в диапазоне от 0 до 255 (0 … FF Hex).

10

0 11

281

0

256

Значение в A643CH (BCD)

Входное напряжение (В)

100 (Hex)

Крестовая отвертка

Аналоговый регулятор

SYSMAC CP1L — Вводное руководство

Page 116: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

(A): Чтобы применить аналоговый регулятор модуля CP1L для настройки таймера, в приведенном примере лестничной диаграммы необходимо вместо слова дополнительной области A643 указать слово дополнительной области A642.

A-4-2 Регистрация коротких сигналов

Применяемые функцииБыстродействующий вход

Встроенный вход, работающий в быстродействующем режиме, позволяет регистрировать сигналы длительностью до 30 мкс, независимо от длительности цикла. В модулях на 14 точек ввода/вывода можно использовать до 4-х быстродействующих входов. В модулях на 20/30/40 точек ввода/вывода можно использовать до 6-ти быстродействующих входов.

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

100.00

Шлагбаум

T00100.00

Фотоэлектрический датчик100.00

Шлагбаум

P_On

100.00

Шлагбаум

0.00

Фотоэлектрический датчик D1

TIM

0010

D1

+B

#20

D0

AD0

BCD

A642

ДатчикИзделие

SYSMAC CP1L — Вводное руководство 115

Page 117: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

116

Приложение

При этом необходимо регистрировать и подсчитывать сигналы, длительность которых меньше времени считывания. После регистрации 100 сигналов выдается сигнал окончания счета.

• Быстродействующие входы позволяют регистрировать сигналы, длительность которых меньше длительности цикла. Однако, как и при использовании любого другого входа, для выполнения программы используется вся длительность цикла. Для ускоренной обработки, не зависящей от времени считывания (времени цикла), используйте входы прерываний.

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

Конфигурация системыПример подключения

30 мк с (миним.)

Вход датчикаКонтакт 0.04

Команда BCD счетчикаC0000

10099

98 97

10

УставкаТекущее значение

Контакт C0000

Вход сброса счетчикаКонтакт 0.01

Счет завершенКонтакт 100.00

100

Вход датчика 0.04

Счет завершен

Вход сброса счетчика 0.01

100.00

CP1L

SYSMAC CP1L — Вводное руководство

Page 118: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Настройки ПЛКВ диалоговом окне настроек ПЛК выберите для входа датчика (0.04) значение [Quick] (Скоростной).

1. Откройте главное окно CX-Programmer. 2. На дереве проекта дважды щелкните по [Settings] (Настройки).

Откроется диалоговое окно настроек ПЛК.

3. Откройте закладку «Built-in Input» (Встроенные входы).

SYSMAC CP1L — Вводное руководство 117

Page 119: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

118

Приложение

4. В раскрывающемся списке IN0 в поле [Interrupt Input] (Вход прерывания) выберите [Quick] (Скоростной).Хотя для датчика используется вход (контакт) 0,04, настройка выполняется для [IN0], так как входу (контакту) 0,04 соответствует быстродействующий вход 0.

5. Закройте диалоговое окно «Настройки ПЛК».6. Чтобы измененные настройки ПЛК вступили в силу,

включите питание ПЛК.

Пример программыЛестничная диаграмма

CNT

0000

#0100

100.00

Счет завершен

C0000

Вход датчика

0.04

0.01

Вход сброса счетчика

Двоично-десятичный счетчик

SYSMAC CP1L — Вводное руководство

Page 120: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

A-4-3Применение входов прерывания для быстрого выполнения задач

Применяемые функцииВходы прерывания

Модули ЦПУ контроллера CP1L обычно выполняют операции циклически в следующем порядке: операции проверки, выполнение программы, обновление входов/выходов, обслуживание периферийных устройств. На этапе выполнения программы выполняются циклические задачи. Функция обработки прерывания позволяет прервать цикл при наступлении определенного события и выполнить указанную программу. Задача обработки прерывания (прямой режим) выполняется, когда переключается встроенный вход прерывания модуля ЦПУ: ВЫКЛ -> ВКЛ или ВКЛ -> ВЫКЛ. Входным контактам назначены задачи обработки прерываний 140 … 145. Это распределение является фиксированным. Используйте входы прерывания для ускоренной обработки, не зависящей от времени считывания (времени цикла).

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

Задачи обработки прерываний будут выполняться по переключению входа датчика (входа прерывания) из состояния ВЫКЛ в состояние ВКЛ.

Вход датчика (вход прерывания)

Вход датчика 1Вход датчика 2

Вход датчика 3

Изделие

Вход датчика (вход прерывания 0)Контакт 0.04

Вход датчика 1Контакт 0.00

Вход датчика 2Контакт 0.01

Обработка прерывания

Выход «Норма»Контакт 100.00Выход «Брак»Контакт 100.01

Вход датчика 3Контакт 0.02

Вход «Сброс»Контакт 0.05

Выход «Брак» входа датчика 1Контакт 100.02Выход «Брак» входа датчика 2Контакт 100.03Выход «Брак» входа датчика 3Контакт 100.04

Обработка прерывания

Обработка прерывания

SYSMAC CP1L — Вводное руководство 119

Page 121: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

120

Приложение

Конфигурация системыПример подключения

В модулях CP1L на 14 точек ввода/вывода входы прерываний могут быть назначены контактам 0,04 … 0,07. Вход прерывания 0 соответствует контакту 0,04. По переключению входа прерывания 0 выполняется задача обработки прерывания 140.

Настройки ПЛКВыберите для контакта 0,04 функцию [Interrupt] (Прерывание).

1. Откройте диалоговое окно «Настройки ПЛК». 2. Откройте закладку «Built-in Input» (Встроенные входы). 3. В раскрывающемся списке IN0 в поле [Interrupt Input]

(Вход прерывания) выберите значение [Interrupt] (Прерывание). Хотя для датчика используется вход (контакт) 0,04, настройка выполняется для [IN0], так как входу (контакту) 0,04 соответствует вход прерывания 0.

4. Закройте диалоговое окно «Настройки ПЛК». 5. Чтобы измененные настройки ПЛК вступили в силу, включите

питание ПЛК.

Выход «Норма» 100.00Выход «Брак» 100.01

Выход «Брак» входа датчика 1 100.02Выход «Брак» входа датчика 2 100.03Выход «Брак» входа датчика 3 100.04

Вход датчика (вход прерывания 0) 0.04

Вход «Сброс» 0.05

CP1L

0.02 0.01 0.00

Вход датчика 3Вход датчика 2Вход датчика 1

SYSMAC CP1L — Вводное руководство

Page 122: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Пример программыЛестничная диаграмма

Чтобы вход прерывания срабатывал по положительному фронту и обработка прерывания по входубыла разрешена, используется команда MSKS (установить маску прерываний).

MSKS(690)

#0

110

MSKS(690)

#0

100

SET

100.01

RSET

100.00

P_On

100.02

Выход «Брак» входа датчика 1

0.05

Вход «Сброс»

100.03

Выход «Брак» входа датчика 2

100.04

Выход «Брак» входа датчика 3

Вход прерывания 0

Вход прерывания 0

Использовать положительный фронтвходного сигнала

Разрешить прерывание

RSET

100.01

RSET

100.02

RSET

100.03

RSET

100.04

SYSMAC CP1L — Вводное руководство 121

Page 123: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

122

Приложение

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

SET

Выход «Брак»входа датчика 1

Выход «Брак»входа датчика 2

Выход «Брак»входа датчика 3

Вход датчика 1

Вход датчика 1

Вход датчика 2

Вход датчика 3

0.00

0.00

0.01

0.02

Вход датчика 3Вход датчика 2

0.01 0.02

Выход «Норма»

Задача обработки

прерывания 140

100.00

SET

100.02

SET

100.03

SET

100.04

SYSMAC CP1L — Вводное руководство

Page 124: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

ИнформацияСоздание программ обработки прерываний

1. На дереве проекта правой кнопкой мыши щелкните по [NewPLC1[CP1L]Offline]. В контекстном меню выберите [Insert Program] (Вставить программу). Внизу дерева проекта будет добавлен заголовок [NewProgram2 (Unassigned)] (Новая программа 2 (Не назначена)).

2. Правой кнопкой мыши щелкните по [NewProgram2 (Unassigned)]. В контекстном меню выберите [Properties] (Свойства). Откроется диалоговое окно «Program Properties» (Свойства программы).

SYSMAC CP1L — Вводное руководство 123

Page 125: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

124

Приложение

3. Щелкните по закладке General (Общие). В раскрывающемся списке Task type (Тип задачи) выберите [Interrupt Task 140] (Задача обработки прерывания 140).

4. Закройте диалоговое окно свойств программы. 5. В ветви [NewProgram2 (Int 140)] выберите [Section1] (Сегмент 1).

6. Введите программу (лестничную диаграмму) обработки прерывания. Чтобы отобразить основную лестничную диаграмму, дважды щелкните по объекту [Section1] ветви [NewProgram1(00)] на дереве проекта.

SYSMAC CP1L — Вводное руководство

Page 126: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

A-4-4Применение часов реального времени

Применяемые функцииЧасы

В модулях ЦПУ CP1L имеются встроенные часы.Если батарея не установлена или разряжена, часы использовать невозможно.

Описание работыРассмотрим пример управления фонтаном. Фонтан должен включаться по следующему расписанию: • Понедельник – пятница: с 17:30 по 20:30 • Суббота, воскресенье: с 10:00 по 21:15

Конфигурация системыПример подключения

CP1L

Фонтан

Насос фонтана100.00

CP1L

SYSMAC CP1L — Вводное руководство 125

Page 127: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

126

Приложение

Пример программыЛестничная диаграмма

(A): Включен с понедельника по пятницу (т.е., когда значение A354 [день] меньше или равно значению «Пятница»), с 17:30 (когда значение A351 [чч:мм:сс] станет равным значению в словеD0 [17:30:00]) до 20:30 (когда значение A351 [чч:мм:сс] станет равным значениюв слове D10 [20:30:00]).

(B): Включен в субботу и воскресенье (т.е., когда значение A354 [день] меньше или равно значению «Суббота»), с 10:00 (когда значение A351 [чч:мм:сс] станет равным значению в словеD20 [10:00:00]) до 21:15 (когда значение A351 [чч:мм:сс] станет равным значениюв слове D30 [21:15:00]).

• >=DT и <DT – команды сравнения значений времени.

ИнформацияДанные времени в CP1L

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

<=(315)

A354

#5

D0

>=DT(346)

#38A351

D10

<DT(343)

#38A351

>=(325)

A354

#6

D20

>=DT(346)

#38A351

D30

<DT(343)

#38A351

100.00

Насос фонтанаA

B

Название Адрес Содержимое

Данные времени

A351.00 … A351.07 Секунда: 00 … 59 (BCD)

A351.08 … A351.15 Минута: 00 … 59 (BCD)

A352.00 … A352.07 Час: 00 … 23 (BCD)

A352.08 … A352.15 День месяца: 01 … 31 (BCD)

A353.00 … A353.07 Месяц: 01 … 12 (BCD)

A353.08 … A353.15 Год: 00 … 99 (BCD)

A354.00 … A354.07 День недели: 00 … 06 (BCD)00: воскресенье, 01: понедельник, 02: вторник, 03: среда, 04: четверг, 05: пятница, 06: суббота

SYSMAC CP1L — Вводное руководство

Page 128: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Команды сравнения значений времениЭти команды позволяют легко реализовать сравнение значений времени. Пример: если 0,00 = ВКЛ и текущее время = 13:00:00, 100.00 переводится в состояние ВКЛ.

Будет выполнено сравнение значений часов, минут и секунд текущего времени встроенных часов модуля ЦПУ (A351 … A352) и заданного времени (D100 … D102).

— — 1 1 1 0 0 0

D100

=DT

D0

A351

100.000.00

S2

C

S1

Установить D0=0038Hex 7 6 5 4 3 2 1 0

D0

Сравнить секунды

Маскировать годы

Маскировать месяцыМаскировать дниСравнить часыСравнить минуты

Сравнение выделенных данных

A351

A353

A352

15 9 7 0Минута

Год

S2: D100

S2+2: D102

S2+1: D101

15 9 7 0

00 00

— —

— 13

Индицируется флагом состояния при включении питания

ЧасДень

Секунда

Месяц

SYSMAC CP1L — Вводное руководство 127

Page 129: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

128

Приложение

Настройка области DMВ области DM в двоично-десятичном формате (BCD) задайте следующие значения.

1. Откройте главное окно CX-Programmer. 2. На дереве проекта щелкните по [Memory] (Память).

Откроется окно памяти.

Слово Значение Содержимое

D0 3000 30 мин 00 сек

D1 0017 17 ч

D2 0000 —

D10 3000 30 мин 00 сек

D11 0020 20 ч

D12 0000 —

D20 0000 00 мин 00 с

D21 0010 10 ч

D22 0000 —

D30 1500 15 мин 00 с

D31 0021 21 ч

D32 0000 —

SYSMAC CP1L — Вводное руководство

Page 130: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

3. В окне областей данных дважды щелкните по [D]. Отобразится таблица данных ПЛК.

4. Введите значения слов DM.

5. Щелкните по кнопке [Save in Project] (Сохранить в проект). Настройки будут сохранены.

6. Загрузите данные из компьютера в CP1L. 1)Убедитесь в том, что между компьютером и CP1L установлено соединение

(режим online) . 2)В главном меню выберите [Online] – [Transfer to PLC]

(Соединение – Загрузить в ПЛК). Откроется диалоговое окно загрузки в ПЛК.

3)Выберите область и ее раздел для загрузки. Щелкните по кнопке [Transfer to PLC] ( Загрузить в ПЛК). Данные будут загружены в ПЛК.

SYSMAC CP1L — Вводное руководство 129

Page 131: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

130

Приложение

A-4-5Применение угловых энкодеров для определения положения

Применяемые функцииИспользование встроенного входа в качестве скоростного счетчика

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

Описание работыУправление устройством подачи листов неизменной длины в заданном направлении, например, для вакуумной упаковки продуктов питания.

Если число подсчитанных импульсов будет находиться в пределах 3500 … 3550, будет включен флаг «правильное положение остановки» (100,02). Если число подсчитанных импульсов превысит 3550, будет включен флаг «неправильное положение остановки» (100,03).

Импульсы, подсчитываемые скоростным счетчиком

При пуске двигателя лестничная диаграммавключает бит A531.00 (программный сброс скоростного счетчика)

Скорость двигателя

Двигатель: ПускКонтакт 0.02

Двигатель: Медленное вращениеКонтакт 100.01

300035003550

(A270) (Импульс)

Двигатель: (Вращение)Контакт 100.00

Правильное положение остановаКонтакт 100.02Неправильное положение остановаКонтакт 100.03

SYSMAC CP1L — Вводное руководство

Page 132: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Конфигурация системыПример подключения

Примечание Используйте внешний блок питания только для входных устройств. Его использование для выходных устройств не допускается.

Фаза A

Фаза B

Фаза C

+B=

0 В (общ.)

Энкодер (питание: 24 В=)

Например, модель E6B2-CWZ6C, NPN-выход с открытым коллектором

Черный

Белый

Оранжевый

Коричневый

Синий

Питание 24 В=

100 … 240 В~

CP1L-L14DR-A

Пуск двигателя 0.02

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

Неправильное положение останова 100.03Индикатор

Вращение двигателя 100.00

Медленное вращение двигателя 100.01

Инвертор и т.п.

Индикатор

BB

SYSMAC CP1L — Вводное руководство 131

Page 133: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

132

Приложение

Настройки ПЛКРазрешение работы скоростного счетчика 0.

1. Откройте диалоговое окно «Настройки ПЛК». 2. Откройте закладку «Built-in Input» (Встроенные входы).

3. Установите флажок [Use high speed counter 0] (Использовать скоростной счетчик 0).

4. В поле [Counting mode] (Режим счета) выберите [Linear mode] (Линейный режим).

5. В раскрывающемся списке «Reset» (Сброс) выберите [Software reset(comparing)] (Программный сброс (сравнение)).

6. В раскрывающемся списке «Input Setting» (Тип входного сигнала) выберите [Differential phase input] (Сигнал со сдвигом фаз).

7. Закройте диалоговое окно «Настройки ПЛК». 8. Чтобы измененные настройки ПЛК вступили в силу, включите

питание ПЛК.

SYSMAC CP1L — Вводное руководство

Page 134: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

,

,

,

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

Лестничная диаграмма

DIFU

A531.00

#0DAC

>=(325)

A270

#0BB8

>=(325)

A270

#0DDE

>=(325)

A270

#0DAC

>=(325)

A270

#0DDE

<(310)

A270

100.00

Вращение двигателя

W0.000.02

Пуск двигателя

100.00

Вращение двигателя

Останов двигателя

100.01

Медленное вращение двигателя

W0.00

Останов двигателя

Программный сброс скоростного счетчика 0

0.02W0.00

Останов двигателя

W0.01

Двигатель остановлен

Пуск двигателя

100.02

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

100.03

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

W0.01

Двигатель остановлен

Значения счетчика используются для пуска/торможения/остановки двигателя.

После остановки двигателя проверяется его конечное положение.

Когда скоростной счетчик (A270)достигает значения 3000 (0BB8 Hex)двигатель тормозится.

Когда скоростной счетчик (A270)достигает значения 3500 (0DAC Hex)двигатель останавливается.

Положение при останове не правильное, если значение скоростного счетчика (A270) больше, чем 3550 (0DDE Hex).

Положение при останове правильноеесли значение скоростного счетчика (A270) находится в пределах от 3500(0DAC Hex) до 3550 (0DDE Hex).

SYSMAC CP1L — Вводное руководство 133

Page 135: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

134

Приложение

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

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

Когда текущее значение скоростного счетчика совпадет с заданным значением 1 (3000), будет выполнена задача обработки прерывания 04.

RSET

W0.02

SET

100.00

D600

#0

#0

#0DDE

>=(325)

A270

#0DAC

>=(325)

A270

#0DDE

<(310)

A270

CTBL(882)

A531.00

Сброс флага «двигатель остановлен»

0.02

Пуск двигателя

Программный сброс скоростного счетчика 0

W0.02

Двигатель остановлен

100.02

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

100.03

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

Выбор скоростного счетчика 0

Начать сравнение с заданным значением

Младшее слово таблицы сравнения

Установка флага «двигатель вращается»

После остановки двигателя проверяется его конечное положение. Положение при останове правильное, если содержимое скоростного счетчика (A270) находится в пределах от 3500 (0DAC Hex) до 3550 (0DDE Hex).

Положение при останове не правильное, еслисодержимое скоростного счетчика (A270) больше, чем 3550 (0DDE Hex).

SET

100.01

P_On

Установка флага «медленное вращение двигателя»

Задача обработки прерывания 04

SYSMAC CP1L — Вводное руководство

Page 136: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Когда текущее значение скоростного счетчика совпадет с заданным значением 2 (3500), будет выполнена задача обработки прерывания 05.

Настройка области DMДля таблицы сравнения команды CTBL (создать таблицу сравнения) должен быть выделен диапазон слов с D600 по D606 в области DM.

A-4-6Применение сервоприводов для позиционирования

Применяемые функцииИспользование встроенного выхода в качестве импульсного выхода

Импульсные сигналы, формируемые на встроенных выходах модуля ЦПУ, можно использовать для позиционирования и управления скоростью сервоприводов по 2 осям.

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

Задача обработки

прерывания05

Сброс флага «вращение двигателя»

Сброс флага «двигатель остановлен»

Сброс флага «медленное вращение двигателя»

P_On

RSET

SET

RSET

100.00

100.01

W0.02

Слово Значение Содержание

D600 0002 Сравниваемые позиции: 2

D601 0BB8 Заданное значение 1: 3000 BCD (BB8 Hex)

D602 0000

D603 0004 Заданное значение 1: Задача обработки прерывания 4

D604 0DAC Заданное значение 2: 3500 BCD (DAC Hex)

D605 0000

D606 0005 Заданное значение 2: Задача обработки прерывания 5

Точка BТочка AИсходное положение

SYSMAC CP1L — Вводное руководство 135

Page 137: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

136

Приложение

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

ПозиционированиеДля операций позиционирования используются следующие общие параметры: • Заданная частота: 50 кГц• Темп разгона/торможения: 2000 Гц/4 мс• Начальная частота: 0 Гц

(1) После завершения поиска исходного положения манипулятор переводится в точку A (-1000) путем указания соответствующего числа импульсов (абсолютная система координат).

(2) После перевода в точку A манипулятор переводится в точку B (100000) путем указания соответствующего числа импульсов (абсолютная система координат).

(3) Позиционирование в точки A и B повторяется. Поскольку позиционирование по числу импульсов выполняется в абсолютных координатах, задание для позиционирования в (3) совпадает с заданием в (1).

Метод поиска исходного положения

Значение Описание

Направление поиска CW Поиск исходного положения осуществляется по часовой стрелке (CW).

Метод обнаружения Methd 0 Считывается первый входной сигнал исходного положения после последовательной смены состояний ВЫКЛ-ВКЛ-ВЫКЛ входного сигнала приближения к исходному положению.

Режим поиска Invers 1 Изменение направления (на противоположное) при поступлении входного сигнала ограничения и продолжение поиска исходного положения.

Режим работы Mode 1 Сброс ошибки счетчика при обнаружении исходного положения. Вход сигнала завершения позиционирования не используется.

Максимальная скорость поиска 10 кГц

CCW (против часовой стрелки)

Вход исходного положенияКонтакт 0.06

Вход приближения к исходному положениюКонтакт 0.02

CW (по часовой стрелке)

Частота импульсов

Темп разгона при поиске2000 Гц/4 мс

Темп торможения при поиске2000 Гц/4 мс

Скорость поиска приприближении 1000 Гц

Точка A Точка B

-1000 100000

CWCCWИсходное положение

1

2

3

SYSMAC CP1L — Вводное руководство

Page 138: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Конфигурация системыПример подключения

*Подключите резистор 1,6 … 2,2 кОм для ограничения тока в пределах 7 … 15 мА .

*У модулей ЦПУ на 20/30/40 точек входом приближения к исходному положению (импульс 0) является бит 0CH10.

Ограничительный датчик против

часовой стрелки0.00

Датчик приближения к исходному положению0.02

Запуск поиска исходного

положения0.03

24 В=+

Позиционирование в точку A

0.04 0.05

1,6 кОм(*)

Выход CW100.00

Выход CCW100.01 Выход сброса

ошибки счетчика100.04

НР контакт

Поиск исходного положения завершен

100.05

Позиционирование в точку A

завершено100.02 100.03

1 CW2 CW3 CCW4 CCW

8 ECRST9 ECRST

5 24V IN

6

1011

FG

CN1

НР контакт

НР контакт

Ограничительный датчик по часовой

стрелке0.01 Позиционирование

в точку B

Позиционирование в точку B

завершено

RUN

ZZCOM

Серия R7D

CP1L-L14DT

(*)(*)

Индикатор

+ —

Корпус

SYSMAC CP1L — Вводное руководство 137

Page 139: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

138

Приложение

Настройки ПЛКЗадайте параметры импульсного выхода 0.

1. Откройте диалоговое окно «Настройки ПЛК». 2. Откройте закладку «Pulse Output 0» (Импульсный выход 0). 3. Настройте следующие параметры.

4. Закройте диалоговое окно «Настройки ПЛК». 5. Чтобы измененные настройки ПЛК вступили в силу, включите

питание ПЛК.

Основные параметры (Base Settings) Поиск исходного положения (Origin Operation)

Параметр Значение Параметр Значение

Undefined Origin (Неустановленное исходное положение)

Hold (Фиксир.)

Use define origin operation (Искать исходное положение)

Искать

Limit Input Signal Operation (Использование входного сигнала ограничения)

Always (Всегда)

Search Direction (Направление поиска) CW

Limit Input Signal (Входной сигнал ограничения)

NO (НР)

Detection Method (Метод обнаружения)

Methd 0 (Метод 0)

Search/Return Initial Speed (Начальная скорость поиска/возврата)

0 pps (имп./с)

Search Operation (Режим поиска) Invers 1

Speed Curve (Профиль скорости)

Trapezoidal (Трапецеидальный)

Operating Mode (Режим работы) Mode 1 (Режим 1)

Origin Input Signal (Входной сигнал исходного положения)

NO (НР)

Proximity Input Signal (Входной сигнал приближения)

NO (НР)

Search High Speed (Максимальная скорость поиска)

10000 pps (имп./с)

Search Proximity Speed (Скорость поиска при приближении)

1000 pps (имп./с)

Search Compensation Value (Компенсирующее значение при поиске)

0

Search Acceleration Ratio (Темп разгона при поиске)

2000

Search Deceleration Ratio (Темп торможения при поиске)

2000

Positioning Monitor Time (Время контроля позиционирования)

0 ms (мс)

SYSMAC CP1L — Вводное руководство

Page 140: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Пример программыЛестничная диаграмма

A540.08

@ORG(889)

#0

0.01

Ограничительный датчик по часовой стрелке

0.03

Запуск поиска исходного положения

W0.00

Вход ограничения перемещения по часовой стрелке

A540.090.00

Ограничительный датчик против часовой стрелки Вход ограничения перемещения против часовой стрелки

#0Команда поиска исходного положения ORGИмпульсный выход 0Функция поиска исходного положения Метод формирования импульсов CW/CCW

0.04

Позиционирование в точку A

@PLS2(887)

#1#0

Команда позиционирования PLS2Импульсный выход 0Число импульсов (абсолютное значение)

D0D6

Таблица данных позиционированияЗначение начальной частоты

0.05

Позиционирование в точку B

@PLS2(887)

#1#0

Команда позиционирования PLS2Импульсный выход 0Число импульсов (абсолютное значение)

D10D6

Таблица данных позиционированияЗначение начальной частоты

0.03

Запуск поиска исходного положения

0.04

Позиционирование в точку A

0.05

A280.06

Поиск исходного положения прекращен

W0.00

W0.01

0.04

Запуск поиска

исходного положения

0.03

Позиционирование в точку A

0.05

A280.03

Вывод импульсов завершен

W0.01

W0.02

0.05

Запуск поиска

исходного положения

0.03 0.04

Позиционирование в точку B

A280.03

W0.02

Вывод импульсов завершен

Назначение ограничительных датчиков входам ограничения перемещения.

Поиск исходного положения и позиционирование.

Формирование флагов завершения поиска исходного положения и позиционирования.

Поиск исходного положения завершен100.05

100.02

100.03

Позиционирование в точку A завершено

Позиционирование в точку B завершено

Позиционирование в точку B

Позиционирование в точку B

Позиционирование в точку A

SYSMAC CP1L — Вводное руководство 139

Page 141: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

140

Приложение

Пример настройки области DMАдрес Значение Содержание

Позиционирование в точку A

D0000 07D0 Темп разгона: 2000 (Гц/4 мс)

D0001 07D0 Темп торможения: 2000 (Гц/4 мс)

D0002 C350 Заданная частота: 50000 (Гц)

D0003 0000

D0004 FC18 Число импульсов: –1000 (Гц)

D0005 FFFF

Начальная частота D0006 0000 Начальная частота: 0 (Гц)

D0007 0000

Позиционирование в точку B

D0010 07D0 Темп разгона: 2000 (Гц/4 мс)

D0011 07D0 Темп торможения: 2000 (Гц/4 мс)

D0012 C350 Заданная частота: 50000 (Гц)

D0013 0000

D0014 86A0 Число импульсов: 100000 (Гц)

D0015 0001

SYSMAC CP1L — Вводное руководство

Page 142: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

A-4-7Применение инверторов для регулирования скорости (1) Применяемые функции

Функция простого ведущего устройства Modbus-RTUФункция простого ведущего устройства Modbus-RTU позволяет легко управлять Modbus-совместимыми ведомыми устройствами (например, инверторами) по последовательному каналу связи.

Чтобы CP1L мог выполнять обмен данными по последовательному каналу связи, установите в модуль дополнительную плату последовательного интерфейса (RS232C или RS422A/485). Модули на 14/20 точек ввода/вывода допускают установку одной дополнительной платы последовательного интерфейса. В модули на 30/40 точек ввода/вывода можно установить до двух плат. Функция простого ведущего устройства Modbus-RTU позволяет легко обмениваться данными с устройствами, подключенными через плату последовательного интерфейса.

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

Примечание Биты запуска и фиксированные слова области DM, зарезервированные для функции Modbus-RTU, зависят от того, модуль какого типа используется – на 14/20 или на 30/40-точек ввода/вывода. Подробные сведения смотрите в руководстве CP Series CP1L CPU Unit User’s Manual (W462).

COMM

COMM

Гнездо для дополнительной платы

CP1L

CP1W-CIF01 — дополнительная плата интерфейса RS-232C

CP1W-CIF11 дополнительная плата интерфейса RS-422A/485

Бит запуска функции простого ведущего устройства Modbus-RTU (бит 00 слова A640) (для порта 1)

Сформируйте команду Modbus-RTU в зарезервированных фиксированных словах области DM. Обмен данными инициируется простой установкой в состояние ВКЛ программного переключателя (бит 00 слова A640).

Адрес ведомого устройства

Код функции

Передаваемые данные

Число передаваемых байтов данных

D32300

D32301

D32302

D32303

15 08 07 00

Modbus-RTUИнвертор OMRONCIMR-V7/CIMR-F7CP1L

Адрес ведомого устройства Код функции Передаваемые данные

Адрес ведомого устройства Код функции Передаваемые данные

SYSMAC CP1L — Вводное руководство 141

Page 143: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

142

Приложение

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

Задание скорости изменяется по мере срабатывания контактов на соответствующих входах. Параметры разгона/торможения изменяются в инверторе.

Конфигурация системыДля управления частотой и запуском/остановом к инвертору CIMR-V7 (OMRON) по интерфейсу RS485 подключен ПЛК CP1L.

Пример подключения

CP1L

Медленное вращениеБыстрое вращение

Постоянная скорость нити

Скорость

Контакт AВКЛ

Контакт BВКЛ

Контакт CВКЛ

Контакт ZВКЛ

60,00 Гц55,00 Гц

50,00 Гц

Двигатель остановлен

(W0.00) (W0.01) (W0.02) (W0.15)

COMM

RDA- RDB+ SDA- SDB+ FG

Клеммный блок цепей управления(клеммы интерф. связи)

ОбозначениеS-S+R-R+

CP1L

CP1W-CIF11(дополнительная плата RS422/485)

1

CP1W-CIF11

2

45

RDA-

3RDB+SDA-SDB+FG

RS485

50 м или меньше

CIMR-V7

SYSMAC CP1L — Вводное руководство

Page 144: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Настройка CP1W-CIF11Установите DIP-переключатели следующим образом.

Настройка CIMR-V7Установите DIP-переключатели следующим образом. • SW2-1: ВКЛ (включен согласующий резистор) – Согласующий резистор для линии связи RS422/485

Затем настройте параметры следующим образом.

Номер Параметр ВКЛ/ВЫКЛ Значение

1 Включение согласующего резистора ВКЛ Включен согласующий резистор

2 Выбор 2/4-проводной схемы ВКЛ 2-проводная схема

3 Выбор 2/4-проводной схемы ВКЛ 2-проводная схема

4 — ВЫКЛ Всегда ВЫКЛ

5 Управление RS для RD ВКЛ Включено

6 Управление SВ для RD ВКЛ Включено

Разъем модуля ЦПУDIP-переключатели настройки

(задняя панель)

Номер Название Значение Комментарии

n003 Способ подачи команд 2 Используется интерфейс RS-422/485

n004 Способ ввода задания частоты

6 Задание частоты передается по интерфейсу RS-422/485

n019 Время разгона 1 5,0 Время разгона (с)

n020 Время торможения 1 5,0 Время торможения (с)

n151 Интерфейс RS-422/485 Обнаружение превышения времени ожидания

1 Обнаруживать превышение времени ожидания (обнаруживается ошибка, выполняется торможение до полной остановки за время торможения 1 (по умолчанию))

n152 Интерфейс RS-422/485 Шаг задания и контроля частоты

1 Выберите единицы измерения (шаг) для задания и контроля частоты для интерфейса RS-422/485. Единицы: 0,01 Гц (значение по умолчанию).

n153 Интерфейс RS-422/485 Адрес ведомого устройства

1 Адрес ведомого устройства (номер ведомого узла), модуль 1

n154 Интерфейс RS-422/485 Скорость передачи

2 Скорость передачи данных (скорость связи): 9600 бит/с (по умолчанию)

n155 Интерфейс RS-422/485 Проверка четности

0 Проверка на четность

n156 Интерфейс RS-422/485 Время ожидания передачи данных

10 Задает время ожидания ответов на запросы, отправляемые ведущим устройством. 10 мс (по умолчанию).

n157 Интерфейс RS-422/485 Управление сигналом RTS

0 Управление сигналом RTS включено (по умолчанию)

SYSMAC CP1L — Вводное руководство 143

Page 145: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

144

Приложение

Настройки ПЛКСконфигурируйте последовательный порт 1.

1. Откройте диалоговое окно «Настройки ПЛК». 2. Откройте закладку «Serial Port 1» (Последовательный порт 1).3. Настройте следующие параметры.

4. Закройте диалоговое окно «Настройки ПЛК».

Параметр Значение

Параметры связи Настройки пользователя

Baud (Cкорость) 9600 бит/с

Format (Формат) 8, 1, E

Mode (Режим) Serial Gateway (Шлюз последовательного интерфейса)

Response Timeout (Время ожидания ответа)

0 (по умолчанию)

SYSMAC CP1L — Вводное руководство

Page 146: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Пример программыЛестничная диаграмма

MOV(021)

D32306

#0115

MOV(021)

D32307

#7C00

MOV(021)

D32306

#0113

MOV(021)

D32307

#8800

TIM

#0010

0

W0.00

Контакт A

Команда управления (1: Пуск)Задание частоты60,00 Гц (1770 Hex)

W0.01

Контакт B

W0.02

Контакт C

W0.15

Контакт Z

TIM0

A640.01

A640.00

Бит запуска функции простого ведущего устройства Modbus-RTU

Команда управления (1: Пуск)Задание частоты55,00 Гц (157C Hex)

Команда управления (1: Пуск)Задание частоты50,00 Гц (1388 Hex)

Команда управления (0: Стоп)Задание частоты 00,00 Гц

P_First_CycleMOV(021)

D32306

#0000

Прекращение работы после начала связи.Команда управления (0: Стоп)Задание частоты 00,00 Гц

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

P_On

Флаг отсутствия ошибок функции простого ведущего устройства Modbus-RTU

MOV(021)

D32306

#0000

MOV(021)

D32307

#0000

MOV(021)

D32307

#0000

MOV(021)

D32306

#0117

MOV(021)

D32307

#7000

SYSMAC CP1L — Вводное руководство 145

Page 147: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

146

Приложение

Флаги для функции простого ведущего устройства Modbus-RTU (последовательный порт 1)

(A): Установите бит запуска A640.00, чтобы переслать командные данные, начиная с D32300. Подробнее смотрите в разделе Настройка области DM на следующей странице.

(B): В случае успешного выполнения команды устанавливается флаг отсутствия ошибок A640.01, и данные сохраняются в слова ответных данных, начиная с D32350.

(C): При возникновении ошибки связи устанавливается флаг ошибки выполнения A640.02, и код ошибки записывается по адресу D32352.

A640.01

A640.02

A640.00

Флаг успешного выполнения

Флаг ошибки выполнения

Бит запуска

A B C

Слово Биты Значение

Последовательный порт 1

D32300 07 … 00

Команда

Адрес ведомого устройства (00 … F7 Hex)

15 … 08 Резерв (должен содержать 00 Hex)

D32301 07 … 00 Код функции

15 … 08 Резерв (должен содержать 00 Hex)

D32302 15 … 00 Количество передаваемых байтов данных (0000 … 005E hex)

D32303 … D32349 15 … 00 Передаваемые данные (макс. 94 байта)

Слово Биты Значение

Последовательный порт 1

D32350 07 … 00

Ответ

Адрес ведомого устройства (01 … F7 Hex)

15 … 08 Резерв (должен содержать 00 Hex)

D32351 07 … 00 Код функции

15 … 08 Резерв

D32352 07 … 00 Код ошибки

15 … 08 Резерв (должен содержать 00 Hex)

D32353 15 … 00 Количество байтов ответных данных (0000 … 03EA Hex)

D32354 … D32399 15 … 00 Ответные данные (макс. 92 байта)

SYSMAC CP1L — Вводное руководство

Page 148: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Настройка области DM• Фиксированные слова в области DM, отведенные для функции простого ведущего устройства Modbus-RTU Перед выполнением лестничной диаграммы задаются параметры в области DM по адресам D32300 … D32305. Слова D32306 и D32307 предварительно не задаются. Они изменяются командами MOV и используются для запуска/остановки вращения и смены задания частоты в процессе работы.

• Описание слова управления (Регистр 0001 Hex) для инвертора CIMR-V7

В данном примере используется только команда запуска (бит 0). • При использовании функции простого ведущего устройства Modbus-RTU контрольные суммы CRC-16 в области DM задавать не нужно, так как они вычисляются автоматически.

00

D3230 4

0100

D3230 3

0900

D3230 2

1000

D3230 1

0100

D32300

0201

D3230 6

0004

D3230 5

02 58

D3230 7

02 58

Передаваемые данные: с D32303 по D32349 (максимум)Код функции

Адрес

00 00

Число регистров для записи данных: 2(2 регистра: регистры 0001 и 0002)

Число передаваемых байтов

Адрес ведомого устройства

Данные

Значение

Адрес инвертора как ведомого устройства: 1 (Hex)

Запись данных в инвертор: 10 (Hex)

Количество байтов: 9 байтов,со старш. байта D32303 по младш. байт D32307

Последовательный порт 1: Команда

Номер первого регистра для записи данных: 0001(начать запись в инвертор с регистра 0001)

Число передаваемых байтов данных: 4(4 байта, с младш. байта D32305 по старш. байт D32307)

Данные начального регистра(например, задайте 0001 Hex для регистра 0001[слово управления (см. ниже)])

Данные следующего регистра(например, задайте 60,0 Гц (0258 Hex) для регистра 0002 [задание частоты])

Номер бита Значение

0 Команда запуска (1: Пуск)

1 Прямое/обратное вращение (1: обратное)

2 Внешняя ошибка (1: EF0)

3 Сброс ошибки (1: Сброс ошибки)

4 Многофункциональный вход 1 (1: ВКЛ)

5 Многофункциональный вход 2 (1: ВКЛ)

6 Многофункциональный вход 3 (1: ВКЛ)

7 Многофункциональный вход 4 (1: ВКЛ)

8 Многофункциональный вход 5 (1: ВКЛ)

9 Многофункциональный вход 6 (1: ВКЛ)

10 Многофункциональный вход 7 (1: ВКЛ)

11 … 15 (Не используются)

SYSMAC CP1L — Вводное руководство 147

Page 149: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

148

Приложение

A-4-8Применение инверторов для регулирования скорости (2)

Применяемые функцииБиблиотека интеллектуальных функциональных блоков

Библиотека интеллектуальных функциональных блоков – это набор компонентов, предоставляемых OMRON в виде функциональных блоков (FB). Применение библиотеки интеллектуальных функциональных блоков облегчает использование функций ПЛК и компонентов промышленной автоматизации компании OMRON при создании программ для ПЛК. При создании программ с использованием последовательных портов для связи инвертора с ПЛК, как правило, требуется хорошо знать спецификации команд связи и процедуры обмена данными. Библиотека интеллектуальных функциональных блоков существенно упрощает программирование в таких случаях.

Библиотека интеллектуальных функциональных блоков для инвертора OMRON CIMR-V7/CIMR-F7

*Функциональный блок используется в данном примере.

Примечание Документацию (PDF-файлы) по библиотеке интеллектуальных функциональных блоков можно найти в папке [FBL] – [omronlib] – [Inverter] – [INVRT] – [Serial]. Подробную информацию о библиотеке интеллектуальных функциональных блоков смотрите в указанных файлах.

Имя FB Название функции Назначение функции

_INV002_Refresh (*) Обновление состояния Обновляет состояние инвертора.

_INV032_MoveVelocity_Hz (*) Выполнение вращения (частота задается в Гц)

Задает сигнал запуска, направление вращения и скорость вращения в Гц.

_INV033_MoveVelocity_RPM Выполнение вращения (скорость вращения задается в об/мин)

Задает сигнал запуска, направление вращения и скорость вращения в об/мин.

_INV060_Stop (*) Торможение до полной остановки

Выполняет торможение рабочей оси до полной ее остановки.

_INV080_Reset Сброс ошибки Выполняет торможение рабочей оси до полной ее остановки.

_INV200_ReadStatus Чтение состояния Выполняет чтение состояния.

_INV201_ReadParameter Чтение параметра Выполняет чтение параметра.

_INV203_ReadAxisError Чтение ошибки оси Выполняет чтение информации об ошибке.

_INV401_WriteParameter Запись параметра Выполняет запись параметров.

_INV600_SetComm Настройка модуля связи

Выполняет настройку параметров связи.

Инвертор OMRON CIMR-V7, CIMR-F7

Modbus-RTU

FB

Программа пользователя

CP1L

SYSMAC CP1L — Вводное руководство

Page 150: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Функциональные блокиФункциональный блок – это элемент программирования (шаблон), объединяющий в одном блоке ряд операций (функций). Пользователь может заранее определить функциональный блок, а затем просто вставить его в программу и сконфигурировать его входы/выходы. Создайте и сохраните стандартные сегменты программы в виде функциональных блоков. Затем эти функциональные блоки можно вставлять в программу и легко использовать повторно, просто задавая входные/выходные параметры.

Возьмите лестничную диаграмму «Управление устройством 1». Замените входы/выходы программы параметрами. Сохраните алгоритм в виде шаблона. Шаблон определяется как функциональный блок.

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

Xn

TIMn

#0100

Yn

Zn

BnAn

TnВыполнение (алгоритм)

X1

TIM1

#0100

Y1

Z1

B1A1

T1

Элементы программы

Выходы

Xn

Yn

Zn

ВходыAnBn

[Управление устройством 1] [Управление устройством n]

A1

B1

X1

Y1

Z1

P On

A2

B2X2

Y2

Z2

Z

P On Device Control

Device Control

EN

A

B

ENO

X

Y

A

B

Z

X

Y

A

B

X

Y

EN ENO

Device Control

Z

Задайте входы/выходы

EN ENO

Определите как функциональный блок

Вставьте экземпляр функционального блока в лестничную диаграмму

[Управление устройством 1]

[Управление устройством 2]

SYSMAC CP1L — Вводное руководство 149

Page 151: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

150

Приложение

Описание работыСнова воспользуемся примером A-4-7 Применение инверторов для регулирования скорости (1).

Задание скорости изменяется по мере срабатывания контактов на на соответствующих входах. Параметры разгона/торможения изменяются в инверторе.

Конфигурация системыИспользуется конфигурация системы из примера A-4-7 Применение инверторов для регулирования скорости (1).Для управления частотой и запуском/остановом к инвертору CIMR-V7 (OMRON) по интерфейсу RS485 подключен ПЛК CP1L.

В данном примере используется библиотека функциональных блоков, и объем памяти программы пользователя может превысить 5K шагов. При использовании CP1L на 14/20 точек ввода/вывода (с памятью пользователя на 5K шагов) по этой причине может произойти ошибка нехватки памяти, поэтому используйте для данного примера CP1L на 30/40 точек ввода/вывода (с памятью пользователя на 10K шагов).Подробные сведения о подключении и настройке модулей CP1W-CIF11, CIMR-V7 и CP1L смотрите в пункте Конфигурация системы раздела A-4-7 Применение инверторов для регулирования скорости (1).

Скорость

Контакт AВКЛ

Контакт BВКЛ

Контакт CВКЛ

Контакт ZВКЛ

60,00 Гц55,00 Гц

50,00 Гц

Двигатель остановлен

(W0.00) (W0.01) (W0.02) (W0.15)

COMM

RD-A RDB+ SD-A SDB+ FG

CP1L

CP1W-CIF11(дополнительная плата RS422/485)

RS485

CIMR-V7

SYSMAC CP1L — Вводное руководство

Page 152: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Пример программыИспользуемые функциональные блокиОбновление состояния

(_INV002_Refresh)Выполнение вращения (частота задается в Гц)

(_INV032_MoveVelocity_Hz)

Торможение до полной остановки(_INV060_Stop)

Требуется для связи с инвертором. Для каждого последовательного порта ПЛК используется 1 функциональный блок. 1 функциональный блок «Обновление состояния» используется для последовательного порта, даже если к этому порту подключено несколько инверторов. • Выдает коммуникационные команды инверторам.

• Обрабатывает ошибки связи. • Назначает приоритеты в случае выдачи нескольких команд.

Задает сигнал запуска, направление вращения и частоту в Гц.

Выполняет торможение рабочей оси до полной ее остановки.

_INV002_Refresh

(BOOL)EN

(BOOL) Error

(WORD) ErrorID

(INT)NodeAddr

(BOOL) BUSY

(BOOL) ENO

(DWORD)ModelTypeMV

(WORD)AreaID

(DWORD)Scanlist

(INT)PortNo

(INT)UnitSelect

(INT)AreaNo

(UINT)IntervalCount

(WORD)MSGAreaID

(INT)MSGAreaNo

Выбор модуля ПЛК

Список опроса

Тип MV/RV

Интервал

Тип интерфейсной области

Тип области сообщений

Номер области сообщений

Флаг «занято»Номер использ. оси

Ошибка

Код ошибки

Номер последова-

тельного порта

Номер интерфейсной

области

_INV032_MoveVelocityHz

(BOOL)EN

(BOOL) Error

(WORD) ErrorID

(BOOL)Command Aborted

(BOOL)InVelocity

(BOOL) ENO

(INT)Direction(WORD)AreaID

(REAL)Velocity

(BOOL)Execute

(INT)NodeNo

(INT)AreaNo

Номер инвертора

Пуск

Частота

Направлениевращения

Тип интерфейснойобластиНомер

интерфейснойобласти

Согласованиескоростей

Принудительный выход

Ошибка

Код ошибки

_INV060_Stop

(BOOL)EN

(BOOL) Error

(WORD) ErrorID

(BOOL) Done

(BOOL) ENO

(WORD)AreaID

(BOOL)Execute

(INT)NodeNo

(INT)AreaNo

Номеринвертора

ПускТип интерфейсной

областиНомер

интерфейснойобласти

Торможение завершено

Ошибка

Код ошибки

SYSMAC CP1L — Вводное руководство 151

Page 153: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

152

Приложение

Лестничная диаграмма

MOV(021)

D100

#1770

MOV(021)

D2

#0

MOV(021)

D100

#157C

D2

#0

MOV(021)

D100

#1388

MOV(021)

D2

#0

W0.00

Контакт A

W0.01

Контакт B

W0.02

Контакт C

Задание частоты60,00 Гц(1770 Hex)Направление вращения: прямое (0)

Задание частоты55,00 Гц (157C Hex)Направление вращения: прямое (0)

Задание частоты50,00 Гц (1388 Hex)Направление вращения: прямое(0)

MOV(021)

SYSMAC CP1L — Вводное руководство

Page 154: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Примечание Для данных с плавающей запятой закрепите области для 2CH.

FLT(452)

D101

D100

FLT(452)

#64

D103

/F(457)

D103

D101

D0

BSET(071)

D9000

#0

D9100

W0.15

Контакт Z

W1.01

P_First_Cycle

Флаг первого цикла

Настройки блока

Данные для передачи/преобразования

Номер младшего слова

Номер старшего слова

Сброс данных рабочей области интерфейса обмена между FB при запуске работы.

Преобразование задания частоты (D100) из двоичного формата в формат с плавающей запятой

Преобразование константы 100 (64 Hex) в число с плавающей запятой

Преобразование двоичного значения в D100 в значение с плавающей запятой (REAL) с шагом 0,01

W0.00

Контакт A

W0.01

Контакт B

W0.02

Контакт C

W1.00

Пуск

Деление значения частоты на 100 для получения шага 0,01 Гц. Сохранение значения в FB (MOV V)(D0).Например, 6000/100=60,00 Гц

Двигатель остановлен

P_On

SYSMAC CP1L — Вводное руководство 153

Page 155: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

154

Приложение

_INV032_MoveVelocityHz

(BOOL)EN

(BOOL) Error

(WORD) ErrorID

(BOOL)Command Aborted

(BOOL)Velocity

(BOOL) ENO

(INT)Direction(WORD)AreaID

(REAL)Velocity

(BOOL)Execute

(INT)NodeNo

(INT)AreaNo

_INV060_Stop

(BOOL)EN

(BOOL) Ошибка

(WORD) ErrorID

(BOOL) Done

(BOOL) ENO

(WORD)AreaID

(BOOL)Execute

(INT)NodeNo

(INT)AreaNo

*1

P_On

MoveV

W10.00Согласование скоростей

W10.01Принудительный выходW10.02Ошибка (MoveFB)

&1 Номер узла для инвертора

W1.00, Пуск

D0, Частота

D2, Направление

P_DMВыбор

области DM&9000

P_On

Торможение до полной остановки

W10.03Торможение завершеноW10.04Ошибка (StopFB)

&1 Номер узла для инвертора

W1.01Остановлен

P_DMВыбор

области DM&9000

*1

*1

Задайте для использования ту же область,что и для интерфейса данных FB.

_INV002_Refresh

(BOOL)EN

(BOOL) Error

(WORD) ErrorID

(INT)NodeAddr

(BOOL) BUSY

(BOOL) ENO

(DWORD)ModelTypeMV

(WORD)AreaID

(DWORD)Scanlist

(INT)PortNo

(INT)UnitSelect

(INT)AreaNo

(UINT)IntervalCount

(WORD)MSGAreaID

(INT)MSGAreaNo

0

0 Бит12331

00 1

2

0

0Бит12331

00 00

000 100

00 0

0

00

(CIMR-V7:0, CIMR-F7:1)

Список номеров узлов для инверторов (Адрес модуля: 1)

Инвертор

*1

Обновление

W7.00Обмен данными

W8Происходит или завершен обмен данными с ведомым устройством (инвертором)

W9Код ошибки инвертора

#CCCC Используемый ПЛК: выберите CP1L

&1 Выбор последовательного порта

#00000002 Список номеров узлов

для инверторов

#00000000 Инвертор CIMR-V7

P_DMВыбор области

DM&9000

P_First_Cycle

Флаг первого цикла

&10 Счетчик интервала

P_DMВыбор области

DM&9100

0

Флаг «Всегда ВКЛ»

Флаг «Всегда ВКЛ»

SYSMAC CP1L — Вводное руководство

Page 156: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

ИнформацияПрименение библиотеки интеллектуальных функциональных блоков

Пример: Использование «_INV002_Refresh12». 1. В главном меню выберите [File] – [Function Block] – [Load Function

Block from File] (Файл – Функциональный блок – Загрузить функциональный блок из файла). Откроется диалоговое окно выбора файла функционального блока библиотеки CX-Programmer.

2. Выберите папку [FBL] – [omronlib] – [Inverter] – [INVRT] – [Serial]. Откроется список файлов библиотеки функциональных блоков для последовательной связи с инверторами.

SYSMAC CP1L — Вводное руководство 155

Page 157: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

156

Приложение

3. Выберите [_INV002_Refresh12.cxf]. Щелкните по кнопке [Open] (Открыть). В папку [Function Blocks] (Функциональные блоки) дерева проекта будет добавлен функциональный блок _INV002_Refresh.

4. Установите курсор в окне лестничной диаграммы в то место, куда будет вставляться функциональный блок _INV002_Refresh.

5. В главном меню выберите [Insert] – [Function Block Invocation] (Вставить – Вызов функционального блока).

Откроется диалоговое окно «New Function Block Invocation» (Новый вызов функционального блока).

SYSMAC CP1L — Вводное руководство

Page 158: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

6. Введите имя экземпляра функционального блока. Нажмите клавишу [Ввод]. Отобразится экземпляр функционального блока с присвоенным именем.

7. Подключите к функциональному блоку входной контакт. 8. Задайте для функционального блока входные/выходные параметры.

1) Установите курсор рядом с параметром функционального блока. Нажмите клавишу [Ввод]. Отобразится диалоговое окно «New Parameter» (Новый параметр).

2) Введите параметр. Нажмите клавишу [Ввод].

SYSMAC CP1L — Вводное руководство 157

Page 159: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

158

Приложение

A-4-9Обмен данными между модулями CP1L

Применяемые функцииПростая связь через PLC Link

В случае использования дополнительных плат интерфейса RS-422A/485 до 10-ти слов данных каждого модуля ЦПУ могут использоваться совместно девятью модулями CP1L/CP1H/CJ1M без специального программирования.

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

Конфигурация системыПример подключения

Котел A Котел B Котел C

1CH,2CH

Модуль температурных входовCP1W-TS101

2 входа для датчиков Pt100

CP1W-CIF11(дополнительная плата RS422/485)

1CH,2CH

2 входа для датчиков Pt100

CP1W-CIF11(дополнительная плата RS422/485)

1CH,2CH

2 входа для датчиков Pt100

CP1W-CIF11(дополнительная плата RS422/485)

1

CP1W-CIF11

2

45

RDA-

3RDB+SDA-SDB+FG

Простая связь через PLC Link

1

CP1W-CIF11

2

45

RDA-

3RDB+SDA-SDB+FG

1

CP1W-CIF11

2

45

RDA-

3RDB+SDA-SDB+FG

Котел A: CP1L (ведущ. устр-во) Котел B: CP1L (ведом. устр-во 0) Котел C: CP1L (ведом. устр-во 1)

Модуль температурных входовCP1W-TS101

Модуль температурных входовCP1W-TS101

RDA- RDB+ SDA- SDB+ FG

COMM

RDA- RDB+ SDA- SDB+ FG

COMM

RDA- RDB+ SDA- SDB+ FG

COMM

SYSMAC CP1L — Вводное руководство

Page 160: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

Настройка DIP-переключателей модуля CP1W-CIF11(дополнительная плата RS422/485)

Настройки ПЛКСконфигурируйте последовательный порт 1.

1. Откройте диалоговое окно «Настройки ПЛК». 2. Откройте закладку «Serial Port 1» (Последовательный порт 1). 3. Настройте следующие параметры.

Номер Значение Ведущ. устр.

Ведом. устр. 0

Ведом. устр. 1

Содержание

1 Включение согласующего резистора

ВКЛ ВЫКЛ ВКЛ В ПЛК, расположенном в конце линии, включается согласующий резистор.

2 Выбор 2/4-проводной схемы

ВКЛ ВКЛ ВКЛ 2-проводная схема

3 Выбор 2/4-проводной схемы

ВКЛ ВКЛ ВКЛ 2-проводная схема

4 — ВЫКЛ ВЫКЛ ВЫКЛ Всегда ВЫКЛ

5 Управление RS для RD ВЫКЛ ВЫКЛ ВЫКЛ Отключено

6 Управление SВ для RD ВКЛ ВКЛ ВКЛ Включено

Разъем модуля ЦПУ

DIP-переключатели настройки

(задняя панель)

SYSMAC CP1L — Вводное руководство 159

Page 161: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

A A-4 Примеры программирования CP1L

160

Приложение

4. Закройте диалоговое окно «Настройки ПЛК».

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

Параметр Котел A (ведущий) Котел B (ведомый 0) Котел C (ведомый 1)

Communication Settings (Параметры связи)

Custom (Настройки пользователя)

Baud (Скорость) 115200 бит/с

Format (Формат) 7.2.E (по умолчанию)

Mode (Режим) PLC Link (Master) (ведущий)

PLC Link (Slave) (ведомый)

Link Words (Число слов для обмена)

10 (по умолчанию) — —

PLC Link Mode (Режим PLC Link)

Complete Link Method (ALL)

— —

NT/PLC Link Max 0 (по умолчанию) — —

PLC Link Unit No. (Номер модуля, участвующего

в PLC Link)

— 0 1

Котел ACP1L (ведущ. устр.)

A_Температурные данные 0

3100CH3101CH

3109CH

3110CH3111CH

3119CH3120CH3121CH

3129CH

Область последовательных логических связей ПЛК (Serial PLC link)

Область ввода

3189CH

0CH1CH2CH

100CH

A_Температурные данные 1

Область вывода

A_Температурные данные 0A_Температурные данные 1

B_Температурные данные 0B_Температурные данные 1

C_Температурные данные 0C_Температурные данные 1

C_Температурные данные 0Область ввода

C_Температурные данные 1

Область вывода

A_Температурные данные 0A_Температурные данные 1

B_Температурные данные 0B_Температурные данные 1

C_Температурные данные 0C_Температурные данные 1

B_Температурные данные 0Область ввода

B_Температурные данные 1

Область вывода

A_Температурные данные 0A_Температурные данные 1

B_Температурные данные 0B_Температурные данные 1

C_Температурные данные 0C_Температурные данные 1

Котел BCP1L (ведом. устр. 0)

Котел CCP1L (ведом. устр. 1)

SYSMAC CP1L — Вводное руководство

Page 162: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

AA-4 Примеры программирования CP1L

Приложение

ка

Лестничная диаграмма

XFER(70)

#21

3100

P_OnXFER(70)

#21

3110

P_On

XFER(70)

#21

3120

P_On

Используйте команду передачи блока для передачи 1CH, 2CH в 3100CH, 3101CH

Используйте команду передачи блока для передачи 1CH, 2CH в 3110CH, 3111CH

Используйте команду передачи блодля передачи 1CH, 2CHв 3120CH, 3121CH

Котел ACP1L (ведущ. устр.)

Котел BCP1L (ведом. устр. 0)

Котел CCP1L (ведом. устр. 1)

SYSMAC CP1L — Вводное руководство 161

Page 163: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

A

162

Приложение

SYSMAC CP1L — Вводное руководство

Page 164: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Числа

А

Адрес бита . . . . . . . . . . . . . . . . . . . . . . 94Аналоговый регулятор . . . . . . . . . 14, 114

ББазовая команда обработки ввода/вывода . . . . . . . . . . . . . . . . . . . 100Батарея . . . . . . . . . . . . . . . . . . . . . . . . . 14Библиотека интеллектуальныхфункциональных блоков . . . . . . . . . . 148Бит . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Блокировка . . . . . . . . . . . . . . . . . . . . . . 42Быстродействующий вход . . . . . . . . . 115

ВВвод выходной катушки . . . . . . . . . . . . 57Ввод контакта . . . . . . . . . . . . . . . . . . . . 54Включение питания . . . . . . . . . . . . . . . 33Внешний аналоговый сигнал настройки . . . . . . . . . . . . . . . . . . . 14, 112Время считывания . . . . . . . . . . . 116, 119Время цикла . . . . . . . . . . . . . . 91, 92, 109Вспомогателтная область . . . . . . . . . . 64Встроенная флэш-память . . . . . . . . . 104

ГГлавное меню . . . . . . . . . . . . . . . . . . . . 46Главное окно . . . . . . . . . . . . . . . . . . . . . 46

ДДерево проекта . . . . . . . . . . . . . . . . . . . 46Дополнительная плата . . . . . . . . . . . . . 15Драйвер USB . . . . . . . . . . . . . . . . . . . . . 38

ЗЗаголовок строки программы . . . . . . . 47Загрузка программы . . . . . . . . . . . . . . . 70Загрузка/считывание программ . . . . . . 80Запуск CX-Programmer . . . . . . . . . . . . . 45

ИИзменение настройки таймера . . . . . . 88Импульсный сигнал . . . . . . . . . . . . . . 135Индикатор состояния . . . . . . . . . . . . . . 16Информационное окно . . . . . . . . . . . . . 47

ККоманда . . . . . . . . . . . . . . . . . . . . . . . . . 49Команда счетчика . . . . . . . . . . . . . . . . . 61Команда таймера . . . . . . . . . . . . . . . . . 59Команда END . . . . . . . . . . . . . . . . . . . . 67

Команда . . . . . . . . . . . . . . . . . . . . . . . . . 99Комментарии к входам/выходам . . . . . 71Комментарий к строке . . . . . . . . . . . . . 72Компилировать . . . . . . . . . . . . . . . . . . . 68Контакт . . . . . . . . . . . . . . . . . . . . . . . . . 54Контакт с положительным фронтом . . 66

ЛЛестничная диаграмма . . . . . . . . . 42, 44

ММодуль на 14 точек ввода/вывода . . . 12Модуль на 20 точек ввода/вывода . . . 12Модуль на 30 точек ввода/вывода . . . 13Модуль на 40 точек ввода/вывода . . . 13Модуль расширения . . . . . . . . . . . . . . . 15Модуль ЦПУ . . . . . . . . . . . . . . . . . 13, 103Мониторинг . . . . . . . . . . . . . . . . . . . . . . 83Монтаж CP1L . . . . . . . . . . . . . . . . . . . . 29

ННапряжение источника питания . . . . . 30Наружные размеры . . . . . . . . . . . . . . . 28Настройка часов . . . . . . . . . . . . . . . . . . 77Настройки ПЛК . . . . . . . . . . . . . . 104, 117Нормально замкнутый контакт . . . . . . 56

ООбласть ввода/вывода . . . . . . . . . . . . . 98Область встроенных входов/выходов . . . . . . . . . . . . . . . . . . . . . . . . 107Обновление входов/выходов . . . . . . 106Обратный просмотр лестничной диаграммы . . . . . . . . . . . . 90Обслуживание периферийных устройств . . . . . . . . . . . . . . . . . . . . . . . 108Окно таблицы мониторинга . . . . . . . . . 85Отладка . . . . . . . . . . . . . . . . . . . . . . . . . 83Ошибка . . . . . . . . . . . . . . . . . . . . . . . . . 16

ППамять данных (DM) . . . . . . . . . . . . . . 14Панель инструментов . . . . . . . . . . . . . . 46Переход в режим on-line . . . . . . . . . . . 76Подключение входных цепей . . . . . . . 32Подключение выходных цепей . . . . . . 32Подключение к компьютеру . . . . . . . . . 38Подключение цепей заземления . . . . . 30Подключение цепей электропитания . . 30Подключение CX-Programmer к CP1L . . . . . . . . . . . . . . . . . . . . . . . . . . 37

SYSMAC CP1L — Вводное руководство 163

Page 165: ВВОДНОЕ РУКОВОДСТВО€¦ · CP1H/CP1L CPU Unit Programming Manual Руководство по

Чиcлa

164

Поиск . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Порт USB . . . . . . . . . . . . . . . . . . . . . . . . 14Последовательный интерфейс . . . . . 141Принудительная установка/принудительный сброс . . . . 86Пробный запуск . . . . . . . . . . . . . . . . . . 83Проверка программы . . . . . . . . . . . . . . 68Программирование . . . . . . . . . . . . . . . . 36Программирование катушки . . . . . . . 101Проект . . . . . . . . . . . . . . . . . . . . . . . . . . 51

РРабота без батареи . . . . . . . . . . . . . . . 34Рабочая область программ . . . . . . 46, 47Рабочая область проекта . . . . . . . . . . 46Распределение входов/выходов . . . . . 22Редактирование в режиме on-line . . . . 91Редактирование строки . . . . . . . . . . . . 73Режим работы . . . . . . . . . . . . . . . . . . . . 78

ССвязь через PLC Link . . . . . . . . . . . . . 158Сегмент . . . . . . . . . . . . . . . . . . . . . . . . . 46Скоростной счетчик . . . . . . . . . . . . . . 130Слово . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Соединительная линия . . . . . . . . . . . . 74Сохранение программы . . . . . . . . . . . . 69Специальная команда . . . . . . . . . . . . . 99Справка . . . . . . . . . . . . . . . . . . . . . . . . . 48Справка по командам . . . . . . . . . . . . . . 49Справочник по применению адресов . . . . . . . . . . . . . . . . . . . . . . . . . 88Строка заголовка . . . . . . . . . . . . . . . . . 46Строка комментариев к входам/выходам . . . . . . . . . . . . . . . . . 46Схема «ИЛИ» . . . . . . . . . . . . . . . . . . . . 55

ТТактовый импульс . . . . . . . . . . . . . . . . 97Тип устройства . . . . . . . . . . . . . . . . . . . 51

УУдаление контактов и катушек . . . . . . 73

ФФлаг первого цикла . . . . . . . . . . . . . . . 64Флаг условия . . . . . . . . . . . . . . . . . . . . . 96Функциональный блок . . . . . . . . . . . . 149Функция прерывания . . . . . . . . . . . . . 119Функция простого ведущего устройства Modbus-RTU . . . . . . . . . . 141

ЦЦиклическое обновление . . . . . . . . . . 106

ЧЧасы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Часы реального времени . . . . . . . . . . 125

ЯCX-Programmer . . . . . . . . . . . . . . . . . . . 36DIN-рейка . . . . . . . . . . . . . . . . . . . . . . . 28DIP-переключатель . . . . . . . . . . . . . . . 14

SYSMAC CP1L — Вводное руководство

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

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

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

Ваш е-мэйл

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

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

1

2

3

4

5

Учебник по обработке естественного языка

оригинал:Natural Language Process

Переводчик:Летающий дракон

протокол:CC BY-NC-SA 4.0

1. Используйте NLTK для анализа слов и предложений.

Добро пожаловать в серию руководств по обработке естественного языка с использованием модуля NLTK инструментария Python для естественного языка.

Модуль NLTK — это огромный набор инструментов, разработанный, чтобы помочь вам со всем методом обработки естественного языка (NLP). NLTK предоставит вам все: от разделения абзацев на предложения, разделения слов, распознавания частей речи этих слов, выделения тем и даже помощи вашей машине в понимании того, о чем текст. В этой серии статей мы займемся изучением мнений или анализом настроений.

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

  • Сегментация слов — разделите текст на предложения и слова.
  • Пометка части речи
  • Машинное обучение и наивный байесовский классификатор
  • Как использовать Scikit Learn (sklearn) и NLTK вместе
  • Обучите классификатор с набором данных
  • Используйте Twitter для анализа настроений в реальном времени.
  • …И больше.

Для начала вам понадобится модуль NLTK и Python.

Если у вас еще нет Python, перейдите по ссылкеpython.orgИ скачайте последнюю версию Python (если у вас Windows). Если у вас Mac или Linux, вы сможете запуститьapt-get install python3

Далее вам понадобится NLTK 3. Самый простой способ установить модуль NLTK — использоватьpip

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

pip install nltk

Далее нам нужно установить некоторые компоненты для NLTK. Откройте python любым из ваших обычных способов и введите:

    import nltk
    nltk.download()

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

https://pythonprogramming.net/static/images/nltk/nltk-download-gui.png

Выберите Загрузить «Все» для всех пакетов и нажмите «Загрузить». Это даст вам все токенизаторы, блокировщики, другие алгоритмы и все корпуса. Если пространство является проблемой, вы можете выбрать выборочную загрузку всего содержимого вручную. Модуль NLTK займет около 7 МБ, весьnltk_dataКаталог будет занимать примерно 1,8 ГБ, включая ваш блокировщик, парсер и корпус.

Если вы используете VPS для запуска безголовой версии, вы можете установить все, запустив Python и выполнив следующие действия:

import nltk

nltk.download()

d (for download)

all (for download everything)

Это все загрузит для вас.

Теперь, когда у вас есть все необходимое, давайте наберем несколько простых слов:

  • Корпус — тело текста в единственном числе. Корпус во множественном числе. Пример:A collection of medical journals
  • Лексикон-словарь и его значение. Например: английский словарь. Однако учитывая, что в разных сферах будут разные лексики. Например: для финансовых инвесторов,Bull(Бычий рынок) Первое значение этого слова — люди, которые уверены в рынке. По сравнению с «общеупотребительной английской лексикой», первое значение этого слова — животное. Поэтому у финансовых инвесторов, врачей, детей, механиков и т. Д. Есть особый словарный запас.
  • Токен — Каждая «сущность» является частью подразделения согласно правилам. Например, когда предложение «разбито» на слова, каждое слово является токеном. Если вы разделите абзац на предложения, каждое предложение также может быть токеном.

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

from nltk.tokenize import sent_tokenize, word_tokenize

EXAMPLE_TEXT = "Hello Mr. Smith, how are you doing today? The weather is great, and Python is awesome. The sky is pinkish-blue. You shouldn't eat cardboard."

print(sent_tokenize(EXAMPLE_TEXT))

Сначала вы можете подумать, что сегментация по словам или предложениям довольно тривиальна. Для многих предложений это может быть. Первым шагом может быть выполнение простого.split('. '), Или точкой, а затем пробелом. Позже вы можете ввести некоторые регулярные выражения, чтобы разделить их точками, пробелами и заглавными буквами. Проблема какMr. SmithТакие вещи и многое другое доставят вам неприятности. Сегментация по словам также является проблемой, особенно при рассмотрении сокращений, таких какweсwe're. NLTK сэкономит вам много времени с помощью этой, казалось бы, простой, но очень сложной операции.

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

['Hello Mr. Smith, how are you doing today?', 'The weather is great, and Python is awesome.', 'The sky is pinkish-blue.', "You shouldn't eat cardboard."]

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

print(word_tokenize(EXAMPLE_TEXT))

['Hello', 'Mr.', 'Smith', ',', 'how', 'are', 'you', 'doing', 'today', '?', 'The', 'weather', 'is', 'great', ',', 'and', 'Python', 'is', 'awesome', '.', 'The', 'sky', 'is', 'pinkish-blue', '.', 'You', 'should', "n't", 'eat', 'cardboard', '.']

Здесь следует отметить несколько моментов. Во-первых, обратите внимание, что знак препинания рассматривается как отдельный знак. Также обратите внимание на словаshouldn'tРазделен наshouldсn't. Последнее, что нужно отметить, это то, чтоpinkish-blueЭто действительно рассматривается как «слово», как оно есть. Очень круто!

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

2. НЛТК и стоп-слова

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

Очевидно, что это огромная проблема, но есть несколько шагов, которым может следовать каждый. Однако основная идея заключается в том, что компьютеры вообще не понимают слова напрямую. Поразительно, но и люди тоже. У людей память расщепляется в мозгу на электрические сигналы в виде нервных групп, которые излучают закономерности. О мозге по-прежнему много неизвестного, но чем больше мы разлагаем человеческий мозг на основные элементы, тем больше мы обнаруживаем основные элементы. Что ж, оказывается, компьютеры хранят информацию очень похожим образом! Если мы хотим подражать тому, как люди читают и понимают текст, нам нужен как можно более точный метод. Вообще говоря, компьютеры используют числа для представления всего, но мы часто видим использование двоичных сигналов непосредственно в программировании (Trueили жеFalse, Может быть напрямую преобразован в 1 или 0, непосредственно полученный из наличия электрических сигналов(True, 1)Или не существует(False, 0)). Для этого нам нужен способ преобразования слов в числовые или сигнальные шаблоны. Процесс преобразования данных в то, что компьютер может понять, называется «предварительной обработкой». Одна из основных форм предварительной обработки — отфильтровывать бесполезные данные. При обработке естественного языка бесполезные слова (данные) называются стоп-словами.

Мы сразу понимаем, что одни слова более значимы, чем другие. Мы также можем видеть, что некоторые слова бесполезны и являются словами-заполнителями. Например, мы используем их для заполнения предложений на английском языке, чтобы не было такого странного звука. Одним из наиболее распространенных, неофициальных и бесполезных примеров слов является словоumm. Люди часто используютummЧтобы заполнить, больше, чем другие слова. Этот термин не имеет смысла, если мы не ищем кого-то, кому может не хватать уверенности, что он сбивается с толку или ничего не говорит. Мы все так делаем, есть … э … много раз вы можете слышать меня на видеоummили жеuhh. Для большинства анализов эти слова бесполезны.

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

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

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

from nltk.corpus import stopwords

Вот этот список:

>>> set(stopwords.words('english'))
{'ourselves', 'hers', 'between', 'yourself', 'but', 'again', 'there', 'about', 'once', 'during', 'out', 'very', 'having', 'with', 'they', 'own', 'an', 'be', 'some', 'for', 'do', 'its', 'yours', 'such', 'into', 'of', 'most', 'itself', 'other', 'off', 'is', 's', 'am', 'or', 'who', 'as', 'from', 'him', 'each', 'the', 'themselves', 'until', 'below', 'are', 'we', 'these', 'your', 'his', 'through', 'don', 'nor', 'me', 'were', 'her', 'more', 'himself', 'this', 'down', 'should', 'our', 'their', 'while', 'above', 'both', 'up', 'to', 'ours', 'had', 'she', 'all', 'no', 'when', 'at', 'any', 'before', 'them', 'same', 'and', 'been', 'have', 'in', 'will', 'on', 'does', 'yourselves', 'then', 'that', 'because', 'what', 'over', 'why', 'so', 'can', 'did', 'not', 'now', 'under', 'he', 'you', 'herself', 'has', 'just', 'where', 'too', 'only', 'myself', 'which', 'those', 'i', 'after', 'few', 'whom', 't', 'being', 'if', 'theirs', 'my', 'against', 'a', 'by', 'doing', 'it', 'how', 'further', 'was', 'here', 'than'}

Следующее используется в комбинацииstop_wordsСборник, метод удаления стоп-слов из текста:

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

example_sent = "This is a sample sentence, showing off the stop words filtration."

stop_words = set(stopwords.words('english'))

word_tokens = word_tokenize(example_sent)

filtered_sentence = [w for w in word_tokens if not w in stop_words]

filtered_sentence = []

for w in word_tokens:
    if w not in stop_words:
        filtered_sentence.append(w)

print(word_tokens)
print(filtered_sentence)

Наш результат:

['This', 'is', 'a', 'sample', 'sentence', ',', 'showing', 'off', 'the', 'stop', 'words', 'filtration', '.']
['This', 'sample', 'sentence', ',', 'showing', 'stop', 'words', 'filtration', '.']

Наша база данных поблагодарила нас. Другой формой предварительной обработки данных является «Stemming», о которой мы поговорим дальше.

Три, вынос НЛТК

Концепция стемминга — это стандартизированный метод. За исключением времени, многие варианты слов имеют одинаковое значение.

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

учитывать:

I was taking a ride in the car.
I was riding in the car.

Эти два предложения означают одно и то же.in the carТо же самое (в машине).I(Я) такие же. В обоих случаях,ingОба ясно выражают прошедшее время, поэтому, пытаясь понять значение этого действия в прошедшем времени, действительно ли необходимо различатьridingсtaking a ride

Нет, не совсем.

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

Один из самых популярных алгоритмов извлечения фарфора — Портер, существующий с 1979 года.

Во-первых, нам нужно сканировать и определить нашу основу:

from nltk.stem import PorterStemmer
from nltk.tokenize import sent_tokenize, word_tokenize

ps = PorterStemmer()

Теперь давайте выберем несколько слов с похожей основой, например:

example_words = ["python","pythoner","pythoning","pythoned","pythonly"]

Ниже мы можем сделать это, чтобы легко извлечь стебель:

for w in example_words:
    print(ps.stem(w))

Наш результат:

python
python
python
python
pythonli

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

new_text = "It is important to by very pythonly while you are pythoning with python. All pythoners have pythoned poorly at least once."
words = word_tokenize(new_text)

for w in words:
    print(ps.stem(w))

Теперь наш результат:

It
is
import
to
by
veri
pythonli
while
you
are
python
with
python
.
All
python
have
python
poorli
at
least
onc
.

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

В-четвертых, теги части речи NLTK

Более мощный аспект модуля NLTK заключается в том, что он может выполнять за вас часть речевых тегов. Это означает пометить слова в предложении как существительные, прилагательные, глаголы и т. Д. Что более впечатляюще, так это то, что он также может быть отмечен, среди прочего, напряжением. Это список тегов, их значение и некоторые примеры:

POS tag list:

CC  coordinating conjunction
CD  cardinal digit
DT  determiner
EX  existential there (like: "there is" ... think of it like "there exists")
FW  foreign word
IN  preposition/subordinating conjunction
JJ  adjective   'big'
JJR adjective, comparative  'bigger'
JJS adjective, superlative  'biggest'
LS  list marker 1)
MD  modal   could, will
NN  noun, singular 'desk'
NNS noun plural 'desks'
NNP proper noun, singular   'Harrison'
NNPS    proper noun, plural 'Americans'
PDT predeterminer   'all the kids'
POS possessive ending   parent's
PRP personal pronoun    I, he, she
PRP$    possessive pronoun  my, his, hers
RB  adverb  very, silently,
RBR adverb, comparative better
RBS adverb, superlative best
RP  particle    give up
TO  to  go 'to' the store.
UH  interjection    errrrrrrrm
VB  verb, base form take
VBD verb, past tense    took
VBG verb, gerund/present participle taking
VBN verb, past participle   taken
VBP verb, sing. present, non-3d take
VBZ verb, 3rd person sing. present  takes
WDT wh-determiner   which
WP  wh-pronoun  who, what
WP$ possessive wh-pronoun   whose
WRB wh-abverb   where, when

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

import nltk
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer

Теперь создадим обучающие и тестовые данные:

train_text = state_union.raw("2005-GWBush.txt")
sample_text = state_union.raw("2006-GWBush.txt")

Одно из них — это выступления в Союзе с 2005 года, а другое — выступления президента Джорджа Буша с 2006 года.

Затем мы можем обучить токенизатор Punkt следующим образом:

custom_sent_tokenizer = PunktSentenceTokenizer(train_text)

После этого мы можем сегментировать слова, используя:

tokenized = custom_sent_tokenizer.tokenize(sample_text)

Теперь мы можем завершить эту часть сценария тегирования речи, создав функцию, которая будет проходить и отмечать часть речи каждого предложения, как показано ниже:

def process_content():
    try:
        for i in tokenized[:5]:
            words = nltk.word_tokenize(i)
            tagged = nltk.pos_tag(words)
            print(tagged)

    except Exception as e:
        print(str(e))


process_content()

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

[('PRESIDENT', 'NNP'), ('GEORGE', 'NNP'), ('W.', 'NNP'), ('BUSH', 'NNP'), ("'S", 'POS'), ('ADDRESS', 'NNP'), ('BEFORE', 'NNP'), ('A', 'NNP'), ('JOINT', 'NNP'), ('SESSION', 'NNP'), ('OF', 'NNP'), ('THE', 'NNP'), ('CONGRESS', 'NNP'), ('ON', 'NNP'), ('THE', 'NNP'), ('STATE', 'NNP'), ('OF', 'NNP'), ('THE', 'NNP'), ('UNION', 'NNP'), ('January', 'NNP'), ('31', 'CD'), (',', ','), ('2006', 'CD'), ('THE', 'DT'), ('PRESIDENT', 'NNP'), (':', ':'), ('Thank', 'NNP'), ('you', 'PRP'), ('all', 'DT'), ('.', '.')] [('Mr.', 'NNP'), ('Speaker', 'NNP'), (',', ','), ('Vice', 'NNP'), ('President', 'NNP'), ('Cheney', 'NNP'), (',', ','), ('members', 'NNS'), ('of', 'IN'), ('Congress', 'NNP'), (',', ','), ('members', 'NNS'), ('of', 'IN'), ('the', 'DT'), ('Supreme', 'NNP'), ('Court', 'NNP'), ('and', 'CC'), ('diplomatic', 'JJ'), ('corps', 'NNS'), (',', ','), ('distinguished', 'VBD'), ('guests', 'NNS'), (',', ','), ('and', 'CC'), ('fellow', 'JJ'), ('citizens', 'NNS'), (':', ':'), ('Today', 'NN'), ('our', 'PRP$'), ('nation', 'NN'), ('lost', 'VBD'), ('a', 'DT'), ('beloved', 'VBN'), (',', ','), ('graceful', 'JJ'), (',', ','), ('courageous', 'JJ'), ('woman', 'NN'), ('who', 'WP'), ('called', 'VBN'), ('America', 'NNP'), ('to', 'TO'), ('its', 'PRP$'), ('founding', 'NN'), ('ideals', 'NNS'), ('and', 'CC'), ('carried', 'VBD'), ('on', 'IN'), ('a', 'DT'), ('noble', 'JJ'), ('dream', 'NN'), ('.', '.')] [('Tonight', 'NNP'), ('we', 'PRP'), ('are', 'VBP'), ('comforted', 'VBN'), ('by', 'IN'), ('the', 'DT'), ('hope', 'NN'), ('of', 'IN'), ('a', 'DT'), ('glad', 'NN'), ('reunion', 'NN'), ('with', 'IN'), ('the', 'DT'), ('husband', 'NN'), ('who', 'WP'), ('was', 'VBD'), ('taken', 'VBN'), ('so', 'RB'), ('long', 'RB'), ('ago', 'RB'), (',', ','), ('and', 'CC'), ('we', 'PRP'), ('are', 'VBP'), ('grateful', 'JJ'), ('for', 'IN'), ('the', 'DT'), ('good', 'NN'), ('life', 'NN'), ('of', 'IN'), ('Coretta', 'NNP'), ('Scott', 'NNP'), ('King', 'NNP'), ('.', '.')] [('(', 'NN'), ('Applause', 'NNP'), ('.', '.'), (')', ':')] [('President', 'NNP'), ('George', 'NNP'), ('W.', 'NNP'), ('Bush', 'NNP'), ('reacts', 'VBZ'), ('to', 'TO'), ('applause', 'VB'), ('during', 'IN'), ('his', 'PRP$'), ('State', 'NNP'), ('of', 'IN'), ('the', 'DT'), ('Union', 'NNP'), ('Address', 'NNP'), ('at', 'IN'), ('the', 'DT'), ('Capitol', 'NNP'), (',', ','), ('Tuesday', 'NNP'), (',', ','), ('Jan', 'NNP'), ('.', '.')]

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

Пятерка, блок НЛТК

Теперь, когда мы знаем часть речи, мы можем обратить внимание на так называемый блок, разделяющий словарный запас на значимые блоки. Одна из основных целей разбиения на части — сгруппировать так называемые «словосочетания». Это фразы, содержащие одно или несколько слов существительного, которые могут быть описательными словами, глаголом или наречием. Идея состоит в том, чтобы объединить существительные со словами, относящимися к ним.

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

+ = match 1 or more
? = match 0 or 1 repetitions.
* = match 0 or MORE repetitions   
. = Any character except a new line

Если вам нужна помощь с регулярными выражениями, обратитесь к руководству по ссылке выше. Последнее, что нужно отметить, это то, что часть речевых тегов используется<с>Означает, что мы также можем помещать регулярные выражения в саму метку, чтобы выражать «все существительные» (<N.*>)。

import nltk
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer

train_text = state_union.raw("2005-GWBush.txt")
sample_text = state_union.raw("2006-GWBush.txt")

custom_sent_tokenizer = PunktSentenceTokenizer(train_text)

tokenized = custom_sent_tokenizer.tokenize(sample_text)

def process_content():
    try:
        for i in tokenized:
            words = nltk.word_tokenize(i)
            tagged = nltk.pos_tag(words)
            chunkGram = r"""Chunk: {<RB.?>*<VB.?>*<NNP>+<NN>?}"""
            chunkParser = nltk.RegexpParser(chunkGram)
            chunked = chunkParser.parse(tagged)
            chunked.draw()     

    except Exception as e:
        print(str(e))

process_content()

Результат такой:

https://pythonprogramming.net/static/images/nltk/nltk_chunking.png

Основная линия здесь:

chunkGram = r"""Chunk: {<RB.?>*<VB.?>*<NNP>+<NN>?}"""

Разделите эту строку:

<RB.?>*: Ноль или более наречий в любом времени, за которыми следует:

<VB.?>*: Ноль или более глаголов в любом времени, за которыми следуют:

<NNP>+: Одно или несколько разумных существительных, за которыми следуют:

<NN>?: Ноль или одно существительное в единственном числе.

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

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

(S
  (Chunk PRESIDENT/NNP GEORGE/NNP W./NNP BUSH/NNP)
  'S/POS
  (Chunk
    ADDRESS/NNP
    BEFORE/NNP
    A/NNP
    JOINT/NNP
    SESSION/NNP
    OF/NNP
    THE/NNP
    CONGRESS/NNP
    ON/NNP
    THE/NNP
    STATE/NNP
    OF/NNP
    THE/NNP
    UNION/NNP
    January/NNP)
  31/CD
  ,/,
  2006/CD
  THE/DT
  (Chunk PRESIDENT/NNP)
  :/:
  (Chunk Thank/NNP)
  you/PRP
  all/DT
  ./.)

Круто, это помогает нам визуализировать, но что, если мы хотим получить доступ к этим данным через нашу программу? Итак, что здесь происходит, так это то, что наша «разбитая на части» переменная является деревом NLTK. Каждый «блок» и «неблок» является «поддеревом» дерева. Мы можем пройти какchunked.subtreesК чему обратиться к ним. Затем мы можем пройти по этим поддеревьям следующим образом:

            for subtree in chunked.subtrees():
                print(subtree)

Далее мы можем заботиться только о получении этих блоков и игнорировать остальные. Мы можемchunked.subtrees()Используется в звонкеfilterпараметр.

            for subtree in chunked.subtrees(filter=lambda t: t.label() == 'Chunk'):
                print(subtree)

Теперь мы выполняем фильтрацию, чтобы отобразить поддерево с меткой «Блок». Помните, что это не «блок» в свойствах блока NLTK … это буквально «блок», потому что мы дали ему такую ​​метку:chunkGram = r"""Chunk: {<RB.?>*<VB.?>*<NNP>+<NN>?}"""

Если мы напишем что-то вродеchunkGram = r"""Pythons: {<RB.?>*<VB.?>*<NNP>+<NN>?}""", Тогда мы можем перейти"Pythons."Ярлык для фильтрации. Результат должен выглядеть так:

-
(Chunk PRESIDENT/NNP GEORGE/NNP W./NNP BUSH/NNP)
(Chunk
  ADDRESS/NNP
  BEFORE/NNP
  A/NNP
  JOINT/NNP
  SESSION/NNP
  OF/NNP
  THE/NNP
  CONGRESS/NNP
  ON/NNP
  THE/NNP
  STATE/NNP
  OF/NNP
  THE/NNP
  UNION/NNP
  January/NNP)
(Chunk PRESIDENT/NNP)
(Chunk Thank/NNP)

Полный код:

import nltk
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer

train_text = state_union.raw("2005-GWBush.txt")
sample_text = state_union.raw("2006-GWBush.txt")

custom_sent_tokenizer = PunktSentenceTokenizer(train_text)

tokenized = custom_sent_tokenizer.tokenize(sample_text)

def process_content():
    try:
        for i in tokenized:
            words = nltk.word_tokenize(i)
            tagged = nltk.pos_tag(words)
            chunkGram = r"""Chunk: {<RB.?>*<VB.?>*<NNP>+<NN>?}"""
            chunkParser = nltk.RegexpParser(chunkGram)
            chunked = chunkParser.parse(tagged)
            
            print(chunked)
            for subtree in chunked.subtrees(filter=lambda t: t.label() == 'Chunk'):
                print(subtree)

            chunked.draw()

    except Exception as e:
        print(str(e))

process_content()

6. НЛТК добавляет гэпы (щурение)

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

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

Код очень похож, вам просто нужно использовать}{Подойдите к пробелу кода, за блоком, а не за блоком{}

import nltk
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer

train_text = state_union.raw("2005-GWBush.txt")
sample_text = state_union.raw("2006-GWBush.txt")

custom_sent_tokenizer = PunktSentenceTokenizer(train_text)

tokenized = custom_sent_tokenizer.tokenize(sample_text)

def process_content():
    try:
        for i in tokenized[5:]:
            words = nltk.word_tokenize(i)
            tagged = nltk.pos_tag(words)

            chunkGram = r"""Chunk: {<.*>+}
                                    }<VB.?|IN|DT|TO>+{"""

            chunkParser = nltk.RegexpParser(chunkGram)
            chunked = chunkParser.parse(tagged)

            chunked.draw()

    except Exception as e:
        print(str(e))

process_content()

Используя его, вы получаете несколько вещей:

https://pythonprogramming.net/static/images/nltk/chinking.png

Теперь основные отличия:

}<VB.?|IN|DT|TO>+{

Это означает, что нам нужно удалить один или несколько глаголов, предлогов, квалификаторов илиtoэту фразу.

Теперь, когда мы узнали, как выполнить некоторый настраиваемый блок и добавить пробелы, давайте обсудим форму блока, которая поставляется с NLTK, которая называется распознаванием сущностей.

Семь, признание названного лица НЛТК

Одна из наиболее важных форм блокировки при обработке естественного языка называется «распознавание именованных сущностей». Идея состоит в том, чтобы позволить машине немедленно извлекать «объекты», такие как люди, места, вещи, локации, валюта и т. Д.

Это может быть проблемой, но НЛТК создал ее для нас. Распознавание именованных объектов NLTK имеет два основных варианта: распознавать все именованные объекты или признавать именованные объекты как их соответствующие типы, такие как лица, местоположения, местоположения и т. Д.

Это пример:

import nltk
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer

train_text = state_union.raw("2005-GWBush.txt")
sample_text = state_union.raw("2006-GWBush.txt")

custom_sent_tokenizer = PunktSentenceTokenizer(train_text)

tokenized = custom_sent_tokenizer.tokenize(sample_text)

def process_content():
    try:
        for i in tokenized[5:]:
            words = nltk.word_tokenize(i)
            tagged = nltk.pos_tag(words)
            namedEnt = nltk.ne_chunk(tagged, binary=True)
            namedEnt.draw()
    except Exception as e:
        print(str(e))


process_content()

Здесь выберитеbinary = True, Это означает, что что-то либо является именованным объектом, либо нет. Подробностей не будет. оказаться:

https://pythonprogramming.net/static/images/nltk/named-entity-recognition-binary-true.png

Если вы установитеbinary = False, Результат:

https://pythonprogramming.net/static/images/nltk/named-entity-recognition-binary-false.png

Некоторые вещи можно увидеть сразу. когдаbinaryКогда он ложен, он также выбирает то же самое, ноWhite HouseТакие термины разбиты наWhiteсHouse, Как будто они разные, а мы можемbinary = TrueСмотрите в вариантах, распознавание названных сущностей говоритWhite HouseЯвляется частью одноименного объекта, что правильно.

В зависимости от вашей цели вы можете использоватьbinaryОпции. Если твойbinaryзаfalse, Вот что вы можете получить, тип именованного объекта:

NE Type and Examples
ORGANIZATION - Georgia-Pacific Corp., WHO
PERSON - Eddy Bonte, President Obama
LOCATION - Murray River, Mount Everest
DATE - June, 2008-06-29
TIME - two fifty a m, 1:30 p.m.
MONEY - 175 million Canadian Dollars, GBP 10.40
PERCENT - twenty pct, 18.75 %
FACILITY - Washington Monument, Stonehenge
GPE - South East Asia, Midlothian

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

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

8. Морфологическая реставрация НЛТК.

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

Итак, основа, которая представляет собой слово, которое вы получите, не то, что вы можете найти в словаре, но вы можете найти словоформу.

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

from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()

print(lemmatizer.lemmatize("cats"))
print(lemmatizer.lemmatize("cacti"))
print(lemmatizer.lemmatize("geese"))
print(lemmatizer.lemmatize("rocks"))
print(lemmatizer.lemmatize("python"))
print(lemmatizer.lemmatize("better", pos="a"))
print(lemmatizer.lemmatize("best", pos="a"))
print(lemmatizer.lemmatize("run"))
print(lemmatizer.lemmatize("run",'v'))

Здесь у нас есть несколько примеров морфологии слов, которые мы используем. Единственное, что нужно отметить, это то, чтоlemmatizeПринять часть параметров речиpos. Если не указан, по умолчанию используется «существительное». Это означает, что он попытается найти ближайшее существительное, что может вызвать у вас проблемы. Если вы используете лемматизацию, помните!

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

Девять, корпус НЛТК

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

Почти все файлы в корпусе NLTK подчиняются одним и тем же правилам, и доступ к ним осуществляется с помощью модуля NLTK, но в них нет ничего волшебного. Большинство этих файлов представляют собой простые текстовые файлы, некоторые из них — файлы XML, а другие — файлы в других форматах, но все они доступны вручную или через модули и Python. Поговорим о просмотре их вручную.

Согласно вашей установке, вашnltk_dataКаталог может быть скрыт в нескольких местах. Чтобы узнать, где он находится, перейдите в каталог Python, где находится модуль NLTK. Если вы не знаете где, используйте следующий код:

import nltk
print(nltk.__file__)

Запустите его, на выходе будет модуль NLTK__init__.pyпозиция. Перейдите в каталог NLTK и найдитеdata.pyфайл.

Важная часть кода:

if sys.platform.startswith('win'):
    # Common locations on Windows:
    path += [
        str(r'C:\nltk_data'), str(r'D:\nltk_data'), str(r'E:\nltk_data'),
        os.path.join(sys.prefix, str('nltk_data')),
        os.path.join(sys.prefix, str('lib'), str('nltk_data')),
        os.path.join(os.environ.get(str('APPDATA'), str('C:\\')), str('nltk_data'))
    ]
else:
    # Common locations on UNIX & OS X:
    path += [
        str('/usr/share/nltk_data'),
        str('/usr/local/share/nltk_data'),
        str('/usr/lib/nltk_data'),
        str('/usr/local/lib/nltk_data')
    ]

Там вы можете увидетьnltk_dataРазличные возможные каталоги. Если вы работаете в Windows, вероятно, он есть на вашемappdataВ локальном каталоге. Для этого вам нужно открыть браузер файлов, перейти наверх и ввести%appdata%

Далее нажмитеroamingА затем найтиnltk_dataсодержание. Там вы найдете свой файл корпуса. Полный путь такой:

C:\Users\yourname\AppData\Roaming\nltk_data\corpora

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

Теперь обсудим доступ к этим документам через НЛТК. Как видите, это в основном текстовые документы, поэтому вы можете использовать обычный код Python для открытия и чтения документов. Другими словами, у модуля NLTK есть несколько хороших методов для обработки корпусов, поэтому вы можете обнаружить, что их использование практично. Вот пример, когда мы открываем «Библию Гутенберга» и читаем первые несколько строк:

from nltk.tokenize import sent_tokenize, PunktSentenceTokenizer
from nltk.corpus import gutenberg

# sample text
sample = gutenberg.raw("bible-kjv.txt")

tok = sent_tokenize(sample)

for x in range(5):
    print(tok[x])

Один из наиболее сложных наборов данных —wordnet. Wordnet — это набор слов, определений, примеров их использования, синонимов, антонимов и т. Д. Далее мы подробно рассмотрим wordnet.

10. НЛТК и Wordnet

WordNet — это база данных словарного запаса английского языка, созданная Принстоном и являющаяся частью корпуса NLTK.

Вы можете использовать модули WordNet и NLTK вместе, чтобы находить значения слов, синонимы, антонимы и т. Д. Приведем несколько примеров.

Во-первых, вам нужно будет импортироватьwordnet

from nltk.corpus import wordnet

Мы планируем использовать словаprogramЧтобы найти синонимы:

syns = wordnet.synsets("program")

Пример синонима:

print(syns[0].name())

# plan.n.01

Просто слова:

print(syns[0].lemmas()[0].name())

# plan

Определение первого синонима:

print(syns[0].definition())

# a series of steps to be carried out or goals to be accomplished

Примеры употребления слов:

print(syns[0].examples())

# ['they drew up a six-step plan', 'they discussed plans for a new bond issue']

Далее, как нам различать синонимы и антонимы слова? Эти словоформы являются синонимами, тогда вы можете использовать.antonymsНайдите антоним словоформы. Поэтому мы можем заполнить некоторые списки, например:

synonyms = []
antonyms = []

for syn in wordnet.synsets("good"):
    for l in syn.lemmas():
        synonyms.append(l.name())
        if l.antonyms():
            antonyms.append(l.antonyms()[0].name())

print(set(synonyms))
print(set(antonyms))

'''
{'beneficial', 'just', 'upright', 'thoroughly', 'in_force', 'well', 'skilful', 'skillful', 'sound', 'unspoiled', 'expert', 'proficient', 'in_effect', 'honorable', 'adept', 'secure', 'commodity', 'estimable', 'soundly', 'right', 'respectable', 'good', 'serious', 'ripe', 'salutary', 'dear', 'practiced', 'goodness', 'safe', 'effective', 'unspoilt', 'dependable', 'undecomposed', 'honest', 'full', 'near', 'trade_good'} {'evil', 'evilness', 'bad', 'badness', 'ill'}
'''

Как видите, у нас больше синонимов, чем антонимов, потому что мы искали только антоним первой словоформы, но вы можете легко сбалансировать это, и pass такжеbadЭто слово выполняет точно такой же процесс.

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

Сравним существительныеshipсboat

w1 = wordnet.synset('ship.n.01')
w2 = wordnet.synset('boat.n.01')
print(w1.wup_similarity(w2))

# 0.9090909090909091

w1 = wordnet.synset('ship.n.01')
w2 = wordnet.synset('car.n.01')
print(w1.wup_similarity(w2))

# 0.6956521739130435

w1 = wordnet.synset('ship.n.01')
w2 = wordnet.synset('cat.n.01')
print(w1.wup_similarity(w2))

# 0.38095238095238093

Далее мы обсудим некоторые вопросы и начнем обсуждение темы классификации текстов.

11. Классификация текста NLTK.

Теперь, когда мы знакомы с NLTK, давайте попробуем разобраться с классификацией текста. Цели классификации текста могут быть довольно широкими. Может быть, мы пытаемся классифицировать текст как политический или военный. Может, попробуем классифицировать по полу автора. Популярная задача классификации текста — идентифицировать тело текста как спам или не спам, например фильтры электронной почты. В нашем примере мы попытаемся создать алгоритм анализа настроений.

С этой целью мы сначала попытались использовать базу данных обзоров фильмов, принадлежащую корпусу NLTK. Исходя из этого, мы попытаемся использовать слова как «особенности», которые являются частью «положительных» или «отрицательных» обзоров фильмов. Корпус НЛТКmovie_reviewsВ наборе данных есть отзывы, и они помечены как положительные или отрицательные. Это означает, что мы можем обучать и тестировать данные. Во-первых, давайте предварительно обработаем наши данные.

import nltk
import random
from nltk.corpus import movie_reviews

documents = [(list(movie_reviews.words(fileid)), category)
             for category in movie_reviews.categories()
             for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)

print(documents[1])

all_words = []
for w in movie_reviews.words():
    all_words.append(w.lower())

all_words = nltk.FreqDist(all_words)
print(all_words.most_common(15))
print(all_words["stupid"])

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

После импорта нужного набора данных вы увидите:

documents = [(list(movie_reviews.words(fileid)), category)
             for category in movie_reviews.categories()
             for fileid in movie_reviews.fileids(category)]

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

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

Затем, чтобы вы могли видеть используемые вами данные, мы распечатываемdocuments[1], Это большой список, где первый элемент — это список слов, а второй элемент —posили жеnegметка.

Далее мы хотим собрать все найденные слова, чтобы получить огромный список типичных слов. Отсюда мы можем выполнить частотное распределение, а затем найти наиболее распространенные слова. Как видите, самые популярные «слова» на самом деле являются знаками препинания.theaПостойте, но скоро у нас будет действующий словарный запас. Мы намерены хранить несколько тысяч самых популярных слов, так что это не должно быть проблемой.

print(all_words.most_common(15))

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

print(all_words["stupid"])

Затем мы начинаем сохранять наши слова как характеристики положительных или отрицательных отзывов о фильмах.

12. Используйте NLTK для преобразования слов в функции.

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

Изначально наш код:

import nltk
import random
from nltk.corpus import movie_reviews

documents = [(list(movie_reviews.words(fileid)), category)
             for category in movie_reviews.categories()
             for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)

all_words = []

for w in movie_reviews.words():
    all_words.append(w.lower())

all_words = nltk.FreqDist(all_words)

word_features = list(all_words.keys())[:3000]

Почти так же, как и раньше, но теперь есть новая переменная,word_features, Который содержит первые 3000 наиболее часто используемых слов. Затем мы создадим простую функцию, чтобы найти эти первые 3000 слов в наших положительных и отрицательных документах и ​​отметить их существование как да или нет:

def find_features(document):
    words = set(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features

Ниже мы можем распечатать набор функций:

print((find_features(movie_reviews.words('neg/cv000_29416.txt'))))

Затем мы можем сделать это для всех наших документов, выполнив следующие действия, чтобы сохранить логические значения существования функции и их соответствующие положительные или отрицательные категории:

featuresets = [(find_features(rev), category) for (rev, category) in documents]

Отлично, теперь, когда у нас есть функции и ярлыки, что дальше? Обычно следующий шаг — продолжить и обучить алгоритм, а затем протестировать его. Итак, продолжим делать это, начав с наивного классификатора Байеса в следующем уроке!

Тринадцать, наивный байесовский классификатор NLTK

Пришло время выбрать алгоритм, разделить наши данные на обучающие и тестовые наборы и начать! Первый алгоритм, который мы будем использовать, — это наивный байесовский классификатор. Это очень популярный алгоритм классификации текста, поэтому мы можем только сначала его попробовать. Однако, прежде чем мы сможем обучить и протестировать наш алгоритм, нам необходимо разложить данные на обучающий набор и тестовый набор.

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

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

Мы можем разделить данные следующими способами:

# set that we'll train our classifier with
training_set = featuresets[:1900]

# set that we'll test against.
testing_set = featuresets[1900:]

Ниже мы можем определить и обучить наш классификатор:

classifier = nltk.NaiveBayesClassifier.train(training_set)

Сначала мы просто вызываем наивный байесовский классификатор, а затем используем его в одной строке.train()Провести обучение.

Достаточно просто, теперь его обучили. Далее мы можем протестировать это:

print("Classifier accuracy percent:",(nltk.classify.accuracy(classifier, testing_set))*100)

Банг, ты получил свой ответ. Если вы его пропустили, причина, по которой мы можем «проверить» данные, заключается в том, что у нас все еще есть правильный ответ. Поэтому в тесте мы показываем данные компьютеру, не давая правильного ответа. Если он правильно угадывает известный нам ответ, значит, компьютер прав. Учитывая скремблирование, которое мы сделали, у нас с вами может быть разная точность, но вы должны увидеть среднюю точность 60-75%.

Далее мы можем узнать больше о самых ценных словах в положительных или отрицательных отзывах:

classifier.show_most_informative_features(15)

Это у всех разное, но вы должны увидеть что-то вроде этого:

Most Informative Features
insulting = True neg : pos = 10.6 : 1.0
ludicrous = True neg : pos = 10.1 : 1.0
winslet = True pos : neg = 9.0 : 1.0
detract = True pos : neg = 8.4 : 1.0
breathtaking = True pos : neg = 8.1 : 1.0
silverstone = True neg : pos = 7.6 : 1.0
excruciatingly = True neg : pos = 7.6 : 1.0
warns = True pos : neg = 7.0 : 1.0
tracy = True pos : neg = 7.0 : 1.0
insipid = True neg : pos = 7.0 : 1.0
freddie = True neg : pos = 7.0 : 1.0
damon = True pos : neg = 5.9 : 1.0
debate = True pos : neg = 5.9 : 1.0
ordered = True pos : neg = 5.8 : 1.0
lang = True pos : neg = 5.7 : 1.0

Это говорит вам об отрицательной или положительной вероятности каждого слова или наоборот. Итак, здесь мы видим, что отрицательные комментарииinsultingЭтот термин появляется в 10,6 раз чаще, чем положительные комментарии.LudicrousЭто 10.1.

Теперь предположим, что вы полностью удовлетворены своими результатами и хотите продолжить, возможно, используя этот классификатор, чтобы предсказать, что происходит сейчас. Очень непрактично обучать классификатор и переобучать его всякий раз, когда вам нужно использовать классификатор. Итак, вы можете использоватьpickleМодуль сохраняет классификатор. Делаем дальше.

14. Используйте NLTK, чтобы сохранить классификатор.

Обучение классификаторов и алгоритмов машинного обучения может занять много времени, особенно если вы тренируетесь на больших наборах данных. Наш на самом деле очень маленький. Представляете, нужно ли вам тренировать классификатор каждый раз, когда вы хотите начать его использовать? Так страшно! Вместо этого мы можем использоватьpickleМодулируйте и сериализуйте наш объект классификатора, поэтому все, что нам нужно сделать, это просто загрузить файл.

Так что нам делать? Первый шаг — сохранить объект. Для этого сначала нужно импортировать вверху скриптаpickleА затем используя.train()После обучения классификатора могут быть вызваны следующие строки:

save_classifier = open("naivebayes.pickle","wb")
pickle.dump(classifier, save_classifier)
save_classifier.close()

Это открываетpickleФайл, готовый к записи данных в байтах. Затем мы используемpickle.dump()Сбросить данные.pickle.dump()Первый параметр — это то, что вы пишете, а второй параметр — это то, где вы это пишете.

После этого мы закрываем файл в соответствии с нашими требованиями, то есть теперь сохраняем файл в каталоге скрипта.pickleИли сериализованные объекты!

Далее, как нам начать использовать этот классификатор?.pickleФайл представляет собой сериализованный объект, и все, что нам нужно сделать сейчас, это прочитать его в памяти, что так же просто, как чтение любого другого обычного файла. Сюда:

classifier_f = open("naivebayes.pickle", "rb")
classifier = pickle.load(classifier_f)
classifier_f.close()

Здесь мы выполнили очень похожий процесс. Открываем файл для чтения байтов. Затем мы используемpickle.load()Загрузить файл и сохранить данные в переменных классификатора. Затем закрываем файл и все. Теперь у нас есть тот же объект-классификатор, что и раньше!

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

Хотя все это хорошо, мы можем не удовлетвориться полученной точностью 60-75%. А как насчет других классификаторов? На самом деле классификаторов много, но нам нужен модуль scikit-learn (sklearn). К счастью, сотрудники NLTK осознали ценность включения модуля sklearn в NLTK и создали для нас небольшой API. Этим мы и займемся в следующем уроке.

15. НЛТК и Sklearn

Теперь, когда мы увидели, насколько просто использовать классификатор, теперь мы хотим попробовать больше! Лучший модуль для Python — это модуль Scikit-learn (sklearn).

Если вы хотите узнать больше о модулях Scikit-learn, у меня есть несколько руководств по машинному обучению Scikit-Learn.

К счастью, для нас люди, стоящие за NLTK, высоко ценят включение модуля sklearn в метод классификатора NLTK. Таким образом, они создали различныеSklearnClassifier API. Чтобы использовать его, вам просто нужно импортировать его следующим образом:

from nltk.classify.scikitlearn import SklearnClassifier

Отсюда вы можете использовать любойsklearnКлассификатор. Например, позвольте нам представить больше вариантов наивного алгоритма Байеса:

from sklearn.naive_bayes import MultinomialNB,BernoulliNB

Как их потом использовать? В результате все очень просто.

MNB_classifier = SklearnClassifier(MultinomialNB())
MNB_classifier.train(training_set)
print("MultinomialNB accuracy percent:",nltk.classify.accuracy(MNB_classifier, testing_set))

BNB_classifier = SklearnClassifier(BernoulliNB())
BNB_classifier.train(training_set)
print("BernoulliNB accuracy percent:",nltk.classify.accuracy(BNB_classifier, testing_set))

Это так просто. Давайте познакомимся с другими вещами:

from sklearn.linear_model import LogisticRegression,SGDClassifier
from sklearn.svm import SVC, LinearSVC, NuSVC

Теперь все наши классификаторы должны выглядеть так:

print("Original Naive Bayes Algo accuracy percent:", (nltk.classify.accuracy(classifier, testing_set))*100)
classifier.show_most_informative_features(15)

MNB_classifier = SklearnClassifier(MultinomialNB())
MNB_classifier.train(training_set)
print("MNB_classifier accuracy percent:", (nltk.classify.accuracy(MNB_classifier, testing_set))*100)

BernoulliNB_classifier = SklearnClassifier(BernoulliNB())
BernoulliNB_classifier.train(training_set)
print("BernoulliNB_classifier accuracy percent:", (nltk.classify.accuracy(BernoulliNB_classifier, testing_set))*100)

LogisticRegression_classifier = SklearnClassifier(LogisticRegression())
LogisticRegression_classifier.train(training_set)
print("LogisticRegression_classifier accuracy percent:", (nltk.classify.accuracy(LogisticRegression_classifier, testing_set))*100)

SGDClassifier_classifier = SklearnClassifier(SGDClassifier())
SGDClassifier_classifier.train(training_set)
print("SGDClassifier_classifier accuracy percent:", (nltk.classify.accuracy(SGDClassifier_classifier, testing_set))*100)

SVC_classifier = SklearnClassifier(SVC())
SVC_classifier.train(training_set)
print("SVC_classifier accuracy percent:", (nltk.classify.accuracy(SVC_classifier, testing_set))*100)

LinearSVC_classifier = SklearnClassifier(LinearSVC())
LinearSVC_classifier.train(training_set)
print("LinearSVC_classifier accuracy percent:", (nltk.classify.accuracy(LinearSVC_classifier, testing_set))*100)

NuSVC_classifier = SklearnClassifier(NuSVC())
NuSVC_classifier.train(training_set)
print("NuSVC_classifier accuracy percent:", (nltk.classify.accuracy(NuSVC_classifier, testing_set))*100)

Результат запуска должен быть таким:

Original Naive Bayes Algo accuracy percent: 63.0
Most Informative Features
                thematic = True              pos : neg    =      9.1 : 1.0
                secondly = True              pos : neg    =      8.5 : 1.0
                narrates = True              pos : neg    =      7.8 : 1.0
                 rounded = True              pos : neg    =      7.1 : 1.0
                 supreme = True              pos : neg    =      7.1 : 1.0
                 layered = True              pos : neg    =      7.1 : 1.0
                  crappy = True              neg : pos    =      6.9 : 1.0
               uplifting = True              pos : neg    =      6.2 : 1.0
                     ugh = True              neg : pos    =      5.3 : 1.0
                   mamet = True              pos : neg    =      5.1 : 1.0
                 gaining = True              pos : neg    =      5.1 : 1.0
                   wanda = True              neg : pos    =      4.9 : 1.0
                   onset = True              neg : pos    =      4.9 : 1.0
               fantastic = True              pos : neg    =      4.5 : 1.0
                kentucky = True              pos : neg    =      4.4 : 1.0
MNB_classifier accuracy percent: 66.0
BernoulliNB_classifier accuracy percent: 72.0
LogisticRegression_classifier accuracy percent: 64.0
SGDClassifier_classifier accuracy percent: 61.0
SVC_classifier accuracy percent: 45.0
LinearSVC_classifier accuracy percent: 68.0
NuSVC_classifier accuracy percent: 59.0

Итак, мы видим, что ошибки SVC более распространены, чем правильны, поэтому, вероятно, нам следует от них отказаться. но? Далее мы можем попробовать использовать все эти алгоритмы сразу. Алгоритмический алгоритм! С этой целью мы можем создать еще один классификатор и сгенерировать результат классификатора на основе результатов других алгоритмов. Это немного похоже на систему голосования, поэтому нам нужно только нечетное количество алгоритмов. Это то, что мы обсудим в следующем уроке.

16. Используйте алгоритм комбинации NLTK.

Теперь, когда мы знаем, как использовать кучу алгоритмических классификаторов, как ребенок на Candy Island, говоря им, что они могут выбрать только один, нам может быть трудно выбрать только один классификатор. Хорошая новость в том, что в этом нет необходимости! Алгоритм комбинированного классификатора — широко используемый метод. Он реализуется путем создания системы голосования. Каждый алгоритм имеет один голос, и для классификации выбирается наибольшее количество голосов.

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

from nltk.classify import ClassifierI
from statistics import mode

Мы также импортируемmode(Mode), потому что таким образом мы выбираем максимальное количество.

Теперь давайте создадим наш класс классификатора:

class VoteClassifier(ClassifierI):
    def __init__(self, *classifiers):
        self._classifiers = classifiers

Мы называем наш классVoteClassifier, Мы унаследовали НЛТКClassifierI. Затем мы назначаем список классификаторов, переданных нашему классу,self._classifiers

Далее продолжим создание собственного метода классификации. Мы намерены назвать это.classifyЧтобы мы могли позвонить.classify, Прямо как традиционный классификатор NLTK.

    def classify(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)
        return mode(votes)

Проще говоря, то, что мы делаем, — это просматриваем наш список объектов классификатора. Затем мы требуем, чтобы каждый из них был классифицирован по характеристикам. Классификация считается голосованием. После завершения обхода возвращаемсяmode(votes), Это просто возвращает режим голосования.

Это то, что нам действительно нужно, но я думаю, что полезен еще один параметр, уверенность. Поскольку у нас есть алгоритм голосования, мы также можем подсчитать количество голосов за поддержку и против и назвать это «доверием». Например, 3/5 голосов менее уверенно, чем 5/5 голосов. Следовательно, мы можем буквально вернуть процент голосов как индикатор уверенности. Это наш метод уверенности:

    def confidence(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)

        choice_votes = votes.count(mode(votes))
        conf = choice_votes / len(votes)
        return conf

А теперь давайте вместе:

import nltk
import random
from nltk.corpus import movie_reviews
from nltk.classify.scikitlearn import SklearnClassifier
import pickle

from sklearn.naive_bayes import MultinomialNB, BernoulliNB
from sklearn.linear_model import LogisticRegression, SGDClassifier
from sklearn.svm import SVC, LinearSVC, NuSVC

from nltk.classify import ClassifierI
from statistics import mode


class VoteClassifier(ClassifierI):
    def __init__(self, *classifiers):
        self._classifiers = classifiers

    def classify(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)
        return mode(votes)

    def confidence(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)

        choice_votes = votes.count(mode(votes))
        conf = choice_votes / len(votes)
        return conf

documents = [(list(movie_reviews.words(fileid)), category)
             for category in movie_reviews.categories()
             for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)

all_words = []

for w in movie_reviews.words():
    all_words.append(w.lower())

all_words = nltk.FreqDist(all_words)

word_features = list(all_words.keys())[:3000]

def find_features(document):
    words = set(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features

#print((find_features(movie_reviews.words('neg/cv000_29416.txt'))))

featuresets = [(find_features(rev), category) for (rev, category) in documents]
        
training_set = featuresets[:1900]
testing_set =  featuresets[1900:]

#classifier = nltk.NaiveBayesClassifier.train(training_set)

classifier_f = open("naivebayes.pickle","rb")
classifier = pickle.load(classifier_f)
classifier_f.close()




print("Original Naive Bayes Algo accuracy percent:", (nltk.classify.accuracy(classifier, testing_set))*100)
classifier.show_most_informative_features(15)

MNB_classifier = SklearnClassifier(MultinomialNB())
MNB_classifier.train(training_set)
print("MNB_classifier accuracy percent:", (nltk.classify.accuracy(MNB_classifier, testing_set))*100)

BernoulliNB_classifier = SklearnClassifier(BernoulliNB())
BernoulliNB_classifier.train(training_set)
print("BernoulliNB_classifier accuracy percent:", (nltk.classify.accuracy(BernoulliNB_classifier, testing_set))*100)

LogisticRegression_classifier = SklearnClassifier(LogisticRegression())
LogisticRegression_classifier.train(training_set)
print("LogisticRegression_classifier accuracy percent:", (nltk.classify.accuracy(LogisticRegression_classifier, testing_set))*100)

SGDClassifier_classifier = SklearnClassifier(SGDClassifier())
SGDClassifier_classifier.train(training_set)
print("SGDClassifier_classifier accuracy percent:", (nltk.classify.accuracy(SGDClassifier_classifier, testing_set))*100)

##SVC_classifier = SklearnClassifier(SVC())
##SVC_classifier.train(training_set)
##print("SVC_classifier accuracy percent:", (nltk.classify.accuracy(SVC_classifier, testing_set))*100)

LinearSVC_classifier = SklearnClassifier(LinearSVC())
LinearSVC_classifier.train(training_set)
print("LinearSVC_classifier accuracy percent:", (nltk.classify.accuracy(LinearSVC_classifier, testing_set))*100)

NuSVC_classifier = SklearnClassifier(NuSVC())
NuSVC_classifier.train(training_set)
print("NuSVC_classifier accuracy percent:", (nltk.classify.accuracy(NuSVC_classifier, testing_set))*100)


voted_classifier = VoteClassifier(classifier,
                                  NuSVC_classifier,
                                  LinearSVC_classifier,
                                  SGDClassifier_classifier,
                                  MNB_classifier,
                                  BernoulliNB_classifier,
                                  LogisticRegression_classifier)

print("voted_classifier accuracy percent:", (nltk.classify.accuracy(voted_classifier, testing_set))*100)

print("Classification:", voted_classifier.classify(testing_set[0][0]), "Confidence %:",voted_classifier.confidence(testing_set[0][0])*100)
print("Classification:", voted_classifier.classify(testing_set[1][0]), "Confidence %:",voted_classifier.confidence(testing_set[1][0])*100)
print("Classification:", voted_classifier.classify(testing_set[2][0]), "Confidence %:",voted_classifier.confidence(testing_set[2][0])*100)
print("Classification:", voted_classifier.classify(testing_set[3][0]), "Confidence %:",voted_classifier.confidence(testing_set[3][0])*100)
print("Classification:", voted_classifier.classify(testing_set[4][0]), "Confidence %:",voted_classifier.confidence(testing_set[4][0])*100)
print("Classification:", voted_classifier.classify(testing_set[5][0]), "Confidence %:",voted_classifier.confidence(testing_set[5][0])*100)

Итак, в конце мы запускаем несколько примеров классификатора текста. Весь наш вывод:

Original Naive Bayes Algo accuracy percent: 66.0
Most Informative Features
                thematic = True              pos : neg    =      9.1 : 1.0
                secondly = True              pos : neg    =      8.5 : 1.0
                narrates = True              pos : neg    =      7.8 : 1.0
                 layered = True              pos : neg    =      7.1 : 1.0
                 rounded = True              pos : neg    =      7.1 : 1.0
                 supreme = True              pos : neg    =      7.1 : 1.0
                  crappy = True              neg : pos    =      6.9 : 1.0
               uplifting = True              pos : neg    =      6.2 : 1.0
                     ugh = True              neg : pos    =      5.3 : 1.0
                 gaining = True              pos : neg    =      5.1 : 1.0
                   mamet = True              pos : neg    =      5.1 : 1.0
                   wanda = True              neg : pos    =      4.9 : 1.0
                   onset = True              neg : pos    =      4.9 : 1.0
               fantastic = True              pos : neg    =      4.5 : 1.0
                   milos = True              pos : neg    =      4.4 : 1.0
MNB_classifier accuracy percent: 67.0
BernoulliNB_classifier accuracy percent: 67.0
LogisticRegression_classifier accuracy percent: 68.0
SGDClassifier_classifier accuracy percent: 57.99999999999999
LinearSVC_classifier accuracy percent: 67.0
NuSVC_classifier accuracy percent: 65.0
voted_classifier accuracy percent: 65.0
Classification: neg Confidence %: 100.0
Classification: pos Confidence %: 57.14285714285714
Classification: neg Confidence %: 57.14285714285714
Classification: neg Confidence %: 57.14285714285714
Classification: pos Confidence %: 57.14285714285714
Classification: pos Confidence %: 85.71428571428571

17. Используйте NLTK для исследования отклонений.

В этом уроке мы обсудим некоторые вопросы. Основная проблема в том, что у нас достаточно предвзятый алгоритм. Вы можете протестировать это, закомментировав скремблирование документа, затем используя первые 1900 для обучения и оставив последние 100 (все положительные) комментарии. Проверьте это, и вы обнаружите, что ваша точность очень низкая.

Вместо этого вы можете использовать первые 100 данных для тестирования, все данные отрицательные, и использовать последние 1900 тренировок. Здесь вы обнаружите, что точность очень высока. Это плохой знак. Это может означать много вещей, и у нас есть много вариантов решения этой проблемы.

Другими словами, проект, который мы рассматриваем, предполагает, что мы продолжим и будем использовать другой набор данных, поэтому мы и будем это делать. Наконец, мы обнаружим, что этот новый набор данных все еще имеет некоторые предубеждения, то есть он чаще выбирает негативные вещи. Причина в том, что отрицательные отзывы обычно более отрицательные, чем положительные. Это можно сделать с помощью простого взвешивания, но это также может стать очень сложным. Может быть, это очередной урок. Теперь мы собираемся получить новый набор данных, который обсудим в следующем руководстве.

18. Используйте NLTK для улучшения обучающих данных анализа настроений.

Итак, пришло время потренироваться на новом наборе данных. Наша цель — проанализировать настроения Twitter, поэтому мы хотим, чтобы каждое положительное и отрицательное предложение в наборе данных было немного коротким. У меня 5300+ положительных и 5300+ отрицательных отзывов о фильмах, что намного короче. Мы должны быть в состоянии получить больше точности от большего набора тренировок и лучше соответствовать твитам Twitter.

Я разместил эти два файла здесь, вы можете передатьСкачать короткий комментарийНайди их. Сохраните эти файлы какpositive.txtсnegative.txt

Теперь мы можем создать новый набор данных, как и раньше. Что нужно изменить?

Нам нужен новый способ создания нашей переменной «документ», а также новый способ созданияall_wordsПеременная. Это действительно не проблема, я сделал вот что:

short_pos = open("short_reviews/positive.txt","r").read()
short_neg = open("short_reviews/negative.txt","r").read()

documents = []

for r in short_pos.split('\n'):
    documents.append( (r, "pos") )

for r in short_neg.split('\n'):
    documents.append( (r, "neg") )


all_words = []

short_pos_words = word_tokenize(short_pos)
short_neg_words = word_tokenize(short_neg)

for w in short_pos_words:
    all_words.append(w.lower())

for w in short_neg_words:
    all_words.append(w.lower())

all_words = nltk.FreqDist(all_words)

Затем нам также нужно настроить нашу функцию поиска функций, в основном, чтобы отмечать в соответствии со словами в документе, потому что наш новый образец не красив.words()особенность. Я продолжил и добавил самые распространенные слова:

word_features = list(all_words.keys())[:5000]

def find_features(document):
    words = word_tokenize(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features
    
featuresets = [(find_features(rev), category) for (rev, category) in documents]
random.shuffle(featuresets)

В остальном все остальное то же самое. Это полный сценарий на тот случай, если вы или я что-то пропустили:

Этот процесс занимает некоторое время … возможно, вы захотите заняться чем-нибудь еще. На все это у меня ушло около 30-40 минут, и я запустил его на i7 3930k. На момент написания этой статьи (2015 г.) типичный процессор может занять несколько часов. Но это разовый процесс.

import nltk
import random
from nltk.corpus import movie_reviews
from nltk.classify.scikitlearn import SklearnClassifier
import pickle

from sklearn.naive_bayes import MultinomialNB, BernoulliNB
from sklearn.linear_model import LogisticRegression, SGDClassifier
from sklearn.svm import SVC, LinearSVC, NuSVC

from nltk.classify import ClassifierI
from statistics import mode

from nltk.tokenize import word_tokenize


class VoteClassifier(ClassifierI):
    def __init__(self, *classifiers):
        self._classifiers = classifiers

    def classify(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)
        return mode(votes)

    def confidence(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)

        choice_votes = votes.count(mode(votes))
        conf = choice_votes / len(votes)
        return conf
        
short_pos = open("short_reviews/positive.txt","r").read()
short_neg = open("short_reviews/negative.txt","r").read()

documents = []

for r in short_pos.split('\n'):
    documents.append( (r, "pos") )

for r in short_neg.split('\n'):
    documents.append( (r, "neg") )


all_words = []

short_pos_words = word_tokenize(short_pos)
short_neg_words = word_tokenize(short_neg)

for w in short_pos_words:
    all_words.append(w.lower())

for w in short_neg_words:
    all_words.append(w.lower())

all_words = nltk.FreqDist(all_words)

word_features = list(all_words.keys())[:5000]

def find_features(document):
    words = word_tokenize(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features

#print((find_features(movie_reviews.words('neg/cv000_29416.txt'))))

featuresets = [(find_features(rev), category) for (rev, category) in documents]

random.shuffle(featuresets)

# positive data example:      
training_set = featuresets[:10000]
testing_set =  featuresets[10000:]

##
### negative data example:      
##training_set = featuresets[100:]
##testing_set =  featuresets[:100]


classifier = nltk.NaiveBayesClassifier.train(training_set)
print("Original Naive Bayes Algo accuracy percent:", (nltk.classify.accuracy(classifier, testing_set))*100)
classifier.show_most_informative_features(15)

MNB_classifier = SklearnClassifier(MultinomialNB())
MNB_classifier.train(training_set)
print("MNB_classifier accuracy percent:", (nltk.classify.accuracy(MNB_classifier, testing_set))*100)

BernoulliNB_classifier = SklearnClassifier(BernoulliNB())
BernoulliNB_classifier.train(training_set)
print("BernoulliNB_classifier accuracy percent:", (nltk.classify.accuracy(BernoulliNB_classifier, testing_set))*100)

LogisticRegression_classifier = SklearnClassifier(LogisticRegression())
LogisticRegression_classifier.train(training_set)
print("LogisticRegression_classifier accuracy percent:", (nltk.classify.accuracy(LogisticRegression_classifier, testing_set))*100)

SGDClassifier_classifier = SklearnClassifier(SGDClassifier())
SGDClassifier_classifier.train(training_set)
print("SGDClassifier_classifier accuracy percent:", (nltk.classify.accuracy(SGDClassifier_classifier, testing_set))*100)

##SVC_classifier = SklearnClassifier(SVC())
##SVC_classifier.train(training_set)
##print("SVC_classifier accuracy percent:", (nltk.classify.accuracy(SVC_classifier, testing_set))*100)

LinearSVC_classifier = SklearnClassifier(LinearSVC())
LinearSVC_classifier.train(training_set)
print("LinearSVC_classifier accuracy percent:", (nltk.classify.accuracy(LinearSVC_classifier, testing_set))*100)

NuSVC_classifier = SklearnClassifier(NuSVC())
NuSVC_classifier.train(training_set)
print("NuSVC_classifier accuracy percent:", (nltk.classify.accuracy(NuSVC_classifier, testing_set))*100)


voted_classifier = VoteClassifier(
                                  NuSVC_classifier,
                                  LinearSVC_classifier,
                                  MNB_classifier,
                                  BernoulliNB_classifier,
                                  LogisticRegression_classifier)

print("voted_classifier accuracy percent:", (nltk.classify.accuracy(voted_classifier, testing_set))*100)

Выход:

Original Naive Bayes Algo accuracy percent: 66.26506024096386
Most Informative Features
              refreshing = True              pos : neg    =     13.6 : 1.0
                captures = True              pos : neg    =     11.3 : 1.0
                  stupid = True              neg : pos    =     10.7 : 1.0
                  tender = True              pos : neg    =      9.6 : 1.0
              meandering = True              neg : pos    =      9.1 : 1.0
                      tv = True              neg : pos    =      8.6 : 1.0
                 low-key = True              pos : neg    =      8.3 : 1.0
              thoughtful = True              pos : neg    =      8.1 : 1.0
                   banal = True              neg : pos    =      7.7 : 1.0
              amateurish = True              neg : pos    =      7.7 : 1.0
                terrific = True              pos : neg    =      7.6 : 1.0
                  record = True              pos : neg    =      7.6 : 1.0
             captivating = True              pos : neg    =      7.6 : 1.0
                portrait = True              pos : neg    =      7.4 : 1.0
                 culture = True              pos : neg    =      7.3 : 1.0
MNB_classifier accuracy percent: 65.8132530120482
BernoulliNB_classifier accuracy percent: 66.71686746987952
LogisticRegression_classifier accuracy percent: 67.16867469879519
SGDClassifier_classifier accuracy percent: 65.8132530120482
LinearSVC_classifier accuracy percent: 66.71686746987952
NuSVC_classifier accuracy percent: 60.09036144578314
voted_classifier accuracy percent: 65.66265060240963

Да, держу пари, вам потребовалось время, поэтому в следующем уроке мы поговорим оpickleВсе!

19. Используйте NLTK для создания модуля для анализа настроений.

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

Я доказал вам, как использоватьpickelЧтобы добиться этого, я призываю вас попробовать сделать это самостоятельно. Если понадобится помощь, я вставлю полный код … но будьте осторожны, сделайте это сами!

Этот процесс занимает некоторое время … возможно, вы захотите заняться чем-нибудь еще. На все это у меня ушло около 30-40 минут, и я запустил его на i7 3930k. На момент написания этой статьи (2015 г.) типичный процессор может занять несколько часов. Но это разовый процесс.

import nltk
import random
#from nltk.corpus import movie_reviews
from nltk.classify.scikitlearn import SklearnClassifier
import pickle
from sklearn.naive_bayes import MultinomialNB, BernoulliNB
from sklearn.linear_model import LogisticRegression, SGDClassifier
from sklearn.svm import SVC, LinearSVC, NuSVC
from nltk.classify import ClassifierI
from statistics import mode
from nltk.tokenize import word_tokenize



class VoteClassifier(ClassifierI):
    def __init__(self, *classifiers):
        self._classifiers = classifiers

    def classify(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)
        return mode(votes)

    def confidence(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)

        choice_votes = votes.count(mode(votes))
        conf = choice_votes / len(votes)
        return conf
    
short_pos = open("short_reviews/positive.txt","r").read()
short_neg = open("short_reviews/negative.txt","r").read()

# move this up here
all_words = []
documents = []


#  j is adject, r is adverb, and v is verb
#allowed_word_types = ["J","R","V"]
allowed_word_types = ["J"]

for p in short_pos.split('\n'):
    documents.append( (p, "pos") )
    words = word_tokenize(p)
    pos = nltk.pos_tag(words)
    for w in pos:
        if w[1][0] in allowed_word_types:
            all_words.append(w[0].lower())

    
for p in short_neg.split('\n'):
    documents.append( (p, "neg") )
    words = word_tokenize(p)
    pos = nltk.pos_tag(words)
    for w in pos:
        if w[1][0] in allowed_word_types:
            all_words.append(w[0].lower())



save_documents = open("pickled_algos/documents.pickle","wb")
pickle.dump(documents, save_documents)
save_documents.close()


all_words = nltk.FreqDist(all_words)


word_features = list(all_words.keys())[:5000]


save_word_features = open("pickled_algos/word_features5k.pickle","wb")
pickle.dump(word_features, save_word_features)
save_word_features.close()


def find_features(document):
    words = word_tokenize(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features

featuresets = [(find_features(rev), category) for (rev, category) in documents]

random.shuffle(featuresets)
print(len(featuresets))

testing_set = featuresets[10000:]
training_set = featuresets[:10000]


classifier = nltk.NaiveBayesClassifier.train(training_set)
print("Original Naive Bayes Algo accuracy percent:", (nltk.classify.accuracy(classifier, testing_set))*100)
classifier.show_most_informative_features(15)

###############
save_classifier = open("pickled_algos/originalnaivebayes5k.pickle","wb")
pickle.dump(classifier, save_classifier)
save_classifier.close()

MNB_classifier = SklearnClassifier(MultinomialNB())
MNB_classifier.train(training_set)
print("MNB_classifier accuracy percent:", (nltk.classify.accuracy(MNB_classifier, testing_set))*100)

save_classifier = open("pickled_algos/MNB_classifier5k.pickle","wb")
pickle.dump(MNB_classifier, save_classifier)
save_classifier.close()

BernoulliNB_classifier = SklearnClassifier(BernoulliNB())
BernoulliNB_classifier.train(training_set)
print("BernoulliNB_classifier accuracy percent:", (nltk.classify.accuracy(BernoulliNB_classifier, testing_set))*100)

save_classifier = open("pickled_algos/BernoulliNB_classifier5k.pickle","wb")
pickle.dump(BernoulliNB_classifier, save_classifier)
save_classifier.close()

LogisticRegression_classifier = SklearnClassifier(LogisticRegression())
LogisticRegression_classifier.train(training_set)
print("LogisticRegression_classifier accuracy percent:", (nltk.classify.accuracy(LogisticRegression_classifier, testing_set))*100)

save_classifier = open("pickled_algos/LogisticRegression_classifier5k.pickle","wb")
pickle.dump(LogisticRegression_classifier, save_classifier)
save_classifier.close()


LinearSVC_classifier = SklearnClassifier(LinearSVC())
LinearSVC_classifier.train(training_set)
print("LinearSVC_classifier accuracy percent:", (nltk.classify.accuracy(LinearSVC_classifier, testing_set))*100)

save_classifier = open("pickled_algos/LinearSVC_classifier5k.pickle","wb")
pickle.dump(LinearSVC_classifier, save_classifier)
save_classifier.close()


##NuSVC_classifier = SklearnClassifier(NuSVC())
##NuSVC_classifier.train(training_set)
##print("NuSVC_classifier accuracy percent:", (nltk.classify.accuracy(NuSVC_classifier, testing_set))*100)


SGDC_classifier = SklearnClassifier(SGDClassifier())
SGDC_classifier.train(training_set)
print("SGDClassifier accuracy percent:",nltk.classify.accuracy(SGDC_classifier, testing_set)*100)

save_classifier = open("pickled_algos/SGDC_classifier5k.pickle","wb")
pickle.dump(SGDC_classifier, save_classifier)
save_classifier.close()

Теперь вам нужно запустить его только один раз. При желании вы можете запустить его в любое время, но теперь вы готовы создать модуль анализа настроений. Это то, что мы называемsentiment_mod.pyдокумент:

#File: sentiment_mod.py

import nltk
import random
#from nltk.corpus import movie_reviews
from nltk.classify.scikitlearn import SklearnClassifier
import pickle
from sklearn.naive_bayes import MultinomialNB, BernoulliNB
from sklearn.linear_model import LogisticRegression, SGDClassifier
from sklearn.svm import SVC, LinearSVC, NuSVC
from nltk.classify import ClassifierI
from statistics import mode
from nltk.tokenize import word_tokenize



class VoteClassifier(ClassifierI):
    def __init__(self, *classifiers):
        self._classifiers = classifiers

    def classify(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)
        return mode(votes)

    def confidence(self, features):
        votes = []
        for c in self._classifiers:
            v = c.classify(features)
            votes.append(v)

        choice_votes = votes.count(mode(votes))
        conf = choice_votes / len(votes)
        return conf


documents_f = open("pickled_algos/documents.pickle", "rb")
documents = pickle.load(documents_f)
documents_f.close()




word_features5k_f = open("pickled_algos/word_features5k.pickle", "rb")
word_features = pickle.load(word_features5k_f)
word_features5k_f.close()


def find_features(document):
    words = word_tokenize(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features



featuresets_f = open("pickled_algos/featuresets.pickle", "rb")
featuresets = pickle.load(featuresets_f)
featuresets_f.close()

random.shuffle(featuresets)
print(len(featuresets))

testing_set = featuresets[10000:]
training_set = featuresets[:10000]



open_file = open("pickled_algos/originalnaivebayes5k.pickle", "rb")
classifier = pickle.load(open_file)
open_file.close()


open_file = open("pickled_algos/MNB_classifier5k.pickle", "rb")
MNB_classifier = pickle.load(open_file)
open_file.close()



open_file = open("pickled_algos/BernoulliNB_classifier5k.pickle", "rb")
BernoulliNB_classifier = pickle.load(open_file)
open_file.close()


open_file = open("pickled_algos/LogisticRegression_classifier5k.pickle", "rb")
LogisticRegression_classifier = pickle.load(open_file)
open_file.close()


open_file = open("pickled_algos/LinearSVC_classifier5k.pickle", "rb")
LinearSVC_classifier = pickle.load(open_file)
open_file.close()


open_file = open("pickled_algos/SGDC_classifier5k.pickle", "rb")
SGDC_classifier = pickle.load(open_file)
open_file.close()




voted_classifier = VoteClassifier(
                                  classifier,
                                  LinearSVC_classifier,
                                  MNB_classifier,
                                  BernoulliNB_classifier,
                                  LogisticRegression_classifier)




def sentiment(text):
    feats = find_features(text)
    return voted_classifier.classify(feats),voted_classifier.confidence(feats)

Так что здесь, кроме последней функции, на самом деле нет ничего нового, что очень просто. Эта функция является ключом к нашему взаимодействию с ней отсюда. Эта функция, которую мы называем «эмоцией», принимает один параметр — текст. Здесь мы используем тот, который мы уже создалиfind_featuresФункция для разложения этих функций. Теперь все, что нам нужно сделать, это использовать наш классификатор голосования, чтобы вернуть классификацию и вернуть достоверность классификации.

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

import sentiment_mod as s

print(s.sentiment("This movie was awesome! The acting was great, plot was wonderful, and there were pythons...so yea!"))
print(s.sentiment("This movie was utter junk. There were absolutely 0 pythons. I don't see what the point was at all. Horrible movie, 0/10"))

Как и ожидалось, сpythonРецензии на фильм явно очень хорошие, без всякихpythonФильм чушь. Оба они имеют 100% уверенность.

На импорт модуля у меня ушло около 5 секунд, потому что мы сохранили классификатор, это может занять 30 минут, если он не будет сохранен. благодаряpickle Ваше время будет сильно отличаться в зависимости от вашего процессора. Если вы продолжите, я скажу, что вы тоже можете захотеть увидетьjoblib

Теперь, когда у нас есть этот замечательный модуль, он работает легко, что мы можем сделать? Я предлагаю зайти в Twitter для анализа настроений в реальном времени!

Twenty, анализ настроений в Twitter НЛТК

Теперь, когда у нас есть модуль анализа настроений, мы можем применить его к любому тексту, но лучше всего использовать короткий текст, например Twitter! Для этого мы объединим это руководство с руководством по API потоковой передачи Twitter.

Исходный код для этого руководства:

from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener


#consumer key, consumer secret, access token, access secret.
ckey="fsdfasdfsafsffa"
csecret="asdfsadfsadfsadf"
atoken="asdf-aassdfs"
asecret="asdfsadfsdafsdafs"

class listener(StreamListener):

    def on_data(self, data):
        print(data)
        return(True)

    def on_error(self, status):
        print status

auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)

twitterStream = Stream(auth, listener())
twitterStream.filter(track=["car"])

Этого достаточно для печати, содержащей словаcarВсе данные потоковых твитов в реальном времени. Мы можем использоватьjsonМодуль, используйтеjson.loads(data)Чтобы загрузить переменную данных, а затем мы можем обратиться к конкретномуtweet

tweet = all_data["text"]

Теперь, когда у нас есть твит, мы можем легко передать его нашемуsentiment_modМодуль.

from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json
import sentiment_mod as s

#consumer key, consumer secret, access token, access secret.
ckey="asdfsafsafsaf"
csecret="asdfasdfsadfsa"
atoken="asdfsadfsafsaf-asdfsaf"
asecret="asdfsadfsadfsadfsadfsad"

from twitterapistuff import *

class listener(StreamListener):

    def on_data(self, data):

        all_data = json.loads(data)

        tweet = all_data["text"]
        sentiment_value, confidence = s.sentiment(tweet)
        print(tweet, sentiment_value, confidence)

        if confidence*100 >= 80:
            output = open("twitter-out.txt","a")
            output.write(sentiment_value)
            output.write('\n')
            output.close()

        return True

    def on_error(self, status):
        print(status)

auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)

twitterStream = Stream(auth, listener())
twitterStream.filter(track=["happy"])

Кроме того, мы также сохраняем результаты в выходной файлtwitter-out.txtв.

Далее, чем закончен анализ данных без графиков? Давайте объединим еще один учебник, чтобы нарисовать потоковый график в реальном времени на основе анализа настроений в Twitter API.

21. Используйте NLTK для анализа настроений в Twitter в режиме реального времени.

Теперь, когда мы получили данные в реальном времени из потокового API Twitter, почему нет графика активности, показывающего тенденции настроений? С этой целью мы объединим это руководство с учебником по рисованию matplotlib.

Если вы хотите узнать больше о том, как работает код, обратитесь к этому руководству. иначе:

import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
import time

style.use("ggplot")

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)

def animate(i):
    pullData = open("twitter-out.txt","r").read()
    lines = pullData.split('\n')

    xar = []
    yar = []

    x = 0
    y = 0

    for l in lines[-200:]:
        x += 1
        if "pos" in l:
            y += 1
        elif "neg" in l:
            y -= 1

        xar.append(x)
        yar.append(y)
        
    ax1.clear()
    ax1.plot(xar,yar)
ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()

22. Stanford NER tagger и распознавание именованных сущностей

Chuck Dishmon Гостевой пост.

Теггер Stanford NER предоставляет альтернативу классификатору NLTK для распознавания именованных сущностей (NER). Этот токенизатор в значительной степени считается стандартом для распознавания именованных объектов, но поскольку он использует передовые алгоритмы статистического обучения, его вычислительные издержки больше, чем параметры, предоставляемые NLTK.

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

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

Для продолжения нам необходимо скачать модель иjarFile, потому что классификатор NER написан на Java. Их можно получить изСтэнфордская группа обработки естественного языкаПолучите это бесплатно. NTLK Для нашего удобства NLTK предоставляет оболочку для Стэнфордского токенизатора, поэтому мы можем использовать его на лучшем языке (конечно, Python)!

Перейти кStanfordNERTaggerПараметры класса включают:

  • Путь модели классификации (ниже используются три типа моделей)
  • Стэнфордский маркерjarПуть файла
  • Кодировка обучающих данных (по умолчанию ASCII)

Вот как мы настроили его, чтобы пометить предложения с тремя типами моделей:

# -*- coding: utf-8 -*-

from nltk.tag import StanfordNERTagger
from nltk.tokenize import word_tokenize

st = StanfordNERTagger('/usr/share/stanford-ner/classifiers/english.all.3class.distsim.crf.ser.gz',
                       '/usr/share/stanford-ner/stanford-ner.jar',
                       encoding='utf-8')

text = 'While in France, Christine Lagarde discussed short-term stimulus efforts in a recent interview with the Wall Street Journal.'

tokenized_text = word_tokenize(text)
classified_text = st.tag(tokenized_text)

print(classified_text)

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

[('While', 'O'), ('in', 'O'), ('France', 'LOCATION'), (',', 'O'), ('Christine', 'PERSON'), ('Lagarde', 'PERSON'), ('discussed', 'O'), ('short-term', 'O'), ('stimulus', 'O'), ('efforts', 'O'), ('in', 'O'), ('a', 'O'), ('recent', 'O'), ('interview', 'O'), ('with', 'O'), ('the', 'O'), ('Wall', 'ORGANIZATION'), ('Street', 'ORGANIZATION'), ('Journal', 'ORGANIZATION'), ('.', 'O')]

Большой! Каждая марка используетPERSONLOCATIONORGANIZATIONили жеOМарк (используя нашу трехкатегориальную модель).OПредставляет только другие, то есть неименованные объекты.

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

23. Проверьте точность маркеров NLTK и Stanford NER.

Chuck Dishmon Гостевой пост.

Мы знаем, как использовать два разных классификатора NER! Но что выбрать — НЛТК или Стэнфордский университет? Давайте проведем несколько тестов, чтобы выяснить это.

Первое, что нам нужно, это несколько помеченных справочных данных для тестирования нашего классификатора NER. Один из способов получить эти данные — найти большое количество статей и пометить каждый тег как именованный объект (например, лицо, организация, местоположение) или другой безымянный объект. Затем мы можем протестировать наш отдельный классификатор NER с правильными метками, которые мы знаем.

К сожалению, на это уходит очень много времени! Хорошей новостью является то, что существует бесплатный набор данных с ручными аннотациями, содержащий более 16 000 английских предложений. Также есть наборы данных на немецком, испанском, французском, итальянском, голландском, польском, португальском и русском языках!

Это аннотированное предложение из набора данных:

Founding O
member O
Kojima I-PER
Minoru I-PER
played O
guitar O
on O
Good I-MISC
Day I-MISC
, O
and O
Wardanceis I-MISC
cover O
of O
a O
song O
by O
UK I-LOC
post O
punk O
industrial O
band O
Killing I-ORG
Joke I-ORG
. O

Давайте прочитаем, разделим и обработаем данные, чтобы сделать их лучшим форматом для тестирования.

import nltk
from nltk.tag import StanfordNERTagger
from nltk.metrics.scores import accuracy

raw_annotations = open("/usr/share/wikigold.conll.txt").read()
split_annotations = raw_annotations.split()

# Amend class annotations to reflect Stanford's NERTagger
for n,i in enumerate(split_annotations):
    if i == "I-PER":
        split_annotations[n] = "PERSON"
    if i == "I-ORG":
        split_annotations[n] = "ORGANIZATION"
    if i == "I-LOC":
        split_annotations[n] = "LOCATION"

# Group NE data into tuples
def group(lst, n):
  for i in range(0, len(lst), n):
    val = lst[i:i+n]
    if len(val) == n:
      yield tuple(val)

reference_annotations = list(group(split_annotations, 2))

Ладно выглядит отлично! Однако нам также необходимо вставить «аккуратную» форму этих данных в наш классификатор NER. Давай сделаем это.

pure_tokens = split_annotations[::2]

Это считывает данные, делит их на пустые символы, а затем увеличивает их на два (начиная с нулевого элемента), принимаетsplit_annotationsПодмножество всего в. Это создает набор данных, аналогичный приведенному ниже (гораздо меньшему) примеру:

['Founding', 'member', 'Kojima', 'Minoru', 'played', 'guitar', 'on', 'Good', 'Day', ',', 'and', 'Wardanceis', 'cover', 'of', 'a', 'song', 'by', 'UK', 'post', 'punk', 'industrial', 'band', 'Killing', 'Joke', '.']

Давайте продолжим и протестируем классификатор NLTK:

tagged_words = nltk.pos_tag(pure_tokens)
nltk_unformatted_prediction = nltk.ne_chunk(tagged_words)

Поскольку классификатор NLTK NER создает деревья (включая теги POS), нам нужно выполнить некоторые дополнительные манипуляции с данными, чтобы получить подходящую форму для тестирования.

#Convert prediction to multiline string and then to list (includes pos tags)
multiline_string = nltk.chunk.tree2conllstr(nltk_unformatted_prediction)
listed_pos_and_ne = multiline_string.split()

# Delete pos tags and rename
del listed_pos_and_ne[1::3]
listed_ne = listed_pos_and_ne

# Amend class annotations for consistency with reference_annotations
for n,i in enumerate(listed_ne):
    if i == "B-PERSON":
        listed_ne[n] = "PERSON"
    if i == "I-PERSON":
        listed_ne[n] = "PERSON"    
    if i == "B-ORGANIZATION":
        listed_ne[n] = "ORGANIZATION"
    if i == "I-ORGANIZATION":
        listed_ne[n] = "ORGANIZATION"
    if i == "B-LOCATION":
        listed_ne[n] = "LOCATION"
    if i == "I-LOCATION":
        listed_ne[n] = "LOCATION"
    if i == "B-GPE":
        listed_ne[n] = "LOCATION"
    if i == "I-GPE":
        listed_ne[n] = "LOCATION"

# Group prediction into tuples
nltk_formatted_prediction = list(group(listed_ne, 2))

Теперь мы можем проверить точность NLTK.

nltk_accuracy = accuracy(reference_annotations, nltk_formatted_prediction)
print(nltk_accuracy)

Вау, точность.8971

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

st = StanfordNERTagger('/usr/share/stanford-ner/classifiers/english.all.3class.distsim.crf.ser.gz',
                       '/usr/share/stanford-ner/stanford-ner.jar',
                       encoding='utf-8')                  
stanford_prediction = st.tag(pure_tokens)
stanford_accuracy = accuracy(reference_annotations, stanford_prediction)
print(stanford_accuracy)

.9223Уровень точности! лучше!

Если вы хотите это нарисовать, вот дополнительный код. Если вы хотите узнать больше о том, как это работает, ознакомьтесь с серией материалов о matplotlib:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style

style.use('fivethirtyeight')

N = 1
ind = np.arange(N)  # the x locations for the groups
width = 0.35       # the width of the bars

fig, ax = plt.subplots()

stanford_percentage = stanford_accuracy * 100
rects1 = ax.bar(ind, stanford_percentage, width, color='r')

nltk_percentage = nltk_accuracy * 100
rects2 = ax.bar(ind+width, nltk_percentage, width, color='y')

# add some text for labels, title and axes ticks
ax.set_xlabel('Classifier')
ax.set_ylabel('Accuracy (by percentage)')
ax.set_title('Accuracy by NER Classifier')
ax.set_xticks(ind+width)
ax.set_xticklabels( ('') )

ax.legend( (rects1[0], rects2[0]), ('Stanford', 'NLTK'), bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0. )

def autolabel(rects):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x()+rect.get_width()/2., 1.02*height, '%10.2f' % float(height),
                ha='center', va='bottom')

autolabel(rects1)
autolabel(rects2)

plt.show()

https://pythonprogramming.net/static/images/nltk/testing-stanford-named-entity-recognition.png

Двадцать четыре, проверьте скорость маркера NLTK и Stanford NER

Chuck Dishmon Гостевой пост.

Мы проверили точность нашего классификатора NER, но при выборе классификатора следует учитывать и другие проблемы. Далее проверим скорость!

Мы знаем, что сравниваем одно и то же, и протестируем это в той же статье. Используйте этот фрагмент из новостей NBC:

House Speaker John Boehner became animated Tuesday over the proposed Keystone Pipeline, castigating the Obama administration for not having approved the project yet.

Republican House Speaker John Boehner says there's "nothing complex about the Keystone Pipeline," and that it's time to build it.

"Complex? You think the Keystone Pipeline is complex?!" Boehner responded to a questioner. "It's been under study for five years! We build pipelines in America every day. Do you realize there are 200,000 miles of pipelines in the United States?"

The speaker went on: "And the only reason the president's involved in the Keystone Pipeline is because it crosses an international boundary. Listen, we can build it. There's nothing complex about the Keystone Pipeline -- it's time to build it."

Boehner said the president had no excuse at this point to not give the pipeline the go-ahead after the State Department released a report on Friday indicating the project would have a minimal impact on the environment.

Republicans have long pushed for construction of the project, which enjoys some measure of Democratic support as well. The GOP is considering conditioning an extension of the debt limit on approval of the project by Obama.

The White House, though, has said that it has no timetable for a final decision on the project.

Сначала мы выполняем импорт и обрабатываем статью путем чтения и сегментации слов.

# -*- coding: utf-8 -*-

import nltk
import os
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
from nltk import pos_tag
from nltk.tag import StanfordNERTagger
from nltk.tokenize import word_tokenize

style.use('fivethirtyeight')

# Process text  
def process_text(txt_file):
    raw_text = open("/usr/share/news_article.txt").read()
    token_text = word_tokenize(raw_text)
    return token_text

Большой! Теперь давайте напишем несколько функций, чтобы разделить нашу задачу классификации. Поскольку классификатор NLTK NEG требует тегов POS, мы добавим теги POS в нашу функцию NLTK.

# Stanford NER tagger    
def stanford_tagger(token_text):
    st = StanfordNERTagger('/usr/share/stanford-ner/classifiers/english.all.3class.distsim.crf.ser.gz',
                            '/usr/share/stanford-ner/stanford-ner.jar',
                            encoding='utf-8')   
    ne_tagged = st.tag(token_text)
    return(ne_tagged)
 
# NLTK POS and NER taggers   
def nltk_tagger(token_text):
    tagged_words = nltk.pos_tag(token_text)
    ne_tagged = nltk.ne_chunk(tagged_words)
    return(ne_tagged)

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

def stanford_main():
    print(stanford_tagger(process_text(txt_file)))

def nltk_main():
    print(nltk_tagger(process_text(txt_file)))

Когда мы вызываем нашу программу, мы вызываем эти функции. Мы будемos.times()Оберните нашуstanford_main()сnltk_main()Функция, возьмите четвертый индекс, который представляет собой прошедшее время. Затем мы нанесем график наших результатов.

if __name__ == '__main__':
    stanford_t0 = os.times()[4]
    stanford_main()
    stanford_t1 = os.times()[4]
    stanford_total_time = stanford_t1 - stanford_t0
    
    nltk_t0 = os.times()[4]
    nltk_main()
    nltk_t1 = os.times()[4]
    nltk_total_time = nltk_t1 - nltk_t0
    
    time_plot(stanford_total_time, nltk_total_time)

Для нашего рисунка мы используемtime_plot()функция:

def time_plot(stanford_total_time, nltk_total_time):
    N = 1
    ind = np.arange(N)  # the x locations for the groups
    width = 0.35       # the width of the bars
    stanford_total_time = stanford_total_time
    nltk_total_time = nltk_total_time   
    fig, ax = plt.subplots()    
    rects1 = ax.bar(ind, stanford_total_time, width, color='r')    
    rects2 = ax.bar(ind+width, nltk_total_time, width, color='y')
    
    # Add text for labels, title and axes ticks
    ax.set_xlabel('Classifier')
    ax.set_ylabel('Time (in seconds)')
    ax.set_title('Speed by NER Classifier')
    ax.set_xticks(ind+width)
    ax.set_xticklabels( ('') )   
    ax.legend( (rects1[0], rects2[0]), ('Stanford', 'NLTK'), bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0. )

    def autolabel(rects):
        # attach some text labels
        for rect in rects:
            height = rect.get_height()
            ax.text(rect.get_x()+rect.get_width()/2., 1.02*height, '%10.2f' % float(height),
                    ha='center', va='bottom')
    
    autolabel(rects1)
    autolabel(rects2)    
    plt.show()

Ух ты, НЛТК молниеносно! Вроде Стэнфорд точнее, но НЛТК быстрее. Это важная информация, которую нужно знать при балансировании предпочтительной точности с требуемыми вычислительными ресурсами.

Но подождите, проблемы все еще есть. Наш результат уродливый! Это небольшой образец из Стэнфордского университета:

[('House', 'ORGANIZATION'), ('Speaker', 'O'), ('John', 'PERSON'), ('Boehner', 'PERSON'), ('became', 'O'), ('animated', 'O'), ('Tuesday', 'O'), ('over', 'O'), ('the', 'O'), ('proposed', 'O'), ('Keystone', 'ORGANIZATION'), ('Pipeline', 'ORGANIZATION'), (',', 'O'), ('castigating', 'O'), ('the', 'O'), ('Obama', 'PERSON'), ('administration', 'O'), ('for', 'O'), ('not', 'O'), ('having', 'O'), ('approved', 'O'), ('the', 'O'), ('project', 'O'), ('yet', 'O'), ('.', 'O')

И НЛТК:

(S
  (ORGANIZATION House/NNP)
  Speaker/NNP
  (PERSON John/NNP Boehner/NNP)
  became/VBD
  animated/VBN
  Tuesday/NNP
  over/IN
  the/DT
  proposed/VBN
  (PERSON Keystone/NNP Pipeline/NNP)
  ,/,
  castigating/VBG
  the/DT
  (ORGANIZATION Obama/NNP)
  administration/NN
  for/IN
  not/RB
  having/VBG
  approved/VBN
  the/DT
  project/NN
  yet/RB
  ./.

Давайте превратим их в удобочитаемую форму в следующем уроке.

https://pythonprogramming.net/static/images/nltk/stanford-nert-speed-test.png

Используйте теги BIO, чтобы создать читаемый список именованных сущностей

Chuck Dishmon Гостевой пост.

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

Опять же, мы будем использовать ту же статью из NBC News:

House Speaker John Boehner became animated Tuesday over the proposed Keystone Pipeline, castigating the Obama administration for not having approved the project yet.

Republican House Speaker John Boehner says there's "nothing complex about the Keystone Pipeline," and that it's time to build it.

"Complex? You think the Keystone Pipeline is complex?!" Boehner responded to a questioner. "It's been under study for five years! We build pipelines in America every day. Do you realize there are 200,000 miles of pipelines in the United States?"

The speaker went on: "And the only reason the president's involved in the Keystone Pipeline is because it crosses an international boundary. Listen, we can build it. There's nothing complex about the Keystone Pipeline -- it's time to build it."

Boehner said the president had no excuse at this point to not give the pipeline the go-ahead after the State Department released a report on Friday indicating the project would have a minimal impact on the environment.

Republicans have long pushed for construction of the project, which enjoys some measure of Democratic support as well. The GOP is considering conditioning an extension of the debt limit on approval of the project by Obama.

The White House, though, has said that it has no timetable for a final decision on the project.

Наш вывод NTLK уже представляет собой дерево (необходим только последний шаг), поэтому давайте посмотрим на наш вывод Stanford. Мы отметим BIO, B присваивается началу названной сущности, I — внутренней, а O — остальным. Например, если наше предложениеBarack Obama went to Greece today, Мы должны отметить это какBarack-B Obama-I went-O to-O Greece-B today-O. Для этого напишем серию условий для проверки текущего и предыдущего отмеченныхOметка.

# -*- coding: utf-8 -*-

import nltk
import os
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
from nltk import pos_tag
from nltk.tag import StanfordNERTagger
from nltk.tokenize import word_tokenize
from nltk.chunk import conlltags2tree
from nltk.tree import Tree

style.use('fivethirtyeight')

# Process text  
def process_text(txt_file):
    raw_text = open("/usr/share/news_article.txt").read()
    token_text = word_tokenize(raw_text)
    return token_text

# Stanford NER tagger    
def stanford_tagger(token_text):
    st = StanfordNERTagger('/usr/share/stanford-ner/classifiers/english.all.3class.distsim.crf.ser.gz',
                            '/usr/share/stanford-ner/stanford-ner.jar',
                            encoding='utf-8')   
    ne_tagged = st.tag(token_text)
    return(ne_tagged)
 
# NLTK POS and NER taggers   
def nltk_tagger(token_text):
    tagged_words = nltk.pos_tag(token_text)
    ne_tagged = nltk.ne_chunk(tagged_words)
    return(ne_tagged)

# Tag tokens with standard NLP BIO tags
def bio_tagger(ne_tagged):
        bio_tagged = []
        prev_tag = "O"
        for token, tag in ne_tagged:
            if tag == "O": #O
                bio_tagged.append((token, tag))
                prev_tag = tag
                continue
            if tag != "O" and prev_tag == "O": # Begin NE
                bio_tagged.append((token, "B-"+tag))
                prev_tag = tag
            elif prev_tag != "O" and prev_tag == tag: # Inside NE
                bio_tagged.append((token, "I-"+tag))
                prev_tag = tag
            elif prev_tag != "O" and prev_tag != tag: # Adjacent NE
                bio_tagged.append((token, "B-"+tag))
                prev_tag = tag
        return bio_tagged

Теперь мы записываем теги после тега BIO в дерево, чтобы они имели тот же формат вывода, что и NLTK.

# Create tree       
def stanford_tree(bio_tagged):
    tokens, ne_tags = zip(*bio_tagged)
    pos_tags = [pos for token, pos in pos_tag(tokens)]

    conlltags = [(token, pos, ne) for token, pos, ne in zip(tokens, pos_tags, ne_tags)]
    ne_tree = conlltags2tree(conlltags)
    return ne_tree

Обойти и разрешить все названные объекты:

# Parse named entities from tree
def structure_ne(ne_tree):
    ne = []
    for subtree in ne_tree:
        if type(subtree) == Tree: # If subtree is a noun chunk, i.e. NE != "O"
            ne_label = subtree.label()
            ne_string = " ".join([token for token, pos in subtree.leaves()])
            ne.append((ne_string, ne_label))
    return ne

В нашем вызове мы группируем все дополнительные функции вместе.

def stanford_main():
    print(structure_ne(stanford_tree(bio_tagger(stanford_tagger(process_text(txt_file))))))

def nltk_main():
    print(structure_ne(nltk_tagger(process_text(txt_file))))

Затем вызовите эти функции:

if __name__ == '__main__':
    stanford_main()
    nltk_main()

Вот результат Стэнфорда, который выглядит неплохо:

[('House', 'ORGANIZATION'), ('John Boehner', 'PERSON'), ('Keystone Pipeline', 'ORGANIZATION'), ('Obama', 'PERSON'), ('Republican House', 'ORGANIZATION'), ('John Boehner', 'PERSON'), ('Keystone Pipeline', 'ORGANIZATION'), ('Keystone Pipeline', 'ORGANIZATION'), ('Boehner', 'PERSON'), ('America', 'LOCATION'), ('United States', 'LOCATION'), ('Keystone Pipeline', 'ORGANIZATION'), ('Keystone Pipeline', 'ORGANIZATION'), ('Boehner', 'PERSON'), ('State Department', 'ORGANIZATION'), ('Republicans', 'MISC'), ('Democratic', 'MISC'), ('GOP', 'MISC'), ('Obama', 'PERSON'), ('White House', 'LOCATION')]

И от НЛТК:

[('House', 'ORGANIZATION'), ('John Boehner', 'PERSON'), ('Keystone Pipeline', 'PERSON'), ('Obama', 'ORGANIZATION'), ('Republican', 'ORGANIZATION'), ('House', 'ORGANIZATION'), ('John Boehner', 'PERSON'), ('Keystone Pipeline', 'ORGANIZATION'), ('Keystone Pipeline', 'ORGANIZATION'), ('Boehner', 'PERSON'), ('America', 'GPE'), ('United States', 'GPE'), ('Keystone Pipeline', 'ORGANIZATION'), ('Listen', 'PERSON'), ('Keystone', 'ORGANIZATION'), ('Boehner', 'PERSON'), ('State Department', 'ORGANIZATION'), ('Democratic', 'ORGANIZATION'), ('GOP', 'ORGANIZATION'), ('Obama', 'PERSON'), ('White House', 'FACILITY')]

Заблокировано вместе, читаемость сильная. Неплохо!

Вводное руководство по программному обеспечению/загрузка изображений в компьютер: Canon EOS 800D

14

Вводное руководство по программному

обеспечению/загрузка изображений в компьютер

В этой главе рассматриваются следующие вопросы.

Обзор программного обеспечения для камер EOS

Загрузка и установка программного обеспечения

на компьютер

Загрузка и просмотр инструкций по эксплуатации

программного обеспечения (PDF-файлы)

Загрузка изображений из камеры в компьютер

473

Вводное руководство по программному

обеспечению

Обзор программного обеспечения

В этом разделе приводятся общие сведения о различных програм-

мных приложениях для камер EOS. Для загрузки и установки про-

граммного обеспечения требуется подключение к Интернету.

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

EOS Utility

Когда камера подключена к компьютеру, программа EOS Utility

позволяет передавать снятые камерой фотографии и видеофильмы

в компьютер. С помощью этой программы можно также задавать

различные настройки камеры и производить удаленную съемку

с компьютера, подключенного к камере. Кроме того, можно копи-

ровать на карту фоновую музыку, например образцы музыки EOS*.

* Фоновую музыку можно использовать как звуковую дорожку для альбома видео-

фрагментов, видеофильма или слайд-шоу, воспроизводимых с помощью камеры.

Digital Photo Professional

Это программное обеспечение рекомендуется пользователям,

снимающим изображения RAW. Можно просматривать, редак-

тировать и печатать изображения RAW и JPEG.

* Между версиями, устанавливаемые на 64- и 32-разрядные компьютеры,

имеются некоторые функциональные различия.

Picture Style Editor

Позволяет редактировать стили изображений, а также создавать

и сохранять оригинальные файлы стилей изображений. Данное

программное обеспечение предназначено для пользователей,

обладающих достаточным опытом обработки изображений.

474

Вводное руководство по программному обеспечению

Загрузка и установка программного обеспечения

1 Загрузите программное обеспечение.

Подключитесь к Интернету с компьютера и перейдите

на указанный ниже веб-сайт Canon.

www.canon.com/icpd

Выберите страну или регион проживания и загрузите

программное обеспечение.

Распакуйте его на компьютере.

Для Windows: щелкните отображаемый файл установщика,

чтобы запустить его.

Для Macintosh: создается и отображается файл DMG. Для

запуска установщика выполните указанные

ниже шаги.

(1) Дважды щелкните мышью файл DMG.

На рабочем столе появляются значок накопителя

и файл установщика.

Если файл установщика не появился, для его отоб-

ражения дважды щелкните значок накопителя.

(2) Дважды щелкните мышью файл установщика.

Установщик запускается.

2 Для установки следуйте инструкциям, выводимым

на экран.

475

Не подключайте камеру к компьютеру до установки программного

обеспечения. В противном случае программное обеспечение

будет установлено неправильно.

Даже если на компьютер установлена предыдущая версия програм-

много обеспечения, установите новейшую версию в соответствии

с приведенной ниже процедурой. (Предыдущая версия будет пере-

записана).

Загрузка и просмотр инструкций

по эксплуатации программного

обеспечения (PDF-файлы)

Для загрузки инструкций по эксплуатации программного обеспече-

ния (PDF-файлы) требуется подключение к Интернету. Загрузка без

подключения к Интернету невозможна.

1 Загрузите инструкции по эксплуатации программного

обеспечения (PDF-файлы).

Подключитесь к Интернету и перейдите на указанный ниже

веб-сайт Canon.

www.canon.com/icpd

2 Ознакомьтесь с инструкциями по эксплуатации

программного обеспечения (PDF-файлы).

Дважды щелкните загруженную инструкцию по эксплуатации

(PDF-файл), чтобы открыть ее.

Для просмотра инструкций по эксплуатации (PDF-файлов)

требуется программа Adobe Acrobat Reader DC или другое

средство просмотра Adobe PDF (рекомендуется новейшая

версия).

Программу Adobe Acrobat Reader DC можно бесплатно

загрузить из Интернета.

Сведения о порядке использования программного обеспе-

чения для просмотра PDF-файлов см. в Справке этого ПО.

476

Загрузка изображений в компьютер

При помощи программного обеспечения EOS можно загрузить

изображения из камеры в компьютер. Существует два способа

загрузки изображений.

Загрузка изображений из камеры, подключенной

к компьютеру

Установите программное

1

обеспечение (стр. 475).

Подключите камеру

2

к компьютеру с помощью

интерфейсного кабеля

(продается отдельно).

Подключите кабель к цифровому

разъему камеры, так чтобы значок

<D> на разъеме кабеля был обра-

щен к передней панели камеры.

Подключите разъем кабеля к USB-

разъему компьютера.

С помощью программы EOS

3

Utility перенесите изображения.

См. инструкцию по эксплуатации

EOS Utility.

477

Когда установлено соединение по Wi-Fi, подключение камеры к компь-

ютеру с помощью интерфейсного кабеля невозможно.

Загрузка изображений в компьютер

Загрузка изображений с помощью

устройства чтения карт памяти

Для загрузки изображений в компьютер можно использовать

устройство чтения карт памяти.

Установите программное

1

обеспечение

(стр. 475).

Вставьте карту памяти

2

в устройство чтения карт

памяти.

Для загрузки таких

3

изображений используйте

программу Digital Photo

Professional.

См. инструкцию по эксплуатации

Digital Photo Professional.

478

При загрузке изображений из камеры в компьютер при помощи устрой-

ства чтения карт памяти без программного обеспечения EOS скопируйте

папку DCIM с карты в компьютер.

Алфавитный указатель

Числовой указатель

H

1280×720 (видео)…………………….275

HD (видео)………..…………………… 275

1920×1080 (видео)………………..…275

HDMI …………………….………….…… 348

640×480 (видео)……..………….……275

HDMI CEC…………..………….……… 358

HDR контрового света.…………… 102

A

HDR худож. ярко …………..……….. 108

A (Интеллектуальный

HDR худож.масло ……………..…… 109

сценарный режим) …..………….……78

HDR худож.рельеф….………..…… 109

Adobe RGB……….…………….………181

HDR худож.станд. ….……..……….. 108

AE с приоритетом выдержки ……186

AE с приоритетом диафрагмы

……188

I

AEB (Автоматический

IPB (Компактный)…….………….. 276

брекетинг экспозиции) ……..197, 390

IPB (стандартный)….………….…… 276

AI FOCUS (AI Focus AF)……….….120

J

AI SERVO (AI Servo AF) …..81, 120

JPEG ………………….………….……… 147

ALL-I ………………..…………….…..8, 284

Auto Lighting Optimizer

M

(Автокоррекция яркости) …..…….169

M (Ручная экспозиция) …………… 191

Av (AE с приоритетом

MF (Ручная фокусировка)

….. 140, 259

диафрагмы) ……………….…………..188

MOV ……….………….…………….…… 284

B

MP4 ……..…………..…………………… 275

BULB (длительная ручная

N

выдержка) .………….…………….……193

NFC………..………….…………….…… 433

D

NTSC.…………….………….…… 275, 434

DPOF (Цифровой формат

O

управления печатью) ………………366

ONE SHOT

E

(Покадровый AF) ..………….. 119, 245

Err (коды ошибок) ……….…………..453

P

exFAT……………….…………..…..70, 277

P (Программная AE) ……….……… 184

F

PAL..……………………….……… 275, 434

FEB (брекетинг экспозиции

Q

вспышки) ……………….……………….214

Full High-Definition

Q (Быстрая настройка)…….…….. 59

(Full HD) (видеозапись)…….263, 275

Q (Быстрое

управление) …….. 111, 237, 274, 346

G

R

GPS …………..………….……………….434

RAW ………………….. 36, 146, 147, 149

RAW+JPEG……….…….. 146, 147, 149

479

Алфавитный указатель

S

Ручная фокусировка

(MF) ….………….…………. 140, 259

SD, SDHC, SDXC, карты 9 Карты

Слежение за цветом …… 129, 393

Servo AF

Точка AF……….………….……….. 123

AI Servo (AI Servo AF)…..……..120

Фокусировка двойного

Servo (Servo AF)………..………..246

крестового типа ………..……….. 130

Видео Servo AF..…………….…..303

Фокусировка

sRGB ……….………………………..…..181

крестового типа ………..……….. 130

Автофокусировка 9 AF

T

Фокусировка 9 AF

Tv (AE с приоритетом

Автофокусировка

выдержки) …….………….…………….186

по одной точке ……………………. 123

W

Адаптер сетевого питания ……… 408

Wi-Fi ……………….………….………….433

Аккумулятор ………..……….. 36, 38, 44

Аксессуары …….………………………... 3

А

Альбом видеофрагментов .…….. 291

Автовоспроизведение……………..354

Аттенюатор ……………..……………. 302

Автоматический выбор

(AF)..…………….………….……..123, 128

Б

Автоотключение …..…………...43, 313

Баланс белого (ББ)……..…………. 163

Автоповорот вертикально

Брекетинг ……..…………….…….. 168

ориентированных

Коррекция …………………….…… 167

изображений…………………………..322

Персональный……………….….. 166

Приоритет атмосферы (

Q

)

….. 164

Автосброс …….………….…………….318

Приоритет белого (Qw)……. 164

Автоспуск………….………….………..143

Ручной………….………….……….. 165

Автофокусировка

Блокировка зеркала ……….. 200, 395

Автоматический

Большая зона AF………….…….. 123

выбор точки AF ……………123, 128

Выбор точки AF……….………….125

Брекетинг ………………..…….. 168, 197

Группы AF………….…………..…..131

Бытовая электросеть …………….. 408

Датчик автофокусировки…..130

В

Звуковой сигнал………..………..312

Изменение композиции..……….81

Видеозаписи …………………………. 263

Красная подсветка

Автоэкспозиция ………..……….. 264

точки AF.………….………….……..121

Альбом видеофрагментов….. 291

Лампа помощи AF………..121, 392

Аттенюатор ……..………….…….. 302

Метод AF .………….………..247, 304

Быстрое управление.…………. 274

Несфокусированное

Видео Servo AF ………..……….. 303

изображение ………….51, 139, 254

Видеосъёмка HDR …………….. 279

Объекты,

Видеофрагменты ………..…….. 291

сложные для AF………..139, 254

Внешний микрофон………..….. 301

Рамка области

Длительность записи …..…….. 276

Запись звука …………………… 301

автофокусировки…..123, 128, 248

Интервальная съемка….…….. 284

Режим AF….………….……..118, 244

Метод

Режим выбора области

автофокусировки…….….. 274, 304

автофокусировки

……123, 124, 127

480

Алфавитный указатель

Метод сжатия данных………….276

Режим съемки

Микрофон ……………………264, 301

со вспышкой ………………. 214, 215

Отображение информации

……270

Ручной режим ……..……… 215, 228

Отображение сетки………….….305

Синхронизация

Параметры видеозаписи ……..275

(по 1 или по 2 шторке) ……….. 215

Просмотр ………..…………..348, 350

Управление вспышкой

Просмотр видеозаписей……348

(настройки функции) ……….. 211

Просмотр на телевизоре

…..348, 357

Фиксация FE ……….…………….. 207

Размер файла ……..………….….276

Вспышка (Вспышка Speedlite)

Ручная экспозиция.……………..268

Встроенная вспышка …………. 204

Таймер замера экспозиции

…..304

Уменьшение эффекта

Удаление первого и последнего

«красных глаз» …………..……… 205

фрагментов видеозаписи

………..352

Эффективный диапазон

Фиксация AE……………….………199

действия..………….……………. 204

Фильтр ветра ..…………..………..302

Вспышка (вспышка Speedlite)

Художественные фильтры …..280

Без вспышки ………….…….. 83, 112

Цифровое увеличение

Контакты синхронизации

при видеосъемке …………….….278

вспышки ……………………….…….. 32

Цифровой IS для видео …..….307

Вспышки других

Частота кадров……………………275

производителей ….………….……… 210

Видеозапись HDR …………………..279

Встроенная вспышка……………… 204

Видеофрагменты ……………………291

Встроенное ПО ………….………….. 435

Видоискатель…………………….……..37

Выбор эффекта съемки …………… 88

Диоптрийная регулировка……..51

Выделение

Обнаружение мерцания ………..75

переэкспонированных зон .…….. 377

Сетка..…………….………….………..74

Электронный уровень…….……..72

Высокое (качество записи

изображений) …………….……………. 36

Внешняя вспышка Speedlite 9

Вспышка

Высокое разрешение (качество

записи изображений)

…………. 36, 383

Возможная длительность

записи (видео) ….…………….………276

Высокоскоростная

серийная съемка ………….……….. 141

Возможное количество

снимков ……….………….44, 147, 231

Г

Воспроизведение ..…………..115, 333

Гистограмма (Яркость/RGB) …… 377

Восстановление в камере

Горячий башмак…….…………. 32, 209

настроек по умолчанию ……….….323

Громкость

Время просмотра

(просмотр видеозаписи)………. 351

изображения………….……………….313

Групповое фото……….……………. 96

Вспышка (Speedlite)

Беспроводная.…………..………..215

Д

Внешние вспышки..………….….209

Данные для удаления пыли.…… 329

Выдержка синхронизации

Дата/время ….………….……………. 45

вспышки…..………….……………..210

Компенсация экспозиции

Дети ..………….…………….…………. 97

вспышки…..………….……………..206

Динамик….………….…………….…… 350

Пользовательские функции

…..216

481

Алфавитный указатель

Диоптрийная регулировка…………51

И

Диск …………………….…………...32, 183

Изменение размера

Диск установки режима …………….34

изображения …….…………….…….. 383

Дистанционный

Изображения

переключатель ………..……………..413

Автовоспроизведение.……….. 354

Длительные

Автоповорот……………………. 322

ручные выдержки………….……..193

Время просмотра .…………… 313

Выделение

Доступность функций

переэкспонированных зон….. 377

взависимости

Гистограмма …………….……….. 377

от режима съемки ….…………..…..416

Защита изображений ..……….. 360

Е

Индексный режим ……………… 334

Индикация точки AF….……….. 376

Еда ..…………….………….……………...98

Информация о съемке…….. 373

Ж

Нумерация файлов…………. 317

ЖК-экран……………….……………30, 42

Оценка …………………….……….. 341

Вызов меню……….………….61, 428

Поворот вручную……………….. 340

Настройка угла………..………42, 82

Просмотр ………………… 115, 333

Настройка яркости……………314

Просмотр

Просмотр

на телевизоре…………….. 348, 357

изображения …………..…..115, 333

Режим перехода

Электронный уровень .………….72

(просмотр изображений)…….. 335

Слайд-шоу …………………….….. 354

ЖК-экран с переменным

Стирание….………….……………. 363

углом ………………………………….42, 82

Увеличение изображений…… 337

З

Условия поиска…….……………. 344

Заказ печати (DPOF)………..……..366

Имитация конечного

изображения …….……………. 236, 271

Зарядка ……..………….…………….…..36

Имя файла ……….…………….…….. 317

Зарядное устройство …………..38, 36

Индексный режим………………….. 334

Защита изображений..…………….360

Индикатор величины

Звук (Звуковой сигнал) …………312

экспозиции ……………………………… 37

Звуковое подтверждение

Индикатор обращения к карте

…… 40

при касании ………………….………..312

Индикатор фокусировки…..………. 78

Зернистый Ч……….107, 241, 381

Интеллектуальный

Значки сцены…………………..235, 267

сценарный режим…..………….……. 78

Значок O………………………..…….19

Интервальная съемка ………..….. 284

Значок 3 ………..…………….…….19

Информация

Значок предупреждения ………….395

о параметрах съемки …………….. 373

Зональная автофокусировка.…..123

Информация

об авторских правах………..…….. 320

482

Алфавитный указатель

К

Меню………………..………….…………. 61

Мое Меню ….………….………….. 399

Кабель……….…………….357, 427, 477

Настройки …………..………….. 428

Кадрирование (изображений)

…..385

Порядок работы………….……….. 62

Камера

Уровень отображения .…………. 53

Восстановление в камере

Метка оценки………………………. 341

настроек по умолчанию……….323

Микрофон…………..………….……… 264

Как правильно держать

Мое Меню.………….………….……… 399

камеру………….…………….……..51

Монохромные

Смазывание из-за

изображения …………….. 88, 156, 160

вибрации камеры………………..200

Мягкий фокус ………….. 107, 241, 381

Карты…………………….…..8, 31, 39, 69

Напоминание

Н

о карте памяти ……………………..40

Наглазник ……………….………….. 413

Низкоуровневое

форматирование……….………….70

Нажатие наполовину …………….. 52

Переключатель

Настройка фотокниги ………….. 370

защиты от записи………..………..39

Настройки беспроводной связи

….. 433

Поиск и устранение

Настройки по умолчанию ……….. 323

неполадок…..…………….…….41, 70

Насыщенность ….………….……….. 159

Форматирование…………………..69

Низкое разрешение (качество

Карты Eye-Fi ……………………….….414

записи изображений)

…………. 36, 383

Карты памяти 9 Карты

Низкоскоростная

Качество записи изображений

……146

серийная съемка ………….……….. 141

Кнопка DISP……….32, 71, 313, 326

Нормальное (качество

Кнопка INFO………115, 233, 270, 406

записи изображений)….……………. 36

Кнопка спуска затвора ..………….52

Ночной портрет…………………… 100

Количество пикселов …………..….146

Ночные сцены …….………….. 100, 101

Компенсация экспозиции……..….196

О

Контрастность ………………..………159

Обозначения …………………….…….. 32

Коррекция дифракции …………….176

Объектив ……….………….………. 31, 49

Коррекция искажений ……………..175

Коррекция дифракции……..…. 176

Коррекция периферийной

Коррекция искажений ………… 175

освещенности………….………….….173

Коррекция периферийной

Коррекция хроматической

освещенности …………….…… 173

аберрации………………..…………....175

Коррекция хроматической

аберрации…………………………. 175

Крупный план ……..………….………..93

Фиксатор объектива …………….. 50

Крышка окуляра ……………..35, 413

Отображение меню …………..…….. 55

Л

Оценка ……………….…………….…… 341

Летнее время.…………….………….47

Оценочный замер …………..……… 194

Очистка

М

(датчик изображения)……… 327, 331

Макросъемка …………………….……..93

Очистка датчика

Максимальная длина серии …..

147, 148

изображения ……………….. 327, 331

483

Алфавитный указатель

П

Р

Пейзаж ……………………….…….92, 156

Размер файла…..…….. 147, 276, 374

Переключатель режима

Размытый фон …….………….………. 86

фокусировки ………..…….49, 140, 259

Разъем USB (цифровой).……….. 477

Перемещение пальца по экрану

….67

Рамка области

Переходник постоянного тока ….408

автофокусировки …….. 123, 128, 248

Персональный баланс белого

…..166

Расширение файла ……………….. 319

Питание

Режим замера экспозиции .…….. 194

Автоотключение…………….313

Режим отображения

Бытовая электросеть.………….408

одного изображения.………….….. 115

Возможное количество

Режим перехода ……………………. 335

снимков……….…………44, 147, 231

Режим работы затвора

….. 36, 141, 143

Зарядка……………………….……….36

Режимы базовой зоны……..………. 34

Информация

об аккумуляторе …..…………….407

Режимы съемки ………………………. 34

Уровень заряда

Av (AE с приоритетом

аккумулятора.………………..44, 407

диафрагмы) ………………………. 188

Эффективная емкость

M (Ручная экспозиция)……….. 191

аккумулятора.………….………….407

P (Программная AE) ………….. 184

Tv (AE с приоритетом

Плавная зона…….………….………..250

выдержки) …………………………. 186

Поворот (изображение) ……322, 340

A (Интеллектуальный

Покадровая съемка ………………..141

сценарный режим) ………………. 78

Полное нажатие ……….……………...52

7 (Без вспышки)……………... 83

Пользовательские функции……..388

Cворческий

автоматический)………….……. 84

Портрет…………..………….…….91, 156

2(Портрет)…..…………….………. 91

Последовательная

3(Пейзаж)…..…………….………. 92

(нумерация файлов) ……………….317

8 (Специальная сцена)

Потеря детализации в светах

……377

C (Дети)…..………….…………. 97

Предотвращение появления

P (Еда) ……………………….….. 98

следов пыли на изображениях

…..327

F

(Съемка с рук ночью)

….. 101

Предупреждение

G

(HDR контрового света)

…. 102

о температуре …………………261, 309

4 (Крупный план) ..………….….. 93

Прикрытие диафрагмы..………….190

5 (Спорт) ….………….…………… 94

Приоритет оттенков .…………….391

8 (Специальная сцена) …… 95

qрупповое фото)…….….. 96

Приоритет светов…………….…..391

x (Свет свечей)………………. 99

Программная AE …………………….184

6 (Ночной портрет)……….. 100

Программное обеспечение ……..474

v

(Художественные фильтры)

…. 105

Просмотр глубины резкости…….190

G (Зернистый Ч/Б) ………… 107

Просмотр на телевизоре

…..348, 357

W (Мягкий фокус) ………….. 107

Профиль ICC……………………..…..181

X

(Эффект рыбьего глаза) ….

107

484

Алфавитный указатель

Z (Эффект Акварель) …….108

Среднее разрешение (качество

H

(Эффект игруш. камеры)

…..108

записи изображений)…….….. 383, 36

c

(Эффект миниатюры)

….108

Стиль изображения…. 155, 158, 161

A (HDR худож.станд.) …..108

Съемка в режиме

B (HDR худож. ярко) …….108

Live View ………………………….. 82, 229

C (HDR худож.масло)……109

Быстрое управление………….. 237

Возможное количество

D

(HDR худож.рельеф)

…..109

снимков …..………….…………….. 231

Режимы творческой зоны ………….35

Лицо+Слежение ……………… 248

Резкость …….………….……………….159

Отображение информации

….. 233

Рекомендации по съемке ………….58

Отображение сетки ……….…… 243

Ремень ………….…………….………..35

Плавная зона….………….……… 250

Режим AF ……………………….. 244

Руководство по поиску

Ручная фокусировка (MF)…... 259

и устранению неполадок ………...438

Соотношение сторон………….. 150

Руководство по функциям …………57

Таймер замера экспозиции

….. 243

Ручная фокусировка

Фокус по 1 точке AF …………… 252

(MF) ………………………………..140, 259

Художественные фильтры

…… 239

Ручная экспозиция …………..191, 268

Съемка при касании ………….…… 257

Ручной выбор (точка AF) …………125

Съемка с беспроводной

Ручной сброс ………………….………319

вспышкой…..……………………….. 217

Съемка с дистанционным

С

управлением …….…………………… 409

C (Творческий авторежим)………84

Съемка с подавлением

Свет свечей …………..………….……..99

мерцания……………………….……… 179

Сенсорное управление……………..66

Съемка с рук ночью.………….…… 101

Сенсорный экран……..………..66, 338

Т

Сепия (Монохромное)………..88, 160

Таймер автоспуска

Серийная съемка …….……………..141

10 c или 2 с …………………….. 143

Сетка …………..………….…74, 243, 305

Таймер замера экспозиции

…. 243, 304

Синхронизация

Творческий авторежим….…………. 84

(по 1/2 шторке) ………..………….….215

ТВ-стандарт ……..…….. 275, 357, 434

Синхронизация

по второй шторке ……………………215

Тонирование (монохромное) ….. 160

Синхронизация

Точечный замер …….………….…… 194

по первой шторке …..……………….215

У

Слайд-шоу ………….……………….354

Увеличение изображений

….. 259, 337

Смена программы ….………….……185

Угол обзора ……………….……………. 50

Создание/выбор папки…….………315

Удаление изображений ………….. 363

Соотношение сторон ….…………..150

Указания по режимам съемки 56

Состав системы…..…………….……426

Уменьшение эффекта

Специальная сцена (SCN).………..95

«красных глаз»………………….…… 205

Спорт….………….…………….………….94

Уменьшенное отображение……. 334

Спуск затвора без карты….………312

485

Алфавитный указатель

Уровень записи звука…….………..302

Чувствительность 9

Чувствительность ISO

Уровень отображения ….…………...53

Чувствительность

Ф

ISO ……..………………….. 152, 266, 269

Фиксация AE…………….………….199

Автоматическая настройка

Фиксация FE………….…………..…..207

(ISO авто)…………..………….….. 153

Расширение диапазона ISO

…. 390

Фиксация фокусировки ……….…….81

Установка максимального

Фильтр ветра ..…………….………….302

значения для режима

Фокусировка двойного

ISO авто ………….………….…….. 154

крестового типа ……………….……..130

Ш

Фокусировка крестового типа

……130

Шаг изменения экспозиции…….. 390

Фокусировочная точка

(точка AF)………….………….……..123

Штативное гнездо..………….………. 33

Фоновая музыка ..………….………..356

Шумоподавление

Высокие значения

Форматирование

чувствительности ISO….…….. 170

(инициализация карты памяти)

…..69

Длительные выдержки…….. 171

Функция Bluetooth ……………409, 433

Шумоподавление при

Х

высоких значениях ISO ……….. 170

Художественные

Шумоподавление при

фильтры…………...105, 239, 280, 380

длительной выдержке…………. 171

Художественные фильтры

Шумоподавление при

для видеозаписей ……….………….280

серийной съемке ……………….….. 170

Сон………………….…………….…..281

Э

Старые фильмы……………..…..281

Воспоминание.…………….……..282

Экран съемки….………….…………… 53

Резкий Ч/Б ……….………….……..282

Электронный уровень ……………… 72

Эффект миниатюры видео

…..282

Эффект Акварель……. 108, 241, 382

Ц

Эффект игрушечной

камеры …………..………. 108, 242, 382

Цветовая температура…..………..163

Эффект

Цветовое пространство …………..181

«Масляные краски»………… 241, 382

Цветовой тон ..………….….98, 99, 159

Эффект

Центрально-взвешенный

миниатюры……….…….. 108, 242, 382

замер…………………….…………….195

Эффект миниатюры видео ….. 282

Цифровой разъем ……….……………32

Эффект «Рыбий глаз» ……. 241, 381

Ч

Эффект рыбьего глаза…………… 107

Часовой пояс…..……………………….45

Эффект фильтра ………..….. 157, 160

Частичный замер …………….…..194

Я

Частота кадров…………………..…..275

Язык………….…………..………….……. 48

Черно-белые

изображения………….…..88, 156, 160

486

CANON INC.

30-2 Shimomaruko 3-chome, Ohta-ku, Tokyo 146-8501, Япония

Европа, Африка и Ближний Восток

CANON EUROPA N.V.

Bovenkerkerweg 59, 1185 XB Amstelveen, Нидерланды

Адрес местного представительства Canon см. в Гарантийном талоне

или на веб-сайте www.canon-europe.com/Support

Поставщиком продукта и сопровождающей его гарантии в европейских

странах является Canon Europa N.V.

Цифровая камера EOS 800D

Страна происхождения: см. упаковочную коробку.

Дата производства:

дата производства этого изделия указана на упаковочной коробке.

Импортер для Белоруссии

Контактная информация указана на упаковочной коробке.

Храните в безопасном месте.

«Canon Inc.» 3-30-2 Шимомаруко, Охта-ку, Токио, 146-8501, Япония

ООО «Канон Ру» Россия, 109028, Москва, Серебряническая

набережная, 29, этаж 8

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

2016 г. За информацией о совместимости с любыми изделиями, выпущен-

ными после этой даты, обращайтесь в сервисный центр Canon. Новейшую

версию Инструкции по эксплуатации см. на веб-сайте Canon.

CEL-SW9ZA200 © CANON INC. 2016

Оглавление

Топ 10 инструкций

Другие инструкции

Понравилась статья? Поделить с друзьями:

А вот и еще интересные новости по теме:

  • Мануалы к играм sega
  • Национальное руководство по глаукоме егорова
  • Купить фемикапс инструкция по применению отзывы цена отзывы
  • Kia sportage техническое руководство по ремонту 2009
  • Система управления зданием руководство

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии