安全生产
首页资讯供应求购招商招聘展会社区
长期信息合作请联系:QQ66821730
PLC技术首页-->PLC基础plc应用PLC文案资料PLC手册国标规程plc资料下载技术培训人才招聘职业认证产品商情论坛
PLC搜索
我 要 找
标题 内容 作者
PLCRSS订阅PLC技术信息
电工技术资料 您的位置: 机电之家-->plc技术资料栏目首页-> PLC基础 -> PLC通信 --> 开发通信软件的技术与技巧
阅读plc技术相关资料
开发通信软件的技术与技巧
本文作者 不详 摘自 机电之家

龚建伟评论:本文对MODEM编程结合MSComm控件作了较为详细的说明,想了解MODEM编程的读者可以看看,文章后附实例程序。


【提要】随着计算机应用领域的不断扩展,计算机之间的远程通信用得也越来越广泛,计算机间的远程通信所使用的通信软件,在市面上可以买到,但是通用的通信软件虽然能发送和接收文件,在许方情况下这些通信软件并不能满足实际工作的需要。本文就这一技术进行了探讨,介绍了有关的知识和技术,并由实例分步骤说明如何进行通信软件的开发。 

一、前言 
  本文将以VB5.0所带的通信控件MSCOMM进行通信软件的开发,它有约30个属性和事件(可以从联机帮助中找到其使用资料)。本文简述它的主要属性及事件,并归类整理。 
利用串行端口与调制解调器进行连接时,对于用MSCOMM控件编制通信软件来说,只需了解以下五根线的代号及作用。以下五根线的高电平/低电平状态分别对应MScomm控件的相应属性的True/False值。 
  (1)DTR线:PC发往MODEM,表示PC机是否已准备好。 
  (2)RTS线:PC发往MODEM,表示PC机是否允许modem发回数据. 
  (3)DSR线:MODEM发往PC,表示MODEM是否已做好操作准备 
  (4)CTS线:MODEM发往PC,表示MODEM是否允许发送数据 
(5)CD线:MODEM发往PC,表示MOEDM已经与呼叫的远方MODEM处于连结状态 

二、MSCOMM控件的属性 
用1,2,...表示串口COM1,COM2.... 
设置或返回联接MODEM的串口的编号 
Settings 
例用"19200,N,8,1"表示传输速率为19200bps,没有奇偶校验位,8位数据位,1位停止位。 
设置或返回通信参数。 
Handshaking 
0没有握手协议,不考虑流量控制。 
1XON/XOFF,即在数据流中嵌入控制苻来进行流控。 
2RTS/CTS,既由信号线RTS/CTS自动进行流量控制(常用)。 
3两者皆可。 
设置或返回硬件握手协议,指的是PC机MODEM之间为了控制流速而约定的内部协议。 
PortOpen 
True/False可以打开/关闭端口。 
打开或关闭端口。 
OutBufferSize 
传输缓冲区的字节数,如选1024。 
设置或返回传输缓冲区大小。 
OutPut 
Variant型变量。 
向传输缓冲区写数据流。 
传输文本数据时,应将String型数据放入Variant变量,传输二进制数据(即按字节)时,应将Byte型数组数据放入Variant变量 
InBufferSize 
接收缓冲区的字节数,如选1024。 
设置或返回接收缓冲区大小。 
InputMode 
0用Input属性接收文本型数据。 
1用Input属性接收二进制数据。 
设置或返回接收数据的数据类型。 
InBufferCount 
Integer型 
返回接收缓冲区中已传到但还未取走的字符个数。 
Input 
当InputMode属性值为0(文本模式)时,变量中含String型数据。 
当InputMode属性值为1(二进制模式)时,变量中含Byte型数组数据。 
将接收缓冲区中收到的数据读入变量。 
DTREnabled 
RTSEnabled 
DSRHolding 
CTSHolding 
CDHolding 
均取值TRUE/FALSE 
用于读取或控制pc机与modem之间的交互状态。需运用好。例如,应在读取到DSRHolding属性值为TRUE时再向MODEM发出命令。应当在载波检测到以后(CDHolding属性为TRUE)时再向MODEM发送数据。 

三、MSCOMM控件的触发事件 
  MSCOMM控件只使用一个事件OnComm,用属性CommEvent的十七个值来区分不同的触发时机。主要有以下几个: 
  (1)CommEvent=1时:传输缓冲区中的字符个数已少于Sthreshold(可设置的属性值)个。 
  (2)CommEvent=2时:接收缓冲区中收到hreshold(可设置的属性值)个个字符,利用此事件可编写接收数据的过程。 
  (3)CommEvent=3时:CTS线发生变化。 
  (4)CommEvent=4时:DSR线发生变化。 
  (5)CommEvent=5时:CD线发生变化。 
  (6)CommEvent=6时:检测到振铃信号。 
  另外十种情况是通信错误时产生,即错误代码。 

四、通信软件程序实现 
  1、首先是通信参数设置,主要就是可以设置端口号,波特率,数据位,停止位,奇偶校验位及设置硬件握手协议,这些设置较为简单。 
