MCGS通过公用面板来控制多个阀门
使用过WINCC并且项目中用到很多阀门、电机、等大量一模一样设备,又需要上位上面对每个设备能进行单独进行操作的人员,都知道WINCC有个很好用的功能,那就是面板功能,通过替换变量前缀来实现用一个公用窗口来操作所以阀门或者电机,这样就能降低很多工作量,那么问题来了,用MCGS能实现么?怎么实现呢?
下面我就来说一下具体实现方法。
软件环境:McgsPro 3.3.2.5166
MCGS实现面板我知道的有两种方式,两种方式优略各不相同,这一期先说一种方式,
先说下需要用到的函数,
!DataGetInt (DatName,Value)
!DataGetFloat (DatName,Value)
!DataGetString (DatName,Value)
!DataSetInt (DatName,Value)
!DataSetFloat (DatName,Value)
!DataSetString (DatName,Value)
咱们会通过以上几个函数来实现今天的功能。
新建一个项目
新建如下变量,用6个阀门来做测试
AM 手自动切换
Open 打开 关闭
Status 阀门状态
SP 设定值
Com_SP 这个是公用面板里面设定值的临时中转bian'l
创建两个窗口,运行窗口和 Valve_Com
运行窗口
对应设备的工艺流程图界面,我做的比较丑只是为了演示用不要吐槽。
上面做了六个阀门图标,可以根据项目需求数量来添加阀门
右边为了便于观察效果,做了阀门对应的变量来显示
有的人会问了,这有啥省劲的,我用常规的方式复制粘贴也能搞出来,
阀门图标是图形加一个按钮,在按钮的抬起事件中写入如下脚本
dim Name as STRING ‘定义一个字符串变量作为传递变量名称使用
Name = "AV01" '替换字符串为实际设备名称 给变量赋值,也就是需要替换的地方,脚本只需要替换此处设备名称即可使用,降低工作量
DeviceName = Name '将设备名称传递到全局变量中
!OpenSubWnd(用户窗口.Valve_Com,200,200,200,240,18 ) '打开公用窗口
替换填充颜色表达式变量名,这是阀门本体变色使用。
每个阀门图标只需要替换这两个位置的设备名称即可。最大的降低了工作量。
Valve_Com窗口
此窗口为公用窗口,点击阀门图标会弹出该窗口,可以根据点击对应的阀门来对该阀门进行手动控制或者更改参数。
不管你多少个阀门只需要这个窗口,大大降低工作量。
此处填写全局变量设备名称用来显示设备名称
此处为关闭弹窗按钮
自动按钮脚本如下
具体描述看注释,我就懒一下,不在单独 描述了。
手动按钮操作跟自动一样,只是需要写值 0
开启和关闭按钮我就不在一一描述了,我相信大家举一反三就能做出来。
状态和设定值是比较麻烦的,我来详细描述一下。
状态显示我为了减少全局变量而使用了一个标签动画,
打开窗口的循环脚本,设定循环时间100MS(可以根据需要设定刷新周期),
,方框位置为刷新状态值的脚本,脚本我就不解释了,跟上面的都差不多。
Valve_Com.Status.Text = !Str(Value) 这一句的意思就是将读取的状态值写入到显示控件的TEXT熟悉中。
设定值,因为该变量需要输入,所以我做了一个全局变量Com_SP来进行中转。
绑定变量到输入框
为了设定值能根据实际值实时刷新,所以循环脚本里面加入了以下脚本,对变量进行周期读取刷新。
变量的刷新就写完了然后写写入的程序
右键选择事件
点击更改事件
点击事件连接脚本
写入如下脚本
DIM Name as STRING‘定义字符串变量
Name = DeviceName + "_SP" ’ 组合变量名
!DataSetInt(Name,Com_SP) ‘将Com_SP的值写入到全局变量中
到此为止,公用面板的已经全部写完了,如果需要更多的变量,只需要按照上述方法进行添加就OK了,以后就不需要更改该画面了。只需要复制阀门图标进行替换里面设备名称就OK了。
模拟运行
此时各个阀门的值均为0
点击阀门AV01 弹窗公用窗口
点击自动 ,开启 设定值设定为55
此时各个变量的值已经更改
点击阀门AV02
点击自动 ,开启 设定值设定为44
此时各个变量的值已经更改
测试完毕,可以通过一个公用窗口对各个阀门进行控制。
第一种方法已经讲解完毕,第二种方法下期进行更新。
教程比较简单,忘大家多提意见,谢谢大家看到了最后。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