APP下载

控制软件中设备无关性的设计与实现*

2010-10-23张营建臧珠萍曾培峰

关键词:外设组态命令

张营建,臧珠萍,曾培峰

(东华大学计算机科学与技术学院,上海 201620)

控制软件中设备无关性的设计与实现*

张营建,臧珠萍,曾培峰

(东华大学计算机科学与技术学院,上海 201620)

提出一种设备无关的控制软件设计理念.用文本文件格式保存各种外设的通信协议格式以及端口地址定义,通过工作空间和命令转换器,为计算机控制程序提供统一的通信接口.使用标准XML映射的方法实现物理地址与逻辑地址的匹配.外设的通信协议格式变化或者端口改变,无需修改控制软件,只要修改相应的外设文本文件,进行命令转换和地址映射即可完成数据通信,实现设备无关性.

设备无关性;物理地址;逻辑地址;M ap映射

工控领域的监控系统中,对外设的监控主要通过上位机发送命令、下位机响应命令的方法实现.上位机和外设的监控方式主要有两种:一种是用户以Window s的编程语言编写上位机程序,然后通过串行口发送命令,与外设交换数据实现监控.文献[1-2]给出了松下 PLC与计算机的通信实现;文献[3]研究了富士 PLC在高速数字控制系统中的应用.这两种应用都基于了解设备的通信协议和通信格式.有些设备厂家的通信驱动并不公开,为用户预留一个自由口通信方式,由用户自定义通信协议格式,西门子PLC的一般用户只能采用这种通信方式[4-5].另外一种方式是利用组态软件对系统进行工业组态.目前很多专业的组态软件可以进行系统组态[6-9].文献[10]列举了多种工控组态软件的应用,并进行了对比.常用的组态软件有西门子公司的 WinCC、美国 WonderWare公司的 In Touch;国内的产品主要有北京亚控自动化软件有限公司的组态王、北京昆仑通态自动化软件科技有限公司的MCGS等.文献[11]比较了高级语言和组态软件两种方式的不同.W indows编程方式优点是:投入成本低,并能根据需要随时对程序进行升级,便于程序的二次开发.但是对于初级人员,入门有一定难度,不仅需要了解完整的通信过程,熟悉编程软件,而且需要一定的时间来完成程序的编制与调试.应用组态软件方式的优点是:开发周期短,不需要了解通信过程,只要调用相应的驱动程序即可实现通信.缺点是软件的二次开发受到一定限制,购买专用的组态软件成本比较高.实际生产中,如果对外设的控制速度要求不太高,或者在成本有限的情况下,通常采用W indows的编程方式.但是这种方式,程序的开发和外设的通信格式、协议以及端口密切相关,外设的改变或者外设端口的改变,都会导致程序的再次开发.

本文提出一种设备无关[12-13]的控制软件设计理念.将各种外设的通信协议格式以及端口地址以XML格式保存在映射文件中.上位机对外设进行监控时,读入相应的映射文件,用标准 xml[14-15]来解析映射关系,实现物理地址与逻辑地址的匹配及控制命令格式的转换,完成上位机与外设的数据通信.当外设变更时,只需修改映射文件,无需对上位机程序进行任何修改,从而为计算机控制程序提供了统一的通信接口,实现设备无关性.

1 系统结构

计算机监控系统通过RS 485串口总线接口与不同的设备或控制单元进行数据交换.为了解决各个外设、生产厂商制定的通信协议不同带来的问题,本文提出并构建的与外设驱动无关的监控系统,能够识别具有RS 485接口的多种设备,进行数据交换以及实现控制.本文中系统的结构框图如图1所示.

图1 系统结构框图Fig.1 System construction

图形界面:为用户提供人机交互接口,对系统进行信息的显示和键盘的设定.显示信息包括:系统的设备列表、设备的工作状态、设备的内部参数等.键盘设定可以对系统进行人工干预,修改设备的某些信息,向外设写数据.

系统信息与设备列表监控:用于计算机监控系统进行在线设备管理和在线设备配置,用不同的通信协议按地址顺序进行通信查询.通过查询比较,将建立起通信的设备信息与设备列表信息相比较,显示建立起通信的设备;若有新的设备连接到系统,则系统自动添加新设备到设备列表.

工作空间:开辟了系统的局部内存空间,存储需要对外设内存空间修改的信息,实现与各种外设内存进行数据交换的功能.系统存储下位机的信息,通过工作空间使得外设信息与系统内部信息达到统一,保证数据的完整性.

