工控人邪修INTOUCH系列(1):定时翻页、截屏、打印脚本

1 前言

INTOUCH是工控人目前应用很广泛的上位软件和各家PLC及下位程序通讯组态。

这一系列根据我的项目经验给大家提供一些,实用脚本的应用方法和各家通讯的组态方式。

篇幅不一定长,但是希望在实际组态和应用过程中能帮助到大家。

2 INTOUCH定时翻页截屏打印方法

2.1 项目背景

在国家管网某压气站,完成了国产化首台套燃机改造。业主需要进行72小时测试验收。

要求72小时内对INTOUCH上位画面进行翻页截图,每两小时一次,每次截取所有画面16张的当前数据,用于存档。

我们2个人,白天还好两小时来截图一次,工作轻松,夜里就要有人值班每两小时截图一次,每个时段16张。尤其夜里12:00 、2:00、4:00比较难熬,睡也不合适,不睡还难受。于是我做了个定时自动翻页截图脚本,分享给大家,希望在类似现场情况给大家提供帮助。

2.2 打印机的设置

设置默认打印机(设置打印机打印文件时自动保存到指定文件夹,并自动加数字区分文件)

1)在开始菜单打开“设备和打印机”

2)找到默认打印机,右击鼠标打开“打印机首选项”

3)设置默认文件位置和如果文件存在添加数字后缀

图片

参考链接:

https://jingyan.baidu.com/article/ab69b270b5d2302ca7189fc4.html

2.3 INTOUCH脚本(定时切换指定窗口并调用打印)

1:第一秒翻页,第二秒截屏打印。

条件改变脚本($Minute==0,$Minute==2…)示例如下:

IF $Second==1  THEN

    Show "sub_Auxlib " ;                      (公共画面)

    Show "A_Gas Fuel SYS" ;                (画面1)

    haux = 1 ;

    PrintData = 1;

ENDIF;

IF $Second==2 AND PrintData == 1  THEN

    PrintScreen( 2, 3 );

    PrintData = 0;

ENDIF;

 IF $Second==8  THEN

    Show "A_GG Lube_Hyd" ;                          (画面2)

    Show "sub_Auxlib" ;                                    (公共画面)

    haux  =2 ;

    PrintData = 1;

  ENDIF;

IF $Second==9 AND PrintData == 1 THEN

    PrintScreen( 2, 3 );

    PrintData = 0;

ENDIF;

(PrintData为内存整型,用于标志打印窗口,以免重复调用打印脚本)

2:根据实际需要更改条件改变脚本,实现相应的打印需要

例如:变量改变更改为$Hour ==0,$Hour ==2,$Hour ==4…相应的脚本应增加限制,防止不应该的调用。

IF $Minute == 0  THEN

IF $Second==1  THEN

    Show "sub_Auxlib" ;

    Show "A_Gas Fuel SYS" ;

    haux = 1 ;

    PrintData = 1;

ENDIF;

IF $Second==2 AND PrintData == 1  THEN

    PrintScreen( 2, 3 );

    PrintData = 0;

ENDIF;

ENDIF;

2.4 脚本编辑注意事项

(1) 注意翻页和打印的之间的秒数时间间隔不要太短。

间隔1S,可能会在某一次脚本执行过程中出现卡顿,漏截屏画面。

建议15S,保证翻页的完成和截屏的执行。

(2) 检查INTOUCH是否有时钟同步脚本,

建议截图期间可以先删除。

项目中00:00准时进行INTOUCH时钟同步,出现前半夜脚本有效,每个截图时段16张截屏,后半夜出现漏截屏现象,后半夜每个时段只保存了14个画面截屏。

图片

2026年3月