组态王与单片机的通信

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

组态王与单片机的通信与设计

前言本文主要是解决装有组态王的PC机与单片机的通信问题,这里选择通过计算机的COM1口进行串行通信。单片机和PC机的串行通行一般采用RS-232、RS-422或RS-485总线标准接口,也有采用非标准的20mA电流环的。为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式,既可以保证正常通信时的最大通信端口数量。这里采用RS-232接口与单片机通信的方法。由于两者间的电平规范不一致,实现两者间的通信要解决接口电路的电平转换问题。

正文

选题背景随着单片机和微机技术的不断发展,单片机的应用也从独立的单机向网络发展,由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。在一个大型的应用系统中,通常由单片机完成数据的采集和上传,后台则通过PC机对数据进行分析并处理,复杂的还要建立数据库形成网络,二者的结合,充分发挥了单片机在实时数据采集和微机对图形处理、显示以及数据库管理上的优点,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。

随着微电子技术、计算机控制技术、工业以太网技术及现场总线技术的发展,作为用户无需改变运行程序原代码的软件平台工具——工控组态软件日渐成熟。由于工控组态软件在实现工业控制的过程中免去了大量烦琐的编程工作,解决了长期以来控制工程人员缺乏计算机专业知识与计算机专业人员缺乏控制操作技术和经验的矛盾,极大地提高了自动化工程的工作效率。近年来,工控组态软件在中小型工业过程控制工程、工业自动化工程中越来越受到欢迎。不仅如此,工控组态软件还在配电自动化、智能楼宇、农业自动化、能源监测等领域也逐步展示了其独特的优势。

单片机控制系统以其高性能价格比、稳定、易于实现等特点而被广泛使用,但他难以实现动态复杂的图形监控界面;而组态王软件具有强大丰富的监控界面设计功能,却难以实现复杂的控制算法,而单片机则难以实现动态复杂的图形监控界面,若采用以单片机为下位机,以装有组态王的PC极为上位机的控制方式,将彻底改变原来单片机控制系统的单调、简单的控制界面的缺陷,进一步推动单片机控制方式的广泛应用。

在这个设计中有以下问题待以解决:1、TTL/RS232电平转换及其接口电路的处理。2、由于组态王接收的是数据的ASCII码,因此要实现数据与它所对应的ASCII码的转换。3、组态王监控界面的设计。

设计要求

设计组态王监控界面,编写单片机发送接受程序以实现组态王与单片机两者间的通信。

方案论证

过程论证

组态王中的设备配置

利用设备配置向导就可以完成串行通信方式的I/O设备安装,安装过程简单、方便。在配置

过程中,用户需选择I/O设备的生产厂家、设备型号、连接方式,为设备指定一个设备名,

设定设备地址和串口。

操作步骤如下:

1激活设备配置向导。在组态王工程浏览器的“设备”大纲项下,选择您要设置的I/O设备类型,在右侧目录内容显示区双击“新建”图标。

2在设备配置向导中选择要安装串口设备。

3在设备配置向导中将要安装的串口设备指定一个逻辑名称。

④在设备配置向导中为安装的串行设备指定与计算机相连的串口号。

⑤在设备配置向导为串口设备指定设备地址。其中格式:##.#。前面的两个字符是设

备地址,范围为0~255,此地址为单片机的设备地址,由单片机中的程序决定;后面的一个

字符是用户设定是否打包,“0”为不打包、“1”为打包,

组态王与单片机的通信协议

在组态王中定义的寄存器格式

寄存器名称dd上限dd下限数据类型

X dd655350FLOAT/BYTE/UINT 斜体字dd代表数据地址,此地址与单片机的数据地址相对应。

注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不

同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数

据区内不可交叉定义不同数据类型的变量。

.组态王与单片机通讯的命令格式:

读写格式(除字头、字尾外所有字节均为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,数据类型为字节。

bit3bit2=01,数据类型为字。

bit3bit2=1x,数据类型为浮点数。

数据地址:2字节4个ASCII码,0x0000~0xffff

数据字节数:1字节2个ASCII码,1—100,实际读写的数据的字节数。

数据…:为实际的数据转换为ASCII码,个数为字节数乘2。

异或:异或从设备地址到异或字节前,异或值转换成2个ASCII码

CR:0x0d。

上位机发送读命令

字头设备地址标志数据地址数据字节数异或CR

下位机应答:若正常:

字头设备地址数据字节数数据…异或CR

若不正常:

字头设备地址**异或CR

上位机发送写命令

字头设备地址标志数据地址数据字节数数据…异或CR

下位机应答:若正常:

字头设备地址##异或CR

若不正常:

字头设备地址**异或CR

TTL/RS232电平转换及接口电路

RS-232规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换,,这里采用MC1488和MC1489芯片,MC1488和MC1489芯片为早期的RS-232至TTL逻辑电平的转换芯片,下图为实际电路。采用该芯片的主要缺点是电路需要12V电压,不适用于低功耗的系统。图中TXD、RXD 分别接单片机的发送和接收端。

单片机中对数据的处理

组态王为用户提供了单片机ASCII码协议,所以可直接进行串行口通信,单片机ASCII 协议支持单片机与组态王通信,只要按照协议编写单片机通信程序就可实现与组态王的通信。波特率:由单片机决定(2400,4800,9600and19200bps)。字节数据格式:由单片机决定。在组态王中设置的通信参数如波特率、数据位、停止位、奇偶校验必须与单片机编程中的通信参数一等。组态王中设置完相应的读写变量后,会自动定时地发给计算机串行口不同格式的数据,在单片机中只需根据组态王中变量的设置来接收数据、处理数据、回传给计算机正确的应答信号可,分读、写两种处理情况。

由于串行通信过程中传送的是数据的ASCII码形式,因此单片机程序中要有相应的转换,转换程序见

单片机发送接受程序

cseg at4000h

ljmp bsend

cseg at4023h;中断服务程序入口地址

ljmp server

cseg at4040h

bsend:mov ie,#00h;禁止中断

相关文档
最新文档