st编程语言和c语言一样不,ST语言编程平台的设计及其到C语言的转换-计算机应用技术专业论文.docx...

ST语言编程平台的设计及其到C语言的转换-计算机应用技术专业论文

杭州电子科技大学硕士学位论文

杭州电子科技大学硕士学位论文

万方数据

万方数据

Dissertation Submitted to Hangzhou Dianzi University for the Degree of Master

The Design of ST Developing Platform

and Conversion to C Programming

language

Candidate: ZhangJi Supervisor: A.P. Wu Huifeng

III

March, 2015

杭州电子科技大学 学位论文原创性声明和使用授权说明

原创性声明

本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研 究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人 或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。

论文作者签名:日期:年月日

学位论文使用授权说明

本人完全了解杭州电子科技大学关于保留和使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属杭州电子科技大学。本人保证 毕业离校后,发表论文或使用论文工作成果时署名单位仍然为杭州电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。(保密论文 在解密后遵守此规定)

论文作者签名:日期:年月日

指导教师签名:日期:年月日

IV

摘要

在 PLC 的编程规范——IEC61131-3 中,介绍了用于 PLC 编程的五种相关语 言,分别是:梯形图(LD)、功能块图(FBD)、顺序流程图(SFC)、结构化文 本语言(ST)和指令表语言(IL)。其中 ST 语言是一种类似于 PASCAL、C 语言 的高级文本语言,它编程格式自由、程序紧凑、具有很强的数据处理能力,使用 ST 语言可以比较方便地实现复杂控制程序的编写。在 PLC 的软件系统中实现对 ST 语言编程的支持,会大大提高 PLC 的编程效率,丰富 PLC 平台的功能。

在杭州电子科技大学智能与控制实验室自主研发的 PLC 软件平台——CASS 系统中,目前已经实现了 LD、FBD、SFC 和 IL 指令四种语言编程,并且创造性 地实现了在图形化语言中嵌入 C 语言的编程。为了完善 CASS 系统的编程功能, 使其成为完全符合 IEC61131-3 国际标准的专业化的工业控制软件编程系统平台, 现需要设计实现对 ST 语言编程方式的支持。

基于 CASS 系统中实现的嵌 C 语言编程的功能,本文采用语言转换的思想, 即将 ST 语言转换到 C 语言,来实现 ST 语言的编程。文中首先对 ST 语言的编 程特点以及语言转换的相关技术进行了大量研究,提出了一种以 ST 语言的语法 分析为核心,对源程序的语法单元进行递归识别及转换处理的转换算法。该算法 主要包括 ST 语言的词法分析算法、递归下降语法分析、基于控制流分析技术的 转换算法以及 C 语言代码的生成,与传统的用编译原理技术实现转换的方法相 比,本文的算法具有结构简洁、实现方便且代码复杂度小的优点。此外,本文还 实现了 ST 语言编程平台界面的设计。

最后本文通过理论证明以及大量的实验对该转换算法的正确性、源代码膨胀 率、转换的自动化程度等性能进行了验证。实验证明,本文所设计的转换算法,

不但正确地实现了 ST 语言到 C 语言的自动转换,而且具有较小的源代码膨胀率 和较好的执行效率。

关键字:ST 语言,PLC 编程,语言转换,CASS 系统

I

ABSTRACT

In the international standard IEC61131-3, five programming languages of PLC are defined, including three graphical languages: Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC), and two kinds of text language : structured Text language (ST) and instruction List language (IL). ST programming language is an advanced text programming language like PASCAL and C, which has a free prog

你可能感兴趣的:(st编程语言和c语言一样不)