Map映射:系统要求工控领域的现场设备不能因为设备输出端口的临时更改或者交换,对系统的软件造成影响.因此定义了系统的物理地址与逻辑地址.物理地址定义为外设的实际端口地址;逻辑地址定义为系统内部的内存地址.M ap映射通过改变地址的映射关系实现物理地址与逻辑地址的对应.

设备命令转换:将系统内部的数据格式与外设需要的协议格式进行格式的转换,然后,通过 RS 485发送到外设[16].

系统的各个主要模块在下面进行详细的讨论.

2 工作空间

系统的主要功能是实现人机界面的交互及对外设的控制.从局部性原理来看,CPU访问存储器时,无论是取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中.这个连续的区域就是工作空间.工作空间与外设的内存空间相比,体积虽小,但是足以用来保存在某一时间段所需要的数据.

工作空间的维护主要包含两方面内容:(1)监视外部的变化,当外设的输入数据发生变化时,对应内部的相应空间也要发生同步变化;(2)用户通过操作界面更改数据或者修改参数,内部区域的相应参数变化时,需要外设区域的参数同步变化.

上位机与外设交换数据主要有两种数据格式:整型数据和布尔型数据.整型数据主要是系统发送和接收的命令、对外设设定的参数、现场传感器检测的数据等;布尔型数据主要是一些开关量的变化.不管是整型数据还是布尔型数据,都需要通过串行口进行数据交互.由于对不同的外设传递数据是分时处理的,且数据传递的目的地地址不同,因此需要先将要传递的数据保存在系统的内存中,即存放在工作空间中.本文根据数据格式的不同以及存放地址的不同,在工作空间构建 Integer表和Bool表.Integer表存放整型数据的逻辑地址和当前需要更新的内容;Bool表存放布尔型数据的逻辑地址和当前外设端口开关量相应的状态.

不同生产厂商的外设物理地址(如外设的通用数据存储地址或端口地址)方式不一样.西门子PLC的通用数据存储地址为 V寄存器,例如V 100,输入端口定义为 I寄存器,例如 I 0.0,输出端口定义为Q寄存器,例如Q 0.0;松下 PLC的通用数据存储地址为R寄存器,例如R 100,输入端口定义为X寄存器,例如X 00,输出端口定义为 Y寄存器,例如 Y10;三菱PLC和OM RON PLC都有自己的规范.为了使上位机对不同的物理地址的访问统一起来,与外设无关,本文通过一种中间语言将这些信息统一到工作空间中.XML具有严密的条理性、逻辑性和良好的结构性等特点,是一种良好的中间描述语言.因此系统的工作表 Integer表和Bool表用 XML语言构建.Integer表格式如下所示:,“LogAddress”字段代表逻辑地址(如:逻辑地址1 000),表示系统数据存放的内存地址,“Value”是当前的数据(如:100).Bool表定义采用地址与位地址相结合的方式表示.定义如下:,其中:“LogAddress”字段代表逻辑地址的位信息(如:逻辑地址1 000的第1位),表示当前需要修改的位地址,“Value”是当前的逻辑值(如:1).

如果传递的数据是按照逻辑地址连续存放,外设接收数据也是按照物理地址连续存放,数据传递过程只需要一一对应即可.当工作空间的数据分布与外设数据的分布情况不完全一致时,需要采用地址映射的方法.

3 Map映射

按照一般的程序设计方法,外部现场设备的输出端口出现相互交换,或者端口损坏等情况,上位机程序需要重新编写.为了解决这个问题,提出M ap映射的方案.通过地址映射的方式实现物理地址与逻辑地址的对应,从而保证外设地址改变,而不修改应用程序,使得系统正常运行.

系统初始化时,对系统拥有的不同的外设构造一个M ap映射文件,该文件包含了整型和布尔型数据,给出了逻辑地址与物理地址的对应关系.

M ap表定义格式如下:

Map表中包含了西门子PLC和其他PLC的映射信息,在西门子上面分别定义了两种不同形式(整型和布尔型)的逻辑地址和物理地址的映射关系.整型数据定义的有:逻辑地址1 000,对应西门子的物理地址V 100;布尔型数据定义的有:逻辑地址2 000.0,对应西门子的物理地址I 0.0;逻辑地址3 000.0,对应西门子的物理地址Q 0.0.其他PLC定义方式和西门子的类似.通过该文件使外设的物理地址与逻辑地址对应.

映射的对应关系有两种情况:(1)地址的改变需要进行映射.若整型数据中物理地址与逻辑地址不一致,则需要记录Map映射表中相对应的项;若布尔型数据中物理地址的位地址被修改,也要记录Map映射表中相对应的项.(2)地址不需要映射.若物理地址与逻辑地址相一致,为了节约文件空间,则不需要记录在Map表中.

