1.一种编译方法,其特征在于,包括:
获取用户输入的待编译的源程序;
判断所述待编译的源程序中的语言类型以得到源程序类型,所述源程序类型包括IL语言程序和非IL语言程序,所述语言类型包括IL语言和非IL语言;
非IL语言程序时,将所述源程序中语言类型为非IL语言进行转换以得到IL语言程序,再采用词法分析方法检查所述IL语言程序中的错误;
IL语言程序时,则直接采用所述词法分析方法检查所述IL语言程序中的错误;
将各错误信息进行汇总并通过错误信息列表进行显示;
判断所述错误信息列表中是否存在所述错误信息,存在,则停止编译,不存在,则对所述IL语言程序进行语义分析;
判断是否存在语义错误,存在,则停止编译,不存在,则执行编译,将所述IL语言程序转换成机器语言文件,并将所述机器语言文件进行分段存储;
所述机器语言文件进行分段存储具体包括:
将所述机器语言文件分成10段,其中,段0存放的是硬件的规格信息、用户权限信息;段
1存放的是变量与硬件资源的对应表格;段2存放与硬件资源无关的变量信息表;段3预留;
段4存放的是优先级为0任务的代码段信息;段5存放的是有优先级为1任务的代码段信息,段6存放的是优先级为2任务的代码段信息;段7存放的是优先级为3任务的代码段信息;段8存放优先级为4任务的代码段信息;段9存放事件处理任务的代码段信息;
将所述源程序中的变量表数据转换为预设文件格式的文件;编译器集成的画面组态开发工具执行该操作,将该文件烧写到GUI设备上,就可在GUI设备上显示画面,并能实时的显示PLC的控制状态。
2.根据权利要求1所述的一种编译方法,其特征在于,所述方法还包括:查找整个局域网中的控制器列表,通过选中某个控制器来查看其运行状态,读取其用户程序,并进行在线调试、修改和编译。
3.一种编译器,其特征在于,包括文本编辑器、处理模块、转换组件、词法分析模块、错误信息列表和语义分析模块;
所述文本编辑器用于获取用户输入的待编译的源程序;
所述处理模块用于判断所述待编译的源程序中的语言类型以得到源程序类型,所述源程序类型包括IL语言程序和非IL语言程序,所述语言类型包括IL语言和非IL语言;
所述转换组件用于将所述源程序中语言类型为非IL语言进行转换以得到IL语言程序;
所述词法分析模块用于采用所述词法分析方法检查所述IL语言程序中的错误;
所述错误信息列表用于将各错误信息进行汇总并进行显示;
所述处理模块还用于判断所述错误信息列表中是否存在所述错误信息,存在,则停止编译,不存在,则对所述IL语言程序进行语义分析;
所述语义分析模块用于对所述IL语言程序进行语义分析;
所述处理模块还用于判断是否存在语义错误,存在,则停止编译,不存在,则执行编译,将所述IL语言程序转换成机器语言文件,并将所述机器语言文件进行分段存储;
所述机器语言文件进行分段存储具体包括:
将所述机器语言文件分成10段,其中,段0存放的是硬件的规格信息、用户权限信息;段
1存放的是变量与硬件资源的对应表格;段2存放与硬件资源无关的变量信息表;段3预留;
段4存放的是优先级为0任务的代码段信息;段5存放的是有优先级为1任务的代码段信息,段6存放的是优先级为2任务的代码段信息;段7存放的是优先级为3任务的代码段信息;段8存放优先级为4任务的代码段信息;段9存放事件处理任务的代码段信息;
还包括画面组态开发工具,所述画面组态开发工具用于将所述源程序中的变量表数据转换为预设文件格式的文件,将该文件烧写到GUI设备上,就可在GUI设备上显示画面,并能实时的显示PLC的控制状态。
4.根据权利要求3所述的一种编译器,其特征在于,还包括通信组件,所述通信组件用于查找整个局域网中的控制器列表,通过选中某个控制器来查看其运行状态,读取其用户程序,并进行在线调试、修改和编译。