有谁用SPCOMM串口实现仪表的通信的(最好有个例子!重谢!)(100分)

  • 主题发起人 主题发起人 富新
  • 开始时间 开始时间

富新

Unregistered / Unconfirmed
GUEST, unregistred user!
就是用SPCOMM串口实现仪表的通信的,来读取仪表的数据来显示!
(如果分小我还加!)
 
和仪器通讯没有规则,需要根据对象而定。
你这样的问题怎么解答阿,
 
就是想问一下如何发送数据出去,又如何接收到数据啊
也可以比如一个单数显表啊,我怎样读取数显表上的数据呢?
 
1、首先你需要了解仪器的通讯参数。
2、发送命令到仪器。
下面是代码,

Comm1.StartComm;//打开
tstr:=#02+#03+#00+#$F6+#00+#02+#$24+#$0A; // 03 03 00 f6 00 02 25 db
Comm1.WriteCommData(pchar(tstr),8); //读流量计1 ....03 //发送命令
3、使用spcomm事件,接收返回数据。
procedure Tfrmsykz.Comm2ReceiveData(Sender:TObject; Buffer:Pointer;
BufferLength:Word);
var t:pchar;
t1:string;
begin
t:=Buffer;
t1:=t;
if length(trim(t1))=0 then exit;
if Copy(t1,8,1)<>'9' then exit; //如果通讯返回数据出错,则返回.
cd_save.value[sys_info.Cal_Dzt_Xh[11]]:=strtofloat(Copy(t1,8,6))/10; //把读回来的大气压力存入相应的变量。
end;
 
请问 tstr:=#02+#03+#00+#$F6+#00+#02+#$24+#$0A; // 03 03 00 f6 00 02 25 db
是仪表参数的地址吗?
 
我上面的代码,只是我自己的。只是给你简单的说明,
具体的通讯命令,参数,需要你自己根据实际情况来。
 
其实只要你根据通信协议,放上SPCOMM控件,仿照例子编写一下,你就知道如何通信,如何实现的了...(其实挺简单的,如果要做到高效,稳定就要下点功夫了!)
 
tstr是指通讯命令,下位机接收后产生相关动作
spcomm的使用比较简单,楼主摸索下应该就能搞通
 
两回事,一个是获得仪表数据,二是通迅
 
哦,谢谢各位啦
试着做一下
 
需要知道和仪表的通讯协议才行吧
之后就是然照协议发送和接收数据之后处理即可。
 
对了,SPCOMM这个控件,我怎么安装出错,是不是我下载的有问题,有谁有用过的,可以发一个到我的邮箱里吗?

我的邮箱是:tangx10@163.com

在此先谢谢了
 
按照仪表协议,封装解析报文就可以了
然后SPComm怎么发送接手数据就可以了吧
 
如果你的项目很急的话,我们可以考虑合作.QQ:1036121
 
to ayu310
你现在也在做吗?
 
你可以到www.delphibox.com上下载一个。
你得知道仪表的协议才能正常通信啊。
主要就是用:
WriteCommData和Comm1ReceiveData
 
不是的吧 可以用系统自带的超级终端解决!
 
用SPCOMM不难的.要不我写一个例子给你.
 
后退
顶部