西门子触摸屏
VB脚本的使用
触摸屏提供了很多内置功能函数,当这些函数无法满足我们的要求时,就需要自己动手,编写一个符合自己功能要求的函数或者功能。在西门子触摸屏的精智屏,提供脚本功能,精简屏没有。
1.首先,在TIA中新建一个项目,添加新硬件,选择HMI,选择SIMATIC精智面板,这里我选了9寸屏。
![8e9dd96c112e76041d671d832dd84bb3.png](https://i-blog.csdnimg.cn/blog_migrate/0af5583c3512bab8801e86580d73c302.png)
2.在项目树选择HMI_1,选中脚本,出现VB脚本,双击添加新VB函数,可看到函数初始框架已经建立,自动插入代码的开头和结尾部分。
![8c4079f24faed73ddc15194d23276ec4.png](https://i-blog.csdnimg.cn/blog_migrate/cec445d956c49d42199ebf8d6bb983da.png)
![a5ae0a2eceeb444f78125ddac5052377.png](https://i-blog.csdnimg.cn/blog_migrate/3b226dafac8a23a12dd7880c6dc3bac6.png)
3.在巡视窗口中打开属性栏》常规,这里设置名称以及类型。类型可以选择子函数"Sub"或者功能"Function",二者的区别是:
“Function”具有返回值
“Sub”不具有返回值
![034f22151584ec4947dfbf43e2d050a2.png](https://i-blog.csdnimg.cn/blog_migrate/67485d843c1c1a844426e872426750c0.png)
4.这里编写一个从0加1一直到3,后循环回零的功能函数,每调用一次数值加1,并返回当前值,当大于3时置0。选择类型为Function,添加一个参数,参数类型选择ByVal,值传递。
ByVal及ByRef的区别:
“ByVal”传送参数值
“ByRef”传送参数的地址
![99a1502c20f615e133474f2f9e17d263.png](https://i-blog.csdnimg.cn/blog_migrate/8a03ade5219d2575341b1e0c2a0e44ac.png)
![d7b3e4ca38b03b2bb1b6dbe8b045157f.png](https://i-blog.csdnimg.cn/blog_migrate/bbe944df8f832c08ec1984bc12022d67.png)
5.编写下图脚本,点击编译,编译成功,功能函数创建完成。接下来简单演示,功能函数的调用。
![3c47a6321b68ea47f1fe45fda04b8e05.png](https://i-blog.csdnimg.cn/blog_migrate/2d1328d2ea95dcf418e66c366fec3f56.png)
6.在触摸屏默认变量,建立两个Uint变量D0及D1。
![eab6744d5cb9b4df9361c4b3dd0adebe.png](https://i-blog.csdnimg.cn/blog_migrate/f52d322541ea3a73230ea1b6edba62fb.png)
7.在触摸屏添加两个按钮及两个数值显示,
![50b62bbf839705c8e38eb44294cd9d64.png](https://i-blog.csdnimg.cn/blog_migrate/308cc13be13a9f3f46f6229048f0ea0c.png)
按钮1属性》事件》按下,选择VB函数》VBFunction_1
![874ca56ad8fd877b34c8c23f8182de34.png](https://i-blog.csdnimg.cn/blog_migrate/39ef98d737cbe9b69db4ab705b4e4ee5.png)
参数选择HMI_Tag,并选择D0
![ad4318f7ab8b69d4c7f6ef934279adb3.png](https://i-blog.csdnimg.cn/blog_migrate/88ee2ba81b6f4a5a67a93c74659db500.png)
返回值也设置为D0
![102f3550730e9ae24f2420220f7d4662.png](https://i-blog.csdnimg.cn/blog_migrate/69951f132a91b699534aeaca1eec3eae.png)
D0数值显示,属性》常规》过程变量设置为D0
![d8255fc08e86051089d1d41e1c74234a.png](https://i-blog.csdnimg.cn/blog_migrate/9da2dbcc86807f00019d5c76c521c209.png)
8.按钮1及D1数值一样同D0一样设置
![102f3550730e9ae24f2420220f7d4662.png](https://i-blog.csdnimg.cn/blog_migrate/69951f132a91b699534aeaca1eec3eae.png)
![d8255fc08e86051089d1d41e1c74234a.png](https://i-blog.csdnimg.cn/blog_migrate/9da2dbcc86807f00019d5c76c521c209.png)
9.模拟运行,实现了我们所需要的功能,感兴趣的赶紧试一试吧。
![8fa84077772e868099a6332e9e09164c.gif](https://i-blog.csdnimg.cn/blog_migrate/e1709aaa734d9c877c6c72c9854cf669.gif)
不念过去
END
不畏将来
![ffaf08e86cabec35f36c355f166cb3af.png](https://i-blog.csdnimg.cn/blog_migrate/1c88dc616adf1fff3bf3b0519d6674bb.png)