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