基于dde的vb和matlab,基于VB和DDE技术的组态王通信协议转换

组态王是一种通用的工业监控上位机软件,它界面友好、易学易用、即便是不懂编程的工程人员也能在短时时间内开发出界面精美,符合行业标准且高效的上位机监控程序,因此深受工程师们的喜爱,然而组态王软件的上下位机通信协议是固定

的切不可改变,这就给一些使用“自拟定协议”和“非标”产品的用户带来了极大的不便,有的时候迫使用户改变上下位机通信协议或者更换下位机产品。本文提出了一种基于VisualBasic6.0和动态数据交换技术(DDE)的通信协议转换方法,利用组态王和VB都支持WINDOWS平台的DDE技术这个特点,将组态王和下位机产品之间的数据通信用VB进行协议转换,从而达到了变更组态王通信协议的目的。1问题阐述某医疗设备厂利用组态王开发上位机监控软件,用PIC单片机做下位机控制开发,下位机工程人员拟定通信协议的数据格式见表1。对于表2这种自拟定的通信协议,组态王是无法完成的,因为组态王的单片机协议是固定的,且更改困难。其协议如表2所示。对比表1和表2可以看出组态王的通信协议明显不同于该医疗产品项目的通信协议,且下位机协议已经完成不可更改,在这种情况下如想继续使用组态王开发,则必须更改其通信协议,其方法有三种:a.向组态王厂商求助,与其合作,组态王厂商会改写驱动以适应项目要求,其费用很高。b.购买组态王驱动开发包,利用驱动开发包开发,其费用相对便宜,单开发包的使用需要工程师有较好的VC编程基础,核对组态王内部程序结构有一定的认识。c.利用DDE技术使组态王与VB进行数据交换,再用VB重写通信协议。本文主要介绍介绍方法c。2组态王通信协议转换实现方法为实现通信协议转换,顺利完成该课题,可考虑采用WINDOWS平台下的DDE技术使组态王与VB进行数据交换,再利用VB重写通信协议,其结构框图如图1。2.1组态王通过DDE与VB进行数据交换。DDE是由微软提供的WINDOWS平台上一个完整的应用程序间通信协议,它能够使组态王和VB之间进行数据交换。其数据交换方式是由其中一方向另一方发送请求数据并等待应答。发送数据请求的一方暂时作为客户端,响应回答的一方暂时作为服务器端。为了能够顺利实现组态王与VB之间的数据交换,需要对组态王和VB进行设置,而组态王读VB数据和VB度组态王数据的设置稍有不同。对于组态王读VB数据过程,其设置分别如下:a.在组态王中定义一个DDE设备,名称任取,服务程序名用与之交互的VB可执行程序名,话题名与VB控件中的LinkTopic属性一致,再新建I/O变量并连接到该设备下,项目为VB控件名字,这样通过DDE,组态王把VB程序看做是一个外部设备与之通信,而建立DDE设备的方法与建立其他外部设备方法一致。b.在VB中DDE连接是通过控件的属性和方法来实现的。任何需要与组太王通信的控件(通常是文本框、标签、图片框)都要设的LinkTopic、LinkItem、LinkMode三个属性。其中LinkTopic、LinkItem属性是要在组态王中引用的,而LinkMode属性是设置连接方式,通常设为1。对于VB读组态王数据过程,其设置分别如下:c.这里组态王设置比较简单,只需注意被访问的数据必须由IO变量提供,并勾选允许DDE访问即可。d.VB中要访问组态放数据的控件需要设置应用程序名、主题、项目和连接方式四项。组态王的应用程序名默认view、主题默认tagname、项目是VB控件所访问的IO变量,下面以Text空间为例,设置程序如下:Text2.LinkTopic="view|tagname"Text2.LinkItem="mcudde.x2"Text

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pythonjava解释xml_Python解析XML文档

