1概 述
随着计算机应用的不断普及,计算机远程通信的使用也越来越多。但由于电信事业发展的滞后,通信线路拥挤阻塞的问题日益严重,有些地方上班时间电话线路经常处于占线状态,使得计算机通信十分困难。若想在下班或深夜通信线路空闲时才进行数据通信,通信双方就要留人值班操作,十分不便。为此,采用无人值守的远程数据通信控制器。由于这种系统要经受通信干扰、高温等的影响,其工作条件十分恶劣,加上分机较多,有的又相距较远,所以对整个系统的稳定性、可靠性和抗干扰能力都有较高的要求,特别是对其通道的可靠性、准确性要求更高。
在分布式数据采集与监测系统中,往往需要将离控制中心几公里、几十公里甚至数百公里以外的下位机采集到的在线数据实时地送给上位控制中心。这对于一般的计算机串行通信口来说是无法完成的,必须采取模拟载波传输方式或者采用微波和卫星等无线传输方式,但从投资费用及性能价格比来看,大多数还是采用模拟载波传输方式,也就是说,通信双方各接入一个专用设备——调制解调器(MODEM),它将PLC送来的数字信号调制成模拟信号在电话线中传输,并在接受端将模拟信号还原成数字信号。
2技术现状
本系统是以PLC为核心和可脱机的电话通信的方式实现的。在该系统中,一方面,下位机的数据采集终端必须将采集到的各种在线数据准确、可靠、迅速地送到上位微机控制中心;另一方面上位机的控制命令和调度命令必须准确无误地下发到各下位机,而完成这两方面功能的关键在于数据通信。
一般来说监测设备和控制中心相距较近,可直接通过RS232接口或RS422接口进行数据通信;当它们相距较远时,可以辅设专用的通信信息,采用异步MODEM专线传输方式进行数据通信。如果距离在几千米甚至上万米以上时,只能借助于公用电话网(PSTN),采用异步MODEM拨号方式进行数据通信。
以PLC为核心的计算机通信系统需要考虑的问题主要是硬件配置、通信协议的选取及实现、特定操作系统下通信程序的编制等。
该系统,如图1所示。
图1系统结构图
下位机以特定协议向上位机发送一个信息包,由上位机进行数据处理。
目前计算机技术正朝着高速度、集成化和网络化方向发展,这种高速度和网络化技术的发展往往会造成高速度上位机与外部设备间的速度不匹配问题。
3用程序实现上位PC与下位PLC间的速度匹配
按照正常的软件安装方法安装工作站软件,发现调制解调器不能进行初始化,通信无法正常进行。由于通信软件和传输介质的限制,通信速度只能处在2400bps状态,如果改换其它新型的MODEM,数据传送速度比早期的MODEM没有什么提高。这就造成计算机与外设(MODEM)之间的速度不匹配问题,形成设备与主机间无法进行正常的对话,加之通信软件设计时很难做到尽善尽美,难免使应用程序中存在BUG,使设备与主机之间无法同步。
系统在执行应用程序时,控制权并非完全交给应用程序,将部分时间分配给系统的硬中断IRQ8,以启动时钟中断进行时钟数据的刷新操作。由于系统以每秒钟18.2次的速度驱动硬中断,所以应用程序每执行一秒钟就调用18.2次中断INT08H和INTICH的驱动程序。如果通过接管这两个驱动程序并在其中做些延时处理,就可以控制应用程序的执行速度,当延迟时间设置比较合理时就会使原来速度非常高的主机与外设速度达到同步。因此通过接管该中断驱动程序实现比较合理。如果主机速度特别高,可以通过系统计时器的低级端口操作调用时钟的频率。将每秒系统调用时钟中断18.2次改为每秒调用次数与计算机的时钟频率相同。这样设计利用扩充中断INTICH的方法编制了一个任意调整CPU速度的实用程序。
4远程数据通信的设计与实现
在计算机通信领域中MODEM主要是用以延伸计算机数字信号传输的距离。在上位PC和下位PLC之间要进行正常的数据通信,必须首先建立通信信道。如果PC—PLC之间距离较远时,铺设专用的通信信道是不可能的,因此须借助公用电话网通过电话线路采用自动拨号的方式进行通信,但线路会常常出现异常中断的现象,通信的可靠性较差。而在一般的通信软件中难以切换线路,针对这种远程通信中存在的各种问题,并结合课题研究,成功地开发了一套通用的基于异步MODEM自动拨号方式的远程通信软件模块,其应用程序可方便灵活地调用,如图2所示。
图2通信模块流程图
对于远程数据通信系统来说,由于底层通信模块提供了线路状态的实时监测系统及自动重连的功能,能在线路连通期间实时监测线路状态,一旦发现线路异常中断,即可自动拨号进行重新连线,从而大大地提高了远程通信系统的可靠性与灵活性。
由于应用了底层通信模块(即线路状态监测和线路控制应用程序接口)开发基于异步MODEM的远程数据(包括实时信息和非实时信息)通信软件,很好地完成了该系统中的数据自动通信功能。
5监测系统
SZ—4系统的PLC在监测系统中主要完成信号实时采样、脉冲量累计、预警报信号检测与报警输出等,并通过各种变送器与现场的传感器连接。由上位完成复杂运算、显示各种实时图形和保存大量历史数据和打印汉字报表。上位机监测应用软件的编程选用C语言,同时选择了与C语言程序连接方便的C语言数据库作为系统的实时与历史数据库。
下位机PLC采用梯形图来编制程序,下位PLC软件用来实现数据采集、脉冲计数转换、预警报逻辑判断及声光报警输出、通信数据格式的转换。
数据通信与分离模块完成PLC与微机间数据和命令的双向传递,并将得到的数据按系统要求的格式分离成系统变量。
在硬件配置与安装上,系统交流电源使用双层隔离,输入信号光电隔离,提高信号噪声比,远离强电布线,模拟量信号和脉冲信号采用屏蔽线传送,采用放射性一点接地等措施,有效地消除或减弱了共模干扰和瞬变干扰。
在软件设计与编程上,加上一些抗干扰模块。如采用软件滤波技术,对一些重要模拟量参数进行延时判定,并进一步确认报警;在上下位通信软件设计采用响应码与校验重校措施,大大提高了系统的抗干扰性能。
6通信结构的特点
通信协议要解决的主要矛盾是:
(1)防止本机发送本机接收;
(2)严禁两个以上分机同时发送;
(3)接收不同分机数据的类型识别。
为此,系统做了以下约定:
(1)固定通信用存贮区域;
(2)固定模式周期性传递方式;
(3)严格时序控制;
(4)一机激活各机顺序响应。
由协议约定可知,这种通信结构的特点是:信息传送模式固定,软件管理自成一体,周期性工作,每次都由上位机定期激活。这就不会使系统因某个分机通信故障而陷于瘫痪。为了确保通信工作可靠,传送接收准确稳定,在设计中又采取了下述措施:
(1) 增加一路联络信号,使各分机强行改变通信状态,实现系统硬同步。若不加外围联络信号,只设一根总线,也能实现既定的信息交流工作,这就是利用软件计数法,即“软同步”。
(2) 软件上采取数字滤波的方法,提高接收信息的准确性。这是一般应用系统中普遍采用的一种方法。由于本系统是定期循环传送,所以对于一些重要数据采用“两次比较”和“三次取二”的处理方法。即当本次接收到期的信息与上次相同时,则予以接受;若不同时,等到下次再接收到该数据信息时与前两次比较,取出两个相同的数据确定为正确数据;若3个数据互不相同时,则继续接收并每次都取出最新接收的3个数据进行“三次取二”处理,直到找出正确的数据从而提高了系统接收信息的准确性。
串行通道是全双工的,这意味着可以同时接收和发送。串行通道具有缓冲接收功能,即在前一个已接收的字节从接收寄存器读出之前,开始接收第二个字节,串行通道寄存器的存取都通过专用寄存器SBUF。写入SBUF就是装入发送寄存器;读操作实际上是取接收寄存器的内容。串行通道有4种工作方式。当工作方式确定之后,波特率的选择形式也就确定了。上位机子系统通信程序流程图,如图3示。
图3通信程序
START:启动子程序。其功能是当每个传送周期开始的时候,由调用START来激活通信系统,并使主机发送数据。
A1:串行通道中断服务子程序。全部信息的接收`发送`分类处理及有些状态的改变均由此程序完成。
B1:外部中断服务子程序。其顺序在记录主机发送完数据之后,主机被引发中断时调用。功能为:改变主机发送状态为接收状态,并做好接收从机数据的准备。
7结论
串行中断多机通信的结构是合理的,系统总体方案是可行的。由于通信模块独立,传送模式周期循环,给系统的通用性和可扩充性创造了有利条件。采用PLC为核心的远程自动监测系统具有实时性好`数据获取准确以及通信过程控制方便等特点:同时,采用本系统设计的通信程序可移植性好`维护和扩充方便,对同类系统的设计与实现有一定的启发。