借助CMOS数据区为PCNC设备增加记忆功能
1问题的提出随着计算机应用技术在工业领域中的不断深入,借助计算机作为控制核心的数控设备在企业中已得到十分广泛的应用,其中微型机因其系统的开放性与软件的丰富性,近年来更有一大批专用接口与之配套,例如A/D、D/A、I/O、Amp.、通讯、SSR端口等。事实上基于微机的ISA总线、PCI总线的工业控制用计算机业已成为一种工业标准。记录工控设备的工况是工控设备的基本功能之一。例如机床刀架现在位置,设备现行加工模式,运动模式等均是保证设备加工质量以及设备安全的重要控制参数。又例如,在突发事件发生后,若造成设备断电,在断电前设备处于何种工况,也是控制系统启动后需要了解的工况信息。因此,作为工业控制用计算机或多或少总要保存一些信息,借以提高设备智能,减少人工干预时间。然而常用于伺服控制系统的伺服控制卡、相对增量式编码器、I/O卡等均无断电保存信息的功能。所以,为保存设备位置、工况等信息就要修改接口设计或采用绝对增量式编码器,由此造成控制系统成本增加是不可避免的,少则千余元,多则数千元。
虽然保存数据信息可以采用磁盘,但是磁盘的访问时间太长,实时控制性能较差。如果采用电子盘技术,虽然速度问题可以解决,但价格太高。因此,能否利用设备已有的资源来完成工况信息保存工作,就成为一个十分有研究意义的问题。
2实现方法
资料表明,自80286微机问世以来,微机主板上就多了一块可用于保存系统时间与系统配置的专用CMOSRAM芯片,系统断电后由锂电池为其保持数据不丢失。在其存储空间中系统信息占用的数据长度为64个字节。然而,实践表明此芯片的存储容量一般为128个字节或更多。所以,用户至少还有64个字节可以支配,这一丰富的资源用于工业控制,可以保存多达15个轴的浮点位置信息,另外还可以将其余4个字节用于保存设备的多达上亿的工况状态编码,或者利用64个字节保存512路I/O信息等,这样的信息保存量对绝大多数采用微机为控制中心的数控设备来讲是完全可以满足要求的。
DOS技术资料表明,对微机中CMOSRAM数据区内容作读写操作要利用两个端口来实现,标准规定采用寻址端口0X70写入要访问的数据区地址,而由数据读写端口0X71完成读出或写入一个字节信息的操作[1][2]。下面用C语言编写的一小段程序来说明如何从芯片的存储区中读出或写入数据。
{
unsignedcharstate[64],index,last_state[64];
…//以下是读端口中的内容
disable();//关闭中断
for(index=0;index
页:
[1]