切换到宽版
  • 6324阅读
  • 1回复

[Genrad]Genrad ict 程式编写? [复制链接]

上一主题 下一主题
离线gezi11
级别:新手实习
 
金币
3
威望
1
贡献
0
好评
0
注册
2007-10-27
只看楼主 倒序阅读 使用道具 楼主  发表于: 2007-11-03
谁有Genrad ict 程式编写的一原理与规则可以共享一下啊?
分享到
离线nwzwc
在线等级:1
在线时长:21小时
升级剩余时间:29小时
级别:初级会员

金币
1
威望
2
贡献
0
好评
0
注册
2006-01-11
只看该作者 沙发  发表于: 2007-11-11
GenRad ODC program format.


1. 这一部分是定义ODC相关变量
红色的部分加在DECLARE 和 ENDDEC 之间.

/****this part only to conver the time system***/
DECLARE CONVERTDT();
DECLARE GLOBAL CSTRING YEAR(2);
DECLARE GLOBAL CSTRING MONTH(3);
DECLARE GLOBAL CSTRING DAY(3);
DECLARE GLOBAL CSTRING HOUR (2);
DECLARE GLOBAL CSTRING MINSEC (10);
DECLARE GLOBAL CSTRING PMAM (2);
DECLARE GLOBAL CSTRING TEST_DATEN (50);
/*****************************************************/
/*************     FOR TEST ODC     ***************/
/*****************************************************/

DECLARE CHECK_PUT();
DECLARE SEND_PASS();
DECLARE SEND_FAIL();
GenRad ODC program format.


1. 这一部分是定义ODC相关变量
红色的部分加在DECLARE 和 ENDDEC 之间.

/****this part only to conver the time system***/
DECLARE CONVERTDT();
DECLARE GLOBAL CSTRING YEAR(2);
DECLARE GLOBAL CSTRING MONTH(3);
DECLARE GLOBAL CSTRING DAY(3);
DECLARE GLOBAL CSTRING HOUR (2);
DECLARE GLOBAL CSTRING MINSEC (10);
DECLARE GLOBAL CSTRING PMAM (2);
DECLARE GLOBAL CSTRING TEST_DATEN (50);
/*****************************************************/
/*************     FOR TEST ODC     ***************/
/*****************************************************/

DECLARE CHECK_PUT();
DECLARE SEND_PASS();
DECLARE SEND_FAIL();

DECLARE SYSTEM GET_MODE (CSTRING ARG(8));
DECLARE CSTRING RTS_MODE(8);
DECLARE LOAD CSTRING SERIAL_NUMBER (20);
DECLARE SYSTEM SERIALNO (CSTRING ARG1(20));
DECLARE GLOBAL FILE IDENT;
DECLARE LOAD CSTRING ANS(20);
DECLARE GLOBAL CSTRING TEST_DATE(19);
DECLARE GLOBAL CSTRING LOG_PATH(50);
DECLARE GLOBAL CSTRING LOG_PATH1(50);
DECLARE GLOBAL CSTRING LOG_PATH2(50);
DECLARE GLOBAL CSTRING PULLFILE(50);
DECLARE GLOBAL CSTRING PULLFILE_LOG(50);
DECLARE GLOBAL CSTRING PULLFILE_TXT(50);
DECLARE GLOBAL CSTRING PULLDATE(30);
DECLARE GLOBAL CSTRING PULLDATE_LOG(30);
DECLARE GLOBAL CSTRING KEEP_FILE(80);
DECLARE LABEL();

/*****************************************************/
/*************     FOR NT MSG BOX   ***************/
/*****************************************************/

DECLARE SYSTEM SPAWN (CSTRING COMMAND(100));
DECLARE LOAD CSTRING MSGBOX(200);
DECLARE LOAD CSTRING MSGBOX1(100);
DECLARE LOAD CSTRING MSGBOX2(100);
DECLARE LOAD CSTRING MSGBOX3(100);

DECLARE LOAD CSTRING MSGBOX4(100);
DECLARE LOAD CSTRING MSGBOX5(100);
DECLARE LOAD CSTRING MSGBOX6(100);



2. 在LET START_TEST_TIME=TIME()之后加上
CALL LABEL();

