February 29, 2016

Установка и запуск TwinCAT PLC HMI

Запуск визуализации TwinCAT PLC HMI для настольных операционных систем (Windows XP, Windows 7 Standard, 8, 10) может вызвать кратковременную непроходимость мозга.

TwinCAT 2: TS1800 | TwinCAT PLC HMI. Скачиваем и устанавливаем.
TwinCAT 3: TF1800 | TC3 PLC HMI. Уже идет в комплекте вместе с XAE, то есть не потребует скачивания и установки.

После включения в CE|Compact опции визуализации (через CX Configuration), среда визуализации начнет запускаться автоматически. В настольных ОС визуализация автоматически запускаться не будет. Ее автостарт необходимо настроить вручную. Это можно сделать двумя способами, но в любом случае понадобится собрать проект и "залить" его в контроллер как загрузочный (boot-project). Иначе среде визуализации нечего будет визуализировать, а нам трудно понять — получилось у нас автозапустить или еще нет.


Автозапуск


TwinCAT 2
Создаем ярлык для приложения среды визуализации  x:\TwinCAT\Plc\TCatPlcCtrlHmi.exe. В параметрах ярлыка указываем путь к .pro-файлу проекта, а затем переносим этот ярлык в меню Start → Programms → TwinCAT → Startup.

TwinCAT 3
Ссылку (ярлык) на среду визуализации x:\TwinCAT\3.1\Components\Plc\Tc3PlcHmi\Tc3PlcHmi.exe нужно добавить/переместить/поместить в каталог x:\TwinCAT\3.1\Target\StartUp. После перезагрузки, контроллер автоматически стартует загрузочный проект и оболочку визуализации.


NT_StartProcess


Стартовать среду визуализации можно из ПЛК-рантайма с помощью функции запуска обычных приложений операционной системы, то есть ничто не мешает взять и просто так запустить Ворд или Эксель. Функция находится в библиотеке TcUtilities.Lib.

В примере ниже не забудьте все x:\ заменить на свою букву диска, обычно это C:\

NT_StartProcess (
  NETID    :=, 
  PATHSTR  :=
    'x:\TwinCAT\Plc\TCatPlcCtrlHmi.exe x:\TwinCAT\Plc\ProjectName.pro /userlevel 1 /Password 1234 /Visu Overview',
  DIRNAME  :=
    'x:\TwinCAT\Plc\', 
  COMNDLINE:=, 
  START    := TRUE, 
  TMOUT    := T#2S, 
  BUSY     =>, 
  ERR      =>, 
  ERRID    =>);

Дополнительные параметры:
  • /openfromplc — при старте, визуализация выводит окно диалога и предлагает выбрать рантайм контроллера. После выбора, забирает с рантайма исходный код программы, компилирует его и запускает. Если исходный код не был выгружен разработчиком в контроллер — будет "ой".
  • /nofullscreenmode — запускать визуализацию в окне, а не во весь экран.
  • /noaltf4 — не реагировать на Alt+F4.
  • /userlevel — уровень пользователя по умолчанию для встроенной функции безопасности.
  • /password — пароль пользователя  для встроенной функции безопасности.
  • /visu — название окна визуализации которое отобразится первым. По умолчанию, это по прежнему TC_VISU.

Для TwinCAT 3 можно запустить оболочку визуализации с помощью такого же функционального блока из библиотеки Tc2_Utilities (System):

NT_StartProcess ( 
  NETID    :=, 
  PATHSTR  := 'x:\TwinCAT\3.1\Components\Plc\Tc3PlcHmi\Tc3PlcHmi.exe', 
  DIRNAME  := 'x:\TwinCAT\3.1\Components\Plc\Tc3PlcHmi\', 
  COMNDLINE:=, 
  START    := TRUE, 
  TMOUT    := T#2S, 
  BUSY     =>, 
  ERR      =>, 
  ERRID    =>);