具体映射过程是:当工作空间的数据反映到外设时,要先根据逻辑地址去Map表中进行物理地址查找.若查找到对应的项,此项即是映射后的物理地址;若找不到对应的项,逻辑地址就是物理地址.当外设中的数据反映到工作空间时,同样根据逻辑地址在Map表中进行物理地址查找,找到对应的项即是映射后的逻辑地址;若未找到,物理地址就是对应的逻辑地址.

从Map表格式来看,每一个设备都有对应的映射块,不同的设备映射块不同,因此M ap映射表容量会很大.另外,每一个工作空间都要进行内部数据输出或者外部数据输入操作,都要确认数据是否要进行地址的转换,如果对整个映射表查询一次,会造成映射查找时速度很慢.为了提高查找速度,在系统中构建一个临时表,其行数与工作空间相同.无论物理地址与逻辑地址是否一致,都在该临时表中进行登记,得到一一对应关系.查找过程中,仅查找该临时表进行对应.为保持数据的一致性,临时表需要随工作空间、Map映射表的更新而更新.

4 设备命令转换

当外设的物理地址确定之后,可以将操作的数据传递到外设,或者将外设的数据读入到内存空间.根据数据流的方向不同,可以有以下两个程序流程.

4.1 发送程序流程

完成发送命令串的组合,并发送给外设.

(1)读入两个文件到内存空间:一个是逻辑地址表文件Logical.xml,另一个是物理地址与逻辑地址映射文件M ap.xml.Logical.xml的格式为:.M ap.xml的格式为:

.定位接收数据的外设物理地址.

(2)生成命令串:Logical.xml文件中的信息表示将上位机的信息发送到下位机,或者读入下位机的数据到内存空间.如果Value为空,则读下位机的信息到上位机的内存空间;如果 Value="Data",则Data数据发送出去.

首先从Logical.xml表中进行查找.在当前行中,以 Log Address为查找的关键字,首先保留Value的值,然后在Map.xml中查找逻辑地址所映射的物理地址存为当前地址信息.若有映射对应,则保留物理地址,若没有找到对应,其物理地址和逻辑地址一致,将逻辑地址存为物理地址.下面分为3种情况:

①若Logical.xml中连续两条命令的Value都是非空(或者都是空),查找Map表,若两条命令对应的物理地址连续,可将两条写命令(或者读命令)组成一条写命令(或者读命令).

②若Logical.xml中连续两条命令的Value都是非空(或者都是空),而Map表中两条命令的物理地址不连续,则分别单独组成两条写命令(或者读命令).

③若Logical.xml中连续两条命令的Value不同,即一个是空,另一个是非空,则分别单独组成两条读命令或者写命令.即:空的组成读命令,非空的组成写命令.

对Logical.xml反复执行①②③操作,直到文件结束.

如果是地址连续的读数据,则组成一条命令串,格式如下:Address1 Address2…;若为地址不连续的读命令,则单独组成一条命令进行处理;如果是地址连续的写数据,则组成命令串,格式如下:StartAddressEndA ddressStartData1 …EndData;同理,不连续的写命令则单独处理.

(3)生成协议命令:系统检测外设,根据外设的传输协议,生成符合协议规定的命令.其主要任务是将上述生成的命令串添加头信息、校验码、命令结束信息等.例如:用松下PLC的通信协议,生成的 PLC写命令格式如下:“%01#WDD+起始地址+结束地址+起始地址的数据+…+结束地址的数据+**CR”.

(4)串口发送数据:将生成的命令通过串口发送出去.

4.2 接收程序流程

(1)命令响应:在外设收到上位机发送的命令后,接收到该命令的设备响应上位机发送的命令请求.

(2)串口返回:外设接收到命令后,响应相应的命令并执行相应的操作,然后将返回的命令发回到上位机.

(3)返回数据处理:根据返回的不同命令,生成不同的.xml文件.

①若上位机发送的是读命令,且读取成功,则生成ReadOk.xml;

②若上位机发送的是写命令,且写入成功,则生成W riteOk.xml;

③若在通信过程中出现错误,则返回ReturnErro r.xml.

5 设备列表监控

设备监控列表用于监控连接到系统的设备信息,其中包括系统初始化,更新设备信息和添加设备信息.系统监控流程图如图2所示.

(1)初始化操作:监控方式是在系统启动时检查设备的连接情况,通过使用系统存储的所有命令对上次外设的端口进行循环扫描.用来检测是否有新的设备连接到系统或者更新了设备.

(2)更新设备信息:通过测试命令监控外设的端口连接情况.如果端口有响应,表示有已知设备连接到系统的该端口上,记录该外设的通信协议信息.

