随着计算机软、硬件技术的飞速发展,计算机及其外围设备的性能价格比、平均无故障率等技术指标均优于专用控制器,在计算机上以软件实现成为新的发展热点,即所谓的7‘。目前,欧美等西方国家都把作为一个重点投资对象进行研究开发,已经投入市场的产品较多,如德国公司的、法国公司的以及公司的等0(1.目前国内有关部门也正着手研究开发具有自主版权的中文产品。这些产品多在或操作系统中嵌入某一种实时操作系统,来满足对实时性的要求。操作系统及实时平台的售价或版权费等在开发成本中占有一半以上的比例。
是一种免费的、开放内核源代码的实时操作系统,对于开发有自主版权的是一个较为理想的选择。
文章在操作系统基础上,借助于图形支持系统开发了一种软件‘,并在自行开发的型五轴联动数控系统中得到了成功的应用。
系统任务调度机制是基于操作系统并可运行于多种硬件平台的位硬实时操作系统。它通过修改内核的硬件层,在内核和硬件之间实现了一个小而高效的实时内核,通过中断仿真技术将内核与硬件中断控制器隔离,并在实时内核的基础上形成了微型实时系统,而内核仅作为实时系统最低优先级的任务运行。对于普通的硬件结构,拥有出色的实时性能和稳定性,无论系统负载如何,其最大中断延迟时间不超过。O,最大任务切换误差小于)。O.正是由于这种卓越的实时性能,在嵌入式设备以及实时性要求高的场合有很好的应用前景。
作者在工控机平台上,基于实时操作系统开发了基于的软件的研究与开发游华云叶佩青杨开明汪劲松清华大学精密仪器与机械学系制造工程研究所,北京实时操作系统的软件‘,既可以作为一个独立模块和不同的系统协同工作,也可以嵌入到型数控系统内部运行在同一台计算机上,其实时性和可靠性已经在国产和立式加工中心上得到了验证。
软件数控系统计算机工程与应用型数控系统,该数控系统具有实时性和多任务的特性。在机床运动控制过程中,数控系统需要完成轨迹插补、位置控制等任务。其中,实现了一个基于固定优先级的抢先调度机制的实时多任务内核,数控系统执行的任务按照优先级高低主要有:用户控制命令,数控系统接收来自控制面板按钮、键盘、其他输入设备的输入指令保存到命令寄存器,将执行结果保存在状态寄存器中;伺服更新,计算各坐标轴新的命令位置,获取当前的实际位置,并根据两者之间的差计算伺服命令输出;实时任务中断,通过实时中断执行数控程序,对数控程序中的运动指令进行计算,输出下一运动序列的插补数据;后台任务,在每伺服周期没有高优先级任务执行时,扫描命令寄存器并执行新的用户命令,按照优先级执行各级用户程序,非实时数据更新等。
系统利用硬实时的特性实现对任务的调度和软硬件同步。每次任务调度由一次伺服中断开始。系统首先运行优先级高的任务,接收用户命令,伺服更新。然后根据实时中断任务的运行频度启动实时中断任务。如图所示,每三次伺服中断执行一次实时中断任务,其他时间运行后台任务。通过这种固定优先级的调度机制,时间得到了合理的分配,使得优先级高的任务能够得到及时执行,保证了整个系统的安全有效执行。
图/数控系统的任务调度软件的实现软件的功能描述软件采取循环扫描工作机制。对于不同的程序扫描周期一般在之间。
在每个扫描周期主要完成以下任务:自诊断,首先对寄存器单元、输入输出信号等进行故障诊断,若自诊断正常便继续扫描过程,一旦发现故障或异常则转入异常处理程序,保存现场工作状态、关闭全部输出、停机并显示出错信息。
与通信,扫描通信接口,如有通信请求便响应处理。
接收并执行来自的起动、停止、变量设置等命令。
扫描输入点,读入各输入点的状态和数据,如开关的通断状态、转换值、码数据等,并把这些状态值和数据保存到中间变量中,用于解算用户逻辑。在下一扫描周期再对这些中间变量进行刷新。
解算用户逻辑,即执行用户程序。从用户程序第一条指令开始,按用户程序进行逻辑判断和算术运算。在一个扫描周期内,某个输入点的状态不管外部实际情况是否已经变化,其对应的中间变量总保持不变,以保证运算结果的稳定。
输出刷新,将本次扫描过程中解算逻辑的最新结果送到输出模块取代前一次扫描解算的结果,直到用户程序结束为止。
依次完成上述五步操作后又从自诊断开始进行下一轮扫描。如此不断地循环扫描,实现对电气设备的连续控制。
软件依赖的硬件结构从计算机系统结构可知,软件和硬件在逻辑上是等效的。
软件的逻辑计算、算术运算等均由软件来实现,但它与机床之间的信号传递则必须通过输入输出模块实现。因此,软件所依赖的外部设备主要是接口。
目前,所有系列可寻址的开关量和模拟量接口设备,在软件中均可使用。只需向配置工具提供相应的访问地址范围,由配置工具对地址进行内存映射。这样设计优点在于采用工业上通用的设备,缩短开发周期,提高系统可靠性。图为系统的硬件结构图,其接口部分为计算机通用接口。
图! 硬件结构图软件的软件实现的软件实现分两个部分,其一是系统软件,是得以运行的核心部分;其二是用户编制的程序。对于用户编制的程序,系统提供了个不同的优先级,用户可以根据实际需要分配机床各电气模块的优先级,即在中分别编制不同电气模块的控制程序。
系统软件系统软件用来管理、协调不同优先级的挥的软硬件功能,方便用户对的管理和调试。
系统软件主要包括以下功能:系统初始化。初始化完成输入、输出单元地址定义,命令寄存器、状态寄存器定义,定时器、计数器及其他中间变量的定义和初始值设定。
系统自诊断。
命令识别与处理,对来自操作面板、键盘的每一个命令加以解释,执行相应操作,记录执行状态。
用户程序编译,对用户程序进行语法检查,发现错误便返回提示信息,无误则编译成系统可执行代码。
用户程序编制用户程序是用户根据系统控制的需要使用的程序语言编写的。国际电工委员会制定的国际标准中规定了在中使用的五种编程语言:顺序功能计算机工程与应用功能语句指令启动逻辑与逻辑或逻辑非输出计时计数移位主控继电器起始,主控继电器结束,置位复位图、功能块图、梯形图、指令表及结构化文体。其中梯形图和指令表是最通用的编程语言。
考虑到软件的可移植性,系统参照标准制定了用户程序的编程规范,借助于系统上的小型图形开发系统,7872,为用户提供了图形化的编程工具,用户可以选择指令表和梯形图两种方式编制用户程序。
梯形图梯形图是中应用最广泛的一种编程方式。梯形图中采用了继电器线路的一些图形符号,这些图形符号称之为编程元件,每一个编程元件对应一个编号。系统对常用的编程元件建立了一个可编辑的元件库。采取梯形图编程时,系统首先从元件库中提取出所有元件,用户只需在图形界面上使用键盘或鼠标选取元件,并进行连线,即可完成编程。系统编程元件库部分元件符号如表所示。
梯形图编程元件指令表指令表类似于汇编语言程序,每一语句由操作码和操作数组成。操作码即编程指令,表列出了系统采用的基本编程指令。操作数给出了执行操作码所需的数据,可能是编程元件的编号或常数,代表了输入、输出继电器、中间继电器、定时器、计数器以及定时器、计数器的设定值等。
表! 31基本指令用户可以根据需要选择编程方式,系统还提供了梯形图和指令表相互转换的功能。
计时器和计数器在初始化阶段为用户分配个位定时器和个位计数器,分别以指定编号索引。编程时只需指定一个索引编号并设置时间常数或计数常数,在适当的场合触发定时器或计数器。不允许在不同优先级的用户程序中使用同一个计时器或计数器。
用户程序的编译接受用户输入的梯形图或者指令表后,对程序进行语法检查,如果没有错误,系统将其编译成系统的可加载模块,并将其加载到系统中,从而实现和系统内核的连接。
类似于其他控制系统中采用的FGHIAJ,系统采用了一个独立运行的守护进程来监视各优先级的扫描过程是否超过规定时间,避免由于程序执行进入死循环而造成整个系统瘫痪。若超过规定的时间,守护进程将停止所有输入输出操作,向发出报警信息,等待操作人员作相应处理。
软件和外部通信为了便于在和数控系统之间建立通信联系,系统设计阶段为软件模块建立了命令寄存器表和状态寄存器表以及数据寄存器表,这些寄存器表表征了绝大多数机床电气特征,是和之间的通信接口,由系统在后台负责刷新寄存器表。这些寄存器表可以方便地映射到计算机的内存单元中,实现和之间高速通信。利用这种数据结构也可方便地通过网络、串行通信和其他或之间进行数据传送。
结束语在飞速发展的计算机软硬件技术的支撑下,软件是可编程控制器的一个发展趋势,其突出的特点是以通用的计算机及其外围设备代替专用控制器,结构开放,开发周期短、成本低。