基于Python的海德汉数控系统IO监控界面开发

作者:宁波海天精工股份有限公司 柳光照 余道挺 周杰 文章来源:MM《现代制造》 发布时间:2021-11-12
分享到
数控机床的IO状态是机床运行状态信息中基础且重要的内容,通过Python编程语言及pyGTK界面库,设计IO状态监控界面,用可视化的方式更直观地呈现出机床输入、输出点的状态;界面在设计排布上和实际安装的IO模块位置一一对应,能更快速地查找到每个输入、输出点位置。通过IO状态界面开发,能有效降低机床在信号问题排查上的操作难度及学习成本,进一步提升机床的用户体验。

一般来讲,机床的控制环节由两部分组成:一是由CNC控制的刀具运动轨迹,即位移控制;二是由可编程逻辑控制器(PLC)顺序控制的机床各辅助功能。这些功能主要包括MST代码的顺序动作的执行、机床外围设备的控制以及机床报警信息的处理等,其中机床外围设备的控制信息主要是指数控系统PLC设备的输入信息和输出信息,即I/O信息。IO设备作为机床重要的数据接口,主要负责数据的输入和输出,是实现机床PLC信号采集和控制指令重要的窗口。

海德汉数控系统在状态信息监控表中具有专门的输入和输出信号状态表,为制造商和最终用户提供了获取实际IO点信息的渠道。每个具体的IO状态信息的获取,常规的操作步骤是:首先通过翻阅对应机床的电气原理图,查找到准确的I点或O点;再通过输入特定密码进入到IO表格中去搜索具体的地址;最后获取到目标点的状态信息。整个操作较为繁琐,需要熟识机床电气原理图,并且要求操作人员对海德汉数控系统有较高的认知技能水平。为了降低查询操作难度,提升机床设备的友好性及服务效率,通过海德汉数控系统高度兼容的Python编程语言开发了可视化的IO状态监控界面。

海德汉数控系统IO模块与状态信息查询

海德汉数控系统的PL模块,由PLB620x或PLB610x基本模块和I/O模块组成,I/O模块又分为数字量I/O模块和模拟量I/O模块,常用的I/O模块如图1所示。

图1 海德汉数控系统IO模块硬件

图1 海德汉数控系统IO模块硬件

海德汉数控系统界面中,用户需要输入特定密码后获得PLC查看权限,然后在TABLE界面中看到Input界面及Output界面,如图2、图3所示。

图2海德汉数控系统Input界面

图2海德汉数控系统Input界面

图3 海德汉数控系统Output界面

图3 海德汉数控系统Output界面

从机床标准界面中查询到具体某个信号的状态比较复杂,虽然可以通过光标移动或GOTO按键跳转到具体搜寻的点位上,但也仅能看到该点位的英文备注,不仅不直观,还需要操作人员具备较高的英语技能及查阅电气图纸的能力,给实际操作、设备调试和设备检修造成很多不便,耽误了时间。

界面设计

数据可视化这个理念,主要旨在借助于图形化手段,清晰有效地传达与沟通信息。通过将抽象的数字信号,转化为形象的图像信号,能更加直观地反映图像背后所传达的信息。随着中国制造2025的推进,工业制造领域对于无纸化装配、数据可视化的要求也越来越高。

为此,我们采取使用海德汉二次开发的方案,设计一个简单易懂的可视化IO状态界面。海德汉数控系统支持Python语言开发的界面,二次开发的界面可以嵌入到机床本身的系统中,通过侧边栏的按钮激活界面。

图4 IO信号状态各个数据描述

图4 IO信号状态各个数据描述

在设计界面过程中,遵循CRAP四项基本设计原理,包括对比(Contrast)、重复(Repetition)、对齐(Alignment)、亲密(Proximity),在保证信息交互的高效性的同时,尽可能保留美感。该设计原则目前广泛应用于平面排版、网页设计等,能高效地将信息排列成合理、更易理解的顺序,也符合人们正常的阅读顺序和设计心理学。

界面设计方案如下:

•将0/1数字状态变成红灯/绿灯信号灯状态,更形象;

•将英文全部改成中文显示,更易理解;

•可以看到对应IO点位的名称,减少寻找难度;

•物理地址跟画面对应,更方便排查硬件故障。

图5 IO监控界面

图5 IO监控界面

代码编写

由于各个机型的IO点排布各不相同,为了确保主程序的完整性,单独将各个机型的点位排布保存在独立的机型配置文件中,通过python导入库的方式加载到程序中。

在界面的设计上,根据输入INPUT及输出OUTPUT分成3列,再根据柜内SLOT的位置分为不同行的组别。每个组别又根据实际的IO点脚号排布进行分行排列。

为保持信息的高效传递,省去相同的提示内容,统一放置到页面的最底部,仅供提示作用。另一方面,将信号状态的几种表现状态罗列出来,作为提示,当IO点信号出错时可以快速帮助排查问题所在,可以实际反应硬件当前的电气连接状态及PLC程序中的变量定义状态。

结束语

数控机床实时的IO状态是反映机床各功能部件是否正常的重要信息通道,通过界面直观地观测到IO信号,能快速查看机床的当前状态、排查机床存在的问题。通过Python开发代码,设计可视化界面,能有效提高机床的人机交互界面友好性。

从用户需求出发,以用户为中心,挖掘用户的本质需求,更多地站在用户角度去思考设计,这样我们的设计才能走得更远。相比之下,新设计的IO界面的优势一目了然,帮助用户在操作过程中可以省去查找电气原理找相应点位的问题,查看信号状态变得更加简单高效;更重要的是,在遇到紧急情况时可以为客户实现快速抢修,为客户提供了极大便利。

收藏
赞一下
0