首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

有关电子标签的有关问题。各位英雄帮帮忙

2012-03-07 
有关电子标签的问题。各位英雄帮帮忙要求要能读写1kb的数据,但是现在最多只能读写240byte的数据,下面贴出写

有关电子标签的问题。各位英雄帮帮忙
要求要能读写1kb的数据,但是现在最多只能读写240byte的数据,下面贴出写的代码 如下:

Delphi(Pascal) code
procedure TForm1.FormCreate(Sender: TObject);begin  ClientSocket1.Port:=502;  ClientSocket1.Host:='192.168.1.5';  ClientSocket1.Active:=true;end;procedure TForm1.btnWriteDataClick(Sender: TObject);var  sendBuff:array[1..1024] of byte;  i:integer;  l:integer;  data:string;begin  l:=length(self.memo1.text);  //前13byte为MODBUS TCP头  sendBuff[1]:=0;//事务处理标识。  sendBuff[2]:=0;  sendBuff[3]:=0;//协议标识。  sendBuff[4]:=0;  sendBuff[5]:=0;//后面的字节数。  sendBuff[6]:=13+200;  sendBuff[7]:=255;  sendBuff[8]:=16;//操作,16为写寄存器,4为读寄存器。  sendBuff[9] := 68;//寄存器操作起始地址,对于BL67-PG-EN来说,写操作的起始地址为oX4400~oX47ff,读操作的起始地址为oX4000~oX43ff。  sendBuff[10] := 0;  sendBuff[11] := 0;//寄存器操作数量。  sendBuff[12] := (6+200)div 2;  sendBuff[13] := 6+200;//后边的字节数。  //需要的数据  sendBuff[14] := 3; //操作指令。3为写,祥见“RFID命令.txt”文件。  sendBuff[15] := 1;//通道。  sendBuff[16] := 0; //起始地址。  sendBuff[17] := 0;  sendBuff[18] := 0;//读写数据长度。  sendBuff[19] := 200;    for i:=1 to  l do  begin    sendBuff[i+19]:=ord(self.memo1.text[i]);  end;  for i:=l+19+1 to 200+19 do  begin    sendBuff[i]:=0;  end;  for i:=1 to l do  begin    data:=data+chr(sendBuff[i+19]);  end;ClientSocket1.Socket.SendBuf(sendBuff,1024);self.memo3.Text:=data;  

如何写才能写进去1kb的数据???

[解决办法]
SendBuf(sendBuff,SizeOf(sendBuff));

数据不够1kb吧
[解决办法]
从你的代码看研究下这几个点吧,毕竟对电子标签不熟
sendBuff[9] := 68;//寄存器操作起始地址
Buff[16] := 0; //起始地址。


sendBuff[12] := (6+200)div 2;
sendBuff[13] := 6+200;//后边的字节数。//这里已经指定200字节了
我以前写过加密锁,就是更改起始地址多次写入的

热点排行