Showing posts with label оборудование. Show all posts
Showing posts with label оборудование. Show all posts

December 1, 2020

Мы замкнули шину K-Bus

Чтобы проверить информацию из истории про K-Bus-Interbus, коллега А по моей просьбе взял BK9050, подключил к нему модуль дискретных входов-выходов KL1859... и не стал подключать терминальный модуль.

Все испытания проводились в целях испытания. Ни один из модулей не пострадал. Животные участие не принимали.
Не пытайтесь повторить, потеряете гарантию!

Сканируем… Устройства на шине недоступны. Проверяем индикацию коплера. На картинке выше виден единственный красный индикатор. Документация говорит, что это "K-Bus ERR", то есть ошибка шины K-Bus. В данном случае отсутствует терминальный модуль.

Вспоминаем результаты препарации из предыдущей статьи и замыкаем шину:

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

November 26, 2020

Компактные сервомодули ELM72xx

Линейка сервотерминалов расширилась до 16 ампер. ELM72xx предлагает прикоснуться к блестящему металическому корпусу компактного сервотерминала.

Изображение: Beckhoff Automation

Сервотерминалы устанавливаются на дин-рейке вместе с другими EtherCAT терминалами в общей линейке. Металлический корпус лучше рассеивает тепло. Кабели подключаются через разъемы: должно быть удобнее.

  • ELM7211 — 1 двигатель до 4.5 A (Irms).
  • ELM7212 — 2 канала по 4.5 A (Irms).
  • ELM722— один на 8 A (Irms).
  • ELM722— два по 8 A (Irms).
  • ELM723— тот самый единственный на 16 A (Irms).

Модули расчитаны на двигатели AM8100. Питание 48 вольт; 24В на половине мощности. Питание и обратная связь в одном кабеле — однокабельная технология. Можно подключить внешний тормоз, обратную связь (энкодер или резольвер) и внешний тормозной резистор. Цифровые входа поддерживают функцию Probe Unit.

TwinSAFE логика обеспечивает безопасность через простые функции STO/SS1 (Safe Torque Off / Safe Stop 1) поверх EtherCAT (FSoE, Safety over EtherCAT) или в рамках комплекса безопасности движения Safe Motion (IEC 61800-5-2 / ГОСТ Р МЭК 61800-5-2-2015).

Остается вопрос о рассеивании тепла: нужны ли опциональные вентиляторы для обдува блестящего металлического зада?

October 29, 2020

Блоки питания Бекхофф

В прайсе Бекхоффа появились блоки питания. Официальное описание находится в разделе ввода-вывода:
beckhoff.com → Products → I/O → Power supplies.

PS3031-2440-0000 (Изображение: Beckhoff Automation)

Изображение: Beckhoff Automation

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

  • PS1000 — небольшие решения (2,5–20 ампер).
  • PS2000 — стандартные решения (5–20 ампер).
  • PS3000 — повышенная нагрузка (10–40 ампер).

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


1 фазное напряжение

Номинальное входное напряжение — переменное 100..240 вольт. Допускается диапазон 85..264 В. Предельный диапазон от 80 до 300 вольт может использоваться только при плохих входных линиях питания и при прочих просадках-выбросах. Максимально допустимое входное напряжение может достигать 300 вольт, но не дольше 500 миллисекунд.

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


3 фазное напряжение

Номинальное входное напряжение — 3 фазное, переменное 380..480 вольт. Допускается диапазон 323..576 В. На старте рабочего режима предусмотрен гистерезис: блок питания включается при 305 вольтах на входе и отключается при 275 В. При включении происходит задержка номинального напряжения на выходе в 500 / 600 мс. Зависит от входного напряжение 400 / 480 В.


Выход `DC-OK`

Релейный контакт `DC-OK` работает также как индикатор `DC-OK LED`. Контакт отражает состояние питания на выходе блока питания.

  • Контакт замыкается, когда выходное напряжение достигает 90% уставки.
  • Контакт размыкается, когда выходное напряжение проседает ниже 90% уставки.
  • Игнорируются просадки напряжения короче 1 миллисекунды. Контакт остается замкнутым.
  • Просадки длиннее 1 миллисекунды размыкают контакт на 250 миллисекунд.


Вход выключения (Shut-down Input)

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

Вход способен работать в трех режимах:

  • Перемычка. Замыкает контакты, когда необходимо отключить питание. В рабочем режиме перемычка отсутствует, то есть разомкнута. Сюда подойдет кнопка или реле.
  • Открытый коллектор. Управление током.
  • Внешнее питание. Рабочий режим, когда на контактах отключения больше 4 вольт. Выход БП отключается, когда напряжение на контактах падает ниже 1 вольта.


Объединение нескольких БП

Обязательно использовать полностью идентичные модели блоков питания.

Объединение блоков питания ухудшает параметры выходного тока: ток утечки, эл-магнитные наводки, пусковой ток, гармоники, и тому подобное.

Общая рекомендация: не объединять несколько БП.


Последовательное подключение

Повышаем выходное напряжение. Можно соединять несколько БП вплоть до 150В. Начиная с 60 В требуется повышенная осторожность и соблюдение мер безопасности. Не допускать обратного напряжения в генераторных режимах (ЭДС самоиндукции, return voltage immunity, Back-E.M.F.).


Параллельное подключение

Получаем большую мощность, то есть больший максимальный ток. Можно резервировать блоки питания, разделяя между ними нагрузку. Схемы резервирования 1+1 или N+1. Оба варианта требует включения диодных сборок или других буферных устройств.

Рекомендуется оставить заводские настройки для всех БП или согласовать выходное напряжение с точностью ±100 милливольт. Читайте инструкцию!

По умолчанию в блоке питания установлен одиночный режим (Single Use). БП работает в одиночном режиме, если джампер или переключатель `Parallel Use` отсутствуют.

В параллельном режиме (Parallel Mode) блок питания допускает разброс выходного напряжения до 2,5 вольт. В одиночном режиме разброс меньше, он равен 100 милливольтам. Характеристика жестче в одиночном режиме и мягче в параллельном режиме. На холостом ходу в параллельном режиме выходное напряжение на 4% больше напряжения при номинальной нагрузке. Так сделано для лучшей балансировки блоков питания между собой.

August 11, 2020

История K-Bus или INTERBUS

Несерьезные действия временами приводят к серьезным или по крайней мере полезным результатам. Как-то раз в проекте пропала конечная, защитная крышка EtherCAT шины. Чтобы как-то компенсировать стоимость крышки, да и скорее не стоимость, а время доставки, в голову коллеги явилась мысль заменить ее на терминал от K-Bus. Интуиция подсказала, что металлические контакты установлены не просто так, а несут какое-то назначение. В EtherCAT-крышке у нас только интеллектуальная пластмасса, а она, как известно, изолятор и ток не проводит. Модуль KL9010 был вскрыт, препарирован и свет увидели его потроха.