Call DECH();

/***DISCHARGING UUT CAPACITIVE VOLTAGES***/
3. 粉红色的部分是检查条码,这一段放在
LET START_TEST_TIME=TIME(); 和D_CAP1: CALL CAP_DISCHARGE();    之间.

GETSN: CALL SERIALNO(ARG1=SERIAL_NUMBER);
    CALL GET_MODE(ARG=RTS_MODE);

/************* FOR T/S TEST ****************/
       
IF SERIAL_NUMBER = '0001' THEN
  [
  LET SERIAL_NUMBER = ''; BRANCH UNCHECK;  
  ];

               
IF RTS_MODE='TEST' THEN
  [ CALL CHECK_PUT();              
  IF FAIL(101) THEN
   
      BRANCH END;
     
  ];
 
 
UNCHECK:
      WRITE '%NL%';
      WRITE '%NL% BOARDS SERIAL # IS :%S%%NL%'SERIAL_NUMBER;


4.在 SUBROUTINE CAP_DISCHARGE(); 之前有二行为:
         
            PDONE:
   
END;
删掉这二行,用下面的语句代替:

/***FOR SEND FAIL TO ODC***/
CALL SEND_FAIL();

BRANCH END;

PDONE:
/********** FOR SEND PASS TO ODC **********/
PASS_SEND_ODC:

IF RTS_MODE='TEST' THEN CALL SEND_PASS();

END:    
END;

5.在程序最后加上子程序.(注意LABEL 的子程序有ODC的程序中拷过来)

SUBROUTINE LABEL();
WRITE '%033%!E';
A:
 
  WRITE '%033%:A%NL%';      
  WRITE '*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*%NL%';
  WRITE '*=                                   =*%NL%';
  WRITE '*=     NOW TESTING BOARD POWER SUPPLY           =*%NL%';
  WRITE '*=     FAB: 070-1111-49                     =*%NL%';
  WRITE '*=     Project P/N: p033602b REV.02             =*%NL%';
  WRITE '*=     PROGRAM NAME   : p033602b               =*%NL%';
  WRITE '*=     REV. PROGRAM   : 00                   =*%NL%';
  WRITE '*=     SELECT       : -                   =*%NL%';
  WRITE '*     FIXTURE NUMBER : p033602b               =*%NL%';
  WRITE '*=                                   =*%NL%';
  WRITE '*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*%NL%';
  WRITE '%NL%';                    
 

END:

END SUBROUTINE LABEL;


SUBROUTINE CHECK_PUT();

  LET PULLFILE=SUBSTR(SERIAL_NUMBER,1,20);
  LET PULLFILE_TXT=PULLFILE!!'.TXT';
  LET LOG_PATH1='H:\';
  LET KEEP_FILE=LOG_PATH1!!PULLFILE_TXT;
   
OPEN ID=IDENT DEV=KEEP_FILE MODE='READ'
  [
  BITSET(FAIL,101);
  LET MSGBOX1='start /B /min /wait msgbox.exe "Wrong Station !" "SN:';
  LET MSGBOX2=SERIAL_NUMBER;
  LET MSGBOX3=' " question';
  LET MSGBOX2=MSGBOX2!!MSGBOX3;
  LET MSGBOX=MSGBOX1!!MSGBOX2;
  CALL SPAWN (COMMAND=MSGBOX);
  LET SERIAL_NUMBER = '';
  BRANCH END;
  ];
CLOSE ID=IDENT;
 
END:
RETURN;

END SUBROUTINE CHECK_PUT;


SUBROUTINE SEND_PASS();

IF SERIAL_NUMBER='' THEN [BRANCH END;];
 
  LET TEST_DATE=DATE();
  CALL CONVERTDT();
  LET PULLFILE=SUBSTR(SERIAL_NUMBER,1,20);
  LET PULLDATE=SUBSTR(TEST_DATE,1,9);  
  LET PULLFILE_LOG=PULLFILE!!'.LOG';
  LET PULLFILE_TXT=PULLFILE!!'.TXT';  
  LET PULLDATE_LOG=PULLDATE!!'.LOG';  
  LET LOG_PATH1='H:\';
  LET LOG_PATH2='G:\';

