单片机与组态王的通信实例
- 格式:doc
- 大小:494.00 KB
- 文档页数:12
单片机与组态王的通信实例随着工业自动化的发展,越来越多的设备开始采用单片机进行控制。
而组态王作为一种通用的组态软件,可以方便地对单片机的控制过程进行监控和操作。
本文将介绍一个单片机与组态王通信的实例,以帮助读者了解二者的基本通信原理和实现方法。
一、单片机与组态王的通信方式单片机与组态王之间的通信一般采用串口通信方式。
串口通信是一种常见的通信方式,它通过串口数据线将单片机与计算机连接起来,实现数据传输。
在组态王中,可以通过设置串口参数来与单片机进行通信。
二、单片机通信协议在单片机与组态王通信的过程中,需要约定一些通信协议来实现数据的传输和控制。
通信协议一般包括数据格式、波特率、校验方式等。
根据不同的单片机和组态王版本,通信协议可能会有所不同,需要根据实际情况进行调整。
三、组态王通信控件的使用在组态王中,可以使用串口通信控件来实现单片机与组态王之间的通信。
控件提供了许多函数和属性,可以方便地进行串口通信。
例如,可以使用控件的Open函数打开串口,使用Read函数和Write函数进行数据的读取和写入。
四、实例:单片机控制LED灯亮灭下面是一个简单的单片机与组态王通信实例:通过单片机控制LED灯的亮灭。
该实例中使用的单片机型号为AT89C51,组态王版本为6.53。
1、硬件连接将AT89C51单片机的P1.0引脚连接到LED灯上,并将单片机的RXD 和TXD引脚分别连接到计算机的串口上。
2、编写程序在AT89C51单片机上编写程序,用于控制LED灯的亮灭。
程序如下:MOV P1.0, #1 //将P1.0引脚电平设为高电平,LED灯亮SJMP $ //无限循环,保持电平不变3、组态王组态设计在组态王中创建一个新项目,并添加一个设备,选择与AT89C51单片机进行通信的串口设备。
然后创建一个画面,添加一个按钮和指示灯,用于控制LED灯的亮灭。
4、编写组态王脚本程序在组态王中编写脚本来实现与单片机的通信。
脚本如下:Dim ledState As Integer //定义LED状态变量,初始值为0 Function OnClick() As Integer //按钮单击事件处理函数If ledState = 0 Then //如果LED状态为灭,则发送高电平信号,使LED亮起CommandManager.WriteTag("TagName", "1") //写入高电平信号ledState = 1 //修改LED状态为亮Else //如果LED状态为亮,则发送低电平信号,使LED熄灭CommandManager.WriteTag("TagName", "0") //写入低电平信号ledState = 0 //修改LED状态为灭End IfEnd Function5、调试与运行将程序编译并下载到AT89C51单片机中,然后运行组态王程序。
组态王与单片机多机串口通信的设计1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。
现在组态软件繁多,比如KingVieW(组态王>、MCGS、W inCC等。
KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。
由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。
而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。
2 组态王与单片机的串口通讯方法目前,组态王与单片机的通信多是通过动态数据交换(DDE>或通过自己开发通讯驱动程序完成。
DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。
但不可靠和非实时。
而自己开发通讯驱动程序会带来设计困难,增加系统开发周期,可行性不高。
组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。
3 PC机与单片机的硬件接口电路图1为上位PC机与下位单片机80C51的连接电路。
PC机与单片机本身都自带串行通讯接口,但由于在分布式系统中PC机与各单片机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。
RS-485采用差分式传输信号,最大传输距离为1 219 m.最大传输速率为10 Mb/s.对同时出现的两条信号线A、B的干扰有较强的抑制能力。
当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。
RS-485采用二线与四线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约120 Ω>。
由于80C51系列单片机STC89C52串行接口的,TTL电气特性与RS-485电气特性不相符,STC89C52不能与RS-485直接连接,需要电气转换。
单片机与组态王的通信组态王(kingView)内置了通用单片机通信模块,这样,我们自己开发的单片机仪表就可以挂接在KingView上了。
因为这样,所以对这个东西有了些兴趣,做了些研究。
(1)研究环境组态王6.53,免费下载,当然有使用限制,不过用于研究是没有问题的。
下载地址:Keil软件,Porteus,这些就不多说了。
Virtual Serial Ports Driver XP 5.1 虚拟串口软件,用此软件可以生成一对相互联接的虚拟串口,这样,初期的研究工作就在电脑上完成了,省得用硬件电路板了。
(2)资料KingView提供了一份简单的说明材料,就在下载后的解压缩文件包中。
具体的位置是:Value Pack\技术资料\常用协议\单片机ASCII码通讯协议(3)电路搭建注意单片机的TXD与虚拟串口的TXD,单片机的RXD与虚拟串口的RXD是连在一起的,不要交叉哦,我在这上面可吃了不少的苦头。
这个虚拟串口元件的设置如下图所示:说明:这里选COM2,是因为我事先用Vspd生成了一对虚拟串口,com2和com4,至于其他参数则应该选得和kingview中的一致,这个到下面再说。
什么,这个元件不知哪里找?这里啦(4)VSPD的使用现如今的电脑很少有两个串口的了,人呢也是越来越懒了,虽然手边的电路板是现成的,写片子是容易的,但是仍然还是嫌麻烦的,所以就发动狗狗搜一搜,找到了这个VSPD,当然它是很容易用的在first后面选一个串口名,然后在Second后面再选一个串口名,然后点一下Add Pair 就行啦。
怎么选都可以,就算是选com1也是可以的,虽然com1是真实存在的物理串口,但是这个VSPD照样把它给虚拟了。
这里我选的是com2和com4,大家可以看到在左侧的窗口中出现了这样一对互联的串口了,也就是说,我从串口2发数据,然后串口4就能收到。
同样,我从串口4发数据,串口2就能收到。
(5)组态王置根据自己屏幕选择演示项目中的一个找到设备->DDE,双击“新建...”选择:智能模块(上面的图中看不到)->单片机->通用单片机ASCII->串口起个名字,然后选择串口号,我们选择com4这一步选择地址,需要为自己的单片机设备确定一个地址,这有点麻烦。
基于51单片机的智能仪表与组态王的通讯圈子类别:嵌入式系统 (未知) 2009-8-10 23:01:00[我要评论] [加入收藏] [加入圈子]1、引言随着工业自动化进程的不断加快,现场仪器、仪表、设备正不断向数字化、智能化和网络化方向推进。
单片机以其强大的现场数据处理能力,低廉的价格,紧凑的系统结构、高度的灵活性,微小的功耗等一系列优良特性成为构建智能化现场仪器仪表、设备的重要手段,现已广泛应用于工业测量和控制系统中。
组态王Kingview工控组态软件以其工作性能稳定可靠、人机界面友善、硬件配置方便以及编程简单易用同时其驱动程序较为丰富,如支持DDE、板卡、OPC服务器、PLC、智能仪表、智能模块等;支持ActiveX控件、配方管理、数据库访问、网络功能、冗余功能。
其扩展性强,配有加密锁,支持工程加密;可方便与管理计算机或控制计算机联网通信等优良特性,提供了对工业控制现场大量数据进行采集、监控、处理的解决方案。
在各种工业控制领域中得到了大量使用[1-2]。
将单片机和组态王优良的特性结合起来,使它们实现“强强联合”,成为改造传统工业,提升企业技术竞争力的重要趋势。
目前许多测控系统是由通用机或工控机和底层单片机控制装置组成,通用机或工控机通过组态软件控制现场仪器设备,单片机采集数据和现场状态通过串行口传送到通用机或工控机,由组态软件对采集到的现场数据进行分析、存储或显示,并将命令和控制通过串行口传到单片机以监控现场设备的运转。
可靠地实现它们之间的通讯是实现各种测控任务必须解决的首要问题。
对于一些重要名家厂商的板卡和模块,一般组态王可直接提供为数据采集和控制所需的底层硬件设备的驱动程序。
但对于绝大多数一般用户自行设计开发的采集、控制装置则没有驱动程序提供。
因此实现它们“强强联合”,必须解决它们之间之间的通信问题。
迄今为止,人们对单片机与组态王的通信问题进行了广泛的研究[1-2]。
目前,单片机与组态王的通讯方法有主要有3种[3]:①利用组态的驱动程序开发包进行驱动开发自己的通讯驱动程序,该方法适用于专业厂商;②通过动态数据交换(DDE)方式进行通讯,该方法带来一些额外的开销,如会降低系统实时性,增加系统的不可靠性等,对开发人员的要求也更高。
组态王通用单片机协议(ASCII)说明概述通用单片机ASCII协议支持单片机与组态王通讯,用户只要按照我们的协议编写单片机通讯程序就可实现与组态王的通讯.组态王设置1、定义组态王设备定义组态王定义设备时请选择:智能模块\单片机\通用单片机ASCII\串口组态王的设备地址定义格式:##.#前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,"0"为不打包、"1"为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作,与单片机的程序无关.2、组态王通讯通讯方式:RS-232,RS-485,RS-422均可。
波特率:由单片机决定(2400,4800,9600and19200bps)。
注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致3.组态王数据词典--变量定义在组态王中定义的寄存器数据格式(类型):由单片机决定。
斜体字dd代表数据地址,此地址与单片机的数据地址相对应.注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,USHORT,FLOAT)的不同,分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。
为提高通讯速度建议用户使用连续的数据区。
例如,1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。
,数据类型为BYTE,每个变量占一个字节2、在单片机中定义从地址100开始的数据类型为USHORT型的变量: 则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。
数据类型USHORT,每个变量占两个字节3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。
组态王与单片机的通信与设计前言本文主要是解决装有组态王的PC机与单片机的通信问题,这里选择通过计算机的COM1口进行串行通信。
单片机和PC机的串行通行一般采用RS-232、RS-422或RS-485总线标准接口,也有采用非标准的20mA电流环的。
为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式,既可以保证正常通信时的最大通信端口数量。
这里采用RS-232接口与单片机通信的方法。
由于两者间的电平规范不一致,实现两者间的通信要解决接口电路的电平转换问题。
正文选题背景随着单片机和微机技术的不断发展,单片机的应用也从独立的单机向网络发展,由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。
在一个大型的应用系统中,通常由单片机完成数据的采集和上传,后台则通过PC机对数据进行分析并处理,复杂的还要建立数据库形成网络,二者的结合,充分发挥了单片机在实时数据采集和微机对图形处理、显示以及数据库管理上的优点,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。
随着微电子技术、计算机控制技术、工业以太网技术及现场总线技术的发展,作为用户无需改变运行程序原代码的软件平台工具——工控组态软件日渐成熟。
由于工控组态软件在实现工业控制的过程中免去了大量烦琐的编程工作,解决了长期以来控制工程人员缺乏计算机专业知识与计算机专业人员缺乏控制操作技术和经验的矛盾,极大地提高了自动化工程的工作效率。
近年来,工控组态软件在中小型工业过程控制工程、工业自动化工程中越来越受到欢迎。
不仅如此,工控组态软件还在配电自动化、智能楼宇、农业自动化、能源监测等领域也逐步展示了其独特的优势。
单片机控制系统以其高性能价格比、稳定、易于实现等特点而被广泛使用,但他难以实现动态复杂的图形监控界面;而组态王软件具有强大丰富的监控界面设计功能,却难以实现复杂的控制算法,而单片机则难以实现动态复杂的图形监控界面,若采用以单片机为下位机,以装有组态王的PC极为上位机的控制方式,将彻底改变原来单片机控制系统的单调、简单的控制界面的缺陷,进一步推动单片机控制方式的广泛应用。
单片机与组态王通信单片机与组态王通信,准备工作做好了,接下来就是编程实现了。
当然少不了要看kingview提供的资料了。
以下引用自kingview的资料-------------------------------------------------1.通讯口设置:通讯方式:RS-232,RS-485,RS-422均可。
波特率:由单片机决定(2400,4800,9600and19200bps)。
字节数据格式:由单片机决定。
起始位数据位校验位停止位注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致2.在组态王中定义设备地址的格式格式:##.#前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,“0”为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作。
3.在组态王中定义的寄存器格式寄存器名称dd上限dd下限数据类型Xdd 65535 0 FLOAT/BYTE/UINT斜体字dd代表数据地址,此地址与单片机的数据地址相对应。
注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。
为提高通讯速度建议用户使用连续的数据区。
3.组态王与单片机通讯的命令格式:读写格式(除字头、字尾外所有字节均为ASCII码)字头设备地址标志数据地址数据字节数数据…异或CR 说明;字头:1字节1个ASCII码,40H设备地址: 1字节2个ASCII码,0—255(即0---0x0ffH)标志:1字节2个ASCII码,bit0~bit7,bit0= 0:读,bit0= 1:写。
bit1= 0:不打包。
bit3bit2 = 00,数据类型为字节。