Twincat plc control инструкция на русском

Начать знакомство можно с:

  • Обзор EtherCAT
  • Глоссарий
  • Практическое пособие по программированию (пошаговые инструкции)

Скачать TwinCAT можно по ссылке:
http://beckhoff.com/english.asp?download/tc2-download.htm

При запросе на регистрацию, выберите «Download as a guest» и заполните предложенную форму. Проверьте адрес электронной почты, на него придет ссылка для скачивание TwinCAT. 

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

Для создания контроллера из компьютера, а также конфигурирования и программирования нужна версия «TwinCAT 2.11 R3».
Только для конфигурирования и программирования, можно использовать «TwinCAT 2.11 x64 Engineering». Engineering-версия идет без ПЛК-ядра, зато работает во всех версиях Windows.

Дополнительные ссылки на русскоязычные статьи:

  • Автоматизация зданий
  • Упаковочная промышленность
  • Публикации в прессе на русском
  • О применении в различных отраслях
  • Power-the-Future

И наиболее полное, четырехсот страничное описание работы с TwinCAT 2, с примерами, программами, пошаговыми руководствами и картинками, но на английском языке: TwinCAT 2 Manual v3.0.1

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

Это руководство стало результатом работы инженеров компании «Beckhoff Automation». Мы постоянно пересматриваем и правим информацию для достижения максимально возможной точности и корректности изложения. Ничто не идеально, но мы стараемся приблизиться к этому. Если что, пишите автору.

Уважаемые коллеги, мы рады предложить вам, разрабатываемый нами учебный курс по программированию ПЛК фирмы Beckhoff с применением среды автоматизации TwinCAT. Курс предназначен исключительно для самостоятельного изучения в ознакомительных целях. Перед любым применением изложенного материала в коммерческих целях просим связаться с нами. Текст из предложенных вам статей скопированный и размещенный в других источниках, должен содержать ссылку на наш сайт heaviside.ru. Вы можете связаться с нами по любым вопросам, в том числе создания для вас систем мониторинга и АСУ ТП.


В прошлой статье мы в общих чертах рассмотрели устройство ПЛК. Далее мы перейдем непосредственно к изучению продукции фирмы Beckhoff. Наверняка у читателей вызвало вопросы упоминание в предыдущих статьях TwinCAT 2 и TwinCAT 3 одновременно. На момент написания данной статьи актуальны обе версии TwinCAT. Вторая версия используется для работы с более старыми, но все еще актуальными контроллерами. Третья версия соответственно работает с более новыми устройства. Но есть ситуации, когда можно использовать вторую или третью версию TwinCAT на ваш выбор. Чтобы понять какую из версий следует применять и изучать в первую очередь, давайте разберемся что такое TwinCAT.

Что такое TwinCAT

TwinCAT расшифровывается как технология автоматизации и управления для операционной системы Windows (Англ. Total Windows Control and Automation Technology). Вторая и третья версии TwinCAT состоят из двух компонентов — среды разработки и среды выполнения (Англ. runtime).

Среда разработки (далее так же будем называть ее engineering)- это инструмент программиста, в котором пишется программа, производятся всевозможные настройки ПЛК, выполняется отладка и так далее. Вообще все действия, которые вы совершаете с TwinCAT происходят в среде разработки.

Среда выполнения (далее так же будем называть ее runtime) — это часть TwinCAT, в которой выполняется написанная программа. TwinCAT runtime работает в операционной системе Windows. Это значит, что, установив TwinCAT runtime на любой, удовлетворяющий системным требованиям, компьютер под управлением ОС Windows, мы можем использовать его как ПЛК, при этом сохраняется возможность пользоваться всеми возможностями Windows. Все ПЛК производства Beckhoff имеют операционную систему Windows, в которой работает TwinCAT runtime. Следует заметить, что такой подход Beckhoff к созданию ПЛК во многом является оригинальным, ПЛК других производителей как правило используют любые другие операционные системы кроме Windows или вообще обходятся без них. TwinCAT runtime является системой реального времени. Система реального времени — это такая система, которая должна реагировать на внешние события за определённый конечный период времени. То есть, если вы на своем компьютере настроили и запустили TwinCAT runtime так, чтобы он выполнял написанную программу например раз в 10 мили секунд (0.01 секунды) и после этого запустили какую-либо «тяжелую» Windows программу, ваш компьютер может начать «подтормаживать», но программа, выполняемая в TwinCAT runtime, так и будет выполняться раз в 10 мили секунд. Почти всегда автоматическим системам крайне важно иметь гарантированное время отклика. Если бы время отклика не имело существенного значения runtime выполнялся бы как любая другая программа Windows. Конечно, по разным причинам TwinCAT runtime может не успеть выполнить требуемые операции за отведенное время, в таком случае возникнет ошибка времени выполнения, но о таких ситуациях мы поговорим в посвященной этой теме статье.

Подведем итоги, TwinCAT 2 и TwinCAT 3 состоят из двух частей — среда разработки и среда выполнения. Среда разработки предназначена для написания программ. Среда разработки устанавливается непосредственно на рабочий компьютер программиста, наладчика или другого специалиста, желающего работать с настройками или кодом программы. Среда выполнения предназначена для выполнения программ. Среда выполнения TwinCAT runtime может устанавливаться как на компьютеры с операционной системой Windows, так и на ПЛК фирмы Beckhoff.

Какой TwinCAT изучать в первую очередь?

TwinCAT 3, как более новая система, обладает большим функционалом по сравнению с TwinCAT 2. Так же TwinCAT 2 и TwinCAT 3 весьма отличаются внешним видом, но тем не менее работа в обоих версиях очень похожа. Освоив одну из версий TwinCAT, вы достаточно легко и быстро сможете научится пользоваться другой версией TwinCAT. Как уже говорилось выше более старые ПЛК могут работать только с TwinCAT 2, к ним относятся ПЛК серии BC, BX и некоторые ПЛК серии CX. Некоторые ПЛК могут поддерживать и TwinCAT 2, и TwinCAT 3. При заказе таких ПЛК стоит уделять особенное внимание каталожному номеру, так как от него зависит какая версия среды выполнения будет заложена в ПЛК при изготовлении. Если ПЛК поддерживают TwinCAT 2 и TwinCAT 3 среду выполнения можно переустановить самостоятельно, только при это не стоит забывать о необходимых лицензиях. В любом случае перед началом работы с ПЛК в инструкции и, при необходимости, номере заказа, следует уточнить какую версию TwinCAT предстоит применять.

Снимок инструкции к ПЛК Beckhoff CX8090

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

В следующей статье мы научимся создавать проект в TwinCAT.


Вернее, чайником. То есть мною.

Напишу тут подробно, чтобы самому потом не забыть. Похоже, тут половина вещей из серии “Это нельзя понять – это надо запомнить”. Итак, я дошел до того, что софт видит контроллер и простейшая программа туда загружается и вроде бы работает. Вот как это делается.

Мы поставили TwinCAT. Для начала запускаем TwinCAT System Manager. В нем сначала найдем устройство:

tc001

В появившемся диалоге выбираем Search (Ethernet) и в диалоге поиска – Broadcast Search

tc002

Закрываем диалог, в предыдущем диалоге выделяем только что найденное устройство:

tc003

Теперь System Manager подключен к нашему контроллеру, о чем сообщает в статусбаре. Далее надо получить список устройств ввода-вывода. В ноде I/O – Configuration –> I/O Devices ткаем правой кнопкой и говорим Scan Devices:

tc004

В результате система получает полную конфигурацию устройств:

tc005 

Как видно выше, перечислены все три блока подсоединенные к контроллеру, включая пустышку. Я даже могу отсюда управлять состоянием каналов вывода (выделить канал, справа закладка Online и там нажать кнопку Write):

tc0051

Записал 1 в 4-й канал – на блоке вывода загорелся светодиод. Стало быть поменялось состояние. А вот канал ввода – не меняется так. Видимо, он проверяет физическое состояние (не замкнуто) и врать права не имеет. Ну да ладно.

Далее мне хочется написать простейшую программу. Если замкнут вход 1 – включить выход 1. Если разомкнут – выключить. Для этого нам понадобится другая программа – TwinCAT PLC Control (по сути – IDE CoDeSys). В ней мы создаем новый проект. Нас спрашивают под какое устройство будем писать.

