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

主题:新版的EBproV6.01.02.146_20180911遇到的问题

点击:3497 回复:2

楼主
触摸屏型号是MT6103IP
PLC是松下XH-c60
我之前用的旧版本EBPro写的程序,触摸屏运行一直正常
后来升级成EBproV6.01.02.146_20180911,写入后就不正常了,是一个宏指令不正常
我这个宏指令是这样运行的:
1、读出触摸屏的时钟数据
2、在时钟等于0分0秒的时候,把PLC的自动运行时间清零,这样每个小时都会清空数据
宏设定成500ms执行一次
 
附件 1.jpg
附件 2.jpg
软件的下载日期
 
附件 下载时间.jpg
这是未升级软件之前的,每个小时都能正常清零
附件 2018-10-09_0002.jpg
附件 2018-10-09_0003.jpg
这是升级成最新版的,出现不能清零的情况
附件 2018-10-20_0001.jpg
附件 2018-10-20_0002.jpg
这是软件的BUG还是什么?
更新软件后,有时能清零,有时不能清零,运行时间大于60的就是不能清零的数据
现在附上整个宏的源代码
macro_command main()
int ibasic=50000//宅基地
short rd_sdate[5]//[0]秒,[1]分,[2]时,[3]日,[4]月读出
bool rd_bclear[2]//两个清零按钮读出,0:进料清零;1:出料清零
int rd_ifeedNew,ifeedOld//进料
int rd_iexportNew,iexportOld//出料
short rd_sAutoTime//自动运行时间,由PLC计算
short rd_sAlmTime//故障时间,由PLC计算
int iTimeOffset,iDateOffset,iOffset//时间偏移,日期偏移,每小时偏移
short wr_sbuf[4]//写入报表的缓冲区
short soff=0
int ioff=0,a
bool boff=0
short sfeedNow//当前时间进料数
short sexportNow//当前时间出料数
bool bfirst,bfirst2//第1次
GetData(rd_sdate[0], "Local HMI", LW, 9017, 5)//[0]秒,[1]分,[2]时,[3]日,[4]月读出
//GetData(rd_sdate[0], "Local HMI", LW, 10002, 2)
GetData(rd_ifeedNew, "Panasonic FP/KW", DT, 650, 1)//进料
GetData(rd_iexportNew, "Panasonic FP/KW", DT, 652, 1)//出料
GetData(rd_sAutoTime, "Panasonic FP/KW", DT, 654, 1)//自动运行时间
GetData(rd_sAlmTime, "Panasonic FP/KW", DT, 656, 1)//故障时间
GetData(rd_bclear[0], "Local HMI", LB, 350, 2)//两个清零按钮读出
//计算偏移
iTimeOffset=rd_sdate[2]*20//时
iDateOffset=(rd_sdate[3]-1)*500//日
iOffset=iTimeOffset+iDateOffset+ibasic
//0时,0分,1秒,清空当天数据,避免上月残留
//[0]秒,[1]分,[2]时,[3]日,[4]月
if rd_sdate[2]==0 and rd_sdate[1]==0 and rd_sdate[0]==1 and bfirst2==0 then
               for a=0 to 499
                       SetData(ioff, "Local HMI", RW_A, iOffset+a, 1)
               next
               ifeedOld=0
               iexportOld=0
               SetData(ioff, "Panasonic FP/KW", DT, 650, 1)//进料总数
               SetData(ioff, "Panasonic FP/KW", DT, 652, 1)//出料总数
       bfirst2=1
end if
if rd_sdate[2]==0 and rd_sdate[1]==0 and rd_sdate[0]==5 then
       bfirst2=0
end if
//数据排序写入缓冲区
wr_sbuf[0]=sfeedNow
wr_sbuf[1]=sexportNow
wr_sbuf[2]=rd_sAutoTime
wr_sbuf[3]=rd_sAlmTime
SetData(wr_sbuf[0], "Local HMI", RW_A, iOffset, 4)
SetData(rd_sdate[4], "Local HMI", RW_A, iDateOffset+ibasic+480, 1)//月写入
SetData(rd_sdate[3], "Local HMI", RW_A, iDateOffset+ibasic+481, 1)//日写入
//TRACE("iTimeOffset=%d,iDateOffset=%d,iOffset=%d",iTimeOffset,iDateOffset,iOffset)
//旧数据只在00分00秒读出,新数据一直在读出,新数据-旧数据=当前时间的数量
//[0]秒,[1]分,[2]时,[3]日,[4]月
if rd_sdate[1]==0 and rd_sdate[0]==0 and bfirst==0 then
       ifeedOld=rd_ifeedNew
       iexportOld=rd_iexportNew
       SetData(soff, "Panasonic FP/KW", DT, 654, 1)//自动运行时间清零
       SetData(soff, "Panasonic FP/KW", DT, 656, 1)//故障时间清零
       bfirst=1
end if
//[0]秒,[1]分,[2]时,[3]日,[4]月
if rd_sdate[0]>0 then
       sfeedNow=rd_ifeedNew - ifeedOld//进料数量计算
               if rd_bclear[0]==1 then//清零按钮
                       ifeedOld=(sfeedNow*(-1))
                       SetData(ioff, "Panasonic FP/KW", DT, 650, 1)//清零
                       SetData(boff, "Local HMI", LB, 350, 1)//关按钮
               end if
       sexportNow=rd_iexportNew-iexportOld//出料数量计算
               if rd_bclear[1]==1 then
                       iexportOld=(sexportNow*(-1))
                       SetData(ioff, "Panasonic FP/KW", DT, 652, 1)//清零
                       SetData(boff, "Local HMI", LB, 351, 1)//关按钮
               end if
       bfirst=0
end if
end macro_command
最后修改:2018/11/24 13:59:04
18-11-24 13:55
EBproV6.01.02.146版有宏指令错误,目前EBproV60102276版本修复了之前版本宏指令错误。
附件 1.jpg
18-11-25 19:26
确实是版本问题,我这很多比较“追新”的客户已经有出现,参考楼上下载2276版本就好了
18-11-26 17:12

工控新闻

更多新闻资讯