ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:263.50KB ,
资源ID:8677056      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8677056.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(com串口通信详解.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

com串口通信详解.doc

1、串口通信详解 一、RS-232 RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、

2、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。  9针串口(DB9) 25针串口(DB25) 针号 功能说明 缩写 针号 功能说明 缩写 1 数据载波检测 DCD 8 数据载波检测 DCD 2 接收数据 RXD 3 接收数据 RXD 3 发

3、送数据 TXD 2 发送数据 TXD 4 数据终端准备 DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND 6 数据设备准备好 DSR 6 数据准备好 DSR 7 请求发送 RTS 4 请求发送 RTS 8 清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。

4、图1 收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点

5、对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。 RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 · 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连; · 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)  9针-9针 25针-25针 9针-25针 2 3 3 2 2 2 3 2 2 3 3 3 5 5 7

6、7 5 7 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接。 规定 RS232 RS422 R485 工作方式 单端 差分 差分 节点数 1收、1发 1发10收 1发32收 最大传输电缆长度 50英尺 400英尺 400英尺 最大传输速率 20Kb/S 10Mb/s 10Mb/s 最大驱动输出电压 +/-25V -0.25V~+6V -7V~+12V 驱动器输出信号电平 (负载最小值) 负载 +/-5V~

7、/-15V +/-2.0V +/-1.5V 驱动器输出信号电平 (空载最大值) 空载 +/-25V +/-6V +/-6V 驱动器负载阻抗(Ω) 3K~7K 100 54 摆率(最大值) 30V/μs N/A N/A 接收器输入电压范围 +/-15V -10V~+10V -7V~+12V 接收器输入门限 +/-3V +/-200mV +/-200mV 接收器输入电阻(Ω) 3K~7K 4K(最小) ≥12K 驱动器共模电压    -3V~+3V -1V~+3V 接收器共模电压    -7V~+7V -7V~+12V 表

8、1 二、RS485和RS422 RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保

9、护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。 平衡传输 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图2。 图2 通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线

10、的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV至6V之间。参见图3。 图3 RS-422电气规定 RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。图5是典型的RS-422四线接口。实际上还有一根信号地线,共5根线。图4是其DB9连接器引脚定义。由于接收器采用高输

11、入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。 图4 图5 RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。其平衡双绞线

12、的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。 RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。 RS-422有关电气参数见表1 RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制

13、可实现真正的多点双向通信,参见图6。 而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进, 无论四线还是二线连接方式总线上可多接到32个设备。参见图7。 图6 图7 RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑鳵S-422是4k健;旧峡梢运礡S-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。 RS-485有关电气规

14、定参见表1。 RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s。 RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 RS-422与RS-485的网络安装注意要点 RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。网络拓扑一般采用终

15、端匹配的总线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点: 1.采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。图8所示为实际应用中常见的一些错误连接方式(a,c,e)和正确的连接方式(b,d,f)。a,c,e这三种网络连接尽管不正确,在短距离、低速率仍可能正常工作,但随着通信距离的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路末端反射后与原信号叠加,会造成信号质量下降。 2.应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情况易产生这种不连续性:

16、总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。 总之,应该提供一条单一、连续的信号通道作为总线。 图8 RS-422与RS-485传输线上匹配的一些说明 对RS-422与RS-485总线网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以不用考虑终端匹配。那么在什么情况下不用考虑匹配呢?理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换

17、时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。例如具有限斜率特性的RS-485接口MAX483输出信号的上升或下降时间最小为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWG PVC电缆),那么只要数据速率在250kb/s以内、电缆长度不超过16米,采用MAX483作为RS-485接口时就可以不加终端匹配。 一般终端匹配采用终接电阻方法,前文已有提及,RS-422在总线电缆的远端并接电阻,RS-485则应在总线电缆的开始和末端都需并接终接电阻。终接电阻一般在RS-422网络中取100Ω,在RS-485网络中取120Ω。相当于电缆特性阻抗

