广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1344|回复: 9

HMI 曲线控件 如何清除曲线显示

[复制链接]

7

主题

18

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2023-3-20 23:01:27 | 显示全部楼层 |阅读模式
HMI上位机版本1.1.333, DC80480AM050_1011_0T
我设置了一个曲线控件, 数据是连续地址方式,数据地址0X4020, 数据类型U32位, 数据点数200, 一条曲线

想要点击按钮清除曲线的显示, 所以定义了一个用户变量, 0X4006, MCU写入值的时候, LUA检测变化, 然后将0X4020之后400字写0
我理解每个地址是16位的,我的曲线数据是32位的,因此200数据点, 需要清零的是400字
实际上MCU写0X4006地址后,曲线依旧显示, 没有变化.

另外, 设置Y周最大值,貌似也没有变化,曲线所在页面是1,控件ID是1001, 我定义0X4000作为Y最大值的存储位置, MCU向此地址写入32位变量
LUA检测0X4000, 0X4001变化,就将值读出,然后设置给曲线控件, 貌似也没变化.

下面是lua部分代码

--数据类型定义
VT_LW = 1    --变量地址
VT_RW = 2    --FLASH存储

function on_update(slave,vtype,addr)
if vtype == VT_LW
    then
        if addr == 0x4000
        then
            local _max = get_uint32(VT_LW, 0x4000)
            wgt_set_param(1, 1001, 0x32, _max)
        elseif addr == 0x4001
        then
            local _max = get_uint32(VT_LW, 0x4000)
            wgt_set_param(1, 1001, 0x32, _max)
        elseif addr == 0x4006
                then
                        set_uint16(2,0x4006,0) --清空触发变量
                        local men = 0
                        while(men < 400)
                        do
                                set_uint16(2,0x4020+men,0) --清空曲线内存,注意这里是按照16清除的,字节数x2
                        end   
        end
    end
end


回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12526
发表于 2023-3-21 08:50:54 | 显示全部楼层
清空曲线,在资料采样里面有控制地址,写0x0055就可以清掉曲线数据
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12526
发表于 2023-3-21 09:14:35 | 显示全部楼层
on_update这个回调函数有点类似TFT的on_control_notify,需要从屏幕侧主动修改才会触发这个函数
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

7

主题

18

帖子

133

积分

注册会员

Rank: 2

积分
133
 楼主| 发表于 2023-3-21 12:45:08 | 显示全部楼层
If后要接end 发表于 2023-3-21 08:50
清空曲线,在资料采样里面有控制地址,写0x0055就可以清掉曲线数据

我是用的 连续地址模式 这个模式下, 我看说明中控制地址的作用是设置隐藏或者显示某条曲线,这种情况,在哪里快速清除曲线或者对应的内存呢, 只能用MCU自己做吗?

另外,设置Y轴数据最大值, 这个我看说明只能通过lua来实现, 那么不点击屏幕的情况下, 如何使用MCU发送数据来通知lua设置Y轴最大值呢?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12526
发表于 2023-3-21 15:13:06 | 显示全部楼层
资料采集,里面有一个控制地址的选项,绑定一个变量来清除曲线
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

7

主题

18

帖子

133

积分

注册会员

Rank: 2

积分
133
 楼主| 发表于 2023-3-21 15:20:28 | 显示全部楼层
If后要接end 发表于 2023-3-21 15:13
资料采集,里面有一个控制地址的选项,绑定一个变量来清除曲线

选择曲线的数据来源为 连续地址 之后, 整个属性界面只有曲线设置下面有个 控制地址 其他地方没有看到呀, 能给个截图看看吗, 这个控制地址是不是控制曲线是否显示的? 而不是清除曲线的数据
另外就是MCU和lua配合, 实现mcu修改Y轴最大值, 这个如何实现?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12526
发表于 2023-3-21 15:22:36 | 显示全部楼层
改y轴这个,可以试试设置两个变量a,b,a是当前y轴的最值,b在定时器里面,一直获取A地址的数值。你用指令改这个A地址的数值,定时器里面一直判断a,b两个数值是否相同,不相同就将当前y轴的最值改成最新修改的值,同时将a赋值为b
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12526
发表于 2023-3-21 15:26:21 | 显示全部楼层
工程-资料采样里面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

7

主题

18

帖子

133

积分

注册会员

Rank: 2

积分
133
 楼主| 发表于 2023-3-21 16:34:11 | 显示全部楼层

连续地址模式下, 是没有这个设置界面的.
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12526
发表于 2023-3-21 16:50:19 | 显示全部楼层
连续地址模式下的话,只有显示隐藏了。清空的话把这些地址都写0
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-3-29 00:40 , Processed in 0.059454 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表