Showing posts with label build 4022. Show all posts
Showing posts with label build 4022. Show all posts

July 4, 2017

Вебинар. Что нового в сборке №4022

Некоторые новинки сборки TwinCAT №4022 я перечислял в стратегиях развития, но это было не точно и на уровне слухов. 27 июня прошел официальный вебинар TwinCAT 3.1 | New features in Build 4022, на котором Йозеф Папенфот (Dr. Josef Papenfort) подробно рассказал о новых и значимых функциях введенных в систему.

Все новые фишки более-менее перечислены на официальном сайте, но это скорее официальный бюллетень, нам же будут интересны некоторые подробности. Для начала, скачиваем с официального сайта Бекхофф новую сборку 3.1.4022.0: TwinCAT 3.1 – eXtended Automation Engineering (XAE). Один год — один новый релиз, но в этом билде только небольшие исправления и обновления.

Доктор официально подтвердил, что начиная со сборки 4020.x начата поддержка Windows 10 Redstone 4020.x. Поддержка Redstone 2 ожидается в середине 2017 года. Печальная же новость, что начиная с билда 4022 заканчивается поддержка всеми любимой Windows XP и WES 2009 (Windows Embedded Standart), то есть 4022 на них работать уже не будет.


Архив проектов


Что было удобно в TwinCAT 2, так это два файла на целый проект: программа в .pro-файле и конфигурация в .tsm. В то же время это было не удобно для систем контроля версий, так как файлы были бинарные — зато почтой отправлять удобно. Чтобы как-то скомпенсировать эти проблемы, был введен новый формат решения (solution, солюшен) — архив .tnzip. Внутри — это обычный архив ZIP, только расширение подлиннее.

Новый формат позволяет сжимать один или несколько проектов TwinCAT 3 в единственный файл архива. И сразу же отправить по почте: для этого есть специальный пункт меню. Впоследствии такой архив можно открыть как обычное решение (solution), то есть вот прямо сразу из архива, ничего не распаковывая.


