Подключение плк 160 по usb

Обновлено: 03.07.2024

На работе я и мои коллеги по отделу в основном занимаемся комплексной автоматизацией тепловых пунктов, которые отличаются друг от друга обычно лишь количественно. Соответственно и программы однотипны. Поэтому я поставил перед собой задачу написать универсальную шаблонную программу, позволяющую с минимальными усилиями подстроить себя под любой тепловой пункт. Это задачу я в принципе выполнил, хотя и сейчас постоянно добавляю и изменяю что-то в коде, а иногда и вовсе переписываю заново. Одним из пунктов универсализации было создание конфигурации ПЛК, которую не пришлось бы изменять (возможно, лишь удалять лишнее для сокращения размера программы и увеличения скорости работы интерфейсов). Конфигурирование ПЛК в CoDeSys - это довольно нудное и долгое занятие: много кликаний мышью (с тачпадом – вообще беда), невозможность копировать данные из конфигураций других программ, невозможность выделения и копирования/удаления/редактирования более одного модуля. В общем, неплохо сделать конфигурацию один раз и не вспоминать о ней.

Немного справки. Конфигурация ПЛК располагается во вкладке Ресурсы и позволяет (для ОВЕН ПЛК 150 и ПЛК 160): — организовать доступ к периферии программируемого логического контроллера и настроить её (дискретные и аналоговые входы/выходы, цифровые интерфейсы RS-485 и RS-232, кнопки на панели, зуммер); — создать архиватор данных и модуль статистики; — установить ограничения времени цикла ПЛК.

Базовая конфигурация создается одновременно с проектом, когда вы выбираете ее в настройках целевой платформы. В любой момент можно добавлять в конфигурацию ПЛК дополнительные модули и редактировать существующие. Редактирование заключается в изменении параметров модуля, написании комментариев к нему, а также в именовании переменных, входящих в его состав. Все эти действия для каждого модуля совершать не обязательно, в частности, именовать переменные – к ним можно обращаться по прямым адресам (начинающимся со знака %). Переменные, задаваемые в конфигурации, являются глобальными! Варианты работы с переменными конфигуратора такие:
— Объявить глобальные переменные в соответствующем разделе и связать их с прямыми адресами. Неудобство заключается в том, что при добавлении или удалении модулей эти адреса смещаются. Хотя есть и достоинства. Подробнее читайте в документации (ссылка на скачивание - внизу).
— Задать в самом конфигураторе (нажав два раза мышкой на буквы AT) имена вроде: temperaturaPodachi , puskNasosa1 , alarmOfInverterOfFifthPumpOfColdWaterSupply и подобные, связанные с процессом, контролируемым ПЛК.
— Но для поставленной задачи универсализации удобнее всего дать переменным в конфигураторе следующие имена:
PLC_DIn – дискретный вход n ПЛК,
PLC_DOn – дискретный выход n ПЛК,
PLC_AIn – аналоговый вход n ПЛК,
PLC_AOn – аналоговый выход n ПЛК,
MVA1_AIn – аналоговый вход n первого прибора МВА8,
MDVV_DI_PORT – маска дискретных входов прибора МДВВ (обращение идет к битам, т.е. MDVV_DI_PORT.n - дискретный вход (n+1)),
TRM32_1 – первый вход прибора ТРМ32,
и т.д. в таком духе. После этого создать промежуточные глобальные и/или локальные переменные (теперь спокойно можно использовать массивы и структуры) с именами, несущими информацию о технологических процессах (например, температуры, давления, пуски/работы/аварии частотных преобразователей, сигналы c ПИД-регулятора на открытие/закрытие КЗР и т.д.), и связать их с переменными из конфигурации ПЛК.

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

Овен ПЛК160 Page 1

нием ПК дополнительного IP- адреса , входящего в подсеть контроллера .

Изменение IP- адреса контроллера возможно при помощи команды «SetIP»,