18、的电阻,因为大多数双绞线电缆特性阻抗大约在100~120Ω。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。 另外一种比较省电的匹配方式是RC匹配,如图9。利用一只电容C隔断直流成分可以节省大部分功率。但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。 还有一种采用二极管的匹配方法,如图10。这种方案虽未实现真正的“匹配”,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的。节能效果显著。 图9 图10 RS-422与RS-485的接地问题 电子系统接地是很重要的,但常常被忽视。接地处理不当往往会

19、导致电子系统不能稳定工作甚至危及系统安全。RS-422与RS-485传输网络的接地同样也是很重要的,因为接地系统不合理会影响整个网络的稳定性,尤其是在工作环境比较恶劣和传输距离较远的情况下,对于接地的要求更为严格。否则接口损坏率较高。很多情况下,连接RS-422、RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有下面二个原因: 1.共模干扰问题:正如前文已述,RS-422与RS-485接口均采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的

20、电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,如RS-422共模电压范围为-7~+7V,而RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。以图11为例,当发送驱动器A向接收器B发送数据时,发送驱动器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统,存在着地电位差VGPD。那么,接收器输入端的共模电压VCM就会达到VCM=VOS+VGPD。RS-422与RS-485标准均规定VOS≤3V,但VGPD可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号,致使

21、接收器共模输入VCM超出正常范围,并在传输线路上产生干扰电流,轻则影响正常通信,重则损坏通信接口电路。 图11 2.(EMI)问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。 由于上述原因,RS-422、RS-485尽管采用差分平衡传输方式,但对整个RS-422或RS-485网络,必须有一条低阻的信号地。一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压VGPD被短路。这条信号地可以是额外的一条线(非屏蔽双绞线),或者是屏蔽双绞线的屏蔽层。这是最通常的接地方法

22、 值得注意的是,这种做法仅对高阻型共模干扰有效,由于干扰源内阻大,短接后不会形成很大的接地环路电流,对于通信不会有很大影响。当共模干扰源内阻较低时,会在接地线上形成较大的环路电流,影响正常通信。笔者认为,可以采取以下三种措施: (1) 如果干扰源内阻不是非常小,可以在接地线上加限流电阻以限制干扰电流。接地电阻的增加可能会使共模电压升高,但只要控制在适当的范围内就不会影响正常通信。 (2) 采用浮地技术,隔断接地环路。这是较常用也是十分有效的一种方法,当共模干扰内阻很小时上述方法已不能奏效,此时可以考虑将引入干扰的节点(例如处于恶劣的工作环境的现场设备)浮置起来(也就是系统的电路地

23、与机壳或大地隔离),这样就隔断了接地环路,不会形成很大的环路电流。 (3) 采用隔离接口。有些情况下,出于安全或其它方面的考虑,电路地必须与机壳或大地相连,不能悬浮,这时可以采用隔离接口来隔断接地回路,但是仍然应该有一条地线将隔离侧的公共端与其它接口的工作地相连。参见图12。 图12 RS-422与RS-485的网络失效保护 RS-422与RS-485标准都规定了接收器门限为±200mV。这样规定能够提供比较高的噪声抑制能力,如前文所述,当接收器A电平比B电平高+200mV以上时,输出为正逻辑,反之,则输出为负逻辑。但由于第三态的存在,即在主机在发端发完一个信息数据后,将总

24、线置于第三态,即总线空闲时没有任何信号驱动总线,使AB之间的电压在-200~+200mV直至趋于0V,这带来了一个问题:接收器输出状态不确定。如果接收机的输出为0V,网络中从机将把其解释为一个新的启动位,并试图读取后续字节,由于永远不会有停止位,产生一个帧错误结果,不再有设备请求总线,网络陷于瘫痪状态。除上述所述的总线空闲会造成两线电压差低于200mV的情况外,开路或短路时也会出现这种情况。故应采取一定的措施避免接收器处于不确定状态。 图13 通常是在总线上加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差分电压≥-200mV)。如图13。将A上拉到地,B下拉到

