前言
日常调试过程,常用需要用到各种转换的功能块。
利用CanopenBuilder软件直接生成Lib库文件,方便以后调用。
可以将自己生成的Lib库文件放到CanopenBuider安装目录下
C:\Program Files (x86)\Delta Industrial Automation\Communication\CANopen Builder 6.03\sysLib
这样以后打开软件就可以直接调用,无需再做其他的复制粘贴的行为。
Bool2Word
TempVal[0] := InVal1 ;
TempVal[1] := InVal2 ;
TempVal[2] := InVal3 ;
TempVal[3] := InVal4 ;
TempVal[4] := InVal5 ;
TempVal[5] := InVal6 ;
TempVal[6] := InVal7 ;
TempVal[7] := InVal8 ;
TempVal[8] := InVal9 ;
TempVal[9] := InVal10 ;
TempVal[10] := InVal11 ;
TempVal[11] := InVal12 ;
TempVal[12] := InVal13 ;
TempVal[13] := InVal14 ;
TempVal[14] := InVal15 ;
TempVal[15] := InVal16 ;
SaveVal := 16#0001 ;
FOR Number := 0 TO 15 BY 1 DO
IF TempVal[Number] THEN
OutVal := OutVal OR ( SHL(In:= SaveVal ,Num:= Number ) ) ;
ELSE
OutVal := OutVal AND ( NOT ( SHL(In:= SaveVal ,Num:= Number ) ) ) ;
END_IF;
END_FOR;
Word2Bool
FOR Number := 0 TO 15 BY 1 DO
MoveBit(In:= wInVal ,InPos:= Number ,InOutPos:= 0 ,InOut:= wTemp[Number] );
bTemp[Number] := UINT_TO_BOOL(In:= wTemp[Number] );
END_FOR;
bOutVal1 := bTemp[0] ;
bOutVal2 := bTemp[1] ;
bOutVal3 := bTemp[2] ;
bOutVal4 := bTemp[3] ;
bOutVal5 := bTemp[4] ;
bOutVal6 := bTemp[5] ;
bOutVal7 := bTemp[6] ;
bOutVal8 := bTemp[7] ;
bOutVal9 := bTemp[8] ;
bOutVal10 := bTemp[9] ;
bOutVal11 := bTemp[10] ;
bOutVal12 := bTemp[11] ;
bOutVal13 := bTemp[12] ;
bOutVal14 := bTemp[13] ;
bOutVal15 := bTemp[14] ;
bOutVal16 := bTemp[15] ;
ConvertTime
tTime := ULINT_TO_TIME(In:= DINT_TO_ULINT(In:= DiTime ) * 1000000 );
TON0(EN:= TRUE , In:= bEnable , PT:= tTime , Q=>bTimeQ , ET=>tTimeET );
Log:
2019-07-16 发布本文
网友评论