/** SENT PASS TO ODC **/
   
  LET KEEP_FILE=LOG_PATH2!!PULLFILE_LOG;  
   
OPEN ID=IDENT DEV=KEEP_FILE MODE='WRITE'
  [
  LET MSGBOX1='start /B /min /wait msgbox.exe "Error" "SN:';
  LET MSGBOX2=SERIAL_NUMBER;
  LET MSGBOX3='\n%47% ! Not SENT PASS TO ODC !%47%\n';
  LET MSGBOX2=MSGBOX2!!MSGBOX3;
  LET MSGBOX=MSGBOX1!!MSGBOX2;
  CALL SPAWN (COMMAND=MSGBOX);
  BITSET (FAIL,100);
  BRANCH END;
  ];
WRITE ID=IDENT '%S%,%S%,P'
PULLFILE,TEST_DATEN;

CLOSE ID=IDENT;

END:
RETURN;

END SUBROUTINE SEND_PASS;



SUBROUTINE SEND_FAIL();

IF SERIAL_NUMBER='' THEN [BRANCH END;];

  LET TEST_DATE=DATE();
  CALL CONVERTDT();
  LET PULLFILE=SUBSTR(SERIAL_NUMBER,1,20);
  LET PULLDATE=SUBSTR(TEST_DATE,1,9);
  LET PULLFILE_LOG=PULLFILE!!'.LOG';
  LET PULLDATE_LOG=PULLDATE!!'.LOG';
  LET LOG_PATH1='H:\';
  LET LOG_PATH2='G:\';

/**SENT FAIL TO ODC **/
   
  LET KEEP_FILE=LOG_PATH2!!PULLFILE_LOG;  
   
OPEN ID=IDENT DEV=KEEP_FILE MODE='WRITE'
  [        
  LET MSGBOX1='start /B /min /wait msgbox.exe "Error" "SN:';
  LET MSGBOX2=PULLFILE;
  LET MSGBOX3='\n%47% !! Not SENT FAIL TO ODC !!%47%\n';
  LET MSGBOX2=MSGBOX2!!MSGBOX3;
  LET MSGBOX=MSGBOX1!!MSGBOX2;
  CALL SPAWN (COMMAND=MSGBOX);
  BITSET (FAIL,100);
  BRANCH END;
  ];
WRITE ID=IDENT '%S%,%S%,F'
PULLFILE,TEST_DATEN;

CLOSE ID=IDENT;

END:

RETURN;

END SUBROUTINE SEND_FAIL;




SUBROUTINE CONVERTDT();

DECLARE CSTRING TEMP1(30);

YEAR=SUBSTR(TEST_DATE,8,2);
MONTH=SUBSTR(TEST_DATE,4,3);
DAY=SUBSTR(TEST_DATE,1,2);
HOUR=SUBSTR(TEST_DATE,12,2);
MINSEC=SUBSTR(TEST_DATE,14,6);


IF MONTH='JAN' THEN [MONTH='1';BRANCH DAY;];
IF MONTH='FEB' THEN [MONTH='2';BRANCH DAY;];
IF MONTH='MAR' THEN [MONTH='3';BRANCH DAY;];
IF MONTH='APR' THEN [MONTH='4';BRANCH DAY;];
IF MONTH='MAY' THEN [MONTH='5';BRANCH DAY;];
IF MONTH='JUN' THEN [MONTH='6';BRANCH DAY;];
IF MONTH='JUL' THEN [MONTH='7';BRANCH DAY;];
IF MONTH='AUG' THEN [MONTH='8';BRANCH DAY;];
IF MONTH='SEP' THEN [MONTH='9';BRANCH DAY;];
IF MONTH='OCT' THEN [MONTH='10';BRANCH DAY;];
IF MONTH='NOV' THEN [MONTH='11';BRANCH DAY;];
IF MONTH='DEC' THEN [MONTH='12';BRANCH DAY;];

