FUNCTION_BLOCK FB13
TITLE = 'Block Title'
//
// 将两个byte和并成一个word
//
VERSION: '1.0'
AUTHOR: Author
NAME: Name
FAMILY: Family
// Block Parameters
VAR_INPUT
// Input Parameters
ByteL:BYTE;
ByteH:BYTE;
END_VAR
VAR_IN_OUT
// I/O Parameters
END_VAR
VAR_OUTPUT
// Output Parameters
OutWord:WORD;
OutInt:INT;
OutDint:DINT;
OutReal:REAL;
END_VAR
VAR_TEMP
// Temporary Variables
END_VAR
VAR
// Static Variables
wordCombine:WORD;
ptr AT wordCombine :ARRAY[0..1] OF BYTE;
tmpInt:INT;
tmpDint:DINT;
tmpDword:DWORD;
tmpreal:REAL;
END_VAR
ptr[0]:=ByteH;
ptr[1]:=ByteL;
OutWord:=wordCombine;
OutInt:=WORD_TO_INT(wordCombine);
OutDint:=INT_TO_DINT(WORD_TO_INT(wordCombine));
OutReal:=DINT_TO_REAL(INT_TO_DINT(WORD_TO_INT(wordCombine)));
tmpDword:=WORD_TO_DWORD(wordCombine);
tmpDint:=DWORD_TO_DINT(WORD_TO_DWORD(wordCombine));
tmpreal:=DWORD_TO_REAL(WORD_TO_DWORD(wordCombine));//此处dword直接转换成real,得到错误结果
// Statement Section
;
END_FUNCTION_BLOCK
运行结果如下
1.在OB1中调用FB13,背景数据块是DB13。
2.运行结果