时间:2024-08-31
李生明,黄宝玉
(1.清远职业技术学院 机电与汽车工程学院,广东 清远 511510;2.长江工程职业技术学院 学生工作部,湖北 武汉 430212)
单片机以其实时监控性能优秀广泛用于测控系统,通常采用数码管、液晶、点阵等作为其显示设备,自成体系。组态王是一种通用的工业监控软件,可以制作出精美的组态画面,设计简单,在工业控制系统中广泛使用。下面以单片机控制的电子钟为例,设计一个单片机的电子钟组态系统,完成时间和温度的实时通讯。
组态王运行在上位PC机上,单片机作为下位机运行时钟控制程序,时钟数据要通过通讯线路传送到PC机上,在组态王中显示,通讯方式采用串行通信,如RS232、RS422、RS485,波特率可以选2400、4800、9600、19200bps。值得注意的是,它们之间的通讯均采用ASCII形式进行,因此单片机的数值在传送前均要转换成ASCII码。
本系统中组态王要向单片机读取“时、分、秒”时钟和温度数据,因此要向单片机发送读命令,希望单片机能传回相应数据。读命令是组态王自动发出的,不需要在组态王中编程,只要在单片机程序中接收此命令,然后作相应处理。读命令的通讯格式如下:
格式说明;
(1)字头:@符号,即40H
(2)设备地址:1字节2个ASCII码,0~255(即0~ffH)
(3)标志:1字节2个ASCII码,具体各位的含义为:
bit0=0:读,bit0=1:写。
bit1=0:不打包。
bit3bit2=00,数据类型为字节。
bit3bit2=01,数据类型为字。
bit3bit2=1x,数据类型为浮点数。
(4)数据地址:2字节4个ASCII码,0000H~ffffH
(5)数据字节数:1字节2个ASCII码,1~100,实际读写的数据的字节数。
(6)异或:计算从设备地址到异或字节前的异或值,转换成2个ASCII码
(7)CR:回车符,0dH。
例如:本设计组态王要读取单片机的“时、分、秒”和温度信息,分别存放在组态王的X0、X1、X2、X3中予以显示。表1是以读取秒信息为例,取设备地址为6,组态王读取X2(秒)时所发数据。
单片机运行时,采用中断方式实时接收串口数据,当接收完一帧数据后,经过校验,若正确,再判断是不是“读”命令,若是,就应向组态王发送数据[1],单片机向组态王发送数据时要进行ASCII格式转换,转换方法同上例,其通讯格式为:
表1 数据表
?
启动组态王后,在组态王的左侧导航树中选择“设备”,在右侧双击“新建”进入新建设(如图1)备向导,依次展开“设备驱动—智能模块—单片机—通用单片机ASCII—串口”,选择与单片机连接的COM口,在配置设备地址(如图2)时填写“6.0”,其中,6代表通讯协议中的设备地址,由用户定义,范围为0~255,即单片机地址号为6;0表示不打包。其他操作保持默认[2]。
图1 新建设备
图2 配置设备地址
建立三个组态变量:时、分、秒、温度,均为IO整型变量,对应内部的寄存器X0、X1、X2和X3,用于与单片机交换数据。建立好的数据词典如图3所示。
图3 数据词典
如图4所示,应用“文本”工具建立文本标签和显示文本,其中“:”为分隔,运用“模拟值显示”动画连接,表达式分别对应数据词典中的时、分、秒、温度变量,用于显示“时:分:秒”和温度数据。运行时的截图如图5所示。
图4 组态画面
图5 组态王运行画面
运行组态王的PC机通过串口与单片机相连,编写单片机的监控程序与组态王通讯,程序由四个部分组成:主程序、时钟和温度采集程序、串行中断子程序、公共发送子程序。
主程序由两个部分组成:初始化部分和主循环部分。初始化部分完成定时器、串行口、中断系统的初始化;主循环部分根据接收缓冲区数组的数据构造发送缓冲区数组,并通过串口发送给组态王,来响应组态王的命令。具体工作是,当组态王发送来的是“读”命令时,构建组态王所要的数据,并将数值拆分转换成ASCII码,而且还要经过异或运算求校验码。关键程序如下(本程序忽略了校验处理):
采用DS1302时钟芯片采集实时时间,数据保存在X0、X1和X2变量中;采用DS18B20芯片采集当前温度数据,存放在X3变量中。这样只要在处理程序中将X0~X3数据通过串行口发送出去就可以完成通讯。这两部分的程序比较经典,此处省略其程序。
这部分的主要工作是接收组态王发来的数据,并作必要的处理:更新发送缓冲区数组的部分数据、提取读写标记位。本部分的程序如下:
此子程序功能比较单一,就是构造一个灵活的发送程序,带两个形参,一个是发送缓冲区数组的指针,另一个是发送的数据个数[3]。具体程序如下:
综上所述,单片机与组态王的结合,完美地实现了电子钟的组态设计,为系统提供了优良的画质效果,且编程工作量也不是太大,只要按规范的通讯协议编程即可完成。如果采用了无线模块,更高级的应用就是实现无线数据传输。
参考文献:
[1]刘守义.单片机应用技术[M].西安:西北电子科技大学出版社,2007.
[2]张永枫.单片机应用实训教程[M].北京:清华大学出版社,2008.
[3]郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!