tc006

Выбираем CX (ARM), потому что наш cx9010 построен на ARM процессоре. Проект состоит из программных блоков, один из которых – главный нам сразу предлагают создать:

tc007

Языков как видите может использоваться множество. Я выберу LD – язык лестничных диаграмм или релейно-контактной логики по-нашему. Сначала в верхнем окошке обьявляем переменные. Вот на этом этапе я и провел полдня. Похоже, для того, чтобы эти переменные были видны и к ним можно было привязать вводы-выводы, они должны иметь адрес. Что конкретно это означает, я пока не понимаю, но вот это вот шаманство работает. То есть для обьявления булевской переменной In01, надо написать не вот так:

var1

А вот так:

var2

Волшебное заклинание %IX0.1 переводится так. %-значит это адрес. I – вход (Q-выход). X – тип данных бит (true/false). 0.1 – это месторасположение в некой области переменных. Это значит 1-й бит нулевого байта.

tc008

Пишем саму прогамму. На языке LD программа – это типа две шины (справа и слева) под напряжением. Между ними можно вставлять котакты (Contact) и реле (Coil). Контакт – это вход, Coil – это выход. Можно еще блоки вставлять, но это пока опустим. Таких цепочек может быть много, но у нас пока одна будет. Вставляем контакт. И сверху пишем имя входной переменной In01.

tc009

Затем вставляем Coil и называет Out01. Вот такая получается программа:

tc010

Она как раз и говорит “Если In01 замкнут, то через Out01 идет ток и оно замыкается”. Ну и наоборот соответственно. Все, программа у нас написана. Говорим Project –> Build. Все компилится без ошибок. Рядом с файлом проекта появляется файл *.tpy который теперь можно загрузить в System Manager:

tc011

Как видите, System Manager видит обе наши переменные:

tc012

Теперь в I/O Configuration мы можем привязать каналы ввода – вывода к переменным. Выбираем канал, нажимаем Linked to и выбираем переменную:

tc013

Теперь у меня физические входы-выходы приделаны к переменным в программе. Я иду в PLC Control. Там я тоже должен сказать что работаю с физическим контроллером (Online –> Choose Rintime System:). Выбираю свой контроллер:

tc014 

Затем говорю Online –> Login. Система спрашивает загружать ли программу в контроллер. Загружаем. Далее я могу сказать Online –> Run – запустить программу в контроллере. И вроде как она выполняется. Я могу поменять значение переменной In01 из PLC Control и выходная переменная Out01 тоже меняется. Только вот состояние выхода у контроллера – не меняется. Будем копать дальше.

На YouTube есть видео всего процесса и там у них все работает. Но там используется не железный контроллер, а SoftPLC – программный PLC который прямо на компе крутится.

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

6a00d8341c630a53ef0120a701fc57970b-800wi[1]

Эта рутина используется встроенным контроллером BROSU CX5120-0125.

Инвертор использует серию Bliss A1 для поддержки общения Ethercat.

Цель случая

Управляйте 2 драйвера серии A1, утешить управление пизовым оттенком, запись целевой частоты, сброс неисправности и управление DO (цифровой вывод диска BES); считывать выходной выходной ток, выходное напряжение, валюту и цифровое значение (цифровой вход сама привода ).

<1> Создать программу PLC.

<2> Выберите Standard PLC Project и измените имя на английский, например «тест» на рисунке ниже.

<3> Дважды щелкните Программирование главного запуска, чтобы редактировать простую программу в файле Pos, и программа можно найти в образце проекта.

PROGRAM MAIN
VAR
	SLAVE1_CONTROLLOWLD на% QW100: UINT: = 0; // DRIVE 1 R-PZD1 BIT0: Запуск и загрузка, Bit1: Сброс неисправности, Bit2: DO0
	 SLAVE1_TARGETFRECENTY AT% QW102: UINT: = 0; // Драйв 1 r-pzd2
	 Slave1_actualCurrent на% IW100: UINT; / / DRIVE 1 T-PZD1
	 SLAVE1_AAALVOLTAGE на% IW102: UINT; / / DRIVE 1 T-PZD2
	 Slave1_actualFRENCET на% IW104: UINT; / / DRIVE 1 T-PZD3
	 SLAVE1_EERORRORCODE AT% IW106: UINT; / / DRIVE 1 T-PZD4   
	 Slave1_Distatus на% IW108: UINT; / / DRIVE 1 T-PZD5
	 SLAVE1_ECATSTATE AT% IW110: UINT; / / DRIVE 1 Статус связи Ethercat
	
	 SLAVE2_CONTROLLOWLD на% QW104: UINT: = 0; // R-PZD1 привода 2
	 Slave2_targetfrequency at% qw106: uint: = 0; // привод 2 r-pzd2
	 Slave2_actualCurrent на% IW112: UINT; / / DRIVE 2 T-PZD1
	 SLAVE2_AAALVOLTAGE AT% IW114: UINT; / / DRIVE 2 T-PZD2
	 Slave2_aaAalfrequency at% IW116: T-PZD3 UINT; // Драйв 2
	 SLAVE2_EERORRORCODE AT% IW118: UINT; / / DRIVE 2 T-PZD4   
	 Slave2_Distatus на% IW120: UINT; / / DRIVE 2 T-PZD5
	 SLAVE2_ECATSTATE на% IW122: UINT; / / DRIVE 2 Ethercat Состояние связи
	Init :BOOL:=FALSE;
	//fbSdoRead  : FB_EcCoESdoRead;
	fbsdoWrite :FB_EcCoESdoWrite;
	SDO_Execute: BOOL:=FALSE;
	SDO_Done: BOOL:=TRUE;
	SDO_Value: UINT;
	SDO_Index: WORD;
	SDO_SubIndex: BYTE;