После этого начинается самое интересное: настройки оболочки визуализации хранятся в файле Tc3PlcHmi.ini который лежит рядом к исполняемым файлом оболочки Tc3PlcHmi.exe. В случае с TwinCAT 3 оболочку визуализации можно запустить не только на том же контроллере/компьютере, где работает рантайм TwinCAT, но и на любом другом, лишь бы была связь и добавлены все необходимые записи в ADS-роутер.
UPD (18 сент. 2020): Начиная с версии TwinCAT 3.1.4022.0 файл настроек Tc3PlcHmi.ini должен находится в каталоге C:\TwinCAT\3.1\Boot\Plc. Спасибо Андрею П. за уточнение.
Можно запустить несколько оболочек на различных машинах объединенных сетью. Визуализация будет полноценно работать и отображать единую картинку на всех точках запуска. При этом сохраняется возможность отладки ПЛК-программы, что было невозможно в TwinCAT 2 при запуске визуализации в настольных операционках. Подробнее в справочной системе TF1800 TC3 PLC HMI.


Runtime already in use!


Ошибка относится к TwinCAT 2 и это именно тот случай, почему не удобно использовать PLC HMI визуализацию в настольных операционках.

Похоже, что в TwinCAT 2 среда визуализации изготовлена из среды разработки PLC Control путем выкидывания лишних элементов интерфейса. При этом визуализация подключается к рантайму через интерфейс отладки программы (debug runtime), блокируя любые другие попытки подключения. Занято! Вы не можете отлаживать свою программу, потому что запущена визуализация! Идите к черту, говорит нам визуализация: "Я одна, а вас много".

Чтобы получить отладку ПЛК-программы, придется разбить ее на две части: загружать технологический цикл в один рантайм, а визуализацию в другой. Иначе неминуема ошибка: Runtime already in use!

Именно в этом гигантское преимущество TwinCAT 3 PLC HMI. Ну, и еще таблицы с произвольными данными, новые тренды, выпадающие списки и куча других приятных плюшек.


Обновлено: 18 сентября 2020 г.

February 25, 2016

Сервер Modbus TCP

Протокол Modbus поддерживается практически всеми производителями и реализован на многих устройствах. В TwinCAT он существует в виде модбас-сервера как для десктопа, так и для компактной Windows CE:

TS6250 | TwinCAT Modbus TCP Server
TS6250-0030 | TwinCAT Modbus TCP Server CE
В 8000 серии модбас-сервер уже встроен, но про 8000 серию мы разговаривать не будем, так как она мне не нравится.
Итак, чтобы установить — прочтите руководство по установке. Там все просто и подходит для всех видов операционок.

После установки получаем сервер и библиотеку с функциональными блоками. Библиотека позволяет использовать произвольные функции Modbus, работать в роли клиента или использовать UDP-протокол вместо скучного и надежного TCP.

Для передачи данных чаще используют заранее подготовленные глобальные переменные или области памяти, но если очень хочется, то порт и прочие настройки можно переназначить в файле настроек — TcModbusSrv.xml. Там же можно переназначить порты ADS и адреса смещений. В операционной системы CE | Compact файл должен лежать в \hard disk\system. Если его там нет — значит сервер настроен по умолчанию. Работа с файлом конфигурации описана в Mapping between Modbus and ADS.

Для настольных операционных систем существует готовый конфигуратор, после установки лежащий в x:\TwinCAT\TcModbusSrv.


Тонкая настройка сервера


Все начинается с <Configuration>. По умолчанию, как это принято в сетях Модбас, коммуникационный сетевой порт равен 502:

<!-- Modbus TCP port, default = 502-->
<Port>502</Port>

Далее идет раздел маппинга: <Mapping>, в котором задается отражение адресного пространства Modbus на адресное пространство операционного образа ПЛК или, проще говоря, к каким областям памяти контроллера приведут заданные адреса Modbus.

Начинаем конфигурировать дискретные входа (биты дискретных входов только для чтения): <InputCoils>. Если вы внезапно забыли о функциях Modbus — кратко ознакомьтесь с обзорной статьей: она короткая и надолго вас не задержит.

Задаем стартовый адрес пространства Modbus: <StartAddress>0</StartAddress>
...и конечный адрес: <EndAddress>32767</EndAddress>

Остается настроить место, куда эти адреса приведут на стороне контроллера. ADS-порт выбирает устройство на шине EtherCAT. 801 — это стандартный порт первого рантайма ПЛК-задачи:

<!-- AdsPort: TwinCAT2 PLC1 = 801, PLC2 = 811...-->
<AdsPort>801</AdsPort>