Внутри у него...


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

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


История


Я покопался в своем архиве и вытащил из-под груды ссылок занятный, но давно заброшенный блог Gadgets Inside с гикпроном внутренностей терминалов. Там есть бекхофф и там есть интересные заметки про шину K-bus.

Beckhoff KL4032, 2 channel, 12 bit, -10..+10V модуль выходов.
Beckhoff KL3062, 2 channel, 12 bit, 0..10V модуль входов.
KL is the “older” series of Beckhoff’s I/O modules, it incorporates the K-bus connection interface, which is basically an INTERBUS interface, but Beckhoff names it K-Bus (Koppler-Bus).
[...]
Beckhoff BK200A. Probably this is the INTERBUS protocol IC, but has a “Beckhoff brand”.
[...]
On the back side there is only one bigger (44 pins) IC named Beckhoff BK200A. This must be the INTERBUS protocol IC, just named in a “Beckhoff way”.
KL — это более старая [пост 2013 года] серия Бекхоффских модулей входов-выход. Модули построены вокруг К-bus интерфейса, который фактически является интерфейсом INTERBUS, но Бекхофф называет его K-Bus (Koppler-Bus).

Внутри модуля установлена микросхема Beckhoff BK200A. Вероятно, это обычный интерфейс протокола INTERBUS, но под брэндом Бекхофф.

С обратной стороны [это уже про другой терминал] платы находится только одна большая 44-пиновая микросхема, обозначенная как Beckhoff BK200A... дальше аналогично предыдущей выдержке.

Поверим паталогоанатому на слово и на выходные запишемся в межавтобусный клуб Interbus Club, а по дороге в клуб, полистаем брошюру INTERBUS Basics (interbus club).


Вступаем в клуб


Из брошюры узнаем, что:
This method is more efficient than the message-based method for a large number of devices. The summation frame method ensures fixed data lengths for devices and therefore constant transmission times. The determinism of this method is essential for the accurate calculation of the response time.
Этот метод более эффективен чем отправка отдельных сообщений большому количеству устройств. Использование метода объединения фреймов [в один большой] обеспечивает фиксированную длину данных от устройств и следовательно гарантирует постоянное [предсказуемое] время передачи [фрейма]. Предсказуемость данного метода — это основа точного подсчета времени отклика.

Знакомая философия, не так ли? Картинка для наглядности:

От 485-го к витым парам Ethernet. Протоколы мигрируют туда же. Полезно иногда оглянуться на историю.


Так что там с перемычкой?


Согласно описанию INTERBUS последний модуль должен замкнуть контакты номер 5 и 9, чтобы кольцо шины замкнулось. Что видимо и происходит в конечном модуле. Вот картинка из документации Бекхофф на коплер BK4000 (Interbus Bus Coupler):
Ну и напоследок, терминатор — поглотитель энергии (обычно резистор) на конце длинной линии, сопротивление которого равно волновому сопротивлению данной линии (Википедия). Здесь же обычный джампер или перемычка.

August 6, 2020

Вебинар. EtherCAT терминалы энергоэффективности

Медлен спустимся и обозрим измерительные модули на основе вебинара EtherCAT Terminals for energy management. Ничего что с небольшим опозданием — вебинар все еще доступен в архиве, хотя и прошел в далеком 2018 году.

Изображение: Beckhoff Automation

Энергоэффективность


Энергоэффективность — это не только про доставку электричества, но и про:
  • экономия энергии = экономия денежных средств.
  • Доставка энергии = надежность и непрерывность производства.
  • Производительность промышленности = повышение оборота.
  • Управление ресурсами = повышение прибыли.

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

Изображение: Beckhoff Automation

Электроток


Модули объеденены в шесть групп по типу измеряемой среды (см. картинку выше). Затем модули объеденены в три функциональные группы:
  • измерение (power measurement);
  • мониторинг (power monitoring);
  • эксплуатация (maintenance).

Эксплуатация


Это самые простые и дешевые терминалы: EL3423, EL3483. Они не производят измерения, а только сигнализируют о нормальном или ошибочном состоянии линии электропитания (трехфазной в том числе). Также модули выдают отчет о качестве питания, в виде собирательного параметра Power Quality Factor, скомпилированного из нескольких разных измерений.


Мониторинг


EL3443 — более расширенные возможности по сравнению с предыдущей моделью EL3403.
EL3453 — быстрее, чем EL3413 и лучше гальванически развязан (690В, до 60А в течении одной секунды).

Появились новые функции, опять-таки относительно EL3413 / EL3403:
  • данные обновляются чаще, до 10мс (50Гц);
  • обсчитывается больше гармоник (до 63);
  • полностью конфигурируемые PDO;
  • статистика измерения: мин-макс-среднее;
  • детектирование выбросов тока и напряжения;
  • измерение cos(𝜑) — коэффициент мощности (power factor);
  • измерение угла фаз;
  • сообщает об авариях: перекос фаз, утечки токов, и т. п.
  • КЗ: около одной микросекунды для тока и напряжения.


Измерение


Все очень просто: EL37xx + TF3650. Основной акцент на новую (теперь в 2020 г. уже нет) библиотеку TF3650 | TC3 Power Monitoring.


Контроль и мониторинг питания


TF3650 | TC3 Power Monitoring — это ПЛК библиотека для обработки "сырых" данных, полученных от модуля, для одно- и трехфазных систем. Краткое содержание:
  • ФБ для расчета RMS тока, напряжения и мощности.
  • Вывод мгновенных или усредненных, минимальных и максимальных значений измеренных величин.
  • Частоты, спектры, гармноники

May 24, 2019

Контроль состояния сервотерминалов EL7201

Что если силовое питание не подано, ось не активна и вдруг разорвать сигнал обратной связи? Что если оторвать провод силового питания? Как будет реагировать NC? Возможно ли вообще отследить такой тип аварий и как сбросить ошибку? Копну глубже в контроль состояния компактных сервоусилителей EL72xx, и начну с обратной связи.
Изображение: Beckhoff Automation

Обратная связь


Сервоось недееспособна, если отсутствует сигнал обратной связи. Необходимо регулярно вызывать функцию Axis.ReadStatus(), чтобы понять, что с ней происходит. В момент потери сигнала будет выставлен флаг Axis.Status.DriveDeviceError.

