结构化文本语言开发工具的设计与实现
发布时间:2021-11-04 02:26
目前,可编程控制器已广泛应用于工业控制领域。相较于传统可编程控制器,嵌入式可编程控制器以嵌入式芯片为核心,具有灵活的硬件结构,使用简单且开发周期短,得到国内外的广泛认可。结构化文本(Structured Text,ST)语言作为可编程控制器常用的编程语言,易于实现复杂的控制程序。因此,本文设计并实现一款适用于嵌入式可编程控制器的ST开发工具,并针对嵌入式设备中通用的C语言,提出了一种ST语言到C语言的转换方法,从而提高开发工具对嵌入式可编程控制器的兼容性。本文重点研究ST开发工具及编译器模块的设计与实现,具体内容如下:1)深入研究IEC61131-3标准规定的公用元素和ST程序结构,实现ST编译器前端设计。主要描述ST语言的词法规则和语法规则,并构建、分析ST抽象语法树。2)对于ST编译器后端设计,本文制定ST语言和目标C语言之间的转换规则。并根据可编程控制器的内存特点及硬件结构,设计内存映射规则。为了描述可编程控制器特殊的程序组织单元,本文采用C语言实现ST的标准函数以及标准功能块。3)ST语言支持时间类型,本文以定时器为例,构建ST程序及C程序的时间自动机模型,采用UPPAAL工具...
【文章来源】:杭州电子科技大学浙江省
【文章页数】:87 页
【学位级别】:硕士
【部分图文】:
图2.4可编程控制器编程语言示例图??2.2?ST语言程序结构??结构化文本(Structured?Text,?ST)编程语言是一种类似于PASCAL的高级编??
单词符号的识别。该方法中采用GetNextChar〇方法获取下一个单词符号并进行??识别操作,采用StringBuilder类型的变量builder作为字符缓冲区,用于临时保??存读入的字符。GetNextToken()程序流程图如图3.2所示。??C?了)?丫或 ̄*?过滤注释???n?[贿關?|??%空字?+字母或’,—冲区中,直到识—??I?lT不为钟、龄或????符1,r??N???Y丫??获取下-个字符,叫,H溫::1?|构?臺键字|???直到curC'har不为空????Token??——^——n????新建1<—并初始化?_?Token??11数字、^?」构造数值文字|???断当前?字符? ̄?lokcn??<^\scurChar//>??J?丨1?」构造直接表|???H?接表^示童?Token??J ̄ ̄ ̄|?t|?构造数组????H?为数组^1?Token??■?其他字符识别《????图3.2?GetNextToken程序流程图??图中描述了不同类型Token的识别过程。其中,其他字符包括了单/双字节??字符。若为单字节界符,则直接识别,类型为其ASCII码。若为双字节界符,??19??
?杭州电子科技大学硕士学位论文???(3)规则三:POU转换规则??作为面向对象的编程语言,一个POU包含用于模块化目的和结构化的明确??定义的程序部分,本文所实现的POU包括程序、功能块、函数。在ST语言转??换过程中,全局/局部变量在C语言中仍为全局/局部变量,变量数据类型则根据??表3.4转换为等价的数据类型。POU转换细节如下:??1)P0U类型为程序:将程序转换为void类型的函数FirstProgramSubO,该??函数为设备中运行的主进程函数。若定义功能块实例,则转换时需在C语言中??定义该实例的输出变量,且为指针变量,命名格式为“实例名_输出变量名”。程??序转换示例如图3.6所示。??
【参考文献】:
期刊论文
[1]可编程控制器(PLC)新技术[J]. 严义. 自动化博览. 2018(06)
[2]基于状态转换的PLC程序模型构建方法[J]. 常天佑,魏强,耿洋洋. 计算机应用. 2017(12)
[3]基于IEC61131-3标准的ST转化为IL语言的设计与实现[J]. 张玉姣,卓怀忠,沈开奎,郭虎锋,潘景霞. 自动化与仪表. 2016(09)
[4]基于N叉树的PLC功能块向指令表的转换算法研究[J]. 周伟,张得礼. 机电工程. 2015(12)
[5]基于普通Petri网的梯形图中接通延时定时器的建模方法[J]. 温世刚,罗继亮,倪会娟,陈雪琨. 计算机科学. 2014(07)
硕士论文
[1]面向工业控制器编程语言的中间语言研究[D]. 庞海萍.华东师范大学 2018
[2]ST语言编程平台的设计及其到C语言的转换[D]. 张吉.杭州电子科技大学 2016
[3]FBD平台开发以及与梯形图转换的研究[D]. 李婧.杭州电子科技大学 2015
[4]梯形图与脚本语言互换方法的研究[D]. 吴盼盼.杭州电子科技大学 2013
[5]开放式数控系统软PLC运行系统的研究与开发[D]. 王亚男.陕西科技大学 2012
[6]SFC到梯形图的转换算法设计与实现[D]. 吴松松.杭州电子科技大学 2011
[7]基于LMI的PLC功能块图和顺序功能图的相互转换技术[D]. 许文靓.大连理工大学 2010
本文编号:3474810
【文章来源】:杭州电子科技大学浙江省
【文章页数】:87 页
【学位级别】:硕士
【部分图文】:
图2.4可编程控制器编程语言示例图??2.2?ST语言程序结构??结构化文本(Structured?Text,?ST)编程语言是一种类似于PASCAL的高级编??
单词符号的识别。该方法中采用GetNextChar〇方法获取下一个单词符号并进行??识别操作,采用StringBuilder类型的变量builder作为字符缓冲区,用于临时保??存读入的字符。GetNextToken()程序流程图如图3.2所示。??C?了)?丫或 ̄*?过滤注释???n?[贿關?|??%空字?+字母或’,—冲区中,直到识—??I?lT不为钟、龄或????符1,r??N???Y丫??获取下-个字符,叫,H溫::1?|构?臺键字|???直到curC'har不为空????Token??——^——n????新建1<—并初始化?_?Token??11数字、^?」构造数值文字|???断当前?字符? ̄?lokcn??<^\scurChar//>??J?丨1?」构造直接表|???H?接表^示童?Token??J ̄ ̄ ̄|?t|?构造数组????H?为数组^1?Token??■?其他字符识别《????图3.2?GetNextToken程序流程图??图中描述了不同类型Token的识别过程。其中,其他字符包括了单/双字节??字符。若为单字节界符,则直接识别,类型为其ASCII码。若为双字节界符,??19??
?杭州电子科技大学硕士学位论文???(3)规则三:POU转换规则??作为面向对象的编程语言,一个POU包含用于模块化目的和结构化的明确??定义的程序部分,本文所实现的POU包括程序、功能块、函数。在ST语言转??换过程中,全局/局部变量在C语言中仍为全局/局部变量,变量数据类型则根据??表3.4转换为等价的数据类型。POU转换细节如下:??1)P0U类型为程序:将程序转换为void类型的函数FirstProgramSubO,该??函数为设备中运行的主进程函数。若定义功能块实例,则转换时需在C语言中??定义该实例的输出变量,且为指针变量,命名格式为“实例名_输出变量名”。程??序转换示例如图3.6所示。??
【参考文献】:
期刊论文
[1]可编程控制器(PLC)新技术[J]. 严义. 自动化博览. 2018(06)
[2]基于状态转换的PLC程序模型构建方法[J]. 常天佑,魏强,耿洋洋. 计算机应用. 2017(12)
[3]基于IEC61131-3标准的ST转化为IL语言的设计与实现[J]. 张玉姣,卓怀忠,沈开奎,郭虎锋,潘景霞. 自动化与仪表. 2016(09)
[4]基于N叉树的PLC功能块向指令表的转换算法研究[J]. 周伟,张得礼. 机电工程. 2015(12)
[5]基于普通Petri网的梯形图中接通延时定时器的建模方法[J]. 温世刚,罗继亮,倪会娟,陈雪琨. 计算机科学. 2014(07)
硕士论文
[1]面向工业控制器编程语言的中间语言研究[D]. 庞海萍.华东师范大学 2018
[2]ST语言编程平台的设计及其到C语言的转换[D]. 张吉.杭州电子科技大学 2016
[3]FBD平台开发以及与梯形图转换的研究[D]. 李婧.杭州电子科技大学 2015
[4]梯形图与脚本语言互换方法的研究[D]. 吴盼盼.杭州电子科技大学 2013
[5]开放式数控系统软PLC运行系统的研究与开发[D]. 王亚男.陕西科技大学 2012
[6]SFC到梯形图的转换算法设计与实现[D]. 吴松松.杭州电子科技大学 2011
[7]基于LMI的PLC功能块图和顺序功能图的相互转换技术[D]. 许文靓.大连理工大学 2010
本文编号:3474810
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3474810.html