plc和pc机间的串行通信

上传人:第*** 文档编号:34615991 上传时间:2018-02-26 格式:DOC 页数:4 大小:35.50KB
返回 下载 相关 举报
plc和pc机间的串行通信_第1页
第1页 / 共4页
plc和pc机间的串行通信_第2页
第2页 / 共4页
plc和pc机间的串行通信_第3页
第3页 / 共4页
plc和pc机间的串行通信_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《plc和pc机间的串行通信》由会员分享,可在线阅读,更多相关《plc和pc机间的串行通信(4页珍藏版)》请在金锄头文库上搜索。

1、关键词:RS-232 串行通信 可编程控制器 自由端口模式 数据缓冲区 HG-2003 型温升测控装置是笔者与我国北京某科学研究联联合开发的一套专门用于高压晶闸管阀温升检测试验的测控装置。考虑到 PLC 及其网络已被公认为现代测控装置开发的几大支柱之一,而且从近几年的统计数字来看,PLC 产品在世界范围内的产量、销量高居各测控器件榜首,因此笔者决定本测控系统的核心器件采用可编程控制器(PLC),其基本功能可通过软件编程实现。PLC 的三大亮点是:(1 )集电控、电传、电仪三电于一体;(2)网络的性能价格比高;(3)可靠性高。这些亮点就使得整个测控设备结构简单、可靠性高,同时也为实现系统控制功能

2、的二次开发奠定了良好的技术基础。本文主要讨论设备中所采用的西门子公司的 S7-200 型 PLC 和 PC 机之间的串行通信问题。1、温升测控系统整体介绍11 HG-2003 测控装置的测控对象及结构先来介绍一下该温升试验测控装置的基本工作流程。10kV 电源进线经过进线框中的高压断路器 CB 和高压隔离开关柜中的隔离开关 G(用于在设备检修或维护时形成一个明显的断点)后,加在 10kV 转换变压器 T1 上。该变压器将三相电转化为单相电。这主要是由于做实验时负载电流很大,如果使用三相电源,容易造成负荷电流的不平衡从而造成试验故障。在转换变压器的输出端(二次侧)连接单相温升试验变压器 T2。该

3、温升变压器的一次侧应加装用于无功功率补偿的电容柜,二次侧则通过有载分接开关直接连接试验品(即高压晶闸管阀)进行温升试验。从基本工作流程不难知道测控装置的测控对象,本装置的具体测控对象如表 1 所示。表 1 测控对象表测控装置的物理结构分为两部分:操作控制台和试区控制箱。其中,试区控制箱即 PLC控制箱被安装在试验区的隔离开关框内。操作控制台即 PC 机人机办是非曲直操作台则安装在控制室内。由于二者之间相距约 40m,所以采用 PC/PPI 电缆传输测控信号时需加装中继器。12 HG-2003 测控装置的基本功能本测控系统的基本功能包括:开关分合控制指示功能;设备和试品的过流、过压、过热报警及保

4、护功能;各种操作连锁功能,如电源开关柜内 10kV 电源断路器和隔离开关柜内的手动隔离开关、控制室门触点、试验大厅门触点间的连锁保护功能等,并设有相关的报警提示画面。这些功能可以避免操作顺序出错。2、S7-200 通信程序的设计与实现21 PC 机与 S7-200 的通信方式西门子 S7-200 PLC 的通信功能较强,有多种通信方式可供用户选择,如:单主站方式、多主站方式以及使用调制解调器的远程通信方式等。在本测控装置中,笔者采用单主站方式。在运行 Windows 或 Windows NT 操作操作的个人计算机(PC 机)上安装STEP 7-Micro/WIN32 编程软件后, PC 机就可

5、作为通信中的主站。它可与一个或多个从站相连,STEP 7-Micro/WIN 32 每次和一个 S7-200 CPU 通信,但可以访问网络上的所有 CPU。该通信方式的硬件配置为 PLC 到 PC 机通信口的电缆连接器,即带 RS-232口的隔离型 PC/PPI 电缆,用五个 DIP 开关设置波特率和其它配置项。它支持的波特率为9.6kbps 或 19,2kbps,支持的协议为 PPI 协议。这里并没有使用 PPI 协议,而是使用PC/PPI 电缆和自由端口通信功能来实现 S7-200 CPU 与 PC 机间的通信。自由端口模式是计算机或其它带有串行通信接口的设备与 S7-200 CPU 之间

