【Codesys】字节数组转长字节,长字节转字节数组,同点位坐标系位置偏移计算
1、字节数组转双字节///返回两个byte合成的长字节
FUNCTION_BLOCK FB_ByteToHex
VAR_INPUT
hByte:BYTE;
lByte:BYTE;
END_VAR
VAR_OUTPUT
HexData:DWORD;
END_VAR
VAR
HexStr,strByte1,strByte2:STRING;
END_VAR
//运动代码:
strByte1:=BASIC.BYTE_TO_STRH(hByte);
strByte2:=BASIC.BYTE_TO_STRH(lByte);
HexStr:=Standard.CONCAT(STR1:=strByte1,STR2:=strByte2);
HexData:=BASIC.HEX_TO_DWORD(Hex:=HexStr);
2、双字节转字符串
///返回长字节拆分的两个byte
FUNCTION_BLOCK FB_HexToByte
VAR_INPUT
HexData:WORD;
END_VAR
VAR_OUTPUT
hByte:BYTE;
lByte:BYTE;
END_VAR
VAR
HexStr,strByte1,strByte2:STRING;
END_VAR
运行代码:
HexStr:=DWORD_TO_STRH(IN:=HexData);
strByte1:=mid(STR:=HexStr,LEN:=2,POS:=5);
strByte2:=mid(STR:=HexStr,LEN:=2,POS:=7);
hByte:=HEX_TO_BYTE(strByte1);
lByte:=HEX_TO_BYTE(strByte2);
3、同坐标系坐标点位偏移计算
//已知第二工具距离丝杆中心位置距离,计算当前位置下第二位置运动到中心的坐标适用于3轴机器人
FUNCTION_BLOCK FB_CalcToolXY
VAR_INPUT
lrX:LREAL;//当前位置X
lrY:LREAL;//当前位置Y
lrC:LREAL;//当前位置C
END_VAR
VAR_OUTPUT
ResultX:LREAL;//输出位置X
ResultY:LREAL;//输出位置Y
END_VAR
VAR
lrOffsetX:LREAL:=-1.7;//-2.218; //已知位置的X偏差
lrOffsetY:LREAL:=54.95;//55.495;//已知位置的Y偏差
COSC,SINC,test3,test4:LREAL;
pi:LREAL:=3.1415926;
END_VAR
运动代码:
COSC:=COS((lrC*pi)/180);
SINC:=SIN((lrC*pi)/180);
ResultX:=lrX+COSC*lrOffsetX-SINC*lrOffsetY;
ResultY:=lrY+SINC*lrOffsetX+COSC*lrOffsetY;
页:
[1]