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

wwwhghhao12345 2011-12-08 02:30:13
要求要能读写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;

如何写才能写进去1kb的数据???
...全文
109 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
funxu 2011-12-09
  • 打赏
  • 举报
回复
从你的代码看研究下这几个点吧,毕竟对电子标签不熟
sendBuff[9] := 68;//寄存器操作起始地址
Buff[16] := 0; //起始地址。


sendBuff[12] := (6+200)div 2;
sendBuff[13] := 6+200;//后边的字节数。//这里已经指定200字节了
我以前写过加密锁,就是更改起始地址多次写入的
wwwhghhao12345 2011-12-09
  • 打赏
  • 举报
回复
我想写个循环 如果大于200byte 就分多次读写,但是写的循环好像不起作用还是没写对也不知道! 请问要怎么写呢?
funxu 2011-12-09
  • 打赏
  • 举报
回复
不懂帮顶,不过
sendBuff[16] := 0; //起始地址。
不是可以更改起始地址么?0,255,500.........
多次读取不行么?
wwwhghhao12345 2011-12-09
  • 打赏
  • 举报
回复
byte 最大值只能是255 也就是说现在只能读写255byte的数据。
sendBuff[18] := 0;//读写数据长度。
sendBuff[19] := 200;
上面定义了数据的长度为200byte,只能读写200byte的数据; 我要怎么写才能读写1kb的数据。
wwwhghhao12345 2011-12-09
  • 打赏
  • 举报
回复
sendbuff[]值不能大于255
所以我就定义了200 每次能读写200
我改起始地址写循环 还是写不进去啊 。
kaikai_kk 2011-12-08
  • 打赏
  • 举报
回复
SendBuf(sendBuff,SizeOf(sendBuff));

数据不够1kb吧
wwwhghhao12345 2011-12-08
  • 打赏
  • 举报
回复
救命啊 !

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