DAY:
IF DAY='01'THEN [DAY='1';BRANCH HOUR;];
IF DAY='02'THEN [DAY='2';BRANCH HOUR;];
IF DAY='03'THEN [DAY='3';BRANCH HOUR;];
IF DAY='04'THEN [DAY='4';BRANCH HOUR;];
IF DAY='05'THEN [DAY='5';BRANCH HOUR;];
IF DAY='06'THEN [DAY='6';BRANCH HOUR;];
IF DAY='07'THEN [DAY='7';BRANCH HOUR;];
IF DAY='08'THEN [DAY='8';BRANCH HOUR;];
IF DAY='09'THEN [DAY='9';BRANCH HOUR;];


HOUR:
/*00-11 AM,12-23 PM. ORACLE ACCEPT HOUR 1-12 NO 0 .12:52:30 AM MORNING*/
IF HOUR<'12'THEN PMAM='AM';
IF HOUR>='12' THEN PMAM='PM';
IF HOUR='00'THEN [HOUR='12';BRANCH NEWDATETIME;];
IF HOUR='01'THEN [HOUR='1';BRANCH NEWDATETIME;];
IF HOUR='02'THEN [HOUR='2';BRANCH NEWDATETIME;];
IF HOUR='03'THEN [HOUR='3';BRANCH NEWDATETIME;];
IF HOUR='04'THEN [HOUR='4';BRANCH NEWDATETIME;];
IF HOUR='05'THEN [HOUR='5';BRANCH NEWDATETIME;];
IF HOUR='06'THEN [HOUR='6';BRANCH NEWDATETIME;];
IF HOUR='07'THEN [HOUR='7';BRANCH NEWDATETIME;];
IF HOUR='08'THEN [HOUR='8';BRANCH NEWDATETIME;];
IF HOUR='09'THEN [HOUR='9';BRANCH NEWDATETIME;];
IF HOUR='13'THEN [HOUR='1';BRANCH NEWDATETIME;];
IF HOUR='14'THEN [HOUR='2';BRANCH NEWDATETIME;];
IF HOUR='15'THEN [HOUR='3';BRANCH NEWDATETIME;];
IF HOUR='16'THEN [HOUR='4';BRANCH NEWDATETIME;];
IF HOUR='17'THEN [HOUR='5';BRANCH NEWDATETIME;];
IF HOUR='18'THEN [HOUR='6';BRANCH NEWDATETIME;];
IF HOUR='19'THEN [HOUR='7';BRANCH NEWDATETIME;];
IF HOUR='20'THEN [HOUR='8';BRANCH NEWDATETIME;];
IF HOUR='21'THEN [HOUR='9';BRANCH NEWDATETIME;];
IF HOUR='22'THEN [HOUR='10';BRANCH NEWDATETIME;];
IF HOUR='23'THEN [HOUR='11';BRANCH NEWDATETIME;];


NEWDATETIME:
LET MONTH=MONTH!!'/';
LET DAY=DAY!!'/';
LET TEMP1=MONTH !! DAY;
LET TEMP1=TEMP1!!YEAR;
LET TEMP1=TEMP1!!' ';
LET TEMP1=TEMP1!!HOUR;
LET TEMP1=TEMP1!!MINSEC;
LET TEMP1=TEMP1!!' ';
LET TEST_DATEN=TEMP1!!PMAM;

RETURN;
END SUBROUTINE CONVERTDT;





LOAD DSM FILE = 'U12PROG.ddb';/*** 调入烧录文件***/

DECLARE SYSTEM GET_MODE (CSTRING ARG(8));
DECLARE CSTRING RTS_MODE(8);
DECLARE LOAD CSTRING SERIAL_NUMBER (20);
DECLARE SYSTEM SERIALNO (CSTRING ARG1(20));
DECLARE GLOBAL FILE IDENT;
DECLARE LOAD CSTRING ANS(20);
DECLARE GLOBAL CSTRING TEST_DATE(19);
DECLARE GLOBAL CSTRING LOG_PATH(50);
DECLARE GLOBAL CSTRING LOG_PATH1(50);
DECLARE GLOBAL CSTRING LOG_PATH2(50);
DECLARE GLOBAL CSTRING PULLFILE(50);
DECLARE GLOBAL CSTRING PULLFILE_LOG(50);
DECLARE GLOBAL CSTRING PULLFILE_TXT(50);
DECLARE GLOBAL CSTRING PULLDATE(30);
DECLARE GLOBAL CSTRING PULLDATE_LOG(30);
DECLARE GLOBAL CSTRING KEEP_FILE(80);
DECLARE LABEL();