Я поархивировал немного и выяснил, что в архиве хранятся только проекты TwinCAT. Все посторонние проекты, относительно TwinCAT (например, проект на C#), система игнорирует и в архив не включает. Зато архивы реально сжатые, сравните на картинке ниже размер "до" (Size) и размер "в" (Packe...)


Полезные мелочи


Постепенно улучшается редактор кода: добавлено раздельное масштабирование шрифтов в редакторе кода ST и окне объявления переменных. Для улучшения восприятия, появились специальные атрибуты создающие схлопывающиеся регионы — это кусок кода между специальными метками {region}

{region 'название для региона'}

... кусок кода

{endregion}

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

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


Переменные ввода-вывода


Переменные ввода типа AT %I* (location variables) теперь недоступны для изменения из кода: bInputVar := NOT bInputVar — запрещено на уровне компилятора и при сборке проекта приведет к ошибке компиляции. Зато теперь, начиная с билда 4022, эти переменные могут получать начальное значение: bInputVar AT %I* : INT := 123;

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

<результат типа BOOL> := __ISVALIDREF(переменная типа REFERENCE TO <тип данных>);

TRUE — ссылка рабочая, FALSE — ссылка нулевая, подробнее читайте в справочной системе.

Соответственно REFERENCE TO на переменные AT %I* теперь тоже запрещены, так как изменение этих переменных запрещено и такая попытка будет пресекаться ошибкой компиляции.


ADS через MQTT


Поддержка реализована как .dll модуль для Mosquitto Broker. Уже есть как 32-х разрядная так и 64-разрядная версии. Модуль поставляется бесплатно, вместе со стандартным установщиком и лежит в каталоге AdsApi:


Проект-одиночка


Начиная с этого момента ПЛК-программа и конфигурация TwinCAT — могут быть двумя разными, раздельными проектами: один проект будет содержать только программный проект (программу технологического процесса, TwinCAT PLC Project), а второй, будет содержать только конфигурацию системы (TwinCAT XAE Project).

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


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

При таком подходе, изменяя ПЛК-проект в одном месте, мы будем изменять его во всех конфигурациях одновременно. Главной при этом не забыть пересобрать ПЛК-проект: Build → Build Solution (F7), и активировать конфигурацию в TwinCAT-XAE-проекте: Activate Configuration.

Такой принцип чем-то схож с использованием библиотек, но только пишем мы не библиотеку (Empty PLC Project), а обычную программу (Standart PLC Project).



Символьный маппинг


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

Список системных типов данных переехал из закладок SYSTEM напрямую в дерево проекта и получил отдельную ветку с неожиданным названием Type System. Теперь туда с помощью заклинания Add New Item... и такого-то .tmc файла можно добавить распределенные типы данных (Shared Types), которые затем можно оттранслировать через EAP по TCP/IP сетям. Или через системы контроля версий, или вообще по любым каналам. Электронная почта все еще работает.


TwinSAFE


На диаграммах отображается состояние TwinSAFE-группы: в случае ошибки вы увидите толстую красную рамку, и вообще появились другие цвета, отражающие состояние входов/выходов и другие состояния. Плюс мелочи в редактировании схем безопасности: копи-паста функциональных блоков или псевдонимов (Alias Devices), разбивка на подкаталоги для псевдонимов устройств.


Книга жалоб и предложений


В XAE встроили специальный пункт меню для отправки письма сразу в тех. поддержку Бекхофф. При нажатии, появляется готовая форма, которую нужно заполнить. Причем ведет форма себя очень странно, так как доступна только из TwinCAT Measurement Project (это который про рисование графиков) и кликнуть нужно обязательно по ветке проекта Scope XY Project.



Монитор ADS


Бесплатный, но качается и устанавливается отдельно с FTP-сайта Бекхофф: TF6010-ADS-Monitor. После установки будет лежать здесь: C:\TwinCAT\Functions\TF6010-ADS-Monitor\Viewer\TcAmsAdsViewer.exe

С помощью монитора можно смотреть на пакеты ADS, иногда отправляя свои собственные. Аналогичное можно получить из WireShark, только здесь фильтры настраивать не нужно.



Установка


В остальном билд №4022 установился без проблем на Windows 10 Home. Если собираетесь запускать контроллер на локальной машине разработчика (ноутбук на котором программируете), то после установки запустите от имени "Администратора" батник: C:\TwinCAT\3.1\System\win8settick.bat и перезагрузите компьютер.

June 5, 2017

2017. Стратегия развития

Ключевая фишка Бекхоффа — это использование обычного ПК в качестве промышленного контроллера. Плюс собственное производство, тестирование, то есть полный конвейер. Давайте для разогрева посмотрим, как они двигались по этому пути.
  • 1982. P1000 — одноплатный контроллер управления движением.
  • 1986. PC Control — первый основанный на ПК контроллер ЧПУ станка.
  • 1988. S1000 — программный ПЛК/NC персональный компьютер (операционная система DOS).
  • 1989. Lightbus — высокоскоростная шина на оптоволокне.
  • 1990. All-in-one — персональный ПК типа "всё-в-одном" на материнской плате.
  • 1995. Bus Terminal — модульная архитектура шины на основе модулей расширения — терминалов.
  • 1996. TwinCAT — программный комплекс под Windows с функцией ПЛК и управлением движением.
  • 1998. IPC Control Panel — панельные компьютеры с графическим дисплеем для удаленной установки и установки по месту.
  • 1999. Fieldbus Box — защищенные IP 67 модули ввода/вывода.
  • 2002. CX1000 — модульные встраиваемые ПК для монтажа на дин-рейку.
  • 2003. EtherCAT — промышленная шина реального времени на базе Ethernet.
  • 2005. TwinSAFE — компактные решения для промышленной безопасности труда.
  • 2005. AX5000 — сервоусилители на базе EtherCAT.
  • 2007. Industrial Motherboards — собственное производство в Германии.
  • 2008. XFC — сверхскоростная технология обработки ввода/вывода (eXtreme Fast Control).
  • 2009. HD Bus Terminals — компактные многоканальные терминалы ввода/вывода (16-каналов, ширина 12 мм).
  • 2010. TwinCAT 3 — продвинутая технология автоматизации.
  • 2011. AM8000 — синхронные сервомоторы с однокабельной технологией (One Cable Technology).
  • 2012. Multi-touch — второе поколение панелей управления и панельных ПК с поддержкой сенсорного мультитач дисплея.
  • 2012. XTS — продвинутая технология транспортировки (eXtended Transport System).
  • 2014. Multicore — многоядерные системы управления и промышленные серверы для ускорения промышленных вычислительных возможностей.
  • 2014. AX8000 — много-осевые сервоусилители.
  • 2014. EtherCAT Plug-in Modules — подключаемые модули или терминалы шины для монтажа на печатные платы.
  • 2015. EtherCAT P — однокабельная технология для автоматизации в целом.
  • 2015. TwinCAT HMI — независимые от платформы пользовательские интерфейсы на основе веб-браузера и HTML5.
  • 2016. EtherCAT ELM — измерительные модули интегрируемые в систему высокоточных измерительных технологий.


2017.


Теперь ближе к нашим дням, а точнее к тому, что будет завтра.

Изображение: Beckhoff Automation
В этом году на выставке Hannover Messe '2017 Бекхофф в первую очередь пропагандировал:
  • Мультитач графические панели с новым красивым дизайном.
  • Многоядерные контроллеры на дин-рейку, такие как CX2072 (до 12 ядер).
  • "Микрокирпичи" C6015, сертифицированные Microsoft для Microsoft Azure.
  • XTS — продвинутая технология транспортировки (eXtended Transport System).
  • Анализ облачных данных в TwinCAT Analytics.
  • IoT, Индустрия 4.0, облачные технологии и другие современные трендовые слова.

Буквально на днях объявили о грядущем вебинаре на тему новой сборки TwinCAT 3.1.4022. Вероятно там будет рассказано что-то еще.


TwinCAT 3.1...


Версии TwinCAT с нечетным номером 4017–4019 — разрабатываются исключительно для внутреннего тестирования в организации. Для интеграторов и независимых разработчиков — только четные. Поэтому ближайшая будет — 4022, но без нововведений. Устранят ошибки и обновят лицензионные политики.
TwinCAT 2 все еще будет обновляться, но без новинок, только устранение багов.
Начиная с TwinCAT 3.1.4022 прекращается поддержка Windows XP и WES2009. Тем более, что Windows 10 Redstone уже полноценно поддерживается начиная с 4020.x, а с середины 2017 года появится поддержка Redstone 2.

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

Также можно будет условно понижать уровень лицензии: на платформах с более низким уровнем производительности (TC3 performance class) можно использовать лицензии от платформ с более высоким уровнем производительности.


ADS через MQTT


Новый способ отправки пакетов ADS — теперь через MQTT (ADS-over-MQTT). Преимущества:
  • Использует только исходящие подключения.
  • Не требует настройки фаервола, либо использует настройки по умолчанию, что упрощает работу для системных администраторов (или, как обычно, вообще без них).
  • Хорошо чувствует себя находясь за NAT.
  • Можно использовать в недоверенных сетях.
  • При участии шифрованных каналов TLS-PSK.
  • Нет жестко заданного подключения сокет-сокет.
  • Реализован как надстройка для Mosquitto Broker.

В итоге мы получаем полноценную виртуальную AMS-сеть (Virtual AMS Networks), которая умеет делать ADS-роутинг, а это дает такие стандартные возможности, как поиск TwinCAT устройств (в том числе и широковещательный) или обычная передача данных через ADS. Если взять текущие и более старые приложения, использующие протокол ADS, то они ничего не заметят, для них все будет выглядеть по старому. Процесс трансляции данных берет на себя ADS-роутер и скрывает от приложений. Так что данные теперь могут спокойно транслироваться через MQTT, что в новых приложениях, что в старых.


Независимые ПЛК программы


Появится новый вид TwinCAT проектов — независимый ПЛК проект (Standalone PLC). Проекты такого типа создаются и программируется независимо от конфигурации, то есть они могут существовать как отдельный проект в солюшене XAE. Впоследствии можно создавать множество экземпляров данного проекта, просто прикрепляя независимый проект к конфигурации через файл TMC, по аналогии с файлами TPY в TwinCAT 2.


Symbolic Mapping


Можно будет линковать не только пары адрес ↔ адрес, но и имя_переменной ↔ имя_переменной. Имя переменной — это в терминологии TwinCAT "символ" (symbol), что чуть шире, но не принципиально.


Распределенные типы данных


В оригинале — Shared Datatypes. Можно импортировать и экспортировать типы данных туда-сюда между ST и C++, ST и ST, а можно отправить по почте в виде TMC-файла или выложить в TFS (Team Foundation System), или воспользоваться любым другим способом передачи файлов.

TMC-файлы становятся все интереснее, так как все меньше ограничивают нас языком программирования.


Power Monitoring


Новая ПЛК библиотека для анализа сырых данных мониторинга электричества с модулей EL3773 и EL3783:
  • RMS, Peak, среднее значение для тока, напряжения, мощности.
  • Анализ гармоник и частот.
  • 1-фазные и 3-фазные.

Будет доступна в конце 2017 года


Библиотека и дизайнер фильтров


Новая библиотека для разработки фильтров будет интегрироваться в TwinCAT Measurement Project и позволит практически рисовать собственные цифровые фильтры. Предназначается в первую очередь для совместной работы с модулями ELM и TC3 Filter Library.

Кстати, Filter Library будет полностью ООП. Все функциональные блоки будут использовать ряд методов, такие как, например: Call, Configure, Reset (вызвать, настроить, сбросить). Функциональные блоки смогут принимать параметры и коэффициенты, предварительно нарисованные в Filter Designer. Очень похоже на принцип работы с кулачковыми механизмами и таблицами движения NC (Tables, Motion Diagram). Кроме них будут и просто готовые к использование функции со встроенными фильтрами.

Этих библиотек уже не будет в TwinCAT 2!


Многоклеточные


С середины 2017-го выйдут в серию многоядерные монстры на дин-рейку:
  • 4 ядра — CX2042, процессор Xeon D-1529 @1.3 ГГц, кэш 6Mb LL-Cache, оперативная память 8Гб.
  • 8 ядер — CX2062, процессор Xeon D-1539 @1.6 ГГц, кэш 12Мб, память 16Гб.
  • 12 ядер — CX2072, процессор Xeon D-1559 @1.5 ГГц, кэш 18Мб, память 32Гб.

В каждом будет выделенная графическая подсистема AMD с 2Гб памяти GDDR5. Оперативную память типа DDR4 можно варьировать от 8 до 32Гб. Из интерфейсов подарят: 4xUSB3, 2xEthernet Gbit LAN, 1xDVI-I, один интерфейс опционален, в том числе появится Display Port. Операционная система Windows 10 IoT Enterprise 2016 LTSB 64-разрядная. TwinCAT, конечно же, третий.

Монстры будут совместим с модулями серии CX2000. Ну, и вентилятор с контролем температуры, как в CX2040.


Новые интересные блоги


Стефан Хеннекен (Stefan Henneken) ведущий программист из Германия ведет кулинарный блог, посвященный рецептам на C# и ST в TwinCAT 3: ООП, паттерны, шаблоны программирования и другие современные вещи, но пока еще без функциональщины и других лямбда функций. Языки блога английский и немецкий. Гугл транслейт в помощь.

JoVAn — проектировщик из Португалии ведет блог Um PLC sem WatchDog (ПЛК без цензуры?) со сборной солянкой из руководств, туториалов и видео- уроков под разных производителей и сферы автоматизации.


Ранее в сериале: