回 帖 发 新 帖 刷新版面

主题:关于调用的问题

请教各位大神 小弟在编辑下列语句中出现如下问题
这是调用程序
C********************************************************************
C                                                                   *
C    TITLE   : TEST                NAME   : TEST                 *
C                                                                   *
C     DESCRIBE: 测试调用                                            *
C                                                                   *
C     AUTHOR  : ZL           DATE   :2010/07/12                     *
C                                                                   *
C********************************************************************
       SUBROUTINE SCH_TEST(IN,INIDEX,OUT,COEF,DT) 
      !DEC$ ATTRIBUTES DLLEXPORT::SCH_TEST
       !DEC$ ATTRIBUTES C,ALIAS:'SCH_TEST'::SCH_TEST
    REAL IN(*),OUT(*),COEF(*),DT
    REAL TEMP1IN(2),TEMP1OUT(3),TEMP2IN(2),TEMP2OUT(3)
    REAL M(6)
    DO 100 I=1,2
    TEMP1IN(I)=0
    TEMP2IN(I)=0
100    CONTINUE
    DO 200 J=1,3
    TEMP1OUT(J)=0
    TEMP2OUT(J)=0
200    CONTINUE
C------------------- TP   ------------------------------------------
    TEMP1IN(1)=IN(1)
    TEMP1IN(2)=IN(2)
    CALL STP(TEMP1IN,TEMP1OUT,COEF,DT)
    OUT(1)=TEMP1OUT(1)
    OUT(2)=TEMP1OUT(2)
    OUT(3)=TEMP1OUT(3)
C-------------------- TON ------------------------------------------
    TEMP2IN(1)=IN(3)
    TEMP2IN(2)=IN(4)
    CALL STON(TEMP2IN,TEMP2OUT,COEF,DT)
    OUT(4)=TEMP2OUT(1)
    OUT(5)=TEMP2OUT(2)
    OUT(6)=TEMP2OUT(3)
C----------------------------------------------------------------------
    TEMP1OUT(1)=OUT(1)
    TEMP1OUT(2)=OUT(2)
    TEMP1OUT(3)=OUT(3)
    TEMP2OUT(2)=OUT(5)
    TEMP2OUT(1)=OUT(4)
    TEMP2OUT(3)=OUT(6)
    RETURN
    END
TP程序为
c********************************************************************
c                                                                   *
c     TITLE   : TP.FOR                    NAME   : TP               *
c                                                                   *
c     DESCRIBE:  脉冲                                                  *
c                                                                   *
c     AUTHOR  : ZL                       DATE   :2010/07/12         *
c                                                                   *
C********************************************************************
       SUBROUTINE SCH_TP(IN,INIDEX,OUT,COEF,DT) 
      !DEC$ ATTRIBUTES DLLEXPORT::SCH_TP
       !DEC$ ATTRIBUTES C,ALIAS:'SCH_TP'::SCH_TP
c     IN(1):        X            输入    
c     IN(2):              PT            设定时间
C     IN(3):              EN
c     OUT(1):               Y            输出,结束指示开关
C     OUT(2)
C     OUT(3)
C     OUT(4)              ENO
C************************************************************************
        REAL IN(*),OUT(*),COEF(*),DT
    IF(IN(3).EQ.1)THEN
    OUT(4)=1
      IF (IN(1).EQ.1.AND.OUT(2).EQ.0) THEN            
            OUT(3) = IN(2)                           
        ELSE                                         
            OUT(3) = OUT(3) - DT                
            IF (OUT(3).LT.0) OUT(3) = 0                
        ENDIF
      IF(OUT(3).GT.0)THEN
             OUT(1) =1
      ELSE
           OUT(1)=0
      ENDIF                 
        OUT(2) = IN(1)
    ELSE
    OUT(4)=0
    ENDIF
    RETURN
    END
TON程序
c********************************************************************
c                                                                   *
c     TITLE   : TON.FOR                    NAME   : TON             *
c                                                                   *
c     DESCRIBE:  延迟开                                             *
c                                                                   *
c     AUTHOR  : ZL                       DATE   :2010/07/12         *
c                                                                   *
C********************************************************************
       SUBROUTINE SCH_TON(IN,INIDEX,OUT,COEF,DT) 
      !DEC$ ATTRIBUTES DLLEXPORT::SCH_TON
       !DEC$ ATTRIBUTES C,ALIAS:'SCH_TON'::SCH_TON
c     IN(1):        IN            启动延迟    
c     IN(2):        PT            设定时间
C    IN(3)       EN
c     OUT(1):    Q            DELAYED OUTPUT
c     OUT(2):    ET            INTERNAL TIME
c     OUT(3):    dT            延时条件满足后,内部计时
C    OUT(4)      ENO   
        REAL IN(*),OUT(*),COEF(*),DT
        REAL    COOFF1 
    IF(IN(3).EQ.1)THEN
    OUT(4)=1
        COOFF1 = IN(2)
        IF( IN(1) .EQ. OUT(1) )  GOTO 999
        OUT(3) = OUT(3) + DT
        IF(IN(1) .EQ. 1.0 )   THEN                                              
            IF(OUT(3) .GE. COOFF1) THEN
               OUT(3) = 0.0                                                     
               OUT(1) = 1.0                                                        
            ENDIF 
      ELSE
             OUT(1)=0.0                                                      
        ENDIF
999     CONTINUE 
        OUT(2)=1- OUT(1)
      IF(IN(2).EQ.0) THEN
      OUT(3)=0
      OUT(1)=0
      ENDIF
    ELSE
    OUT(4)=0
    ENDIF
        RETURN                                                                  
        END     

目前出现的问题就是 在test调用程序中的 out不能完全跟踪tp和ton的out不知道为何,还请大家帮忙……小弟不胜感激

回复列表 (共1个回复)

沙发

补充说明下
ton和tp在vf的检查中都没有出现错误,而且能够正常使用
但是为什么在经过test程序的调用就会出现错误呢- -
此外,call语句在使用过程中需要注意哪些东西么

我来回复

您尚未登录,请登录后再回复。点此登录或注册