System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于工业自动控制领域,具体涉及一种基于bs架构的plc编程语言编译器的实现方法。
技术介绍
1、在现代工业自动化中,plc是广泛使用的控制设备。传统的plc编程和调试多采用客户端-服务器(client-server,简称cs)架构,需要在客户端安装专用的plc编程软件。随着互联网技术的发展,bs架构因其无需客户端安装、天然跨平台、易于维护和升级的优点逐渐受到青睐。bs架构已成为当今软件应用的主流模式。它以浏览器(browser)作为客户端,服务器(server)作为数据处理中心,通过互联网(internet)进行数据交互,为用户提供高效的网络服务。bs架构还可以实现分布式计算,将应用程序部署在多台服务器上,实现负载均衡和容错处理。当某台服务器出现故障时,其他服务器可以继续提供服务,保证系统的可用性和可靠性。然而,现有的plc编译器多基于cs架构,难以充分利用bs架构的优势。因此,亟需一种基于bs架构的plc编程语言编译器,以提升plc编程和调试的效率和便捷性。
技术实现思路
1、本专利技术针对现有技术存在的问题,提供了一种基于bs架构的plc编程语言编译器的实现方法,以解决现有技术中存在的跨平台难、编译器升级难、编译效率低和维护成本高的问题,显著提高plc编程和调试的效率。
2、为解决以上技术问题,本专利技术提供如下技术方案:一种基于bs架构的plc编程语言编译方法,包括以下步骤:
3、s1、初始化编程环境,配置plc编译服务器与客户端之间的通信方
4、s2、plc编译服务器收到客户端的连接请求后,客户端连接plc编译服务器,将用户编写的plc程序提交到plc编译服务器,plc编译服务器接收该接收plc程序,然后检查并确保plc程序符合标准格式;
5、s3、plc编译服务器对步骤s2得到的标准格式的plc程序进行解析,生成符合预设标准的st代码;
6、s4、plc编译服务器对步骤s3生成的st代码进行语法检查和语义分析;
7、s5、plc编译服务器根据步骤s4的检查分析结果进行代码优化,减少代码冗余;
8、s6、plc编译服务器对步骤s5优化后的代码进行编译,生成plc可执行文件;
9、s7、plc编译服务器将步骤s6生成plc可执行文件加密,然后将加密文件发送至客户端;
10、s8、客户端收到plc编译服务器的编译成功响应,通过网络下载到plc设备中,由plc设备中的运行时程序进行解密并启动运行。
11、进一步地,前述的步骤s1具体是:plc编译服务器以守护进程的方式运行,加载iec61131-3相关标准库和配置文件,并监听tcp/ip指定端口。
12、进一步地,前述的步骤s2中,用户编写的plc程序包括支持多种编程语言:括梯形图、功能块图、结构化文本和顺序功能图;
13、s2.1、客户端将用户用不同编程语言编写的plc程序格式化为符合plcopen xml标准形式,并将用户期望编译的平台信息一起提交到plc编译服务器;
14、s2.2、plc编译服务器接收plc程序,编译服务器检查并确保符合plcopen xml标准;对不符合标准的程序进行报错处理,发送错误请求消息给客户端。
15、进一步地,前述的步骤s3包括以下子步骤:
16、s3.1、对plcopen xml文件解析,首先提取项目工程名和作者信息,根据项目工程名和作者信息创建编译目录,将该目录确定为当前项目编译目录,以支持多人同时连接plc编译服务器提交编译请求;
17、s3.2、将用户用ld、fbd、st和sfc编程语言编写的程序,全部转换成st语言格式的代码,并存于当前编译目录中;
18、s3.3、发送解析过程信息给客户端,对解析出错的plc程序进行报错处理,发送错误内容描述与错误所在位置给客户端,通知用户。
19、进一步地,前述的步骤s4包括以下子步骤:
20、s4.1、对st语言进行词法分析,生成词法符号流;
21、s4.2、对词法符号进行语法语法分析,生成语法解析树;
22、s4.3、对语法解析树进行遍历,构建抽象语法树ast;
23、s4.4、对ast进行语义分析,确保用户程序的语义正确性。
24、进一步地,前述的步骤s6包括以下子步骤:
25、s6.1、根据ast生成中间代码,并将其存入当前编译目录中;
26、s6.2、根据ast生成makefile文件,用于编译生成的中间代码;
27、s6.3、根据步骤s2提交plc编译服务器时候指定的平台架构,调用不同的gcc交叉编译器;
28、s6.4、根据ast获得当前程序复杂度并结合当前plc编译服务器可用cpu核数,分配cpu内核给gcc交叉编译器;
29、s6.5、编译上述生成的中间代码,生成期望平台下的可执行文件。
30、进一步地,前述的中间代码为c++语言编写。
31、进一步地,前述的步骤s7包括以下子步骤:
32、s7.1、对可执行文件进行非对称加密;
33、s7.2、使用base64加密转化为字符串格式;
34、s7.3、将加密后的字符串返回给客户端。
35、相较于现有技术,本专利技术采用以上技术方案的有益技术效果如下:
36、(1)跨平台和易维护:基于bs架构,用户无需安装客户端软件,通过浏览器即可进行plc编程和调试,极大地方便了系统的维护和升级。
37、(2)编译效率高:充分利用服务器高稳定性、高性能和高可靠性的特点,确保客户端下载的程序符合国际标准,并通过语法检查、语义分析和代码优化,确保生成的plc可执行文件正确高效。
38、(3)多任务性:基于bs架构,支持多人同时连接编译服务器,同时编译plc程序,提高团队开发效率。
39、(4)安全稳定:提供完善的安全加密机制,保障系统的安全和稳定运行。
本文档来自技高网...【技术保护点】
1.一种基于BS架构的PLC编程语言编译方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,步骤S1具体是:PLC编译服务器以守护进程的方式运行,加载IEC61131-3相关标准库和配置文件,并监听TCP/IP指定端口。
3.根据权利要求1所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,步骤S2中,用户编写的PLC程序包括支持多种编程语言:括梯形图、功能块图、结构化文本和顺序功能图;
4.根据权利要求1所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,步骤S3包括以下子步骤:
5.根据权利要求1所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,步骤S4包括以下子步骤:
6.根据权利要求1所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,步骤S6包括以下子步骤:
7.根据权利要求6所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,中间代码为C++语言编写
8.根据权利要求1所述的一种基于BS架构的PLC编程语言编译器的实现方法,其特征在于,步骤S7包括以下子步骤:
...【技术特征摘要】
1.一种基于bs架构的plc编程语言编译方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于bs架构的plc编程语言编译器的实现方法,其特征在于,步骤s1具体是:plc编译服务器以守护进程的方式运行,加载iec61131-3相关标准库和配置文件,并监听tcp/ip指定端口。
3.根据权利要求1所述的一种基于bs架构的plc编程语言编译器的实现方法,其特征在于,步骤s2中,用户编写的plc程序包括支持多种编程语言:括梯形图、功能块图、结构化文本和顺序功能图;
4.根据权利要求1所述的一种基于bs架构的plc...
【专利技术属性】
技术研发人员:尹志威,王一凡,贺银增,
申请(专利权)人:寂山智工苏州科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。