END_VAR




 Если (slave1_ecatstate = 16 # 08) и (slave2_ecatstate = 16 # 08) Тогда / / dip статус
	
         // Инициализация Используйте драйвер конфигурации SDO для добавления времени замедления и простоя.
	IF NOT Init THEN
	     // время ускорения водителя изменяется на 50s
		 Sdo_index: = 16 # 2034; //b04.02 наклон 1 время ускорения
		SDO_SubIndex:=3;
		SDO_Value:=500;     //50.0s
		fbsdoWrite(sNetId:='5.63.20.224.4.1',nSlaveAddr :=1001, nIndex:=SDO_Index, nSubIndex :=SDO_SubIndex, pSrcBuf:= ADR(SDO_Value), cbBufLen:=2,bExecute:=TRUE);
		IF NOT fbsdoWrite.bBusy THEN
			fbsdoWrite(bExecute:=FALSE);
		END_IF
		fbsdoWrite(sNetId:='5.63.20.224.4.1',nSlaveAddr :=1002, nIndex:=SDO_Index, nSubIndex :=SDO_SubIndex, pSrcBuf:= ADR(SDO_Value), cbBufLen:=2,bExecute:=TRUE);
		IF NOT fbsdoWrite.bBusy THEN
			fbsdoWrite(bExecute:=FALSE);
		END_IF
		
		 / / / / Время замедления водителя изменяется на 10s
		 Sdo_index: = 16 # 2034; //b04.03 наклон 1 время замедления
		SDO_SubIndex:=4;
		SDO_Value:=100;     //10.0s
		fbsdoWrite(sNetId:='5.63.20.224.4.1',nSlaveAddr :=1001, nIndex:=SDO_Index, nSubIndex :=SDO_SubIndex, pSrcBuf:= ADR(SDO_Value), cbBufLen:=2,bExecute:=TRUE);
		IF NOT fbsdoWrite.bBusy THEN
			fbsdoWrite(bExecute:=FALSE);
		END_IF
		fbsdoWrite(sNetId:='5.63.20.224.4.1',nSlaveAddr :=1002, nIndex:=SDO_Index, nSubIndex :=SDO_SubIndex, pSrcBuf:= ADR(SDO_Value), cbBufLen:=2,bExecute:=TRUE);
		IF NOT fbsdoWrite.bBusy THEN
			fbsdoWrite(bExecute:=FALSE);
		END_IF
		
		 / / Драйвер включен, чтобы замедлить
		 Sdo_index: = 16 # 2035; //b05.32 Режим остановки
		SDO_SubIndex:=33;
		 Sdo_value: = 1; // 0: свободное отключение 1: замедление простоя
		fbsdoWrite(sNetId:='5.63.20.224.4.1',nSlaveAddr :=1001, nIndex:=SDO_Index, nSubIndex :=SDO_SubIndex, pSrcBuf:= ADR(SDO_Value), cbBufLen:=2,bExecute:=TRUE);
		IF NOT fbsdoWrite.bBusy THEN
			fbsdoWrite(bExecute:=FALSE);
		END_IF
		fbsdoWrite(sNetId:='5.63.20.224.4.1',nSlaveAddr :=1002, nIndex:=SDO_Index, nSubIndex :=SDO_SubIndex, pSrcBuf:= ADR(SDO_Value), cbBufLen:=2,bExecute:=TRUE);
		IF NOT fbsdoWrite.bBusy THEN
			fbsdoWrite(bExecute:=FALSE);
		END_IF
		Init:=TRUE;
	END_IF// end of init
	
	
	 Slave1_targetfrequency: = 4096; // Частота написать 50 Гц
	Slave2_TargetFrequency:=4096;
	 Если (slave1_eorororcode <> 0) или (slave2_eorororcode <> 0), то / / неисправность
	    Slave1_Controlword.0: = false; // Стоп
	   Slave2_Controlword.0:=FALSE;
	    Slave1_controlword.2: = false; // do0 отключен
	   Slave2_Controlword.2:=FALSE;
         Еще // нормально
	    SLAVE1_CONTROLLWORD.0: = TRUE; // RUN
	   Slave2_Controlword.0:=TRUE;
	    SLAVE1_CONTROLLWORD.2: = true; // do0 закрыт
	   Slave2_Controlword.2:=TRUE;
    END_IF
	
 Else / / road op op status
	 Slave1_Controlword.0: = false; // Стоп
	Slave2_Controlword.0:=FALSE;
	 Slave1_controlword.2: = false; // do0 отключен
	Slave2_Controlword.2:=FALSE;
END_IF

<4> компилятор, выберите «Проект тестирования», чтобы выбрать сборку. (Примечание. Эта процедура связана с чтением и записью SDO, он добавляет библиотеку EtherCAT, не добавляя ошибку, в конце статьи добавляется)

<5> Система автоматически сознает этот код. Если нет ошибок, она будет успешно генерирована в строке сообщений, а входная и выходная переменная, сгенерированная в экземпляре теста.

<6> Нажмите на переменные в экземпляре теста, чтобы начать переменное соединение, а входные переменные SLAVE1_actualCurrent в программе связаны с T-PZD1 ведомой станции 1 в примере. Пожалуйста, свяжитесь с входными и выходными переменными, используемыми в ПЛК к PZD от раба.

<7> Переменная соединение После выбора TwinCAT нажмите «Активировать конфигурацию».

<8> Всплывающее диалоговое окно нажмите ОК.

<9> Если вы всплываете следующее окно, означает, что некоторая лицензия в вашем проекте не активирована или утечка активирована, но нет никаких отношений. Нажмите, чтобы активировать отсутствие лицензии.

<10> Введите 5-значный код подтверждения ОК.

<11> Нажмите OK, чтобы переключиться в режим запуска.

<12> Нажмите на зеленую стрелку панели инструментов входа в систему.

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

Добавьте библиотеку Ethercat для реализации SDO Read и Write

<1> Под PLC-> Test-> Test Project-> Ссылки Дерево каталогов, щелкните правой кнопкой мыши, чтобы выбрать Добавить библиотеку.

<2> В окне всплывающего окна выберите TC2_ETHERCAT. Выберите ОК.

<3> После успеха дополнения вы можете увидеть библиотеку Ethercat, которая была добавлена ​​в дереве каталога.

<4> Затем вы можете использовать функциональный блок FB_ECCOESDOREAD для выполнения операций SDO READ, используя FB_ECCOESDOWRITE для операции записи SDO, используя эти две функциональные блоки для изменения параметров привода, что отражено в примерной программе.

  1. Manuals
  2. Brands
  3. Beckhoff Manuals
  4. Temperature Controller
  5. TwinCAT 3
  6. Manual
  • Contents

  • Table of Contents

  • Bookmarks

Quick Links

Manual

TC3 Temperature Controller

TwinCAT 3

Version:

Date:

Order No.:

1.1

2015-08-18

TF4110

Summary of Contents for Beckhoff TwinCAT 3

  • Page 1
    Manual TC3 Temperature Controller TwinCAT 3 Version: Date: 2015-08-18 Order No.: TF4110…
  • Page 3: Table Of Contents

    Table of contents Table of contents 1 Foreword ………………………… 4 Notes on the documentation…………………. 4 Safety instructions …………………….. 5 2 Product description……………………… 6 3 Installation………………………… 7 System requirements…………………… 7 Installation………………………. 7 Licensing………………………. 10 4 Configuration ………………………. 15 Block Diagram …………………….. 15 Generating the Set Value …………………..  15 Generating the Control Value ………………….

  • Page 4: Foreword

    EP0851348, US6167425 with corresponding applications or registrations in various other countries. ® EtherCAT is registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany Copyright © Beckhoff Automation GmbH & Co. KG, Germany. The reproduction, distribution and utilization of this document as well as the communication of its contents to others without express authorization are prohibited.

  • Page 5: Safety Instructions

    All the components are supplied in particular hardware and software configurations appropriate for the application. Modifications to hardware or software configurations other than those described in the documentation are not permitted, and nullify the liability of Beckhoff Automation GmbH & Co. KG. Personnel qualification This description is only intended for trained specialists in control, automation and drive engineering who are familiar with the applicable national standards.

  • Page 6: Product Description

    Product description Product description The TwinCAT temperature controller is a universally applicable PLC function block for monitoring and controlling a wide variety of temperature-dependent processes. The controller can be operated in following modes: • automatic (closed loop) and • manual (open loop) The control value can be accessed in digital or analogue form.

  • Page 7: Installation

    • Please note: For testing purposes, a 7-Day trial license may be used, as described in our licensing [} 10] article Installation Description of the installation procedure of a TwinCAT 3 Function for Windows-based operating Systems. 1. Double-click the downloaded setup file «TFxxxx». Please note: Under Windows 32-bit/64-bit, please start the installation with «Run as Administrator» by right-clicking the setup file and selecting the corresponding option in the context menu.

  • Page 8
    Installation 2. Click on «Next» and accept the license Agreement. 3. Enter your user information in the specified area. Version: 1.1 TC3 Temperature Controller…
  • Page 9
    Installation 4. To install the full product, including all sub-components, please choose «Complete» as the Setup Type.Alternatively you can also install each component seperately by choosing «Custom». 5. Click on «Install»after pressing the «Next» to start the Installation. The TwinCAT system has to be stopped before proceeding with installation TC3 Temperature Controller Version: 1.1…
  • Page 10: Licensing

    After a successful installation the TC 3Function needs to be licensed [} 10]. Licensing The TwinCAT 3 functions are available both as a full and as a 7-Day trial version. Both license types can be activated via TwinCAT XAE.For more information about TwinCAT 3 licensing, please consult the TwinCAT 3 Help System.The following document describes both licensing scenarios for a TwinCAT 3 function on…

  • Page 11
    5. Optional: If you would like to add a license for a remote device, you first need to connect to the remote device via TwinCAT XAE toolbar 6. Switch to the tab «Order Information» and click the button «Activate 7 Days Trial License…»to activate a test version 7. Please restart TwinCAT 3 afterwards. TC3 Temperature Controller Version: 1.1…
  • Page 12
    13. Navigate to the «Order Information» tab The fields «System-ID» and «HW Platform» cannot be changed and just describe the platform for the licensing process in general a TwinCAT 3 license is always bound to these two identifiers: the «System-ID» uniquely identifies your system.
  • Page 13
    14. Optionally, you may also enter an own order number and description for your convenience 15. enter the «Beckhoff License ID» and click on «Generate License Request File…». If you are not aware of your «Beckhoff License ID» please contact your local sales representative.
  • Page 14
    Installation 20. Select the received «Licnse response file» and click on «Open» 21. The «License Response File» will be imported and all included licenses will be activated. If there have been any trial licenses, these will be removed accordingly. 22. Please restart TwinCAT to activate licenses.. NOTE! The license file will be automatically copied to «..TwinCAT3.1TargetLicense»…
  • Page 15: Configuration

    Configuration Configuration Block Diagram The TwinCAT Temperature Controller consists of a number of function blocks. The following function blocks are involved: • Self-tuning algorithm (FB_Selftuner) • Control algorithm (FB_ControlAlgorithm) • Set value generator (FB_SetpointConditioner) • Control value generator (FB_ControlValueConditioner) • Alarming (FB_Alarming) These function blocks in turn call a number of other subsidiary function blocks.

  • Page 16
    Configuration The set values are restricted to their limits. In order to permit «heater baking», a soft start can be parameterised. In this case, the temperature is first ramped up from ambient to a low set value (fWStartUp). This temperature is them maintained for a period of time (tStartUp), and only after that has elapsed does the ramp up to the actual set value begin.
  • Page 17: Generating The Control Value

    Configuration Generating the Control Value The control value (CV) calculated by the controller is first limited to fall within a valid range. The values of the limits are passed to the controller block in the control value structure. The control value is made available in three different ways.

  • Page 18
    Configuration • Perform the required external connection. Name Beschreibung eCtrlMode Connection necessary Switches controller to different operating modes (active, passive, tuning) bSelSetpoint Connection optional Selects one of two possible set values. FALSE selects the normal set value, while TRUE selects the standby set value. Connection necessary Set value.
  • Page 19
    Configuration bSelCtrlParameterSet:= FALSE, (* tuninig *) iTuningMode := eCTRL_TuneMode_heating, fYTuneHeating := 100.0, fYTuneCooling := -100.0, fEndTunePercentHeating := 80.0, (* switch to closed loop control when X > 0.8*W *) fEndTunePercentCooling := -70.0, (* switch to closed loop control when X < 0.2*W *) iReactionOnFailure := eCTRL_ReactionOnFailure_StopController, TempLow := -50.0, TempLowLow := -100.0,…
  • Page 20
    0.25 overshoots of 10%-20% Slower settling with 0.42 0.25 low overshoot Almost asymptotic 0.25 settling with extremely small overshoot Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController Version: 1.1 TC3 Temperature Controller…
  • Page 21: Plc Libraries

    PLC libraries PLC libraries Function Block 5.1.1 FB_CTRL_TempController The temperature controller block FB_CTRL_TempController has a variety of inputs and outputs that are described below. All the controller’s parameters are passed to it via structures. The structures and enums are defined here [} 33]. Function Block VAR_INPUT   eCtrlMode               : E_CTRL_MODE;…

  • Page 22
    PLC libraries Interface Table 1: Inputs Name Unit Range Description eControlMode E_CTRL_MODE Switches modes. bSelSetpoint [TRUE,FALSE] Selects one of two possible set values. FALSE selects the normal set value, while TRUE selects the standby set value. °C LREAL Setpoint °C LREAL Standby set value, generally smaller than fW1.
  • Page 23: Structure Definitions

    PLC libraries Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController 5.1.2 Structure definitions ST_ControllerParameter TYPE ST_CTRL_TempCtrlParameter: STRUCT   (* general parameters *)   iMode                     : E_CTRL_ControlMode;   iReactionOnFailure        : E_CTRL_ReactionOnFailure;   bSelCtrlParameterSet      : BOOL;   dwAlarmSupp               : DWORD;   tCtrlCycleTime            : TIME;   tTaskCycleTime            : TIME;…

  • Page 24
    PLC libraries   (* controller settings *)   bEnablePreController      : BOOL;   bEnableZones              : BOOL;   bEnableCVFilter           : BOOL;   iFilterType               : E_CTRL_FilterType;   iControllerType           : E_CTRL_ControllerType;   (* min max temperatures *)   TempLow                   : LREAL;   TempLowLow                : LREAL;   TempHigh                  : LREAL;   TempHighHigh              : LREAL;   TempAbsoluteHigh          : LREAL;   TempAbsoluteLow           : LREAL;   (* internal tuning parameters *)   fTuneKp                   : LREAL     := 1.2;   fTuneTn                   : LREAL     := 2.0;…
  • Page 25
    PLC libraries Table 3: Description TC3 Temperature Controller Version: 1.1…
  • Page 26
    PLC libraries Name Unit Range Description General Parameters iMode none Controller operating mode (1 = heating, 2 = cooling, 3 = heating & cooling) (see below) iReactionOnFailure none Parameterisable reaction to errors (see below) bSelCtrlParameterS none BOOL TRUE = external parameter set, FALSE = internal parameter set (from tuning) dwAlarmSupp none…
  • Page 27
    PLC libraries Name Unit Range Description tPWMCycleTime TIME Cycle time of the PWM signal. tPWMMinOffTime TIME PWM: minimal off time tPWMMinOnTime TIME PWM: minimal on time tPWMWaitingTime TIME PWM: waiting time before switching vorm heating to cooling and vice versa fYThresholdOff (L)REAL 3-Step: Off threshold…
  • Page 28
    PLC libraries Table 4: Description Name Unit Range Description KpHeat none (L)REAL Heating: Amplification factor for the main controller. TnHeat TIME Heating: Integral-action time for main controller (I component). TvHeat TIME Heating: Derivative action time for main controller (D component). TdHeat TIME Heating: Damping time for the main controller.
  • Page 29
    PLC libraries Table 8: ENUM: E_CTRL_STATE_TUNING Name Description eCTRL_STATE_TUNING_INIT Tuning: Initialisation eCTRL_STATE_TUNING_IDLE Tuning: wainting for a stable actual value eCTRL_STATE_TUNING_PULSE Tuning: not yet realized eCTRL_STATE_TUNING_STEP Tuning: Tuning with step reponse eCTRL_STATE_TUNING_READY Tuning: Calculation of parameters eCTRL_STATE_TUNING_ERROR Tuning: Error while tuning. Table 9: ENUM: E_CTRL_TuneMode Name Description eCTRL_TuneMode_HEATING…
  • Page 30: Old:fb_Tempcontroller

    000_0000_0000 absolute temperature Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController 5.1.3 old:FB_TempController The temperature controller block FB_TempController has a variety of inputs and outputs that are described below. All the controller’s parameters are passed to it via structures. The structures and enums are defined here [} 33].

  • Page 31
    PLC libraries Interface VAR_INPUT   bOn                       : BOOL;   bInit                     : BOOL;   bTune                     : BOOL;   bManual                   : BOOL;   bSelSetpoint              : BOOL;   bSelCtrlParameterSe       : BOOL;   bEnableSoftStart          : BOOL;   bEnableRamping            : BOOL;   fW1                       : LREAL;   fW2                       : LREAL;   fX                        : LREAL;   bOpenThermocouple         : BOOL;   bReverseThermocouple      : BOOL;   bBackVoltage              : BOOL;   bLeakage                  : BOOL;   bShortCircuit             : BOOL;   bOpenCircuit              : BOOL;   sParaControllerExternal   : ST_ParaController;   sLogData                  : ST_LogData := (bLog := FALSE, strLogFileName :=», strLogString := » );…
  • Page 32
    PLC libraries Table 12: Inputs Name Unit Value range Description [TRUE,FALSE] TRUE switches the controller on. bInit [TRUE,FALSE] Initialisation flag, which must be active (TRUE) for precisely the first cycle in which the controller is called. bTune [TRUE,FALSE] A rising edge switches the self-tuning on. If it is switched to FALSE during the self-tuning process then the self- tuning is aborted and the controller continues operation using the old parameters (if they are still present).
  • Page 33: Old:structure Definitions

    If bError is TRUE, then iErrorId provides an error code (see ENUM …) Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController 5.1.4 old:Structure Definitions TYPE ST_ParaControlValue : STRUCT   (* general parameters *)   iMode                   : E_ControlMode;…

  • Page 34
    PLC libraries   (* controller settings *)   bEnablePreController  : BOOL;   bEnableZones          : BOOL;   bEnableCVFilter       : BOOL;   iFilterType           : E_FilterType;   iControllerType       : E_ControllerType;   (* min max temperatures *)   TempLow               : LREAL;   TempLowLow            : LREAL;   TempHigh              : LREAL;   TempHighHigh          : LREAL;   TempAbsoluteHigh      : LREAL;   TempAbsoluteLow       : LREAL;   (* internal tuning parameters *)   fTuneKp               : LREAL := 1.2;   fTuneTn               : LREAL := 2.0;…
  • Page 35
    PLC libraries ST_ControllerParameter Table 14: Description Name Unit Value range Description iMode none Controller operating mode (1 = heating, 2 = cooling, 3 = heating & cooling) (see below) iReactionOnFail none Parameterisable reaction to errors (see below) fYTune none LREAL Control value during the self-tuning (normally 100%) fYStable none LREAL…
  • Page 36
    PLC libraries Description ST_ParaController TYPE ST_ParaController : STRUCT   (* Main Controller parameter set *)   KpMain    : LREAL;   TnMain    : LREAL;   TvMain    : LREAL;   TdMain    : LREAL;   (* Pre Controller parameter set *)   KpPre     : LREAL;   TvPre     : LREAL;   TdPre     : LREAL; END_STRUCT END_TYPE Table 15: Description Name Unit Value range Description KpMain…
  • Page 37
    PLC libraries Table 18: ENUM: ST_ControlMode Name Description CTRLMODE_HEATING Heating only. CTRLMODE_COOLING Cooling only. CTRLMODE_HEATING_COOLING Heating and cooling. Table 19: ENUM: states Name Description TC_STATE_IDLE Controller switched off. TC_STATE_INIT Controller is being initialised. TC_STATE_OFF Controller switched off, was previously switched on. TC_STATE_TUNE Controller in tuning / self adjustment state.
  • Page 38
    Software: fallen below lower 00_0000_0000 absolute temperature Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController 5.1.5 FB_CTRL_TempController_DistComp This temperature controller function block adds disturbance compensation to the FB_CTRL_TempController function blocks. The structure is illustrated here.
  • Page 39
    PLC libraries Function Block Interface VAR_INPUT   eCtrlMode                     : E_CTRL_MODE;   bSelSetpoint                  : BOOL;   fW1                           : LREAL;   fW2                           : LREAL;   fX                            : LREAL;   fYManual                      : LREAL;   bOpenThermocouple             : BOOL;   bReverseThermocouple          : BOOL;   bBackVoltage                  : BOOL;   bLeakage                      : BOOL;   bShortCircuit                 : BOOL;   bOpenCircuit                  : BOOL;   fD                            : LREAL;   bCompensateDisturbance        : BOOL;   stParaControllerExternal      : ST_CTRL_ParaController; END_VAR VAR_IN_OUT   sControllerParameter          : ST_CTRL_TempCtrlParameter;   sCompensatorParameter         : ST_CTRL_DistCompParameter; END_VAR VAR_OUTPUT   fYAnalog                      : LREAL;   bYPWMPos                      : BOOL;   bYPWMPos                      : BOOL;   bYPWMNeg                      : BOOL;   bYDigPos                      : BOOL;   bYDigNeg                      : BOOL;   dwAlarm                       : DWORD;   fMaxOverShoot                 : LREAL;   tStartUpTime                  : TIME;   eCtrlState                    : E_CTRL_STATE;   sParaControllerInternal       : ST_CTRL_ParaController;   bError                        : BOOL;   eErrorId                      : E_CTRL_ErrorCodes; END_VAR TC3 Temperature Controller Version: 1.1…
  • Page 40
    PLC libraries Inputs Name Unit Range Description eControlMode E_CTRL_MODE Switches mode bSelSetpoint [True, False] Selects one of the two possible setpoints; True selects the standby setpoint °C LREAL Setpoint °C LREAL Standby setpoint (generally smaller than fW1, bSelSetpoint is used to switch between fW1 and fW2) °C…
  • Page 41: Structure Definitions (St_Ctrl_Distcompparameter)

    [True, False] An error occursed, if true eErrorId Structure Error code of the current error Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController 5.1.6 Structure Definitions (ST_CTRL_DistCompParameter) ST_CTRL_DistCompParameter TYPE ST_CTRL_DistCompParameters STRUCT   fKd    : LREAL := 0;   tT1    : TIME  := T#0MS;…

  • Page 42: Global Constants

    To compare the existing version to a required version the function F_CmpLibVersion (defined in Tc2_System library) is offered. Hint: All other possibilities known from TwinCAT2 libraries to query a library version are obsolete! Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController Version: 1.1 TC3 Temperature Controller…

  • Page 43: Sample

    For practical use, you may need one of two implementation. You can also use TwinCAT ScopeView to monitor variables such as temperature setpoint, acutal temperature or controller output. Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController TC3 Temperature Controller Version: 1.1…

  • Page 44: Appendix

    To minimise oscillation of the control value, it is optionally possible to follow the main controller with a filter. P-T1 and moving average filters are available for this purpose. Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController Version: 1.1 TC3 Temperature Controller…

  • Page 45: Alarming

    • Leakage current Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController Self-tuning The self-tuning algorithm is based on the classic inflectional tangents method. This method was first developed by Ziegler and Nichols. It is assumed that a linear P-T1 loop with a delay time is being examined.

  • Page 46: Disturbance Compensation

    Requirements Development environment target platform PLC libraries to include TwinCAT 3.1.4006 PC or CX (x86) Tc2_TempController Disturbance Compensation Disturbance Compensation A disturbance signal has significant effect on the quality of the controller and eventually on the controlled process.

