:有串口编程经验的请进,帮我一把!急!(80分)

H

hnsy_wh

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
有一仪表是这样规约的:
仪表通讯采用MODBUS协议RTU模式
仪表通讯的数据格式是:1个起始位,8个数据位,1个停止位,偶校验位.
仪表地址:1-255 设置为001
功能码:03H(召测) 16H(设置)
校验: CRC(16位)
校验多项式为 :X的16次方+X的12次方+X的平方+1
通讯格式:地址码(1字节)---功能码(1字节)---数据域(N字节)----CRC(2字节)
功能说明:
03H是读取仪表寄存器内容
16H是设置仪表参数

请教各位,怎么编写串口通讯啊,也就是怎么发,怎么接收?
很急,分不够可以再加!
 
采用MSCOMM控件
把数据打成包发送
在接收时判断最后两个字节是否是发送的最后的两个字节
是则解包不是重新接收下一包数据。
 
to hthugm 给个例程啊!
 
用MOXA的DLL吧,比较好用,我原来用控件的现在都是用这个东东
比较好用
 
我曾经采用MSCOMM控件编写类似程序(是与单片机通讯,协议稍微简单一点)
设置好MScomm相关参数,你最好先看一下每个上行命令传回的数据量,设置好
“当接收缓冲区中有多少字符时,才开始接收”这个很重要,因为如果每隔几秒
就发送一次召唤数据命令,接收处理不好会出现各种问题。
关于MSCOMM的用法网络上多的是。可以在Google上以“串口通讯”为关键词搜索一下。
其中MSCOMM处理字符是以Variant为单位,你还要在 Varian与char字符之间转换一下。
基本方法可以是:
1。设置好发送命令(包括将char 字符与Variant之间的转换以及校验)
2。发送命令。
3。检测接收区,开始接收(比如先检测前3个字符是否为RTU等,这与具体协议有关,
然后进行校验来确定是否接收或舍弃)
在作串口通讯程序时要注意几点有:
第一:一定要保证硬件线路通畅(包括采用串口接线,比如是RS232c RS422 RS485,其中RS232C还分2、3针是否双绞等)
如果硬件有问题,软件你是死活调不出来的。
(我曾经犯过类似的错误是因为RS485接线出现问题,[因为这是与别的工程配合的部分,没有配合好,结果搞了我一个星期...唉惨哪..])
第二:在调用你的软件之前最好先“标准软件”先测一下,确保硬件线路没有任何问题。)
与硬件打交道很麻烦,(若要编软件,功夫在软件之外)
一定要有耐心!最后祝编程愉快!
 
用api函数:createfile,readfile,writefile,以前有很多这样的例子。
 
还是用CPort吧,比较好用,要是有问题,我也好帮你解答呀~~[:D]
首先根据他提供的格式,设置串口的通讯状态和格式。
然后编写CRC效验的函数,其次是组合发送的内容,and发送。
太难解释了,给个信箱,我给你写。
——————————————————————
顺便问一下,起始位是什么东东,好象没有注意过有这个东西。
另外MODBUS的RTU模式,和普通的模式又有什么区别呢?
不过不要紧,还是可以先写代码的。

 
hnsy_wh@163.com
谢谢!
 
稍等,要到家才能给你写,现在在公司。
 
不然就用COMM32,或者是SPCOMM控件,要的话我提供给你。。
我要源代码可以安装Component
 
通信我已经搞定了,不过通信很不稳定,我用spcomm!
mmscomm不支持线程!
 
hnsy_wh@163.com
谢谢
 
我做过MODBUS电力通讯,不过以前用的是VB+MSCOMM控件
 
我在一个工业控制上的程序,是用MOXA的Dll写的,采用的方式是中断方式,moxa上的
中断方式通讯例子,拿来改一下就可以用,通讯非常稳定,。通讯不稳定有可能是干扰引
起的。这要看具体情况来了。反正我的应该很好,使用环境也非常恶劣。
 
zj_cnc@sina.com.cn
 
to crazycock:
能给我一个例程吗?非常感谢
dafuweng_1@x263.net
 
CPort里自己带有DEMO,可以自己看。要是没有,可以给你发一个。
 
能给我一个例程吗?谢谢!!jayxsjf@163.com
 
帮帮忙,CPORT2.63控件如何能接收十六进制数据,我现在能发十六进制数据,
但接收到的是字符串,我现在需要源码或例程,如果能帮我解决问题,要多少分都可以
EMAIL:E18@163.com
QQ:80215521
---东方龙
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
774
SUNSTONE的Delphi笔记
S
顶部