25、5V,电阻的典型值是1kΩ,具体数值随电缆的电容变化而变化。 上述方法是比较经典的方法,但它仍然不能解决总线短路时的问题,有些厂家将接收门限移到-200mV/-50mV,可解决这个问题。例如Maxim公司的MAX3080系列RS-485接口,不仅省去了外部偏置电阻,而且解决了总线短路情况下的失效保护问题。 RS-422与RS-485的瞬态保护 前文提到的信号接地措施,只对低频率的共模干扰有保护作用,对于频率很高的瞬态干扰就无能为力了。由于传输线对高频信号而言就是相当于电感,因此对于高频瞬态干扰,接地线实际等同于开路。这样的瞬态干扰虽然持续时间短暂,但可能会有成百上千伏的电压。

26、实际应用环境下还是存在高频瞬态干扰的可能。一般在切换大功率感性负载如电机、变压器、继电器等或闪电过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏RS-422或RS-485通信接口。对于这种瞬态干扰可以采用隔离或旁路的方法加以防护。 1.隔离保护方法。这种方案实际上将瞬态高压转移到隔离接口中的电隔离层上,由于隔离层的高绝缘电阻,不会产生损害性的浪涌电流,起到保护接口的作用。通常采用高频变压器、光耦等元件实现接口的电气隔离,已有器件厂商将所有这些元件集成在一片IC中,使用起来非常简便,如Maxim公司的MAX1480/MAX1490,隔离电压可达2500V。这种方案的优点是可以承受

27、高电压、持续时间较长的瞬态干扰,实现起来也比较容易,缺点是成本较高。 2.旁路保护方法。这种方案利用瞬态抑制元件(如TVS、MOV、气体放电管等)将危害性的瞬态能量旁路到大地,优点是成本较低,缺点是保护能力有限,只能保护一定能量以内的瞬态干扰,持续时间不能很长,而且需要有一条良好的连接大地的通道,实现起来比较困难。实际应用中是将上述两种方案结合起来灵活加以运用,如图14。在这种方法中,隔离接口对大幅度瞬态干扰进行隔离,旁路元件则保护隔离接口不被过高的瞬态电压击穿。 常见的I/O设备及其与PC间的连接方法 1、PC-Based设备 常见的PC-Based设备及其通讯连接方式见

28、表。 常见的PC-Based设备及其通讯连接方式 生产商 产品型号 设备端通讯适配器型号 PC端通讯适配器型号 通讯方式 研华 PC、PCI总线数据采集和控制卡、PC/104模块、CompactPCI工业控制计算机。 RS232/RS422/RS485、以太网 RS232/RS422/RS485、以太网 采集/控制站与操作站合一时,不使用通讯协议;采集/控制站与操作站不合一时,在采集/控制站上运行嵌入式监控组态软件,通过TCP/IP、CAN等协议与操作站通讯 ADAM4000系列远程数据采集控制模块 RS422/RS485 RS422/RS485 ADAM4000

29、通讯协议 ADAM5000系列数据采集控制系统 RS232/RS422/RS485/CAN RS232/RS422/RS485/CAN CAN、Modbus等 艾讯 PC、PCI总线数据采集和控制卡、PC/104模块、CompactPCI、Fama  PLC等工业控制计算机。 RS232/RS422/RS485、以太网 RS232/RS422/RS485、以太网 采集/控制站与操作站合一时,不使用通讯协议;采集/控制站与操作站不合一时,在采集/控制站上运行嵌入式监控组态软件,通过TCP/IP、CAN等协议与操作站通讯。 IDAM7000系列远程数据采集控制模块 RS42

30、2/RS485 RS422/RS485 IDAM7000通讯协议 康泰克 PC、PCI总线数据采集和控制卡。 RS232/RS485、以太网。 RS232/ RS485、以太网。 采集/控制站与操作站合一时,不使用通讯协议;采集/控制站与操作站不合一时,在采集/控制站上运行嵌入式监控组态软件,通过TCP/IP协议与操作站通讯。 Windows CE BOX工业控制计算机。 RS232/RS485、以太网 RS232/ RS485、以太网。 通过TCP/IP协议与操作站通讯。 研祥 PC、PCI总线数据采集和控制卡、PC/104模块、CompactPCI工业控制计算机。

31、 RS232/RS422/RS485、以太网。 RS232/RS422/RS485、以太网。 采集/控制站与操作站合一时,不使用通讯协议;采集/控制站与操作站不合一时,在采集/控制站上运行嵌入式监控组态软件,通过TCP/IP、CAN等协议与操作站通讯。 ADAN4000系列远程数据采集控制模块 RS422/RS485 RS422/RS485 ADAN4000通讯协议 ADAN5000系列数据采集控制系统 RS232/RS422/RS485/CAN以太网。 RS232/RS422/RS485/CAN/以太网。 CAN、Modbus、TCP/IP等。 威达 PC、PCI总

32、线数据采集和控制卡、PC/104模块、CompactPCI工业控制计算机。 RS232/RS422/RS485、以太网。 RS232/RS422/RS485、以太网。 采集/控制站与操作站合一时,不使用通讯协议;采集/控制站与操作站不合一时,在采集/控制站上运行嵌入式监控组态软件,通过TCP/IP、CAN等协议与操作站通讯。 牛顿7000、8000系列数据采集控制系统。 RS232/RS422/RS485/CAN以太网。 RS232/RS422/RS485/CAN/以太网。 牛顿7000通讯协议 2、PLC设备 常见的PLC设备及其通讯连接方式见表。 常见的PLC设备及其通

33、讯连接方式 生产商 产品型号 通讯方式 OMRON CPM1 RS232/RS422 CQM1 RS232/RS422、 COMPOBUS/S、 COMPOBUS/D C1000H/C2000H C200Hа CVM CV CS1 RS232/RS422、 Controller Link、SYSMAC LINK、SYSNET、 Ethernet、CompoBus/s、 CompoBus/D C20H-C60H RS232/RS422 MISTUBISH FX系列 RS232/RS422 A系列 Q系列 RS232/RS422/USB、 P

34、ROFIBUS、Modbus、 MELSECNET10、CC-Link、Ethernet Allen-Bradley ControlLogix PLC5 SLC500 RS232/RS422、 DH+/DH485、ControlNet、Ethernet、DeviceNet 松下 FP0 /FP1 FP3 FP10SH RS232/RS422、 Ethernet、MEWNET、C-NET GE Fanuc LM90-30 LM90-70 RS-232/422、Ethernet、GENIUS BUS、PROFIBUS、WorldFip、InterBus-s Sc

35、hneider nano RS485 Tsx-MICRO RS232/RS422 Tsx-Premium Tsx-Quantum Tsx-Momentum Ethernet、Modbus-Plus、RS232(MODBUS)、WorldFip、InterBus、PROFIBUS Siemens S5 PROFIBUS S7-200 PPI S7-300 S7-400 MPI、PROFIBUS、Ethernet 3、智能指示、控制仪表及控制器 目前国内外的智能仪表厂商有数千家,产品种类繁多,难以归纳,其中数字指示仪、单(多)回路调节器、流量积算仪、智能终端、楼

36、宇自控设备所占比重较大,这里不一一列举。这些仪表与计算机间的通讯方式以RS485居多,但越来越多的产品会增加现场总线的通讯接口,智能控制器、楼宇自控设备使用现场总线的较多(如LonWorks、C-Bus等)。在这方面较有影响的厂商有霍尼韦尔、横河、富士电机、山武、欧陆、慕尔、ABB、H&B、梅特勒-托利多、GEFRAN等。 计算机与PLC的通讯 可编程序控制器(PLC)都有一个编程口。以日本三菱公司生产的PLC为例(包括FX系列和A系列),其编程口为RS-422格式,根据PLC型号不同又分为8针座编程口和25针座编程口。对于后者,可直接将SC—08编程电缆将PLC的编程口和微型计算机的R