Затем идет индекс группы и смещения. Они конкретизируют переменные, области памяти и пр.:

<!-- IndexGroup 61473 = 0xF021 -> physical plc inputs %IX -->
<IndexGroup>61473</IndexGroup>
<!-- Bit offset-->
<IndexOffset>0</IndexOffset>


Большего быстродействия можно добиться, указывая индекс группы и смещения, как это сделано выше, но для удобства можно просто задать имя переменной:

<MappingInfo>
<AdsPort>801</AdsPort>

<!-- Modbus input coils -->
<StartAddress>32768</StartAddress>
<EndAddress>33023</EndAddress>

<VarName>.mb_Input_Coils</VarName>

</MappingInfo>
</InputCoils>

Обычно приводят простой пример в котором описывают мапинг переменных ПЛК-программы, но мы заглянем глубже — как сделать мапинг непосредственно ADS-шины. Для начала, необходимо включить ADS-сервер шины и задать номер порта (обычно 27907 для TwinCAT 2, но можно и другой):
TwinCAT 2: I/O - Configuration → I/O Devices → Device 1 (EtherCAT) → Device 1-Image → ADS → Enable ADS Server.
TwinCAT 3: I/O → Devices → Device 1 (EtherCAT) → Image → ADS → Enable ADS Server.

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

<MappingInfo>
<AdsPort>27907</AdsPort>

<!-- Modbus input coils -->
<StartAddress>32768</StartAddress>
<EndAddress>33023</EndAddress>

<VarName>Inputs.Frm0InputToggle</VarName>

February 9, 2016

Имя контроллера

Откуда по умолчанию берется имя контроллера?

Из обозначения серии (C, CX, P, ...) и последних шести символов MAC-адреса: CX_02646D.
MAC-адрес контроллера CX можно подсмотреть на шильде-наклейке (MAC-ID 1):


February 4, 2016

Простые функции ADS.API

В ADS.API существуют две функции, которые позволяют читать/писать данные с контроллера буквально одной строкой: ReadSymbol и WriteSymbol. Эти функции сильно упрощают разработку на языках высокого уровня. Как обычно, далее про C#.

Разработка ADS.API двигается по пути упрощения интерфейса библиотеки: от работы с потоками через индексы и смещения (AdsStream), к работе с произвольными типами данных в виде именованных переменных (Read|WriteAny). Имена переменных ПЛК-задачи удобнее, чем абстрактные потоки байт, но по-прежнему необходимо преобразовывать имена в дескрипторы и только затем работать с ними. Напрашивается сделать следующий шаг на пути сокращения.

Symbol в TwinCAT-системе — это описание переменной и вся возможная информация о ней, т. е. что-то очень похожее на отражения или рефлексию в языках высокого уровня. Вообще, работа с переменными в библиотеке ADS.API построена не самым лучшим образом. Если есть желание взглянуть на то, каким оно должно быть или стать в будущем — лучше взгляните на независимый проект adsclient на гитхабе. Когда понравится — перечитайте про преимущество другой стороны ADS.

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

using (TcAdsClient client = new TcAdsClient())
{
    client.Connect("192.168.1.17.1.1", 801);
    
    client.WriteSymbol("MAIN.uint16", (ushort)123, false);
    
    bool    m_bool1   = (bool)   client.ReadSymbol( "MAIN.bool1",   typeof(bool),   false);
    byte    m_byte8   = (byte)   client.ReadSymbol( "MAIN.byte8",   typeof(byte),   false);
    short   m_int16   = (short)  client.ReadSymbol( "MAIN.int16",   typeof(short),  false);
    ushort  m_uint16  = (ushort) client.ReadSymbol( "MAIN.uint16",  typeof(ushort), false);
    ushort  m_word16  = (ushort) client.ReadSymbol( "MAIN.word16",  typeof(ushort), false);
    float   m_real4b  = (float)  client.ReadSymbol( "MAIN.real4b",  typeof(float),  false);
    double  m_lreal8b = (double) client.ReadSymbol( "MAIN.lreal8b", typeof(double), false);
}


Аналогично для "системных" типов данных:

client.WriteSymbol("MAIN.word16", (UInt16)456, false);

