可编程逻辑plc控制设计0.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1、 需求分析 2 1.1项目概述 2 1.2本设计的需求与意义 3 1.3本设计的前景和特色 4 2本实训的概要设计 5 2.1硬件电路 5 2.2软件的使用与程序的编写 7 2.2.1上位机对梯形图的录入 7 2.2.2通信模块程序的编写 8 2.2.3下位机梯形图解释器程序的编写 12 2.2.4整体系统框架的搭建,以及LCD显示与按键程序的编写 16 3、详细设计 17 3.1程序完成对uC/OS-II操作系统的移植 18 3.2.1OS_CPU.H的编写 19 3.2.2OS_CPU_C.C的编写 19 3.2.3OS_CPU_A.ASM 20 3.2在系统中创建各模块并在主函数中添加各摸块任务。 21 3.3在系统中编写key.c和display.c文件程序 22 4、调试过程 28 5、实训总结及感想 30 5.1本次实训体会: 30 5.2 实训总结 31 2.2软件的使用与程序的编写 2.2.1上位机对梯形图的录入 上位机编程软件在PC机上实现,主要实现编程软件选择梯形图和指令表作为编程语言,并将其录入到相应软件中,以便下载到下位机中,对工程项目进行相应的控制。 利用MFC创建用户界面,使其具有梯形图的录入和修改,助记符语言的录入和修改,并且能实现他们的互相转化的功能。并且能够实现通过串口向下位机下载。 处理流程:用户首先要创建一个新的文件,选择是通过助记符语言或者是梯形图语言。如果是选择梯形图语言,在标题栏下方就会有一些符号的选择。当录入完成之后可以保存,并且能够实现两种语言的转换。流程图如下: 梯形图录入:在编辑框的左边和右边分别有两个电源线,在两个电源线的中间进行梯形图元件的录入,包括原件的插入、删除、保存等操作。用户户在编辑区对各个梯形图元件进行属性的设置和改变。用户进行梯形图编辑的时候,各个梯形之间空出一行用来隔开。各个梯级主路之间空出一行用来隔开。各个梯级有ID号进行标识,ID号依次递增且唯一。每个梯级包含一个梯级主路,梯级主路带有一个左电源线,常开触点,常开线圈和右电源线,它们之间有很多的水平连线,用户在常开触电与常开线圈之间添加其他元件并联关系构成新的梯级,当然用户也可以将这个常开触点和常开线圈删除继而添加自己需要的元件。元件的编辑属性对话框中包含用户对元件名称,数据类型,变量范围,物理地址等属性的编辑。 助记符的录入:可以实现一些助记符的录入,以文本的形式进行录入。指令包括LD,LDI,OR,ORI,OUT等。 梯形图转化为一级代码:首先将梯形图界面划分成大小相同的网格,如下图所示,每个网格包含一个梯形图基本元件或者为空,每个网格信息保存在一个结构体对象中,结构体数组就构成了一级代码。 一级代码是结构体数组的形式,由于网格中存在大量的“空”元件,这样一级代码中就包含很多零元素,如果以数组的形式保存在计算机中必然浪费很大的空间。同时考虑到串行化问题,先采用双向链表结构,链表中每一个节点是一个类对象,它存储一个梯形图元件的信息,这样节点中就不包含零元素,利用串行化方法将链表信息保存在计算机中,这样计算机可以节约很大的硬盘空间。当用户完成输入后进行下载时,双向链表先转为一级代码,然后经过解算过程,将一级代码转换为二级代码下载到下位机STM32中。 解算:一级代码经过解算转化成二级代码才能下载到下位机STM32中,二进制代码指令用四个字节组成,前两个字节代表命令种类,后两个字节代表目标设备。 2.2.2通信模块程序的编写 上位机与下位机通信程序的编写 上位机向下位机的数据发送: 代码要向下位机通过串口发送,包括PC机的串口通信和STM32的串口通信部分。首先上位机向下位机发送一个命令ENQ(0x05H),当下位机准备好接受数据后,回复命令ACK。之后PC开始发送数据。在VC中,有以下几种方式可以实现串口的通信: 方法一:使用VC++提供的串行通信控件MSComm 首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project -- Add to Project -- Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对 Windows 通讯驱动程序的 API 函数的接口。换句话说,只需要设置和监视MSComm控件的属性和事件。 方法二:在单线程中实现自定义的串口通信类。主要运用ReadFile()与WriteFile()API函数。 方法三:多线程下实现串行通信。在很多工业控制系统中,常通过扩展串口连接多个外设,各外设发送数据的重复频率不同,要求后台实时无差错捕捉,采集,处理,记录各端口数据,这就需要在自定义的串行通信类中创建端口监视线程,以便在指定的事件发生时向相关的窗口发送通知消息。 通信协议:

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档