魏海波,梅建伟,黄斌伟
(湖北汽车工业学院电气与信息工程学院,湖北十堰 442002)
触摸屏作为科技发展下人机交互的重要组成单元,能够控制设备运行,监测设备运行数据,直观地呈现设备运行状态,因此在工业生产领域中有着广泛应用[1-3]。通过配套上位机软件设计,能够进行有针对性地开发,通过串口、网口等接口形式实现数据传输,配合其他控制器构建完善的自动化控制系统,为工业生产带来实时性高的友好人机交互界面[4-6]。
在触摸屏的开发过程中,一般涵盖了控制和监测两大基本功能单元。其中控制又包括基本的按键控制与参数设定功能。涉及到按键控制,一般情况下都要考虑到使用过程中存在的误操作等因素,需要添加自锁、互锁等措施来降低误操作带来的生产风险[7-8]。对于虚拟按键而言,相较之实体按键,具有更加明显的优势:实体按键可以在任意时刻被操作,如果没有限制性措施,极易引发不可预料的事故;虚拟按键作为触摸屏上配套的一种功能组件,能够利用其他的措施对按键的操作是否生效进行预评估,使其在不能操作时被锁死,进而降低生产风险。这对于工业生产中的一般性生产操作人员而言,具有十分重要的意义。
台达DOP-105CQ触摸屏是台达DOP100系列产品中的一款,该系列产品是在早期触摸屏产品的基础上通过不断升级、改进并融入了许多新功能,使得触摸屏的功能(功能部件、接口形式)更加丰富。其配套开发软件DOPSoft版本目前已经迭代升级至DOPSoft4.00.11。软件继承了早期软件的离线仿真功能,通过对离线仿真运行结果分析,就能验证所设计的功能是否达到预期[9]。
按键作为触摸屏上重要的控制模块,能够对设备的运行起到控制作用。触摸屏按键组件中常用的有设ON、设OFF、保持型、交替型4种按键。其基本情况如表1所示。
表1 四种常见功能按键说明一览表
客户对按键部分有明确要求:能够对按键状态进行识别。按照客户的要求,开发过程中对按键的类型进行设计,具体信息如表2所示。
表2 按键功能要求及设计类型一览表
在分析的基础上开展了按键控制页面的设计,整体效果如图1所示。由图可知,通过对按键内文的设置,能够从按键中的文字直接获取当前每个按键的实时状态,以便于掌握系统的运行状况。相较之传统的采用按键配合指示灯来实现的方案,不仅具有更加直观的显示效果,而且节省了按键及指示灯的硬件开支,产生直接的经济效益。
图1 按键界面设置整体效果
若自动/手动模式、手动窗开窗/关窗动作无相互约束条件,在生产过程的任意时间均能对所有按键进行操作,极易发生生产事故(可能是工艺事故,也可能是产品事故)[10]。必须设定约束条件对前述按键进行互锁限制。通过分析,进入自动模式的必要条件:所有手动设备全部处于停止状态;进入手动模式的必要条件:自动模式下手动/自动按键就绪,按键操作后能够使系统切入手动模式。同样的,手动模式下的开窗/关窗按键不能同时操作,即在执行开窗操作时关窗按键被禁止,在执行关窗操作时开窗按键被禁止。因此必须通过一定的手段对这些虚拟按键进行激活与禁止,从而避免实体按键无法避免的同时操作的问题。
台达触摸屏内部配置了丰富的寄存器,技术研发人员可以灵活使用这些寄存器,配合组件共同开发功能。在进行按键设置时,需要对使用到的寄存器进行预分配。按键使用寄存器中的1位来实现,对于预先设计的10个按键,仅1个寄存器(寄存器是以字为基本单位,1个字包含16个位)即可完成分配。但是考虑到需要对按键进行互锁控制,而且宏程序对于位的支持有限,使得如果采用单个寄存器进行不同位设置再去处理互锁信息的话,会导致程序量大且复杂。因此,仅利用不同寄存器的最低位作为任意按键的设置地址,这样对于寄存器就只有‘0’和‘1’两个值,通过对寄存器的简单处理,完美地替代了只使用一个寄存器的多个位产生的逻辑处理复杂的问题。台达触摸屏对于按键配置有“生效位”:当配置的该位处于无效状态时,按键操作无效;当处于有效状态时,按键操作生效。图2和表3所示即为按键内部寄存器以及生效位地址配置。
表3 按键及控制地址设置一览表
图2 按键组件生效位
通过对$39寄存器位地址的置位、复位逻辑判断控制,即可完成手动/自动模式以及手动窗开窗/关窗的嵌套式两级互锁控制。具体程序见后续的宏程序[11-12]小节之画面Cycle宏程序内容。
2.3.1 Initial宏程序
系统上电后应该处于明确的初始状态:系统处于手动模式,且所有手动设备处于停止状态,这样可以操作各手动设备工作;同时手动/自动按键应该具备从手动模式切换到自动模式的能力。根据以上分析,需要对设置的10个按键分别进行初始化处理。初始化内容如下:
$20=0 //手动模式
$21=0 //手动加湿停止
$22=0 //手动除湿停止
$23=0 //手动风扇停止
$24=0 //手动1窗开窗停止
$25=0 //手动1窗关窗停止
$26=0 //手动2窗开窗停止
$27=0 //手动2窗关窗停止
$28=0 //手动3窗开窗停止
$29=0 //手动3窗关窗停止
2.3.2 按键画面Cycle宏
对于手动/自动模式的互锁,涉及到所有手动按键的状态。当所有手动设备处于停止状态时才能切换到自动模式。亦即所有手动按键配置寄存器的值均为0时才能启动手动/自动按键进入自动模式。只要不断地检测这些值的状态,就能提供相应的生效依据。循环检测宏程序内容如下:
$30=0 //配置$30寄存器并清零
$30=$30+$21 //累计手动加湿运行状态
$30=$30+$22 //累计手动除湿运行状态
$30=$30+$23 //累计手动风扇运行状态
$30=$30+$24 //累计手动1窗开窗运行状态
$30=$30+$25 //累计手动1窗关窗运行状态
$30=$30+$26 //累计手动2窗开窗运行状态
$30=$30+$27 //累计手动2窗关窗运行状态
$30=$30+$28 //累计手动3窗开窗运行状态
$30=$30+$29 //累计手动3窗关窗运行状态
IF$30==0 //所有设备处于停止状态
BITON$39.0 //手动/自动按键生效位激活
ELSE //有设备处于运行状态
BITOFF$39.0//手动/自动按键生效位禁止
ENDIF
对于手动窗开窗/关窗的互锁,涉及到手动/自动模式以及开窗或者关窗按键。只有处于手动模式下当开窗/关窗按键处于停止状态时,才能驱动关窗/开窗按键进行操作。3个手动窗功能相同,只是在地址位设置上有所差异,这里仅给出手动1窗的循环宏程序内容:
$31=0 //配置$31寄存器并清零
$31=$31+$20//累计手动/自动运行状态
$31=$31+$25//累计手动1窗关窗状态
IF$31==0 //1窗关窗停止状态
BITON$39.1//1窗开窗按键生效位激活
ELSE //不满足状态要求
BITOFF$39.1//1窗开窗按键生效位禁止
ENDIF
$32=0 //配置$32寄存器并清零
$32=$32+$20 //累计手动/自动运行状态
$32=$32+$24 //累计手动1窗开窗状态
IF$32==0 //1窗开窗停止状态
BITON$39.2 //1窗关窗按键生效位激活
ELSE //不满足状态要求
BITOFF$39.2//1窗关窗按键生效位禁止
ENDIF
通过对按键设置以及宏程序设计,按键控制已经具备设定的互锁功能。利用DOPSoft软件自带的脱机模拟测试功能模拟实物的功能测试。
首先对编写的宏程序进行编译,编译有问题时会出现提醒,并定位至程序异常位置处。编译通过后当前的设计内容就可以实现模拟离线测试以及通过USB将设计内容下载至触摸屏等操作。打开离线测试功能,软件运行完后跳转至仿真画面,通过鼠标对按键的操作可以模拟在触摸屏上人手的按键操作。其功能测试结果如图3所示。从图中可以看出,进入仿真测试画面后,系统处于手动就绪状态,如图3(a)所示,此时所有按键均处于激活有效状态下。当按下手动/自动按键后,系统进行自动控制状态,如图3(b)所示,此时所有的手动按键均被封锁,即使操作亦无反应。同样的,当再次按下手动/自动按键后,系统返回到手动控制状态,所有手动设备均能够独立运行,且任意窗的开窗与关窗不能同时处于运行状态。在所有设备没有处于停止状态下,系统无法切换至自动状态,如图3(c)所示。测试结果与预期的指标相同,实现了预期的设计任务。
图3 DOPSoft按键离线状态功能测试
本文给出了台达触摸屏按键嵌套式互锁的具体设计内容。通过按键组件的生效位应用,配合宏程序编程,完成了多按键下的手动/自动以及手动设备二级互锁设计,从而有效地预防因操作人员操作失误带来的生产风险。文中给出的设计方案,可以通过适当的修改移植到类似触摸屏按键设计过程中,具备较好的参考价值。