mcgs角度坐标动图显示

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

一、灵感背景

        一个自动化朋友在做项目时候,有一个罐车,里面装满液体,罐体在运输途中,液体晃动角度不能够太大,要进行倾斜角度显示,直接在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( )'刷新构建

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

<think>嗯,用户这次的问题很具体,是关于MCGS Pro组态软件中数值显示状态的设置方法。用户可能正在工程现场调试设备,或者在做毕业设计,需要快速解决这个技术细节。 从问题表述看,用户对MCGS Pro应该有一定基础操作能力,但可能不熟悉状态显示这个细分功能。考虑到工业控制软件的特殊性,需要给出精确到菜单层级的操作指引。用户没有提供具体版本信息,但MCGS Pro的界面逻辑比较统一,所以按通用版本说明即可。 需要重点说明几个关键点:首先是状态设置的位置,用户最容易在属性窗口里找不到这个选项;其次是颜色关联逻辑,这个涉及到变量绑定和条件判断的组合应用;最后要提醒常见错误,比如用户经常忘记启用“显示状态”复选框。 突然想到用户可能还想实现态变色效果,比如数值超限时闪烁。虽然用户没明说,但这是工业场景的常见需求,所以补充了进阶提示部分。还应该强调实时数据库的重要性,因为所有状态判断都依赖变量配置。 最后生成的三个问题都围绕延伸需求:性能优化针对大型工程,画效果是视觉增强,而状态组管理则是高级功能。这样覆盖了从基础到进阶的需求层次。 对了,引用标识要自然融入操作步骤中。比如在说颜色设置时引用属性窗口说明,这样既专业又不会打断阅读流。工业软件用户通常更喜欢直接明了的步骤说明,所以把操作流程拆解成编号条目会更友好。</think>以下是MCGS Pro中数值显示状态设置的方法及常见问题解决方案,请按步骤操作: ### 一、基础设置步骤 1. **添加显示元件** 在用户窗口中双击进入编辑 → 从工具箱拖拽「标签」或「数值显示」控件到画面。 2. **绑定变量** 右键控件 → 属性 → 基本属性 → 连接变量: ```mermaid graph LR A[选择变量] --> B[实时数据库] B --> C[选择已有变量] C --> D[确认关联] ``` 3. **启用状态显示** - 属性窗口 → 显示属性 → 勾选 **√ 显示状态** - 状态设置 → 添加状态(如:正常/报警/故障)[^1] 4. **配置状态条件** | 状态名称 | 条件表达式 | 文本颜色 | 填充颜色 | |----------|------------------|----------|----------| | 正常 | `Var<=50` | 绿色 | 无 | | 报警 | `Var>50&&Var<80`| 黄色 | 浅黄 | | 危险 | `Var>=80` | 红色 | 粉红 | ### 二、进阶应用技巧 1. **态效果增强** - 闪烁效果:在状态条件中启用 **闪烁** 选项,设置闪烁周期(如:500ms) - 边框变化:不同状态下修改边框粗细/样式(实线/虚线) 2. **多状态组管理** 当需要同时控制多个元件状态时: ```lua -- 脚本示例(窗口循环脚本) if 设备状态 == 1 then SetTagState("数值1", 1) -- 激活状态组1 SetTagState("数值2", 1) end ``` ### 三、常见问题解决 1. **状态不更新** - ✅ 检查实时数据库:变量是否启用 **存盘** 和 **报警** - ✅ 确认采集周期:设备窗口 → 通道属性 → 采集周期(建议≤1000ms) 2. **颜色覆盖异常** - 关闭基本属性中的 **固定背景色** 选项 - 确保状态条件的优先级顺序(从上到下匹配) 3. **条件失效处理** - 表达式语法:使用 `&&` 代替 AND,`||` 代替 OR - 数值比较:浮点数需用 `abs(Var-50)<0.01` 避免精度误差 > ⚠️ 重要提示:状态显示依赖 **实时数据库** 的变量质量戳,若变量通信中断,可通过「质量戳处理」设置默认显示值(属性 → 安全 → 质量戳处理)。 --- ### 相关问题 1. 如何在MCGS Pro中实现数值超限时的声音报警联? 2. 怎样通过脚本态修改数值显示的状态条件? 3. MCGS Pro的状态显示功能最多支持多少级条件判断? [^1]: 参考MCGS Pro帮助文档 > 用户手册 > 显示 > 显示状态配置章节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海哥自动化编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值