基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx

上传人:b****6 文档编号:19533243 上传时间:2023-01-07 格式:DOCX 页数:62 大小:461.37KB
下载 相关 举报
基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx_第1页
第1页 / 共62页
基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx_第2页
第2页 / 共62页
基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx_第3页
第3页 / 共62页
基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx_第4页
第4页 / 共62页
基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx

《基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx(62页珍藏版)》请在冰豆网上搜索。

基于单片机的PLC编译程序设计研究设计67049273docWord文档下载推荐.docx

2.1采用数组技术构建基于单片机的PLC源程序语句标准集合19

2.1.1基于单片机的PLC源程序语句标准集合的定义19

2.1.2基于单片机的PLC源程序语句标准集合的数组表达20

2.2基于单片机的PLC目标代码集合的构建22

2.3建立基于单片机的PLO源程序语句和目标代码之间的关系22

2.4基于单片机的PLO编译程序结构23

2.5盲码的预先填入及修正技术23

3基于单片机的PLC编译程序查错模块设计24

3.1编译过程中列表文件名和列表文件的建立24

3.1.1用STRCAT建立列表文件名25

3.1.2列表文件(.1st)的建立25

3.2查错模块程序流程26

3.3整句识别26

3.4语句语法检查27

3.4.1M数组逐行搜索28

3.4.3核对语句长度是否正确29

3.4.4错误标记写入错误信息文件30

3.5查错模块程序运行结果30

4固定代码的装配30

4.1基于单片机的PLC编译过程中目标文件的建立31

4.1.1目标文件名的建立31

4.1.2目标文件(.Bin)的建立32

4.2建立固定代码数组32

4.3向目标文件中装配固定代码34

5活动代码的翻译和装配34

5.1活动代码翻译和装配的整体思路34

5.2源程序语句的类型识别35

5.2.1c[k]hh存放着当前被翻译的源程序语句36

5.2.2当前源程序语句的类型识别36

5.3简单活动代码的装配37

5.3.1引用名(位地址)字符转化函数cvt(x,y)的定义37

5.3.2实现映射Fi=口(Mi)的第一种程序结构38

5.3.3LDI语句的目标代码装配38

5.3.4AND语句的目标代码装配39

5.3.5ANI语句的目标代码装配39

5.3.6OR语句的目标代码装配40

5.3.7ORI语句的目标代码装配40

5.3.8STORE语句的目标代码装配41

5.3.9OUT语句的目标代码装配41

5.4复杂活动代码的装配及其盲码的修正42

5.4.1TIM语句的目标代码的装配及其盲码的修正42

5.4.1.1TIM模块中的F数组赋值43

5.4.1.2TIM模块中第二种盲码的修正44

5.4.1.3针对TIM的第一种盲码的修正44

5.4.1.4目标文件.Bin装配时两种地址的切换方法45

5.4.1.5TIM模块的目标代码装配46

5.4.2CNT语句的目标代码的装配及其盲码的修正46

5.4.2.1CNT模块中的F数组的赋值48

5.4.2.2CNT模块的目标代码装配48

5.4.3RSTC语句的目标代码的装配及其盲码的修正48

5.4.3.1RSTC语句翻译模块中的盲码修正49

5.4.3.2RSTC模块中F数组的赋值和目标代码的装配49

5.4.4PLS语句的目标代码的装配及其盲码的修正50

5.4.4.1PLS语句翻译模块中的盲码修正51

5.4.4.2PLS模块中F数组的赋值和目标代码的装配51

5.4.5DIN语句的目标代码的装配及其盲码的修正51

5.4.5.1DIN语句翻译模块中的盲码修正52

5.4.5.2DIN模块的目标代码装配52

5.4.6SFT语句的目标代码的装配及其盲码的修正53

5.4.6.1SFT语句翻译模块中的盲码修正53

5.4.6.2SFT模块中F数组的赋值和目标代码的装配54

5.4.7RSTS语句的目标代码的装配及其盲码的修正54

5.4.7.1RSTS语句翻译模块中的盲码修正55

5.4.7.2RSTS模块中F数组的赋值和目标代码的装配55

5.5END语句的处理56

6基于单片机的PLc编译程序的实验研究56

6.1实验研究系统的建立56

6.2基于单片机的PLO源程序的编辑和编译57

6.3结论58

