关于MODBUS的几个疑问

已锁定

like821080

  • 帖子

    728
  • 精华

    0
  • 被关注

    7

论坛等级:侠圣

注册时间:2008-09-05

普通 普通 如何晋级?

关于MODBUS的几个疑问

563

2

2010-11-15 11:17:13

这个是网上找到的程序
发送的源码

FUNCTION FC101:VOID

VAR_TEMP
I:INT;
J:INT;
CRC:WORD;
TEMP:ARRAY[0..7] OF BYTE;
END_VAR

VAR_INPUT
Slave:BYTE; //The Slave Address
FunctionCode:BYTE;
Offset:INT;
Length:INT;
END_VAR

VAR_OUTPUT
SENDBUF:ARRAY[0..7] OF BYTE;
END_VAR

CRC:=16#FFFF;
TEMP[0]:=Slave;
TEMP[1]:=FunctionCode;
TEMP[2]:=WORD_TO_BYTE(SHR(IN:=INT_TO_WORD(Offset), N:=8));
TEMP[3]:=WORD_TO_BYTE(INT_TO_WORD(Offset));
TEMP[4]:=WORD_TO_BYTE(SHR(IN:=INT_TO_WORD(Length), N:=8));
TEMP[5]:=WORD_TO_BYTE(INT_TO_WORD(Length));

FOR I:= 0 TO 5 BY 1 DO
CRC:=CRC XOR TEMP[I];
FOR J:= 0 TO 7 BY 1 DO
// Statement Section
IF (CRC AND 16#01) <> 0 THEN
CRC:=SHR(IN:=CRC, N:=1) XOR 16#A001;
ELSE
CRC:=SHR(IN:=CRC, N:=1);
END_IF;
END_FOR;
END_FOR;

TEMP[7]:=WORD_TO_BYTE(SHR(IN:=CRC, N:=8));
TEMP[6]:=WORD_TO_BYTE(CRC);

FOR I:= 0 TO 7 BY 1 DO
SENDBUF[I]:=TEMP[I];
END_FOR;

//FC101 := TRUE;
END_FUNCTION
接受的源码
FUNCTION FC103:VOID

VAR_TEMP
I:INT;
J:INT;
CRC:WORD;
CRCL:BYTE;
CRCH:BYTE;
Length:INT;
TT:WORD;
END_VAR

VAR_INPUT
Buffer:ARRAY[0..255] OF BYTE;
END_VAR

VAR_OUTPUT
Res:BOOL;

END_VAR

CRC:=16#FFFF;
Length:=WORD_TO_INT(BYTE_TO_WORD(Buffer[2]))+5;

FOR I:= 0 TO Length-3 BY 1 DO
CRC:=CRC XOR Buffer[I];
FOR J:= 0 TO 7 BY 1 DO
// Statement Section
IF (CRC AND 16#01) <> 0 THEN
CRC:=SHR(IN:=CRC, N:=1) XOR 16#A001;
ELSE
CRC:=SHR(IN:=CRC, N:=1);
END_IF;
END_FOR;
END_FOR;

CRCL:=WORD_TO_BYTE(SHR(IN:=CRC, N:=8));
CRCH:=WORD_TO_BYTE(CRC);
Res:=(CRCL=Buffer[Length-1]) AND (CRCH=Buffer[Length-2]);

END_FUNCTION

现在的疑问是:
1:发送的时候,如果我想输入400001那我在哪里输入呢?
2:接受的源码中的 Length:=WORD_TO_INT(BYTE_TO_WORD(Buffer[2]))+5;是什么意思,为什么用Buffer[2]而且还要加5呢?
3:FOR I:= 0 TO Length-3 BY 1 DO
为什么用到Length-3呢?
望高手能指点,再次先谢了!
关于MODBUS的几个疑问 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。