DELPHI写程序与有RS232串口的仪器通信

作者&投稿:董金 (若有异议请与网页底部的电邮联系)
DELPHI写RS232串口的资料,有大虾给我吗?~

告诉你一个最简单的办法。
1.在命令行输入regsvr32 mscomm32.ocx注册MSComm控件。
2.在Delphi中选择菜单Components->Install Component, 然后选择Import Active X Control。然后查找Microsoft Comm Control 6.0,确定好以后会生成一个MSCommLib_TLB.pas. 你直接把这个文件添加到你的工程就可以用了。

3.如果你想更方便,可以在刚才的向导中直接安装MSComm控件。然后在Delphi的控件栏的ActiveX一栏中出现TMSComm,你可以像普通Delphi控件一样使用。不过这种方式需要设计期许可,调试时有可能提示错误。不过运行时并不影响。

控件的几个基本属性:CommPort , Settings,
发送数据MSComm.Output = data
接收数据data = MSComm.Input

更多信息你可以在网上查找MSComm控件,资料非常多。

c或vb中有mscomm控件很好用,我常用,以下是我用delphi写的
with mscomm1 do begin

commport:=1; //端口号
settings:=9600,n,8,1; //端口设置
InputMode:=0; //设置或返回Input属性取回的数据的类型 0:文本 1:二进制
RThreshold:=1; //每次接收到字符即产生OnComm事件
SThreshold:=0; //传输缓冲区允许最小字符数
InBufferCount:=0; //清空接收缓冲区内容
InputLen:=0; //为0时 Input一次读取整个缓冲区内容
DTREnable:=true; //数据终端准备好
RTSEnable:=true; //发送请求
end;

mscomm1.Output:=edit1.text;//发送

str:=mscomm1.input; //接收

你需要知道以下内容:
1. 如何开启仪器的RS232通讯。可能是通过仪器上的按钮或者触摸屏,或者默认自动开启。
2.开启RS232通讯之后仪器的通讯设置,包括波特率,数据位,停止位和奇偶校验位,根据这些信息设置Delphi上RS232通讯的参数,例如9600,n,8,1
3.仪器连接在电脑上的RS232端口,通常是COM1.但是有些仪器可能有特殊的驱动,或者通过USB模拟的端口,要通过设备管理器来查看具体是COM几。
4.与仪器通讯的具体命令格式。例如Topcon的色度测试仪开始测试的命令是“ASFS + 回车换行”。那么你就通过Delphi程序发送相应的命令,例如通过TMSComm控件可以这样写:
MSComm.Output = "ASFS" + sLineBreak;

希望上述解答对你有帮助。

RS232通信 就是电脑与电脑或者设备通过串口通信.原理和网络通信基本一致,而网卡通信基本上也就是多了一个TCP/IP协议而已.
我记得最早的电脑在网卡没有出来之前就是通过串口通信的.
如果需要知道内部命令的话.有可能是与某个外部设备通信.如果你是要开发什么驱动程序的话.外部设备应该是有一本什么API手册之类的东西的.至少你要知道哪些命令是什么.而Delphi的串口通信可以参考:
http://wenku.baidu.com/view/902f20661ed9ad51f01df21f.html

传送数据、内部命令 应该是一回事!
接收方不理会接收的就是数据,对接收的数据进行分析,然后采取一些行动,那么这些数据就是命令!

推荐看书
Delphi串口通信工程开发实例导航

还有,百度文库 里有很多资源的

不论是什么语言与RS232也就是串口通信实质上传输到最后都是二进制的命令,用0和1组成的数字控制各个地址和端口实现通信,你可以参看以下RS232的传输命令,这些应该是固定的,这个我没有具体实现过,所以不能帮你太多!


DELPHI基础教程:Delphi开发数据库应用程序概述(一)[3]
Visual Query Builder 以可视化的方式建立SQL语句对数据库表和表中的记录进行操作 ━━━ SQL links使得Delphi数据库应用程序利用SQL语言访问驻留在远程服务器上的数据 这些服务器包括ORACLE Sybase Microsoft SQL Server Informix InterBase 当安装SQL Link驱动程序之后 SQL语句便可以直接操作服务器上的数据...