37、S—232口连接起来;对于后者,则还需要一根转换电缆将PLC 的8针座编程口和25针编程电缆相连。无论何种情况,一旦将PLC用户程序由微型计算机编程环境传到PLC 用户程序区,其编程口大多就没有被再利用。其实,这是一种浪费。也就是说,可利用此编程口实现微型计算机和PLC 的数据通讯,将PLC的工作状态纳入微型计算机管理之下。 编程口操作命令类型与通讯端口初始化 串行通讯是计算机与其它机器之间进行通讯的一种常用方法,在WINDOWS操作系统中提供了实现各种串行通讯的API函数。通过SC—08编程电缆或FX232AW模块,可将微型计算机的串行通讯口RS—232和PLC 的编程口连接起来,这样微

38、型计算机就可对PLC的RAM区数据进行读、写操作。由PLC本身所具有的特性,可对PLC进行以下四种类型的操作:   (1)位元件或字元件状态读操作(CMD0);   (2)位元件或字元件状态写操作(CMD1);   (3)位元件强制ON操作(CMD7);   (4)位元件强制OFF操作(CMD8)。   另外,在进行上述四类操作以前,首先要对端口进行初始化操作,即设定通讯协议(包括设置通讯波特率、数据位数、数据停止位及奇偶校验)。在WINDOWS的SDK中定义了一个结构DCB,该结构详细地说明了如何对通讯端口进行控制,所以通讯端口的初始化也是围绕着对这个结构的正确设置为中心进行的。用

