登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:宏指令应用

点击:677 回复:2

公司有3台罗茨风机,分正常模式M450=1和省电模式M450=0,正常模式分连续运行M451=1和间隔运行M451=0还分1台M452=1与2台M452=0,
转换时间LW3110,间隔的运行时间LW3111,间隔的停止时间LW3112,
正常模式的连续运行就是轮流切换,如果是1台,那么就是1#2#3#轮流转换,如果是2台,就是1#2# 2#3# 3#1#这样轮流转换
正常模式的间隔运行就是假设运行2小时,然后又停2小时,运行的时间加起来到转换时间时再轮流切换,切换跟连续运行方式一样
省电模式是1台连续运行加一台间隔运行,间隔运行要能选择1#2#3#(LW3115=1、2、3),连续运行的两台要自动转换,假设2#为间隔,那么1#和3#轮流转换,假设3#为间隔,那么1#和2#轮流转换。
用的是优控一体机,这个PLC是FX1S的,FX1S功能指令比较少,我就用触摸屏的宏指令来写了。
附件 1.jpg
附件 2.jpg
附件 3.jpg
附件 4.jpg
附件 5.jpg
附件 6.jpg
20-11-16 11:09
这样一来,PLC里面的程序就很简单了。
附件 7879.jpg
20-11-16 11:10
#include "MacroInit.h"
void Macro_main()
{
//Put you code here
//or visit www.ykhmi.com to learn more
if(LB10==1)  //清零
{
LW3120=0;
LW3121=0;
LW3122=0;
LW3123=0;
LW3124=0;
LW3125=0;
LW3126=0;
LB10=0;
}
if(M450==1) //正常模式计时
{
if (YY4==1)
{
LW3120=LW3120+1;
}
if (YY5==1)
{
LW3121=LW3121+1;
}
if (YY6==1)
{
LW3122=LW3122+1;
}
}

if (M450==1 && M452==1)  //正常模式单台
{
if (LW3120 < LW3110)
{
M400=1;
M401=0;
M402=0;
}
if (LW3120 >= LW3110)
{
M400=0;
M401=1;
M402=0;
}
if (LW3121 >= LW3110)
{
M400=0;
M401=0;
M402=1;
}
if (LW3122 >= LW3110)
{
M402=0;
LW3120=0;
LW3121=0;
LW3122=0;
}
}
if (M450==1 && M452==0)//正常模式两台
{
if (LW3120 < LW3110)
{
M400=1;
M401=1;
M402=0;
}
if (LW3120 >= LW3110)
{
M400=1;
M401=0;
M402=1;
}
if (LW3122 >= LW3110)
{
M400=0;
M401=1;
M402=1;
}
if (LW3121 >= LW3110*2)
{
M401=0;
M402=0;
LW3120=0;
LW3121=0;
LW3122=0;
}
}
if (M450==1 && M451==1)  //连续运行
{
M410=M400;
M411=M401;
M412=M402;
LW3123=0;
LW3124=0;
}
if( M450==1 && M451==0)  //间隔运行
{
if (YY4==1 || YY5==1 || YY6==1)
{
LW3123=LW3123+1;
}
if (LW3123>= LW3111)
{
M410=0;
M411=0;
M412=0;
LW3124=LW3124+1;
}
if (LW3124>= LW3112)
{
M410=M400;
M411=M401;
M412=M402;
LW3123=0;
LW3124=0;
}
}
if (M450==0)  //省电模式
{
if (LW3123 {
M400=1;
}
if (M400==1 && (YY4==1 || YY5==1 || YY6==1))
{
LW3123=LW3123+1;
}
if (LW3123>=LW3111)
{
M400=0;
LW3124=LW3124+1;
}
if (LW3124>=LW3112)
{
LW3123=0;
LW3124=0;
}
if (LW3125< LW3110)
{
M401=1;
M402=0;
}
if (M401==1 && (YY4==1 || YY5==1 || YY6==1))
{
LW3125=LW3125+1;
}
if (LW3125>=LW3110)
{
M402=1;
M401=0;
}
if (M402==1 && (YY4==1 || YY5==1 || YY6==1))
{
LW3126=LW3126+1;
}
if (LW3126>=LW3110)
{
M402=0;
LW3125=0;
LW3126=0;
}
if (LW3115==1)  // 1号省电
{
M410=M400;
M411=M401;
M412=M402;
}
if (LW3115==2)  // 2号省电
{
M410=M401;
M411=M400;
M412=M402;
}
if (LW3115==3)   // 3号省电
{
M410=M401;
M411=M402;
M412=M400;
}
}
}
20-11-16 11:11

工控新闻

更多新闻资讯