Y
yjhzzgl
Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾,请看:
485通讯指令协议
接口规格:
使用计算机对设备进行控制,计算机为主控制机(主机),设备为从机(分机)。
1、通讯方法:485异步通讯,双绞线总线方式
2、波特率:19200bps
3、控制字方式:1位开始位,8个数据位,一个停止位,无奇偶校验
通讯协议格式:
----------------------------------
|开始标志|分机地址|命令|数据|校验|
----------------------------------
[开始标志]长度1个字节,主机给分机发4个AAH
分机给主机发4个BBH
[分机地址]长度1个字节,00H---FEH
[广播地址]FFH
[参数]
[校验]长度1个字节,是设备地址、命令和参数中所有字节的异或和
--------------------------------------------------------------------
读记录
[功能]从设备读取一条读卡记录
[命令]A2H
[参数]
设备送回:从设备里读取一条记录,共4个字节(卡号)
如果设备此时没有记录可以送给主机,发送77h给主机。
例如:
主机:AA AA AA AA 08(分机地址) A2 aa
分机:BB BB BB BB 00 22 34 55 43(校验)
或者分机:BB BB BB BB 77 77(校验)
注意:卡号是4个字节的16进制数
////////////////////////////////////////////////////////////////////////////////
我这样接受数据:
procedure TForm1.MSComm1Comm(Sender: TObject);
var
vRec: variant;
sss:string;
begin
if mscomm1.CommEvent =2 then
begin
vRec:= MSComm1.Input;
sss:=vRec;
Memo1.Lines.Text:=Memo1.Lines.Text+sss;
end;
可是全都是乱码,是进制转换问题吗?论坛上查过了,都不详细,请高手指点,谢谢!
485通讯指令协议
接口规格:
使用计算机对设备进行控制,计算机为主控制机(主机),设备为从机(分机)。
1、通讯方法:485异步通讯,双绞线总线方式
2、波特率:19200bps
3、控制字方式:1位开始位,8个数据位,一个停止位,无奇偶校验
通讯协议格式:
----------------------------------
|开始标志|分机地址|命令|数据|校验|
----------------------------------
[开始标志]长度1个字节,主机给分机发4个AAH
分机给主机发4个BBH
[分机地址]长度1个字节,00H---FEH
[广播地址]FFH
[参数]
[校验]长度1个字节,是设备地址、命令和参数中所有字节的异或和
--------------------------------------------------------------------
读记录
[功能]从设备读取一条读卡记录
[命令]A2H
[参数]
设备送回:从设备里读取一条记录,共4个字节(卡号)
如果设备此时没有记录可以送给主机,发送77h给主机。
例如:
主机:AA AA AA AA 08(分机地址) A2 aa
分机:BB BB BB BB 00 22 34 55 43(校验)
或者分机:BB BB BB BB 77 77(校验)
注意:卡号是4个字节的16进制数
////////////////////////////////////////////////////////////////////////////////
我这样接受数据:
procedure TForm1.MSComm1Comm(Sender: TObject);
var
vRec: variant;
sss:string;
begin
if mscomm1.CommEvent =2 then
begin
vRec:= MSComm1.Input;
sss:=vRec;
Memo1.Lines.Text:=Memo1.Lines.Text+sss;
end;
可是全都是乱码,是进制转换问题吗?论坛上查过了,都不详细,请高手指点,谢谢!