Так как работа сервомотора без обратной связи невозможна, самостоятельно этот флаг не сбросится и не "рассосется". После устранения причины аварии, ошибку нужно будет сбросить с помощью стандартной функции MC_Reset. Но это всё на случай, если ПЛК и сервомодули нельзя обесточивать на время ремонта, обслуживания или замены оборудования. Безопаснее выключить и включить снова.


Силовое питание


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

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

Слово состояния сервомодуля (6010:10 — Statusword) содержит два бита, отвечающие за ошибки и аварии. Это бит #3 Fault и бит #7 Warning: стр. 143, Index 6010 DRV Inputs. Поле Fault отвечает за аварии. Этот бит транслируется подсистемой NC в поле состояния оси DriveDeviceError. Именно его мы отслеживали в главе про обратную связь. Потеря обратной связи — это авария, но(!) отсутствие силового питания — это еще не авария, а просто ситуация требующая особого внимания. Поэтому — Achtung, т. е. Warning.

Флаг Warning также транслируется в NC, но он не доступен через параметры состояния NC-оси. Причина этого для меня не понятна, но я попробую добраться и до этого флага.

Начнем с того, что Statusword передается в PDO сервомодуля. Затем, оно автоматически линкуется с NC параметрами Axis.Drive.Inputs.In.[nState1..nState2], попутно разбиваясь на старший и младший байты. И всё. Далее эти байты используются где-то внутри подсистемы NC и недоступны разработчику.

Чтобы получить доступ к слову состояния, можно непосредственно постучаться в сервомодуль, то есть прочитать параметры через функции CANopen. Можно и по другому. Если немного погуглить (а это более качественный способ поиска информации по справочной системе), то обнаруживается интересная таблица с индексами:

TwinCAT Connectivity → ADS-Device-Documentation → ADS Interface NC → Specification "Index group" for NC ( ID [0x01...0xFF] ) → Specification Drive → "Index offset" specification for cyclic drive process data (Index group 0x7300 + ID).

Из таблицы не совсем понятно зачем всё это необходимо, но судя по названиям...


Читаем другие параметры


Читать будем через ADS. Для чтения параметров, перечисленных в "таблице", мы воспользуемся функцией ADSREAD из библиотеки системных функций Tc2_System. Для запуска функции понадобятся:
  • NETID — пустая строка, если читаем с того же локального ПЛК.
  • PORT — это стандартный порт NC-Task SAF = 501.
  • IDXGRP — индекс группы из таблицы = 0x7300 + ID, где ID - это номер оси NC; нумерация осей начинается с единицы, то есть первая ось получит индекс = 16#7301.
  • IDXOFFS — смещение из таблицы = 16#80.

В таблице доступ к параметру 16#80 помечен как "Write", но все относительно и зависит от точки зрения, поэтому я буду из него "Read". Осталось решить куда прочитать данные. По идее необходима некая структура данных, но есть ли она в стандартных библиотеках мне не известно, поэтому я создал парочку своих собственных DUT. Выглядят они почти как в той самой таблице из справочной системы:

TYPE EL7201_DriveInfoEx :
STRUCT
    nInData1    : DINT;
    nInData2    : DINT;
    StatusWord  : EL7201_StatusWord; // Axis.Drive.Inputs.In.[nState1..nState2]
    nStatus3    : BYTE;
    nStatus4    : BYTE;
    // optional : extended drive info, 40 bytes
    nInData3    : DINT;
    nInData4    : DINT;
    nInData5    : DINT;
    nInData6    : DINT;
    nStatus5    : BYTE;
    nStatus6    : BYTE;
    nStatus7    : BYTE;
    nStatus8    : BYTE;
    Reserved1   : DINT;
    Reserved2   : DINT;
END_STRUCT
END_TYPE

Для удобства использования сразу же разбиваю слово состояния на структуру из битовых полей:

TYPE EL7201_StatusWord  :
STRUCT
    ReadyToSwitchOn     : BIT;
    SwitchedOn          : BIT;
    OperationEnable     : BIT;
    Fault               : BIT;
    Reserved4           : BIT;
    QuickStop           : BIT; // inverse: true when switched off
    SwitchedOnDisabled  : BIT;
    Warning             : BIT; // Ex.: raise when Power Supply lost
    Reserved8           : BIT;
    Reserved9           : BIT;
    TxPDOToggle         : BIT; // selection/deselection via 0x8010:01
    InternalLimitActive : BIT;
    TargetValueIgnored  : BIT;
    Reserved13          : BIT;
    Reserved14          : BIT;
    Reserved15          : BIT;
END_STRUCT
END_TYPE

В таблице есть указание что структура EL7201_DriveInfoEx может быть длинной как в 12 байт, так и расширенная, длинною в 40 байт. В моем случае необходима расширенная структура. Остается прочитать данные:

axis               : AXIS_REF;
axDriveStatus      : EL7201_DriveInfoEx;
AdsReadDriveStatus : ADSREAD;

[...]

AdsReadDriveStatus(
    NETID    := '', 
    PORT     := 501,
    IDXGRP   := 16#7300 + axis.NcToPlc.AxisId,
    IDXOFFS  := 16#80,
    LEN      := SIZEOF(axDriveStatus), 
    DESTADDR := ADR(axDriveStatus), 
    READ     := TRUE);
 
IF NOT AdsReadDriveStatus.Busy THEN
    AdsReadDriveStatus(READ := FALSE);
END_IF


Примечание: Fault и Warning работают и соответственно устанавливаются/сбрасываются независимо друг от друга: один флаг никак не влияет на другой. Warning устанавливается и сбрасывается автоматически, поэтому нет способа повлиять на его состояние.


Уровень силового питания


Значение силового питания (12-50 Вольт) можно прочитать напрямую из сервомодуля. Адрес сервомодуля можно получить с помощью функции MC_ReadDriveAddress и структуры ST_DriveAddress:

Изображение: Beckhoff Automation

Значение уровня постоянно обновляется в параметре CoE 9010:12 — DC link voltage. Значение дается в милливольтах, поэтому 24 вольтам будет соответствовать значение 23932. Почему не 24000? Потому что — не точно.

Следующий кусок кода прочитает значение напряжения прямо из сервомодуля:

dcLinkValue : DINT;
AdsReadCoE  : ADSREAD;

[...]

AdsReadCoE(
    NETID    := '169.254.23.39.4.1', 
    PORT     := 1002,
    IDXGRP   := 16#F302,
    IDXOFFS  := 16#90100012,
    LEN      := SIZEOF(dcLinkValue), 
    DESTADDR := ADR(dcLinkValue), 
    READ     := TRUE);
 