6、通信的一种廉价和灵活的方法。它以用户定义的通信协议为基础,通过使用相关的中断指令和专用的通信指令控制S7-200 CPU 通信口的操作模式,实现与多种智能设备的连接。具体地说,所谓自由通信端口模式是指 CPU 的串行通信接口可由用户程序控制的一种通信操作模式,其梯形图程序可以使用接收完成中断、字符接收中断、发送完成中断、发送指令(XMT)和接收指令(RCV )等控制通信过程。在该模式下,通信协议完全由用户程序控制。CPU 处于 STOP 模式时,自由通信端口模式被禁止,CPU 重新建立使用其它协议的通信,例如与编程设备的通信。只有当 CPU 处于 RUN 模式时,才能使用自由通信端口模式。通过

7、将特殊寄存器字节 SM30 或 SM130 的协议选择域(mm)置 1 可以将通信端口设置为自由端口模式,处于该模式时不能与编程设备通信。可以用反映 CPU 模块上的工作方式开关当前位置的特殊存储器位 SM0.7 来控制自由端口模式的进入。当 SM0.7 为 1 时,工作方式开关处于 RUN 位置,可选择自由端口模式;当 SM0.7 为 0 时,工作方式开关处于 TEM 位置,应选择 PC/PPI 协议模式,以便用于编程设备监视或控制 CPU 模块的操作。22 自由端口模式下 PLC 串行通信程序的编程要点计算机与可编程控制器通信时,为了避免通信中的各方争用通信线,一般采用主从工作方式,即计算

8、机为主机,可编程控制器为从机;只有主机才有权主动发送请求报文,从机收到后返回响应报文。下面主要谈一谈编程过程中应注意的几个问题。首先是电缆切换时间的处理。因为使用了 PC/PPI 电缆,所以在 S7-200 CPU 的用户程序中应考虑电缆的切换时间。S7-200 CPU 接收到 RS232 设备的请求报文到它发送响应报文的延迟时间必须大于等于电缆的切换时间。波特率为 9600bps 和 19200bps,电缆的切换时间分别为 2ms 和 1ms。在梯形图程序中可用定时中断实现切换延时。其次就是通信可靠性的处理,校验码的采用是提高通信可靠性最常用的措施之一。用得较多的是异或校验,即将每一帧中的第

9、一个字符(不包括起始字符)到该帧中正文的最后一个字符作异或运算,并将异或的结果(展品或校验码)作为报文的一部分发送到接收端。接收方接收到数据后计算出所接收到的数据的展品或校验码,再与发送方传过来的校验码比较,如果不同,可以判断通信有误。最后需注意的是防止起始字符、结束字符与数据字符的混淆。因为报文的起始字符和结束字符只有 8 位,接收到的报文数据区内出现与起始字符或结束字符相同的数据字符的机率很大,这可能会引起字符混淆。可以在发送前对数据作某种处理,例如选择起始字符和结束字符为某些特殊的值,而将数字字符转化为 BCD 码或 ASCII 码后再发送,这样可以避免出现上述的情况,但是会增加编程的工

10、作量和数据传 送的时间。23 通信程序中关键指令的使用与说明发送指令 XMT(Transmit)用于启动自由端口模式下数据缓冲区(TBL)数据的发送,指令格式如图 1 所示。通过指定的通信端口(PORT),将存储在数据缓冲区(TBL)中的信息发送。使 ENO=0 的错误条件: SM4.3(运行时间),0006(间接寻址),009(在端口 0 同时 XMT/RCV),000B(在端口 1 同时 XMT/RCV)。XMT 指令可以方便地发送 1255 个字符,如果有中断程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,端口 0 会产生中断事件 9,端口 1 会产生中断事件26。可以监视发