подаваемой в режиме « ПЛК - Браузер (PLC-Browser)» ( подробно о работе в режиме

« ПЛК Браузер (PLC-Browser)» см . приложение Ж ). При этом связь с контроллером

должна быть предварительно установлена через интерфейс Debug RS-232 или

Задание дополнительного IP- адреса ПК осуществляется в свойствах протоко -

ла TCP/IP в настройках с етевого окружения MS Windows. При изготовлении устанав -

ливается IP- адрес контроллера 10.0.6.10. Поэтому необходимо присвоить ПК допол -

нительный IP- адрес в подсети 10.0.6, отличный от адреса 10.0.6.10; маска подсети

Подробно процесс присвоения дополнительного IP адреса для ПК приведен в

Для установки связи по интерфейсу «Tcp/Ip» следует на ПК установить драй -

вер , создающий виртуальный СОМ - порт , через который будут передаваться данные

в ПО CoDeSys. Драйвер виртуального СОМ - порта ( для операционной системы

Windows 2000 и более поздних ) находится на компакт - диске , входящем в комплект

поставки . Для установки драйвера необходимо подключить включенный ПЛК к USB-

порту ПК стандартным кабелем типа А - В ( в комплект поставки не входит ). После от -

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

повторное отключение и подключение кабеля USB- порта для повторной инициали -

Для настройки интерфейса соединения с контроллером следует :

1) Выбрать команду « Онлайн | Параметры связи (Online|Communication

parameters)» главного меню ПО CoDeSy s. Откроется окно «Communica-

2) Нажать кнопку «New» окна «Communication parameters». Откроется окно

«Communication paramet ers: New Channel» ( см . рисунок 3.16, б ). В этом

На работе я и мои коллеги по отделу в основном занимаемся комплексной автоматизацией тепловых пунктов, которые отличаются друг от друга обычно лишь количественно. Соответственно и программы однотипны. Поэтому я поставил перед собой задачу написать универсальную шаблонную программу, позволяющую с минимальными усилиями подстроить себя под любой тепловой пункт. Это задачу я в принципе выполнил, хотя и сейчас постоянно добавляю и изменяю что-то в коде, а иногда и вовсе переписываю заново. Одним из пунктов универсализации было создание конфигурации ПЛК, которую не пришлось бы изменять (возможно, лишь удалять лишнее для сокращения размера программы и увеличения скорости работы интерфейсов). Конфигурирование ПЛК в CoDeSys - это довольно нудное и долгое занятие: много кликаний мышью (с тачпадом – вообще беда), невозможность копировать данные из конфигураций других программ, невозможность выделения и копирования/удаления/редактирования более одного модуля. В общем, неплохо сделать конфигурацию один раз и не вспоминать о ней.

Немного справки. Конфигурация ПЛК располагается во вкладке Ресурсы и позволяет (для ОВЕН ПЛК 150 и ПЛК 160): — организовать доступ к периферии программируемого логического контроллера и настроить её (дискретные и аналоговые входы/выходы, цифровые интерфейсы RS-485 и RS-232, кнопки на панели, зуммер); — создать архиватор данных и модуль статистики; — установить ограничения времени цикла ПЛК.

