指计中已经详细介绍过。如需了解请查阅主节点软件设计中模块设计部分内容,在这里不再重复讲解应用层协议内容。下面主要讲解驱动层程序,驱动层程序与主节点类似,包括帧发送程序和帧接收程序。由于在本设计中从节点发送给主节点的数据类型只种,即常规的灯数据。故,帧发送程序得到了简化,首先将帧设置为标准数据帧,数据字节长度为字节。然后将照明灯的剩余时间和灯状态填入发送缓冲区,最后请求发送。从节点总线帧发送程序流程图如图所示。总线帧接收程序采用外部中断服务程序进行接收,当控制器接收到数据后,产生中断,中断信号由的中断引脚输出,通过触发单片机的外部中断,从而通知单片机向控制器提取数据。接收中断服务程序如图所示。程序开始是否正在接收先前发送是否成功读取状态寄存器读取状态寄存器读取状态寄存器发送缓冲区锁定否将灯时间及状态填入发送缓冲区启动发送程序结束程序开始关中断读取状态寄存器总线关闭否清除中断标志位,恢复总线数据溢出否清除中断标志位,释放接收缓冲区调用数据解包函数并释放接收缓冲区接收缓冲区有数据释放总裁捕捉寄存器和捕捉寄存器开中断程序结束图帧发送程序流程图图帧接收程序流程图照明信号数据处理模块设计照明信号数据处理模块主要是根据主节点发送过来的灯设置信息,决定何种情况打开还是关闭照明设备开关,并根据情况决定是否需要开启定时器,以及是否需要刷新显示等。在从节点接收到灯设置信息和确定信息后,开始调用数据处理函数,首先关闭定时器,重新赋值初值和清零相关计数变量,接着根据开关状态变量刷新显示,然后判断是开灯还是关灯,再做相应的动作和启动定时器。具体程序流程图如图所示。程序开始禁止定时器计数,重赋初值清除相关计数器变量根据开关状态变量的值,刷新显示开灯吗开灯定时时间为开灯并启动定时器关灯定时时间为关灯并启动定时器程序结束图照明信号数据处理程序流程图键盘扫描及处理模块设计键盘扫描及处理模块主要用于实现人机交互,用于设置本从节点灯设备的开关灯情况。键盘是个输入设备,其软件驱动方法主要是通过检查按键是否按下,当按键按下时,该管脚将与地线相连为低电平,否则为高电平。处理器就是通过检测该引脚的高低电平来判断按键是否按下的。键盘扫描及处理模块程序流程如下首先,判断循环选择键是否按下,若按下则停止定时器,禁止接收中断,循环键按下次数变量,并在特定位置显示闪烁光标,然后等待按键松开。接着判断加键按下否,若按下则将对应的变量加,并刷新显示。接着判断减按键按下否,按下则将对应变量减,并刷新显示。键盘扫描及处理模块程序流程图如图所示。程序开始循环选择键按下关接收中断,停定时器循环键按下次数显示光标闪烁松开不等于加键按下吗减键按下吗相应变量加处理并刷新显示加键松开了吗相应变量加处理并刷新显示减键松开了吗程序结束图键盘扫描及处理程序流程图照明灯定时控制模块设计照明灯定时控制主要是通过单片机定时器进行定时控制的。由于每产生次定时中断,通过记录中断次数,当中断次数达到次时,表示计时,清零,变量自加,当计数值达到时,表示计数达到分钟,则照明灯数据中的时间将减少分钟并刷新显示,当照明灯的时间中的分个位减少到后,分十位则减,分个位变为并刷新显示。依次进行下去就可以实现时间上分和时的定时。当在运行中途被重新设置了灯的时间,则将要清除各个计数器。照明灯定时控制程序流程图如图程序开始关总中断重新赋定时器初值,等于在液晶的时与分之间显示在液晶的时与分之间显示等于清零秒标志等于秒标志清零分的个位大于分的个位减刷新显示分的十位大于分的十位减,分个位赋值为刷新显示时的个位大于时的个位减,分设为刷新显示时的十位大于时十位减,时个位为,分设为刷新显示时间为开关灯动作取反开关状态取反并记录开关显示刷新停止定时器程序结束开中断图照明灯定时控制模块流程图液晶显示模块设计在智能照明控制系统当中,照明设备不仅要求在监控室里能够设定其开关情况,也要求在照明灯现场能够设定本节点的照明灯情况。这样子,当我们在现场时就无需跑到控制室里开了灯再返回现场上班工作了。我们就可以在现场直接开灯,然后就可以上班工作了,这样工作效率得到了大大的提高。而从节点液晶显示模块就是用于实现在现场能够对本节点灯设备的设置和监控功能的。从液晶显示器里不仅可以看到灯的开关状态,还可以看到开关灯的剩余时间。预期要设计的从节点显示界面效果如图所示。图从节点显示界面效果从节点液晶显示模块的实现为实现如图所示的显示效果,首先,在液晶的首行显示字符串,然后根据,开关状态变量,更新液晶上的,再根据实际时间刷新时间即可。从节点液晶显示模块程序流程图如图所示。程序开始在液晶上显示字符串在液晶的地址显示为开灯在液晶的地址显示为设置的时间符合规则在处显示时在处显示分程序结束图从节点液晶显示程序流程图系统测试测试准备测试条件测试温度由于现在夏天温度较高,室内温度为。测试距离主从节点距离米左右。通信介质采用长度为米左右双绞线。硬件环境计算机,用于单片机语言的编程编译链接调试以及程序加载。个电源个智能节点个继电器模块及个照明灯设备根约长的双绞线两根供电线两块液晶模块块彩屏液晶模块。数字万用表个台模拟示波器根转串口的通信线根杜邦线螺丝刀镊子斜口钳吸焊器。电烙铁把焊锡松香。软件环境和,用于单片机和处理器的程序编写编译链接和调试。系统中各节点软件程序相关的库和头文件。程序下载软件程序下载软件和串口调试软件。测试系统测试项目主节点测试主节点触摸屏功能测试。主节点设置功能测试。主节点监控功能测试。主节点离线检测功能测试测。主节点运行和通信指示功能测试。从节点测试从节点液晶显示功能测试从节点设置灯状态功能测试从节点定时控制功能测试测试指标测试性能指标如表所示表测试性能指标序号测试功能主节点节能控制多个从节点上的照明灯所有从节点也能独立控制本节点照明灯各从节点的照明灯的状态能够实时的反映到主节点上,集中监控控制室的主节点能监控到所有从照明灯状态,现场个从节点也能显示本照明灯状态主从节点都能实时动态的显示灯开关的剩余时间主节点具有对从节点离线的检测功能主节点具有运行和通信示功不能把个定时器号同时作用和,例如不能有又有。定时器指令格式见表所示。表定时器指令格式功能注释通电延时型有记忆的通电延时型断电延时型编程软件如何控制程序作业在程序的控制逻辑中不断循环,读取和写入数据。当您将程序下载至并将放置在运行模式时,的中央处理器按下列顺序执行程序读取输入状态。存储在中的程序使用这些输入评估或执行控制逻辑。当程序经过评估,将程序逻辑结果存储在称作进程图像输出寄存器的输出内存区中。在程序结束时,将数据从进程图像输出寄存器写入至域输出。重复任务循环。反复执行系列任务。该循环执行任务被称作扫描循环。如下所示,在扫描循环过程中执行大多数或全部下列任务读取输入将实际输入状态复制至进程图像输入寄存器。在程序中执行控制逻辑执行程序的指令,并将数值存储在不同的内存区。处理所有通讯请求执行点至点或网络通讯要求的所有任务。执行自测试诊断程序保证固件程序内存和所有扩充模块均正常作业。向输出写入存储在进程图像输出寄存器中的数值被写入实际输出。扫描循环的执行取决于是位于停止模式还是运行模式。在运行模式中,程序被执行在停止模式中,程序不被执行。在程序执行过程中,最好使用进程图像寄存器,而不要直接存取输入或输出。使用图像寄存器共同扫描开始的所有输入取样会使扫描循环的程序执行阶段的输入数值同步化,并冻结这些数值。程序的使用创建个项目结构,项目就象个文件夹,所有数据都以分层的结构存在于其中,任何时候你都可以使用。在创建个项目之后,所有其他任务都在这个项目下执行。组态个站,组态个站就是指定你要使用的可编程控制器,例如等。组态硬件,组态硬件就是在组态表中指定你的控制方案所要使用的模板以及在用户程序中以什么样的地址来访问这些模板,地址般不用修改由程序自动生成。模板的特性也可以用参数进行赋值。组态网络和通讯连接,通讯的基础是预先组态网络,也就是要创建个满足你的控制方案的子网,设置网络特性设置网络连接特性以及任何联网的站所需要的连接。网络地址也是程序自动生成如果没有更改经验定不要修改。定义符号,可以在符号表中定义局部或共享符号,在你的用户程序中用这些更具描述性的符号名替代绝对地址。符号的命名般用字母编写不超过个字节,最好不要使用很长的汉字进行描述,否则对程序的执行有很大的影响。创建程序,用梯形图编程语言创建个与模板相连结或与模板无关的程序并存储。创建程序是我们控制工程的重要工作之,般可以采用线形编程基于个块内,分布编程编写功能块,组织调用结构化编程编写通用块。我们最常采用的是结构化编程和分布编程配合使用,很少采用线形编程。下载程序到可编程控点或路模拟量点个扩展模块路数字量点或路模拟量点个扩展模块路数字量点或路模拟量点这次设计中,我使用了两个开关,且输出只有六个,对于这个设计而言,输入和输出较为简单,并且不需要扩展模块,对比了表中各的输入和输出可知,选用的的主机比较适合本人的设计。本设计流程图图流程图程序梯形图程序的调试和检测中遇到的问题本设计中,我并不是切都十分顺利,其中我遇指计中已经详细介绍过。如需了解请查阅主节点软件设计中模块设计部分内容,在这里不再重复讲解应用层协议内容。下面主要讲解驱动层程序,驱动层程序与主节点类似,包括帧发送程序和帧接收程序。由于在本设计中从节点发送给主节点的数据类型只种,即常规的灯数据。故,帧发送程序得到了简化,首先将帧设置为标准数据帧,数据字节长度为字节。然后将照明灯的剩余时间和灯状态填入发送缓冲区,最后请求发送。从节点总线帧发送程序流程图如图所示。总线帧接收程序采用外部中断服务程序进行接收,当控制器接收到数据后,产生中断,中断信号由的中断引脚输出,通过触发单片机的外部中断,从而通知单片机向控制器提取数据。接收中断服务程序如图所示。程序开始是否正在接收先前发送是否成功读取状态寄存器读取状态寄存器读取状态寄存器发送缓冲区锁定否将灯时间及状态填入发送缓冲区启动发送程序结束程序开始关中断读取状态寄存器总线关闭否清除中断标志位,恢复总线数据溢出否清除中断标志位,释放接收缓冲区调用数据解包函数并释放接收缓冲区接收缓冲区有数据释放总裁捕捉寄存器和捕捉寄存器开中断程序结束图帧发送程序流程图图帧接收程序流程图照明信号数据处理模块设计照明信号数据处理模块主要是根据主节点发送过来的灯设置信息,决定何种情况打开还是关闭照明设备开关,并根据情况决定是否需要开启定时器,以及是否需要刷新显示等。在从节点接收到灯设置信息和确定信息后,开始调用数据处理函数,首先关闭定时器,重新赋值初值和清零相关计数变量,接着根据开关状态变量刷新显示,然后判断是开灯还是关灯,再做相应的动作和启动定时器。具体程序流程图如图所示。程序开始禁止定时器计数,重赋初值清除相关计数器变量根据开关状态变量的值,刷新显示开灯吗开灯定时时间为开灯并启动定时器关灯定时时间为关灯并启动定时器程序结束图照明信号数据处理程序流程图键盘扫描及处理模块设计键盘扫描及处理模块主要用于实现人机交互,用于设置本从节点灯设备的开关灯情况。键盘是个输入设备,其软件驱动方法主要是通过检查按键是否按下,当按键按下时,该管脚将与地线相连为低电平,否则为高电平。处理器就是通过检测该引脚的高低电平来判断按键是否按下的。键盘扫描及处理模块程序流程如下首先,判断循环选择键是否按下,若按下则停止定时器,禁止接收中断,循环键按下次数变量,并在特定位置显示闪烁光标,然后等待按键松开。接着判断加键按下否,若按下则将对应的变量加,并刷新显示。接着判断减按键按下否,按下则将对应变量减,并刷新显示。键盘扫描及处理模块程序流程图如图所示。程序开始循环选择键按下关接收中断,停定时器循环键按下次数显示光标闪烁松开不等于加键按下吗减键按下吗相应变量加处理并刷新显示加键松开了吗相应变量加处理并刷新显示减键松开了吗程序结束图键盘扫描及处理程序流程图照明灯定时控制模块设计照明灯定时控制主要是通过单片机定时器进行定时控制的。由于每产生次定时中断,通过记录中断次数,当中断次数达到次时,表示计时,清零,变量自加,当计数值达到时,表
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
第 1 页 / 共 16 页
第 2 页 / 共 16 页
第 3 页 / 共 16 页
第 4 页 / 共 16 页
第 5 页 / 共 16 页
第 6 页 / 共 16 页
第 7 页 / 共 16 页
第 8 页 / 共 16 页
第 9 页 / 共 16 页
第 10 页 / 共 16 页
第 11 页 / 共 16 页
第 12 页 / 共 16 页
第 13 页 / 共 16 页
第 14 页 / 共 16 页
第 15 页 / 共 16 页
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。