0
0452
Unregistered / Unconfirmed
GUEST, unregistred user!
我使用SPCOMM控件打算从一台检验设备接收检验结果的数据,但是始终没能成功,以下是我接收数据的代码和有关检验设备的串口资料,请高人指点是我程序写的是否正确,是否要在程序里写响应设备发出传送数据的请求的相关代码,如需要代码该怎么写以及RS-232C串口线的接法,谢谢!
procedure TForm1.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
var
CurCommData,S: string;
i: integer;
begin
SetLength(CurCommData,BufferLength);
Move(Buffer^, PChar(CurCommData)^, BufferLength);
Edt1.Text := CurCommData;
S := '';
for i := 1 to Length(CurCommData)do
S := S + CurCommData+ ' ';
Memo1.Lines.Add(S);
end;
通信规格:
通信方式:半双工通信
通信速率:9600
同步方式:起止同步
代码方式:ASCII
错误控制:无
起 始 位:1
数 据 位:8
停 止 位:1
接 口:RS-232C
响应方式:ACK/NAK
控制信号:RTS/CTS流程控制
开始传送时,7号(RS)、4号(ER)针置于ON、确认8号(CS)、6号(DR)针处于ON状态后,传送文件。
传送步骤:根据上位计算机响应代码处理。
NAK或者没有响应时、试过两次仍不成功时,作为传送错误。
输出ENQ等待三秒无响应时,进行再送处理。
输出传文、等待五秒也无响应时、进行再送处理。
在响应代码ACK以外的情况、进行再送处理。
传送时序:
每完成一个样品分析、自动地传送数据。
在静态重复分析的情况下,只传送平均值。
如果在传送中或等待响应时,即时完成了下一个样品的分析,在前一个样品传送没完成前,下个样品的传送不开始。
procedure TForm1.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
var
CurCommData,S: string;
i: integer;
begin
SetLength(CurCommData,BufferLength);
Move(Buffer^, PChar(CurCommData)^, BufferLength);
Edt1.Text := CurCommData;
S := '';
for i := 1 to Length(CurCommData)do
S := S + CurCommData+ ' ';
Memo1.Lines.Add(S);
end;
通信规格:
通信方式:半双工通信
通信速率:9600
同步方式:起止同步
代码方式:ASCII
错误控制:无
起 始 位:1
数 据 位:8
停 止 位:1
接 口:RS-232C
响应方式:ACK/NAK
控制信号:RTS/CTS流程控制
开始传送时,7号(RS)、4号(ER)针置于ON、确认8号(CS)、6号(DR)针处于ON状态后,传送文件。
传送步骤:根据上位计算机响应代码处理。
NAK或者没有响应时、试过两次仍不成功时,作为传送错误。
输出ENQ等待三秒无响应时,进行再送处理。
输出传文、等待五秒也无响应时、进行再送处理。
在响应代码ACK以外的情况、进行再送处理。
传送时序:
每完成一个样品分析、自动地传送数据。
在静态重复分析的情况下,只传送平均值。
如果在传送中或等待响应时,即时完成了下一个样品的分析,在前一个样品传送没完成前,下个样品的传送不开始。