This manual is also suitable for:

Tc3

Начать знакомство можно с:

  • Обзор EtherCAT
  • Глоссарий
  • Практическое пособие по программированию (пошаговые инструкции)

Скачать TwinCAT можно по ссылке:
http://beckhoff.com/english.asp?download/tc2-download.htm

При запросе на регистрацию, выберите «Download as a guest» и заполните предложенную форму. Проверьте адрес электронной почты, на него придет ссылка для скачивание TwinCAT. 

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

Для создания контроллера из компьютера, а также конфигурирования и программирования нужна версия «TwinCAT 2.11 R3».
Только для конфигурирования и программирования, можно использовать «TwinCAT 2.11 x64 Engineering». Engineering-версия идет без ПЛК-ядра, зато работает во всех версиях Windows.

Дополнительные ссылки на русскоязычные статьи:

  • Автоматизация зданий
  • Упаковочная промышленность
  • Публикации в прессе на русском
  • О применении в различных отраслях
  • Power-the-Future

И наиболее полное, четырехсот страничное описание работы с TwinCAT 2, с примерами, программами, пошаговыми руководствами и картинками, но на английском языке: TwinCAT 2 Manual v3.0.1

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

Это руководство стало результатом работы инженеров компании «Beckhoff Automation». Мы постоянно пересматриваем и правим информацию для достижения максимально возможной точности и корректности изложения. Ничто не идеально, но мы стараемся приблизиться к этому. Если что, пишите автору.