39、VC++语言实现端口初始化如下:   BOOL CSerial::Open(int nPort) {   //nPort 为微型计算机串行通讯口端口号。nport=1为端口1;nPort=2为端口2。   char szPort\[15\];   DCB dob;   m_hIDComDev=CreateFile(szPort, GENERIC_READ│GENERIC_WRITE,O,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL│FILE_FLAG_OVERLAPPED,NULL);   dcb.DCB1ength=sizeof(DCB);

40、   GetCommState(m_hIDComDev,&dcb);//取得通讯资源当前设置   dcb.BaudRate=9600;//设定波特率为9600   dcb.ByteSize=7;//7数据位   dcb.Parity=2;//偶校验   dcb.StopBits=0;//设定1个停止位   if(SetCommState(m_hIDComDev,&dcb)return(TRUE);   else return(FALSE);//设置端口,若设置成功则返回TRUE,否则返回FALSE }   需要说明的是CSerial是一个用于串行通讯的类,它包含了进行串行通讯的

41、所需的函数。除上述端口初始化成员函数Open外,还包括另两个重要成员函数:一个是endData,把数据从一个缓冲区发送到串行端口。另一个是ReadData,从端口的接收缓冲区中读入数据。   其次,在每进行一次上述四类操作中的一种操作以前,还要进行握手联络。对PLC发请求讯号ENQ(代码为OX05),然后读PLC 的响应讯号。如果读到的响应讯号为ACK(代码为OX06),则表示PLC已准备就绪,等待接收通讯数据。握手联络VC++语言示PLC已准备就绪,等待接收通讯数据。握手联络VC++语言实现为: BOOL CNTJD1g::ReadFromPLC(char *Read_char char

42、 *Read_address,int Read_bytes) {   CSerial Serial;//用于串行通讯的类   char read_BUFFER;   if(Serial.Open(2)//初始化串行口通讯口COM2   { Serial.SendData(&ENQ_request,1);//发送联络讯号    Sleep(1000);//等待1秒钟    Serial.ReadData(&read_BUFFER,1);//读取PLC响应讯号   if(read_BUFFER==ACK)   { 如果PLC响应讯号等于ACK,则进行上述四种操作:}}   Se

43、rial.Close()://操作完毕后,关闭通讯口 } 编程口命令操作   (1)位元件或字元件状态读操作   操作对象元件:PLC内部的X、Y、M、S、T、C、D元件;命令格式: 说明:①为读命令起始标志STX,代码为OX02;    ②为位元件或字元件状态读命令CMDO,命令代码为OX30;    ③为读位元件或字元件的4位起始地址,高位先发,低位后发,且是以ASCII码的形式发送;    ④为一次读取位元件或字元件的个数,最多一次可读取OXff个字节的元件,以ASCII码的形式发送;    ⑤为停止位标志ETX,代码为OX03;    ⑥为2位和校验,和累计为②

44、③、④项代码,取其和最低两位转化成ASCII码,高位先发,低位后发。   在发送完上述命令格式代码后,就可直接读取PLC响应的信息。响应信息格式如下:   VC++语言实现:   BOOL CNTJDlg::ReadFromPLC(char *Read_char char *Read_address, int Read_bytes) {   char senddatasum_CHECK\[2\];char readdatasum_CHECK\[2\]; char total_DATABYTES\[2\];   char readdatasum_check\[2\];int

45、readdata_sum;   int datasum_check=0;  int i;   Serial.SendData(&STX_start,1);/向PLC发送“开始”标志代码   Serial.SendData(&CMDO_read,1);//发送“读”命令代码datasum_check+=CMDO_read;   for(i=0;i<4;i++){Serial.SendData(&Read_address\[i\],1);//发送起始元件地址的ASCII代码datasum_check+=Read_address\[i\];}   Change to ASCII(total

46、 DATABYTES,Read_bytes);//将字节数转化成ASCII代码   for (i=0;i<2;i++){Serial.SendData(&total_DATABYTES\[i\],1);//发送元件字节数的ASCII代码)datasum_check+total_DATABYTES\[i\];}   Serial.SendData(&ETX_end,1);//发送“结束”标志代码senddatasum_CHECK+ETX_end;   Change_to_ASCII(senddatasum_CHECK,senddatasum_CHECK);//将“和”转化成ASCII码

47、  for (i=0;i<2;i++) Serial.SendData(&senddatasum_CHECK\[i\],1);   Sleep(1000);//等待PLC响应   Serial.ReadData(&read_BUFFER,1);   if(read_BUFFER==STX_start){     readdata_sum=0;     for(i=0;i<2*Read_bytes;i++){Serial.ReadData(&Read_char\[i\],1);//读Read_bytes个字节readdata_sum+Read_char\[i\];}     Seri

48、al.ReadData(&read_BUFFER,1);     if(read_BUFFER==ETX_end){Serial.ReadData(readdatasum_CHECK,2);//读入的“和”的低2位ASCII码Readdata_sum+=ETX_end;}    Change_to_ASCII(readdatasum_check,readdata_sum);//将计算得到的“和”转化成ASCII码    if(*readdatasum_CHECK==*readdatasum_check)//“和”校验   { AfxMessageBox(“数据读出成功!”)return

49、 TRUE;}    else { AfxMessageBox(“校验错误”)return FALSE.} }   (2)位元件或字元件状态写操作   操作对象元件:同3(1);命令格式: 说明:①为写命令起始标志STX,代码为OX02;    ②为位元件或字元件状态写命令CMD1,命令代码为OX31;    ③为写位元件或字元件的4位起始地址,高位先发,低位后发,且是以ASCII码的形式发送;    ④为一次写入位元件或字元件的个数,以ASCII码的形式发送;    ⑤为待写到PLC RAM区的数据DATA,以ASCII码形式发送;    ⑥为停止位标志ETX,代码为

50、OX03;    ⑦为2位和校验,和累计为②、③、④项代码,取其和最低两位转化成ASCII码,高位先发,低位后发。   VC++语言实现:   BOOL CNTJDlg::WritePLC(char *data_ADDRESS,char *Write_ASC,int bytesnumber)   {    char total_BYTES\[2\];char senddatasum_CHECK\[2\];    char read_BUFFER;char read_finishBUFFER;    int datasum_check=0; int i=0;    Serial.

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服