所有分类
-
塑胶原材料
- 通用塑料
- PE ABS PP PVC PS LCP PCM LDPE MBS LLDPE GPPS HDPE BMC AAS ASA PHB HIPS UHMWPE DMC EBS K树脂 PPR MS SIS 其他通用塑料
- 工程塑料
- PA66 PA6 PA46 PC POM PPO PET PMMA EVA SAN PA11 PA610 PU POE PPA PSU PA1010 PBT PPS PP-R PA12 PES PEI PF EEA PEN AS PARA PFA AES EPDM MDPE EPS CPVC FEP EVOH PA612 CA PC/ABS SEBS 其他工程塑料
- 塑胶工业品
- 塑胶消费品
- 五金原材料
- 五金工业品
- 五金工具
- 电子工具 手动工具 电动工具 工具包、工具箱 喷涂工具 起重工具 液压工具 园林工具 电力电讯工具 日用五金工具 测量工具 切削工具 气动工具 研磨工具 金刚石工具 磨具、磨料 刀具、夹具 钳工工具 电工工具 管工工具 土木工具 其他未分类 五金工具 组合工具 防爆工具 匠作工具 农、园、林工具 手工工具 美容器具 其它五金工具 热工工具
- 通用配件
- 密封件 零部件 弹簧 滑车 模具 齿轮 铸件 配件五金 葫芦 锻件 钢球 阀门 紧固件、(非)标准件 索具 其他传动件 轴承 链条、链轮 润滑器 焊接设备与材料 电焊机 千斤顶 其他未分类 通用配件 温控器 气动元件 喷嘴 传动件 脚轮、万向轮 滚筒 卸扣 紧固件 液压元件 船用五金配件 管夹 直通 过滤材料 管材及管接头 井盖 吊钩、抓钩 钢珠、滚珠 密封、润滑 专业配件 喷头 液压辅件 起重件 卡箍、抱箍 其它通用配件
- 锁具安防
- 作业保护 防静电产品 军需用品 防身用具 防弹器材 智能卡 锁具 印章设备 信息安全 防雷避雷 防爆防水防尘 消防救援 二手安防产品 公共广播 防伪产品 灾害防护 智能交通 小区安防 建筑安防配件 楼宇对讲 安全标识 安全检查 交通指挥 监控器材 静电测试仪 警报设备 防盗装置 其它安全防护用品
- 仪器仪表
- 车用仪表 包装测试设备 室内环保检测仪器 仪器仪表配件材料 电子元器件 传感器 色谱仪 实验室仪器 试验箱及气候环境设备 试验设备 通用分析仪器 生物仪器 医用仪器仪表 衡器 气象仪器 气体检测分析仪 电子测量仪器 分析仪器 实验室常用设备 计量标准器具 无损检测仪器 粮食水分仪 专用仪器仪表 工业自动化仪表 校验仪器 变送器 环境、环保检测仪器 其它仪器仪表
- 电子电工
- 变频器 电子材料 开关电源 绝缘材料 绝缘材料 输电设备及材料 电子电工产品设计加工 天线 雷达及无线导航 电子电工产品制造设备 电热设备 电子电工项目合作 高压电器 低压电器 配电装置、开关柜、照明箱 显示设备 电子、电工产品代理 半导体材料 电子元器件、组件 工业自动化装置 磁性材料 电工陶瓷材料 电子化学品 插头、插座 充电器 电动机、电机 光电子、激光仪器 UPS与电源 照明与灯具 其他未分类 数码产品 电池 电子电工 开关 电工仪器仪表 电动机 电阻材料 插座 电器成套设备 配电输电设备 电源 电线、电缆 调压器 信息安全产品 电子产品包装 稳压器 变压器 连接器 插头 节电器 电气产品 其它电工设备
- 机械设备
- 裁断机 发泡机 电晕机 热熔机 注塑机 成型机 挤出机 制袋机 吹膜机 吹塑机 压塑机 压延机 造粒机 滚塑设备 包装设备 混炼机 切胶机 硫化机 密炼机 风机、排风设备 压缩、分离设备 印刷设备 整熨洗涤设备 玩具加工设备 机床 化工设备 电脑产品制造设备 家电制造设备 塑料机械 点胶机 混合机 定型机 贴合机 吹瓶机 制杯机 押出机 落砂设备 丝网设备 玻璃加工机械 钣金加工设备 切割设备 选矿设备 焊割设备与材料 造型及制芯设备 石油设备 包装检测设备 包装制造机械 激光设备 农业机械 管型线材加工设备 包装成型机械 清理设备 金融专用设备 工艺礼品加工设备 建材机械 换热、制冷设备 电子产品制造设备 砂处理设备 电镀设备与材料 食品加工机械 工控系统及装备 纸加工机械 纺织设备 医疗器械与设备 直接包装机械 工业锅炉 制氮机 仓储设备
- 五金消费品
- 办公文教光学器材
- 办公家具 计算器 实验室用品 乐器 光学仪器 绘图文具 办公挂摆饰 学习文具 办公用纸 学校家具 打印机耗材 办公文教五金 眼镜及配件 文具配件 其它教学模型、器材 文化办公设备 裁剪用品 光学计量标准器具 文教用橡胶制品 装订用品 教学模型、器材 复读机、学习机 PDA 笔类 其它文具 摄影器材 光学加工机械 书写板、擦 实验室专用设备 其它办公耗材
- 商务服务
- 二手设备转让
- 二手建材设备 二手汽摩 二手交通产品及用具 二手通讯产品 二手机械设备 二手环保产品加工设备 二手工艺礼品加工设备 二手运动休闲用品 二手电脑产品加工设备 二手农副产品加工设备 二手包装设备 二手家居用品加工设备 二手服装鞋帽加工设备 二手家用电器 二手冶炼加工设备 二手办公文教用品 二手电子、电工产品 二手化工产品设备 二手纺织、皮革加工设备 二手汽配加工设备 二手玩具加工设备 二手安全、防护用品加工设备 二手电脑及用品 二手印刷设备 二手食品饮料加工设备 二手医药产品加工设备 其他未分类 二手设备转让 二手工程机械 二手办公设备 二手建材加工设备 二手纸加工设备 二手通信器材 二手交通工具 二手木工机械 二手电工电气产品 二手纺织加工设备 二手橡胶加工设备 二手制鞋设备 二手化工设备 二手电脑及配件 二手矿业设备 二手广电设备 二手皮革加工设备 二手造纸设备 二手仪器仪表 二手环保设备 二手锅炉 二手通用零部件 其它二手设备 二手医疗设备 二手包装机械 二手照明器材 二手物流设备 二手食品机械 二手制药设备 二手电动工具 二手服装加工设备 二手电子加工设备 二手农业机械 二手冶炼设备 二手机床 二手塑料机械 二手安防设备 二手体育休闲设施
- 项目合作
- 能源项目合作 家电项目合作 环保项目合作 能源项目合作 化工项目合作 环保项目合作 注塑加工合作 铸塑加工合作 压塑加工合作 吸塑加工合作 吹塑加工合作 挤塑加工合作 冶金矿产项目合作 安全防护产品项目合作 建筑项目合作 工艺礼品项目合作 办公文教用品项目合作 玩具项目合作 医药、保健项目合作 机械及工业制品项目合作 电子、电工项目合作 交通项目合作 家居用品项目合作 运动休闲用品项目合作 其他未分类 项目合作 建材项目合作 电子项目合作 食品饮料项目合作 电脑项目合作 办公、文教项目合作 医药项目合作 招标、投标 电工电气项目合作 地区、政府招商引资 其它项目合作 机械项目合作 照明器材项目合作 服装项目合作 冶金项目合作 矿业项目合作 交通工具项目合作 五金工具项目合作
- 表面处理
数控系统软件芯片的研制和开发
来源:塑胶五金网发布时间:2007-12-16 11:14:13点击率:
0
0
数控技术无疑是现代先进制造技术中 重要的技术基础,从某种意义上说,数控技术的水平已成为衡量一个国家制造业水平的重要标志之一。出于技术垄断及独占市场等原因,各个厂家生产的数控系统在体系结构上大多是封闭的,不能进行高可靠性的软件扩展。近年来,国内外众多的数控软件 都在重复研究、开发相同或相似的数控系统,反复设计若干基本模块,造成了人力、物力和财力的巨大浪费,而且由于缺乏统一的标准,不同的数控软件 开发的软件不能互相替换,缺乏兼容性,阻碍了数控软件的升级换代,同时也阻碍了数控机床生产者对市场和用户的快速响应能力。 通过对数控系统软件体系结构的分析,我们设想如果把数控系统软件中相同或类似的部分做成类似于硬件电子芯片的软件芯片(Soare IC,SIC),每一个软件芯片具有高度的功能独立性、易移植性、易组装性及易扩充性。这样,当我们建立新的数控系统时,只需从芯片库中取出所需的芯片进行组合即可,必要时加以扩充,使数控系统能够重用,而不必从头开发整个软件系统。这样就能改变目前数控系统的封闭型设计,为适应未来车间面向任务和订单的生产组织模式奠定良好的基础,使底层生产控制系统的集成更为简便和有效,从而大大提高数控软件的生产力和可靠性,减少生产成本及开发周期。这是增强数控系统对市场的快速响应能力,促进数控产业快速、高效发展的必然之路。
1 数控系统软件芯片的划分
合理的芯片划分,是开发软件芯片的首要步骤。数控系统软件芯片库中的各芯片以界面的方式开放,通过接口参数和界面信息的提示,用户可掌握芯片的启动、结束和运作。不同芯片的内部为黑箱封装,外部接口开放,并在此基础上实现新系统的构建。因此,如何定义出合理的数控系统软件芯片,使芯片的外部接口易于标准化、规范化,内部易于进行黑箱封装,是我们开发数控系统软件芯片库的关键步骤。
目前,尽管数控系统从系统的设计方法到系统的实现方式千差万别,但是其基本原理和软件的组成都是类似的。在对现有的数控系统和用户需求进行仔细而全面分析的基础上,同时,在总结现有系统控制结构的共有特征,并对其进行适当的归类和抽象的基础上,将数控系统划分为以下几个基本的功能模块。
(1)人机交互界面模块 此模块主要完成在系统运行前和运行中系统参数的修改和设定,如设定系统工作模式(自动、手动、点动等),图形显示模式,系统初始化设定,坐标偏置设定,G代码程序的编辑等。
(2)零件代码解释模块 负责根据用户的系统配置,以及零件程序的语法规则对用户编写的零件程序进行语法检查,并进行解释译码,将源代码指令中给出的各种信息进行分离提取,变成各种状态和数据,为预处理芯片提供语法上正确的零件程序的中间代码。
(3)刀补预处理模块 负责对解释后的数据进行预处理及插补前的准备工作。
(4)轨迹插补模块 负责加减速的控制、插补、终点判别等工作,向位置控制器输出通过轨迹运算后的进给量。
(5)轴伺服控制模块 在从I/O及插补运算得到的信息的帮助下,通过精插补控制机床执行机构按NC指令指定的路径和速度运动。
(6)I/O模块 负责控制器的输入和输出(包括机床检测信号及位置和相关反馈信息的输入、控制指令的输出等)。
以上这几个模块间具有互操作性、可移植性和可扩展性,因而可作为数控软件芯片库的基本芯片的划分。
2 数控系统软件芯片的构建及工作原理
软件芯片概念的提出是软件重用发展过程中的里程碑。开发软件芯片就是采用面向对象技术把特定类中的一些通用模块做成独立的可重用的对象类。由于面向对象具有封装、分类、消息响应和继承等很有价值的特点,使得软件芯片和系统其它部分的耦合度得到尽可能的降低,这为软件芯片的开发和使用提供了可靠保证。同时,由于芯片都是对较成熟的技术进行封装而实现的,在实践上是经过了验证的,也就是说一个成熟的芯片已经将错误率降到了 点,所以可以利用数控软件芯片来构造新的数控系统能 地保证系统的可*性。 软件芯片的构建就是将功能模块的本体部分进行黑箱封装,使之输入接口和输出接口尽量简单、规范。由于C++语言的面向对象特性和封装性较好,所以在本系统中将VC作为编程环境来进行芯片本体的构建。整个芯片是基于静态库创建的, 生成一个Lib库文件。所有功能的实现都封装在Lib库文件中。用户使用时,不需要知道芯片内部的功能(如初始化、错误信息处理、数据分离)是怎样实现的,只需将对应的.Lib文件和.H文件加入到自己的系统中,然后依照芯片说明提出的接口要求,通过接口参数调用相应的方法即可。接口参数和方法在Lib文件中定义为,用户可以在外界通过它们和芯片进行交互。就如同用户通过硬件IC的引脚来使用芯片内部的功能一样。
下面就以零件程序解释芯片为例,简述数控系统软件芯片的构建过程。
首先,对芯片的本体功能进行分析,定义出合适的接口。一般来说,一个完整的零件数控加工程序,由若干程序段组成,一个程序段又由若干个代码字组成, 以“;”结束。每个代码字由文字符和数字符组成,代码字之间用空格符隔开。
根据自上向下的原则,该部分又可划分为以下几个部分:
(1)词法检查 对源程序的数据进行拼写及位数检查;
(2)语法检查 对程序段中的G代码和其它功能码的格式进行检查,如G代码的相容性检查等;
(3)语义检查 对上下文相关的错误进行检查,如I、J、K和R不能出现在同一行代码中等;
(4)译码 将程序段的信息进行提取,变成相应的状态量和数据量,存储在输出缓冲区中。
在综合考虑数控系统解释器的内部逻辑关系和数控系统的运动控制的基础上,将解释芯片的输入口数据定义为以字符串形式输入的一行数控代码段(char* LineStr);输出口数据定义为一个包含各种信息量的结构。
输出数据结构:
typedef struct{
int Gp01; ∥1组G代码
……
int Gp15; ∥15组G代码
int N, ∥程序段号
G, ∥准备功能
M, ∥辅助功能
P,Q,L,D,H; ∥其他参数字符
long T; ∥刀具选择
double F; ∥进给速度
double S; ∥主轴速度
double D; ∥刀具半径
double X,Y,Z,A,B,C,I,J,K,R,U,V,W; ∥尺寸字
……
BOOL bLastCmnd; 一行指示标志
}ode
如要对一行代码段进行解释译码,则先声明一个实例:
ode code; /ode为Lib文件所生成的类
然后调用其成员函数,
code.InterCode(char* LineStr)
完成对LineStr中代码段的词法、语法、语义检查和数据分离。在进行解释过程中,如果发现代码段中有语法或语义错误,InterCode 会给出相应的提示,并返回到编辑状态重新编辑。
类似的,如要对结构中的标志位进行初始化,则可通过调用code.FlagINI()实现。同时,还可以通过在外部对code.ENDED变量进行赋值来结束整个芯片的运行。
解释完成后的各种状态和数据信息存放在前面定义的数据结构中。用户只需按照一般结构的读法去取相应的数据,如ode.G; ode.M ,也可以将整个数据结构作为下一个芯片的入口,实现芯片与芯片之间的数据传递。
为了防止在芯片进行译码时,外界对数据结构进行操作而产生错误。本芯片使用了临界区的方法,即在方法InterCode()被调用时,就riticalSection的成员函数Lock进行加锁处理,拒绝外界访问正在更新的数据,以免出现新老数据同时被读入的错误。解释完成后,用Unlock进行解锁处理,使用户能访问更新以后的数据。
3 芯片间的同步和协调
当若干个芯片组成一个实用系统后,芯片之间的同步问题就变得格外重要,尤其是像数控系统这样对实时性要求比较高的系统。在使用软件芯片构建数控系统时,每一个有具体功能的芯片,如译码、插补等,都是一个单独的线程。线程与线程之间的通信,是利用事件对象的方式来实现的。本系统由于是在VC环境下开发的,所以可以利用MFC库中的CEvent类及其成员函数来完成。每一个事件对象可以有两种状态:信号态和非信号态。事件可以监控线程是否被置于信号态,并由此决定在适当的时候运行相应的线程。使用事件对象进行线程通信的另一个原因是事件对象的声明十分容易,就像声明一个全局变量一样简单。如CEvent InterCodedStar
1 数控系统软件芯片的划分
合理的芯片划分,是开发软件芯片的首要步骤。数控系统软件芯片库中的各芯片以界面的方式开放,通过接口参数和界面信息的提示,用户可掌握芯片的启动、结束和运作。不同芯片的内部为黑箱封装,外部接口开放,并在此基础上实现新系统的构建。因此,如何定义出合理的数控系统软件芯片,使芯片的外部接口易于标准化、规范化,内部易于进行黑箱封装,是我们开发数控系统软件芯片库的关键步骤。
目前,尽管数控系统从系统的设计方法到系统的实现方式千差万别,但是其基本原理和软件的组成都是类似的。在对现有的数控系统和用户需求进行仔细而全面分析的基础上,同时,在总结现有系统控制结构的共有特征,并对其进行适当的归类和抽象的基础上,将数控系统划分为以下几个基本的功能模块。
(1)人机交互界面模块 此模块主要完成在系统运行前和运行中系统参数的修改和设定,如设定系统工作模式(自动、手动、点动等),图形显示模式,系统初始化设定,坐标偏置设定,G代码程序的编辑等。
(2)零件代码解释模块 负责根据用户的系统配置,以及零件程序的语法规则对用户编写的零件程序进行语法检查,并进行解释译码,将源代码指令中给出的各种信息进行分离提取,变成各种状态和数据,为预处理芯片提供语法上正确的零件程序的中间代码。
(3)刀补预处理模块 负责对解释后的数据进行预处理及插补前的准备工作。
(4)轨迹插补模块 负责加减速的控制、插补、终点判别等工作,向位置控制器输出通过轨迹运算后的进给量。
(5)轴伺服控制模块 在从I/O及插补运算得到的信息的帮助下,通过精插补控制机床执行机构按NC指令指定的路径和速度运动。
(6)I/O模块 负责控制器的输入和输出(包括机床检测信号及位置和相关反馈信息的输入、控制指令的输出等)。
以上这几个模块间具有互操作性、可移植性和可扩展性,因而可作为数控软件芯片库的基本芯片的划分。
2 数控系统软件芯片的构建及工作原理
软件芯片概念的提出是软件重用发展过程中的里程碑。开发软件芯片就是采用面向对象技术把特定类中的一些通用模块做成独立的可重用的对象类。由于面向对象具有封装、分类、消息响应和继承等很有价值的特点,使得软件芯片和系统其它部分的耦合度得到尽可能的降低,这为软件芯片的开发和使用提供了可靠保证。同时,由于芯片都是对较成熟的技术进行封装而实现的,在实践上是经过了验证的,也就是说一个成熟的芯片已经将错误率降到了 点,所以可以利用数控软件芯片来构造新的数控系统能 地保证系统的可*性。 软件芯片的构建就是将功能模块的本体部分进行黑箱封装,使之输入接口和输出接口尽量简单、规范。由于C++语言的面向对象特性和封装性较好,所以在本系统中将VC作为编程环境来进行芯片本体的构建。整个芯片是基于静态库创建的, 生成一个Lib库文件。所有功能的实现都封装在Lib库文件中。用户使用时,不需要知道芯片内部的功能(如初始化、错误信息处理、数据分离)是怎样实现的,只需将对应的.Lib文件和.H文件加入到自己的系统中,然后依照芯片说明提出的接口要求,通过接口参数调用相应的方法即可。接口参数和方法在Lib文件中定义为,用户可以在外界通过它们和芯片进行交互。就如同用户通过硬件IC的引脚来使用芯片内部的功能一样。
下面就以零件程序解释芯片为例,简述数控系统软件芯片的构建过程。
首先,对芯片的本体功能进行分析,定义出合适的接口。一般来说,一个完整的零件数控加工程序,由若干程序段组成,一个程序段又由若干个代码字组成, 以“;”结束。每个代码字由文字符和数字符组成,代码字之间用空格符隔开。
根据自上向下的原则,该部分又可划分为以下几个部分:
(1)词法检查 对源程序的数据进行拼写及位数检查;
(2)语法检查 对程序段中的G代码和其它功能码的格式进行检查,如G代码的相容性检查等;
(3)语义检查 对上下文相关的错误进行检查,如I、J、K和R不能出现在同一行代码中等;
(4)译码 将程序段的信息进行提取,变成相应的状态量和数据量,存储在输出缓冲区中。
在综合考虑数控系统解释器的内部逻辑关系和数控系统的运动控制的基础上,将解释芯片的输入口数据定义为以字符串形式输入的一行数控代码段(char* LineStr);输出口数据定义为一个包含各种信息量的结构。
输出数据结构:
typedef struct{
int Gp01; ∥1组G代码
……
int Gp15; ∥15组G代码
int N, ∥程序段号
G, ∥准备功能
M, ∥辅助功能
P,Q,L,D,H; ∥其他参数字符
long T; ∥刀具选择
double F; ∥进给速度
double S; ∥主轴速度
double D; ∥刀具半径
double X,Y,Z,A,B,C,I,J,K,R,U,V,W; ∥尺寸字
……
BOOL bLastCmnd; 一行指示标志
}ode
如要对一行代码段进行解释译码,则先声明一个实例:
ode code; /ode为Lib文件所生成的类
然后调用其成员函数,
code.InterCode(char* LineStr)
完成对LineStr中代码段的词法、语法、语义检查和数据分离。在进行解释过程中,如果发现代码段中有语法或语义错误,InterCode 会给出相应的提示,并返回到编辑状态重新编辑。
类似的,如要对结构中的标志位进行初始化,则可通过调用code.FlagINI()实现。同时,还可以通过在外部对code.ENDED变量进行赋值来结束整个芯片的运行。
解释完成后的各种状态和数据信息存放在前面定义的数据结构中。用户只需按照一般结构的读法去取相应的数据,如ode.G; ode.M ,也可以将整个数据结构作为下一个芯片的入口,实现芯片与芯片之间的数据传递。
为了防止在芯片进行译码时,外界对数据结构进行操作而产生错误。本芯片使用了临界区的方法,即在方法InterCode()被调用时,就riticalSection的成员函数Lock进行加锁处理,拒绝外界访问正在更新的数据,以免出现新老数据同时被读入的错误。解释完成后,用Unlock进行解锁处理,使用户能访问更新以后的数据。
3 芯片间的同步和协调
当若干个芯片组成一个实用系统后,芯片之间的同步问题就变得格外重要,尤其是像数控系统这样对实时性要求比较高的系统。在使用软件芯片构建数控系统时,每一个有具体功能的芯片,如译码、插补等,都是一个单独的线程。线程与线程之间的通信,是利用事件对象的方式来实现的。本系统由于是在VC环境下开发的,所以可以利用MFC库中的CEvent类及其成员函数来完成。每一个事件对象可以有两种状态:信号态和非信号态。事件可以监控线程是否被置于信号态,并由此决定在适当的时候运行相应的线程。使用事件对象进行线程通信的另一个原因是事件对象的声明十分容易,就像声明一个全局变量一样简单。如CEvent InterCodedStar
上一篇:数控技术常用术语
下一篇:切削液使用中的问题及其对策
转载请注明:转载自塑胶五金网技术频道 http://www.sjwj.com/Liter/
本文链接:http://www.sjwj.com/Liter/LiterDetail_1698.html
版权声明:1.塑胶五金网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,您同意将自行加以判断并承担所有风险。 2.如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系电话:15014822798
投稿声明:可将稿件直接发至邮箱:234145668@qq.com(主题注明“投稿”),也可直接联系
本文链接:http://www.sjwj.com/Liter/LiterDetail_1698.html
版权声明:1.塑胶五金网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,您同意将自行加以判断并承担所有风险。 2.如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系电话:15014822798
投稿声明:可将稿件直接发至邮箱:234145668@qq.com(主题注明“投稿”),也可直接联系
技术分类




粤公网安备 44190002001993号