PLC, HMI, SCADA, INVERTERS, TUTORIALS, INDUSTRIAL AUTOMATION

11:41
PLC SIEMENS connection TDE MACNO OPDE PROFIBUS TIA PORTAL SCL

 

**************************************************************************************************************************
  ПАРАМЕТРЫ ПРИВОДА ДЛЯ СВЯЗИ С 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

Категория: TDE MACNO (BDF Digital) | Просмотров: 634 | Добавил: gt7600 | Теги: PROFIBUS, TDE MACNO, GSD, OPDE, TIA PORTAL, siemens | Рейтинг: 5.0/1
Всего комментариев: 0
avatar