(3)添加新设备:若有新的设备连接到系统,系统通过设备信息监控模块,保留新设备的信息,并且自动添加新设备到设备列表中.

图2 监控流程图Fig.2 Monitoring flowchart

6 结论

在开发传统的工业控制软件时,工业被控对象一旦有变动,就必须修改其控制系统的源程序,导致其开发周期长,而且软件的可维护性较差.本文为解决上述实际工程问题提供了一种解决方法.通过修改相应的XML的转换文件,采用逻辑地址和物理地址映射的通信方法,实现了对不同小型PLC(松下,西门子,富士)的控制.对于其他公司的具有RS 485接口的PLC,可以采用类似的方法进行通信设计.实验证明系统程序具有模块化、结构化的特点,满足设备无关性的要求.当然,系统的响应速度是以后研究的重点,可以通过优化程序等措施加以解决.总体上说,本文的设计方案能够完成较复杂的控制任务,具有良好的网络通信能力,可以满足和实现当前工业自动化领域控制系统开放性和互换性的要求.这种方法对于实现多种类型的外设通信具有一定的参考作用.

[1] 刘正国,刘唯.计算机与松下 FP系列 PLC串行通讯的实现[J].微计算机信息,2006,22(8):166-168.

[2] 孙东,韩绍坤,邢怀飞.PC对 PLC远程控制的软硬件设计[J].自动化与仪表,2005,20(2):51-53.

[3] 大内茂人,章秀珍.MICREX-F系列可编程序控制器在高速数字控制系统中的应用[J].富士时报,1991,12(3):57-61.

[4] 周敏,李凤婷,吴为民.基于VB的 PC机与多台 PLC的通信研究[J].计算机工程,2009,35(4):103-104,107.

[5] 汤光华,吴青.自由口模式下 S7-200PLC与上位机的通信[J].微计算机信息,2008,24(5):62-64.

[6] 易异勋.工控系统组态软件体系结构的研究[J].基础自动化,2000,7(2):62-64.

[7] 王亚民,郝建领.DCS组态软件体系结构及其数据交换标准研究[J].计算机工程,2006,32(1):110-112.

[8] 易江义,周彩霞.工控组态软件的发展与开发设计[J].洛阳工业高等专科学校学报,2003,13(1):33-35.

[9] 刘耀,李超良.组态软件架构的研究与设计[J].微计算机信息,2005,21(8):86-88.

[10] 葛玻,沈文杰,赵旎.工控组态软件的对比及应用[J].计算机测量与控制,2002,10(8):550-552.

[11] 岳建锋.高级语言和组态软件对PC机与PLC通讯程序的比较[J].微计算机信息,2005,21(7):51-53.

[12] 陈姝.组态软件中数据采集模块设备无关性的设计与实现[J].工业控制计算机,2003,16(12):33-35.

[13] 陈建伟.面向对象的设备无关性报表打印技术[J].微型机与应用,1997,16(9):17-19.

[14] 杨建武,陈晓鸥.xml相关标准综述[J].计算机科学,2002,29(2):25-27.

[15] 李丽萍,马文阁,梁勇.XML深入剖析[J].辽宁工程技术大学学报,2002,21(2):207-209.

[16] 张冰,苏燕辰.基于RS485总线技术的微机与智能仪表的双向通信设计[J].中国测试技术,2005,31(1):84-86.

Design and Implementation of Device-Independent Programming for Control Unit

ZHANG Ying-jian,ZANG Zhu-ping,ZENG Pei-feng
(College of Computer Science and Technology,Donghua University,Shanghai201620,China)

A device independent programming method is proposed.Communication protocol definitions and device port addresses are stored in control units as text files.A standard communication interface is established by means of the working space and the command interpreter.The physical and logical addresses for devices in communication are associated by means of XML mapping.Therefore,the changes of peripheral communication protocol and port address have no effect on application software.Moreover,the communication command conversion and data communication are implemented device independence.

device independence;physical address;logical address;mapping

TP 314

A

2009-10-19

张营建(1983—),男,河南洛阳人,硕士,研究方向为嵌入式控制系统.E-mail:zhyingjian@gmail.com

臧珠萍(联系人),女,讲师,E-mail:zpzang@dhu.edu.cn

1671-0444(2010)03-0263-04

猜你喜欢

外设组态命令
只听主人的命令
基于PLC及组态技术的恒温控制系统开发探讨
移防命令下达后
基于PLC和组态的智能电动拧紧系统
PLC组态控制在水箱控制系统的应用
这是人民的命令
铸造行业三维组态软件的应用
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
外设天地行情
外设天地行情