Вернее, чайником. То есть мною.

Напишу тут подробно, чтобы самому потом не забыть. Похоже, тут половина вещей из серии “Это нельзя понять – это надо запомнить”. Итак, я дошел до того, что софт видит контроллер и простейшая программа туда загружается и вроде бы работает. Вот как это делается.

Мы поставили TwinCAT. Для начала запускаем TwinCAT System Manager. В нем сначала найдем устройство:

tc001

В появившемся диалоге выбираем Search (Ethernet) и в диалоге поиска – Broadcast Search

tc002

Закрываем диалог, в предыдущем диалоге выделяем только что найденное устройство:

tc003

Теперь System Manager подключен к нашему контроллеру, о чем сообщает в статусбаре. Далее надо получить список устройств ввода-вывода. В ноде I/O – Configuration –> I/O Devices ткаем правой кнопкой и говорим Scan Devices:

tc004

В результате система получает полную конфигурацию устройств:

tc005 

Как видно выше, перечислены все три блока подсоединенные к контроллеру, включая пустышку. Я даже могу отсюда управлять состоянием каналов вывода (выделить канал, справа закладка Online и там нажать кнопку Write):

tc0051

Записал 1 в 4-й канал – на блоке вывода загорелся светодиод. Стало быть поменялось состояние. А вот канал ввода – не меняется так. Видимо, он проверяет физическое состояние (не замкнуто) и врать права не имеет. Ну да ладно.