参考文献59

致谢61

摘要

自动化装置和机电一体化产品的设计和开发中有时需要采用一种成本极低的逻辑控制器。

为了满足这种需要,作者开展了用单片机直接实现梯形图逻辑控制的硬件和软件研究。

其中最为关键的一项技术是如何设计出基于单片机的PLC编译程序,将符合梯形图逻辑的PLC指令源程序翻译成单片机目标程序。

本文论述了基于单片机的PLC编译程序设计的理论和方法,研究了基于单片机的PLC的单片机程序模块和目标程序框架,对编译程序结构进行了分析,阐述了查错模块设计方法以及目标代码装配方法,对基于单片机的PLC的编译程序的调试实验系统组成和实验结果进行了分析。

首先,进行了基于单片机的PLC的单片机程序模块研究,构建了独具特点的目标程序框架结构。

然后,定义了基于单片机的PLC的源程序语句标准集合,提出了源程序语句标准集合的数组表示方法;

定义了目标代码集合,提出了用口映射来建立源程序语句标准集合和目标代码集合之间的关系,为编译程序结构的实现提供了条件和方法;

提出了盲码预填和盲码修正的思想提出了依据M数组对源程序查错的思路,通过列表文件名和列表文件的建立、整句识别、语句语法检查中的M数组逐行搜索、核对关键词是否相等、核对语句长度是否正确等一系列环节,实现对源程序的查错处理;

论述了翻译过程中向目标文件里装配固定代码的过程;

论述了翻译和装配活动代码的整体思路和流程;

运用M数组进行源程序语句的类型识别,初步实现了盯映射的预定位;

有效定义了引用名(位地址)的字符转化函数;

分别给出了实现盯映射的第一种程序结构和第二种程序结构,有效的完成了简单活动代码和复杂活动代码的翻译和目标文件的装配任务;

提出并论述了第一类盲码修正和第二类盲码修正的程序实现方法。

建立了基于单片机的PLC的编译程序设计研究的实验系统,对该编译程序的各项功能进行了验证和比对。

经过多个程序的试验表明,该编译程序能够正确地将基于单片机的PLC源程序翻译成单片机可以直接执行的、符合梯形图逻辑控制要求的目标程序。

实验结果表明,本文所设计的基于单片机的PLC编译程序完全符合设计要求,可以用于项目开发。

由于基于单片机的PLC成本极低,实际应用时可以带来较好的经济效益,因而具有较强的实用性。

关键词:

单片机,可编程逻辑控制器,编译程序,盲码,源程序,目标程序

Abstract

Sometimes,onekindofextremelyinexpensivelogiccontrollerisneededindesignandthedevelopmentoftheautomationdeviceandtheintegrationoelectro—mechanicalproduct.Inordertomeetthiskindofneeds.theauthorcarriedOllthehardwareandthesofhvareresearchofhavingdirectlyrealizedtheladderdiagramlogiccontrolwiththemonolithicmicrocomputer.Inwhich.mostessentialtechnologyishowtodesignthecompilerforPLCbasedonmonolithicmicrocomputer,andishowtotranslatePLCinstructionsourceprogramwhichconf01Tnladderdiagramlogicintomonolithicmicrocomputertargetprogram.ThispaperelaborateddesigntheoryandthemethodofthecompilerforPLCbasedonthemonolithicmicrocomputer,hasstudiedthemonolithicmicrocomputerprogrammoduleandthetargetprogramframeforPLCbasedonthemonolithicmicrocomputer,hascriedontheanalysistothecompiler.structure.elaborateddesignmethodforthecheckingmistakenmoduleaswellastheassemblymethodforgoalcode,hascarriedontheanalysistoexpedmentalresultanddebuggingexperimentsystemcompositionforthecompilerforPLCbasedonthemonolithicmicrocomputer.First,theresearchonthemonolithicmicrocomputerprogrammoduleforPLCbasedonthemonolithicmicrocomputerhasbeenconducted.Thealonecharacteristicframeconstructionfortargetprogramhasbeenconstructed.Then.thepaperhasdefinedthestandardsetofthesourceprogramsentenceforPLCbasedonthemonolithicmicrocomputer,proposedthearrayexpressionmethodforthestandardsetofthesourceprogramsentence.Thegoalcodesethasbeendefined.Establishingtherelationsbetweenthesourceprogramsentencestandardsetandthegoalcodesetwithsigmathemappinghasbeenproposed,sothattheconditionandthemethodforrealizationofthecompilestructurehasbeenprovided.Athoughtofthefillingblindcodeinadvanceandtherevisingblindcodehasbeenproposed。

AmentalityofcheckingmistakentothesourceprogramaccordingtotheMarrayhasbeenproposed.TheprocessingofthecheckingmistakentothesourceprogramhasbeenrealizedthroughaseriesofproceduresuchastheestablishmentoflistfilenameandlistdocumenLtherecognitiontoentiresentence.thesearchbylineusingMarrayinsentencegrammarinspection,thecheckuptokeywordwhetherequal,thecheckuptosentencelengthwhethercorrectandsoon.Theprocessofassemblingthefixedcodeintothegoaldocumentduringthetranslationhasbeenelaborated.Overallmentalityandtheprocedureofthetranslationandtheassemblycodehavebeenelaborated.Thepre-localizationofthesigmamappingbycarryingonthetyperecognitiontosourceprogramsentencedependonthearrayMhasinitiallybeenrealized.Thecharactertransformationfunctionforquotationname(bitaddress)hasbeendefinedeffectively,efirstkindofprocedurestructureandthesecondkindofprocedurestructureforrealizationsigmamappinghasseparatelybeengiven,sothatthetranslationofthesimpleactivecodeandthecomplexactivecodehaseffectivebeencompleted,andthattheassemblyofthegoaldocumenthasbeencompleted.Theprocedurerealizationmethodforthefirstkindofblindcoderevisionandthesecondkindofblindcoderevisionhasbeenproposedandelaborated.TheexperimentalsystemwhichusingtheresearchofcompilerdesignforPLCbasedonmonolithicmicrocomputerhasbeenestablished.Wehadcarriedontheconfirmationandcomparetotheeachfunctionofthecompiler.AftertheseveraIproceduretrials。

indicatedthatthecompilercantranslatecorrectlythe

sourceprogramofPLCbasedonmonolithicmicrocomputerintothetargetprogramwhichisenabletobeexecutedbymonolithicmicrocomputerandtalliestherequestofladderdiagramlogiccontr01.TheexperimentalresultprovedthatthecompilerdesignedforPLCbasedonthemonolithicmicrocomputer

conformstothedesignrequirementcompletely,mayuseintheprojectdevelopment.BecausethePLCbasedonthemonolithicmicrocomputerisextremelyinexpensiveincost,itmaybringthegoodeconomic

efficiencywhenpracticalapplication,thushasthestrongusability.

Keywords:

Monolithicmicrocomputer,programmablelogiccontroller,compiler,blindcode,sourceprogram,targetprogram

前言

前人在单片机应用研究和PLC应用研究方面已经取得了丰硕的成果。

当今计算机

技术发展很快,编译程序设计技术也在不断发展。

世界上现成的PLC产品很多,每一

个PLC产品都有一个PLC编译程序。

我们要问,本课题“基于单片机的PLC编译程序’’

和其他的PLC编译程序雷同吗?

答案是不同。

为了大大降低成本,实现如前所述的,在

机电一体化产品和自动化装置的设计中直接用单片机芯片作为符合梯形图逻辑的逻辑控制器,就必须设计出可以将PLC指令源程序翻译成单片机目标程序的编译程序。

在从事这项研究时我们发现,本课题“基于单片机的PLC编译程序设计’’在应用研究方法和具体内容上都和前人有许多不同之处。

(1)首先,当从市场上选来新~代的单片机芯片作为执行符合梯形图逻辑控制的

逻辑控制器,那么从总体上来看,基于该单片机芯片的PLC编译程序的设计就和其他

PLC的编译程序设计不同,没有一个现成的编译程序可以套用,必须做创造性的工作,

独立完成基于该单片机的编译程序设计。

编写基于该单片机的PLC编译程序,是本课题的主要工作任务之一。

(2)其次,目标程序框架结构也不同。

因为单片机芯片不同,内部的硬件资源也

就不同,目标指令代码和目标程序框架结构也就不同。

因此在编译程序编写前,必须根据单片机芯片编程的特点设定目标程序框架结构。

