欢迎光临散文网 会员登陆 & 注册

西门子WinCC Unified 中全局模块

2022-08-02 18:25 作者:工控小周  | 我要投稿

主要内容:

1、导出export

2、导入import

3、WinCC Unified 中全局模块


测试环境:

WINCC Unified v17 update4


ECMAScript规范从第 6 版ES2015开始,在语言标准的层面上实现了模块功能。添加了 import 和 export 关键字。使用模块,可以将一个大程序拆分成多个文件,每个文件都是一个模块,再用简单的方法拼装起来。

ES6 模块中的代码自动应用严格模式,不用显式在模块头部加上 use strict。模块中定义的常量、变量、对象、函数、类对这个模块而言都是局部的,不会污染全局作用域。需要显式的导出才可以被其他文件使用。


1


 导出export


要从ES6模块导出对象,只要在声明前加上export关键字即可。


示例:模块module1.js



export let a;export function add(x,y){return x+y;};
或者,声明时不加export,在文件末尾使用一个export统一导出




let a;function add(x,y){return x+y;};export {a,add};
注意使用export的常规导出只对有名字的声明有效。


export (x,y)=>x+y;如上面的语法是错误的,无法使用export导出一个没有名称的箭头函数。


一个模块如果只需导出一个对象,通常可以使用export default而不是export。export default还可以导出没有名称的对象。


export default (x,y)=>x+y;


合并导出,意思就是在一个模块中可以导出其他模块的已导出对象,相当于自己的导出。

示例:



export * from "./module1.js"export * from "./module2.js"这样可以将多个子模块聚合到一个父模块,其他文件只要导入此父模块即可,简化了语法。



2


 导入import


导入其他模块导出的对象使用import关键字。

如导入上面module1.js模块导出的对象


import {a,add} from "./module1.js"使用 import,然后是被大括号包围的用逗号分隔的需要导入的对象的名称列表,然后是关键字 from,然后是模块文件的路径。模块文件路径是一个以“/”开头的绝对路径,或者是一个以“./”或“../”开头的相对路径,又或者是一个带有协议及主机名的完整URL。


通常从定义了很多导出的模块导入时,可以像下面这样以一条import语句轻松的导入所有对象:


import * as m1 from "./module1.js"这样一条语句创建了m1对象,模块导出对象的名字作为这个对象的属性名。使用导出的对象时始终以 m1 为前缀如m1.add。这也可以很好的解决,导入的不同模块的导出对象存在相同名称的冲突问题。


3


 WinCC Unified 中全局模块


WinCC Unified提供了全局模块方法,模块可供画面脚本、计划任务、其他模块使用。符合ES6规范。


如点击“添加新全局模块”新建一个名称为m1的全局模块,打开“全局定义区域”,添加一个默认导出的函数


在画面中使用此模块:

画面添加一按钮在“单击鼠标左键”事件中调用模块的函数

在事件的“全局定义”中导入模块,在WinCC Unified中模块路径是直接使用模块名。


然后点击上面工具栏“脚本函数”,切换到事件脚本的编辑窗口编写脚本


通过module_m1.default使用模块导出的默认函数。


以上就是全局模块的基本使用方法。



西门子WinCC Unified 中全局模块的评论 (共 条)

分享到微博请遵守国家法律