解析XML主要用到pytohn自带的XML库,其次还是lxml库XML结构,先以一个相对简单但功能比较全的XML文档为例dive into markcurrently between addictionstag:diveintomark.org,2001-07-29:/2009-03-27T21:56:07ZMarkhttp://diveintomark.org/Dive into histo…

红旗linux安装oracle,Redflag Linux安装Oracle 10gR2 RAC记事

Redflag Linux安装Oracle 10gR2 RAC记事Kamus遇到过:SQL> startup nomountORA-27102: out of memoryLinux-x86_64 Error: 28: No space LEFT ON device这和内核参数 shmall 有关,修改设置 kernel.shmall 16475728 。后来离开没多久,客户打…

springboot开启debug日志_SpringBoot 如何优雅的打印日志?

一、打印日志注意事项1、使用 Slf4j 注解这个代码相信大家都很熟悉,你是否曾经看到或者自己因 copy 而 没有改变“当前类名”?如果你们项目用到 lombok ,可以在类上使用 Slf4j 注解,省去手动写这行代码。2、不建议使用的输出为什么…

oracle导出表中某天数据命令,Oracle数据库使用命令行导入导出数据表及数据内容(本地、远程)...

一、本机导入导出1、数据库导出命令,导出用户userA下的表结构和数据:exp 用户名/密码服务名 owner用户名 file导出文件指定存储路径 fully2、数据库导入命令,将userA用户下的表结构和数据导入到用户userB下:imp 用户名/密码服务名 fromuser导…

python手机话费_查询话费订单详情示例代码

#!/usr/bin/python# encoding:utf-8import urllib2, json, urllib, hashlib# 3、获取订单详情data {}data["appkey"] "your_appkey_here"data["orderno"] "201605250929585085725"data["outorderno"] "77888855888…

windows 映射文件会释放内存吗_Windows系统共享内存管理

一 进程逻辑空间 物理空间​如上图所示,每个进程都有自己的逻辑空间,这些逻辑空间,会被映射到具体的物理空间中。每个进程的逻辑空间都是彼此隔离,相互独立不受干扰的。但是他们都会被映射到同一个物理空间去,当其所映…

linux 文件的组织,Linux文件组织和目录结构

资料:https://www.shiyanlou.com/courses/running1 Linux目录结构说明可以使用tree来查看目录结构sudo apt-get install tree 安装treetree / 查看根目录的结构将目录定义为四种交互作使用的形态:2 路径. 表示当前目录.. 表示上一级目录 - 表示上一次所在…

python 将列表中的字符串转为数字_python 将列表中的字符串转为数字

本文实例讲述了python中列表元素转为数字的方法。分享给大家供大家参考,具体如下:有一个数字字符的列表:numbers [1, 5, 10, 8]想要把每个元素转换为数字:numbers [1, 5, 10, 8]用一个循环来解决:new_numbers [];fo…

linux perl 安装目录,linux-将Perl模块安装到特定位置

我有几台运行Perl程序以及其他程序和工具的Linux机器.我想使所有机器之间的所有工具保持同步,因此我已经在一台机器(主)和另一台机器之间共享了/usr/local目录.现在,我想在/usr/local /< modules的路径>中使所有Perl模块及其依赖项保持同步.我已经找到了local::lib模块,但…

python 降维lda算法的使用_sklearn LDA降维算法

sklearn LDA降维算法LDA(Linear Discriminant Analysis)线性判断别分析&#xff0c;可以用于降维和分类。其基本思想是类内散度尽可能小&#xff0c;类间散度尽可能大&#xff0c;是一种经典的监督式降维/分类技术。sklearn代码实现#codingutf-8import pandas as pdimport matp…

linux 命令 语法,linux常用命令及语法

mkdir、rmdirmkdir命令用来建立新的目mkdir命令用来建立新的目录&#xff0c;rmdir用来删除已建立的目录。rm这个命令是用来删除文件的。rm命令常用的参数有三个&#xff1a;-i,-r,-f。删除既有文件或目录之前先询问用户&#xff0c;删除一个名字为test的一个文件&#xff1a;r…

