当前位置:首页 > 基于单片机的plc设计与实现 - 图文
,/将传送数据的数组清空 //设置传送数据的数组的大小
VARIANT variant_inp;
COleSafeArray safearray_inp; LONGlen,k //数据帧封装 //发送数据帧 //接收缓冲区的数据 型变量
/hen接收数据长度
3l//将VARIANT型变量转换为COleSafeArray
BYTE
东南大学硕士学位论文
rxdata[150]; 臌收数组,保存一帧的数据 switch(m_comm.GetCommEvent,,串口事件类型 O) { casel:
break;
ca∞2:鹏爱冲区内有字符 Sleep(150); variant_inp=m_comm.OetlnputO; safearray_inp=variant_inp;
//延迟保证串口数据到达 //读缓冲区 //将VARIANT型变量转换为COleSafeArray变量
len=safearray_inp.GetOneDimSizeO;//-确-效数据长度 for(k=O;k<len;k++) I/:I{ff接收到的数据保存在rx da_ta数组中 { safearray_inp.GetElernenK&k,rxdata+k); } //串口数据处理 break; default:
mcomm.SetOutBufferCount(0); break;
) } 通过使用MSComm控件,可以简单高效地实现设备之间的通信,从而使编程效率大大提高,也减
少了因编程不当导致系统不稳定的可能性。 3.7.3.通讯协议
根据上下位机之间的通信要求,达成通讯协议如下:上位机向下位机目标地址发出接收数据命 令,下位机接收上位机指令后,进行目标地址的确认,如果目标地址与本站地址不同则不做出响应, 如果相同,则判断数据传输是否有误,如果数据传输正确,则接收缓冲区内的数据,完成一系列的
数据操作后,根据操作结果向上位机发送应答帧,上位机根据应答帧的内容决定下一个命令帧的内
容。程序流程图如图3—25所示。
图3.25上下位机通信程序流程图
32
第3章PLC功能模块设计与实现
串行通信中,以帧为单位传输数据。帧是数据通信传输中的一个数据块,包括帧头、数据、校
验和。本文中数据帧包括上位机发送的命令帧和下位机发送的应答帧。上位机每一个命令帧的发送
对应着下位机一个应答帧的发送。
上位机命令帧格式如图3.26所示:其中,“开始符”表示一帧的开始,用两个字节表示,标志 码为OxFFFE;“节点号”表示下位机的物理地址,用一个字节来表示,范围为0--.127;“识别码”表 示上位机向下位机所发送的命令类型,用一个字节表示;“报文长度”表示所要传送的报文的长度, 用一个字节表示,报文的长度范围为0"--127;“结束符”表示一帧的结束,用两个字节表示,标志码
为OxFFFF;“CRC”表示CRC校验码,占两个字节的长度,用来对所传送的报文进行校验。高位在 前,低位再后。
I警2 j常1|紫,报搿…容{臀!僳。黼。2J l () 图3.26上位机命令帧格式
下位机应答帧的格式如图3—27所示,其中,“开始符”表示一帧的开始,用两个字节表示,标 志码为OxFFFE;“节点号”表示上位机的物理地址,用一个字节来表示,范围为0--,127;“识别码” 表示下位机向上位机所发送的应答类型,用一个字节表示;“结束码”表示下位机接收上位机的应答 状态(接收无误或校验错误),用一个字节表示;“报文长度”表示所要传送的报文的长度,用一个
字节表示,报文的长度范围为0-127;“结束符”表示一帧的结束,用两个字节表示,标志码为OxFFFF; “CRC”表示CRC校验码,占两个字节的长度,用来对所传送的报文进行校验。高位在前,低位再后。
l学!繁1 i紫1 1翌1,报型舣昭 』臀k勰㈨l ()(2) 笙Rc局忸征丽【2】f(2) ()}() (1)}
图3.27下位机应答帧格式
3.8本章小结
本章主要介绍PLC编程软件系统的功能模块的设计与实现。按照模块的功能,分别介绍了工程 管理模块、梯形图编辑模块、指令表编辑模块、梯形图与指令表的查错模块、梯形图与指令表的转 化模块、指令表的编译模块、上下位机的通信模块,给出各模块具体的设计思想和程序流程,对模 块中使用的数据结构和类都做了详细的说明。
33
东南大学硕士学位论文
第4章用户界面设计
用户界面设计是屏幕产品的重要组成部分,它是一个复杂的有着不同学科参与的工程,认知心 理学、设计学、语言学等在其中都扮演着重要的角色。用户界面设计在工作流程上分为结构设计、 交互设计和视觉设计三个部分。其中,结构设计也叫概念设计,是界面设计的骨架,通过用户研究
和任务分析,制定出产品的整体架构。任何产品功能的实现都是人和机器的交互来完成的,交互设
计的目的是使产品让用户能简单使用。视觉设计是在结构设计的基础上,参照目标群众的心理模型 对色彩、字体、页面等进行设置,以达到用户愉悦使用的目的。
用户界面设计的三大原则是:置界面于用户的控制之下,减少用户的记忆负担,保持界面的一 致性。决定界面是否优秀的一个重要因素,是界面的易用性。界面是用户和程序算法打交道的工具, 界面不易用,算法在精妙也毫无意义。一个优秀的用户界面就是一个直观的、对用户透明的界面, 用户首次接触这个软件后,不需要多少培训就可以方便的上手使用。本文在实现时,主要精力放在 功能模块的实现和界面设计的易用性上,涉及美观等的细节操作留待后续实现。
4.1编程界面
MFC的英文全称是MicrosofFoundatioClasses,即微软的基本类库,其本质就是一个包含了许
n
t 多微软公司定义好的对象的类库。它定义了应用程序的轮廓,提供了用户接口的标准实现方法,只
要通过预定义的接口把程序填入轮廓即可。这种编程方法充分利用了面向对象技术的优点,编程时 极少关心对象方法的实现细节,而且MFC类库所提供的对象的各种属性和方法都是经过谨慎的编写
和严格的测试的,可靠性很高。本文的PLC编程软件开发系统就是采用vc抖6.0 MFC来开发的, 界面如图4-l所示,界面主要包括主框架、标题栏、菜单栏、工具栏、工程管理窗口、变量观察窗 口、状态栏等。
图4-1 PLC软件编程界面
1.菜单栏 系统主菜单如图4-2所示,各菜单功能如下:
共分享92篇相关文档