欢迎光临
我们一直在努力

西门子PLC结构化编程_变频器报文控制功能块

文章目录

  • 前言
  • 一、功能概述
  • 二、变频器控制程序编写
    • 1. 新建自定义数据类型“11_VFDType”
    • 2. 新建FC块“FC613_VFDControl”
    • 3. 编程
  • 三、通讯程序编写
  • 总结

前言

在之前的文章中,我们介绍了西门子G120变频器在博途中的参数设置方法,见文章《西门子G120变频器参数设置教程及Startdrive软件使用方法》。 本文基于以上文章中提到的西门子报文352,编写一个变频器报文控制功能块。


一、功能概述

  • 控制变频器正向运行、反向运行、急停、故障复位;
  • 输出正转、反转速度/频率给定值;
  • 计算变频器反馈的速度、电流、频率、转矩等数值。
  • 二、变频器控制程序编写

    1. 新建自定义数据类型“11_VFDType”

    在这里插入图片描述 在这里插入图片描述 图1

    2. 新建FC块“FC613_VFDControl”

    添加如下引脚变量: 在这里插入图片描述 图2

    3. 编程

    程序段1:变频正向运行DO 在这里插入图片描述 程序段2:变频反向运行DO 在这里插入图片描述 程序段3:反馈值计算

    REGION 电流反馈值

    #IntST_I := WORD_TO_INT(#Drive.ST_I);
    IF #IntST_I < 0 THEN
    #IntST_I := 0;
    ELSIF
    #IntST_I > 16384 THEN
    #IntST_I := 16384;
    END_IF;

    IF #Drive.STW1_Bit2 THEN
    #CurrentValue := INT_TO_REAL(#IntST_I) * #CurrentRange / 16384.0;
    ELSE
    #CurrentValue := 0;
    END_IF;

    END_REGION

    REGION 速度反馈值

    #IntST_S := WORD_TO_INT(#Drive.ST_S);
    IF #IntST_S < 0 THEN
    #IntST_S := 0;
    ELSIF
    #IntST_S > 16384 THEN
    #IntST_S := 16384;
    END_IF;

    IF #Drive.STW1_Bit2 THEN
    #SpeedValue := INT_TO_REAL(#IntST_S) * #SpeedRange / 16384.0;
    ELSE
    #SpeedValue := 0;
    END_IF;

    END_REGION

    REGION 转矩反馈值

    #IntST_T := WORD_TO_INT(#Drive.ST_T);
    IF #IntST_T < 0 THEN
    #IntST_T := 0;
    ELSIF
    #IntST_T > 16384 THEN
    #IntST_T := 16384;
    END_IF;

    IF #Drive.STW1_Bit2 THEN
    #TorqueValue := INT_TO_REAL(#IntST_T) * #TorqueRange / 16384.0;
    ELSE
    #TorqueValue := 0;
    END_IF;

    END_REGION

    程序段4:启动停止命令 在这里插入图片描述 程序段5:急停命令 在这里插入图片描述 程序段6:故障复位 在这里插入图片描述 程序段7:正转、反转速度/频率设定值 在这里插入图片描述 程序段8:设定值计算

    REGION 速度设定值

    IF #TempSpeedSet < 0.0 THEN
    #TempSpeedSet := 0.0;
    ELSIF
    #TempSpeedSet > #SpeedRange THEN
    #TempSpeedSet := #SpeedRange;
    END_IF;

    #Speed_AO := REAL_TO_INT(#TempSpeedSet / #SpeedRange * 16384.0);

    END_REGION

    REGION 频率设定值

    IF #TempFrequencySet < 0.0 THEN
    #TempFrequencySet := 0.0;
    ELSIF
    #TempFrequencySet > 50.0 THEN
    #TempFrequencySet := 50.0;
    END_IF;

    #Frequency_AO := REAL_TO_INT(#TempFrequencySet / 50.0 * 16384.0);

    END_REGION

    IF NOT #HMIMode THEN
    #Drive.CW_S_Set := INT_TO_WORD(#Frequency_AO);
    ELSE
    #Drive.CW_S_Set := INT_TO_WORD(#Speed_AO);
    END_IF;

    三、通讯程序编写

    打开设备试图,选择变频器-属性-系统常数,得知西门子报文352的硬件标识符为272。 在这里插入图片描述 图3 通过DPRD_DAT和DPWR_DAT指令,读写变频器数据。 在这里插入图片描述


    总结

    本文基于西门子G120变频器报文352,设计了变频器控制功能块。

    赞(0)
    未经允许不得转载:171主机测评 » 西门子PLC结构化编程_变频器报文控制功能块
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址