1
项目背景及意义
在上一篇文章中分享和介绍了一种基于西门子 TIA(Totally Integrated Automation)平台触摸屏wannengIO监控的一种方法,很多人反映西门子触摸屏用不起,用的比较多的是第三方屏幕,问能不能更多一点,是不是还有 One More Thing 。
2
定义
不想在触摸屏使用技巧和没有此项功能的第三方屏幕做IO监控
3
应用范围
适用于屏幕不定,PLC用西门子的项目,很多同行配方功能都不基于触摸屏,为了带来更多通用性。
4
程序架构构
4.1
Main
循环组织块调用函数块4.2
IO_Monitor
读取IO状态实现函数,这里为什么没用功能块FB呢,因为背景数据块集中原因,这里使用了INOUT传递4.3
HMI_Data
全局数据块,用来传递数据,这里使用了UDT数据结构体,不支持此项功能的屏幕可以直接通过赋值传递4.4
源代码
FOR #Cycle := 1 TO 8 DO #iqHMI_IO.Address_DI[#Cycle] := (#iqHMI_IO.Addr - #iMin_Addr) * 8 + #Cycle - 1; #iqHMI_IO.Address_DO[#Cycle] := (#iqHMI_IO.Addr - #iMin_Addr) * 8 + #Cycle - 1; #iqHMI_IO.State_DI[#Cycle] := PEEK_BOOL(area := 16#81, dbNumber := 0, byteOffset := #iqHMI_IO.Addr, bitOffset := #Cycle); #iqHMI_IO.State_DO[#Cycle] := PEEK_BOOL(area := 16#82, dbNumber := 0, byteOffset := #iqHMI_IO.Addr, bitOffset := #Cycle);END_FOR;
5
作用及效果
对触摸屏的依赖减少,编程有效标准化。