**************************************************************************************************************************
ПАРАМЕТРЫ ПРИВОДА ДЛЯ СВЯЗИ С PLC ПО PROFIBUS
**************************************************************************************************************************
// Для активации работы привода TDE в сети PROFIBUS необходимо задать параметры в программе OPDExplorer, эти параметры находятся в дереве проекта по следующему пути: \\ALL_PARAMETERS\FIELDBUS\PROFIBUS\NEW_MANAGE\CONFIGURATION AND STATE
//
// EN_FLDBUS = Profibus \\ C64 - Активация полевой шины PROFIBUS
// EN_FLDBUS_REF = Yes \\ E47 - Активация заданных значений полевой шины
// NODE_SLAVE_ADDR = Address profibus \\ Адрес привода в сети PROFIBUS
// DATA_CONSISTANCE = No \\ Согласованность обмена данных
// EN_ACYCLC_DATA = No \\ Активация ациклического обмена данными - область PKW
// EN_BIG_ENDIAN = Yes \\ Первый переданный байт более значимый
Исходящая телеграмма PLC - Inverter (см. стр.15 мануала profibus TDE (PROFIBUS_ATTACHMENT_V_1.6_EN.pdf))
//
// ПУТЬ OPDExplorer \\ALL_PARAMETERS\FIELDBUS\PROFIBUS\NEW_MANAGE\CYCLIC MAPPING
//
// RX0_INDEX = 201F Command \\ Битовое слово управление
// RX0_SUBINDEX = 0
// RX1_INDEX = 201A Speed \\ Слово задания скорости 0-100% = 0-16384 Integer
// RX1_SUBINDEX = 0
// RX2_INDEX = 201B SymTorqueLimit \\ Слово управления предельным крутящим моментом 0-100% = 0-4095 Integer
// RX2_SUBINDEX = 0
// Входящая телеграмма PLC <- Inverter (см. стр.15 мануала profibus TDE)
//
// TX0_INDEX = 2017 Status \\ Статусное слово
// TX0_SUBINDEX = 0
// TX1_INDEX = 2018 Alarm word \\ Слово неисправностей
// TX1_SUBINDEX = 0
// TX2_INDEX = 200F Torque used \\ Слово крутящего момента
// TX2_SUBINDEX = 5
// TX3_INDEX = 2026 Position 32 bit \\ Значение с энкодера
// TX3_SUBINDEX = 0
// ВНИМАНИЕ! Команда запуска привода всегда должна быть подана через
// дискретные входа привода M1-4 (Команда запуска привода) и M1-2 (Внешнее разрешение)
// Другие полезные параметры
// EN_LIN_RAMP = Yes (Включение линейной рампы при управлении осью через PLC)
// MOT_SPD_MAX = максимальные обороты двигателя
// и далее... паспортные данные по двигателю
// После конфигурирования необходимо сохранить данные во FLASH памяти привода (C63=1) и
// перезагрузить привод снятием питающего напряжения
****************************************************************************************************************************
ПАРАМЕТРЫ PLC ДЛЯ СВЯЗИ С ПРИВОДОМ TDE ПО PROFIBUS
****************************************************************************************************************************
// Аппаратная конфигурация привода управляется GSD файлом OPDE.GSD
// конфигурация модуля 5 слов (10 байт) ввода и 5 слов (10 байт) вывода
// Структура телеграммы PLC -> Inverter
// PQW[ADDR+0] = битовое управляющее слово = бит 0= Logic input 1, бит 1= Logic input 2 , и т.д.
// PQW[ADDR+4] = задание скорости 16384 = 100% из MOT_SPD_MAX
// PQW[ADDR+6] = предельный крутящий момент +4096 = +100%
// Структура телеграммы PLC <- Inverter
// PIW[ADDR+0] = статусное слово = бит 8=готовность , bit 3=соединение по сети в норме и т.д. (см. стр.18 мануала profibus TDE)
// PIW[ADDR+2] = слово неисправностей = каждый бит - неисправность
// PIW[ADDR+4] = крутящий момент от номинального крутящего момента двигателя 4096 = 100%
// PID[ADDR+6] = позиция инкрементального энкодера
===== ТЕЛО ФУНКЦИИ ====
// Программное обеспечение связи
// Считывание слова состояния привода
#Status:=0; // Обнуление предыдущего статуса
#Status := %IW(#ADDR):P ; // Считывание статуса из привода
#NetworwOk := #Status<>0; // Если статус не равен 0, то с ним есть связь
#Ready := (#Status AND 2#0000000100000000)<>0; // бит 8 - готовность привода
IF #NetworwOk THEN
IF NOT #Ready AND #Enable THEN
#InverterFault:=true;
END_IF;
// Считывание слова неисправностей
#AlarmCode :="TDEAlarmCode"(%IW(#ADDR+2):P); // Вызов функции FC4, занимающейся обработкой алармов
// После исполнения результат работы функции запишется в переменную #AlarmCode
// Считывание крутящего момента двигателя
#Torque := INT_TO_REAL( WORD_TO_INT(%IW(#ADDR+4):P)) / 40.96;
// Считывание данных энкодера
#Encoder := DWORD_TO_DINT(%ID(#ADDR+6):P);
// Подготовка слова управления
#Command := 0; // обнуление
IF #Reset THEN // сброс
#Command := #Command OR 2#0000000100000000; // бит 1 - сброс
END_IF;
IF #Run AND #Enable THEN // одновременно команда "ВКЛ" и "РАЗРЕШЕНИЕ РАБОТЫ"
#Command := #Command OR 2#0000000000000001; // бит 0 - запуск привода
ELSE
#Torque:=0; // Если двигатель не в работе подменяем считанный момент 0, иначе будем видеть "пляски" десятичных знаков
END_IF;
// Посылка значений в привод
%QW(#ADDR+0):P := 0;
// слово управления
%QW(#ADDR+2):P :=#Command;
// задание скорости
%QW(#ADDR+4):P := INT_TO_WORD( REAL_TO_INT(#SpeedRef * 163.84) );
// управление крутящим моментом
%QW(#ADDR+6):P := INT_TO_WORD( REAL_TO_INT(#SymTorqueLimit * 40.96) );
ELSE // Если нет связи по сети
IF #Enable THEN // и есть команда "РАЗРЕШЕНИЕ РАБОТЫ"
#NetworkFault:=true; // взводим бит "НЕИСПРАВНОСТЬ СЕТИ"
END_IF;
#AlarmCode:=0; // обнуляем код неисправности, т.к. он недостоверен без связи
#Torque:=0.0; // также обнуляем значение момента двигателя
END_IF;
**************************************************************************************************************************
=== ВЫЗОВ ФУНКЦИИ ===
**************************************************************************************************************************
"TDE_ClosedLoop"(ADDR := 610 // IN: INT
,Enable := "PowerOn".Out.DriveEnable // IN: BOOL
,Reset := "PowerOn".Out.AlarmReset1Sec// IN: BOOL
,Run := ("Blade".Out.Run OR "OPEIAPDB".DisableBrakeAxisBlade) AND NOT "EnableSafeModeDrives" // IN: BOOL
,SpeedRef := "OPEIAPDB".InvertBladeAxis * ("Blade".Out.Speed) // IN: REAL
,SymTorqueLimit := #SelectedTorque // IN: REAL
,Torque => #NotUsedReal// OUT: REAL
,Encoder => "Blade".In.Encoder // OUT: DINT
,AlarmCode => "Global".Vrb.BladeAxisFaultCode// OUT: WORD
,InverterFault := "Global".Alm.BladeAxisInvFault // INOUT: BOOL
,NetworkFault := "Global".Alm.BladeAxisDPFault// INOUT: BOOL
); // VOID
Download/Скачать
Файл настройки инвертера - DMC3_38A1_300311578_07052021.tcn
GSD Файлы TDE MACNO
Manual PROFIBUS V1.6. pdf
Test_OPDE_PROFIBUS.zip - TIA PORTAL V14 |