IF NOT AdsReadCoE.Busy THEN
    AdsReadCoE(READ := FALSE);
END_IF


NETID — адрес EtherCAT мастера.
PORT — номер порта устройства, в данном случае — это сервомодуль EL7201.
IDXGRP — индекс группы сервиса ADS, отвечающего за работу с CANopen SDO.
IDXOFFS — индекс и смещение регистра CAN. Для упрощения в примере выше индекс не вычисляется, так как в шестнадцатеричной системе его легко сформировать вручную 9010-0012. Если интересно, чуть более подробно написано в посте Работа с CANopen из C# программы.

Когда пример готов, подключаю цифровой осциллограф к переменной dcLinkValue и получаю график "зарядки-разрядки". Здесь питание контроллера и силовое питание сервомодулей подается от одного 24 вольтового блока питания. Поэтому "потолок" на графике ~ 24000, а сервомодуль работает с половинной мощностью:

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

October 8, 2018

Сторожевой пес для CX8090

Сторожевой таймер (или watchdog, или вотчдог для краткости в дальнейшем) нужен в критических ситуациях. В щите сбора данных — может быть, а вот в станке, я ставлю его необходимость под сомнение. Тем не менее, вопросы типа "боюсь, что программа зависнет" или более самоуверенные — "что, если зависнет контроллер", задают постоянно. В CX8090 такая функция есть.

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

Все испытания проводились на новом ПЛК CX8090, произведенном 2 августа 2018 года.

История библиотеки


Я беру с полки CD-диск c официальным дистрибутивом TwinCAT 2 за 2013 год и открываю исходный код библиотеки TcSystemCX80xx.lib, предназначенной специально для CX80xx. Функции вотчдога в ней еще нет.

Диск за 2014 год — функции все еще нет. Версия библиотеки 1.0.2. Да собственно чего тянуть, функция была добавлена только в версии 1.0.3, но на диск попасть не успела или просто тестировалась какое-то время. Вот комментарий разработчика:

2014/02/17 | 1.0.3 | V2.11.0 (Build 2239) | ICH | adding F_CX80xxSetWatchdog


Мне, к сожалению, не удалось найти старые библиотеки на сайте Бекхофф, хотя я бы с удовольствием покопался в истории промышленного софтостроения. Так что, конкретно указать на версию TwinCAT я не могу. Начиная с версии TwinCAT 2.11 (build 2249) внезапно появляется версия 1.0.6, которая до сих пор лежит на сайте Бекхофф. И это не самая последняя версия, так как с последними дистрибутивами TwinCAT 2 распространяется версия библиотеки 1.0.7.

За все это время функциональный блок вотчдога не изменялся ни разу.


Как спустить сторожевого пса


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

FUNCTION F_CX80xxSetWatchdog : BYTE
VAR_INPUT
    tTimeOut : TIME; (* Watchdog TimeOut Time *)
    bEnable  : BOOL; (* Enable / Disable Watchdog *)
END_VAR

Это функция. Она не требует инстанциирования как функциональный блок. Просто регулярно вызывайте ее с (bEnable = TRUE), когда нужна функция сторожа; или вызовите блок единственный раз с (bEnable = FALSE), если нужно отключить таймер. Другими словами, блок требует регулярного вызова каждый цикл или по крайней мере не реже, чем это задано в параметре tTimeOut.
По идее функции должны быть сосредоточены сами в себе и ни коим образом не влиять на глобальное окружение. В данном же случае, такое применение уместно, так как: (а) функция всегда существует в единственном экземпляре и всегда требует ввода двух обязательных параметров; (б) другие программные единицы TwinCAT 2 так не умеют. В TwinCAT 3 мы могли бы попробовать шаблон Singleton.
На входе функции всего два параметра: (1) время реакции tTimeOut типа TIME, который может принимать значения в диапазоне от 500 миллисекунд (не меньше) до 127 секунд (не больше); (2) и параметр активациия/деактивации таймера bEnable типа BOOL. Куда уж проще.

После вызова функции, с целью активации сторожевого таймера (bEnable = TRUE), сразу же, в этом же цикле, начиная со следующей строчки после вызова функции, начинается контроль выполнения программы. Теперь, если программа зависнет и цикл не завершится в отведенное ему время, или если за цикл произойдет критическая ошибка, или сработает точка останова(!), если вы просто забудете регулярно вызывать функцию вотчдога — таймер начнет свой отсчет...

...и через заданное время tTimeOut — ПЛК перезагрузится.

После перезагрузки, ПЛК сделает вид, что ничего не произошло. Он будет считать, что загрузился штатным способом и запустится так, как было задано в его текущей системной конфигурации. Если у вас активирован загрузочный проект (boot project), то ПЛК-программа стартует автоматически, запустит вотчдог и, если ваша программа продолжит зависать, то контроллеру наступит бесконечный уроборос: зависание, перезагрузка, автозагрузка программы, зависание...

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

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

(* return enable state *)
nRetVal.0           := bEnabled;
nRetVal.1           := bMinWDTimeAct;
nRetVal.2           := bMaxWDTimeAct;
F_CX80xxSetWatchdog := nRetVal;

Далее номера битов в байте выхода:
  • бит 0 — установлен, когда таймер запущен.
  • бит 1 — установлен, когда время таймаута меньше или равно 500 миллисекундам.
  • бит 2 — установлен, когда время таймаута больше или равно 127 секунд 500 мс.


Что внутри будильника?


Заглянем в недра тундры. Вотчдог хранит время таймаута в 500 миллисекундных интервалах. 127 секунд и 500 миллисекунд или 127 500 — это как раз 255 раз по 500. Затем это значение сдвигается на восемь бит "влево" в старший байт, а в младшем байте выставляются биты разрешения или запрещения.

Выбор таких временных интервалов в 500 мс возможно связан с "медленным" и неточным таймером вотчдога в архитектуре ARM9, который непосредственно встроен в железо. Медленный он в целях энергосбережения и потому что работает сам по себе, обходится без "точных кварцев" и других дорогостоящих электронных компонентов. Это очень топорное и упрощенное объяснение, но его вполне достаточно для текущего уровня поста.

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

Интересно, что вотчдог отключается не каким-то там специальным битом (его установкой или сбросом), а установкой максимально возможного значения временного интервала = 127с 500мс. Именно это происходит, когда мы вызываем функцию со сброшенным флагом разрешения (bEnable = FALSE).


Практика


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

PROGRAM MAIN
VAR
    state, cnt : INT;
    z : int := -1;
END_VAR

(*[...]*)

