徐太山,田慕琴,宋建成,许春雨
(1.晋城煤业集团,晋城048006;2.太原理工大学 电气与动力工程学院,太原030024)
煤炭是我国一次能源的主体,国家中长期科技发展规划纲要明确指出,要大力发展煤炭清洁、高效、安全开采和利用技术,并且将开发高效自动化开采技术列为重点领域的优先发展主题。煤炭综合机械化、自动化采煤技术是实现安全高效开采的关键环节,而液压支架的电液自动控制系统又是该环节的重要组成部分。液压支架电液控制系统是集传感器技术、信号处理技术、计算机及控制技术、网络通讯技术、液压阀控制技术于一体的综合控制技术。自综采技术诞生以来,液压支架控制技术一直被国外所垄断,特别是德国的DPT、MARCO、TIEFENBACH、EEP和美国JOY公司的产品,几乎占据了整个中国煤炭行业市场。国外产品技术的先进性、运行的稳定性和动作的可靠性是毋庸置疑的,但价格昂贵、供货周期长、配件不及时,直接影响到煤炭生产成本。特别是其协议不公开、技术保密、更新速度慢、不适应我国现代化无人开采技术发展等问题,严重制约着我国煤炭工业的技术进步,更成为制约我国煤炭高效集约化生产技术发展的瓶颈。近几年来,国内在电液控制技术开发方面群雄并起,但是缺乏对关键技术的突破和掌握,目前还没有实用性的创新技术和产品在市场上占有一席之地。2001年3月,中国天地集团与德国MARCO公司合资成立了北京天地玛珂电液控制系统有限公司,但由于国外技术的保密和垄断,在关键技术方面还没有取得实质性突破和进展,有很多环节还是不得不依靠进口,国产化的进程仍未完成。在煤矿无人或少人值守工作面,液压支架电液控制系统方面的研究更是鲜有报道。在我国,每年的煤炭总产量中,大中型矿井占到70%左右,大约需要数以万计的液压支架电液系统,目前仅靠进口也远远不能满足市场需求[1,3]。因此,开发具有自主知识产权的无人值守工作面液压支架电液控制系统,不仅具有重大的现实意义,更具有深远的战略意义。
煤矿无人值守工作面液压支架电液控制系统主要包括:地面主机和集控室主机对工作面液压支架的远程控制,地面主机对井下液压支架运行状态进行智能化分析和预警策略;端头控制器对液压支架的自动追机拉架控制;液压支架电液控制系统的多层通讯体系,实现电液控制系统中地面主机与集控室主机、集控室主机与端头控制器、端头控制器与间架控制器的三级网络监测和控制。
本系统是煤矿无人值守工作面液压支架电液控制系统的地面监控系统,是实现无人值守的主控部分,属远程遥控部分。其目的是提供一种煤矿井下工作面液压支架电液远程控制方法,以解决煤矿井下无人值守工作面液压支架的电液远程控制问题,实现煤矿井下工作面无人值守控制液压支架的目的。
煤矿无人值守工作面液压支架电液远程控制系统可对井下液压支架的运行方式等参数进行远程设定,同时实时记录和显示液压支架的运行状态,保存历史数据,集数据记录、查询、分析为一体[2],具有RS485和CANBUS通讯接口功能;通过PROFIBUS、MODBUS、CANBUS等协议与井下进行实时通讯,以实现连续的数据采集和控制,实现无人值守自动化操作,使煤炭生产的主要环节实现无人化,真正做到安全生产。能将各运行参数进行长期记录,并对采集到的数据进行分析和处理,为事故分析提供第一手资料[4]。
液压支架电液自动控制系统包括间架控制器、端头控制器、计算机(顺槽工控机、地面计算机)以及相关的通讯体系,参见图1。间架控制器完成支架各种动作的控制,它可接收来自键盘的手动控制,还可接收来自端头控制器的集中自动控制。间架控制器包含2片CPU,一个为主控系统服务,另一个负责键盘扫描、液晶屏显示和左右邻架通信。2片CPU之间利用SPI通信口通讯,间架控制器之间利用RS485通信传送架间控制信息。端头控制器是实现无人值守自动控制的中心环节,起着承上启下的关键作用。它可根据采煤机位置控制相应液压支架的动作,实现自动追机拉架;还可接收来自顺槽工控机和地面计算机的远程指令,控制液压支架的动作。顺槽工控机与端头控制器、端头控制器与间架控制器之间利用MODBUS协议进行通讯,地面计算机需要通过工业以太网与井下通讯[5]。
本系统能实现煤矿无人值守工作面液压支架电液控制系统的地面远程遥控功能,是实现无人值守的主控部分,可远程发送液压支架控制参数、控制命令和操作命令。传送的数据由图1的工控机的串口传到端头控制器,也是由它的串口接收,再由它将数据整理后由串口以主从模式传递给各个支架控制器的串口。
图1 系统结构
液压支架控制参数和操作命令远程传输分控制参数传送部分和操作命令传送部分。要发送控制参数,首先将控制参数键入到单行编辑器后,用鼠标点击左半平面的“发送”。要发送操作命令,首先要指明动作的支架,然后点击界面上的虚拟键盘,选择要支架完成的功能,用鼠标点击右半平面的“发送”。接到发送的命令,本系统首先要对读入的以字符型表示的控制参数或操作命令变成整型数。由于在通讯中要进行crc校验,但PowerBuilder没有异或功能,所以要将整型数转换成二进制码,利用字符变量实现异或功能,完成crc校验码的编制。第二,将地址、命令、读取寄存器地址、读取寄存器个数、校验码等以十六进制的形式送出去。由于PowerBuilder没有十六进制数的表示方法,本系统通过十进制与字符型的变换将数值先表示成二进制的形式,然后再通过大二进制文本变量(blob)将要发送的数写到串口。用blob型的变量将数据组合:b-mode=bmode+blob(CHAR(nn[i])),当发送的数据为零时:b-mode=b-mode+b-00,这样执行:ole-1.Object.Output=b-mode将数据成功送到串口发出去。第三,端头控制器接到命令后,一方面将指令下到对应的支架中,使支架完成要求的功能;另一方面返回应答信息,通知工控机已接收到命令。第四,从串口读数据dd时,本系统经过integer(asc(dd))的变换将读到的数据变成适合的算术形式进行计算。
在实际采煤中需要的液压支架数随工作面的不同而不同,一般在120~200架之间,所以在采煤工作前此数据将作为参数由工控机或端头控制器传送给液压支架控制器。当然,工作面液压支架实时状态监测的主界面表示的支架控制器的小块数量也要随这一参数而变化。图2是用PowerBuilder文本对象实现工作面液压支架实时状态监测的界面。
在界面上添加RichTextEdit(多文本编辑)控件,它有getfocus(得到焦点)和mousemove(鼠标移动)事件。当鼠标指在表示支架的RichTextEdit(多文本编辑)控件上时,鼠标移动事件发生,显示出支架的编号;若在此控件上双击鼠标,便弹出一个窗口,以表格、图形及曲线等形式显示此支架的运行信息。
由于控制的综采面支架数较多,支架的信息也较多,且具有几百个RichTextEdit(多文本编辑)控件,不可能逐一对其进行设置、编程等,因此用宏代换统一实现,包括随鼠标显示支架号,用红色显示超限的支架,用闪烁表示处于急停状态的支架,等等。
图2 工作面液压支架实时状态监测
随着鼠标的移动,小方块显示出所指到的支架编号,若想了解某一支架的详细运行状态,可用鼠标单击此编号的小方块,便可得到此编号小方块代表的支架的状态信息,并用图形形象地表示一级护帮、二级护帮、急停、喷雾和采煤机位置等状态,或以表格和曲线形式实时显示目前各种物理量,如支架下腔压力、推移行程和梁端距等模拟量的数值大小和变化趋势。
升级代码从上位机传送到端头控制器后,被存储在端头控制器的外部存储器,之后将在升级引导程序的引导下,将升级代码从外部存储器写入到端头控制器CPU的FLASH空间。上位机首先发送升级命令,以查询端头控制器有没有做好升级准备,如果没有再重新发送,直至端头控制器准备好。当端头控制器返回已经准备好升级命令后,上位机开始把升级代码分段传给端头控制器,直至传送完毕。当代码传送完毕后,发送给端头控制器版本查询命令,等待端头控制器发送来的版本号对比结果。如果选择不升级则发送取消升级命令,完成后结束。当选择确认升级后,上位机发送确认升级命令,并等待端头控制器返回指令;当返回指令错误时,上位机再次发送确认升级命令,直到发送成功。此过程中的通讯协议采用MODBUS协议,传送速率选用9 600bit/s,可保证传送数据的正确、可靠。端头控制器接收到上位机发送来的判断能否接收升级代码的命令后,对自身工作状态进行检查,如果控制器处于忙碌状态,将回复给上位机端头控制器处于忙碌状态;如果处于空闲状态,将回复上位机可以接收升级代码;并等待上位机发来的升级代码;接收升级代码后,同时将升级代码存入自身的外部RAM中,直到接收完毕。端头控制器将跳到升级引导程序开始进行程序升级。间架控制器软件远程在线升级方法与此雷同,只是要通过端头控制器传输软件代码。
本系统中采用PowerBuilder作为前端开发平台,实现煤矿无人值守工作面液压支架电液远程控制,它可与任何数据库连接,适用性很强。由于其具有功能强大的Data Window(数据窗口),再加入灵活的SQL语句,为数据处理提供了极大的灵活性。PowerBuilder独有的数据库管理特点及与其他外部事物的友好接口功能,能广泛应用其他各方面的资源,如三方控件等等。本系统中就利用了串口通讯、OLE和OLE Database Blob等外部事物功能。以下是在使用PowerBuilder开发过程中一些关键问题的处理方法[6]。
由于表示的支架数多,支架的信息也多,小长方块的数量达600个或更多,其运行的脚本程序不可能一一编制,所需的设置也不可能逐一进行,因此用宏代换实现。PowerBuilder没有实现宏代换的语句,所以通过依次识别RichTextEdit(多文本编辑)控件并结合窗口函数成功地实现了宏代换的功能,完成了液压支架的各种功能。宏代换实现方法如下:
ss=integer((w_jcjc.Width)/(zjs1+2))
s1=rte_1.x
s2=rte_201.x
s3=rte_401.x
integer li_count,sss1
integer li_i,sr1,sr2
li_count=upperbound(parent.control[])
richtextedit sr,srr,srr1,srr2,srr3
FOR li_i= 1TO li_count
CHOOSE CASE parent.control[li_i].typeof()//parent代表窗体
case richtextedit!//如果该控件是richtextedit文本
sr=parent.control[li_i]//得到该控件的引用
sss1=8
sr.width=ss-sss1
sr1=len(parent.control[li_i].classname())
sr1=sr1-4
sr2=integer(mid(parent.control[li_i].classname(),5,sr1))
if sr2<=200then
sr.tag=string(sr2)
if sr2>(zjs1+1)then
sr.visible=false
end if
sr.x=s1+ss*(sr2-1)
else
if sr2>200and sr2<=400then
sr.tag=string(sr2-200)
if sr2>(zjs1+201)then
sr.visible=false
end if
sr.x=s1+ss*(sr2-200-1)
else
if sr2>400and sr2<=600then
sr.tag=string(sr2-400)
if sr2>(zjs1+401)thensr.visible=false
end if
sr.x=s1+ss*(sr2-400-1)
end if
end if
end if
end CHOOSE
next
要完成MODBUS、PROFIBUS和CANBUS等协议的串口通讯,就要解决如何将十六进制数写到串口。前面提到由于PowerBuilder没有十六进制数的表示方法,利用了大二进制文本变量来发送数据到串口,实现了用PowerBuilder完成MODBUS、PROFIBUS和其他等协议进行串口通讯功能,而且通讯速度令人满意。
由于PowerBuilder没有异或功能,利用字符变量实现了异或功能,完成了crc校验码的编制。
本系统能将各运行参数进行长期记录,包括实时图形、数据等。与一般的数据管理不同,其图形非常多,因此,本系统充分利用PowerBuilder中处理图形的OLE Database Blob功能,将图形存入数据库表中的Text字段,非常方便,避免了一般采用图片占用大量空间的弊端。
本系统能显示液压支架的运行状态,集数据记录、查询、分析为一体,能以表格、曲线、直方图或饼图等形式直观地反映整个数据的概况,有较高的智能化水平。
1)对整个工作面液压支架各种运行参数的采集周期小于6s;
2)控制液压支架动作时间小于200ms;
3)对液压支架的控制精度大于98%;
4)在线升级端头和支架控制器程序时间小于250ms;
5)支架数量可维护;
6)误码率小于10-8。
本系统有性能优良、功能完善、协议公开、易于与其他系统接口等特点,目前已投入试运行,并已与矿方达成协议。此系统连同一起开发的端头控制器、间架控制器构成的整个液压支架电液自动控制系统,将被应用于即将开采的工作面,这是我国首例自行开发和研制、具有自主知识产权的液压支架电液自动控制系统,是集控制、监测与远程设置于一体的网络系统。它既可以实时控制和监测液压支架的工作,实现多级控制,又能完成无人值守工作面操作,填补了我国在液压支架电液自动控制系统的空白,真正实现了液压支架电液自动控制系统的国产化目标。
[1] 韩续友,煤矿液压支架电液控制系统及应用环境探析[J].中国新技术新产品,2012,(10):20-22.
[2] 张国军.PowerBuilder中的数据查询方法综述[J].鄂州大学学报,2012,(02):102-105.
[3] 刘温暖.液压支架电液控制系统,煤炭技术,2009.
[4] 范立男.SQL Server 2000实用教程[M].清华大学出版社,2004.
[5] 张爱绒.基于 Modbus协议的煤矿安全监控系统数据集成研究与设计[J].太原理工大学学报,2011,42(6):617-621.
[6] 宋雷.PowerBuilder10实例编程百例[M].清华大学出版社,2005.
[7] 孙继平.煤矿井下变频器电磁辐射骚扰的研究 [J].太原理工大学学报,2011,42(5):528-530.