倍福特殊功能块的用法——持续更新(★★★★)

一 字符串类

1.字符串的查找

查找STR2在STR1中第一次出现的位置,如果没有,返回0。

2.字符串的替换

将STR1中P(position)开始的L(length)个字符串,用STR2替换掉。

3.转义字符串含义

二 结构体数据操作

 1.结构体数据的清0:

 1)原理:从地址中访问数据并且赋值为0.

FUNCTION_BLOCK POU
VAR_INPUT
	PtSrc      : POINTER TO BYTE; //起始地址
	iNumByte   : DWORD; //字节长度
END_VAR
VAR
	i          : DWORD;
	PtByte     : POINTER TO BYTE;
END_VAR
*********************************************
FOR i:=0 TO iNumByte DO
	PtByte:=PtSrc+i;
	PtByte^:=0;	
END_FOR

  2)使用MEMSET功能块将所有结构体的数据写0

MEMSET(destAddr:=stTest , fillByte:=16#00 , n:=sizeof(stTest) )

2.结构体数据比较

MEMCMP(pBuf1:=ADR(stError), pBuf2:=ADR(stErrorCmp), n:= SIZEOF(stError))

 返回值:

 3.结构体数据复制

srcAddr地址区的数据复制到destAddr地址区

MEMCPY(destAddr:=ADR(stErrortemp), srcAddr:=ADR(stError), n:= SIZEOF(stError))

三 事件类操作

该操作可以通过twincat软件的输出栏,实时记录事件信息

详细的例子参照我写的LOG处理文档第二部分,事件记录器

1.定义时间严重性

TcEventSeverity

它有以下五个等级:

2.定义事件参数

FB_TcArguments

具体子方法使用查找倍福帮助文档

3.事件记录器

FB_TcEventLogger

具体子方法使用查找倍福帮助文档

 4. 错误检查

FAILED:使用此函数检查 HRESULT 类型的错误代码或状态代码是否无效。

hr:HRESULT;
result:bool;
if failed(hr) then
    result:=1;
else
    result:=0;

四 其他 

1.读取变量地址或注释(PLC_ReadSymInfoByName)

或者下面这种简单的方式:

 MyVarInfo : __SYSTEM.VAR_INFO;//定义

 MyVarInfo:=__VARINFO(test1);//实现

五 通过倍福电脑的系统日志查看系统故障(EventLog)

虚拟学院搜索----通过Eventlog文件分析故障

一般有3个我们用到

Application:应用程序,用于看倍福模块的信息

Security:登录信息,用于查看登录时间和状态

System:系统信息,用于查看系统级别的信息,比如异常开关机等

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值