具体实施方式
下面将结合附图对本发明作进一步的说明。
本发明的矿井提升机深度指示仪的主要功能是,由单片机89C52与协议转换芯片AnyBus-IC进行通讯,把协议转换芯片AnyBus-IC从PROFUBUS-DP现场总线上采集来的数据,转化为串行数据与单片机89C52通讯,单片机对数据进行分析,获取有效数据,送至显示驱动电路驱动各显示单元。操作者根据观察显示在各显示单元上的相关数据判断箕斗在矿井中的实际位置、相对位置、箕斗上、下行运行方向等。本发明的深度指示仪可以根据试灯功能来判断显示单元是否正常。
(一)外观结构说明:
请参见图1、图2和图3所示,本发明的矿井提升机深度指示仪,在壳体1的正面视图上方设有第一显示窗101,第一显示窗101是一个八位点阵显示。(a)在通讯正常时,第一显示窗101上显示提升过程中箕斗在井中的实际位置,显示格式,如:+123.45m;(b)当现场总线PROFIBUS-DP通讯故障时,第一显示窗101显示ERROR_1,报出通讯故障;故障排除后,第一显示窗101显示自动恢复正常;(c)当协议转换单元202 AnyBus-IC与单片机201 89C52发生通讯故障时,能够自动检测出并在第一显示窗101上显示ERROR_0,报出通讯故障;故障排除后,第一显示窗101显示自动恢复正常。在壳体1的正面视图左方设有第二显示窗102,第二显示窗102是一个有一列200个LED粗针显示,第二显示窗102显示提升过程中箕斗在井中的相对位置。第一个LED指示灯表示井口位置,最后一个LED指示灯表示井底位置。例如:一个700m深的矿井,当设定第一个LED表示井口+0.0m,那最后一个LED表示井底+700.0m,每一个LED代表的位置间隔为(700.0-0.0)/200=3.5m。如果此时箕斗实际在井中的位置是+350.0m,那么第二显示窗102中LED从上往下数在第100个LED灯处亮,第二显示窗102有效地显示出箕斗当前在井中的相对位置。在壳体1的正面视图右上方设有第三显示窗103,第三显示窗103是一个有一列32个LED井筒开关显示,第三显示窗103显示提升过程中上井筒开关的状态,井筒开关和实际位置相对应,在PLC(可编辑控制器)驱动程序标准功能块中可设置每个井筒开关对应的井筒开关LED指示灯。在壳体1的正面视图右下方设有第四显示窗104,第四显示窗104是一个有一列32个LED井筒开关显示,第四显示窗104显示提升过程中下井筒开关的状态,和上井筒开关类似,井筒开关和实际位置相对应,在PLC驱动程序标准功能块中可设置每个井筒开关对应的井筒开关LED指示灯;在壳体1的正面视图右方中间位置设有上、下行状态显示105,上、下行状态显示105显示提升过程中箕斗的运行方向。在壳体1的后视图左边设有拨码开关106,拨码开关106用来给指示仪设置现场总线PROFIBUS-DP上的站号。在壳体1的后视图左下边设有复位按键107,复位按键107实现系统复位。在壳体1的后视图右边设有状态指示灯108,状态指示灯108由7个发光二极管D1~D7构成,其中发光二极管D1表示电源指示,发光二极管D2、D3表示网络状态指示,发光二极管D4、D5表示监控状态指示,发光二极管D6、D7表示串口状态指示。在壳体1的仰视图上设有电源接线端子109和串口通讯接口110,其中电源接线端子109用来连接现场24V电源,串口通讯接口110用来和现场总线PROFIBUS-DP连接。
在本发明中,矿井提升机深度指示仪采用悬挂式安装在司机操作台上的。当操作试灯命令时,所有LED灯、点阵显示以及上、下行显示灯全亮,检查指示灯工作是否正常,有无损坏情况。
(二)硬件电路结构说明:
请参见图4所示,本发明的硬件电路包括PROFIBUS-DP现场总线通讯转换电路3、单片机89C52电路2、点阵驱动电路5(驱动第一显示窗101)、LED阵列显示驱动电路6(驱动第二显示窗102、第三显示窗103、第四显示窗104)、看门狗复位电路4、系统电源8。
(1)PROFIBUS-DP现场总线通讯转换电路
请参见图5所示,在本发明中的PROFIBUS-DP现场总线通讯转换电路3包括协议转换芯片306、单向移位寄存器303、并入串出移位寄存器305、缓冲器308、串口通讯芯片307、通道选择开关302,拨码开关106设定的站号信号输出端与并入串出移位寄存器305的并行输入端联接,并入串出移位寄存器305的输出端与协议转换芯片306的同步信号输入端联接;协议转换芯片306的同步信号输出端与单向移位寄存器303的输入端联接,协议转换芯片306的监控信号和串口信号的输出端分别与缓冲器308的监控信号和串口信号的输入端联接和串口通讯芯片307的监控信号和串口信号的输入端联接,协议转换芯片306的总线输入端与PROFIBUS-DP现场总线7的总线接口304联接;所述的串口通讯芯片307的监控信号和串口信号的接收端与通道选择开关302的K1开关联接,串口通讯芯片307的监控信号和串口信号的发出端与通道选择开关302的K2开关联接,K1开关和K2开关的另一端与通讯串口110联接;所述的单向移位寄存器303的输出端接电阻、二极管后接地;所述的缓冲器308的监控信号的输出端联接电阻、二极管后接地,缓冲器308的串口信号输出端联接电阻、二极管后接地。本发明的通讯转换采用智能现场总线通讯协议转换芯片(U22)AnyBus-IC作为通讯处理器,AnyBus-IC是用于现场总线PROFIBUS-DP通讯上的从站芯片,支持同步异步传输方式,波特率支持9.6K~12M的传输速率,通讯字节数可设置,配合AnyBus-IC正常工作,需要一些辅助外围电路,包括设PROFIBUS-DP现场总线7的通讯地址的八位拔码开关106,每一个在PROFIBUS-DP现场总线7都需要有自己独立的通讯地址,通过拔码开关106来进行设置,最大站号127;并行转串行芯片(U18)74HC165,用来把拔码开关106设置的通讯地址转化成串行数据传入到AnyBus-IC中去;八位移位寄存器(U17)74AHCT594,把AnyBus-IC工作状态字传出,供给LED灯指示;9针D型通讯接口,用于现场总线PROFIBUS-DP连接;三态门芯片(U19)74HC125;RS-232电平转换芯片(U20)MAX232;6个通讯状态LED指示灯,包括AnyBus-IC工作状态指示灯和通讯数据交换状态指示灯。
在本发明中,拨码开关106的站点地址信号输出端连接电阻排后与并入串出移位寄存器305的并行输入端连接,并入串出移位寄存器305的输出端10、9、1、2分别与协议转换芯片306的同步信号输入端6、5、3、7连接;协议转换芯片306的输出端7、3、6分别与单向移位寄存器303的输入端11、12、7联接,协议转换芯片306的复位端与单向移位寄存器303的复位端联接,单向移位寄存器303的输出端15连接网络指示灯108的电阻R7、二极管D2后接地,单向移位寄存器303的输出端1连接网络指示灯108的电阻R8、二极管D3后接地;协议转换芯片306的接收串口信号端31与缓冲器308的12端连接,协议转换芯片306的发出串口信号端与缓冲器308的9端连接;协议转换芯片306的接收监控信号端28与缓冲器308的5端连接,协议转换芯片306的发出监控信号端与缓冲器308的2端连接;同时,协议转换芯片306的接收串口信号端31与串口通讯芯片307的9端连接,协议转换芯片306的发出串口信号端与串口通讯芯片307的10端连接;协议转换芯片306的接收监控信号端28与串口通讯芯片307的12端连接,协议转换芯片306的发出监控信号端与串口通讯芯片307的11端连接;所述缓冲器308的O0端接电阻R18、二极管D4后接电源,缓冲器308的O1端接电阻R19、二极管D5后接电源,缓冲器308的O2端接电阻R20、二极管D6后接电源,缓冲器308的O3端接电阻R21、二极管D7后接电源;所述串口通讯芯片307的接收串口信号端13和接收监控信号端8与K1通道选择开关连接,串口通讯芯片307的发出串口信号端14和发出监控信号端7与K2通道选择开关连接,K1通道选择开关的另一端与串口通讯插座110的第2管脚连接,K2通道选择开关的另一端与串口通讯插座110的第3管脚连接。
(2)单片机89C52电路
在本发明中采用单片机(U4)89C52芯片作为核心处理器,89C52单片机是ATMEL公司推出的一种低功耗、高性能的8位CMOS处理芯片,它与INTEL公司的MCS-51系列产品的指令集与管脚分布完全兼容。它除了具有256字节的RAM、32条I/O线、两个16位定时器/计数器、一个五源两级的中断结构、一个双工的串行口、50HZ~12MHZ的全静态工作方式、片上振荡器与时钟电路等一般标准特性以外,还具备以下特点:
1、89C52内部有两个数据缓冲器(SBUF),一个用作发送,另一个用作接收,发送数据由TXD端送出,接收数据由RXD端输入。
2、89C52片内自带的4K字节程序存储器是一种闪速可编程及可擦除只读存储器(Flash Program and Erasable ROM,简称PEROM)。该种芯片擦除时间约为1秒钟,而一般EPROM需花15~20分钟完成擦除,通过编程器将程序写入的时间也是在瞬间完成且擦写次数可达1000次之多,数据保存器可达10年之久。它的这一特点对于开发控制系统是非常有利的。
3、89C52带有三级程序存储器锁定功能,一旦使用了此功能便可以防止程序被读出。
4、89C52为PEROM阵列的编程提供了所有必须的时序与高电压,不需要任何的外部支持电路。
5、89C52支持两种软件可选的省电模式,其中在闲置模式下,CPU停止工作,但RAM、定时器/计数器、串行口与中断系统仍然在起作用;在掉电模式下,只保存RAM的内容,振荡器停振,关闭芯片的所有其它功能,直到下一次硬件复位的到来。
请参见图7所示,本发明的单片机(U4)89C52电路共有40个端子,其电源输入端20接+5V电源,40端接地;I/O口输入1、2、3端分别与两片点阵驱动芯片(U1、U2)MAX6952的23、21、20端即片选端/CS、时钟端CLK、数据端DIN联接;I/O口输入5、6端与上、下行指示105的上行、下行指示灯联接,指示灯低有效;I/O口输入8端接看门狗芯片(U10)MAX813L的6端;单片机(U4)的复位9端即RESET端接看门狗芯片(U10)MAX813L的7端,由看门狗芯片(U10)MAX813L向单片机(U4)发出复位信号;串行通讯接口10、11端分别与协议转换芯片(U22)AnyBus-IC的输出30、31端联接,协议转换芯片(U22)AnyBus-IC把从PROFIBUS-DP现场总线7上采集来的数据经过内部处理,变换成串行数据通过这两个串行端口与单片机(U4)89C52通讯;单片机(U4)的晶振输入18、19端接晶振电路,因有串行数据传送,为了达到传输数据和接收数据的波特率一致,在此采用11.0592M频率的晶振;单片机(U4)的I/O口输入21、22、23、24端分别与三片LED阵列显示驱动芯片(U7、U12、U14)TPIC6B595的13、3、12、9端联接,即时钟端CLK、数据端SIN、选通端STR、输出使能端/OE;单片机(U4)的I/O口输入33、34、35端分别与3-8译码器74HC138的3、2、1端即数据输入端C、B、A;I/O口输入端36、37、38、39接4-16译码器74HC154的20、21、22、23端即数据输入端D、C、B、A,编程/校验端31即/EA接+5V电源,其余端悬空。
(3)点阵显示驱动电路
本发明在数字显示上屏弃了常用的数码管显示方式,采用点阵显示,不仅美观而且能显示所有ASCII码,作为故障信息显示方便。点阵显示驱动5采用了MAXIM公司的MAX6952芯片作为驱动芯片,点阵采用了八位5×7点阵做显示。MAX6952是MAXIM公司推出的一款专门用来驱动5×7点阵的显示驱动芯片。每一片最多可以驱动四位5×7点阵,和单片机(U4)的连接采用三线串行数据传输方式,包括片选线、时钟线和数据线,连接方便,芯片内部存有104个ASCII字符字库及24个用户可定义字符字库,工作电源+2.7V~+5V,低功耗。因每一片点阵显示驱动MAX6952最多只可驱动四位5×7点阵,在本发明中采用两片点阵显示驱动芯片(U1和U2)MAX6952级联的方式来驱动八位5×7点阵。LCD1~LCD8为八位字符型5×7点阵,U1、U2分别为两片MAX6952芯片,U1和U2的片选线/CS、时钟线CLK分别连接在一起接到单片机(U4)89C52的1、2端上。级联的实现,主要是在数据线上,把点阵显示驱动芯片(U1)的数据输入线20端接到单片机(U4)89C52的3端上,把U1的数据输出线22端接到U2的数据输入线20端上,U2的数据输出线悬空。
(4)LED阵列显示驱动电路
本发明共有200个LED灯(第二显示窗102中),用来做提升过程中箕斗相对矿井的位置的粗针显示,还有64个LED灯(第三显示窗103和第四显示窗104各32个指示灯),用来显示提升过程中上、下井筒开关的状态。因处理器2(单片机)的I/O口资源有限,所以用I/O口直接驱动如此多的LED灯肯定不可行,如果采用8255扩展I/O口的方案,一片8255可以扩展出24个独立的I/O口,如果想驱动200+64=264个LED灯,共需要11片8255,这样做不仅电路复杂,而且使得整个电路板结构宠大,所以此方案也不可取。在本发明中,采用了阵列驱动的方案,分别由一个16×16的阵列来驱动200个LED灯,和一个8×8的阵列来驱动64个LED灯,采用阵列驱动的的方案使得电路结构简单,实用性强,扩展性强,现举例说明16×16的阵列。请参见如图8所示的LED阵列显示驱动结构图,1、2、3……16连接TPIC6B595芯片的数据输出端。TPIC6B595芯片由一个八位串入并出、串入串出移位寄存器,八位数据锁存器和驱动器三个主要部分构成,移位寄存器接收串行输入数据,输出串行数据,并提供送往锁存器的并行数据,信号端、时钟端带施密特整形,提高抗干扰能力,保证数据有效可靠,数据处理速度高,电路采用BiMOS工艺,串行最高时钟频率不低于15MHz。1、2、3……16经过一个PNP三极管进行电流放大,再接LED的正极,LED的负极接一个电阻,起限流作用,A、B、C……O接4-16译码器74LS154(U5)的数据输出端,作为行选择用。8×8阵列驱动原理类似16×16阵列驱动原理,在此就不再重复说明了。电路原理图请参见图7(e)和图7(f)所示。
(5)电源电路
请参见图7(d)所示,本发明工作电源为直流5V电源,因工业现场一般不具备直接的直流5V电源,为了符合工业现场的情况,使本发明能够比较方便的用到工业现场中,所以在电源输入端用了一个接线端子109和一个电源DC/DC芯片(U16),DC/DC是一个24V~5V电源模块,直流24V电源为现场标准电源,电源模块把现场24V电源接入变成5V工作电源,在电源模块输入输出端都用了高频和低频滤波电容C10、C27,提高了电源的抗干扰能力。
(6)看门狗复位电路
请参见图7(b)所示,为本发明的看门狗复位电路图。本发明采用专用看门狗复位芯片(U10)MAX813L,此芯片本身能独立工作,基本上不依赖于单片机(U4),单片机(U4)只在一个固定的时间间隔内与其打一次交道,表明整个系统“目前尚属正常”,在本发明中用单片机(U4)的8端用来做此项工作。如果单片机(U4)的8端长时间不与看门狗复位芯片(U10)MAX813L打交道,即不给MAX813L发变化的电平,即可判断单片机(U4)已工作已不正常,MAX813L即向单片机(U4)复位端9发送复位信号,复位单片机,保证整个系统的正常运行。
(三)软件结构说明:
(1)单片机软件结构说明
本发明的驱动程序在单片机89C52中运行,采用是汇编语言编程方法。
本发明的矿井提升机深度指示仪的主要功能是,由单片机89C52与协议转换芯片AnyBus-IC进行通讯,把AnyBus-IC从PROFUBUS-DP现场总线上采集来的数据,转化为串行数据与单片机89C52通讯,单片机进行数据分析,获取有效数据,送点阵显示,并转化为相对应的粗针显示,并且反映井筒开关状态,箕斗上、下行运行方向,试灯功能,并且在串行通讯中判断通讯是否正常。为实现这些功能,本发明单片机软件主要由主程序、串行中断程序、时间中断程序组成。
主程序是单片机软件的主线,主要任务是识别不同状态下调用相应的子程序处理模块,并将它们联系起来,形成一个有机的整体,从而实现对深度指示仪的全部管理功能。如图6所示,为本发明的单片机通讯控制框图。开机复位后先进行初始化,处理器、寄存器清零、设置时间中断、串行中断、给点阵(第一显示窗101)初始化工作方式、送寄存器存入初值,然后判断是否内部通讯(指通讯电路3与处理器2之间的通讯)正常,通讯不畅第一显示窗101显示ERROR_0,接着判断是否与外部通讯(指通讯电路3与现场总线7之间的通讯)正常,通讯不畅第一显示窗101显示ERROR_1,判断是否为试灯(是对所有的显示窗中的指示灯进行)状态,如果是显示试灯程序,试灯程序用来检测第一显示窗101中的指示灯、第二显示窗102中的指示灯、第三显示窗103和第四显示窗104点阵及上、下行指示灯是否正常,接下来获取箕斗上、下行方向信号,送显示,最后显示点阵、200个LED粗针显示及64个LED井筒开关状态信号。
串行中断程序用来进行数据通讯,判断通讯是否正常,及通讯数据是否正确,提取有效数据。为本发明的单片机串行中断程序框图,包括发送中断程序和接收中断程序,在这里通讯数据采用CRC检测法,使得通讯数据更加可靠,如果CRC检测到通讯数据错误后,进行错误累加,当达到一定次数后置通讯故障标志位,如果CRC检测到通讯正确,把错误累加器清零,清通讯故障标志位。
时间T0中断程序是单片机定时向AnyBus-IC发送命令,在这里发送命令分启动命令和读数命令两种,当AnyBus-IC没有开始工作时,先发送启动命令,送控制字给AnyBus-IC启动其工作,如果AnyBus-IC已经开始工作,定时发送读数命令给AnyBus-IC建立通讯,获取通讯数据。
(2)GSD文件说明
作为整个PROFIBUS-DP现场总线上的一个从站,必须要有自己的驱动程序,也就是所谓的GSD文件,供PLC对其识别、组态。GSD文件必须完全符合其标准,包含其名称、版本号、支持的通讯波特率、同/异步传输、通讯字节数等信息。最关键的是所支持通讯字节数信息,在本发明中共占用了13个字节的输出地址,因此在GSD文件中包含了Module=″OUTPUT:13 Byte″0x2C,定义出了一个13字节的输出。13个输出字节格式:
(3)PLC程序说明
拥有了GSD驱动文件后,只是供PLC识别出深度指示仪,同时还需要PLC拥有一个配套驱动程序,来进行简单的数据处理及数据传输,按照习惯做成了一个标准功能块,提供所要通讯数据输入、输出接口,用户使用方便。上、下井筒开关状态,再根据井口、井底值、及当前箕斗实际位置值,转化为相对应的粗针显示数值,即当箕斗处于当前位置时,具体200个LED粗针显示灯,哪一个代表当前位置,注意在此如果箕斗位置值小于井口值时,第一个LED灯亮,大于井底值时,最下面一个LED灯亮,接下来判断位置正、负号,置正、负号显示标志位,判断上、下行方向,试灯命令,及触发通讯生命线电平变化。在这里特别提一下COM_LIFE,这是一个状态生命线,用来检测PLC或通讯是否正常,COM_LIFE为在PLC中产生的一定频率的方波,单片机89C52检测此数据位,如果也为一个方波即PLC及通讯正常,如果单片机(U4)检测长时间此状态位不发生变化,即可判断可能PLC故障或通讯电缆故障,深度指示仪上的第一显示窗101显示故障ERROR_1。