/*****************************************************/
/*************     FOR NT MSG BOX   ***************/
/*****************************************************/

DECLARE SYSTEM SPAWN (CSTRING COMMAND(100));
DECLARE LOAD CSTRING MSGBOX(200);
DECLARE LOAD CSTRING MSGBOX1(100);
DECLARE LOAD CSTRING MSGBOX2(100);
DECLARE LOAD CSTRING MSGBOX3(100);

DECLARE LOAD CSTRING MSGBOX4(100);
DECLARE LOAD CSTRING MSGBOX5(100);
DECLARE LOAD CSTRING MSGBOX6(100);



2. 在LET START_TEST_TIME=TIME()之后加上
CALL LABEL();

Call DECH();

/***DISCHARGING UUT CAPACITIVE VOLTAGES***/
3. 粉红色的部分是检查条码,这一段放在
LET START_TEST_TIME=TIME(); 和D_CAP1: CALL CAP_DISCHARGE();    之间.

GETSN: CALL SERIALNO(ARG1=SERIAL_NUMBER);
    CALL GET_MODE(ARG=RTS_MODE);

/************* FOR T/S TEST ****************/
       
IF SERIAL_NUMBER = '0001' THEN
  [
  LET SERIAL_NUMBER = ''; BRANCH UNCHECK;  
  ];

               
IF RTS_MODE='TEST' THEN
  [ CALL CHECK_PUT();              
  IF FAIL(101) THEN
   
      BRANCH END;
     
  ];
 
 
UNCHECK:
      WRITE '%NL%';
      WRITE '%NL% BOARDS SERIAL # IS :%S%%NL%'SERIAL_NUMBER;


4.在 SUBROUTINE CAP_DISCHARGE(); 之前有二行为:
         
            PDONE:
   
END;
删掉这二行,用下面的语句代替:

/***FOR SEND FAIL TO ODC***/
CALL SEND_FAIL();

BRANCH END;

PDONE:
/********** FOR SEND PASS TO ODC **********/
PASS_SEND_ODC:

IF RTS_MODE='TEST' THEN CALL SEND_PASS();

END:    
END;

5.在程序最后加上子程序.(注意LABEL 的子程序有ODC的程序中拷过来)

SUBROUTINE LABEL();
WRITE '%033%!E';
A:
 
  WRITE '%033%:A%NL%';      
  WRITE '*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*%NL%';
  WRITE '*=                                   =*%NL%';
  WRITE '*=     NOW TESTING BOARD POWER SUPPLY           =*%NL%';
  WRITE '*=     FAB: 070-1111-49                     =*%NL%';
  WRITE '*=     Project P/N: p033602b REV.02             =*%NL%';
  WRITE '*=     PROGRAM NAME   : p033602b               =*%NL%';
  WRITE '*=     REV. PROGRAM   : 00                   =*%NL%';
  WRITE '*=     SELECT       : -                   =*%NL%';
  WRITE '*     FIXTURE NUMBER : p033602b               =*%NL%';
  WRITE '*=                                   =*%NL%';
  WRITE '*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*%NL%';
  WRITE '%NL%';                    
 

END:

END SUBROUTINE LABEL;


SUBROUTINE CHECK_PUT();

  LET PULLFILE=SUBSTR(SERIAL_NUMBER,1,20);
  LET PULLFILE_TXT=PULLFILE!!'.TXT';
  LET LOG_PATH1='H:\';
  LET KEEP_FILE=LOG_PATH1!!PULLFILE_TXT;
   
OPEN ID=IDENT DEV=KEEP_FILE MODE='READ'
  [
  BITSET(FAIL,101);
  LET MSGBOX1='start /B /min /wait msgbox.exe "Wrong Station !" "SN:';
  LET MSGBOX2=SERIAL_NUMBER;
  LET MSGBOX3=' " question';
  LET MSGBOX2=MSGBOX2!!MSGBOX3;
  LET MSGBOX=MSGBOX1!!MSGBOX2;
  CALL SPAWN (COMMAND=MSGBOX);
  LET SERIAL_NUMBER = '';
  BRANCH END;
  ];
