西門子WinCC Unified 中全局模塊
主要內(nèi)容:
1、導(dǎo)出export
2、導(dǎo)入import
3、WinCC Unified 中全局模塊
測(cè)試環(huán)境:
WINCC?Unified v17 update4
ECMAScript規(guī)范從第 6 版ES2015開始,在語(yǔ)言標(biāo)準(zhǔn)的層面上實(shí)現(xiàn)了模塊功能。添加了?import?和?export?關(guān)鍵字。使用模塊,可以將一個(gè)大程序拆分成多個(gè)文件,每個(gè)文件都是一個(gè)模塊,再用簡(jiǎn)單的方法拼裝起來(lái)。
ES6 模塊中的代碼自動(dòng)應(yīng)用嚴(yán)格模式,不用顯式在模塊頭部加上?use strict。模塊中定義的常量、變量、對(duì)象、函數(shù)、類對(duì)這個(gè)模塊而言都是局部的,不會(huì)污染全局作用域。需要顯式的導(dǎo)出才可以被其他文件使用。
1
?導(dǎo)出export
要從ES6模塊導(dǎo)出對(duì)象,只要在聲明前加上export關(guān)鍵字即可。
示例:模塊module1.js
export let a;
export function add(x,y){return x+y;};
或者,聲明時(shí)不加export,在文件末尾使用一個(gè)export統(tǒng)一導(dǎo)出
let a;
function?add(x,y){return?x+y;};
export?{a,add};
注意使用export的常規(guī)導(dǎo)出只對(duì)有名字的聲明有效。
export?(x,y)=>x+y;
如上面的語(yǔ)法是錯(cuò)誤的,無(wú)法使用export導(dǎo)出一個(gè)沒有名稱的箭頭函數(shù)。
一個(gè)模塊如果只需導(dǎo)出一個(gè)對(duì)象,通??梢允褂胑xport default而不是export。export default還可以導(dǎo)出沒有名稱的對(duì)象。
export default (x,y)=>x+y;
合并導(dǎo)出,意思就是在一個(gè)模塊中可以導(dǎo)出其他模塊的已導(dǎo)出對(duì)象,相當(dāng)于自己的導(dǎo)出。
示例:
export?*?from "./module1.js"
export * from "./module2.js"
這樣可以將多個(gè)子模塊聚合到一個(gè)父模塊,其他文件只要導(dǎo)入此父模塊即可,簡(jiǎn)化了語(yǔ)法。
2
?導(dǎo)入import
導(dǎo)入其他模塊導(dǎo)出的對(duì)象使用import關(guān)鍵字。
如導(dǎo)入上面module1.js模塊導(dǎo)出的對(duì)象
import {a,add} from "./module1.js"
使用 import,然后是被大括號(hào)包圍的用逗號(hào)分隔的需要導(dǎo)入的對(duì)象的名稱列表,然后是關(guān)鍵字 from,然后是模塊文件的路徑。模塊文件路徑是一個(gè)以“/”開頭的絕對(duì)路徑,或者是一個(gè)以“./”或“../”開頭的相對(duì)路徑,又或者是一個(gè)帶有協(xié)議及主機(jī)名的完整URL。
通常從定義了很多導(dǎo)出的模塊導(dǎo)入時(shí),可以像下面這樣以一條import語(yǔ)句輕松的導(dǎo)入所有對(duì)象:
import * as m1 from "./module1.js"
這樣一條語(yǔ)句創(chuàng)建了m1對(duì)象,模塊導(dǎo)出對(duì)象的名字作為這個(gè)對(duì)象的屬性名。使用導(dǎo)出的對(duì)象時(shí)始終以 m1 為前綴如m1.add。這也可以很好的解決,導(dǎo)入的不同模塊的導(dǎo)出對(duì)象存在相同名稱的沖突問題。
3
?WinCC Unified 中全局模塊
WinCC Unified提供了全局模塊方法,模塊可供畫面腳本、計(jì)劃任務(wù)、其他模塊使用。符合ES6規(guī)范。
如點(diǎn)擊“添加新全局模塊”新建一個(gè)名稱為m1的全局模塊,打開“全局定義區(qū)域”,添加一個(gè)默認(rèn)導(dǎo)出的函數(shù)

在畫面中使用此模塊:
畫面添加一按鈕在“單擊鼠標(biāo)左鍵”事件中調(diào)用模塊的函數(shù)
在事件的“全局定義”中導(dǎo)入模塊,在WinCC Unified中模塊路徑是直接使用模塊名。

然后點(diǎn)擊上面工具欄“腳本函數(shù)”,切換到事件腳本的編輯窗口編寫腳本

通過module_m1.default使用模塊導(dǎo)出的默認(rèn)函數(shù)。
以上就是全局模塊的基本使用方法。