这些都可以自已写然后放入库中调用,现成的不一定符合自己的应用。就当给自己练练手也是好的。
FUNCTION FC1006 : VOID
//Know_How_Protect;
VAR_TEMP
   i         :INT;
   S         :BOOL;
   END_VAR
VAR_INPUT
    DB_No    :INT; 
    DB_DW    :INT;
    In_Data  :INT;
    Lenght   :INT;
END_VAR
VAR_OUTPUT
    RFPos    :INT;
    Total    :INT; 
        END_VAR;
       IF In_Data>0 THEN
         Total:=0;
         RFPos:=0;
         S:=FALSE;
        FOR I:= 0 TO((Lenght*2)-2) BY 2 DO
         IF WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+I])=In_Data THEN
            IF  S=false THEN
            RFPos:=(DB_DW+I);
            END_IF;
            S:=TRUE;
            Total:=Total+1;
            END_IF;
   END_FOR;
     ELSE
       Total:=0;
       RFPos:=0;
       S:=FALSE;
  END_IF;  
   END_FUNCTION
以上是数据查找的原代码,不知道能不能符合你的要求。
FUNCTION FC1005 : VOID
Know_How_Protect;
VAR_TEMP
   i:INT;
   J:INT;
   II:INT; 
  END_VAR
VAR_INPUT
    DB_No:Int;
    DB_DW:INT;
    Lenght:INT;
   On_Off:BOOL;
END_VAR;
     //II:=0;   
     FOR I:= 0 TO (Lenght-1) DO 
       FOR J:= 0 to((Lenght*2)-2) BY 2 DO
         IF j<((Lenght*2)-2) THEN
            IF On_Off then
           IF (WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J])> WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J+2])) THEN
              II:=WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J]);
              WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J]:=WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J+2];
              WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J+2]:=INT_TO_WORD(II);
            END_IF;
        ELSE
           IF (WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J])< WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J+2])) THEN
              II:=WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J]);
              WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J]:=WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J+2];
              WORD_TO_BLOCK_DB(INT_TO_WORD(DB_No)).DW[DB_DW+J+2]:=INT_TO_WORD(II);
           END_IF;
        END_IF;
        END_IF;
        END_FOR;
    END_FOR;  
   END_FUNCTION
以上是数据排序源代码
[ 此帖被worker02在2018-06-20 10:59重新编辑 ]