APP下载

基于C#联网数控机床运行监控与信息管理系统*

2021-05-07苏春燕孟祥懿崔建辉

制造技术与机床 2021年4期
关键词:批量计数器数控机床

苏春燕 孟祥懿 崔建辉

(①天津中德应用技术大学,天津 300350;②天津市鑫联建辉金属制品有限公司,天津 301505)

信息物理系统(Cyber-Physical Systems,CPS)是一个综合计算、网络和物理环境的多维复杂系统,可实现大型工程系统的实时感知、动态控制和信息服务。基于CPS的智能制造系统已经成为国内外当前智能制造领域的研究热点[1]。而数控机床是制造过程的基本单位,是智能化、信息化制造不可或缺的一部分[2],围绕CPS技术体系,目前已有一些探索用计算机联网数控机床进行运行监控、数据采集和数据处理的文章,但其中对利用信息技术自动记录机床批量加工的产品编号、数量及时间等信息以供查询和统计的研究很少,对运行监控与生产过程管理的综合系统实现的研究也较少。本文设计的系统在这方面做了探索和研究,其采用C/S开发框架,使用Visual C#语言、配合SQL Server数据库管理系统开发。保证只有在企业内安装了系统程序的计算机才能监控机床运行并记录和管理机床信息,因此能较好地保证系统运行和数据的安全性。

1 平台总体设计

在调研企业生产实际情况和企业对信息系统需求基础上,系统功能设计如图1所示。其中①所标注的是只有超级用户有权限使用的功能,而②所标注的是只有管理用户有权限使用的功能,其他是所有用户都能使用的功能。平台的车间网络分布拓扑结构如图2所示,各个车间还可进一步联网到总监控区统一监控。

2 系统主要难点问题及其解决方式

“实现由计算机系统自动记录每台机床批量加工的产品编号、数量及时间等信息”是此系统的一个主要难点问题。系统对此问题的解决主要涉及以下3个方面。

2.1 数控机床的联网与数据读写

机床批量加工信息的采集首先需要系统与机床联网。由文献[3-6]得到目前已有的数据采集方式主要有PLC采集、宏程序输出、外加传感器采集和开放式数控系统接口采集。其中开放式数控系统接口采集不需要附加硬件设备,可以实时采集不同类型机床信息,因此系统采用这种方式实现对机床联网和数据读取。

开放式数控系统接口,即数控机床的系统提供一组外部可以调用的开放函数,以实现外部系统对其联网和信息读写。这里以FANUC系统数控机床为例介绍,这类系统提供了FOCAS开发包,调用其定义的函数可实现机床与计算机的联网通信。这些开发包中的函数允许用 C++或C#程序调用。文献[7]中给出了FOCAS开放接口函数的使用说明。如果程序中使用这种通信方式,需要将该开发包提供的一组类库文档(如:Fwlib32.dll)复制到项目存放其生成可执行文件的文件夹“……/debug”下,并将开发包提供的fwlib32.cs文件复制到项目的根目录中[8],这个文件给出了包含访问数控机床功能函数声明的Focas1 类的定义,这些函数通常都定义为静态、公有的,可以通过Focas1类名直接调用。另外,该类的定义中还包含相关类、类型和符号常量的声明。

比如,Focas1 类中的函数cnc_allclibhndl3()的作用是联网指定机床,其调用方式是:

Focas1.cnc_allclibhndl3(机床IP地址 , 机床端口号 , 延迟时间 , 连接带回的库句柄变量);

下面是判断机床是否连接成功算法的伪码描述:

ret= Focas1.cnc_allclibhndl3(……)

if (ret == Focas1.EW_OK)

显示联网成功消息框

else

显示联网失败消息框

上面伪码中Focas1.EW_OK 即为Focas1类中定义的符号常量EW_OK,其代表操作成功的标记值。

又如,Focas1 类中的函数cnc_freelibhndl()的常用调用方式是:

ret = Focas1.cnc_freelibhndl(连接带回的库句柄变量);

上面调用方式的作用是与“连接带回的库句柄变量”中指定的已联网机床断开连接,且将返回值存入变量ret。如果ret等于Focas1.EW_OK,也表示断开成功。该函数参数对应cnc_allclibhndl3()函数的第4个参数。

2.2 “记录机床批量加工产品相关信息”算法设计

难点问题的解决还需要根据机床加工产品的特点研究一个算法,来确定并保存特定机床批量加工产品的数量等信息。

机床加工的产品常通过多道工序完成,数控机床的一个CNC程序负责一道工序。由于数控加工的工序相对集中[9],即数控机床上产品(工件)一次装夹所完成的工序中,可加工完成钻、扩、绞和铣等这些普通

