OSCAT库文件源代码_ST语言-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

Kx-M3全新升级!!
查看: 3214|回复: 44

OSCAT库文件源代码_ST语言

  [复制链接]
  • TA的每日心情
    开心
    2020-3-5 08:48
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2020-3-5 09:11:56 | 显示全部楼层 |阅读模式
    OSCAT库文件源代码_ST语言,编写的很精致,很优秀,共同学习一下,哈。
    (* @NESTEDCOMMENTS := 'Yes' *)
    (* @PATH := '\/Buffer Management' *)
    (* @OBJECTFLAGS := '0, 8' *)
    (* @SYMFILEFLAGS := '2048' *)
    FUNCTION _BUFFER_CLEAR : BOOL
    VAR_INPUT
            PT: POINTER TO BYTE;
            SIZE: UINT;
    END_VAR
    VAR
            ptw: POINTER TO DWORD;
            tempWORD;
            end,end32 : DWORD;
    END_VAR
    (*
    version 1.2    31.oct. 2008
    programmer     hugo
    tested by      oscat
    this function will initialize a given arrayof byte with 0.
    the function needs to be called:      _buffer_clear(adr("array"),sizeof("array"));
    this function will manipulate a given array.
    the function manipulates the original array,it rerturnes true when finished.
    because this function works with pointers itsvery time efficient and it needs no extra memory.
    *)
    (* @END_DECLARATION := '0' *)
    (* this routine uses 32 bit access to gainspeed *)
    (* first access bytes till pointer is alignedfor 32 bit access *)
    temp := pt;
    end := temp + UINT_TO_DWORD(size);
    end32 := end - 3;
    WHILE (pt < end) AND ((temp AND16#00000003) > 0) DO
            pt^:= 0;
            pt:= pt + 1;
            temp:= temp + 1;
    END_WHILE;
    (* pointer is aligned, now copy 32 bits at atime *)
    ptw := pt;
    WHILE ptw < end32 DO (* *)
            ptw^:= 0;
            ptw:= ptw + 4;
    END_WHILE;
    (* copy the remaining bytes in byte mode *)
    pt := ptw;
    WHILE pt < end DO
            pt^:= 0;
            pt:= pt + 1;
    END_WHILE;
    _BUFFER_CLEAR := TRUE;
    (* revision History
    hm      5.mar. 2008   rev 1.0
            originalversion
    hm      16.mar. 2008  rev 1.1
            addedtype conversion to avoid warnings under codesys 30
            chagedtype of input size to uint
            deletedunused variable i
    hm      31.oct. 2008  rev 1.2
            correctedan error while routine would write outside of arrays
    *)
    END_FUNCTION


    游客,如果您要查看本帖隐藏内容请回复
    +10
    打赏鼓励一下!
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-7-12 22:16
  • 签到天数: 167 天

    [LV.7]常住居民III

    发表于 2020-3-5 17:39:07 | 显示全部楼层
    hhhhhhhhhhhhhhhh
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 85 天

    [LV.6]常住居民II

    发表于 2020-3-8 00:06:51 | 显示全部楼层
    楼主是个好人
    +10
    打赏鼓励一下!
    来自安卓客户端来自安卓客户端
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-3-18 09:53:27 | 显示全部楼层
    kankan是什么
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2020-6-5 17:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2020-3-20 14:41:22 | 显示全部楼层
    好好好好好好好好
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-3-21 08:18:47 | 显示全部楼层
    我们与楼主共同进步
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2020-4-4 16:06
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2020-3-23 21:38:06 | 显示全部楼层
    正好需要这个库,学习了
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-3-27 10:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2020-3-27 10:25:12 | 显示全部楼层
    xuexiyixia
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-2-13 08:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-29 20:00:43 | 显示全部楼层
    谢谢分享’
    +10
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|小黑屋|手机版|Archiver|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2021-10-23 20:01 , Processed in 0.205428 second(s), 110 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表