生产调度工作总结
新的一年即将在我们面前展开画卷,回首这一年,公司扩容生产,从人员管理、工艺技术改进、以及产能的提升等方面都有长足的进步,在生产工作中,使自己受益匪浅,所见所闻都让自己工作的各个方面有所进步。在生产部大家分工明确,担当起相应的责任,每一部分相辅相成,起到相互协调,并相互促进的作用,每个人都能够根据自己的不同情况在自己的责任范畴内积极发挥导向作用。作为一名生产调度员,怎样正确合理的组织做好生产工作是必须面对并为之不懈努力的课题,在熟悉生产操作规程的同时要有良好的协调意识,实事求是的管理态度,日益完善的指挥控制技能,是从事生产工作要不断追求的方向和目标。
1、生产工作方面:
协助领导进行生产管理安排工作,在领导的精心指导下使我学到更多的管理经验,积累了更多的社会经验和知识,配合各部门完成相关工作任务。在今后的工作中应加强学习,提高工作创新意识,及时提出合理化建议和解决办法供领导参考。
2、司机班管理:
在近一年的车辆协调管理工作中,完成生产部运输工作的同时配合公司其他部门进行车辆协调使用工作,做好相关记录和司机安全培训及车辆维保,在工作中也暴露出许多不足之处,不断进行经验教训的总结,加强交通安全管理,提高司机主动性安全意识,确保行车安全。
3、安全管理工作:
参加安监部门组织的劳动防护用品管理培训和企业安全员培训,学习积累安全管理工作知识,在公司内部做好安全隐患检查和排除工作,对出现的工伤事故进行分析和管理,结合实际工作情况及时做出整改,意识到安全生产是每个生产企业中最重要的方面之一,安全是效益。我们在这一点上做得还不够,特别是相关安全知识大部分员工了解不多,为此明年加强安全方面宣传工作,同时同人事部一起定期进行一些安全知识的培训。使每一位员工在每时每刻都绷紧安全生产这根弦,在人人心中树立安全意识,做好相关安全生产防护。
4、相关管理知识学习:
学习目标管理知识和理念,结合公司实际情况思考如何更好的做好管理工作,使生产工作有目标有计划的进行,一改以往“救火式”生产方式,使工作能够控制有序的进行和开展,做到目标明确,在来年我们将对车间内产品质量和产能都将进行目标管理模式,在员工中普及目标管理知识,虽然我们起步的工作是片面的或不完善的,我们会在生产活动中不断地积累和完善。
5、团队合作:
各部门的沟通及配合如果缺乏沟通这个桥梁,团队的任何建设都将毫无意义。各部门间应相互依存、相互帮助、互相关怀,大家彼此共同提高,利益和成就共享。良好的合作氛围是高绩效团队的基础,没有合作就谈不上最终最好的团队,同时引导员工改变工作是一种劳役的心理,认识到我们的工作不是一种单调的机械性的完成任务,让员工在工作中充满热情,懂得工作是一件美好的事情。让员工为在生产过程中发现问题、解决问题而自豪。
第二篇:生产调度工作总结
工作日志
题目:基于Flexsim车间混流生产线的仿真建模与研究
(一) 项目介绍
基于Flexsim,对东风二汽发动机厂DCI 11和4H两条生产线进行模拟仿真,找出影响生产效率的因素,得出最佳的解决方案。
(二) 问题来源
公司生产计划编排都是采用人工编译作业,无法找出影响生产效率的关键因素,效率低,任务量大,没有找到一条科学的生产计划编排方法,很多都是一些事后补救工作。
(三) 要达到的目的
运用Flexsim 仿真软件对两条生产线进行模拟,观察是否存在堵塞、闲置等现象,找出影响生产效率的关键瓶颈,提出改进方法。
(四)
解决的具体步骤
① 确定工艺流程
1) 工艺流程:4H发动机:4H Testing 4H Painting 4H Eviromental Ware Inventary
DCi发动机:DCi Painting Subline 1/4 DCi Assembly line DCi Testing Subline DCi Enviromental Ware Inventary
2) 流程路线:4H发动机:4H Testing Testing Subline 4H Painting Buffer 4H Painting 4H Eviromental Buffer 4H Eviromental Subline Inventary(用 表示)
DCi发动机:DCi Painting Subline 1/4 DCi Assembly line DCi Testing Subline DCi Enviromental Subline Inventary(用 表示)
② 将车间布局的CAD图导入到Flexsim中,设定比例后,导入进去的CAD图形尺寸大小在Flexsim中一方格代表1米,通过CAD图形的导入,每台机器的位置,即可确定。
③ 添加实体,确定各个子车间的加工流程和各辆小车的运输路径。(20##-6-28~20##-7-4)
几点说明:
? 对于DCI11预装和拆预装的工艺流程还没确定,4H没有预装和拆预装)
? DCI 11预装与拆预装的时间为3.75分钟/台。
? 两种产品(DCI 11 和 4H)有预装上的差异,上下线点没有差异
? 4H 从装配线下线点到待试验区缓冲区的距离为174.2m。
? 传送带的速度设为1m/s。
? 检测器的预置时间为10秒,输送机暂存区的容量为10。
? 叉车只能沿着规定的路线行驶。
? DCI 11 1/4 小车的规格 1372×1330
4H 1/4 小车的规格 1220×930
? 到达检测车间的时间服从均值20,方差为2的正态分布
? 到达检测车间的产品类别(1,2,3)服从均匀分布
? 对于整个物流过程,应加入看板管理
③ 基于生产计划,针对各个子车间,加入投产序列
1)实现方法
应用合成器,加入全局表,即可保证指定的投产序列
2)具体实现方法
? 油漆线和测试线的任务序列
Ø PaintOrder
Ø TestOrder
? 油漆线和测试线的到达序列及其合成器的编译代码
1)Painting:
? Arrival Schedule :
? Combiner
/ Process Time : Return constant time of 0.
/ Combiner : Batch
/ Send To Port :
treenode item = parnode(1);
treenode current = ownerobject(c);
//**Conditional Port*/
//** \nIf some condition is true (equal to 1), send to a given port. Otherwise, send to a different port.*/
//** \nCondition: */
int condition =getlabelnum(item,"PaintLabel")==1;
//** \nPort if Condition is true: */
int port1 =1;
//** \nPort if Condition is false: */
int port2 = 2;
if (condition)
return port1;
return port2;
/ OnEntry :
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
{ //************* PickOption Start *************\\
/**Update Combiner Component List*/
/** \nTable: */
string tablename = /**/"PaintOrder"/**/;
/** \n\nNote:
This option should only be used on Combiners.
Each column in the GlobalTable is the component list for a single itemtype.
The itemtype of the first flowitem to enter is used to find the correct column.
It is assumed that the global table has a row for each input port number 2 and higher.*/
/**\n\n*/
if(port == 1)
{ //The trigger on entry code fires each time a flow item enters the combiner.
//For this reason we check to make sure that the port entered is equal to 1
//because only the container will enter through port 1.
//The component list in a combiner is set up as a table. This allows us to use the cell commands to obtain the node that contains
//the number of items to retrieve from each port. Once you know what node contains the information you can use the setnodenum
//command to set the component list number based on the global table.
treenode thelist = getvarnode(current,"componentlist");
treenode thesum = getvarnode(current,"targetcomponentsum");
setnodenum(thesum,0);
for(int index=1; index<=2; index++)
{
setnodenum(cellrowcolumn(thelist,index,1),gettablenum(tablename,getitemtype(item),index));
inc(thesum,gettablenum(tablename,getitemtype(item),index));
}
}
} //******* PickOption End *******\\
2)Testing
? Arrival Schedule :
? Combiner
/ Process Time : Return constant time of 0.
/ Combiner : Batch
/ Send To Port :
treenode item = parnode(1);
treenode current = ownerobject(c);
//**Conditional Port*/
//** \nIf some condition is true (equal to 1), send to a given port. Otherwise, send to a different port.*/
//** \nCondition: */
int condition =getlabelnum(item,"TestLabel")==1;
//** \nPort if Condition is true: */
int port1 =1;
//** \nPort if Condition is false: */
int port2 = 2;
if (condition)
return port1;
return port2;
/ OnEntry :
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
{ //************* PickOption Start *************\\
/**Update Combiner Component List*/
/** \nTable: */
string tablename = /**/"TestOrder"/**/;
/** \n\nNote:
This option should only be used on Combiners.
Each column in the GlobalTable is the component list for a single itemtype.
The itemtype of the first flowitem to enter is used to find the correct column.
It is assumed that the global table has a row for each input port number 2 and higher.*/
/**\n\n*/
if(port == 1)
{ //The trigger on entry code fires each time a flow item enters the combiner.
//For this reason we check to make sure that the port entered is equal to 1
//because only the container will enter through port 1.
//The component list in a combiner is set up as a table. This allows us to use the cell commands to obtain the node that contains
//the number of items to retrieve from each port. Once you know what node contains the information you can use the setnodenum
//command to set the component list number based on the global table.
treenode thelist = getvarnode(current,"componentlist");
treenode thesum = getvarnode(current,"targetcomponentsum");
setnodenum(thesum,0);
for(int index=1; index<=2; index++)
{
setnodenum(cellrowcolumn(thelist,index,1),gettablenum(tablename,getitemtype(item),index));
inc(thesum,gettablenum(tablename,getitemtype(item),index));
}
}
} //******* PickOption End *******\\