机床的多道工序,所以这里说的工序可能包括普通机床的多道工序。数控机床每运行一次CNC程序即可完成产品某道工序的加工,这里的加工产品数是指产品的某道工序完成加工的数量。机床通常是让某个工序对应的CNC程序重复运行来批量完成产品此工序的加工。每个数控机床都有一个计数器,记录和显示该机床加工产品累计数量。这里开发的系统假设的工作流程是单人单日在一单台机床完成一批产品的加工任务后记录下此产品-工序在这个机床批量加工的数量,并在下个批量加工任务开始前将计数器人为清零。

算法整体设计思路是建立一个独立线程,在此线程中根据数控机床数据表中记录的每个机床的IP地址和端口号循环扫描、联网各机床,并利用机床提供的开放接口函数从当前联网机床计数器读取累计加工产品数量,再将这个加工数量及工序CNC程序号、机床号和观测时间自动存入“产品工序加工记录信息表”,即history表,这些信息可在此系统的信息管理中修改或删除等,其也可为统计工人工作量提供参考数据。

算法具体设计是,对于一台机床如果出现计数器清零(即同一工序新读取的加工数小于数据表中存储的加工数)、运行的CNC程序改变或新的一天开始等条件,则表示一个新的批量加工开始。此时,系统就在history表中添加一条记录此批量加工的CNC程序号、机床号和加工数量等的新记录,否则表示继续原来的批量加工,就只修改其对应记录的加工数、观测时间的信息。此外智能判断和提示机床批量加工前计数器未清零的情况。

记录一台机床在一个时间段内、批量加工某产品工序的加工数算法的实现逻辑较复杂,这里用图3流程图说明。其设计前提是系统每扫描一遍所有机床的时间小于机床任意工序的装夹与加工处理时间之和。

2.3 保存特定机床批量加工某个产品的生产信息的数据表

系统设计了机床的产品工序加工记录信息表history、产品工序信息表proProcedure、工人信息表makerInfo和机床基本信息表cncInfo,通过这些表的关联来记录和处理机床的批量加工信息。其中history表包括ID、makerID、cncID、proProcedID、watchTime和quantity字段,它们依次表示记录编号、工人编号、机床序号、产品工序编号、观察时间和加工产品数量。

3 系统测试

3.1 主要难点问题解决效果测试

这里主要测试图3算法逻辑是否正确。假设测试前“产品工序信息表proProcedure” 的具体内容如表1所示,而history表的记录为空,“机床基本信息表cncInfo”所列机床中只有编号为2和3的2台机床处于联网状态。

表1 系统产品工序信息数据表proProcedure 内容

测试基本操作:选择“联网所有机床”功能,此时系统循环重复扫描、联网的所有机床,读取当前联网机床的产品加工信息存入history表,同时所有联网机床的基本信息以图4展示的列表信息显示,如果单击此图窗口中的“停止扫描联网所有机床”按钮,即可停止循环扫描。进行逻辑功能测试前,首先启动“联网所有机床”功能。

逻辑测试1:将2台数控机床加工产品工序的工序名均指定为“O1000”, 启动机床加工工序,当两台机床计数器的值都为1时暂停机床,此时history表内容如表2所示。从表1可知工序名为“O1000”的“产品工序序号”是“1”,因此表2中proProcedID字段值为“1”。由于不能自动采集操作工人信息,这里 makerID的值设置为默认值“0000”, 可使用此软件系统手动输入真正操作机床的工人编号。

表2 运行测试1后history数据表内容

逻辑测试2:启动2台数控机床加工程序,当其计数器值均为5时暂停运行,此时由于在同一工作日,机床CNC程序没有变化,仍然为“O1000”,计数器的值有所增加,系统判定这是同一次批量加工,所以history表中记录的quantity字段值由“1”变为“5”。

逻辑测试3:将2台数控机床的计数器值都清零,启动加工程序,当两台机床计数器值为1时暂停运行,此时虽然机床的 CNC程序没有变化,但计数器的值由5变1,减少了,系统就判定已经开始了一次新的批量加工,所以history表中会多出2条分别表示两台机床批量加工产品信息的新记录,其quantity字段值为当时机床计数器的值“1”。

逻辑测试4:将2台数控机床加工产品工序的工序名均指定为“O1001”, 并清零计数器的值,启动机床加工,当两台机床计数器值为2时暂停机床,此时由于工序名改变,系统确定一次新的批量加工开始,所以history表中会再次多出两条分别表示这两台机床批量加工产品信息的新记录,其quantity字段值为当时机床计数器的值2。从表1可知工序名为“O1001”的“产品工序序号”是“2”,因此新增两条记录的proProcedID字段值为“2”。