Далее мне хочется написать простейшую программу. Если замкнут вход 1 – включить выход 1. Если разомкнут – выключить. Для этого нам понадобится другая программа – TwinCAT PLC Control (по сути – IDE CoDeSys). В ней мы создаем новый проект. Нас спрашивают под какое устройство будем писать.

tc006

Выбираем CX (ARM), потому что наш cx9010 построен на ARM процессоре. Проект состоит из программных блоков, один из которых – главный нам сразу предлагают создать:

tc007

Языков как видите может использоваться множество. Я выберу LD – язык лестничных диаграмм или релейно-контактной логики по-нашему. Сначала в верхнем окошке обьявляем переменные. Вот на этом этапе я и провел полдня. Похоже, для того, чтобы эти переменные были видны и к ним можно было привязать вводы-выводы, они должны иметь адрес. Что конкретно это означает, я пока не понимаю, но вот это вот шаманство работает. То есть для обьявления булевской переменной In01, надо написать не вот так:

var1

А вот так:

var2

Волшебное заклинание %IX0.1 переводится так. %-значит это адрес. I – вход (Q-выход). X – тип данных бит (true/false). 0.1 – это месторасположение в некой области переменных. Это значит 1-й бит нулевого байта.

tc008

Пишем саму прогамму. На языке LD программа – это типа две шины (справа и слева) под напряжением. Между ними можно вставлять котакты (Contact) и реле (Coil). Контакт – это вход, Coil – это выход. Можно еще блоки вставлять, но это пока опустим. Таких цепочек может быть много, но у нас пока одна будет. Вставляем контакт. И сверху пишем имя входной переменной In01.

tc009

Затем вставляем Coil и называет Out01. Вот такая получается программа:

tc010

Она как раз и говорит “Если In01 замкнут, то через Out01 идет ток и оно замыкается”. Ну и наоборот соответственно. Все, программа у нас написана. Говорим Project –> Build. Все компилится без ошибок. Рядом с файлом проекта появляется файл *.tpy который теперь можно загрузить в System Manager:

tc011

Как видите, System Manager видит обе наши переменные:

tc012

Теперь в I/O Configuration мы можем привязать каналы ввода – вывода к переменным. Выбираем канал, нажимаем Linked to и выбираем переменную:

tc013

Теперь у меня физические входы-выходы приделаны к переменным в программе. Я иду в PLC Control. Там я тоже должен сказать что работаю с физическим контроллером (Online –> Choose Rintime System:). Выбираю свой контроллер:

tc014 

Затем говорю Online –> Login. Система спрашивает загружать ли программу в контроллер. Загружаем. Далее я могу сказать Online –> Run – запустить программу в контроллере. И вроде как она выполняется. Я могу поменять значение переменной In01 из PLC Control и выходная переменная Out01 тоже меняется. Только вот состояние выхода у контроллера – не меняется. Будем копать дальше.

На YouTube есть видео всего процесса и там у них все работает. Но там используется не железный контроллер, а SoftPLC – программный PLC который прямо на компе крутится.

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

6a00d8341c630a53ef0120a701fc57970b-800wi[1]

Уважаемые коллеги, мы рады предложить вам, разрабатываемый нами учебный курс по программированию ПЛК фирмы Beckhoff с применением среды автоматизации TwinCAT. Курс предназначен исключительно для самостоятельного изучения в ознакомительных целях. Перед любым применением изложенного материала в коммерческих целях просим связаться с нами. Текст из предложенных вам статей скопированный и размещенный в других источниках, должен содержать ссылку на наш сайт heaviside.ru. Вы можете связаться с нами по любым вопросам, в том числе создания для вас систем мониторинга и АСУ ТП.


В прошлой статье мы в общих чертах рассмотрели устройство ПЛК. Далее мы перейдем непосредственно к изучению продукции фирмы Beckhoff. Наверняка у читателей вызвало вопросы упоминание в предыдущих статьях TwinCAT 2 и TwinCAT 3 одновременно. На момент написания данной статьи актуальны обе версии TwinCAT. Вторая версия используется для работы с более старыми, но все еще актуальными контроллерами. Третья версия соответственно работает с более новыми устройства. Но есть ситуации, когда можно использовать вторую или третью версию TwinCAT на ваш выбор. Чтобы понять какую из версий следует применять и изучать в первую очередь, давайте разберемся что такое TwinCAT.

Что такое TwinCAT

TwinCAT расшифровывается как технология автоматизации и управления для операционной системы Windows (Англ. Total Windows Control and Automation Technology). Вторая и третья версии TwinCAT состоят из двух компонентов — среды разработки и среды выполнения (Англ. runtime).

Среда разработки (далее так же будем называть ее engineering)- это инструмент программиста, в котором пишется программа, производятся всевозможные настройки ПЛК, выполняется отладка и так далее. Вообще все действия, которые вы совершаете с TwinCAT происходят в среде разработки.

Среда выполнения (далее так же будем называть ее runtime) — это часть TwinCAT, в которой выполняется написанная программа. TwinCAT runtime работает в операционной системе Windows. Это значит, что, установив TwinCAT runtime на любой, удовлетворяющий системным требованиям, компьютер под управлением ОС Windows, мы можем использовать его как ПЛК, при этом сохраняется возможность пользоваться всеми возможностями Windows. Все ПЛК производства Beckhoff имеют операционную систему Windows, в которой работает TwinCAT runtime. Следует заметить, что такой подход Beckhoff к созданию ПЛК во многом является оригинальным, ПЛК других производителей как правило используют любые другие операционные системы кроме Windows или вообще обходятся без них. TwinCAT runtime является системой реального времени. Система реального времени — это такая система, которая должна реагировать на внешние события за определённый конечный период времени. То есть, если вы на своем компьютере настроили и запустили TwinCAT runtime так, чтобы он выполнял написанную программу например раз в 10 мили секунд (0.01 секунды) и после этого запустили какую-либо «тяжелую» Windows программу, ваш компьютер может начать «подтормаживать», но программа, выполняемая в TwinCAT runtime, так и будет выполняться раз в 10 мили секунд. Почти всегда автоматическим системам крайне важно иметь гарантированное время отклика. Если бы время отклика не имело существенного значения runtime выполнялся бы как любая другая программа Windows. Конечно, по разным причинам TwinCAT runtime может не успеть выполнить требуемые операции за отведенное время, в таком случае возникнет ошибка времени выполнения, но о таких ситуациях мы поговорим в посвященной этой теме статье.

Подведем итоги, TwinCAT 2 и TwinCAT 3 состоят из двух частей — среда разработки и среда выполнения. Среда разработки предназначена для написания программ. Среда разработки устанавливается непосредственно на рабочий компьютер программиста, наладчика или другого специалиста, желающего работать с настройками или кодом программы. Среда выполнения предназначена для выполнения программ. Среда выполнения TwinCAT runtime может устанавливаться как на компьютеры с операционной системой Windows, так и на ПЛК фирмы Beckhoff.

Какой TwinCAT изучать в первую очередь?

TwinCAT 3, как более новая система, обладает большим функционалом по сравнению с TwinCAT 2. Так же TwinCAT 2 и TwinCAT 3 весьма отличаются внешним видом, но тем не менее работа в обоих версиях очень похожа. Освоив одну из версий TwinCAT, вы достаточно легко и быстро сможете научится пользоваться другой версией TwinCAT. Как уже говорилось выше более старые ПЛК могут работать только с TwinCAT 2, к ним относятся ПЛК серии BC, BX и некоторые ПЛК серии CX. Некоторые ПЛК могут поддерживать и TwinCAT 2, и TwinCAT 3. При заказе таких ПЛК стоит уделять особенное внимание каталожному номеру, так как от него зависит какая версия среды выполнения будет заложена в ПЛК при изготовлении. Если ПЛК поддерживают TwinCAT 2 и TwinCAT 3 среду выполнения можно переустановить самостоятельно, только при это не стоит забывать о необходимых лицензиях. В любом случае перед началом работы с ПЛК в инструкции и, при необходимости, номере заказа, следует уточнить какую версию TwinCAT предстоит применять.

