270 likes | 554 Views
ISO 14649 분석 및 프로그래밍 시스템. 한주영 , 김도완 , 장병열 , 조현보 산업공학과 포항공과대학교. 발표순서. Background What is ISO 14649? Issues Suggestions Conclusion. ISO 14649 개발 과정. 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001.
E N D
ISO 14649 분석 및 프로그래밍 시스템 한주영, 김도완, 장병열, 조현보 산업공학과 포항공과대학교
발표순서 • Background • What is ISO 14649? • Issues • Suggestions • Conclusion
ISO 14649 개발 과정 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 ESPRIT 6379(OSACA) ESPRIT 9115(OSACA II) ESPRIT 22168 Europe ESPRIT 8643(OPTIMAL) STEP-NC W/S ISO 14649 Proposal OMAC U.S. Cooperation (ISO 14649) NIST - EMC NIST participation into ISO 14649 OSEC Japan Proposal STEP-NC IMS ISO 6983 ISO ISO 14649(in progress)
ISO14649 CAM-CNC Data interface standards ISO6983 • Huge programs by specifying machine tool motions • Very difficult to handle last-minute changes • Not interchangeable of part programs between different controls due tovendor-specific extensions • Poorly suited for five axis milling and high speed cutting • No feedback of data to the planning department • Compact programs by specifying machining processes • Easy to handle changes due to the OO concept • Use of CAD data without conversion • Use of existing standard ISO10303 • Use of spline data for improved surface quality • Feedback of data to the planning department
ISO 14649 의 구성 • Part 1 – Overview and fundamental principles • Part 2 – Language description in EBNF • Part 3 – Predefined functions • Part 9 – Glossary • Part 10 – (reserved for process independent data) • Parts 11-19 – Process data for manufacturing technologies • Part 11 – Process data for milling • Part 11/1 – Tool sheet for milling Tools • Parts 21-29 – STEP Application Interpreted Models(AIM) • Part 21 – STEP AIM for milling Extensions to other applications in progress EDM, RP, Grinding, …
32 32 64 80 ISO 14649 - NC Program 개요 (Part 1) • Object-oriented 개념을 도입 • Main program file • Technology description • Geometry description Project file PROG = "c:\demo\NcFile.prg" plan = "c:\demo\Examp1.dat" geo = "c:\demo\Examp1.stp" reference reference Main program file Technology description Geometry description … If( var1 > 0 ) var2 = “string”; else flag = TRUE; … exec plan.drilling_hole1; … … drilling_hole1 = spot_drilling_manuf_data( its_id = 'drilling_hole1', its_secplane = plane1 its_feature = hole1, its_tool = drill_12mm, its_technology = techno_drill2, its_machine_functions = mach_fkt_1, retract_plane = plane2); … DATA; … #71 = POLYLINE((#21,#25)); #81 = CONTOUR((#70,#71,#72,#73)); #301 = LENGTH_MEASURE(12.000); … ENDSEC; END-ISO-10303-21;
Project / Main program file • Project file • Explicit reference for all the files during the complete manufacturing task • The file indicated by keyword “PROG” contains the main program. • Example • 아래의 Project file이 있는 경우 NC Program의 어디에서도 plan.XXX를 통해 Examp1.dat에 있는 Process data를 참조할 수 있음 • 예) Plan.hole1, plan.pocket1 • Main program file • Process data와 Geometry data를 참조하여 CNC가 실제 수행해야 할 내용을 포함 • “exec”의 keyword를 통해 workingstep을 실행 • Workingstep의 sequencing이 이루어짐 PROG = "c:\demo\NcFile.prg" plan = "c:\demo\Examp1.dat" geo = "c:\demo\Examp1.stp“ // Examp1.dat Hole1 = round_hole( ... ); Pocket1 = Open_pocket( ... );
Technology & Geometry descriptions • Technology description contains • A detailed and complete definition of all workingsteps. • Tool data. (e.g. tool dimension, tool type, etc. ) • Other process data. (e.g. Spindle, feedrate, etc. ) • Geometry descriptions • Is STEP part21 data file generated by CAD/CAM systems. • Is Referenced by Main program, Technology description part. • Contains Geometry entries of finished part. Workingstep • Feature-based NC Program의 작성을 가능하게 해주는 개념 • 각 Manufacturing feature에 해당하는 Workingstep이 정의됨 • NC Program에서 실제 작업 수행이 이루이지는 Data structure • Geometry description part를 참조
NC Program Language 개요 (Part 2) • NC Program Language • Very similar to the high level programming language “C” • Predefined functions available ( Part 3 ) • Used to program “Main program”, “Technology description part” • Geometry description part는 기존의 STEP 파일 형식을 차용 • Comparison with ISO 6983 (“G-code”) • High level programming language style • “C”-like function concept • More flexible control structures • Exception handling mechanism • Parallel processing Program( int argc, char argv[] ) { VAR{ int var1, var2, I; real result1, result2; …. } for ( I=0; I<argc; I++ ) { … } result1 = calcul1( var1, var2 ); result2 = calcul2( var1, &result1 ); … } Main Program example
NC Program - Code examples • Predefined functions • Exception handling • Parallel processing U : utility functions : additional information, attributes Feedrate(mm/min), FeedOnCont, Download C : command functions : direct executable functions ProgramStop, Rapid, SpindleOnCW, CoolantON, ChipRemoval Try{ …. calcul1(…); }catch(ThrowID){ Switch(ThrowID){ case ThrowMemExc: ….; Abort; …. } } • TaskSpawn(task identifier, priority, function identifier) • TaskSpawn(task1, 50, FreeformFeatures); • TaskSpawn(task2, 50, 25DFeatures); 이때 priority가 같으면 round robin 방식에 의해 처리됨
NC Program language – Data types • Data types • Simple data types : int, char, … • Structured data types : array, struct, enum • Extended data types : process data types ( Defined in Part 11~19 ) • Milling schema(Part 11)의 경우 • hole, hole_manuf_data 등 Part 11 (EXPRESS) Technology description ENTITY hole_manuf_data; retract_plane: plane; feed_on_retract: OPTIONAL speed_measure; cutting_depth: OPTIONAL length_measure; ….; END_ENTITY; ENTITY spot_drilling_manuf_data; subtype of ( hole_manuf_data );END_ENTITY; VAR { spot_drilling_manuf_data drilling_hole1; … } drilling_hole1 = spot_drilling_manuf_data( its_id = 'drilling_hole1', its_secplane = plane1 its_feature = hole1, its_tool = drill_12mm, its_technology = techno_drill2, its_machine_functions = mach_fkt_1, retract_plane = plane2); Spot_drilling_manuf_dataUsed as Data type
Manufacturing features in Part 11(Milling_schema) Manufacturing_feature Two5D_manufacturing_feature Region Machining_feature Transition_feature Replicate_feature Region_surface_list Region_projection Planar_face Chamfer Pocket Fillet Open_pocket Closed_pocket Slot Step Hole Round_hole Countersunk_hole … Special_feature General_outside_profile Compound_feature
Workingsteps defined in Part 11(Milling_schema) Workingstep Milling_workingstep Rapid_movement Freeform_workingstep Two5D_workingstep Hole_manuf_data Milling_type_manuf_data Spot_drilling_manuf_data Feature_manuf_data Generic_manuf_data Multistep_drilling_manuf_data Boring_manuf_data Planar_face_manuf_data Plane_milling Back_boring_manuf_data Profile_manuf_data Side_milling Threading_manuf_data Pocket_manuf_data Bottom_and_side_milling User_defined_hole_manuf_data Pocket_plunge_manuf_data Pocket_rough_manuf_data Pocket_bottom_finishing_manuf_data, … Step_manuf_data Slot_manuf_data Transition_manuf_data
NC Program Example hole1 Project file PROG = "c:\demo\NcFile.prg" plan = "c:\demo\Examp1.dat" geo = "c:\demo\Examp1.stp" Main program DESCRIPTION { filename = "c:\demo\NcFile.prg"; …} CONST { setup=axis2_placement_3d(location=cpppt); cpppt=cartesian_point(coordinates=[-4.672,76.863,-88.668]); … } PROGRAM() // MAIN PROGRAM { set_placement(setup); set_secplane(withdrawalplane); exec plan.rough_drilling_hole1; exec plan.drilling_hole1; exec plan.pocket1_plunge; exec plan.pocket1_rough; } pocket1 NcFile.prg Feature- workingsteps hole1 Rough_drilling_hole1 Drilling_hole1 pocket1 Pocket1_plunge Workingstep sequencing Pocket1_rough
NC Program Example (2) Technology description rough_drilling_hole1 = spot_drilling_manuf_data( …); drilling_hole1 = spot_drilling_manuf_data( its_id = 'drilling_hole1', its_secplane = plane1 its_feature = hole1, its_tool = drill_12mm, its_technology = techno_drill2, its_machine_functions = mach_fkt_1, retract_plane = plane2); pocket1_plunge = pocket_plunge_manuf_data( …); pocket1_rough = pocket_rough_manuf_data( …); hole1 = round_hole( feature_placement = placement4, its_workpiece = examp1_workpiece, depth = geo.#300, id = 'hole1', manufacturing_data = [rough_drilling_hole1,drilling_hole1], diameter = geo.#301, bottom_condition = through_bottom_condition()); pocket1 = closed_pocket( …); … drill_12mm = tool( ….; dimension = tool_dimension( diameter = 12.000; … ), … ); Examp1.dat ISO-10303-21; HEADER; … ENDSEC; DATA; #21 = CARTESIAN_POINT((0.0,0.0,0.0)); #25 = CARTESIAN_POINT((290.0,0.0,0.0)); #26 = CARTESIAN_POINT((290.0,70.0,0.0)); … … #300 = LENGTH_MEASURE(10.000); #301 = LENGTH_MEASURE(12.000); #302 = CARTESIAN_POINT((45.0,200.0,0.0)); ENDSEC; END-ISO-10303-21; Geometry description Examp1.stp
ISO 14649의 문제점 • Main Program에서 대안 Workingstep, 대안 resource 표현 필요 • Workingstep sequencing이 CNC 기능으로 추가 필요 • FMS로의 확장을 위해 Part sequencing이 CNC 기능으로 추가 필요 CAD Workpiece Data CAM-System optional Shopfloor Programming NEW DATA INTERFACE (ISO 14649) e.g. automatic FMS Extension - path generation Intelligent Functions - tool selection - Part sequencing - technology support - retract strategies - Workingstep sequencing New Control New, Intelligent Control - machine capability requirement
( F1, F2 ) [ F1, F2 ] { F1, F2 } F2 F1 F1 F1 F2 F2 O & & & O & O O & O & & O & 대안 Workingstep 표현 (Main program 부분) • Workingstep의 Sequence/Order를 표현할 때 Feature Graph를 표현할 수 있도록 하는 방안에 대한 연구 • 예제 ) Feature Graph의 Textual Representation • ([(F1, F2, {([(F3), (F4)]), (F5)}), ({(F6), (F7)}, F8), ([(F9), (F10)], F11)]) F3 F4 F2 F1 F5 F8 F6 F7 F9 F11 F10
& & Workingstep sequencing • Workingstep의 Sequence는 Main Program의 작성 시기에 결정되거나, 혹은 Main Program에 직접 Sequence를 결정하는 Logic을 추가해야 하는 문제점을 가짐 • 앞서 제안된 Feature Graph의 Textual Representation기법을 이용하여 CNC의 자체적 Intelligent Function이 Workingstep의 Sequence를 결정하도록 할 수 있음 제안 현재 Program() { …. EXEC f1; EXEC f2; EXEC f3; …. } Program() { …. EXEC f1; EXEC [ f2, f3 ]; …. } F1 F2 F2 F3 F1 F3
Part A F1 F2 F3 NEW DATA INTERFACE (ISO 14649) & & O O Part B F6 F4 F5 Part sequencing (FMS에서의 사용 예) • ‘F1’ Workingstep을 수행한 뒤 다음 단계의 workingstep을 결정하기 위해 현재 M/C의 Tool setting상황, Part A의 Refixturing 필요 여부 등의 정보를 참조 각 Part의 Feature graph인식 두 Part의 Feature graph를 병합 최적 가공 순서의 On-line 결정 지능적 CNC
Conclusion • New data interface model between CAM-CNC • ISO 6983 ISO 14649 • ISO 14649 gives • Higher flexibility to NC program • Easy manipulation of NC program with feature-based concept • Availability to use existing standards, STEP • ISO 14649 can be BETTER! • For FMS extension, ISO 14649 should express a feature graph, so that an intelligent CNC may control over several parts flexibly. • Future study • Are the ISO 14649-11 Information contents & semantics(ICS) enough for CNC to adopt more intelligent functions? • Is there a more flexible method to extend ISO 14649 to FMS or other applications? • Intelligent function == “compiler”?