Базовая конфигурация создается одновременно с проектом, когда вы выбираете ее в настройках целевой платформы. В любой момент можно добавлять в конфигурацию ПЛК дополнительные модули и редактировать существующие. Редактирование заключается в изменении параметров модуля, написании комментариев к нему, а также в именовании переменных, входящих в его состав. Все эти действия для каждого модуля совершать не обязательно, в частности, именовать переменные – к ним можно обращаться по прямым адресам (начинающимся со знака %). Переменные, задаваемые в конфигурации, являются глобальными! Варианты работы с переменными конфигуратора такие:
— Объявить глобальные переменные в соответствующем разделе и связать их с прямыми адресами. Неудобство заключается в том, что при добавлении или удалении модулей эти адреса смещаются. Хотя есть и достоинства. Подробнее читайте в документации (ссылка на скачивание - внизу).
— Задать в самом конфигураторе (нажав два раза мышкой на буквы AT) имена вроде: temperaturaPodachi , puskNasosa1 , alarmOfInverterOfFifthPumpOfColdWaterSupply и подобные, связанные с процессом, контролируемым ПЛК.
— Но для поставленной задачи универсализации удобнее всего дать переменным в конфигураторе следующие имена:
PLC_DIn – дискретный вход n ПЛК,
PLC_DOn – дискретный выход n ПЛК,
PLC_AIn – аналоговый вход n ПЛК,
PLC_AOn – аналоговый выход n ПЛК,
MVA1_AIn – аналоговый вход n первого прибора МВА8,
MDVV_DI_PORT – маска дискретных входов прибора МДВВ (обращение идет к битам, т.е. MDVV_DI_PORT.n - дискретный вход (n+1)),
TRM32_1 – первый вход прибора ТРМ32,
и т.д. в таком духе. После этого создать промежуточные глобальные и/или локальные переменные (теперь спокойно можно использовать массивы и структуры) с именами, несущими информацию о технологических процессах (например, температуры, давления, пуски/работы/аварии частотных преобразователей, сигналы c ПИД-регулятора на открытие/закрытие КЗР и т.д.), и связать их с переменными из конфигурации ПЛК.

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

hello_world__110.jpg

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

Справочная информация

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

  • Диагностика
  • Определение неисправности
  • Выбор метода ремонта
  • Поиск запчастей
  • Устранение дефекта
  • Настройка

Неисправности

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

  • не включается
  • не корректно работает какой-то узел (блок)
  • периодически (иногда) что-то происходит

О прошивках

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

На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.

Схемы аппаратуры

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

Справочники

На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).

Marking (маркировка) - обозначение на электронных компонентах

Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.

Package (корпус) - вид корпуса электронного компонента

При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

  • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
  • SOT-89 - пластковый корпус для поверхностного монтажа
  • SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
  • TO-220 - тип корпуса для монтажа (пайки) в отверстия
  • SOP (SOIC, SO) - миниатюрные корпуса для поверхностного монтажа (SMD)
  • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
  • BGA (Ball Grid Array) - корпус для монтажа выводов на шарики из припоя

Краткие сокращения

При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

Сокращение Краткое описание
LEDLight Emitting Diode - Светодиод (Светоизлучающий диод)
MOSFETMetal Oxide Semiconductor Field Effect Transistor - Полевой транзистор с МОП структурой затвора
EEPROMElectrically Erasable Programmable Read-Only Memory - Электрически стираемая память
eMMCembedded Multimedia Memory Card - Встроенная мультимедийная карта памяти
LCDLiquid Crystal Display - Жидкокристаллический дисплей (экран)
SCLSerial Clock - Шина интерфейса I2C для передачи тактового сигнала
SDASerial Data - Шина интерфейса I2C для обмена данными
ICSPIn-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
IIC, I2CInter-Integrated Circuit - Двухпроводный интерфейс обмена данными между микросхемами
PCBPrinted Circuit Board - Печатная плата
PWMPulse Width Modulation - Широтно-импульсная модуляция
SPISerial Peripheral Interface Protocol - Протокол последовательного периферийного интерфейса
USBUniversal Serial Bus - Универсальная последовательная шина
DMADirect Memory Access - Модуль для считывания и записи RAM без задействования процессора
ACAlternating Current - Переменный ток
DCDirect Current - Постоянный ток
FMFrequency Modulation - Частотная модуляция (ЧМ)
AFCAutomatic Frequency Control - Автоматическое управление частотой

Частые вопросы

Как мне дополнить свой вопрос по теме Возьня вокруг ПЛК ОВЕН?

После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

Кто отвечает в форуме на вопросы ?

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

Как найти нужную информацию по форуму ?

Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

По каким еще маркам можно спросить ?

По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

Какие еще файлы я смогу здесь скачать ?

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

Полезные ссылки

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