Снимок инструкции к ПЛК Beckhoff CX8090

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

В следующей статье мы научимся создавать проект в TwinCAT.


Beckhoff TwinCAT 2 Manual

  1. Manuals
  2. Brands
  3. Beckhoff Manuals
  4. Saw
  5. TwinCAT 2
  6. Manual

  • Contents

  • Table of Contents

  • Bookmarks

Quick Links

Manual | EN

TS5055

TwinCAT 2 | NC Flying Saw

2022-11-22 | Version: 1.3

loading

Summary of Contents for Beckhoff TwinCAT 2

  • Page 1
    Manual | EN TS5055 TwinCAT 2 | NC Flying Saw 2022-11-22 | Version: 1.3…
  • Page 3: Table Of Contents

    Table of contents Table of contents 1 Foreword ………………………… 5 Notes on the documentation …………………. 5 Safety instructions …………………….. 6 Notes on information security…………………. 7 2 General …………………………. 8 3 Synchronisation to velocity …………………… 11 4 Synchronisation to position…………………… 15 5 Parameterisable boundary conditions, specifying the mode of operation …….. 18 6 Characteristic values ……………………..

  • Page 4
    Table of contents Version: 1.3 TS5055…
  • Page 5: Foreword

    EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702 with corresponding applications or registrations in various other countries. ® EtherCAT is a registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany Copyright © Beckhoff Automation GmbH & Co. KG, Germany. The reproduction, distribution and utilization of this document as well as the communication of its contents to others without express authorization are prohibited.

  • Page 6: Safety Instructions

    All the components are supplied in particular hardware and software configurations appropriate for the application. Modifications to hardware or software configurations other than those described in the documentation are not permitted, and nullify the liability of Beckhoff Automation GmbH & Co. KG. Personnel qualification This description is only intended for trained specialists in control, automation and drive engineering who are familiar with the applicable national standards.

  • Page 7: Notes On Information Security

    Foreword Notes on information security The products of Beckhoff Automation GmbH & Co. KG (Beckhoff), insofar as they can be accessed online, are equipped with security functions that support the secure operation of plants, systems, machines and networks. Despite the security functions, the creation, implementation and constant updating of a holistic security concept for the operation are necessary to protect the respective plant, system, machine and networks against cyber threats.

  • Page 8: General

    General General The Flying Saw is a slave axis that can be synchronized to a moving master axis. The slave axis moves in synchronism with the master axis to perform machining processes. This kind of movement, synchronized to the master axis, means that a workpiece can be machined even while it is being transported. An important difference between the «Flying Saw»…

  • Page 9
    General Synchronisation to velocity In Synchronisation to velocity [} 11] the slave axis is synchronised to the master axis using the specified dynamic parameters as rapidly as possible. In the synchronous phase, the slave velocity is proportional to the master velocity, so that: The synchronisation procedure Synchronisation of the slave axis to the master axis proceeds according to the following scheme: 1.
  • Page 10
    General Parameterisable boundary conditions governing synchronisation In principle, any initial conditions may apply to the calculation of the synchronisation profile for the master and slave axes. The transition of the slave’s movement from its initial state to the synchronous state is calculated in such a way that boundary conditions [} 18] that can be specified by the user and that govern the slave’s movement are maintained.
  • Page 11: Synchronisation To Velocity

    Synchronisation to velocity Synchronisation to velocity Under synchronization to velocity, a slave axis, starting in any state, is synchronized as quickly as possible to a moving master axis. The synchronous velocity of the slave here is given by the master velocity multiplied by the coupling factor.

  • Page 12
    Synchronisation to velocity Example 2: As example 1, but with coupling factor 1.5. (* Start parameters *) fMasterVelo     :=  500; fSlaveVelo      := -250; (* Coupling parameters *) fGearRatio      :=  1.5; fSlaveAcc       := 2500; fSlaveDec       := 2500; fSlaveJerk      := 5000; Version: 1.3 TS5055…
  • Page 13
    Synchronisation to velocity Example 3: The start of the coupling in the acceleration phase of the future slave. (* Start parameters *) fMasterVelo     :=  -500; fSlaveVelo      := 400; (* Coupling parameters *) fGearRatio      :=  1; fSlaveAcc       := 2500; fSlaveDec       := 2500; fSlaveJerk      := 5000; TS5055 Version: 1.3…
  • Page 14
    Synchronisation to velocity PLC function blocks The function block MC_GearInVelo is used for the coupling. To end the synchronous phase by uncoupling (online change) the function block MC_GearOut is used. Version: 1.3 TS5055…
  • Page 15: Synchronisation To Position

    Synchronisation to position Synchronisation to position In the case of synchronisation to position, the slave axis, starting from its initial state, is synchronised to the master axis in such a way that the required synchronous velocity (v ·= coupling factor) and master synchronisation position are achieved precisely at the master’s synchronisation position.

  • Page 16
    Synchronisation to position Example 2: (* Start parameters *) fMasterVelo            :=  500; fSlaveVelo             := -250; fMasterStartPos        := -500; fSlaveStartPos         := -500; (* Coupling parameters *) fGearRatio             := 1.5; fMasterSynchronPos     := 1000; fSlaveSynchronPos      := 500; fSlaveAcc              := 10000; fSlaveDec              := 10000; fSlaveJerk             := 50000; Version: 1.3 TS5055…
  • Page 17
    Synchronisation to position PLC function blocks The function block MC_GearInPos is used for coupling. To end the synchronous phase, i.e. for uncoupling (online change of the slave into an independent master), the function block MC_GearOut is used. TS5055 Version: 1.3…
  • Page 18: Parameterisable Boundary Conditions, Specifying The Mode Of Operation

    Parameterisable boundary conditions, specifying the mode of operation Parameterisable boundary conditions, specifying the mode of operation It is possible to specify a wide variety of boundary conditions for the slave movement in the synchronization phase of the Universal Flying Saw. These boundary conditions make it possible to specify limit values for the slave magnitudes listed in the table below.

  • Page 19
    Parameterisable boundary conditions, specifying the mode of operation MAXJERK 32 0x0000 0020 Checks whether ≤ j Slave SlaveMax the maximum slave jerk (machine data) has been exceeded. OVERSHOOTPOS 256 0x0000 0100 Checks for overshooting of slave position. UNDERSHOOTPO 512 0x0000 0200 Checks for undershooting of slave position.´…
  • Page 20
    Parameterisable boundary conditions, specifying the mode of operation PREFERCONSTV 1048576 0x0010 0000 Bit = 0: (default) Default setting Bit = 1: The system will try to use a phase with constant velocity, instead of just one 5th order polynomial. This can result in a combination of a 5th-order polynomial, a synchronous phase and another 5th- order polynomial (P5-P1-P5), (see…
  • Page 21: Characteristic Values

    Characteristic values Characteristic values Once the Universal Flying Saw has been started, the MC_ReadFlyingSawCharacteristics PLC function block can be used to read the characteristic values associated with the slave set value profile that has been calculated for the synchronisation phase. These characteristic values therefore refer neither to the synchronous phase nor to the preliminary phase, but only apply to the synchronisation phase! The individual characteristic values are described in the table below.

  • Page 22
    Characteristic values Denomination Description Independent of master accelera- tion fSlavePosMin Minimum slave position   fMPosAtSVeloMin Master position at the time of the minimum slave velocity fSlaveVeloMin Minimum slave velocity   fMPosAtSAccMin Master position at the time of the minimum slave acceleration fSlaveAccMin Minimum slave acceleration fSVeloAtSAccMin…
  • Page 23: Calculating The Synchronisation Phase

    Calculating the synchronisation phase Calculating the synchronisation phase An attempt is made when calculating the synchronisation phase to find an optimum solution while observing the boundary conditions specified by the user. If it is not possible to observe the specified boundary conditions, the coupling is declined and an appropriate error message is issued.

  • Page 24
    Calculating the synchronisation phase Optimisation flow diagram: The optimizations carried out internally are illustrated in the following flow diagram. Essentially, the slave set value profile is calculated as a 5th order polynomial. This 5th order polynomial can be combined with a first order polynomial in order to maintain the parameterized boundary conditions.
  • Page 25: Reversal Of The Master Axis Movement / Reverse Motion Stop

    Reversal of the master axis movement / reverse motion stop Reversal of the master axis movement / reverse motion stop The behavior of the Universal Flying Saw in case of a motion reversal of the master can be defined via 2 bits of the SyncMode.

  • Page 26
    Reversal of the master axis movement / reverse motion stop ROLL INSTANT Synchro- Description BACK STOP nous LOCK phase ROLLBACK  reached?   Case 3: As in case 2, except that the velocity of the slave axis is reduced to zero within one tick after reaching the coupling position.
  • Page 27
    Reversal of the master axis movement / reverse motion stop ROLL INSTANT Synchro- Description BACK STOP nous LOCK phase ROLLBACK  reached? The bit combination indicated on the left is used to activate the backstop of the Universal Flying Saw.  In the figure below, a motion reversal of the master axis occurs in the synchronous phase, so that it moves backwards beyond the coupling position.
  • Page 28
    Reversal of the master axis movement / reverse motion stop ROLL INSTANT Synchro- Description BACK STOP nous LOCK phase ROLLBACK  reached?   Version: 1.3 TS5055…
  • Page 29: Diagonal Saw

    Diagonal saw Diagonal saw The simplest case of the diagonal saw involves synchronization to velocity. In contrast to the Flying Saw, where the angle between the directions of the master and the slave movements is given, the coupling factor is given for the Universal Flying Saw. This coupling factor must be calculated in such a way that in the synchronized phase the component of the velocity of the slave axis in the direction of the master axis is the same as the master velocity.

  • Page 30: Interfaces

    Interfaces Interfaces Cyclic axis interface The variable nAxisState in the cyclic axis interface indicates the state of movement of the slave or master axis. The movement states of the slave axis are described in the table. All those states that are not listed are master states, and these are explained elsewhere.

  • Page 31
    Interfaces ADS interface Documentation of the ADS interface. TS5055 Version: 1.3…
  • Page 32: Operation From The System Manager

    Operation from the System Manager Operation from the System Manager For commissioning purposes the Universal Flying Saw can also be started directly from the System Manager. Version: 1.3 TS5055…

  • Page 33: Plc Api

    PLC API PLC API In many plants workpieces undergo machining operations while being transported. For this purpose it is necessary to synchronise the position and the speed of tool and workpiece, so that the tool can then be applied as if to a stationary workpiece. One example of such an application is a saw that during the transport process cuts through the material that is being transported (flying saw).

  • Page 34
    PLC API     Deceleration     : LREAL;     Jerk             : LREAL;     BufferMode       : MC_BufferMode;     Options          : ST_GearInVeloOptions; END_VAR Execute The command is executed with a rising edge at Execute input. RatioNumerator Gear ratio numerator. Alternatively, the gear ratio can be specified as a floating point value, if the denominator is 1. RatioDenominator Gear ratio denominator SyncMode…
  • Page 35
    PLC API Active Active indicates that the command is executed (currently Active=Busy, see BufferMode) CommandAborted Becomes TRUE, if the command could not be fully executed. The axis may have become decoupled during the coupling process (simultaneous command execution). Error Becomes TRUE, as soon as an error occurs. ErrorID If the error output is set, this parameter supplies the error number, see Overview of NC errors (TC2).
  • Page 36: Mc_Gearinpos

    PLC API 12.1.2 MC_GearInPos MC_GearInPos Execute  BOOL BOOL  StartSync RatioNumerator  LREAL BOOL  InSync RatioDenominator  UINT BOOL  Busy MasterSyncPosition  LREAL BOOL  Active SlaveSyncPosition  LREAL BOOL  CommandAborted SyncMode  ST_SyncMode BOOL  Error MasterStartDistance  LREAL UDINT  ErrorID Velocity  LREAL Acceleration  LREAL Deceleration  LREAL Jerk  LREAL BufferMode  MC_BufferMode Options  ST_GearInPosOptions ↔ Master  Reference To AXIS_REF ↔ Slave  Reference To AXIS_REF The function block MC_GearInPos synchronizes a slave axis precisely with a master axis (flying saw). The synchronization velocity is achieved exactly at the synchronous position of the master and slave.

  • Page 37
    PLC API Acceleration Maximum slave acceleration in the synchronization phase. If an acceleration is not specified, the maximum acceleration of the axis from the System Manager data is used. The acceleration given here is only checked if this checking is activated through the SyncMode [} 41] variable.
  • Page 38
    PLC API The axis data structure of type AXIS_REF addresses an axis unambiguously within the system. Among other parameters it contains the current axis status, including position, velocity or error state. Version: 1.3 TS5055…
  • Page 39: Mc_Readflyingsawcharacteristics

    PLC API 12.1.3 MC_ReadFlyingSawCharacteristics MC_ReadFlyingSawCharacteristics Execute  BOOL BOOL  Done ↔ Slave  Reference To AXIS_REF BOOL  Busy ↔ CamTableCharac  Reference To MC_FlyingSawCharacValues BOOL  Error UDINT  ErrorID The MC_ReadFlyingSawCharacteristics function allows the characteristic figures for the synchronization phase of the Universal Flying Saw to be read. Inputs VAR_INPUT     Execute  : BOOL; END_VAR Execute A rising edge initiates reading the characteristic values from the TwinCAT NC.

  • Page 40: Tcmc2

    MC_MoveVelocity command. In TwinCAT 2.10, the setpoint generator type can be selected by the user. From TwinCAT 2.11, the setpoint generator type is set to «7 phases (opti- mized)». The behavior described here is the result of a project update from TwinCAT 2.10 to TwinCAT 2.11.

  • Page 41: Data Types

    PLC API The axis data structure of type AXIS_REF addresses an axis uniquely within the system. Among other parameters it contains the current axis status, including position, velocity or error status. 12.3 Data types 12.3.1 ST_SyncMode TYPE ST_SyncMode : STRUCT     (* mode *)     GearInSyncMode                          : E_GearInSyncMode;…

  • Page 42: Mc_Flyingsawcharacvalues

    PLC API 12.3.2 MC_FlyingSawCharacValues TYPE MC_FlyingSawCharacValues : STRUCT     (* Master Velocity*)     fMasterVeloNom     : LREAL; (* 1. master nominal velocity (normed:=> 1.0) *)     (* characteristic slave data *)     (*===========================*)     (* Start of cam table *)     fMasterPosStart    : LREAL; (* 2. master start position*)     fSlavePosStart     : LREAL;…

  • Page 43
    PLC API Type definition for the characteristic parameters of a flying saw synchronization. TS5055 Version: 1.3…
  • Page 44: Example Program

    The example program requires the flying saw library and operates fully in simulation mode. Progress can be monitored in TwinCAT Scope View with the configuration provided. Click here to save the example program: https://infosys.beckhoff.com/content/1033/TS5055_TCNC_FlyingSaw/Resources/437571723/.zip Version: 1.3 TS5055…

  • Page 45: Error Situations And Error Codes

    Error situations and error codes: Error situations and error codes: The following situations and/or parameters are not permitted, and result in errors: • The Universal Flying Saw cannot at present be coupled if the master velocity at the coupling time is zero, but the slave velocity is not zero.

  • Page 47
    More Information: www.beckhoff.com/ts5055 Beckhoff Automation GmbH & Co. KG Hülshorstweg 20 33415 Verl Germany Phone: +49 5246 9630 info@beckhoff.com www.beckhoff.com…

Понравилась статья? Поделить с друзьями:
  • Миредин лекарство индия от чего помогает инструкция по применению взрослым
  • Книга артема фролова йогатерапия практическое руководство
  • Офтоципро мазь глазная инструкция по применению взрослым от чего помогает
  • Clavamox инструкция по применению на русском языке
  • Фолиевая кислота здравсити инструкция по применению