基于工业物联网的PLC在线诊断

2020-11-24 08:58武汉重型机床集团有限公司湖北武汉430205
金属加工(冷加工) 2020年11期
关键词:数控系统C语言数控机床

■武汉重型机床集团有限公司 (湖北武汉 430205) 佟 冬

工业4.0意味着我国要在工业化与信息化同步发展的战略中更快地促进两者的融合,对促进经济社会的发展有着重要价值。而工业物联网,则是工业4.0实现的具体方式,因此要想实现智能制造,必须借助于工业物联网。

1. PLC编写语言

在生产制造工作中,无论是数控机床还是自动化设备,发生PLC报警都在所难免。而不同的数控系统与自动化设备,其所使用的PLC语言通常是不同的,发那科数控系统的PLC程序的编写所使用的是梯形图语言(L D,Ladder Diagram),西门子828D数控系统的PLC程序的编写使用的是功能块图(FBD,Function Block Diagram),西门子840D数控系统的PLC程序的编写使用的是指令表(IL,Instruction List),倍福等自动化产品PLC程序的编写使用的是结构文本(ST,Structure Text)。

尽管以上4种PLC语言都属于IEC的标准PLC语言,然而这4种不同的PLC编程语言各有各的优势,同时也代表着不同编写思路及诊断思路。例如,梯形图语言及功能块图语言编写的PLC在诊断时最大的优势就是直观易懂,技术要求门槛相对较低;而指令表语言尤其是结构文本语言编写的PLC,在诊断时则要求相应的技术人员有一定的英语基础、良好的高级语言编程功底及调试功底,因此对应的技术门槛要求很高。不仅如此,即便是相同的PLC语言,不同的制造商也有其不同的指令。

因此如果要找到一个同时通晓上述4种PLC语言的工程师是很难的。为此,企业通常要招聘多个熟悉不同PLC语言的工程师,并为此付出不菲的人力成本。

2. 物联网解决方案

有没有一种方案或者技术手段能“绕开”这几种PLC编程语言解决数控机床与自动化设备的PLC故障呢?答案是有的,其原理也非常简单。对于PLC报警而言,报警信号与输出信号一样,受到输入/输出信号、PLC参数以及数控机床运行状态的影响。因此,只要我们通过某些手段在线获取到这些影响因素的数据,就相当于“绕过”PLC的内部逻辑,直接从根源处实现PLC远程诊断。

想要获取我们所需的数控机床的数据,需要从硬件及软件两个方面入手。

(1)硬件的搭建 在硬件上的搭建相对简单(见图1),只需要将数控系统设置IP等参数后,通过网线连接到以太网上即可。

(2)函数库 不同的数控系统制造商都会为其用户提供相应的API函数库,帮助其开发相应的软件工具。我们只要根据数控机床IP的设置,确定数控机床的数控系统类型,再调取不同数控系统制造商的函数库,就能在线自动获取数控机床的运行数据。

以发那科数控系统为例,其提供的函数库为FOCAS,我们可以通过VB或者C++等高级语言对其进行调用,开发出对数控系统全部运行数据进行读取与写入的软件功能。

图1 硬件的搭建

(3) PLC诊断相关的API 由前文的论述可知,要实现PLC诊断需要通过相应的API获取数据。以发那科系统为例,需要获取的数控机床的数据有:报警信号(A信号),输入输出信号(X、Y信号),PLC参数(K参数、D参数)以及数控系统运行状态信号(F信号、G信号以及位置坐标等)。读取不同的数据,需要不同的函数功能。

1)读取PLC信号。发那科提供了函数功能pmc_rdpmcrng用来读取PLC有关的信号,其在VB中调用的过程如下。

Dim pmc As IODBPMC1

ret = pmc_rdpmcrng(ghandle,pmctype, 0, nstart, nend, 10, pmc)

根据读取的PLC信号类型的不同指定不同的pmctype值,见表1。

表1 不同PLC信号类型的不同pmctype值

通过nstart与nend指定PLC信号读取的范围(不超过5个字节)。通过对函数pmc_rdpmcrng循环调用的方式,就能很容易地读取出数控系统全部的PLC信号,我们可以将读取的数据存放在表格中以便于观察。通过函数pmc_rdpmcrng在线读取的部分PLC信号如图2所示。

2)读取机床坐标。发那科提供了函数功能cnc_absolute用来读取机床绝对坐标,其在VB中调用的过程如下。

Dim zhouzuobiao As ODBAXIS

ret=cnc_absolute(ghandle,ALL_AXES,4+4*MAX_AXIS,zhouzuobiao)

当我们获取了数控机床的PLC信号以及机床坐标,我们就掌握了数控机床的运行状态,通过对比故障数控机床的运行状态与同等型号且正常运行的数控机床的运行状态,就能很容易地找到机床的故障所在。

(4)PLC在线诊断 通过发那科的函数库FOCAS获取数控系统的PLC报警信息以及决定PLC报警的PLC信号、数控机床的坐标数据,再通过读取一台机床型号及机械动作完全一样的数控机床的PLC数据,对两者进行比较,就能找到造成PLC报警的因素。

1)读取PLC信息。通过函数库读取数控系统的PLC型号,选取相同机床型号及相同版本的PLC作为诊断的依据。我们需要借助发那科的函数库功能pmc_rdpmctitle来获取PLC的版本信息,包括:制造商信息、机床名称、PLC与NC名称、PLC程序号、版本号、程序图号、程序设计日期、程序设计者及ROM编写等。

2)获取正常运行数控机床的PLC信息。获取了出现故障的数控机床的PLC信息,就可以通过在线查找与之相同的且正常运行的数控机床,来获取该数控机床的PLC信息及机床坐标,并将其作为PLC在线诊断的依据,这样就更接近实现PLC在线诊断的目的。

图2 通过函数pmc_rdpmcrng在线读取的部分PLC信号

3)PLC在线诊断。我们通过工业物联网获取了出现PLC报警的数控机床的运行信息,并获取了相同型号、相同PLC版本且正常运行的数控机床的运行信息。但由于数控机床的PLC运行状态不同,因此不能简单地直接将两台数控机床的PLC信息及数控系统的运行状态进行对比,例如正常运行的数控机床正在自动换刀,而出现PLC报警的数控机床正在自动换台,也就是说存在大量的干扰因素,因此这就需要借助数控机床的PLC运行状态的大数据进行模糊匹配,找到最相匹配的PLC运行状态进行对比,这样就能很容易找到造成PLC报警的原因,如图3所示。由图3运行状态对比可知,造成A0.6报警的原因是X0.7信号为0。

当数控机床出现PLC故障,借助工业物联网的在线智能诊断,并将诊断的结果发送到出现故障的数控机床中或者服务工程师的手机上,有助于服务工程师快速地解决故障。

图3 PLC运行状态对比

3. 结语

通过物联网获取数控机床的PLC运行状态以及数控机床的位置状态,就能很容易地实现PLC的在线诊断。再通过工业物联网获取数控机床的NC参数,就能实现数控机床故障的智能化在线诊断。我们不仅要借助工业物联网获取数控机床的运行信息做宏观的数据分析,更要对其运行数据进行微观的深入发掘,充分发挥工业物联网的经济效益。

猜你喜欢
数控系统C语言数控机床
基于Visual Studio Code的C语言程序设计实践教学探索
数控机床的节能应用
51单片机C语言入门方法
高档数控机床数据采集应用
基于C语言的计算机软件编程
数控机床电气系统的故障诊断与维修
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现