CLOSE ID=IDENT;
 
END:
RETURN;

END SUBROUTINE CHECK_PUT;


SUBROUTINE SEND_PASS();

IF SERIAL_NUMBER='' THEN [BRANCH END;];
 
  LET TEST_DATE=DATE();
  CALL CONVERTDT();
  LET PULLFILE=SUBSTR(SERIAL_NUMBER,1,20);
  LET PULLDATE=SUBSTR(TEST_DATE,1,9);  
  LET PULLFILE_LOG=PULLFILE!!'.LOG';
  LET PULLFILE_TXT=PULLFILE!!'.TXT';  
  LET PULLDATE_LOG=PULLDATE!!'.LOG';  
  LET LOG_PATH1='H:\';
  LET LOG_PATH2='G:\';

/** SENT PASS TO ODC **/
   
  LET KEEP_FILE=LOG_PATH2!!PULLFILE_LOG;  
   
OPEN ID=IDENT DEV=KEEP_FILE MODE='WRITE'
  [
  LET MSGBOX1='start /B /min /wait msgbox.exe "Error" "SN:';
  LET MSGBOX2=SERIAL_NUMBER;
  LET MSGBOX3='\n%47% ! Not SENT PASS TO ODC !!%47%\n';
  LET MSGBOX2=MSGBOX2!!MSGBOX3;
  LET MSGBOX=MSGBOX1!!MSGBOX2;
  CALL SPAWN (COMMAND=MSGBOX);
  BITSET (FAIL,100);
  BRANCH END;
  ];
WRITE ID=IDENT '%S%,%S%,P'
PULLFILE,TEST_DATEN;

CLOSE ID=IDENT;

END:
RETURN;

END SUBROUTINE SEND_PASS;



SUBROUTINE SEND_FAIL();

IF SERIAL_NUMBER='' THEN [BRANCH END;];

  LET TEST_DATE=DATE();
  CALL CONVERTDT();
  LET PULLFILE=SUBSTR(SERIAL_NUMBER,1,20);
  LET PULLDATE=SUBSTR(TEST_DATE,1,9);
  LET PULLFILE_LOG=PULLFILE!!'.LOG';
  LET PULLDATE_LOG=PULLDATE!!'.LOG';
  LET LOG_PATH1='H:\';
  LET LOG_PATH2='G:\';

/**SENT FAIL TO ODC **/
   
  LET KEEP_FILE=LOG_PATH2!!PULLFILE_LOG;  
   
OPEN ID=IDENT DEV=KEEP_FILE MODE='WRITE'
  [        
  LET MSGBOX1='start /B /min /wait msgbox.exe "Error" "SN:';
  LET MSGBOX2=PULLFILE;
  LET MSGBOX3='\n%47% ! Not SENT FAIL TO ODC !%47%\n';
  LET MSGBOX2=MSGBOX2!!MSGBOX3;
  LET MSGBOX=MSGBOX1!!MSGBOX2;
  CALL SPAWN (COMMAND=MSGBOX);
  BITSET (FAIL,100);
  BRANCH END;
  ];
WRITE ID=IDENT '%S%,%S%,F'
PULLFILE,TEST_DATEN;

CLOSE ID=IDENT;

END:

RETURN;

END SUBROUTINE SEND_FAIL;




SUBROUTINE CONVERTDT();

DECLARE CSTRING TEMP1(30);

YEAR=SUBSTR(TEST_DATE,8,2);
MONTH=SUBSTR(TEST_DATE,4,3);
DAY=SUBSTR(TEST_DATE,1,2);
HOUR=SUBSTR(TEST_DATE,12,2);
MINSEC=SUBSTR(TEST_DATE,14,6);


