作者 | 主题 |
---|---|
RENHQ 版主 经验值:68963 发帖数:12238 精华帖:59 |
楼主 2021-09-01 10:26:35
主题:超多类似画面对象编辑-巧用对象名-暂时只有C脚本 6.1 前言 这两天有网友问,画面上如果有N多按钮需要做,怎么做简单一些,碰巧前段时间帮朋友做了一个项目,里面有个类似的要求,要求是这样的:画面上有好几十个图片,每个图片代表一个设备,鼠标放上去之后能够显示该设备的名称、状态等。这位网友的要求差不多,不过之前的那个我是用VBS实现的,而且还是有些繁琐,这位网友要用C脚本做,这里试着实验一下。 6.2 要求 画面上有N多按钮如附图: 为了减小图片大小,做9个按钮作为示例 为了编辑简单,减少工作量,总结有这样的要求: 1) 按钮上需要显示不同的问题,文本为”骨仓XX#”,XX为编号0-200 2) 点击按钮,弹窗显示“确认选择仓位XX吗”,点击是,把XX送入变量bin_select里面 3) 增加按钮的时候,只复制粘帖,然后根据需要排布位置,改一下按钮对象编号即可。 6.3 实现方法 利用WinCC在复制粘帖对象时,会自动把对象名称的最后的数字自动加1(如果对象是从1开始,不是从1开始的,那可能就自动变成1或者1不重复的数字),这样利用脚本获取按钮对象的对象名称,然后把编号获取出来,再进行字符串拼接,就能实现这个功能。 按钮对象取名按”BT_GC_1”为”骨仓1#”开始,至”BT_GC_9”为”骨仓9#” bin_select变量为内部无符号32位整数,用来防止点击按钮之后的编号。 为方便脚本修改,脚本在全局脚本的项目函数里面写。思路主要就是获取按钮对象名称比如:”BT_GC_1”,然后查找”_”符号,把最后面的数字给提取出来,然后再根据需要连接字符串等操作。 详细脚本如下: 6.3.1 按钮文本的相关脚本 按钮脚本: 函数脚本: 6.3.2 按钮动作: 鼠标动作脚本: 其函数脚本: 6.4 测试图 6.5 补充点 这个主要是用于做项目的时候,有多个类似多项的时候用,而且需要对脚本有一定的了解,按钮里面的脚本组态完全一样,做好一个按钮,其他的复制粘帖就好了,特别是编号能连续起来,如果不能连续起来的话,那就后期删除用不到的对象,或者手动改成需要的编号,能减少不少重复的操作,其他的功能比如打开不同的画面,修改其他的属性,也一样能实现,具体就是修改函数脚本了。 由于C脚本不是很熟悉,在字符串截取的时候,费了挺长时间,而且也不知道采用的是不是最好的方案。个人对VBS更熟悉一些,实现起来可能也能更简单点。 后面再附上VBS的脚本吧 我没怎么做过项目,具体的客户需求了解的还是不多。如果你还有别的需求,可以留言讨论。
Q群:https://jq.qq.com/?k=9BDuEgf6
|