逻辑测试5:启动其中1台数控机床的加工运行,当这台机床计数器数值为3时暂停,此时由于工序名没有变,两台机床当前计数器值均大于或等于以前的值,系统判定这是同一次批量加工,所以history表中测试4中新增的两条记录的quantity字段值一个不变,另一个变为新的机床计数器值“3”。

逻辑测试6:修改计算机系统时间为后面新的1天,将其中1台机床加工产品工序的工序名指定为“O1002”, 另1台工序名不变,清零这2台机床计数器值,然后启动机床加工运行,当其计数器值都为2时暂停机床运行,此时由于系统时间为后面新的1天,无论工序名是否改变,系统都判断是一次新的批量加工,history表会又一次增加新的两条信息来记录这两个新增批量加工。

逻辑测试7:将2台机床加工产品工序的工序名指定为“O1007”, 再启动机床加工运行,当计数器值为1时暂停,此时history表内容不变,且系统运行窗口下方文本区给出“该工序 CNC程序不存在”的提示信息。这是由于从表1可知系统没有工序名为“O1007”的产品工序。

以上是算法逻辑主要的运行测试,其他如新的一次批量加工开始前没有清零机床的计数器值时,系统会给出计数器可能没有清零的提示信息,这里不再一一列举测试结果。

3.2 系统其他主要功能运行效果测试

(1)机床联网状态显示与管理功能测试示例

运行系统的“机床信息管理与联通显示”功能,在其窗口单击“显示机床状态”按钮时,此按钮变为“停止状态扫描”,同时系统扫描、试联网所有机床信息数据表中的机床,以不同图标显示其是否成功联网。效果如图5所示,显示有2台机床是亮色,表示其成功联网,其他图标为暗色,表示没有联通。

在图5所示窗口,如果停止状态扫描,所有按钮就变为可用状态,当单击“修改机床”按钮,出现“修改机床信息”窗口,此时如果单击“机床型号编码:”旁的下拉组合框,系统会弹出所有机床类型编码和名称的下拉列表供选择,当选中下拉列表中的某个机床类型时,该类型机床的操作系统、主轴速度、生产厂家等基本信息会根据“机床型号信息”数据表的内容自动填充,因此这些文本框显示为灰色不可编辑状态,效果如图6所示。

(2)运行与使用情况在线监测测试

如果在“机床选择与联网”功能中选择联网了3号机床,当运行系统的“机床使用与报警情况”,出现图7所示窗口,显示这台机床的此类信息;当运行系统的“机床坐标与运行监控”,出现图8所示窗口,显示了这台机床的此类信息。

(3)工人操作机床批量加工“产品-工序”情况查询、统计测试

运行“工人操作机床加工产品记录信息查询”功能,出现其查询窗口。从“制造人:”旁的下拉组合框中选择“(004)张晨迪”列表项,并指定起止时间,单击“查询”按钮,出现图9所示查询效果。

运行“工人操作机床加工产品记录信息统计”功能,出现其统计窗口。从“产品-工序名:”旁的下拉组合框中选择一个列表项,再指定统计的起止时间,单击右侧“按产品-工序为主序在指定时间内统计”列表项,会出现图10所示的统计效果,显示这个“产品-工序”在指定时间内不同人的加工数量汇总和整体汇总值“26”,如果同一制造人在不同机床上都有多次批量加工,还会多出现一个层级的分类汇总。

(4)显示机床运行情况测试

运行“浏览所有机床基本运行加工情况”功能,在其窗口中单击“显示机床运行情况”按钮,其显示变为“刷新机床运行情况”,且以列表形式显示所有联网机床的当前加工零件的程序信息和已加工数量等,效果如图11所示。

4 结语

本文所构建的联网数控机床运行监控与信息管理系统从数控企业实际需求出发,解决了将现场批量加工产品的机床、工序、工人、时间和数量信息完整记录的算法问题,并就算法的逻辑进行了系统测试,说明该算法具有科学性和实用性。整个系统实现了数控机床运行实时监控、生产过程管理和机床等基本信息管理有机融合,同时具有良好的安全性、通用性和易用性,可以为企业运行维护和科学管理提供技术支撑,具有较高的实用价值,是用计算机系统对数控机床实时监控和信息管理的一次有益尝试。

猜你喜欢

批量计数器数控机床
采用虚拟计数器的电子式膜式燃气表
批量提交在配置分发中的应用
数控机床的节能应用
高档数控机床数据采集应用
数控机床电气系统的故障诊断与维修
PLC在数控机床中应用
计数器竞争冒险及其处理的仿真分析
浅议高校网银批量代发
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改
考虑价差和再制造率的制造/再制造混合系统生产批量研究