IF MONTH='JAN' THEN [MONTH='1';BRANCH DAY;];
IF MONTH='FEB' THEN [MONTH='2';BRANCH DAY;];
IF MONTH='MAR' THEN [MONTH='3';BRANCH DAY;];
IF MONTH='APR' THEN [MONTH='4';BRANCH DAY;];
IF MONTH='MAY' THEN [MONTH='5';BRANCH DAY;];
IF MONTH='JUN' THEN [MONTH='6';BRANCH DAY;];
IF MONTH='JUL' THEN [MONTH='7';BRANCH DAY;];
IF MONTH='AUG' THEN [MONTH='8';BRANCH DAY;];
IF MONTH='SEP' THEN [MONTH='9';BRANCH DAY;];
IF MONTH='OCT' THEN [MONTH='10';BRANCH DAY;];
IF MONTH='NOV' THEN [MONTH='11';BRANCH DAY;];
IF MONTH='DEC' THEN [MONTH='12';BRANCH DAY;];

DAY:
IF DAY='01'THEN [DAY='1';BRANCH HOUR;];
IF DAY='02'THEN [DAY='2';BRANCH HOUR;];
IF DAY='03'THEN [DAY='3';BRANCH HOUR;];
IF DAY='04'THEN [DAY='4';BRANCH HOUR;];
IF DAY='05'THEN [DAY='5';BRANCH HOUR;];
IF DAY='06'THEN [DAY='6';BRANCH HOUR;];
IF DAY='07'THEN [DAY='7';BRANCH HOUR;];
IF DAY='08'THEN [DAY='8';BRANCH HOUR;];
IF DAY='09'THEN [DAY='9';BRANCH HOUR;];


HOUR:
/*00-11 AM,12-23 PM. ORACLE ACCEPT HOUR 1-12 NO 0 .12:52:30 AM MORNING*/
IF HOUR<'12'THEN PMAM='AM';
IF HOUR>='12' THEN PMAM='PM';
IF HOUR='00'THEN [HOUR='12';BRANCH NEWDATETIME;];
IF HOUR='01'THEN [HOUR='1';BRANCH NEWDATETIME;];
IF HOUR='02'THEN [HOUR='2';BRANCH NEWDATETIME;];
IF HOUR='03'THEN [HOUR='3';BRANCH NEWDATETIME;];
IF HOUR='04'THEN [HOUR='4';BRANCH NEWDATETIME;];
IF HOUR='05'THEN [HOUR='5';BRANCH NEWDATETIME;];
IF HOUR='06'THEN [HOUR='6';BRANCH NEWDATETIME;];
IF HOUR='07'THEN [HOUR='7';BRANCH NEWDATETIME;];
IF HOUR='08'THEN [HOUR='8';BRANCH NEWDATETIME;];
IF HOUR='09'THEN [HOUR='9';BRANCH NEWDATETIME;];
IF HOUR='13'THEN [HOUR='1';BRANCH NEWDATETIME;];
IF HOUR='14'THEN [HOUR='2';BRANCH NEWDATETIME;];
IF HOUR='15'THEN [HOUR='3';BRANCH NEWDATETIME;];
IF HOUR='16'THEN [HOUR='4';BRANCH NEWDATETIME;];
IF HOUR='17'THEN [HOUR='5';BRANCH NEWDATETIME;];
IF HOUR='18'THEN [HOUR='6';BRANCH NEWDATETIME;];
IF HOUR='19'THEN [HOUR='7';BRANCH NEWDATETIME;];
IF HOUR='20'THEN [HOUR='8';BRANCH NEWDATETIME;];
IF HOUR='21'THEN [HOUR='9';BRANCH NEWDATETIME;];
IF HOUR='22'THEN [HOUR='10';BRANCH NEWDATETIME;];
IF HOUR='23'THEN [HOUR='11';BRANCH NEWDATETIME;];


NEWDATETIME:
LET MONTH=MONTH!!'/';
LET DAY=DAY!!'/';
LET TEMP1=MONTH !! DAY;
LET TEMP1=TEMP1!!YEAR;
LET TEMP1=TEMP1!!' ';
LET TEMP1=TEMP1!!HOUR;
LET TEMP1=TEMP1!!MINSEC;
LET TEMP1=TEMP1!!' ';
LET TEST_DATEN=TEMP1!!PMAM;

RETURN;
END SUBROUTINE CONVERTDT;





LOAD DSM FILE = 'U12PROG.ddb';/*** 调入烧录文件***/