第一篇:linux设备驱动程序开发总结
不管我们学习什么编程语言,和我们见面的第一个程序就是“hello world!” 相信各位道上的朋友都遇到过这种个程序!
学习驱动程序也不例外,我学的第一个驱动程序就是“hello world!” 具体的程序代码如下:
#include
#include
MODULE_LICENSE(“Dual BSD/GPL”);
static int hello_init(void)
{
printk(KERN_ALERT“Hello, world!n”);
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT“byby FriendyARM mini2440!n”);
}
module_init(hello_init);
module_exit(hello_exit);
将其复制到工作目录下,并编写一个简单的Makefile文件:
由于每个人使用的Linux系统不一样且每个人内核源代码所存放的位置也不是一样的。所以编写Makefile文件的时候,参考别人的进行修改是一个很不错的的学习Makefile文件的方法。当然你能把Linux内核的Makefile文件了解一下,对你了解Linux内核有很大的帮助的。
学习心得:
1、驱动模块运行在内核空间,运行是不能依赖任何函数库和模块连接,所以在写驱动程序的时候
所调用的函数只能是作为内核一部分的函数。
2、驱动模块和应用程序的一个重要不同是:应用程序退出时可不管资源释放或者其他的清除
工作,但模块的退出啊哈念书必须仔细撤销初始化函数所做的一切,否则,在系统想重新引导之前某些
东西就会残留在系统中。
3、处理器的多种工作模式其实就是为了操作系统的用户空间和内核空间设计的,在Unix类的操作系统
中只是用到了两个级别:最高级别和最低级别。
4、要十分注意驱动程序的并发处理。在Linux驱动程序中必须解决的一个问题就是多个进程对共享资源的并发访问.Linux对解决并发访问可能导致的竟态问题提供了几种机制:中断屏蔽、原子操作、自旋锁、信号量等机制。
5、内核API中具有下划线(__)的函数,通常是接口的底层组件,应该慎用。
6、内核代码不能实现浮点运算。内核中没有提供一套进行浮点运算的完整的环境。
7、Makefile文件的分析:
obj-m := hello.o 代表了我们要构建的模块名为hello.ko,make会子啊该目录下自动找到hello.c文件进行编译。如果hello.o文件是有其他的源文件生成(比如file.1和file1.c)的,则在下面加上:
hello-objs := file.o file1.o......(其中用红色标志的是对应关系)$(MAKE)-C $(KERNELDIR)M=$(PWD)modules
其中-C $(KERNELDIR)指定了内核源代码的位置,其中保存有内核的顶层makefile文件。
M=$(PWD)指定了模块源代码的位置
modules 目标指向obj-m变量中设定的模块
8、insmod使用公共内核符号表来解析模块中未定义的符号,公共内核符号表中包含了的、所有的全局内核项(即函数和变量的地址),这是实现模块化驱动程序所必须的。
9、Linux使用模块层叠技术,我们可以将模块划分为多个层次,通过简化每个层可以缩短开发周期。如果一个模块需要向其他模块导出符号,则使用下面宏:
EXPORT_SYMBOL(name);
EXPORT_SYMBOL_GPL(name);
符号必须子啊模块文件的全局变量部分导出,因为这两个宏将被扩展为一个特殊变量的声明,而该变量必须是全局的。
10、所有的模块代码都必须包含下面两个头文件:
#include
#include
11、所有模块代码都应指定所使用的许可证:
MODULE_LICENSE(“Dual BSD/GPL”);
12、初始化和关闭
初始化的实际定义通常是:
staticint _ _init initialization_function(void)
{
/*初始化代码*/
}
module_init(initialization_function)
清除函数的实际定义是:
static int _ _exit cleanup_function(void)
{
/*清除代码*/
}
module_exit(cleanup_function)
13、还有一些是可选的其他的描述型的定义:
MODULE_AUTHOR(“");
MODULE_DESCRIPTION(”“);
MODULE_VERSION(”“);
MODULE_ALIAS(”“);
MODULE_DEVICE_TABLE(”");
这些模块的声明习惯性的放在模块程序的最后面。
14、Linux内核模块的初始化出错处理一般使用“goto”语句,通常情况下很少使用“goto”,但是出错处理是(可能是唯一的情况),它却非常的有用。
在大一学习C语言的时候,老师就建议不要使用“goto”语句,并说很少会用到,在这里遇到第一个建议使用“goto”语句的。在追求效率的代码中使用goto语句一直是最好的错误恢复机制。下面是我截下来的一段关于使用goto语句实现错误处理的程序:
struct something*item1;
struct somethingelse*item2;
int stuff_ok;
void my_cleanup(void)
{
if(item1)
release_thing(item1);
if(item2)
release_thing2(item2);
if(stuff_ok)
unregister_stuff();
return;
}
int __init my_init(void)
{
int err=-ENOMEM;
item1= allocate_thing(arguments);item2= allocate_thing2(arguments2);if(!item2||!item2)
goto fail;
err= register_stuff(item1, item2);if(!err)
stuff_ok= 1;
else
goto fail;
return 0;/* success*/
fail:
my_cleanup();
return err;
}
第二篇:嵌入式Linux系统下I2C设备驱动程序的开发(范文模版)
嵌入式Linux系统下I2C设备驱动程序的开发
【摘 要】 I2C总线是一种很通用的总线,具有简单、高效等特点,广泛应用在各种消费类电子产品及音视频设备上,在嵌入式系统的开发中也经常用到。本文分析了嵌入式 linux系统中I2C驱动程序的结构,并结合一个具体的I2C时钟芯片DS1307,说明在嵌入式linux系统下开发I2C设备驱动程序的一般流程。【关键字】I2C总线 嵌入式linux 驱动开发
1、I2C总线简介 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点就是简单性和有效性。
1.1 I2C总线工作原理
I2C总线是由数据线SDA和时钟SCL构成的串行总线,各种被控制器件均并联在这条总线上,每个器件都有一个唯一的地址识别,可以作为总线上的一个发送器件或接收器件(具体由器件的功能决定)[1]。I2C总线的接口电路结构如图1所示。
图1 I2C总线接口电路[1] 1.2 I2C总线的几种信号状态[1]
1.空闲状态:SDA和SCL都为高电平。2.开始条件(S):SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。3.结束条件(P):SCL为低电平时,SDA 由低电平向高电平跳变,结束传送数据。
4.数据有效:在SCL的高电平期间,SDA保持稳定,数据有效。SDA的改变只能发生在SCL的底电平期间。
5.ACK信号: 数据传输的过程中,接收器件每接收一个字节数据要产生一个ACK信号,向发送器件发出特定的低电平脉冲,表示已经收到数据。1.3 I2C总线基本操作
I2C总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL),同时控制总线的传输方向,并产生开始和停止条件。
数据传输中,首先主器件产生开始条件,随后是器件的控制字节(前七位是从器件的地址,最后一位为读写位)。接下来是读写操作的数据,以及 ACK响应信号。数据传输结束时,主器件产生停止条件[1]。具体的过程如图2所示。
图2 完整的I2C数据传输过程[1] 2.Linux下I2C驱动程序的分析 2.1 Linux系统I2C驱动的层次结构
Linux系统对I2C设备具有很好的支持,Linux系统下的I2C驱动程序从逻辑上可以分为3个部分:
1.I2C总线的驱动 I2C core :实现对I2C总线、I2C adapter及I2C driver的管理。2.I2C控制器的驱动 I2C adapter :针对不同类型的I2C控制器,实现对I2C总线访问的具体方法。
3.I2C设备的驱动 I2C driver :针对特定的I2C设备,实现具体的功能,包括read, write以及ioctl等对用户层操作的接口。这三个部分的层次关系如图3和图4所示。
2.2 I2C 总线驱动 I2C core
I2C core是Linux内核用来维护和管理的I2C的核心部分,其中维护了两个静态的List,分别记录系统中的I2C driver结构和I2C adapter结构。I2C core提供接口函数,允许一个I2C adatper,I2C driver和I2C client初始化时在I2C core中进行注册,以及退出时进行注销。同时还提供了I2C总线读写访问的一般接口(具体的实现在与I2C控制器相关的I2C adapter中实现),主要应用在I2C设备驱动中。
2.3 I2C控制器的驱动 I2C adapter
I2C adapter是针对不同类型I2C控制器硬件,实现比较底层的对I2C总线访问的具体方法。I2C adapter 构造一个对I2C core层接口的数据结构,并通过接口函数向I2C core注册一个控制器。I2C adapter主要实现对I2C总线访问的算法,iic_xfer()函数就是I2C adapter底层对I2C总线读写方法的实现。同时I2C adpter 中还实现了对I2C控制器中断的处理函数。
2.4 I2C设备的驱动 I2C driver
I2C driver中提供了一个通用的I2C设备的驱动程序,实现了字符类型设备的访问接口,对设备的具体访问是通过I2C adapter来实现的。I2C driver构造一个对I2C core层接口的数据结构,通过接口函数向 I2C Core注册一个I2C设备驱动。同时I2C driver 构造一个对用户层接口的数据结构,并通过接口函数向内核注册为一个主设备号为89的字符类型设备。
I2C driver实现用户层对I2C设备的访问,包括open,read,write,ioctl,release等常规文件操作,我们可以通过open函数 打开 I2C的设备文件,通过ioctl函数设定要访问从设备的地址,然后就可以通过 read和write函数完成对I2C设备的读写操作。
通过I2C driver提供的通用方法可以访问任何一个I2C的设备,但是其中实现的read,write及ioctl等功能完全是基于一般设备的实现,所有的操作 数据都是基于字节流,没有明确的格式和意义。为了更方便和有效地使用I2C设备,我们可以为一个具体的I2C设备开发特定的I2C设备驱动程序,在驱动中 完成对特定的数据格式的解释以及实现一些专用的功能。3.一个具体的I2C设备驱动程序的开发
DS1307是一款小巧的I2C接口的实时时钟芯片,具有低功耗,全BCD码时钟和日历输出,12 /24小时工作模式,时分秒、星期、年月日计时数据,润年自动补偿,有效期至2100年,外加56 Bytes的NV RAM(非易失性的RAM)等特点[3]。下面以DS1307为例,说明一个具体的I2C设备驱动程序的设计要点。3.1 I2C设备驱动程序的一般结构
一个具体的I2C设备驱动需要实现两个方面的接口,一个是对I2C core层的接口,用以挂接I2C adapter层来实现对I2C总线及I2C设备具体的访问方法,包括要实现attach_adapter,detach_client,command 等接口函数。另一个是对用户应用层的接口,提供用户程序访问I2C设备的接口,包括实现open,release,read,write以及最重要的 ioctl等标准文件操作的接口函数。对I2C core层的接口函数的具体功能解释如下: attach_adapter:I2C driver在调用I2C_add_driver()注册时,对发现的每一个I2C adapter(对应一条I2C 总线)都要调用该函数,检查该I2C adapter是否符合I2C driver的特定条件,如果符合条件则连接此I2C adapter,并通过I2C adapter来实现对I2C总线及I2C设备的访问。
detach_client:I2C driver在删除一个I2C device时调用该函数,清除描述这个I2C device的数据结构,这样以后就不能访问该设备了。
command:针对设备的特点,实现一系列的子功能,是用户接口中的ioctl功能的底层实现。
3.2 DS1307驱动程序实现对I2C core层的接口
在驱动中必须实现一个struct i2c_driver 的数据结构,并在驱动模块初始化时向I2C core注册一个I2C驱动,并完成对I2C adapter的相关操作。struct i2c_driver ds1307_driver = { name: “DS1307”, id: I2C_DRIVERID_DS1307, flags: I2C_DF_NOTIFY, attach_adapter:ds1307_probe, detach_client:ds1307_detach, command: ds1307_command };数据结构ds1307_driver中的name:“DS1307”,Id:I2C_DRIVERID_DS1307用来标识DS1307驱动程序。flags: I2C_DF_NOTIFY表示在I2C总线发生变化时通知该驱动。
ds1307_probe对应i2c_driver数据结构中的attach_adapter,主要功能:调用 I2C core 层提供的i2c_probe函数查找一条I2C总线,看是否有DS1307的设备存在,如果存在DS1307,则将对应的I2C adapter 和DS1307设备挂接在一起,并通过该I2C adapter来实现对DS1307的访问。同时使能DS1307, 并调用i2c_attach_client()向I2C core层注册DS1307。
ds1307_detach对应i2c_driver数据结构中的detach_client,主要功能:调用i2c_detach_client()向I2C core层注销DS1307,并不使能DS1307,这样I2C驱动就不能访问DS1307了。
ds1307_command对应i2c_driver 数据结构中的command,主要功能:针对DS1307时钟芯片的特点,实现一系列的诸如DS1307_GETTIME,DS1307_SETTIME,DS1307_GETDATETIME,DS1307_MEM_READ,DS1307_MEM_WRITE等子功能,是用户接口中的ioctl功能的底层实现。
以上3个接口函数使DS1307的驱动程序实现了对I2C 总线及I2C adpater的挂接,因此就可以通过I2C core的提供对I2C总线读写访问的通用接口,来开发实现DS1037驱动程序对用户应用层的接口函数。3.3 DS1307驱动程序实现对用户应用层的接口
在驱动中必须实现一个struct file_operations 的数据结构,并向内核注册为一个字符类型的设备(用单独的主设备号来标识),或者注册为一个miscdevice设备(所有miscdevice设备共同 一个主设备号,不同的次设备号,所有的miscdevice设备形成一个链表,对设备访问时根据次设备号查找对应的miscdevice设备,然后调用其 struct file_operations中注册的应用层接口进行操作)。
struct file_operations rtc_fops = { owner: THIS_MODULE, ioctl: ds1307_rtc_ioctl, read: ds1307_rtc_read, write: ds1307_rtc_read, open: ds1307_rtc_open, release: ds1307_rtc_release };数据结构rtc_fops 中的ds1307_rtc_open 和ds1307_rtc_release对应file_operations中的open和release,分别用来打开和关闭DS1307。ds1307_rtc_ioctl对应file_operations中的ioctl,对用户提供的一系列控制时钟芯片的具体命 令:RTC_GET_TIME: 以固定的数据格式读取实时时钟的时间。RTC_SET_TIME:以固定的数据格式设定实时时钟的时间。RTC_SYNC_TIME:系统时钟和实时时钟 之间的时间同步。
ds1307_rtc_read 对应对应file_operations中的read,实现与ds1307_rtc_ioctl 的子功能RTC_GET_TIME相同的功能,以及从NV RAM读取数据。
ds1307_rtc_write 对应file_operations中的write,实现与ds1307_rtc_ioctl的子功能 RTC_SET_TIME相同的功能,以及将数据写入NV RAM。3.4 DS1307驱动程序的加载和测试
在DS1307驱动模块的初始化函数ds1307_init()中,首先通过i2c_add_driver(&ds1307_driver)向I2C core层注册一个I2C的设备驱动,然后再通过misc_register(&ds1307_rtc_miscdev)将DS1307注册为一个miscdevice设备,这样用户程序就可以通过主设备号10 次设备号 135的设备节点/dev/rtc来访问DS1307了。
将DS1307的驱动程序编译成模块的方式,通过insmod命令加载进内核,然后用测试代码进行测试,DS1307驱动程序中实现的所有功能都达到了预期的效果。由于DS1307驱动程序在底层实现了对DS1307时钟芯片数据的解释和转换,所以在用户程序中得到的就是有固定格式和意义的数据,这样就方便了用户程序的访问,提高了应用开发的效率。4.总结
I2C总线是一种结构小巧,协议简单的总线,应用很广泛,访问起来简单方便。linux系统下I2C的驱动程序具有清晰的层次结构,可以很容易地为一个特 定的I2C设备开发驱动。本文通过对linux系统下I2C驱动,以及一个具体的DS1307时钟芯片驱动结构的分析,基本上可以很清楚看出一个I2C设 备驱动的开发过程。实现的关键分为两个部分,1.对I2C core的接口,必须实现 struct i2c_drvier 数据结构中的几个特定的功能函数。这些函数是I2C驱动与I2C总线物理层(I2C控制器)和I2C设备器件之间通信的基础。2.对用户应用层的接口,必须实现struct file_operation数据结构中的一些特定功能的函数,如 open,release , read ,write,lseek等函数。以上两类接口中,对I2C core的接口是对I2C设备访问的基础,实现对I2C总线具体的访问方法;对用户应用层的接口则是方便应用程序开发,实现设备特定功能的必不可少的部 分。参考文献:
[1] Philips Corporation,I2C bus specification version 2.1,2000 [2] Linux kernel,version 2.4.30 [3] Maxim Integrated Products , inc.USA.DS1307 Datasheet , 2004 [4] Aless and Robin著,魏永明等译,《LINUX设备驱动程序(第二版)》,北京,中国电力出版社,2004年
第三篇:设备开发合同
项目名称:_____IC__自动分选机开发_________________________ 委 托 方(甲方): __沈_伟_________________ 研究开发方(乙方):_凯圣源自动化___________________________
填 写 说 明
一、“合同登记编号”的填写方法:
合同登记编号为十四位,左起第一、二位为公历年代号,第三、四位为省、自治区、直辖市编码,第五、六位为地、市编码,第七、八位为合同登记点编号,第九至十四位为合同登记序号,以上编号不足位的补零。各地区编码按GB2260-84规定填写。
二、技术开发合同是指当事人之间就新技术、新工艺和新工艺的新材料及其系统的研究开发所订立的合同。技术开发合同包括委托开发合同的合作开发合同。
三、计划内项目应填写国务院部委、省、自治区、直辖市、计划单列市、地、市(县)级计划,不属于上述计划的项目此栏划(/)表示。
四、标的技术的内容、形式:
包括开发项目应达到的技术经济指标、开发目的、使用范围及效益情况、成果提方式及数量。
提交开发成果可采取下列形式:
1.产品设计、工艺规程、材料配方和其他图纸、论文、报告等技术文件;
2.磁盘、磁带、计算机软件;
3.动物或植物新品种、微生物菌种;
4.样品、样机;
5.成套技术设备。
五、研究开发计划:
包括当事人各方实施开发项目的阶段进度,各个阶段要解决的技术问题,达到的目标和完成的期限等。
六、技术情报资料的保密:
包括当事人各方情报和资料保密义务的内容、期限和泄漏技术秘密应承担的责任。
双方可以约定,不论本合同是否变更、解除、终止,本条款均有效。
七、其他:
合同如果是通过中介机构介绍签订的,应将中介合同作为本合同的附件。如果双方当事人约定定金、财产抵押及担保的,应将给付定金、财产抵押及担保手续的复印件作为本合同的附件。
八、委托代理人签订本合同书时,应出具委托证书。
九、本合同书中,凡是当事人约定认为无需填写的条款,在该条款填写的空白处划(/)表示。
(正文)
依据《中华人民共和国合同法》的规定,合同双方就______ IC自动分选机开发__________ 项目的技术开发,________经协商一致,签订本合同。
一、标的技术的内容、形式和要求:
1.机构部分:乙方完成机构图纸的绘制,机构部分的加工组装。
2.控制部分:乙方完成电控图纸的绘制,电控部分的调试及工控部分的调试。
二、应达到的技术指标和参数: 这一块你来写
三、研究开发计划:
四、研究开发经费、报酬及其支付或结算方式:
(一)研究开发经费是指完成本项研究开发工作所需的成本;报酬是指本项目开发成果的使用费和研究开发人员的科研补贴。
本项目研究开发经费及报酬预估:____4万____________ 元
其中:甲方提供___2万_元,乙方提供__2万__元。
如开发成本实报实销,双方约定如下:
(二)经费和报酬支付方式及时限(采用以下___3_种方式):
①一次总付:____________元,时间:________________
②分期支付:____________元,时间:________________
____________元,时间:________________
③按利润________%提成,期限:________________
④按销售额____ %提成,期限:________________
⑤其他方式:
五、利用研究开发经费购置的设备、器材、资料的财产权属:
六、履行的期限、地点和方式:
本合同自____年____月____日至____年____月____日在____________(地点)履行。
本合同的履行方式:
七、技术情报和资料的保密:
八、技术协作和技术指导的内容:
九、风险责任的承担:
在履行本合同的过程中,确因在现有水平和条件下难以克服的技术困难,导致研究开发部分或全部失败所造成的损失,风险责任由________承担。(1、乙方;
2、双方;
3、双方另行商定)经约定,风险责任甲方承担____ %________________乙方承担____ %
本项目风险责任确认的方式为:
十、技术成果的归属和分享:
(一)专利申请权:
(二)非专利技术成果的使用权、转让权:
十一、验收的标准和方式:
研究开发所完成的成果,达到了本合同第二条所列技术指标,按____标准,采用________方式验收,由________方出具技术项目验收证明。
十二、违约金或者损失赔偿额的计算方法:
违反本合同约定,违约方应当按《中华人民共和国合同法》规定承担违约责任。
(一)违反本合同第____条约定,________方应当承担违约责任,承担方式和违约金额如下:
(二)违反本合同第____条约定,________方应当承担违约责任,承担方式和违约金额如下:
(三)十三、争议的解决方法:
在本合同履行过程发生争议,双方应当协商解决,也可以请求________进行调解。
双方不愿协商、调解解决或者协商、调解不成的,双方商定,采用以下第(____)种方式解决。
1.提交____ 仲裁委员会仲裁;
2.向____ 人民法院起诉。
十四、名词和术语的解释:
十五、本合同有效期限:____年____月____日至____年____月____日
甲方:____________________
乙方:____________________
代表人:________
____年____月____日
代表人:________
_____年____月____日
第四篇:设备开发流程
设备开发流程
一、确定开发项目
1,产品品质要求 2,设备生产效率要求 3,设备工作环境 4,开发成本
二、分析产品
1,了解产品生产工艺
2,了解产品各方面尺寸要求及来料情况 3,设备使用地点的技术参数
三、拟定方案
讨论、分析作出设备方案,方案包括:
1,设备示意图(整体示意图,局部示意图)2,各部分机构简介 3,动作说明
4,设备技术参数
四、方案审核
对方案进行审核,审核内容包括: 1,设备可行性评估 2,设备成本评估
3,设备生产效率的评估 4,各部分结构可行性评估
五、方案整改
对方案审核中讨论出的问题进行整改。
六、设计开发
进行机构设计,作出机器装配图、零件图(零件标注按国家标准)选出执行元器件、电控配件并列出加工零件清单和标准件请购单,动作说明书。
七、机构审核
对所设计出的图纸进行审核,审核内容包括: 1,机器结构配合是否合理:功能性(能力和精度)、稳定性、安全性、人性化(操作的便利性)和外观性。
2,所设计机器生产效率是否符合客户需求。3,机器造价。
4,各部分机构应简单易于调试、维修。5,各部分零件应尽量简单易于加工。6,各执行元件选用是否合理。
八、零件加工及标准件采购
1,零件加工部零件图进行机器零件加工(零件加工必须严格按照零件图上所示,零件精度,加工工艺进行加工,保证零件精度及零件加工工艺)。2,采购人员按照标准件清单,联系供应商进行标准件采购
九、加工零件及标准件检验入库
检验人员按照零件图及标准件清单,检验加工零件的尺寸精度,加工工艺,标准件的型号、安装尺寸进行检验,合格后入库
十、机器组装
1,进行机器组装调试,按照加工零件清单及标准件清单,到仓库领取加工零件及标准件。
2,严格按照装配图,进行机器组装: a)各部分零件,执行元件组装是否正确 b)各活动部件活动顺畅,无干涉
c)所有的紧固件和接头联结,确保紧固到位,联结可靠 3,按照动作说明书进行机器配电,机器程序编写及调试
十一、机器调试
进行机器调试,调试完成后打样,交客户确定其产品品质。
十二、包装
1,检查所有的紧固件和接头联结,确保紧固到位,联结可靠 2,清洁设备外表,粘贴必要的标牌和标示
3,标明拆分位置,理顺拆分管线路,合理拆分设备 4,必要的防护(防锈、防潮)措施。
5,准备好机器备件,操作说明书,接线图及其他技术资料
第五篇:设备开发流程
设备开发流程
一、确定开发项目、了解客户需求 1.产品品质要求 2.设备生产效率要求 3.设备工作环境
二、分析产品
1.了解产品生产工艺
2.了解产品各方面尺寸要求及来料情况 3.与客户沟通产品生产过程中的注意事项 4.设备使用地点的技术参数
三、拟定方案 工程人员讨论、分析作出设备方案,方案包括: 1.设备示意图(整体示意图,局部示意图)2.各部分机构简介 3.动作说明 4.设备技术参数
四、方案审核 由工程人员组成审核组,对方案进行审核,审核内容包括: 1.设备可行性评估 2.设备成本评估
3.设备生产效率的评估 4.各部分结构可行性评估
五、方案整改 对方案审核中讨论出的问题进行整改。
六、客户确定设计方案 设计方案交由客户,客户根据需求,对方案进行最后确定。
七、设计开发由工程部安排工程师进行机构设计,作出机器装配图、零件图(零件标注按国家标准)选出执行元器件、电控配件并列出加工零件清单和
八、机构审核 由工程人员组成审核组,对所设计出的图纸进行审核,审核内容包括:
(1)机器结构配合是否合理:功能性(能力和精度)、稳定性、安全性、人性化(操作的便利性)和外观性。
(2)所设计机器生产效率是否符合客户需求。(3)机器造价。
(4)各部分机构应简单易于调试、维修。(5)各部分零件应尽量简单易于加工。(6)各执行元件选用是否合理。
九、零件加工及标准件采购
1.零件加工部零件图进行机器零件加工(零件加工必须严格按照零件图上所示,零件精度,加工工艺进行加工,保证零件精度及零件加工
2.采购人员按照标准件清单,联系供应商进行标准件采购
十、加工零件及标准件检验入库 检人员按照零件图及标准件清单,检验加工零件的尺寸精度,加工工艺,标准件的型号、安装尺寸进行检验,合格后交由仓管人员入库。
十一、机器组装
1.由装配部安排人员进行机器组装调试,装配人员按照加工零件清单及标准件清单,到仓库领取加工零件及标准件。
2.装配人员严格按照装配图,进行机器组装: a).各部分零件,执行元件组装是否正确 b).各活动部件活动顺畅,无干涉
c).所有的紧固件和接头联结,确保紧固到位,联结可靠
3.工控部安排电气工程师按照动作说明书进行机器配电,机器程序编写及调试
十二、机器调试 装配人员按照客户提供的产品工程图进行机器调试,调试完成后打样,交客户确定其产品品质。
十三、包装出货
1.检查所有的紧固件和接头联结,确保紧固到位,联结可靠 2.清洁设备外表,粘贴必要的标牌和标示
3.标明拆分位置,理顺拆分管线路,合理拆分设备 4.必要的防护(防锈、防潮)措施。
5.准备好机器备件,操作说明书,接线图及其他技术资料方案审核时就应列出关键外购件清单。比如QFD(质量功能展开)等等。
关于项目管理,一些外资公司有非常完善的流程规定和管理工具。应该对方案做出风险评估,及做好相应的对策。以防出现问题。加工零件清单和标准件请购单,动作说明书。外协加工,保证零件精度及零件加工工艺)。,合格后交由仓管人员入库