System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及程序编译,具体而言,涉及一种自动编译程序的方法、系统、设备及存储介质。
技术介绍
1、程序自动编译流程所使用的编译语言一般为c/c++、c#或java等,在需要编译出正确的可执行文件时,需要先将文件上传到当前文件版本管理工具,然后复制其中的版本号到代码中,再将指定工控机连接到办公电脑,激活到目标工控机后,将文件复制出来。
2、现有自动编译流程主要限于通用编程语言如c/c++、c#和java,尽管存在当前文件版本管理工具、开源自动化服务器、集成开发环境、工业自动化软件平台和web服务器软件等工具用于代码的版本管理、持续集成和自动化部署,但未能涵盖特定于twincat平台的st语言;难以支持twincat平台专用的st文本语言的自动编译流程;这意味着st代码不能像其他主流编程语言那样,在当前文件版本管理工具提交后直接自动编译成可执行文件,且现有工具集成无法实现对st语言的自动化支持,导致编译流程缺乏自动化和效率。
技术实现思路
1、本专利技术解决的问题是如何实现st文本语言的自动编译流程。
2、为解决上述问题,本专利技术提供一种自动编译程序的方法、系统、设备及存储介质。
3、第一方面,本专利技术提供一种自动编译程序的方法,包括:
4、通过文件版本管理工具提交开发人员推送至远程代码仓库的st文本语言代码,并生成用于标识代码提交的commit标识;
5、根据所述commit标识的内容后缀,触发自动化服务器中的预设流水
6、执行所述预设流水线任务,通过集成开发环境和twincat编译工具,将所述st文本语言代码编译至工控机,得到可执行文件;
7、将所述可执行文件上传至服务器端,以完成程序的自动编译。
8、可选地,所述通过文件版本管理工具提交开发人员推送至远程代码仓库的st文本语言代码,并生成用于标识代码提交的commit标识,包括:
9、响应于所述开发人员在本地的文件版本管理工具中对st文本语言源代码进行的编辑和修改,通过所述版本管理工具将更改后的所述st文本语言源代码进行打包并形成提交对象;
10、根据所述提交对象的内容和所述提交对象的元数据,通过预设算法生成所述commit标识;
11、响应于所述开发人员将包含所述commit标识的所述提交对象推送至所述远程代码仓库,由所述远程仓库接收并记录所述提交对象和所述提交对象对应的commit标识。
12、可选地,所述根据所述commit标识的内容后缀,触发自动化服务器中的预设流水线任务,包括:
13、判断所述commit标识的内容后缀是否存在预设编译标签;
14、若存在,则通过所述自动化服务器确定提交的所述commit标识满足触发流水线任务的条件,并启动所述流水线任务;
15、若不存在,则不启动所述流水线任务。
16、可选地,所述执行所述预设流水线任务,通过集成开发环境和twincat编译工具,将所述st文本语言代码编译至工控机,得到可执行文件,包括:
17、当所述st文本语言代码被推送至远程代码仓库后,所述st文本语言代码包含的commit标识自动触发自动化服务器;
18、通过所述自动化服务器接收推送的代码,并将所述st文本语言代码从远程仓库拉取至windows系统,并在该系统中配置集成开发环境和twincat编译工具,并将所述st文本语言代码部署至工控机;
19、通过所述工控机执行编译过程,利用twincat的脚本接口将st文本语言编译成可执行文件。
20、可选地,所述通过所述工控机执行编译过程,利用twincat的脚本接口将st文本语言编译成可执行文件,包括:
21、在所述工控机上配置和初始化编译环境,以支持twincat的脚本接口;
22、通过所述自动化服务器接收到推送的所述st文本语言的代码,并将所述st文本语言的代码传输至所述工控机,并通过twincat提供的脚本接口对st代码进行编译,生成中间代码;
23、将所述中间代码转换成可在所述工控机上运行的所述可执行文件,其中,所述可执行文件带有所述工控机的网卡信息。
24、可选地,所述通过所述自动化服务器接收到推送的所述st文本语言的代码,并将所述st文本语言的代码传输至所述工控机,并通过twincat提供的脚本接口对st代码进行编译,生成中间代码,包括:
25、通过所述自动化服务器接收所述远程代码仓库的所述st文本语言的代码,并进行预处理,将预处理后的所述st文本语言的代码传输至所述工控机;
26、利用所述工控机上的twincat脚本接口初始化所述所述st文本语言的代码编译过程;
27、通过所述自动化服务器将当前文件版本管理工具提交的分支名称和commitid值集成到代码中,并替换源代码中的版本信息变量,再通过twincat脚本接口完成编译,并生成包含版本信息的中间代码。
28、可选地,所述将所述可执行文件上传至服务器端,以完成程序的自动编译程序,包括:
29、在编译过程结束后,通过所述自动化服务器的文件传输协议服务配置连接到windows系统的apache2服务的文件传输协议目录;
30、利用文件传输协议服务将可执行文件传输至windows系统的apache2服务的文件传输协议目录中,完成文件的上传。
31、第二方面,本专利技术提供一种自动编译程序系统,包括:
32、生成单元:用于通过文件版本管理工具提交开发人员推送至远程代码仓库的代码,并生成用于标识代码提交的commit标识;
33、触发单元:用于根据所述commit标识的内容后缀,触发自动化服务器中的预设流水线任务;
34、编译单元:用于执行所述预设流水线任务,将所述代码编译至工控机,得到可执行文件;
35、传输单元:用于将所述可执行文件上传至服务器端,以完成程序的自动编译。
36、第三方面,本专利技术提供一种电子设备,包括存储器和处理器;
37、所述存储器,用于存储计算机程序;
38、所述处理器,用于当执行所述计算机程序时,实现上述所述的自动编译程序的方法。
39、第四方面,本专利技术提供一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述所述的自动编译程序的方法。
40、本专利技术所述的自动编译程序的方法、系统、设备及存储介质,首先,开发人员在本地环境中使用文件版本管理工具(如git)对st文本语言源代码进行编辑和修改;完成更改后,开发人员将更改的代码打包形成提交对象,并生成commit标识,从而确保了代码变更的版本控制和追踪。通过在commit标识的内容后缀中加入特定的关键字(例如"build"),当代码被推送至远程代码仓库时,这一关本文档来自技高网...
【技术保护点】
1.一种自动编译程序的方法,其特征在于,包括:
2.根据权利要求1所述的自动编译程序的方法,其特征在于,所述通过文件版本管理工具提交开发人员推送至远程代码仓库的ST文本语言代码,并生成用于标识代码提交的commit标识,包括:
3.根据权利要求1所述的自动编译程序的方法,其特征在于,所述根据所述commit标识的内容后缀,触发自动化服务器中的预设流水线任务,包括:
4.根据权利要求1所述的自动编译程序的方法,其特征在于,所述执行所述预设流水线任务,通过集成开发环境和Twincat编译工具,将所述ST文本语言代码编译至工控机,得到可执行文件,包括:
5.根据权利要求4所述的自动编译程序的方法,其特征在于,所述通过所述工控机执行编译过程,利用Twincat的脚本接口将ST文本语言编译成可执行文件,包括:
6.根据权利要求5所述的自动编译程序的方法,其特征在于,所述通过所述自动化服务器接收到推送的所述ST文本语言的代码,并将所述ST文本语言的代码传输至所述工控机,并通过Twincat提供的脚本接口对ST代码进行编译,生成中间代
7.根据权利要求1所述的自动编译程序的方法,其特征在于,所述将所述可执行文件上传至服务器端,以完成程序的自动编译程序,包括:
8.一种自动编译程序系统,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器和处理器;
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1至7任一项所述的自动编译程序的方法。
...【技术特征摘要】
1.一种自动编译程序的方法,其特征在于,包括:
2.根据权利要求1所述的自动编译程序的方法,其特征在于,所述通过文件版本管理工具提交开发人员推送至远程代码仓库的st文本语言代码,并生成用于标识代码提交的commit标识,包括:
3.根据权利要求1所述的自动编译程序的方法,其特征在于,所述根据所述commit标识的内容后缀,触发自动化服务器中的预设流水线任务,包括:
4.根据权利要求1所述的自动编译程序的方法,其特征在于,所述执行所述预设流水线任务,通过集成开发环境和twincat编译工具,将所述st文本语言代码编译至工控机,得到可执行文件,包括:
5.根据权利要求4所述的自动编译程序的方法,其特征在于,所述通过所述工控机执行编译过程,利用twincat的脚本接口...
【专利技术属性】
技术研发人员:修洪伟,盛泊人,庞海峰,苏衍宇,
申请(专利权)人:哈尔滨思哲睿智能医疗设备股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。