沉迷学习
一个什么正在努力学习的实习生
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 111 点
下载积分: 927 分
在线时间: 3(小时)
注册时间: 2018-03-13
最后登录: 2020-06-28
查看沉迷学习的 主题 / 回贴
楼主  发表于: 2018-06-19 19:44
rt,求一份冒泡算法参考。。。如果可以,网络视图再好不过
沉迷学习
一个什么正在努力学习的实习生
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 111 点
下载积分: 927 分
在线时间: 3(小时)
注册时间: 2018-03-13
最后登录: 2020-06-28
查看沉迷学习的 主题 / 回贴
1楼  发表于: 2018-06-19 19:45
另外,再问一下,西门子PLC中有像三菱PLC里的SER数据查找指令吗?
worker02
级别: 略有小成
精华主题: 0
发帖数量: 115 个
工控威望: 294 点
下载积分: 723 分
在线时间: 280(小时)
注册时间: 2008-08-01
最后登录: 2024-12-07
查看worker02的 主题 / 回贴
2楼  发表于: 2018-06-20 10:51
这些都可以自已写然后放入库中调用,现成的不一定符合自己的应用。就当给自己练练手也是好的。
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重新编辑 ]
沉迷学习
一个什么正在努力学习的实习生
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 111 点
下载积分: 927 分
在线时间: 3(小时)
注册时间: 2018-03-13
最后登录: 2020-06-28
查看沉迷学习的 主题 / 回贴
3楼  发表于: 2018-06-20 18:46
引用
引用第2楼worker02于2018-06-20 10:51发表的  :
这些都可以自已写然后放入库中调用,现成的不一定符合自己的应用。就当给自己练练手也是好的。
FUNCTION FC1006 : VOID
//Know_How_Protect;
VAR_TEMP
   i         :INT;
.......

额。。。请问怎么把这个用在博图V14里面呢。。。
worker02
级别: 略有小成
精华主题: 0
发帖数量: 115 个
工控威望: 294 点
下载积分: 723 分
在线时间: 280(小时)
注册时间: 2008-08-01
最后登录: 2024-12-07
查看worker02的 主题 / 回贴
4楼  发表于: 2018-06-21 09:13
引用
引用第3楼沉迷学习于2018-06-20 18:46发表的  :

额。。。请问怎么把这个用在博图V14里面呢。。。


我是在S7下编写应用的,博图上我没用过,一直都是用S7.不知道是否可以移植。