Тема медленно но верно перетекает с реверса чужого софта в разработку своего. Сегодня наткнулся на забавные грабли при связи ПЛК и панели СП270. Панель master, ПЛК slave. При передаче float панель отображала его некорректно - абсолютно левые значения без явной закономерности . Читал доки, смотрел примеры, так и не понял в чём дело. Начал рыть инет, в первую очередь форум OWEN. Оказалось разрабы перепутали порядок передачи байтов в DWORD, для исправления проблемы существует абсолютно не очевидная галочка в настройках проекта. За одно обнаружил что для того чтобы отобразить число со знаками после запятой можно передать в панель int, а потом переместить запятую форматом отображения(причём это рекомендованный метод).

Продолжаем тренироваться на "кошечках"

imag0973__478.jpg

sh1_133.jpg

И так, сегодня состоялся первый пуск большой железяки под управлением моей программы. Ничего не взорвалось, но и работой это назвать сложно: как только значение ШИМ для нагревателя становилось меньше 100%(то есть появлялась импульсная помеха) сразу же начинали фиксироваться ложные срабатывания различных датчиков подключённых на дискретные входы. Сейчас посмотрел - время фильтрации входных сигналов по умолчанию выставлено 1 мс, подозреваю что надо поднять хотя бы до 200мс. сразу же начинали фиксироваться ложные срабатывания различных датчиков подключённых на дискретные входы. Вчера я припёрся на объект только с потрохами шкафа и отвёрткой, без ноута. Сегодня посмотрел по какой ошибке происходила остановка работы на самом деле: оказалось дело было в кратковременных сбоях связи между ПЛК и МВА, что конечно ни есть хорошо, но может случаться и программа не должна реагировать на это событие так параноидально.
А ещё выяснилось что я забыл дать команду на включение вентилятора охлаждения на симисторной сборке, обошлось без последствий.

У коллег нашёлся ПЛК-100 очень давно снятый с какой то установки из за нестабильной работы. Проблема оказалась в дохлом кондёре во внутреннем питальнике. Попутно удалось рассмотреть конструкцию. В качестве основного проца используется Atmel at91rm9200. Пользовательская программа живёт очевидно в AT45DB321D. Где живёт retain память пока не понятно(на CPU модуле DA7 - стабилизатор, DA2 - трансивер RS-485, больше ничего похожего на память нету). На плате I/O и плате индикации живёт ещё по одному PIC16F689.

imag1029_147.jpg

imag1028__201.jpg

Опять меня постигли приключения с ПЛК-100, и опять с Retain памятью. Сохранения новых значений в Retain происходит не часто, поэтому о том что оно не работает я узнаю только когда технологи производства сообщают что внесённые в настройки изменения откатились до предыдущих после отключения питания. Дело в том что если скорость разряда АКБ достигает какого то придельного значения то сохранение данных не происходит(слава богу что хоть старые данные не портит). В прошлом году, на одном из ПЛК-100, проблема решилась приклёпыванием внешнего АКБ. Сейчас проблемы начались уже на двух экземплярах - и с внешним АКБ и с тем в котором был исправный родной АКБ.
Мой внешний АКБ умер полностью, скорее всего где то внутри обрыв.
В том экземпляре что был 2015 года выпуска родной АКБ просаживается с 4.18в до 2.6в меньше чем за секунду.
Буду готовить две новые внешние банки, но на этот раз обрамлю их платками защиты от телефонных АКБ чтобы не допускать разряда ниже 2.5в.

Штатной команды принудительного сохранения Retain не оказалось. На форумах нашёлся следующий лайвхак: при необходимости принудительно сохранить Retain, отрубается внешнее питание и пока контроллер пашет от АКБ исполняемая программа загоняется в бесконечный цикл, из за этого срабатывает соответствующий вотчдог, среда исполнения делает попытку перезапуска, но обнаруживает что контроллер на батарейном питании и завершает работу с сохранением Retain. Соответственно надо чтоб АКБ тянул нормальную работу контроллера хотя бы пару секунд.

Читайте также: