串口通讯中关于IPC-7520(7000系列的485-232协议转换模块)的问题.(100分)

  • 主题发起人 主题发起人 query1
  • 开始时间 开始时间
Q

query1

Unregistered / Unconfirmed
GUEST, unregistred user!
诸位大家好:
我编写的程序通过计算机串口经由IPC-7520(7000系列的485-232协议转换模块)与温湿度测量设备连接并通讯,以采集数据.
发送与接收的代码已经完成,有时通讯失败.后来发现只有运行一次设备附带的程序,我
所写的程序就可以正常执行,我怀疑是IPC-7520(7000系列的485-232协议转换模块)可能需要
通讯控制的问题,一直没有结果.
请诸位富翁指点迷津.
 
你用串口程序监听一下设备附带的程序运行,看他发送什么命令,然后在你程序中实现就可以了
 
是modbus协议的发送的都是正常的东西.
 
一般转换模块只是中转,不会有什么特殊的,问题是你的温度设备,他的协议你弄通了没?
你可以抛开你的程序,采用通用串口程序,按照协议发送命令,看有没有回应,其实,我刚才说的监听模式是最好的测试方法
 
我现在也在用7000系列的东西,实际上就是串口通讯,可以不用他们的dll。
我正在用的有7012,7017,7022,7024,7050等模块,没有出现你所说的现象。
这个模块里面就是一个单片机,你还是好好看看7520自带的说明书吧。如果
同时连接多个7000模块,所有模块的波特率应该一样,是否校验也要一样
 
肯定通了!只要是机器重新启动就得,我的程序就不通了,只要运行一次附带程序就好了.
并且连接其他设备也好用了,否则其他采集设备也不行.
监听了,没有异常!
 
procedure TForm1.Button2Click(Sender: TObject); //发送
var i,j:integer;
lrc:dword;
outbyte: array of byte; //动态数组 发送用
begin
setlength(outbyte,8);
outbyte[0]:=$01;
outbyte[1]:=$04;
outbyte[2]:=$00;
outbyte[3]:=$00;
outbyte[4]:=$00;
outbyte[5]:=$0D;
outbyte[6]:=$31;
outbyte[7]:=$CF;

i:=low(outbyte);
j:=high(outbyte);

while i<=j do
begin
writefile(h_comm,outbyte,1,lrc,nil); //h_comm 串口句柄
i:=i+1;
end;
end;
 
我也知道7000的东西是透明的!
 
建议你换一台机器试一下!
我也遇到过类似的问题。串口莫名其妙的不通讯只有重启电脑才恢复正常,我换了一台电脑,就不出那种故障了!
 
这个问题也遇到过
这个问题到现在也没彻底解决
估计和上位机软件有点关系
是不是异步方式有问题!!!
 
To Query1:
我是初学者,能告诉我 h_comm(串口句柄如何得到吗?)
谢谢!
 
多人接受答案了。
 
后退
顶部