酷德网

CODESYS平台控制器 700 元~
查看: 105|回复: 8

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


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

    使用道具 举报

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 77 天

    [LV.6]常住居民II

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

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:01
  • 签到天数: 37 天

    [LV.5]常住居民I

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

  • TA的每日心情
    难过
    6 天前
  • 签到天数: 4 天

    [LV.2]偶尔看看I

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

    使用道具 举报

    该用户从未签到

    发表于 7 天前 | 显示全部楼层
    我们与楼主共同进步
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    1 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 5 天前 | 显示全部楼层
    正好需要这个库,学习了
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 昨天 10:25 | 显示全部楼层
    xuexiyixia
    打赏鼓励一下!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

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

    GMT+8, 2020-3-28 20:22 , Processed in 0.176229 second(s), 83 queries , MemCache On.

    酷德网

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

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