DELPHI基础教程:异常处理与程序调试(一)[4]
程序的具体解释见 ( )节 在异常保护的情况下 当异常发生时 系统会自动弹出一个消息框用于显示异常的消息 退出当前模块后异常类自动清除 返回目录 DELPHI基础教程 编辑推荐 Java程序设计培训视频教程 J EE高级框架实战培训视频教程 Visual C++音频\/视频技术开发与实战 Oracle索引技术 ORACLE G数据库开发...

Delphi插件创建、调试与使用应用程序扩展
我们的插件外壳程序与普通应用程序之间的唯一不同就在于工程源文件中出现在uses子句中的Sharemem单元和加载插件文件的代码 任何在自身与子DLL之间传递字符串参数的应用? 都需要Sharemem单元 它是DelphiMM dll(Delphi提供该文件)的接口 要测试这个外壳 需要将DelphiMM dll文件从Delphi\\Bin目录复制到path环境...

DELPHI基础教程:异常处理与程序调试(三)[1]
Pass Count编辑框用于设置通过次数条件 即只有当程序运行在该断点处通过设定次数时程序运行才在该断点处中止 这往往用于对循环体内语句的调试 有一点应引起注意的是 当Condition和Pass Count同时设置时 Pass Count是指满足条件的通过次数 lishixinzhi\/Article\/program\/Delphi\/201311\/25184 ...

DELPHI基础教程:SQL编程(一)[2]
在TQuery部件中编写简单的SQL查询命令 在这一节里我们将学习如何使用TQuery部件编写简单的SQL查询命令 并在Delphi 应用程序中实现SQL查询 例如 如果我们想查询出表Customer DB中客户的编号和公司名称 我们按下列步骤来实现 ①在应用窗体中放置一个TQuery部件 一个TDataSource部件一个TDataGrid部件 并将它们...

DELPHI基础教程:异常处理与程序调试(一)[3]
EWriteError WriteBuffer方法不能写特定数目的字节 EClassNotFound 窗口上的部件被从窗口的类型定义中删除 ━━━ 打印异常类 打印异常类EPrinter当打印发生错误时引发 它在printers库单元中定义 例如你的应用程序试图向一个不存在的打印机打印或由于某种原因打印工作无法送到打印机时 就会产生一个打印异常...

怎么用delphi 7写程序在Word中生成表格。
最后,想说的是一个在操作Word 2000时很有用的帮助文件,VBAWRD9.CHM,里面详细介绍了Word 2000中使用的VBA,里面介绍了很多有用的对象、属性和方法,还有一些VB代码作为示例,很容易可以想到对应的Delphi代码。这个文件在Office 2000的安装盘里面可以找到,具体路径忘记了)希望采纳,谢谢!

写Delphi 程序 输入一个整数n,计算1~n之间的平方和,立方和,偶数和
先写三个递归函数 \/\/平方和 function TForm1.squareSum(i:integer):integer;begin if i=1 then result:=1 else result:=i*i+squareSum(i-1);end;\/\/立方和 function TForm1.cubeSum(i:integer):integer;begin if i=1 then result:=1 else result:=i*i*i+cubeSum(i-1);end;\/\/偶数和...

最近用delphi写了个串口程序,与51单片机进行通信,但是不能收发数据...
一般先用调试助手调试成功后再写程序。用Docklight比较不错,功能全。串口不通讯,一般为:1. 串口参数是否正确。2. 有无CTS, DTR信号使用,如果有,需要在串口参数里使能之。3. 从51向上位机发送,看底层的串口是否配置OK。

怎样用delphi写一个程序来读取从串口读取来的数据,并显示出来。_百度知 ...
@Str[1])^, bufferlength); edit.Text := trim(Str);\/\/ 这里显示到你要的edit.text sendmessage(edt_measure.handle, wm_keydown, vk_return, 0);end;最后在formclose 里面写上 Comm1.StopComm; \/\/comm1结束 控件在system这里面找跟手电筒一样的那个就是 代码你可以复制,便宜你了。