jeecg 导出的excel不能使用公式_微软:Excel公式是世界上使用最广泛的编程语言...

喜欢就关注我们吧&#xff01;文|一君微软近日推出了一项 Excel 公式构建的新功能 LAMBDA&#xff0c;正则测试阶段。LAMBDA 允许使用 Excel 自身的公式语言自定义功能&#xff0c;而过去&#xff0c;Excel 中需要通过 JS 等语言编写自定义函数。同时&#xff0c;LAMBDA 还可以…

linux 查找tomcat目录,linux下通过tomcat访问某路径下的文件

背景&#xff1a;linux服务器上有个日志目录&#xff0c;要通过界面访问。之前用Apache实现的&#xff0c;现在安全漏洞检查需要升级Apache&#xff0c;但是安装之路犹如西天取经&#xff0c;各种缺文件&#xff0c;各种报错&#xff0c;一直没搞定。然后决定用tomcat实现该功能…

python中的画布控制_使按钮在画布上工作(tkinter)

你的代码需要认真的重组。在这里有一些东西可以用来添加矩形。你不需要在cd2>中创建一个cd2>的集合&#xff0c;这样你就不需要在cd2>中创建一个的集合。在from tkinter import *import randomroot Tk()class Recta:def __init__(self, height60, width80):self.heig…

voip 音频采集时间_蓝牙音频续航监测系统展会现场演示

|点击【美格信】关注☝大家好&#xff0c;我是美格信公众号主编&#xff1a;小M&#xff0c;今天的2020(秋季)亚洲蓝牙耳机展上&#xff0c;我们美格信现场展示了发布的新品-MAGNUM麦金纳蓝牙音频续航监测系统。不过有很多小伙伴因为时间问题&#xff0c;没机会来现场参观&…

linux 运行scrapy,python 文件 运行 scrapy

写了一个scrapy&#xff0c;程序可以跑&#xff0c;没有任何问题。爬下30个网站的body存入json文件&#xff0c;并且保存为test.json如果test.json存在就保存到一个新建的test1.json新建了一个python文件叫check.py&#xff0c;对比两个文件的hash值&#xff0c;如果有不一样&a…

linux的硬件系统管理,Linux 系统硬件管理的基础知识(四)

以下主要介绍我的***次安装Linux系统遭遇&#xff0c;以及怎么度过这个遭遇的&#xff0c;希望对大家有所帮助。不喜欢的可以略过。以下接《Linux 系统硬件管理的基础知识(三)》。四、关于存储设备的不同的表示方法的应用&#xff1b;1、/dev/hd[a-z] 表示方法的应用1)用于moun…

大整数减法c语言_3.2 C语言运算符和表达式

01基本的算术运算符1、正号运算符2、-负号运算符3、*乘法运算符4、/除法运算符5、%求余运算符6、加法运算符7、-减法运算符读者应该特别注意和-在不同情况下的含义02自增、自减运算符1、i&#xff0c;--i在使用i之前&#xff0c;先是i的值加&#xff08;减&#xff09;12、i&am…

如何查看linux 是否安装软件包,linux 查看软件包是否安装 linux查看软件包

Linux下怎样检查,如何查看某软件包是否已经安装1、rpm包安装的&#xff0c;可以用rpm -qa看到&#xff0c;如果要查找某软件包是否安装&#xff0c;用 rpm -qa | grep “软件或者包的名字”。rpm -qa | grep ruby2、以deb包安装的&#xff0c;可以用dpkg -l能看到。如果是查找指…

python查看数据大小_科多大数据带你看Python可以列为最值得学习的编程语言

原标题&#xff1a;科多大数据带你看Python可以列为最值得学习的编程语言不知道从什么时候开始&#xff0c;这句话开始流行。不过也从侧面反映出 Python 语言的特点&#xff1a;简单、高效。从近期代表技术趋势的业界报告以及编程语言排行榜来看&#xff0c;觉得编程语言这一块…