2、向MODEM发出DTR(已准备好)信号,如下例程: 
If MSComm1.PORTOPEN Then 
MSComm1.DTREnable=True 
Else 
MSComm1.DTREnable=False 
EndIf 
3、打开时向MODEM发出一些命令来设置参数,其中S0=n(n>=1)自动应答.n为响铃次数;E0/E1关闭/打开命令字符回应;Q0/Q1modem返回/不返回结果码;M0/M1关闭/打开MODEM扬声器,例程如下: 
If MSComm1.PORTOPEN Then 
Do While not MSComm1.CTSHolding : loop 
Outstring="ATS0=1E1Q0M0"+Chr(13) 
MSComm1.Output=Outstring 
End if 
4、进行拨号设计,需向MODEM发出ATDT命令,如下语句: 
MSComm1.Output="ATDT"+Trim(“电话号码”)+Chr(13) 
5、拨号以后发送数据文件,程序要循环等待并随时判定是否接通。如果MODEM向PC的回应字符串中含有"Connect"或CDHolding属性值变为True(检测出载波),则表示已与远方MODEM连机了,此时可以传输数据。 
程序设计发送及接收程序时,需要以下定义: 
S_FILENAME = "NAME" + Chr(5) + Chr(13) + Chr(10) 
S_FILELEN = "LENTH" + Chr(5) + Chr(13) + Chr(10) 
S_FILESEND = "BEGIN" + Chr(5) + Chr(13) + Chr(10) 

Sub OpenFileToSend() '打开一个欲发送的文件 
HSend = FreeFile 
Open SENDFN For Binary As hSend 'SENDFN中含有由用户选定的要传送的文件名。 
LF&=LOF(hSend) '文件长度为LF& 
'开始发送文件名,文件长度,文件开始等信息字符串。 
Dim Data as Vrait 
Data = S_FILENAME 
MSComm1.Output=Data '发出"FILENAME"文件名字串的提示信息 
Data = SENDFN +Chr(13)+Chr(10) 
MSComm1.Output=Data '发出文件名 
Data = S_FILELEN 
MSComm1.Output=DATA '发出"FILELEN"提示字串 
Data = Trim(Str(LF&))+Chr(13)+Chr(10) 
MSComm1.Output=Data '发出文件大小 
Data = S_FILESTAR 
MSComm1.Output=Data '发出"FILESTART"提示信息,表示下面文件开始。 

Dim Sendarr() as byte '定义字节型数组 

[本文共有 2 页,当前是第 1 页] <<上一页 下一页>>

 开发通信软件的技术与技巧相关资料
  • GPRS无线变频器通信解决方案
  • 三菱CNC如何实现主轴换挡
  • 基于嵌入式网络模块的HTTP数据采集方案
  • 日立PLC在中央空调节能系统中的应用
  • ATMEL AT91SAM9261便携式手持应用解决方案
  • 三旺串口服务器致力于智能小区解决方案
  • 罗升企业推出嵌入式存储—整体解决方案(一)
  • 石油行业数据采集组网解决方案
  • 超远距离的视频监控系统应用解决方案
  • 罗升企业推出嵌入式存储-整体解决方案
  • ⊕这地方投资政策最优
    ⊕上千份机电行业研究报告
    ⊕机电项目招商啦
    ⊕谁把我买了?
    ⊕机电行业展会大全
    ⊕十万企业抢登行业网址大全
    机电之家会议开通
    ⊕每日最新求购信息
    ⊕电工技术资料为了谁?
    ⊕机电设备维修与管理
    机电之家(中国)plc技术资料中心资讯版权声明:
    1、凡注明“机电之家采编”字样的所有作品均系本网原创,版权归机电之家所有,任何媒体摘编或享用本作品,需注明文章来源。违反声明者,本网将追究其相关法律责任。
    2、凡本网注明“来源:XXX网(非本网)”的作品,均转载自其他媒体,目的在于传达更多资讯,本网不承担相关法律责任。

    3、如在资讯、广告等方面想与本网合作,请致电:0571-87774297。Email:donemi@hz.cn

    ·工程项目经理培训
    ·欧姆龙PLC编程维护培训
    ·杭州西门子PLC应用培训
    ·模具加工设计培训
    ·变频器维修培训
    ·安全员认证培训
    ·电工培训


    ·招聘项目管理人员
    ·首席技术执行官
    ·自控工程师
    ·数控编程学徒
    ·总工程师

    最新商业情报
    代理
    [代理] 寻求地区代理
    [代理] 电工产品诚招代理..
    采购
    [采购] 电动车控制器外壳
    [采购] 高品质缓冲器
    论坛最新话题
    ·超级搞笑的安全事故
    ·电工技术资料flash大全
    ·最新的搞笑图片
    ·工控行业应用软件下载
    合作网站:
    | 中国机电网机电之家安全生产网 | 机电论文 | 机电论坛 | 机电设备贸易 | 机电网址大全 | 浙江机电网 | 陕西机电网 | 变频器技术网 |
    中国电工网 | 电工网 |环球会展网机电产品网 | 机电人才网 | 中国工控网 | 五金工具网 | 安全生产网 | 甘肃机电网 | PLC技术网 |
    友情连接:
    | 中国机电网 | 哆来咪网 | 中国工控网 | 行业培训网 | 中国工程机械网 | 机电一体化网 | 行业下载网 | 行业国标网 | 商业情报站 |
    关于我们 | 联系我们 | 广告联系 | 付款方式 | 使用帮助 | PLC技术网 | 会员助手 | 友情链接
    电话:0571-87774297(杭州) 传真:0571-87774298(杭州)点击这里给我发消息66821730(技术) 点击这里给我发消息58733127(审核)
    机电之家 PLC技术网 站所共享的PLC知识,PLC技术,PLC应用,PLC行情分析,PLC学习资料,PLC国标规程,PLC维修知识,
    PLC国家标准,PLC操作规程,PLC岗位职责,PLC管理制度,PLC工作总结,PLC实习报告,PLC考试题库,
    等都是来自会员发表或 网上收集整理。如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。
    企业登陆可自行免费发布资料,本站代发布邮箱为88ctv@163.com
    Copyright 2007 plc.jdzj.com Inc All Rights Reserved.PLC技术网
    chinaplc.net 联合建设
    技术支持:PLC技术网 mailto:88ctv@163.com
    免费发布信息主办:浙江-杭州-PLC技术网网络运营部安全生产