11、送完成状态位 SM4.5 和 SM4.6 的变化,而不是用中断进行发送。数据缓冲区中的起始字符和结束字符是可选项,第一个字节的“字符数”是要发送的字节数,它本身并不发送出去。接收指令 RCV(Receive)可以方便地接收一个或多个字符,最多可接收 255 个字符。通过指令的通信端口(PORT),将接收信息存储在数据缓冲区(TBL)中。数据缓冲区中的第一个字节用来累计接收到的字节数,它本身不能接收到,起始字符和结束字符是可选项。如果有中断程序连接到接收结束事件上,在接收完最后一个字符时,端口 0 产生中断事件 23,端口 1 产生中断事件 24。使 ENO=0 的错误条件:SM86.6 和 S

12、M186.6(RCV 参数错误),SM4.3(运行时间),0006(音接寻址),009(在端口 0 同时 XMT/RCV),000B(在端口 1 同时XMT/RCV)。CPU 不是在自由端口模式。可以监视 SM86.6 或 SM186.6 的变化,而不是用中断进行报文接收。 SM86.6 或SM186.6 为非零时, RCV 指令未被激活或接收已经结束。正在接收报文时,它们为 0。当超时或校验错误时,要自动中止报文接收功能。必须为报文接收功能定义一个启动条件和一个结束条件。RCV 指令允许通过参数设定选择报文开始条件和报文结束条件,即设定特殊存储器字节 SM86SM94(用于端口 0)和 SM

13、186SM194(用于端口 1)。另外两个比较重要的指令是获取与设置通信口地址指令。获取通信口地址指令(GET ADDR 指令)用来读取 PORT 指定的 CPU 口的站地址,并将数值放入 ADDR 指定的地址中。设置通信口地址指令(SET ADDR 指令)用来将通信口(PORT)站地址设置为 ADDR 指定的数值。设置的新地址不能永久保存,断电后又上电,通信口地址将恢复为上次的地址值(用系统块下载的地址)。图 2 为使用 RCV 指令和接收完成中断接收数据的通信程序流程图。3、计算机通信程序的设计与实现31 Windows 环境下的 PC 机通信程序 在 Windows 环境下,操作系统通过

14、驱动程序控制各硬件资源,不允许用户像在 DOS环境下那样直接对串口进行底层的操作。为此,Visual Basic 提供了一个串行通信控件:MSComm 控件。程序员只需设置和监视 MSComm 控件的属性和事件,就可以劲易而易举地实现串行通信。32 MSComm 控件的属性MSComm 控件主要属性如下:( 1)Comm Port:设置并返回通信端口号。(2 )Settings:以字符的形式设置并返回波特率、奇偶校验位、数据位和停止位。其中字符n、o 、 e 分别代表无校验、奇校验、偶校验。(3)Port Open:设置并返回通信端口状态。设置为 Ture 时,打开端口;设置为 Flase 时

15、,关闭端口。另外,还有Input、Output、Input Mode、In Buffer Count 等属性,这里不再一一介绍。32 MSComm 控件处理接收信息的方式MSComm 控件提供两种处理方式:( 1)事件驱动方式:RTHreshold 属性非 0 时,收到字符或传输线发生变化时就会产生串口事件 On Comm。通过查询 CommEvent 属性可以捕获并处理这些通信事件。(2)查询方式:通过查询 Iuput Buffer Count(接收缓冲区的字节数)属性值,处理接收到的信息。本装置中采用事件驱动方式。用 Visual Basic 语言设计串行通信程序简单实用,关键是如何形成一个友好的用户界面。编程的细节这里不再详述。随着工业 PC 机的推出,个人计算机在工业现场支行的可靠性问题也得到了解决。因此在各类测控设备中实现 PLC 和 PC 机间的串行通信有着重大的意义。这样一方面有助于将个人计算机开发成简易工作站或者工作终端,实现集中显示、集中报警功能;另一方面也可把个人计算机开发成 PLC 编程终端,通过编程器接口接入 PLC 网络,进行编程、调试及监控,并最终达到 PLC 测控设备结构简单、运行可靠、维护容易、便于二次开发的技术特点。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号