技术论坛

 EXCEL是个好东东。

返回主题列表
作者 主题
ws0866
侠圣

经验值:3122
发帖数:1089
精华帖:8
楼主    2022-10-17 00:15:01
主题:EXCEL是个好东东。


客户要求HMI画面要显示所有IO点的注释和状态,如下图,


IO少的时候还好,可以一页一页的做出来,但IO多的就比较头痛了,最近做了个改造项目,输入从I0一直用到I90,虽然中间有些空的,但也很多,所以,只能想个偷懒的方法。

第一列地址用8个符号IO域,变量都连接到MW10(Input_bit)上,文本列表要建8个,对应要显示的地址内容;第二列注释用8个符号IO域,变量也都连接到MW10(Input_bit)上,文本列表也要建8个,对应要显示的注释内容,这两列也可以合成一个文本列表,第三列状态用8个圆,做外观动画,分别对应MB12的8个位,在PLC程序中用MW10做寻址,把输入的数据写入到MB12中。

接下来的工作就是做这16个文本列表,每个文本列表里有100行(IB0-IB99),在Excel里做好,再导入到flexible就行了(屏比较老博图不支持了),其实工作都挺简单,就是在做Excel时遇到了些问题,原来的变量表顺序是I0.0、I0.1、I0.2…I1.0、I1.1、I1.2….这样的顺序,但我要的是I0.0、I1.0、I2.0…I0.1、I1.1、I2.1这样的顺序,第一列还好做有规律,一会就做完了,但第二列就麻烦了,把PLC的变量表复制过来一点一点改要很长时间,就又想偷懒的办法,想用VBA处理下,但感觉也比较麻烦,百度了下,Excel里有VLOOKUP命令,功能是按列查找,最终返回该列所需查询序列所对应的值,比如(VLOOKUP(G2,B:D,3,FALSE),就是在第B列到D列里查找G2单元格的内容,返回查找到的单元格后面第三列的内容,这样就可以按地址在原来的符号表中把注释提取出来了,感觉比VBA方便哈,如下图,前四列是在符号表中复制出来的,G列是我要用的顺序,H列是根据G列的内容,从D列取出的注释。J列是把I列和H列和在一起。


剩下的工作就简单了,按照flexible的格式处理,再导入就OK了。

总结:Excel真是个好东东,VLOOKUP用来整理文档的格式很好用,好好学习下能节省好多时间。


好好学习天天向上
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。