单片机与组态王软件通讯的解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2. 单片机与组态王软件通讯的解决方案

2.1两种通讯解决方案

单片机与组态王软件通讯的解决方案有两种,其一是直接编写支持单片机的驱动程序,就象组态王支持PLC一样;其二是利用组态王软件和Visual Basic都支持DDE的特点,以VB 为开发平台,写一个数据通讯应用程序,一方面实现与单片机的连接,另一方面实现与组态王的动态数据交换。

2.2两种方案的比较

第一种方案的优点是程序结构比较紧凑,数据通讯效率较高;缺点是必须由对组态王软件内核比较清楚的程序员开发,开

发周期较长。第二种方案可由一般的程序员开发,缺点是数据通讯效率较低。在本项目中,我们采用了第二种方案。

3. 基于DDE方案的实现

3.1 DDE的概念

DDE是WINDOWS平台上的一个完整通信协议,它使应用程序能彼此交换数据和发送指令。DDE过程可以比喻为两人对话,一方向另一方提出问题,然后等待回答。提问的一方称为“客户”,回答的一方称为“服务器”。一个应用程序可以同时是“客户”和“服务器”,当它向其他程序中请求数据是,它充当的是“客户”,若有其他程序向它提供数据,它又成了“服务器”。

3.2通讯程序的数据流向

用VB编写的数据通讯程序作为中间者传递组态王与单片机之间的数据。当组态王需要向单片机发送控制命令时,组态王充当服务器向VB通讯程序提供数据,VB通讯程序再通过串口实现对单片机的远程控制;当组态王需要向单片机采集数据时,组态王充当客户向VB通讯程序请求数据。组态王与单片机通讯的数据流向如图1。

图1 组态王与单片机通讯的数据流向

3.3 代码实现

1.组态王的DDE设置

组态王的DDE对话的内容是通过三个标识名来约定的。

应用程序名(application):进行DDE对话的双方名称

主题(topic):被讨论的数据域

项目(item) :被讨论的特定数据对象

为了建立DDE连接,需要在组态王的数据词典里建立一个DDE变量,并登记三个标识名。组态王运行系统的程序名是“VIEW”,主题规定为“TAGNAME”,项目是在定义DDE变量时定义的项目名称。

2.VB通讯程序中的DDE设置

在VB中DDE的连接是通过控件的属性和方法来实现的。当VB充当服务器时,需要设置LinkTopic 和LinkMode属性;当VB充当客户时,需要设置LinkTopic ,LinkItem和LinkMode 属性。例如,VB通讯程序作为服务器时的设置如下:

Sub Form_Load()

LinkTopic=”form1”

LinkMode=1

End Sub

3.VB与单片机的通讯

在VB中可用Microsoft公司的32位串口通信控件Mscomm32.ocx实现与单片机的通讯。在程序初始化时,设置Rthreshoid属性为1,接收缓冲区接收到数据时触发OnComm事件,从而进行数据的接收和处理。

Sub MSComm1_OnComm()

Select Case mEvent

Case Mscomm EV RECEIVE

Inbuffe= MSComm1.Input

Receivedata=Inbuffe

MSComm1 Receive=False

End Select

。。。。。。。

End Sub

4. 结论

采用上述方案,我们在“农水实验田环境监测系统”项目中,很好地解决了组态王软件与单片机的数据通讯。一年来,系统运行稳定可靠,产生了良好的经济效益.

相关文档
最新文档