有许多影响目标程序框架结构的因素,诸如CPU初始化、内部硬件定时器设定、中断结构、接口的初始化等。

设定目标程序框架结构,是本课题的另一项主要工作任务。

(3)本课题的一项有特色的工作是在应用研究基础上,构建基于单片机的PLC

的源程序代码标准集合和目标程序代码集合,并且用集合和映射的方法为基于单片机的PLC源程序代码、目标代码以及翻译方法建模。

此外在设计中采用盲码预填及修正技术。

总之,基于单片机的PLC编译程序设计研究是一项具有创造性的工作,需要充分吸收前人经验,开创创新,建立新的模型,新的结构,新的方法

1基于单片机的PLC的单片机程序模块研究及其目标程序框架的构建

基于单片机的PLC编译程序的功能是将基于单片机的PLC源程序翻译成单片机目

标程序。

为了设计出基于单片机的PLC编译程序,首先要构建出每一条源程序指令所

对应的单片机程序模块。

基于单片机的PLC的源程序指令采用可编程序逻辑控制器最

基本指令的助记符,包括AND,ANI,OR,ORI,LD,LDI,OUT,STORE,TIM,

CNT,RST,PLS,DIN,SFT,END等基本逻辑指令。

但是,这些基本逻辑指令所对

应的单片机程序模块的程序长短不一,有的只有l~2条单片机指令组成,有的则需十几条或几十条单片机指令组成。

1.1基于单片机的PLC常用的单片机程序模块的构建

大部分PLC指令的单片机程序模块只需l~2条单片机指令组成。

AND、ANI、OR、

ORI、LD、LDI、OUT、STORE指令的单片机程序(指令)如表2.1所示。

由于选择

了Atmel公司的AT89C52单片机芯片作为处理器,所以单片机程序使用MCS.51单片机指令系统(AT89C52单片机采用了MCS.51单片机指令系统)。

表1.1基于单片机的PLC中常用PLC逻辑指令的单片机程序模块序号PLC逻辑指令单片机程序模块(指令)目标程序代码

序号

PLC逻辑指令

单片机模块(指令)

目标程序代码

1

LDbit

MOVC,bit

A2,bit

2

LDIbit

CPLC

B3

3

ANDbit

ANLC,bit

82,bit

4

ANIbit

ANLC,bit

B0,bit

5

ORbit

ORLC,bit

72,bit

6

ORIbit

A0,bit

7

STOREbit

92,bit

8

OUTbit

MOVbit,C

表1.1基于单片机的PLC中常用PLC逻辑指令的单片机程序模块

在表1.1的逻辑指令中,运算都围绕位累加器C进行。

表中的bit表示位地址,它

们都是单片机中片内RAM中可直接位寻址的位(位地址)。

(如延时计时器类、脉冲微分类、计数器类、移位类等)的单片机程序模块需十几条或几十条单片机指令组成。

下面是对此类PLC逻辑指令的单片机程序模块建立过程的分析。

1.2基于单片机的PLC的TIMTi语句的单片机程序模块构建

1.2.1围绕TIMTi片内硬件资源的配置

梯形图中的延时计时器通常可以有多个,它们需要有一个统一的时钟。

在基于单片机的PLC中用AT89C52芯片内的T0来作统一的时钟。

TO设定成定时0.1s,每隔O.1sT0中断一次。

在To中断服务程序中依次将多个延时计时器的软加l计数器加l。

实现TIM指令所需要的片内资源有:

①延时计时器的逻辑位Ti,位地址30H.3FH;

②延时计时器的状态标志位Si,位地址40H.4FH;

⑨延时计时器的软加1计数器Zi,Zi由两字节寄存器组成,由TO中断服务程序对其实行加1计数,可记录4位BCD数,字节

地址50H,51H,52H,53H,·

·

.,6EH,6FH。

④延时计时器延时时间常数寄存器Z;

Z;

也由两字节寄存器组成,可记录4位BCD数,字节地址为30H,31H,·

..,4EH,4FH。

TIMTi所需的To中断服务程序

单片机初始化时,将To设定成定时方式l,并开放To中断。

To的初值计算公式为:

图1.1TO中断服务程序流程图

TO的定时方式和初值在单片机初始化时设定,TO中断服务程序依次扫描16个延

时计时器,先判断Si是否为“1"

,即该计时器是否已被开启,只

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1