盐湖区18532323248: DELPHI写RS232串口的资料,有大虾给我吗? -
成脉肛泰: 告诉你一个最简单的办法.1.在命令行输入regsvr32 mscomm32.ocx注册MSComm控件.2.在Delphi中选择菜单Components->Install Component, 然后选择Import Active X Control.然后查找Microsoft Comm Control 6.0,确定好以后会生成一个...

盐湖区18532323248: RS232串口通信的程序怎么写啊?? -
成脉肛泰: c或vb中有mscomm控件很好用,我常用,以下是我用delphi写的 with mscomm1 do begin commport:=1; //端口号 settings:=9600,n,8,1; //端口设置 InputMode:=0; //设置或返回Input属性取回的数据的类型 0:文本 1:二进制 RThreshold:=1; ...

盐湖区18532323248: 在Delphi中,如何和串口连接起来 -
成脉肛泰: Delphi是一种具有功能强大、简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选择 Delphi作为开发工具编制各种应用程序.但是,美中不足之处是 Delphi没有...

盐湖区18532323248: 如何用DELPHI开发串口通信程序 -
成脉肛泰: 最近在做一个项目,要求使用Java对磅房的小磅数据进行读取,这就要求使用Java与串口进行通信.串口的Java代码已经开发完毕,但又不能总在生产现场调试程序,所以如何在自己的笔记本电脑上模拟串口数据就成了当务之急.托Google的...

盐湖区18532323248: delphi 请教在delphi下读取 COM串口(RS232)的方法.
成脉肛泰: 有,mscomm,spcomm,好像www.vclxx.org上应该有.否则你可以嵌入汇编或者用api.

盐湖区18532323248: delphi 请小新,版主等高手来看看,关于RS232口如何做?
成脉肛泰: procedure TForm1.Button1Click(Sender: TObject);var s:string;begin s:='wo men de zhong guo'; comm321.StartComm; comm321.WriteCommData(@s,length(s)); flag1;end;procedure TForm1.Comm321SendDataEmpty(Sender: TObject);beginif ...

盐湖区18532323248: 求DELPHI编写串口通讯程序的简单例子 用MSComm控件的 要详细的刚学delphi的就能看懂的那种
成脉肛泰: 这里MSComm控件的属性Rthreshold设置为0,采用查询的方法读取串口数据. Function readFromPLC(ReadChar:Array of char;ReadAddress:Array of Byte;ReadBytes:Integer):Booleam; Var ReadDataSum:integer; DataSumCheck:integer; tmpStr...

盐湖区18532323248: 请问 DELPHI串口通讯编程 的基本思路是什么 -
成脉肛泰: 用Delphi开发串口通信软件一般有两种方法:一是利用Windows的通信API函数,另一种是采用Microsoft的MSComm控件.利用 API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更强大,应用面更广泛,更适合于...

盐湖区18532323248: 用DELPHI怎么样连接实验仪器读取仪器数据 -
成脉肛泰: .首先那个仪器必须是数字的.也就是有单片机之类处理数字量的,然后你需要一个接口电路和接口芯片能把存在仪器RAM中的数据发个电脑,通常是RS232之类的串口或USB.然后用程序收到数据计算或显示出来.不过这种程序我们通常用VB来遍,不知道DELPHI怎么样.当然这是双向的过程,你需要为单片机(通常是汇编或C)遍个程序送数据 用VB遍个程序取数据和运算.光用DELPHI是不可能实现的.

盐湖区18532323248: DELPHI7.0如何判断串口接收到的数据
成脉肛泰: cnpack 有最新版本的spcomm,去官网下,TCnRS232 ,是cnpack 更新过的.然后在控件 ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);是用来接收串口返回来的值,至于具体的值是什么进制的,就得看你的串口机器了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网