System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及工業控制和計算機,尤其涉及一種用于在線更新的plc程序生成方法、裝置及電子設備。
技術介紹
1、plc(可編程邏輯控制器,programmable?logic?controller)在工業控制領域具有廣泛的應用,工業plc是工業自動化控制系統中重要的組成部分,plc在運行時會不斷讀取輸入信號狀態,并根據當前運行的plc程序的邏輯進行處理,最終輸出相應的結果。
2、因為可以執行實時的控制、管理和監控數據,確保生產線的精準運行和高效性能,因此plc的可靠性對生產線的正常運行和企業的生產效率具有重要影響。在現代工業生產中,有不斷升級和改進的需求,因此支持不停機在線修改plc程序的工業plc產品具有很高的實用價值:
3、保證生產線的連續運行:plc是工業自動化控制系統中的核心技術之一,它能夠監控并控制工業設備的運行,確保設備始終在最佳狀態下運行,從而保證整條生產線的連續性和穩定性。
4、減少工業停機時間:一個高性能、可靠的plc系統能夠及時檢測并修復故障,這將減少設備的故障率、減少停機時間,提高生產線的運行效率、減少生產損失。
5、降低生產成本:利用plc控制工業設備可以優化生產流程,降低生產成本。通過實時監控和測量,plc可以精確地調整和優化生產過程,從而提高生產效率和設備利用率,降低能源消耗和材料使用。
技術實現思路
1、本申請實施例提供一種用于在線更新的plc程序生成方法、裝置及電子設備,用以解決現有技術中存在的如何生成用于在
2、本申請實施例提供一種用于在線更新的plc程序生成方法,包括:
3、獲取新版本plc程序源代碼,所述新版本plc程序源代碼中包含多個代碼單元,所述多個代碼單元與老版本plc程序源代碼包含的多個老版代碼單元一一對應,所述多個代碼單元中部分代碼單元相比對應的老版代碼單元不變,其余代碼單元為相比對應的老板代碼單元存在修改的新版代碼單元,所述新版代碼單元的接口與對應的老版代碼單元的接口保持一致;
4、將所述新版本plc程序源代碼編譯為webassembly代碼,作為新版webassembly代碼,所述新版webassembly代碼中包含與所述多個代碼單元一一對應的多個代碼塊,所述新版代碼單元對應的代碼塊為新版代碼塊,所述多個代碼塊與老版webassembly代碼包含的多個老版代碼塊一一對應,所述老版webassembly代碼為對所述老版本plc程序源代碼進行編譯得到的;
5、在所述老版webassembly代碼中,添加所述新版代碼塊,得到用于更新的webassembly代碼。
6、進一步的,在所述在所述老版webassembly代碼中,添加所述新版代碼塊之前,還包括:
7、獲取所述新版webassembly代碼的所述新版代碼塊的數據結構布局,所述數據結構布局為在編譯所述新版本plc程序源代碼的過程中,在webassembly線性空間中為所述新版代碼塊分配的;
8、如果所述新版代碼塊的數據結構布局,與所述新版代碼塊對應的老版代碼塊的數據結構布局一致,執行所述在所述老版webassembly代碼中,添加所述新版代碼塊的步驟,所述老版代碼塊的數據結構布局為在編譯所述老版本plc程序源代碼的過程中,在webassembly線性空間中為所述老版代碼塊分配的。
9、進一步的,所述新版代碼塊的數據結構布局,包括:所述新版代碼塊的功能塊數據結構和全局變量的內存布局。
10、進一步的,在所述在所述老版webassembly代碼中,添加所述新版代碼塊之前,還包括:
11、基于在編譯所述新版本plc程序源代碼的過程中生成的導出信息中代碼單元的標識信息,從所述新版webassembly代碼中獲取所述新版代碼塊。
12、進一步的,所述在所述老版webassembly代碼中,添加所述新版代碼塊,得到用于更新的webassembly代碼,包括:
13、在所述老版webassembly代碼的各所述老版代碼塊的后面,追加所述新版代碼塊,得到用于更新的webassembly代碼;并將所述老版webassembly代碼對應的函數段中所述老版代碼塊的索引,修改為指向對應的所述新版代碼塊的偏移位置,得到與用于更新的webassembly代碼對應的函數段;或者
14、在所述老版webassembly代碼中,使用所述新版代碼塊替換對應的老版代碼塊,得到用于更新的webassembly代碼。
15、進一步的,所述在所述老版webassembly代碼中,使用所述新版代碼塊替換對應的老版代碼塊,得到用于更新的webassembly代碼,包括:
16、在所述老版webassembly代碼的各所述老版代碼塊中,基于各所述老版代碼塊的排列位置,刪除所述新版代碼塊對應的老版代碼塊,并將所述新版代碼塊添加到對應的所述老版代碼塊所處的排列位置,得到用于更新的webassembly代碼;并按照替換后包括的各保留的所述老版代碼塊和所述新版代碼塊的偏移位置,在所述老版webassembly代碼對應的函數段中修改各代碼塊指向的偏移位置,得到與用于更新的webassembly代碼對應的函數段;或者
17、將所述新版代碼塊,以及所述老版webassembly代碼的各所述老版代碼塊,轉換為文本格式的代碼塊,得到新版文本代碼塊和老版文本代碼塊;并使用所述新版文本代碼塊,替換對應的老板文本代碼塊,得到文本格式的用于更新的文本代碼;以及將所述文本代碼編譯為webassembly代碼,得到用于更新的webassembly代碼,并生成與該用于更新的webassembly代碼對應的函數段。
18、本申請實施例還提供一種用于在線更新的plc程序生成方法,包括:
19、獲取新版本plc程序源代碼,所述新版本plc程序源代碼中包含多個代碼單元,所述多個代碼單元與老版本plc程序源代碼包含的多個老版代碼單元一一對應,所述多個代碼單元中部分代碼單元相比對應的老版代碼單元不變,其余代碼單元為相比對應的老板代碼單元存在修改的新版代碼單元,所述新版代碼單元的接口與對應的老版代碼單元的接口保持一致;
20、將所述新版本plc程序源代碼編譯為webassembly代碼,作為新版webassembly代碼,所述新版webassembly代碼中包含與所述多個代碼單元一一對應的多個代碼塊,所述新版代碼單元對應的代碼塊為新版代碼塊,所述多個代碼塊與老版webassembly代碼包含的多個老版代碼塊一一對應,所述老版webassembly代碼為對所述老版本plc程序源代碼進行編譯得到的;
21、獲取所述新版webassembly代碼的所述多個代碼塊的數據結構布局,所述數據結構布局為在編譯所述新版本plc程序源代碼的過程中,在webassembly線性空間中為所述多個代碼塊分配的;
本文檔來自技高網...
【技術保護點】
1.一種用于在線更新的PLC程序生成方法,其特征在于,包括:
2.如權利要求1所述的方法,其特征在于,在所述在所述老版WebAssembly代碼中,添加所述新版代碼塊之前,還包括:
3.如權利要求2所述的方法,其特征在于,所述新版代碼塊的數據結構布局,包括:所述新版代碼塊的功能塊數據結構和全局變量的內存布局。
4.如權利要求1所述的方法,其特征在于,在所述在所述老版WebAssembly代碼中,添加所述新版代碼塊之前,還包括:
5.如權利要求1所述的方法,其特征在于,所述在所述老版WebAssembly代碼中,添加所述新版代碼塊,得到用于更新的WebAssembly代碼,包括:
6.如權利要求5所述的方法,其特征在于,所述在所述老版WebAssembly代碼中,使用所述新版代碼塊替換對應的老版代碼塊,得到用于更新的WebAssembly代碼,包括:
7.一種用于在線更新的PLC程序生成方法,其特征在于,包括:
8.如權利要求7所述的方法,其特征在于,所述多個代碼塊的數據結構布局,包括:所述多個代碼
9.如權利要求7所述的方法,其特征在于,還包括:
10.如權利要求9所述的方法,其特征在于,所述在所述老版WebAssembly代碼中,添加所述新版代碼塊,得到用于更新的WebAssembly代碼,包括:
...【技術特征摘要】
1.一種用于在線更新的plc程序生成方法,其特征在于,包括:
2.如權利要求1所述的方法,其特征在于,在所述在所述老版webassembly代碼中,添加所述新版代碼塊之前,還包括:
3.如權利要求2所述的方法,其特征在于,所述新版代碼塊的數據結構布局,包括:所述新版代碼塊的功能塊數據結構和全局變量的內存布局。
4.如權利要求1所述的方法,其特征在于,在所述在所述老版webassembly代碼中,添加所述新版代碼塊之前,還包括:
5.如權利要求1所述的方法,其特征在于,所述在所述老版webassembly代碼中,添加所述新版代碼塊,得到用于更新的webassembly代碼,包括:...
【專利技術屬性】
技術研發人員:王鑫,
申請(專利權)人:蘇州虹鯨智能科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。