F_CX80xxSetWatchdog(tTimeOut := T#3s, bEnable := TRUE);

CASE state OF
0:
    F_CX8090_LED_WD(eMode := eLED_RED_OFF);
    F_CX8090_LED_ERR(eMode := eLED_RED_OFF);

    z := z + 1;
    state := 10;
    
10: (* breakpoint *)
    ;
    
20: (* zero division *)
    z := state / z;
    
30: (* inf. loop *)
    F_CX8090_LED_WD(eMode := eLED_RED_FLASHING_200ms);
    WHILE TRUE DO
        ;
    END_WHILE
    F_CX8090_LED_WD(eMode := eLED_RED_OFF);
END_CASE

cnt := cnt + 1;


Помигаем светодиодом на прощанье


На корпусе CX8090 есть индикатор WD (=Watchdog), который в документации заявлен как не используемый в прошивке для CX8080 / CX809x. Тем не менее у нас есть механизм для управления этими лампами: функция F_CX8090_LED_WD управляет светодиодом WD, F_CX8090_LED_ERR — управляет светодиодом ERR (для ошибок). Доступны несколько режимов свечения и мигания с различной скважностью: покопайтесь в типах данных библиотеки.

Касательно отключения индикаторов, то оба индикатора двухцветные. Поэтому не важно какой цвет индикатора выключать: красный (eLED_RED_OFF) или зеленый (eLED_GREEN_OFF), отключается сразу весь светодиод, то есть оба цвета свечения пропадают одновременно.

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

F_CX8090_LED_WD(eMode := eLED_RED_FLASHING_200ms);

WHILE itHaveToContinueThen DO
    ; (* что-то делаем в цикле *)
END_WHILE

F_CX8090_LED_WD(eMode := eLED_RED_OFF);


И еще раз, постарайтесь не использовать сторожевой таймер.

October 4, 2018

Веб-конфигуратор для CX8090

Последнее время Бекхофф встраивает в свои контроллеры веб-интерфейс для начальной настройки ПЛК. Это хорошо, потому что через ADS-роутер можно кое-как выяснить IP и AmsNetId -адреса ПЛК, но для запуска FTP-сервера или сервиса удаленного доступа — этого уже мало. В умный по сути коплер CX8090 просто некуда воткнуть святую троицу монитор-клавиатура-мышь. Разъемы для них не предусмотрены и не поддерживаются. Надо изгаляться... надо было, так как теперь все это делается через веб-интерфейс. По крайней мере первый шаг, который, как известно, чего-то-там для человечества.

Находим контроллер через TC2 System Manager или роутер TwinCAT 3: иконка TC3 в системном лотке (traybar) → Router → Edit Routes → TwinCAT Static Routes. В колонке Address видим IP-адресс ПЛК. Открываем любимый браузер. Для разнообразия, и чтобы показать, что никакой разницы нет, я взял нелюбимый в народе Edge.

Вводим в адресную строку: IP-адресс-ПЛК/config. Логин по умолчанию: webguest, пароль: 1.



Есть на что посмотреть и с чем поработать. И сразу же, чтобы не забыть потом, включаем удаленный доступ для работы с ПЛК через CERHost. А дальше уже не проблема запустить FTP-сервер, "залить" русские шрифты и поправить настройки в реестре Windows CE.


August 29, 2018

Вебинар. Интеграция полевых устройств HART через FDT

Не прошло и полугода с момента, когда 10 апреля этого года Бенджамин Брунц и Лауриц Ветцель провели вебинар о подключении устройств HART через FDT. В том числе был небольшой практикум, где в живую показали "как это работает".

Незаметно для нас всё это встроено в TwinCAT. Вы с этим могли встречаться, если были замешаны в перерабатывающей промышленности (Processing Industry, это где одни вещества превращают в другие, а не где рабочие обязаны работать сверх нормы). Как раз в этой промышленности активно используются полевые устройства HART. Небольшую вводную я давал в описании синих, холодных и многобезопасных модулей.

HART — Highway Adressable Remote Transducer. Аналоговый сигнал 4..20мА (рекомендация NAMUR NE43). Широко используется в перерабатывающей промышленности. Позволяет совмещать аналог и цифру, то есть одновременно передавать пропорциональный аналоговый сигнал (амплитуда) и транслировать дискретные цифровые данные (с помощью FSK = Frequency Shift Keying) полнодуплексно и в обе стороны.

DTM — Device Type Manager. Чем-то похож на драйвер устройства. Обеспечивает двусторонний обмен данными между полевыми устройствами (датчиками там всякими) и ПЛК. Он же отвечает за конфигурацию устройства.

FDT — Field Device Tool. Определяет интерфейс и обеспечивает общение между DTM и прикладным уровнем программного обеспечения.

Для работы понадобится TwinCAT 3 build 4022 или новее. Для более старых версий TwinCAT необходимо установить HART-плагин, который можно получить, обратившись в тех. поддержку Бекхофф; ключевые слова: FDT контейнер + Beckhoff ComDTM (PACTware).

Преимущества:
  • Можно использовать существующие кабели рассчитанные на 4..20мА.
  • Двусторонняя, полнодуплексная связь устройств.
  • Возможность простого конфигурирования устройства через DTM.
  • Диагностика устройства и расширенная информация поступающая от устройства (если поддерживает).

Недостатки:
  • Требует дополнительных усилий на изучение.
  • Требуется дополнительное оборудование: соответствующее полевое устройство + модуль расширения (terminal).
  • Низкоскоростная передача: 500-800 миллисекунд на цикл. Правда скорость здесь не особо важна, так как главная цель — это целостность данных и полноценный контроль за целостностью данных.

Бекхофф официально входит в FDT группу, поэтому в прайс Бекхоффа входят EtherCAT терминалы с поддержкой HART: EL3182, ELX3181, ELX4181. Если интересуетесь подробностями HART — почитайте документацию этих модулей, там много интересного. Например, кратко, что из себя представляет модуль EL3182 — это 2-канальный аналоговый вход, 16 бит, ±107%, NAMUR NE43, HART; опционально настраивается через HART-плагин, есть FDT контейнер при использовании Beckhoff ComDTM.


Практическая часть


После сканирования шины и боксов, HART терминалы будут выглядеть как обычные модули расширения (например, как обычные аналоговые входа). Различия проявятся в расширенных настройках — в правой части экрана появятся две новые закладки HART и FDT.


FDT позволяет привязать DTM-драйвер устройства к заданному каналу. HART — настроить настройки. Все выполняется очень просто: сканирование, перетаскивание, выбор параметров из списка. Сложности это не представляет, и хорошо показано на вебинаре (знание английского не требуется).

Циклическая и синхронная передача данных в ПЛК-программу настраивается в закладке HART. Мы можем выбрать активный канал (Active Channel), затем перейти во вкладку отображения измеряемых величин (Measured Values Display) и поставить там галку —  циклически передавать данные (Cyclic Process Data). В конфигурации, рядом с веткой Ch.1 AI Inputs, получим новую длинную ветвь — Ch.1 HART Inputs. Эта ветка содержит данные, получаемые от HART-датчика. Линкуем эти параметры с переменными ПЛК-задачи и циклически получаем свежие данные. В описании терминала EL3182, есть раздел Measured values, где все это описано.

Если есть желание получать данные от случая к случаю, то есть асинхронно и когда захочется — существует сервис ADS: IdxGrp = 0xF302; IdxOffs = код команды. Эта информация также есть в описании модуля расширения, в разделе Acyclic services.


Полный вебинар на английском языке: Integration of HART field devices via FDT.

February 18, 2018

История с крышечками

Нельзя просто так взять, и бросить контакты шины неприкрытыми. Для этого существует Bus end cap или Bus end cover — защитная крышка. По сути, это просто кусок промышленной пластмассы, защищающий контакты шины последнего модуля, но есть нюансы.

Во времена перехода от шины K-bus к шине EtherCAT (E-bus), выпускался широкий 12 миллиметровый модуль (Bus End Terminal), похожий на обычный модуль, только без электроники на борту. Заодно обратите внимание на слово Terminal:


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


Соответственно, слева-направо: EL9011, ELM9012 и ELX9012, а в конце пунктирный образец для выпиливания лобзиком и, по совместительству, схема электрическая принципиальная. Несмотря на отсутствие электроники на борту, System Manager как-то эти модули обнаруживает и добавляет в конфигурацию. Черная крышка для измерительных модулей ELM, синяя — для электропожаровзрывобезопасных модулей ELX, серая — для обычных модулей EtherCAT. Желтая крышечка TwinSAFE пока что не существует или еще не прошла сертификацию.

Внезапно, в списке продукции всплывает EL9012, которая выглядит точь-в-точь как EL9011, но если первая называется английским словом cover (укрытие), то вторая всего-лишь cap (крышечка). Какую ставить, и есть ли разница? Давайте сравним...

12-я толще: 8 мм против 5 мм одиннадцатой. Зато 11-я лучше сертифицирована: три сертификата CE, UL, Ex, а у 12-й только один CE. Так как 12-я в три раза дороже 11-й, делаем вывод, что разница в стоимости зависит только от количества пластика. Ну и последнее, 12-я закрывает весь бок терминала целиком и прячет под защиту и шину, и контакты подпитки модулей (cover for power and E-bus contacts), а EL9011 закрывает только контакты шины (cover for the E-bus contacts). Вот и вся разница. Достаточно разместить фото крышек сбоку и разница была бы понятна сразу.

По остальным защитным, разделительным и прочим крышкам можно прочитать в EL9xxx.

February 10, 2018

SLC USB 3.0 флешки

Бекхофф переходит на очень надежные SLC USB-флешки для переноса и хранения полезных данных. На чем были построены предыдущие не известно, но вариантов немного: или MLC — как в SSD, или TLC — как в бытовых флешках. По аналогии с 200x рублевыми купюрами, новые флешки выглядят так:

Изображение: Beckhoff Automation

Еще раз — SLC (single-level cells) в теории надежнее, чем MLC и TLC. Там что-то порядка 100 000 перезаписей, против 3 000 и 1 000, соответственно. А еще SLC быстрее всех.

Флешки будут с интерфейсом USB 3.0 и объемом 4, 8, 16, 32 Гб и полной совместимостью с USB 2.0 и USB 1.1. Для желающих, есть разновидность с предустановленными спасительными BST (Beckhoff Service Tool): такие же объемы, но интерфейсы только USB 3 и 2. USB 1.1 для BST не поддерживается.

А раньше были такие:

Изображение: Beckhoff Automation

Или даже такие, возможно, раздаточно-презентационные:


May 24, 2016

Облачный коплер EK9160

Теперь в станок можно установить коплер EK9160, который будет автоматически собирать сигналы и регулярно жаловаться в облако на фрезеровщика Федора, когда тот в очередной раз запорет фрезу. В конце же месяца региональный менеджер выведет на "плазму" тренд аналитики и все поймет.

  • Он тупой (я про коплер) и без мастер-контроллера во главе, зато умеет собирать сигналы и отдавать данные сразу в облако. Программированию коплер не поддается.
  • Легко конфигурируется сам и предоставляет доступ к своим модулям на шине через веб-страничку.
  • Существует возможностью сохранять и восстанавливать настройки модуля из локального файла.
  • Поддерживает EL, EP и другие подчиненные модули шины EtherCAT.
  • Отзывчивый и быстрый, со свичом для организации ромашки (сосиски, daisy chain) из роутеров.
  • Есть физическая переключалка для простой настройки IP-адреса.
  • На борту установлена микро-SD карта объемом 2 гигабайта. Сюда коплер складывает данные, когда облако не доступно.
  • Батарейки входят в комплект. Благодаря чему, всегда тикают часы реального времени (RTC). Синхронизация происходит через протокол SNTP. Питание ему все равно необходимо: батарейка подпитывает только часы.
  • К коплеру можно подключить коммуникационные модули (например, CAN и/или PROFIBUS) и построить гетерогенную сеть.
  • Push-технология избавляет от входящих подключений — это позволяет безопасно и удобно интегрировать коплер в существующую сетевую инфраструктуру. Достаточно просто подключить его к локальной сети с выходом в интернет.

Еще раз — этот коплер независим (standalone). Ему не нужны мастера и другие контроллеры. Именно поэтому его очень удобно встраивать в отдельно стоящие станки, исполнительные механизмы и другие объекты.

March 2, 2016

Конфигурирование AX2000-B900

Устаревшее оборудование выходит из строя, разработчик давно сгинул в лесах амазонки, а ЗИП внезапно требует первоначальной настройки. Источник адреса задается dip-переключателями #7-8.


1 2 3 4 5 6 7 8
------------------
0 0 0 0 0 0 0 1 – адрес выдается сервером (или роутером) через DHCP. Дипы #1..6 обязательно в OFF.
0 0 0 0 0 0 1 0 – адрес выдается BootP-сервером.
0 0 0 0 0 0 0 0 – адрес выдается RT-Ethernet мастером, т. е. контроллером.

Если адреса выдает RT-Ethernet-мастер и есть несколько подчиненных, то адреса выдаются последовательно, начиная с мастера, которому достается адрес 172.16.17.1, затем 172.16.17.2... 3... 4...

Также существует легенда, что дипами 1..6 можно непосредственно задать IP-адрес, но подтвердить это, пока не удалось.

February 2, 2016

Что такое TwinCAT?

Часто встречающийся вопрос: «Я прочитал про вас в …, но я так и не понял… что такое TwinCAT? Что нужно… могу ли я… а можно вместо этого… сколько стоит…». Далее краткое введение в оборудование Бекхофф и систему TwinCAT.


Компактные контроллеры


Компактные контроллеры (Embedded PC, серия «CX») – это полноценные персональные компьютеры с операционной системой Windows, но в компактном корпусе и с возможностью установить на дин-рейку.

Операционная система предустанавливается на заводе-изготовителе. Это может быть как обычная, десктоп версия Windows Embedded XP, Standard 7, так и компактная версия Windows CE 5, 6, Compact 7.

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

Какую ОС выбрать? Если вам не требуются возможности десктоп Windows (XP, 7, Standart и т. п.) – выбирайте Windows CE (Compact): по крайней мере она быстрее загружается.

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

Несмотря на свою компактность, эти контроллеры – полноценные персональные компьютеры, вплоть до ПК с многоядерными процессорами класса Intel Core-i7. Аналогично персональному ПК на них можно запустить базу данных, Word, Excel, интернет-браузер, воспроизведение мультимедиа и одновременно использовать возможности промышленного контроллера.


Промышленные ПК


Промышленные ПК (Industrial PC, серия «C») – полноценные персональные компьютеры в промышленном исполнении. Могут быть как совмещены с графической сенсорной панелью (Panel PC), так и выполнены отдельно, в виде небольшого блока "кирпича" (Control cabinet Industrial PC).

«Panel PC» могут быть как встраиваемые – «built-in Panel PC», так и на штанге - «Panel PC with mounting arm».

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


Графические сенсорные панели


Серия «CP» (Control Panel). По сути, представляют собой обычные мониторы в промышленном исполнении с сенсорным мультитач-управлением. Подключаются к контроллеру через DVI- и USB интерфейсы.

Специальные накладки с дополнительными кнопками, сенсорными трекпадами, USВ-разъемами и пр., позволяют организовать специализированный пульт управления. Например, для управления ЧПУ-станком.

Для увеличения расстояния "панель" – контроллер существуют специальные конвертеры-преобразователи. Специальный программный пакет CP-Link позволяет размножать изображение или строить различные системы вида «много дисплеев – один контроллер».


Модули расширения


Серии «EL», «ES». Модули (EtherCAT Terminal) ввода/вывода сигналов в/из контроллер. Серия «ES» имеет съемную верхнюю панель для удобства монтажа, но увеличивается количество контактных сопряжений.

Кроме модулей перечисленных в статье Физические интерфейсы и модули расширения, существуют специальные защищенные модули для ввода/вывода в полевых условиях (Fieldbus box, серии «EP», «EQ» - сталь, «ER» - цинк-анодированные).


Коплеры


Коплеры (серия «EK») предназначены для упаковки модулей расширения в точки сбора сигналов с последующим объединением коплеров в единую шину. Коплеры могут находиться друг от друга на значительном расстоянии и как следствие позволяют значительно увеличить длину шины.


Сервоусилители


Сервоусилители (серия «AX») для частотного регулирования и управления электродвигателями. Одно- и двухканальные. Данные сервоусилители не имеют встроенной памяти и логических устройств. Они работают только под управлением контроллеров. Из-за этого существуют повышенные требования к быстродействию и производительности контроллера в зависимости от количества «осей» управления, точности, реакции и т. п.

Для подбора комплектации обратитесь в региональную тех. поддержку (см. Disclaimer в подвале блога).


Что такое TwinCAT


TwinCAT – Total Windows Control and Automation Technology (англ.). Технология автоматизации и управления для операционной системы Microsoft Windows. Программно-аппаратный комплекс — набор технических и программных средств, работающих совместно для выполнения одной или нескольких сходных задач автоматизации.

TwinCAT работает только под операционной системой Microsoft Windows (XP, 7, 8, 8.1, 10). Непосредственный запуск TwinCAT из-под Linux, Unix, MacOS – невозможен, но можно запустить из виртуальной машины, не забывая что комплекс программно-аппаратный, т. е. существуют определенные аппаратные требования.


Зачем нужен TwinCAT


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

Как итог, разработчик и пользователь получают два устройства в одном: на одном и том же персональном компьютере могут одновременно работать как обычные программы (Word, Excel, Photoshop), так и программы, управляющие технологическим процессом. Еще проще: компьютер один, но благодаря TwinCAT одновременно получается персональный компьютер + промышленный контроллер.

Верно и обратное – промышленный контроллер с TwinCAT на борту, может работать как обычный персональный компьютер, выполняя те же самые действия и программы.

Зачем это нужно? Windows уже предоставляет множество услуг, сервисов и возможностей. Для него уже разработано множество удобных программ; он поддерживает такое количество устройство, какое не доступно для других операционных систем. Этим нужно пользоваться.

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

Удаляется TwinCAT точно также как и другие программы.

Чтобы ПК под управлением Windows мог стать полноценным промышленным контроллер, необходим райнтайм (runtime) – среда реального времени для выполнения программ технологического процесса. Рантайм – одна из основных частей Твинката.


TwinCAT 2


Твинкат бывает TwinCAT 2 и TwinCAT 3 (TwinCAT 3.1 – это то же самое, что Твинкат 3, только новее). Видимо когда-то существовал TwinCAT 1, но про него уже забыли.

Как ни странно, Твинкат 3 не лучше чем Твинкат 2, а второй не лучше, чем третий.
UPD август 2018: TwinCAT 3 лучше, чем TwinCAT 2. Третий твинкат более стабильный и более предсказуемый, меньше ест ресурсов и вообще лучше ими распоряжается.

Второй более стабильный, «отполированный», выдержанный и проверенный временем, о нем больше информации. В третьем больше интересных и полезных возможностей, удобнее и более открытая среда разработки (Microsoft Visual Studio).

В начале 2016 года мы все еще активно используем вторую версию, т. к. в третьей не все готово. UPD: в середине 2018 года мы все больше ругаемся на заморочки TwinCAT 2 и упорно пытаемся переползти на третью версию.

Рантайм второго Твинката работает только под 32-х разрядными операционными системами. Поэтому существует две версии второго Твинката: инженерная и полная.

Полная версия содержит конфигуратор контроллера (System Manager), среду разработки программ контроллера (PLC Control) и рантайм TwinCAT. Эта версия позволяет не только конфигурировать и разрабатывать, но и сделать из ПК разработчика полноценный промышленный контроллер. При условии, что устанавливается на 32-х разрядную версию Windows.

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

Инженерная версия (x64 Engineering) позволяет конфигурировать контроллер и разрабатывать программы. Она полностью бесплатна. Эта версия предназначена для 64-х разрядных версий Windows. Не имеет смысла устанавливать эту версию на контроллер. Она целиком и полностью предназначена для установки на компьютер (ноутбук) разработчика, инженера, программиста, наладчика.


TwinCAT 3

  • Единая среда разработки и конфигурирования. Встраивается в Microsoft Visual Studio. Если Visual Studio не установлена, то устанавливается оболочка Visual Studio 2010.
  • Рантайм может работать как в 32-х разрядных, так и в 64-х разрядных системах.
  • Полная версия называется «eXtended Automation Engineering (XAE)». Версия, где есть только рантайм, без среды разработчика называется «eXtended Automation Runtime (XAR)».
  • Система автоматически предложит 7-ми дневный демо-режим, если у вас не хватает каких-либо лицензий. Затем еще 7 дней, и еще, но каждый раз необходимо вводить капчу.
  • Наконец-то появились уровни производительности контроллеров. Стало легче выбирать контроллер под классы задач.


Установка TwinCAT


Компактные контроллеры серии «CX» продаются с предустановленной операционной системой и TwinCAT выбранных вами версий. Поэтому необходимо очень внимательно формировать заказной номер контроллера.

Для промышленных (серия «C») и персональных ПК существует вероятность самостоятельной установки операционной системы, драйверов и TwinCAT.

TwinCAT можно бесплатно загрузить с веб-сайта: http://beckhoff.com/english/download/default.htm

TwinCAT 3 установится полностью автоматически, а для TwinCAT 2 необходимо выполнить несколько дополнительных действий, перечисленных ниже.

Если в процессе установки TwinCAT 2 запросит серийный номер - оставьте поле ввода пустым для установки в 30-ти дневном демо-режиме.

Уровни функционала TwinCAT 2:
  • TwinCAT CP – драйверы для панели управления Windows. 
  • TwinCAT IO – установить драйверы системы ввода/вывода TwinCAT. Для разработчиков использующих протокол ADS. 
  • TwinCAT PLC – полноценная система с возможностью конфигурирования, программирования, а также использования локальной системы как ПЛК. 
  • TwinCAT NC PTP – PLC + цифровое управление движением приводов. 
  • TwinCAT NC I – PLC + NC PTP + система ЧПУ для трехосевых станков. 

Дополнительные функции:
  • TwinCAT IO – поддержка ввода/вывода протокола ADS для различных языков программирования. 
  • TwinCAT Scope View – цифровой осциллограф. 
  • TwinCAT Cam Server – расширенный сервер движения по заданной траектории (кулачковые механизмы). 
  • TwinCAT EDS, GSD Files – файлы словарей для экспорта в другие системы. 
  • TwinCAT Remote Manager – одновременная поддержка нескольких версий TwinCAT на одной локальной системе. 
  • TwinCAT Drive Manager – конфигурирование и работа с сервоусилителями и моторами. 
  • TwinCAT BACnet/IP – поддержка протокола BACnet/IP. 

March 10, 2015

Физические интерфейсы и модули расширения

Официально поддерживаемые промышленные и не очень шины (нужно понимать, что иногда протокол и физический интерфейс сваливают в одну кучу):

EtherCAT, Ethernet, Lightbus, PROFIBUS, PROFINET, EtherNet/IP, CANopen, DeviceNet, Interbus, SERCOS, ControlNet, CC-Link, USB, Modbus RTU, Modbus TCP, RS232/RS485, AS-Interface, IO-Link, DALI, EIB/KNX, LON, DMX, MP-Bus, SMI, M-Bus, PTP/IEEE 1588, BACnet/IP.


По слухам:
  • 1-wire (эмуляция через RS232).
  • Все, что совместимо с RS232/485 и Ethernet.


Модули расширения EtherCAT


  • ES/KS модули (EtherCAT terminals) имеют съемную панель для коммутации проводов. Считается, что это удобнее для монтажа. В остальном ничем не отличаются от EL/KL.
  • XFC — модули с высоким быстродействием (от 1 мкс), поддержкой отпечатка времени (timestamp), поддержка интегрирования дополнительных шагов дискретизации для повышения точности (oversampling).
  • TwinSAFE — модули желтого цвета для обеспечения безопасности.


Дискретные входа — EL1xxx
  • 5/12/24/48В DC.
  • XFC, 24В — EL12xx.
  • TwinSAFE, 24В — EL19xx.
  • 120В AC/DC, 230В AC — EL17xx.
  • Счетчики (до 100кГц, 32 бита) — EL15xx.

Дискретные выхода — EL2xxx, EM2xxx
  • 5/12/24В DC.
  • 30В AC/DC, тристабильные (до 230В AC) — EL27xx.
  • XFC, 24В DC — EL22xx.
  • TwinSAFE, 24В DC — EL29xx.
  • Релейные (до 230В AC) — EL26xx.
  • ШИМ (24В, 1А), частотные (до 4МГц), контроля тока — EL25xx.

Аналоговые входа — EL3xxx, EM3xxx
  • ±75мВ (24 бита), ±200мВ — EL36xx.
  • 0..10В
  • 0..30В, 12 бит
  • ±10В
  • 0..20мА
  • 4..20мА
  • ±10мА
  • Термопары, мВ
  • Терморезисторы (RTD)
  • Потенциометры
  • Мосты
  • Измерения параметров трехфазной сети
  • Цифровой мультиметр: ток, напряжение (18 бит)
  • Сенсора ускорения (IEPE)
  • Измерения сопротивления
  • Измерения мощности
  • Измерение давления — EM37xx.

Аналоговые выхода — EL4xxx
  • 0..10В
  • ±10В
  • 0..20мА
  • 4..20мА
  • ±10мА

Позиционирования — EL5xxx
  • SSI
  • SinCos 1Vpp
  • EnDat 2.2
  • инкрементального энкодера: дифф. RS485; 24В, 32 бита

И еще немного других интерфейсов. Линейка постоянно пополняется и все целиком перечислить сложно:
  • Передача данных — EL6xxx.
  • TwinSAFE логика — ELx9xx.
  • Управление движением (модули на дин-рейку) — EL7xxx
  • Высокоточные измерения — ELMxxxx.
  • Для взрыво- пожаро- опасных зон (помещения Zone 2) — ELXxxx.



Обновлено: 13 мая 2017 г.