mcgs角度坐标动图显示

本文介绍了一种在mcgs触摸屏上通过XY曲线控件实现罐车液体倾斜角度动态显示的方法,避免了直接数值显示的不直观性,通过编程脚本计算并更新曲线坐标,使得角度可视化更直观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、灵感背景

        一个自动化朋友在做项目时候,有一个罐车,里面装满液体,罐体在运输途中,液体晃动角度不能够太大,要进行倾斜角度显示,直接在mcgs触摸屏上用数值显示客户反应不够直观,说有没有办法能够做一个动图显示示意角度,让我给帮忙给编写一下教程,在这里我就给大家讲解一下如何显示角度动图。

二、思路

        用过mcgs触摸屏的都了解在mcgspro软件组态中没有旋转动图相关设置,只有大小变化和垂直变化,这样是无法做倾斜角度显示的。

1、思路一

        用图片状态显示,将不同角度图片用多状态指示控件显示图片,此方法麻烦,并且对mcgs触摸屏内存有要求,毕竟要很多图片进行显示,此方法我门也不考虑。

2、思路二

        采用mcgs旋转仪表控件,此方法能够动态显示角度,但是不够直观,和直接显示角度数值相比还差一些,此方法我们也不采用。

3、思路三

        我们再考虑一下是否还有其他方法能够直观显示倾斜角度方法,想要直观显示,我们最好要有参照物,XY坐标系就可以直观显示相对于X轴角度和Y轴角度,有了思路我们接下来就是考虑如何实现用坐标系进行显示倾斜角度。

三、编程

1、制作罐车画面

        因为是罐车,装载液体,制作画面比较简单,在mcgs组态构建里面就有,直接拖拽出来即可。

2、建立坐标系

        2.1"XY曲线"控件

                建立坐标系,我们可以用"XY曲线"控件。进入属性按照下面参数设置。

                基本属性设置如下

                标注属性如图

                曲线属性如下图,x值,y值为全局变量字符串。

将xy曲线控件移动罐车图上,如图

        2.2脚本编写

        我们编写脚本,首先要明白xy曲线控件字符串如何显示,下面是设置说明

字符串:

(a) X值与Y值取自不同字符串,数据取自XY字符串

(b) XY字符串,点击按钮选择一个字符串变量

(c) X字符串,点击按钮选择一个字符串变量

(d) Y字符串,点击按钮选择一个字符串变量

(e) X步进值,点击按钮选择一个整数变量,可输入常量,为趋势图时有效

备注:字符串的分隔符支持逗号(,),换行符(0x0D 0x0A),回车符(0x0D),换行符(0x0A)。

示例1: 10,20,30,40,50,60

示例2:组态脚本为:”10”+!I2Ascii(13)+!I2Ascii(10) +”20”+!I2Ascii(13)+!I2Ascii(10) +”30”+!I2Ascii(13)+!I2Ascii(10) +”40”+!I2Ascii(13)+!I2Ascii(10)产生如下4行字符串:

                                          10

                                          20

                                          30

                                          40

l   线型:设置曲线的线宽;

l   颜色:设置曲线的颜色;

l   X值(检视输出):绑定变量用于显示检视点的X值检视输出;

l   Y值(检视输出):绑定变量用于显示检视点的Y值检视输出。

l   曲线类型为xy曲线时,检视点为十字检视线交叉点。

l   曲线类型为趋势图时,检视点为竖线,检视输出下一个数据点,如果只有一个点,则只当检视线在点附近4像素内才输出,否则输出无效值。
 

根据帮助说明我们可以设置曲线字符串:x值=-100,100  y值=-100,100 ,曲线就会成45度

我们在窗口循环脚本里面编写脚本,将循环时间改成500ms,使其刷新快一些,现在已经知道角度值,和线段长度-100到100,如何计算曲线坐标,这就用到三角函数x1=-100*cos弧度 x2=100*cos弧度,y1=-100*sin弧度,y2=100*sin弧度。

这里我们需要将角度转化成弧度,用到函数

ToRad(x)

函数意义: 将角度转换为弧度

参    数: x,浮点数

返 回 值: 浮点数

实    例: ret =!ToRad(45),ret = 0.785398

计算完后再将数值转换成字符,用函数

Str(x)

函数意义: 将浮点数变量x的值转换成字符串

参    数: x,浮点数

返 回 值: 字符串

实    例: ret = !Str(0.712),ret ="0.712" 
ret = !Str(12345678),ret ="1.23457e7"

注意事项: 自动选择指数形式或普通小数形式(保留6位)

我们编写脚本,这里角度为浮点数全局变量

''''''角度动图显示'''''''
'''角度为整数,X值/Y值为字符串
x值=!Str(-100.0 * !cos(!ToRad(角度))) +  ","+!Str(100.0 * !cos(!ToRad(角度)))'X曲线字符串
y值=!Str(-100.0 * !sin(!ToRad(角度))) + "," +!Str(100.0 * !sin(!ToRad(角度)))'y曲线字符串

再刷新一下控件6.就是xy曲线构建

窗口0.控件6.Refresh( )'刷新构建

这样我们就完成角度动图,在窗口添加输入框连接角度变量,模拟运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海哥自动化编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值