COM组件技术在现场总线控制系统
发布时间:2008/6/3 0:00:00 访问次数:338
1 系统组成
现场总线控制系统主要由pc机、isa或pci总线智能适配器、智能测控模块、组态软件、hmi软件、com服务器、用户软件等构成。
现场总线系统中所有信息的传递都是双向的,com服务器介于智能适配器和上位机软件之间,负责完成数据的传输。上位机软件相当于客户机端应用软件,它使用com服务器提供的接口来操作适配器,对适配器进行初始化及向特定单元写入和读出数据。
由于在windows保护模式下不能直接访问存储器,所以需要编写vxd驱动程序将物理地址转换成线性地址,然后com就可以象使用dll一样调用vxd的函数,完成对isa或pci总线智能适配器的操作。 从测控模块到上位机软件自下而上的数据传输完成了用户对测控模块的监测;而上层软件通过com将数据送往适配器,再由适配器送往测控模块,实现了用户对测控模块工作参数的设置及工作状态的管理。图1给出了系统软件结构框图。
2 组态软件的功能
现场总线控制系统组态软件是一套基于windows 98和windows 2000平台(或更高版本)、用于快速构造和生成上位机监控系统的组态软件,它提供了从数据采集到数据处理、远程控制、报警处理、报表输出等实际工程问题的完整解决方案。它使用com服务器提供的接口与适配器进行数据交换,是com客户机端的程序。
3 com组件技术
组件是完成一定功能的软件块,可以被其它程序使用,而且容易替换。为了使每个人编写的组件具有可移植性,必须建立一个标准,保证其兼容性和可互换性。com正是这样一种标准,遵循com规则就可以建立能够相互交换数据的组件。
在现场总线控制系统中,com组件服务器负责组态软件等上位机软件与智能适配器之间的数据传输,因为适配器通过can现场总线与测控模块连接,所以对适配器的操作就是对模块的监测与控制。 com服务器提供的接口中有适配器初始化、模块检查、向模块发送数据及读取模块数据等函数。下面着重介绍数据发送接收格式及如何编写这4个有代表性的函数。
3.1 适配器初始化函数
只有适配器初始化成功后,才能进行其它操作。由于在windows保护模式下不能直接访问适配器,com程序需要调用vxd程序将存储器对应的物理地址转换成线性地址指针lpbaseaddress,这样对适配器的操作就转换成对以该指针为首地址的数组的操作。向这个数组的0x3f0、0x3f1和0x3f8单元分别写入上位机节点号以及适配器与模块间的通信波特率和适配器程序规定的命令字0xc6(表示适配器初始化),等待几十ms后,如果适配器接收到上面的数据并做出适当的反应,它会将0x3f8单元清零,这就表示初始化适配器成功;如果该单元不为零,则初始化失败。
3.2 数据传输格式
适配器初始化成功后,就可以同它交换数据了。下面简单说明一下发送数据和接收数据的格式。
适配器初始化得到的线性地址指针lpbaseaddress的1~5单元分别存放上位机节点号、模块节点号、保留字、发送或接收字节长度及模块操作的命令字。lpbaseaddress[6]~lpbaseaddress[256]存放所要发送的数据;从lpbaseaddress[0x106]单元开始存放接收到的数据。lpbaseaddress[0x3f8]存放操作适配器的命令字,适配器根据这个单元内容进行处理,如果是0xc6,则初始化适配器和模块上的can控制器;如果是0xc7,则将数组里的数送给模块上的e2prom,模块收到数据后根据lpbaseaddress[5]的命令字进行相应处理如果是0xb0,则按照接收到的数据配置模块工作状态;如果是0xa5,则将此时的测量值送到适配器上,由com程序读出。
3.3 模块检查函数
1 系统组成
现场总线控制系统主要由pc机、isa或pci总线智能适配器、智能测控模块、组态软件、hmi软件、com服务器、用户软件等构成。
现场总线系统中所有信息的传递都是双向的,com服务器介于智能适配器和上位机软件之间,负责完成数据的传输。上位机软件相当于客户机端应用软件,它使用com服务器提供的接口来操作适配器,对适配器进行初始化及向特定单元写入和读出数据。
由于在windows保护模式下不能直接访问存储器,所以需要编写vxd驱动程序将物理地址转换成线性地址,然后com就可以象使用dll一样调用vxd的函数,完成对isa或pci总线智能适配器的操作。 从测控模块到上位机软件自下而上的数据传输完成了用户对测控模块的监测;而上层软件通过com将数据送往适配器,再由适配器送往测控模块,实现了用户对测控模块工作参数的设置及工作状态的管理。图1给出了系统软件结构框图。
2 组态软件的功能
现场总线控制系统组态软件是一套基于windows 98和windows 2000平台(或更高版本)、用于快速构造和生成上位机监控系统的组态软件,它提供了从数据采集到数据处理、远程控制、报警处理、报表输出等实际工程问题的完整解决方案。它使用com服务器提供的接口与适配器进行数据交换,是com客户机端的程序。
3 com组件技术
组件是完成一定功能的软件块,可以被其它程序使用,而且容易替换。为了使每个人编写的组件具有可移植性,必须建立一个标准,保证其兼容性和可互换性。com正是这样一种标准,遵循com规则就可以建立能够相互交换数据的组件。
在现场总线控制系统中,com组件服务器负责组态软件等上位机软件与智能适配器之间的数据传输,因为适配器通过can现场总线与测控模块连接,所以对适配器的操作就是对模块的监测与控制。 com服务器提供的接口中有适配器初始化、模块检查、向模块发送数据及读取模块数据等函数。下面着重介绍数据发送接收格式及如何编写这4个有代表性的函数。
3.1 适配器初始化函数
只有适配器初始化成功后,才能进行其它操作。由于在windows保护模式下不能直接访问适配器,com程序需要调用vxd程序将存储器对应的物理地址转换成线性地址指针lpbaseaddress,这样对适配器的操作就转换成对以该指针为首地址的数组的操作。向这个数组的0x3f0、0x3f1和0x3f8单元分别写入上位机节点号以及适配器与模块间的通信波特率和适配器程序规定的命令字0xc6(表示适配器初始化),等待几十ms后,如果适配器接收到上面的数据并做出适当的反应,它会将0x3f8单元清零,这就表示初始化适配器成功;如果该单元不为零,则初始化失败。
3.2 数据传输格式
适配器初始化成功后,就可以同它交换数据了。下面简单说明一下发送数据和接收数据的格式。
适配器初始化得到的线性地址指针lpbaseaddress的1~5单元分别存放上位机节点号、模块节点号、保留字、发送或接收字节长度及模块操作的命令字。lpbaseaddress[6]~lpbaseaddress[256]存放所要发送的数据;从lpbaseaddress[0x106]单元开始存放接收到的数据。lpbaseaddress[0x3f8]存放操作适配器的命令字,适配器根据这个单元内容进行处理,如果是0xc6,则初始化适配器和模块上的can控制器;如果是0xc7,则将数组里的数送给模块上的e2prom,模块收到数据后根据lpbaseaddress[5]的命令字进行相应处理如果是0xb0,则按照接收到的数据配置模块工作状态;如果是0xa5,则将此时的测量值送到适配器上,由com程序读出。
3.3 模块检查函数