关于工控组态软件中设备驱动程序的思考
在工控组态软件的开发过程中,如何将大量不同的外部设备接入到系统中,是一个非常重要也是非常麻烦的事情;在系统发布后,此项工作基本上就成了软件维护工作的同义词。
将外部设备接入到系统的难度在于:
1、 部设备厂家众多,种类繁杂,数据交换方式多种多样,处理方法各不相同。
2、 外部设备必须与系统主程序分开,不能够每增加一个外部设备就得重新编译整个系统。
3、 外部设备接入系统的方法和接口必须向用户公开,但又不能公开整个系统。
4、 外部设备接入系统的方法必须简单,必须支持多种编程语言。
归纳起来,外部设备与系统的数据交换方式有如下几种:
1、 过RS232、RS485、RS422、MODEM等串行通讯设备进行通讯(如GE PLC)。
2、 通过PCI、ISA等方式(如研华的812PG模拟量采集卡)。
3、 现场总线网络(如Lonworks网络)。
4、 以太网络。
5、 USB接口。
6、 DDE方式。
7、 OPC方式。
8、 窗口消息方式(如某些电力系统的五防接口)。
9、 等等。
现在流行的解决办法有如下几种:
1、 一台数据处理前置机,前置机与系统主机之机通过系统内定标准的方式,方式公开,在前置机实现不同外部数据的标准化。
2、 通过硬件的规约转换器实现(但仅用在诸如串行设备和现场总线等方面)。
3、 为每一种外部设备编制通讯管理程序,将外部数据标准化并通过标准的网络通讯规约传入系统。
4、 以C语言格式提供标准的DLL访问方式,在DLL中将外部数据标准化。
5、 以COM方式编程,提供标准的访问接口。
6、 提供OPC接口。
本人在主持开发电力工控组态软件的过程中,选用的是第3种解决办法,即通过为每一种外部设备编制通讯管理程序,将外部数据标准化并通过标准的网络通讯规约传入系统。当时选用此方法的原因是:
1、 单机与网络环境下的编程一致性。
2、 编程简单,给用户提供基于Winsocket的标准规约,以及编程例子,用户只需按照规约要求向系统传送数据即可。
3、 程序实现的语言无关,只要提供Winsocket编程即可。
系统推出至今,效果良好,但在系统维护的过程中,也发现一些问题:
1、 每一种外部设备的管理程序都是一个单独的执行程序,当外挂的外部设备种类比较多时,系统的任务栏比较杂乱。
2、 在用户不熟悉系统时,会关闭某些外部设备管理程序,会误运行外部设备管理程序。
4、 外部接口通讯管理程序的实现不够规范,用户的发挥余地太大,反而无所适从。
5、 外部接口通讯管理程序的编程工作量相对较大,而且必须将相当部分的精力放在界面的编制上。
由于种种原因,本人在软件的升级开发中,决定放弃这种方法,转而使用基于COM的编程方式,采用类似插件的方法来实现外部设备的接入,初步设想如下:
1、 从理论上分析,采用OPC的方法也许最符合工控组态软件的发展方向。但是,工控组态软件的开发重点是为不同行业提供通用软件平台,并给用户更多的二次开发能力。本人主持开发的软件不完全是一个组态软件,它只是吸取了组态软件的思想,也决定解决组态软件的许多不足。因为本软件的应用领域是电力系统、水力系统,这两个行业的软件有许多可以归纳的特征。不必象组态软件那样一切从零开始。而OPC也只是组态软件的产生物,许多复杂的数据结构用它处理不太方便(不是不能处理)。
2、 COM是现在软件的发展方向,DCOM和COM可以无缝地结合,使得软件不需修改即可在单机或网络环境下使用。采取统一接口的方式也为用户提供了固定、简单的编程模式。并可实现用户可选择的编程语言无关性。
3、 在系统中对外部设备的定义如下:
计算机一[本地]
外部设备种类一
外部设备一
外部设备二
外部设备三
外部设备种类二
外部设备一
外部设备二
外部设备三
外部设备种类三
外部设备一
外部设备二
外部设备三
计算机二
外部设备种类一
外部设备一
外部设备二
外部设备三
计算机三
……
提供一个针对每一种外部设备的标准访问接口(是每一种,也就是说每一种外部设备有多个外部设备),定义如下:
属性Opened: 外部设备是否已打开
函数Open: 启动外部设备的处理,该函数启动一个循环处理接收和发送的线程
函数Close: 停止外部设备的处理
函数WriteData: 向外部设备写入数据,在数据中包括了写入的地址(因为同一种外设有多个),参数是Variant数组。
事件OnReadData: 当外部设备有数据时产生,并由主程序接收该数据,参数是Variant数组。采用事件而不是函数的原因是保证实时性。
函数SetPara: 设置针对每一种外设的特殊参数设置,而通用设置在主程序中完成。
函数SetDeviceNum: 设置每一种外设的数量。
函数SetDevicePara: 设置针对每一个外设和特殊参数设置,而通用设置在主程序中完成。
4、 主系统处理流程如下:
外设编程时:
为每一种外设编制程序,都实现上述的接口,外部设备程序以Active动态库(DLL)提供。
配置系统时:
从许多已编制的外设程序中选择所需的,配置参数(可能要调用SetPara、SetDeviceNum、SetDevcePara等函数),并形成外设信息文件(不是注册表,因为所有信息可能要复制到另外的计算机上重复使用)。
系统启动时:
从信息文件中读出需要打开的的外部设备动态库,调用Open函数。
系统退出时:
将每个已打开的外设通过Close关闭。
系统运行时:
当接收到系统需要向外设发送数据的消息时,查找对应的外设模块,调用WriteData。当接收到外设OnReadData消息时,处理外设数据。
本人正在为此作前期准备工作,也尝试了一些实验,取得了一些经验,发现了一些问题,希望与各位交流:
1、 在只知道某DLL的程序名时(没有独立的类库文件),如何在运行状态下(不是编译时)判断它是否是支持接口的动态库,是否支持本接口(名为IdeviceAccess)?
2、 在只知道某DLL的程序名时,如何在运行状态下动态地建立它的对象接口,并访问它?
3、 您对此问题有什么高见(不一定是这两个技术细节问题)?
什么是组态软件,组态软件有哪些
组态软件是指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。
组态软件有:
1、InTouch
Wonderware的InTouch软件是最早进入我国的组态软件。在80年代末、90年代初,基于Windows3.1的InTouch软件曾让我们耳目一新,并且InTouch提供了丰富的图库。
但是,早期的InTouch软件采用DDE方式与驱动程序通信,性能较差,最新的InTouch7.0版已经完全基于32位的Windows平台,并且提供了OPC支持。
2、iFix
Intellution公司以Fix组态软件起家,1995年被爱默生收购,现在是爱默生集团的全资子公司,Fix6.x软件提供工控人员熟悉的概念和操作界面,并提供完备的驱动程序(需单独购买)。
Intellution将自己最新的产品系列命名为iFiX,在iFiX中,Intellution提供了强大的组态功能,但新版本与以往的6.x版本并不完全兼容。原有的Script语言改为VBA(Visual Basic For Application),并且在内部集成了微软的VBA开发环境。
3、Citech
CiT公司的Citech也是较早进入中国市场的产品。Citech具有简洁的操作方式,但其操作方式更多的是面向程序员,而不是工控用户。
Citech提供了类似C语言的脚本语言进行二次开发,但与iFix不同的是,Citech的脚本语言并非是面向对象的,而是类似于C语言,这无疑为用户进行二次开发增加了难度。
扩展资料:
组态软件通常有以下几方面的功能:
1、强大的界面显示组态功能。目前,工控组态软件大都运行于Windows环境下,充分利用Windows的图形功能完善界面美观的特点,可视化的m风格界面、丰富的工具栏,操作人员可以直接进人开发状态,节省时间。
2、良好的开放性。社会化的大生产,使得系统构成的全部软硬件不可能出自一家公司的产品,“异构”是当今控制系统的主要特点之一。开放性是指组态软件能与多种通信协议互联,支持多种硬件设备。开放性是衡量一个组态软件好坏的重要指标。
3、丰富的功能模块。提供丰富的控制功能库,满足用户的测控要求和现场要求。利用各种功能模块,完成实时监控 产生功能报表 显示历史曲线、实时曲线、提醒报警等功能,使系统具有良好的人机界面,易于操作。
4、强大的数据库。配有实时数据库,可存储各种数据,如模拟量、离散量、字符型等,实现与外部设备的数据交换。
5、可编程的命令语言。有可编程的命令语言,使用户可根据自己的需要编写程序,增强图形界面
6、周密的系统安全防范,对不同的操作者,赋予不同的操作权限,保证整个系统的安全可靠运行。
7、仿真功能.捉供强大的仿真功能使系统并行设计,从而缩短开发周期。
参考资料来源:百度百科--组态软件
我们在学组态软件,不太明白组态软件与工厂设备怎样连接,有没有人给指点一下下啊
PLC 仪表 等与现场设备连接,上位机通过各种通讯协议与PLC,仪表灯连接。
简单例如:一个温度传感器接到PLC模拟量模块,然后通过程序处理 ,上位机与PLC通讯,组态画面中组态显示。
在用PLC做设备的联锁控制用组态软件控制是什么意思?
我理解的是设备的控制要通过plc程序进行互锁、也就是底层的互锁。然后通过组态软件对plc进行控制、从而控制设备!梯形图语句表和功能块语言都是编写plc程序的,和组态软件没有关系!从使用角度当然他们都是平级的,都需要编译后plc才能识别。
我是要用PLC做一个工厂某个车间的电气设备的联锁控制,有人建议我用组态软件控制,是不是就像工厂里都有一个控制室,里面的电脑一直控制的plc的各种动作?但是plc里面不都已经有梯形图语言、助记符语言和SFC顺序功能图语言写进程序过了吗?
主要控制程序还是在plc里面!上位机也就是人机界面、是指做出了现场工艺流程画面加控制的元件,比如电机旁边画上启动停止按钮、连上plc内部采集处里过的电压电流转速值等。这样操作人员就可以直观的监控了。组态软件也就是做一些数据点与plc内部变量对应,这样可以读plc的检测数据,写plc数据也就达到控制的目的了。
组态软件有什么用途
组态软件有设备用的,如触摸屏等,但更多的是针对控制系统的,如DCS、PLC等,用于控制系统的硬件结构、人机界面及控制方案的组态工作,需要和硬件设备对应,有通用组态软件,通过开发驱动接口和一些控制系统相连,也有控制系统厂家自己开发的专用组态软件。浙大中控的AdvanTrol-Pro V2.50+SP06 是针对其JX-300和ECS-100这2套DCS系统的上位机软件,是专用软件,在组态软件网上当然不会有很多人提到。如果要下载,可以到中国工控网上找找看,那里有不少人分享中控的软件。
组态软件,设备通讯协议有几种?分别是什么?谢谢
设备的通讯协议有很多,不同厂家也有区别,组态软件里支持的设备比较全的有西门子的wincc,国产的力控和组态王还可以。
专业组态软件对普通设备而言,还有存在的意义吗
触摸屏适合在工业现场使用,但受存储空间的影响,不能存储大量数据,组态软件配合工控机,可以实现更多的功能,如SQL数据库。
专业组态软件本身具有自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。
力控组态软件怎么和支持modbus协议的设备通信
如果这个设备是个常规设备,比施耐德PLC,或者智能仪表、亚当模块,那么在力控组态软件中会有这个设备的驱动程序,硬件组态的时候直接选择这个设备即可。如下图所示:
如果这个设备并非集成驱动的这些设备,但支持标准modbus协议,力控组态软件设备组态中有标准modbus协议驱动可选。
如果这个设备非标准设备,力控可以根据这个设备支持的协议自己开发驱动程序,在力控安装文件夹内有一个SDK文件夹,这个文件夹内提供了开发工具和详细说明以及实例。这个开发稍微有一点难度,熟悉C++开发环境做这个驱动没有问题。Fiossdk文件夹里的Manual文件夹有说明文件。
转载请注明出处51数据库 » 组态软件设备 组态软件的设备驱动是怎么实现的