Int16  s_int16   = (Int16)  client.ReadSymbol( "MAIN.int16",   typeof(Int16),  false);
UInt16 s_uint16  = (UInt16) client.ReadSymbol( "MAIN.uint16",  typeof(UInt16), false);
UInt16 s_word16  = (UInt16) client.ReadSymbol( "MAIN.word16",  typeof(UInt16), false);
Single s_real4b  = (Single) client.ReadSymbol( "MAIN.real4b",  typeof(Single), false);
Double s_lreal8b = (Double) client.ReadSymbol( "MAIN.lreal8b", typeof(Double), false);


Обратная разработка


Упрощения не даются просто так и где-то что-то приходится приносить в жертву. Простые в использовании функции могут работать как-то не так или просто "тормозить". Заглянем во внутренности библиотеки, а конкретнее — в TcAdsClient. С небольшими сокращениями функции выглядят так:

public object ReadSymbol(string name, Type type, bool reloadSymbolInfo)
{
    [...]

    if (this._symbolInfoTable == null)
        this._symbolInfoTable = new SymbolInfoTable(this);

    return this._symbolInfoTable.ReadSymbol(name, type, reloadSymbolInfo);
}


public void WriteSymbol(string name, object value, bool reloadSymbolInfo)
{
    [...]

    if (this._symbolInfoTable == null)
        this._symbolInfoTable = new SymbolInfoTable(this);

    this._symbolInfoTable.WriteSymbol(name, value, reloadSymbolInfo);
}

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

namespace TwinCAT.Ads.Internal
{
    internal class SymbolInfoTable
    {
        private Dictionary<string, TcAdsSymbol> _symbolTable;
        private DatatypeInfoTable _datatypeTable;
        private TcAdsClient _adsClient;
        
        public SymbolInfoTable(TcAdsClient adsClient)
        {
            this._adsClient = adsClient;
            this._symbolTable = new Dictionary<string, TcAdsSymbol>((IEqualityComparer<string>) StringComparer.OrdinalIgnoreCase);
            this._datatypeTable = new DatatypeInfoTable(adsClient);
        }

И да, действительно, это обертки для кеширования информации о переменных: словарь имен и таблиц символов, коллекция типов данных и обратная ссылка на владельца — класс AdsClient. Делаем вывод — данная таблица создается при первом вызове одной из функций ads-клиента и хранит информацию о переменных, что сокращает время и количество операций при работе с переменными ПЛК-задачи.


Третий параметр


Вернемся к "reloadSymbolInfo", третьему параметру функций Read|WriteSymbol. Он позволяет сбросить, стереть кешированную символьную информацию, накопленную в таблицах объекта класса SymbolInfoTable. Это хорошо видно в реализации методов класса (в начале каждого метода параметр проверяется и если требуется — таблица очищается):

public void WriteSymbol(string name, object value, bool bReloadInfo)
{
    if (bReloadInfo)
        this.Cleanup();
    [...]


public object ReadSymbol(string name, Type type, bool bReloadInfo)
{
    if (bReloadInfo)
        this.Cleanup();
    [...]

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


Передача данных


Осталось выяснить как передаются данные. Продолжаем рассматривать методы Read|WriteSymbol класса SymbolInfoTable, пропускаем сброс таблиц (3):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public void WriteSymbol(string name, object value, bool bReloadInfo)
{
    [...]
    TcAdsSymbol symbol = this.GetSymbol(name, true);
    if (symbol == null)
        TcAdsDllWrapper.ThrowAdsException(AdsErrorCode.DeviceSymbolNotFound);

    TcAdsDatatype dataype = this._datatypeTable.GetDataype(symbol.Type);
    if (dataype == null)
        throw new NotSupportedException("Type of symbol not supported");

    AdsStream stream = new AdsStream((int) dataype.size);
    AdsBinaryWriter writer = new AdsBinaryWriter(stream);

    if (dataype.IsPrimitive)
        this.SetPrimitiveType(symbol.Name, value, dataype.managedType, symbol.Datatype, symbol.Size, writer);

В строках 4-6 идет выборка кешированной информации, затем (строки 8-10) выборка типов переменных и наконец подготовка потоков (строки 12-13, AdsStream, AdsBinaryWriter). Никакой магии.

В строках 15-16 и далее, идет запись данных через подготовленные потоки, но это уже другая история.


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

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.