1672290675979765.png

1、由于变频器内部累计运行时间关系到变频器是否在质保内,因此变频器内部累计运行时间不可清零,但是客户想要累计运行时间可进行清零操作,便于设备厂家对设备进行管理,故HMI所显示累计时间需要在HMI内部通过宏程序处理。如上图所示,界面左上角按钮为清零按钮,指示灯为清零动作指示。



2、宏程序:累计时间清零宏程序见下图,变量“leijijishi”为变频器累计运行时间地址,变量“xianshizhi”为HMI最终显示的累计时间,变量“qingling”为清零按钮,变量“LED”为清零动作指示。



3、宏程序调用:如下图所示,选择公共窗口-窗口属性-定时器,进行宏程序调用,触发条件选择窗口打开时触发,定时器功能勾选执行宏指令,并选择“jishuqingling”宏程序。

通用宏程序调用.png通用宏程序调用1.png



4、清零按钮:如下图所示,清零按钮分别在按下和弹起时执行动作,同时为了防止非厂家管理人员误操作,并对清零按钮进行延时5S的设置。

清零按钮.png清零按钮延时.png



5、指示灯:如下图,进行清零动作指示,考虑到界面美观,没有清零动作时,指示灯隐藏。

指示灯.png指示灯隐藏.png



6、累计时间:如下图,累计时间地址更改为RW20006。

累计运行时间.png



7、程序代码:

#include <macro.h>

int MacroMain()
{
    // Here to add macro code.
    unsigned short A = GetWord(@leijijishi@,0);
    unsigned short B = GetWord(@huancunzhi@,0);
    unsigned short C ;///= GetWord(@baochizhi@,0);
    //unsigned short D = GetWord(@xianshizhi@,0);
    unsigned short D;

    bool QL = GetBit(@qingling@,0);
    bool LED;

    D = A - B;
    C = D;
    if (QL == 1)
        {     
            B = B + C; 
          SetBit(@LED@,0,1);
        }
        else
        {    

          SetBit(@LED@,0,0);

        }
    SetWord(@huancunzhi@,0,B);    
    SetWord(@baochizhi@,0,C);    
    SetWord(@xianshizhi@,0,D);    


    return 0;
}