用户登陆 用户注册
您的位置:首页>
技术文章>内容正文
Delphi的MSCOMM实现上位机与PLC间的串行通信(附源程序)
[正文]:随着现代信息技术的发展以及计算机网络的广泛应用,计算机通信技术已经日趋成熟。
作为传统的计算机通信方式的串行通信,由于具有线路简单、应用灵活、可靠性高等一系列优点长期以来获得了广泛的应用。
计算机串行通信在数据财经、数据通信、故障检测、计算机远程监控等方面有广泛的实用价值,特别在windows下的串口通信可以充分利用windows下的软件资源优势,实现多任务条件下对外部的数据传输、信息收集和处理。
在本系统中,我们采用了性能/价格比较高的计算机构成厂级的监控工作站。
在plc与上位计算机之间采用rs-485和rs-232c标准通信接口进行通信。
在两级计算机控制系统中,最不稳定的环节就是上位机。
为了保证系统的稳定性,避免因上位机的故障导致系统控制失灵,所有采集到的信号都反馈到plc当中。
上位机需要通过串行通信取得所需的数据信息,并通过串行通信将必要的控制信息和参数设置信息写入plc的数据存储区。
因此,串行通信作为上位机和下位机联系的唯一方式,在整个系统中具有非常重要的作用。
1.1上位机与plc间的串行通信计算机与计算机或计算机与外部设备之间的数据传输和交换的方式主要有串行通信和并行通信两种方式,其中串行通信指的是数据逐位传输的方式。
由于串行通信方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
1.1.1串行通信串行通信方式又可分为两种:同步串行通信方式和异步串行通信方式。
1.同步串行通信方式:同步串行通信是以数据块(字符块)为信息单位传送,每帧信息可以包含很多字符。
同步通信要求通信双方以相同的速率进行,而且要准证确协调,通常通过共享一个时钟或定时脉冲源保发送方和接收方准确同步。
这种通信方式的效率较高,但是对时钟同步要求非常严格,成本较高。
2.异步串行通信方式:异步串行通信以字符为信息单位传送。
双方需要遵守异步通信协议,以字符为数据单位,发送方传送字符的时间间隔不确定。
每个字符传输都以起始位开始,以停止位结束。
通信双方所指定的字符的数据位数,奇偶校验方法和停止位数必须相同。
其传输效率比同步通信方式低,但是成本较低。
异步通信是在以起始位开始、停止位结束的一个字符内按约定的频率进行同步接收。
各个字符之间允许有间隙,而且两个字符之间的间隔是不固定的。
在同步通信方式中,不仅同一字符中的相邻两位间的时间间隔要相等,而且相邻字符间的时间间隔也要求相等,这也是同步通信和异步通信方式的主要差别所在。
因此,异步串行通信一般用在数据传送时间不能确知,发送数据不连续,数据量较少和数据传输速率较低的场合;而同步串行通信则用在要求快速、连续传输大批量数据的场合。
1.1.2串行通信接口标准在串行通信时,要求通信双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。
在设计通信接口时,一般都采用标准接口以提高其通用性。
本系统中,上、下位机进行通信首先面临的问题就是通信标准的选择问题。
1、rs-232c接口标准rs-232c接口标准(全称eia-rs-232c标准)是在1969年由美国电子工业联合会(eia,electronic industrial associate-recommended standard-232c)与bell公司、调制解调器厂家及计算机终端生产厂家共同开发的用于串行接口的通信协议。
它最初是为远程通信连接数据终端设备dte(data terminal equipment)和数据通信设备dce(data communication equipment)而制定的[46]。
虽然这个标准的制定没有考虑计算机系统的应用要求,但是广泛的用于计算机与终端或外设之间的连接。
rs-232c标准规定了在串行通信时,数据终端设备和数据通信设备之间的接口信号。
其中常用信号的名称、引脚号以及功能如表4-1所示。
表4-1 rs-232c常用信号定义引脚号信号名称简称信号功能说明2发送数据txddte向dce发送串行数据3接收数据rxddte从dce接收串行数据4请求发送rts请求通信设备切换到发送方向5清除发送cts响应dte请求,提示dce开始发送6数据设备就绪dsrdce通信设备就绪7信号地sg整个电路的公共信号地8数据载波检测dcddce收到载波20数据终端就绪dtrdte终端设备就绪22振铃ri通信线路上有振铃rs-232c的电气特性:rs-232c采用的是负逻辑工作,即逻辑“1”用负电压(-3~-15v)表示,逻辑“0”用正电压(+3~+15v)表示。
介于-3v和+3v之间以及低于-15v或高于+15v的电压没有意义。
实际工作时,应保证电平在±(5~15)v之间。
由于rs232c是用正负电压来表示逻辑状态,与以高低电平表示逻辑状态的ttl不同。
为了能够同计算机接口或终端的ttl器件连接,必须进行电平和逻辑关系的转换。
目前使用较为广泛的是集成电路转换器件,如mc1488和mc1489。
rs-232c的机械特性:虽然rs-232标准定义了25个信号,但进行异步通信时实际只用到了9个信号:2个数据信号、6个控制信号和1个信号地线。
因此rs-232的连接器主要有db25和db9两种类型。
现在微型计算机上均采用db9型连接器作为主板上com1和com2两个串行口的连接器,其引脚及信号分配如图4-2所示。
3、rs-485接口标准rs-485标准也是一种平衡传输方式的串行接口标准,它和rs-422a兼容并且扩展了rs-422a的功能。
rs-485的电气特性:逻辑“1”以两线间的电压差为+(2-6)v表示;逻辑“0”以两线间的电压差为-(2-6)v表示。
接口信号电平比rs-232c降低了,就不易损坏接口电路的芯片,且该电平与ttl电平兼容,可方便与ttl电路连接。
数据最高传输速率为10mbps。
rs-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗干扰性好。
rs-485接口的最大传输距离标准值为4000英尺,实际上可达3000米。
rs-485接口在总线上是允许连接多达128个收发器,具有多站能力,用户可以利用它建立起设备网络。
rs-485接口由于具有良好的抗干扰性、传输距离长和多站能力等优点使其成为首选的串行接口。
本系统中,上位机和下位机的通信运用了以上标准中的rs485和rs232c两种通信标准。
计算机具有标准rs232c接口,而plc具有标准rs485接口,两者通过电缆和rs485/rs232c转换模块连接(如图所示4-3)。
1.2通讯参数设置和通讯测试界面在供水自动化监控系统中,信息管理及监控软件作为处理、显示和存储数据的核心,主要负责对各个电动机的转速和各处管道压力的查询、监控以及报警的处理。
运行信息管理及监控软件的计算机与plc之间的通讯主要是通过rs-232c串行接口(pc机一般提供了com1和com2两个串行口)进行通讯,实现系统的监测控制和信息管理功能。
本系统中上位机的信息管理及监控软件运行在windows2000/nt操作系统下,串行通讯程序运用inprise公司推出的快速开发工具delphi 6.0开发。
ppi通信协议是西门子专为s7-200系列plc开发的一个通信协议,物理上采用rs485信号电平,plc默认处于该方式。
使用ppi方式对plc编程及调试监控,其硬件连接只需通过编程(pc/ppi)电缆即可实现。
软件编程采用中文环境、内部系统协议,设计人员只需通过软件设置一下参数,数据如交换不需要考虑,用netr和netw 两条语句即可进行数据的传递。
1.2.1通讯参数设置为了进行串口通信, 实现系统的监测控制和信息管理功能,必须对通讯参数加以设置。
通信设置:串口:com1、com2波特率:300、600、1200...校验方法:n、e、m、o、s数据位数停止位数:setting:缓冲区设置接收缓冲区:字节发送缓冲区:字节数据传送方式文本形式和二进制形式流控制不握手(默认)、xon/xoff方式、rts/cts方式、 xon/xoff and rts/cts方式1.2.2通讯测试界面通信测试界面如图4-5所示。
通讯设置setting属性值 commport属性值 通讯状态 串口状态发送字节数接收字节数数据显示接收数据显示发送数据显示1.3 plc通信程序设计1.3.1 plc网络通信协议[19]本系统采用的plc是德国siemens公司生产的s7-200系列,主模块采用cpu226,扩展模块采用数字量扩展模块em222和模拟量扩展模块em235。
s7-200系列cpu具有强大的通信能力。
主要支持以下几种协议:1.pi(point-to-point)协议,即点到点接口协议。
ppi是一个主/从协议,主站(其它cpu或simatic编程器)给从站发送申请,从站进行响应。
从站不初始化信息,只响应主站的申请或查询。
如果在用户程序中允许ppi主站模式,s7-200 cpu在run模式下可以作为主站,还可以利用网络读(netr)和网络写(netw)指令读写其他cpu,同时也能够作为从站响应来自其它主站的申请。
采用ppi协议的网络中最多只能有32个主站。
该协议主要是用来编程、ppi组网等2.mpi(multi-point)协议,即多点接口协议。
mpi可以是主/主协议或主/从协议,协议如何操作依赖于设备类型(设备是s7-200系列cpu时建立主/从连接)。
mpi总在两个相互通信的设备之间建立连接,其它主站不能干涉两个设备之间已建立的连接。
由于s7-200的连接是非公用的,并且需要cpu中的资源,每个s7-200 cpu只能支持4个连接,每个em277模块支持6个连接。
在使用时,每个s7-200 cpu和em277模块保留两个连接,分别用于连接simatic编程器(或计算机)以及操作面板。
这些保留连接不能被其它类型的主站使用。
3.rofibus协议。
profibus协议设计用于分布式i/o设备(远程i/o)的高速通信。
profibus网络通常有一个主站和几个i/o从站,主站配置成知道所连接的i/o从站的型号和地址。
主站初始化网络并核对网络上的从站设备和配置中的是否匹配。
主站连续的把输出数据写到从站并从它们读取输入数据。
4.户自定义协议(自由口协议)。
自由口协议可以由用户定义通讯协议,通过用户程序控制s7-200通信口的操作模式,将cpu与任意通讯协议公开的设备联网,如上位计算机、打印机、变频器等。
用户程序通过使用接收中断、发送中断、发送指令(xmt)和接收指令(rcv)来控制通信口的操作。
在自由口模式下,通信协议完全由用户程序控制。
用户程序通过设置smb30(0口)允许自由口模式,而且只有在cpu处于run模式时才能允许。
当cpu处于stop模式时,自由口通信停止,通信口转换成正常的ppi协议操作。
可以利用pc/ppi电缆和自由口通信功能把s7-200 cpu连接到许多和rs-232标准兼容的设备。
pc/ppi电缆支持波特率设置,利用pc/ppi电缆盒上的dip开关可以配置所需的波特率。
波特率和开关位置的对应关系如表4-6所示:表4-6 波特率和开关位置对应表波特率38400192009600480024001200600300开关(1=上)000001010011100101110111当数据从rs-232传送到rs-485口时,pc/ppi电缆是发送模式。
当数据从rs-485传送到rs-232口时,pc/ppi电缆是接收模式。
当检测到rs-232的发送线有字符时,电缆立即从接收模式转换到发送模式。
当rs-232发送线处于闲置的时间超过电缆切换时间时,电缆又切换到接收模式。
这个时间与电缆上的dip开关设定的波特率选择有关,如表4-7所示:表4-7 pc/ppi电缆转换时间(发送模式到接收模式)波 特 率38400192009600480024001200600转换时间(ms)0.512471428在使用自由口的系统中使用pc/ppi电缆时,必须在s7-200 cpu的用户程序中包含转换时间。
s7-200 cpu在接收到rs-232设备的申请信息后,s7-200 cpu的发送信息响应必须延迟超过或等于电缆的切换时间。
rs-232设备在接收到rs-232设备的申请信息后,s7-200 cpu的下一次申请信息的发出必须延迟超过或等于电缆的切换时间。
在以上两种情况中,需要通过延迟使pc/ppi电缆有足够的时间从发送模式切换到接收模式,以便于数据从rs-485口传送到rs-232口。
1.3.2 plc通信程序设计plc作为控制系统中的下位机,不主动发送数据而是被动的响应上位机的命令,根据上位机的指令进行数据发送和接收。
plc中的通信程序由主程序、三个子程序和三个中断组成,通信程序的流程如图4-4所示。
1、主程序plc在第一次扫描时执行初始化子程序,对端口及rcv指令进行初始化。
初始化完成后,使端口处于接收状态。
rcv指令将接收到的数据保存到接收缓冲区,同时产生接收完成中断。
plc每接收到一条指令后都会发送一条反馈信息,发送完成后产生发送完成中断。
程序中使用的标志位含义约定如下:
网站首页
培训课程
维修指南
技术文章
家电专栏
供应信息
求购信息
培训资讯
展会信息
电脑专栏
教程下载
资料下载
常用软件
PLC教程
PLC资料
变频伺服
低压电器
维修资料
人机界面
自控仪表
工控机类
文章标题:
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
京ICP备11002135号
报时(2026-04-07 13:19:19)